見出し画像

Google Colab で OpenCALM-7B を試す

「Google Colab」で「OpenCALM-7B」を試したので、まとめました。

 【注意】Google Colab Pro/Pro+ の A100で動作確認しています。VRAMは14.7GB必要でした。

1. OpenCALM-7B

OpenCALM-7B」は、「サイバーエージェント」が開発した、日本語LLMです。商用利用可能なライセンスで公開されており、このモデルをベースにチューニングすることで、対話型AI等の開発が可能です。

2. OpenCALMのモデル

「OpenCALM」では、サイズ別に6つの汎用言語モデルが公開されています。

cyberagent/open-calm-7b : 6.8Bの汎用言語モデル
cyberagent/open-calm-3b : 2.7Bの汎用言語モデル
cyberagent/open-calm-1b : 1.4Bの汎用言語モデル
cyberagent/open-calm-large : 830Mの汎用言語モデル
cyberagent/open-calm-medium : 400Mの汎用言語モデル
cyberagent/open-calm-small : 160Mの汎用言語モデル

3. Colabでの実行

Colabでの実行手順は、次のとおりです。

(1) メニュー「編集→ノートブックの設定」で、「ハードウェアアクセラレータ」で「GPU」で「A100」を選択。
A100でなくてもVRAM 16GBあれば問題ないかと思う。

(2) パッケージのインストール。

# パッケージのインストール
!pip install transformers accelerate

(3) トークナイザーとモデルの準備。
今回は、7Bを指定しています。

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

# モデルとトークナイザーの準備
model = AutoModelForCausalLM.from_pretrained(
    "cyberagent/open-calm-7b", 
    device_map="auto", 
    torch_dtype=torch.float16
)
tokenizer = AutoTokenizer.from_pretrained("cyberagent/open-calm-7b")

(4) 推論の実行。
ベースモデルなので、QAプロンプトの書式で動作確認してみました。

# プロンプトの準備
prompt = "Q:まどか☆マギカでは誰が一番かわいい?\nA:"

# 推論の実行
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
    tokens = model.generate(
        **inputs,
        max_new_tokens=64,
        do_sample=True,
        temperature=0.7,
        pad_token_id=tokenizer.pad_token_id,
    )
    
output = tokenizer.decode(tokens[0], skip_special_tokens=True)
print(output)
Q:まどか☆マギカでは誰が一番かわいい?
A:マミさん。魔法少女の中では一番好きです。



この記事が気に入ったらサポートをしてみませんか?