楽天が公開している大規模言語モデル「RakutenAI-7B」に炒飯の作り方を聞いてみた

はじめに

「RakutenAI-7B」「RakutenAI-7B-instruct」「RakutenAI-7B-chat」の3つのモデルが公開されています。

今回は「RakutenAI-7B-instruct」を使ってみました。
huggingface.co

結果

実行するたびに異なる答えが返ってきます。

USER:
炒飯の作り方を教えて
ASSISTANT:
分量さえ間違えなければ誰でも簡単に作れます。 1. ご飯を油で軽く炒め、塩で味付けする。 2. 卵を油で炒め、薄く炒飯に敷く。 3. キャベツ、ニラなどを炒め、柔らかさを調節し味付けする。 4. 3にご飯と卵、魚介類、ソーセージなどを入れ炒める。 5. ソース や醤油、塩で味付けをする。 お好みで海苔や山芋をかけても良い。

Pythonスクリプト

Pythonから使うのは非常に簡単です。

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()

def main(request:str) -> None:

    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:"
    input_req = system_message.format(user_input=request)
    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" + request)
    print("ASSISTANT:\n" + out)
    
if __name__ == "__main__":
    request = "炒飯の作り方を教えて"
    main(request)

PC環境

Windows 11
CUDA 11.8
Python 3.11

Python環境構築

CUDA 11.8を使った場合です。

pip install torch==2.2.1+cu118 --index-url https://download.pytorch.org/whl/cu118
pip install transformers accelerate





このエントリーをはてなブックマークに追加