はじめに
「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