【No.L009】Google ColabでRakutenAI-7Bモデルを使った対話型アシスタントの注意点と使い方

はじめに

2024年3月21日に楽天が公表した日本語大規模言語モデル(LLM)について動作を確認。具体的には以下サイトのコードを有料版Google Colab環境(A100)で実施した際の注意点を記載。
Rakuten/RakutenAI-7B-instruct · Hugging Face

★関連リンク
業務で活用できるAI技集のまとめはこちら

内容

①必要なライブラリをインストール [3分]
Google Colabを起動して、GPUを設定後に以下コマンドを実行。GPUの設定方法は[編集]→[ノートブックの設定]で任意のGPUが選択可能。今回は70億(7b)のパラメータということで最上位のA100を使って検証を行う。

!pip install bitsandbytes accelerate
[参考] 動作時のライブラリのバージョン
bitsandbytes 0.43.1
accelerate 0.29.3

②メインコード [2分]

from transformers import AutoModelForCausalLM, AutoTokenizer

model_path = "Rakuten/RakutenAI-7B-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype="auto", device_map="auto")

model.eval()

requests = [
    "「馬が合う」はどう言う意味ですか",
    "How to make an authentic Spanish Omelette?",
]

system_message = "A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. USER: {user_input} ASSISTANT:"

for req in requests:
    input_req = system_message.format(user_input=req)
    input_ids = tokenizer.encode(input_req, return_tensors="pt").to(device=model.device)
    tokens = model.generate(
        input_ids,
        max_new_tokens=1024,
        do_sample=True,
        pad_token_id=tokenizer.eos_token_id,
    )
    out = tokenizer.decode(tokens[0][len(input_ids[0]):], skip_special_tokens=True)
    print("USER:\n" + req)
    print("ASSISTANT:\n" + out)
    print()
    print()

モデルのDLや設定に時間の大半で、推論時間自体は大体20秒/回以内。5回程実行した結果、以下のような答えが出力された。※日本語の質問:「馬が合う」はどう言う意味ですかについての出力

1二匹の馬が、一緒に引く荷車や橇などの重荷が軽い場合などで、隣同士に並んで歩く場合に使う言葉です。
2人間同士の「気が合う」という語の馬版である。人間の場合「気が合う」の意味は、様々な意味で用いられており、「性格が合う」や「相性がいい」と使う人が多い。馬の場合もほぼ同様であり、馬同士の相性は性格だけでは決まらず、お互いにより良いパフォーマンスが出来るのでもっとも適切な組み合わせとする。
3一対の物事の中で、互いの特質があい合って調和がとれている状態の事を言います。
4「馬が合う」は、2人の人に対して使われる場合、その二人では一対一の対話ができる、つまり口を聞いても不快になるようなことがない、お互いが理解しあえる、などという意味で使われます。 また人が動物に使える場合、ある動物と人間が、お互いがお互いに懐きやすい、という場合も同様に使えます。
5馬が合わないと言う言葉もありますが、意味は相手同士の意見、考え、人柄等が合う、うまくいくと言った意味です。
[参考] エラー発生時の対処
モデルの設定時にtorch_dtype="auto", device_map="auto"で以下のエラーが出た方は、Google Colabツールバーの[ランタイム]→[セッションを再起動する]でもう一度やり直すと成功する場合がある。(※セッション再起動の場合はモデルの再DLがないのですぐに処理完了します)
【Error内容】`low_cpu_mem_usage=True` or a `device_map` requires Accelerate: `pip install accelerate`

Appendix

日本語の大規模言語モデルで著名なものを参考に記載。

モデル名公表者パラメータ数
RakutenAI楽天70億
ELYZA-japanese-Llama-2ELYZA70億
OpenCALMサイバーエージェント70億
nekomatarinna140億

当記事に記載のあるコードを纏めたipynbファイルも併せて展開。



コメント