日本語も理解できたCohereForAIのオープンソースのLLMモデルを試してみる。
CohereForAIのLLMをGoogle ColabのA100で実行したので紹介していきます。フリーのLLMなのに文章生成、数値計算、英訳、日本語理解力がChatGPTみたく回答されているのに驚きました。
Hugging Faceで、CohereForAIのLLMのc4ai-command-r-v01が上位にランクインしていましましたので試してみることにしました。
今回は、上記にあるコードを少し修正して利用しています。Google Colabの環境は、A100です。LLMをダウンロードするのに時間がかかりますが、A100環境で実行できます。
!pip install transformers bitsandbytes accelerate
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
bnb_config = BitsAndBytesConfig(load_in_8bit=True)
model_id = "CohereForAI/c4ai-command-r-v01"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True, quantization_config=bnb_config)
# Format message with the command-r chat template
messages = [{"role": "user", "content": "Hello, how are you?"}]
input_ids = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt")
## <BOS_TOKEN><|START_OF_TURN_TOKEN|><|USER_TOKEN|>Hello, how are you?<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>
gen_tokens = model.generate(
input_ids,
max_new_tokens=100,
do_sample=True,
temperature=0.3,
)
gen_text = tokenizer.decode(gen_tokens[0])
print(gen_text)
messageのところで、"Hello, how are you?"と聞いています。
英語で聞いたので英語で返信されていますが、「質問されてうれしい」の旨を回答しています。
このmessageのところを変更して、他にも見て行きます。
messages = [{"role": "user", "content": "Do you introduce yourself?"}]
自己紹介をしてもらいましょう。
Coralという名前が付けられているようです。真意は定かではありませんが。一般的なAI系LLMで出来ること、Cohereによって構築されたことを回答しています。
messages = [{"role": "user", "content": "What do you think of OpenAI?"}]
OpenAIについて、どう思いますかと聞いてみました。
ここが凄いなと思いましたが、意見や嗜好性を述べることはできませんと回答しているのに驚きました。回答して良いと判断する感覚と回答を避けるべきと判断する感覚を身に着けているのですね。
messages = [{"role": "user", "content": "Please tell me the 1000th prime number."}]
1000番目の素数を教えて下さいと聞いてみます。
7919と回答しています。あらかじめ素数の一覧を学習されている可能性も排除は出来ませんね。
messages = [{"role": "user", "content": "今の日本の首相を教えてください。"}]
日本語も出来るか試してみます。
日本語が理解できることに驚きました。
messages = [{"role": "user", "content": "次の文章を英訳してください。神は細部に宿る。"}]
日本語を英語に訳せるか試してみます。
当然、日本語から英語も出来ました。
messages = [{"role": "user", "content": "c4ai-command-r-v01について、ブログを書きたいので、紹介文章を書いてください。"}]
最後に、少し長い文章を書いてもらいます。
この記事が気に入ったらサポートをしてみませんか?