8月29日にAIベンチャーのELYZAがLlama 2をベースとした日本語LLMのELYZA-japanese-Llama-2-7bを公開しました。
日本語の公開モデルでは最高水準、GPT-3.5に匹敵するというので、早速、その性能をテストしてみました。
1.ELYZAモデルの概要
8月29日、東京大学松尾研究室発AIベンチャーのELYZAがLlama 2ベースの日本語LLMのELYZA-japanese-Llama-2-7bを公開しました。
今月に入ってから、Stability AIのJapanese StableLM Alphaや松尾研究室のweblab-10bなど日本語に対応したLLMが続々と公開されていますが、それらに続く動きです。
なお、Llama 2は今年7月にMetaが公開した英語ベースのLLMで、公開モデルとしては性能が高いため、英語圏ではオープンモデルのデファクトスタンダードになっています。
(1) ELYZA-japanese-Llama-2-7bの特徴
(2) 4種類の公開モデル
今回は、以下の4種類のモデルをHugging Faceで公開しています。
① ELYZA-japanese-Llama-2-7b
MetaのLlama-2-7b-chatに対して、約180億トークンの日本語テキスト(Wikipedia、OSCARなど)で追加事前学習を行ったモデル
② ELYZA-japanese-Llama-2-7b-instruct
独自の指示データセットで①に対して事後学習を行ったモデル。複数ターンの対話にも対応可
③ ELYZA-japanese-Llama-2-7b-fast
Llama 2に13,042個の日本語の語彙を追加して事前学習を行ったモデル。日本語の必要トークン数を約55%まで削減し、推論速度は約1.82倍と大幅に効率化
④ ELYZA-japanese-Llama-2-7b-fast-instruct
③に対して事後学習を行ったモデル
(3) 他のLLMとの性能比較
ELYZAでは、独自に作成した評価用データセットのELYZA Tasks 100を利用し、5段階の人間による評価を行っています。評価の際は、モデル名を隠してブラインドテストを行い、平均スコアを算出しています。
なお、これは日本語の能力を測る評価であり、日本に関する知識を測る評価ではありません。
2.ELYZAモデルの利用方法
(1) デモサイト
① ELYZA-japanese-Llama-2-7b-instruct
② ELYZA-japanese-Llama-2-7b-fast-instruct
(2) Google Colabでの利用
① トークナイザーとモデルの準備
以下のコードをコピーして、Colabノートの新しいセルに貼り付け、GPUを設定して、セルを実行してください。
!pip install transformers accelerate bitsandbytes
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
tokenizer = AutoTokenizer.from_pretrained(
"elyza/ELYZA-japanese-Llama-2-7b-instruct"
)
model = AutoModelForCausalLM.from_pretrained(
"elyza/ELYZA-japanese-Llama-2-7b-instruct",
torch_dtype=torch.float16,
device_map="auto"
)
② モデルの実行
上のセルの実行完了後、以下のコードを別のセルにコピーして実行してください。
prompt = """<s>[INST] <<SYS>>
あなたは誠実で優秀な日本人のアシスタントです。
<</SYS>>
富士山について教えてください。 [/INST]"""
with torch.no_grad():
token_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")
output_ids = model.generate(
token_ids.to(model.device),
max_new_tokens=512,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id,
)
output = tokenizer.decode(output_ids.tolist()[0][token_ids.size(1) :], skip_special_tokens=True)
print(output)
すると、セルの下に次のような回答が表示されます。
富士山は、日本の山の一つで、静岡県と山梨県にまたがって存在します。
富士山は、標高3,776メートルの活火山で、日本では最も高い山です。
富士山は、「富士」という名前は昔からありましたが、「山」の名前は平安時代になってからつけられたものです。
富士山は、世界文化遺産に登録されているほか、日本では初めてとなる「七霊山」に選定されています。
実行コードの「富士山について教えてください。」の部分を書き換えて、色々な質問を試すことができます。
このコードは、以下のnpakaさんの記事を参考にしました。
(3) Google Colabでデモと同じWebUIを利用する方法
以下のバナーをクリックしてColabノートを開き、GPUを設定してセルを実行してください。
Running on public URL:の後のGradioのリンクをクリックすると、デモと同じWebUIの操作画面が開きます。
3.日常会話
ELYZA-japanese-Llama-2-7b-instructのデモを利用して、様々な質問を試してみました。
デモの画面は以下のようになっています。
「日本はどんな国ですか?」という質問の回答だけは、おかしくなってしまいましたが、それ以外は無難に回答することができました。この質問は苦手なようで、何度やり直しても、おかしな回答が返ってきます。
なお、ELYZA-japanese-Llama-2-7b-fast-instructのデモを利用して、同じ質問をすると、以下のような回答が返ってきます。
やはり、「日本はどんな国ですか?」という質問は苦手なのでしょうか。全体的には、先程の7b-instructの方が回答が親切で安定しているように感じたので、以下の質問では、このまま7b-instructのデモの方を使用します。
4.算数と論理的思考力
(1) 計算問題
一桁の足し算や掛け算もできないJapanese StableLM Alphaやweblab-10bと比べると、相当優秀です。ChatGPT(3.5turbo)に引けを取りません。
Japanese StableLM Alphaやweblab-10bには勝っていますが、もっと複雑な計算もできるChatGPT(3.5turbo)には、やはり適わないようです。ちなみにLlama 2-70bなら最後の問題に正解できます。
(2) 文章問題
ChatGPT(3.5turbo)には適いませんが、Japanese StableLM Alphaやweblab-10bよりは算数ができるようです。これは、おそらくELYZAがLlama 2をベースに使用しているからだと思われます。算数ができない場合は、論理的な思考力を期待できなくなるので、ある程度算数ができることは重要です。
今後、Llama 2より古い公開モデルをベースにしているLLMは厳しくなるのではないでしょうか。
(3) 常識に関する問題
Japanese StableLM Alphaとweblab-10bは、この問題に正解できないので、それよりは論理的思考力があるようです。
ここまでの結果から、ELYZAモデルの論理的思考力は、Japanese StableLM Alpha及びweblab-10bの2つのモデルとChatGPT(3.5turbo)の中間くらいであると言えるのではないでしょうか。
5.日本に関する知識など
(1) 基本的な知識
日本に関する基本的な知識は持っているようですが、間違いも多いです。
(2) 国際的な知識
G7や首脳の意味は概ね理解しているようですが、情報が古いです。
6.歴史に関する知識
(1) 日本の歴史
日本史の質問への回答は、ことごとく嘘ばかりのハルシネーションでした。
日本史の知識については、ChatGPT(3.5turbo)>Japanese StableLM Alpha>weblab-10b>ELYZAモデルのようです。
(2) 世界の歴史
世界の歴史もあまり得意ではないようです。
ただ、ハルシネーションが多すぎるのが気になりました。分からなくても、どんどんそれらしい話を作って書き進めてしまうようです。
7.文学に関する知識
日本の文学の知識もほぼ壊滅状態でした。日本、海外を問わず、歴史、文学などの知識は全部だめなようです。
おそらくELYZAモデルは、ビジネスに特化した使い方を考えているのだと思いますが、事実と異なるハルシネーションが多すぎることは気になります。
8.表現力
(1) 小説など
ELYZAモデルには、物語を創作する能力はあまりないようです。(歴史や文学の質問では、あんなに大胆に話を創作していたのに)
事後学習で実務的なタスクばかりを教え込んだために、文学や芸術の創作能力は失われてしまったのでしょうか。
(2) キャラクター設定
キャラクター設定は、あまり効かないようです。
一方で、真面目な質問に答える実務的な対応はしっかりとしているようです。
9.コンテンツ規制
(1) 違法行為や危険な行動に関する質問
Japanese StableLM Alphaやweblab-10bはコンテンツ規制が緩く、どんな質問にも回答してきましたが、ELYZAモデルはコンテンツ規制の厳しいLlama 2をベースにしているだけあって、このような質問への回答を拒否してきます。
(2) 差別や偏見に繋がる質問
ELYZAモデルは、差別や偏見に繋がるような意見には反論してきます。
やはり、ELYZAモデルはLlama 2をベースにしているので、コンテンツ規制は厳しいようです。
10.まとめ
日常会話のやり取りは、基本的に問題ありませんが、たまに混乱して回答がおかしくなったり、ループしたりすることがあります。情報はChatGPTより古いようです。
Japanese StableLM Alphaやweblab-10bに比べると、計算や算数の問題を解くことができ、これらのモデルより論理的な思考力があるようです。但し、ChatGPT(3.5turbo)ほどではありません。
日本に関する基本的な知識は持っていますが、間違いも多いようです。日本の歴史や文学に関する知識はほとんど無く、これらの質問への回答はハルシネーション(作り話)が多いです。
物語を考えたり、文学的な文章を書いたりする能力はほとんどありません。実務的なタスクやビジネス的な文章に特化しているようです。
他の日本語公開モデルと比べてコンテンツ規制が厳しく、違法・危険な質問には回答を拒否し、差別や偏見に繋がる意見には反論してきます。これは、コンテンツ規制に厳しいLlama 2をベースにしたことが関係しているのでしょう。
結論として、実務的なタスクや説明的な文章に特化したビジネス向けの言語モデルで、創作には向きません。比較的小さい7Bモデルの割には、そこそこ論理的思考力もあります。日本に関する知識は不十分で、日本語に強いモデルですが、日本に詳しいモデルではありません。ハルシネーションが多すぎることが課題です。コンテンツ規制は厳しいです。
ハルシネーションが多いことを除けば、現在の公開日本語モデルの中では最も優秀なモデルと言えるでしょう。
日本語LLMとして、日本に関する知識が足りないことは問題ですが、日本語性能は高く、ビジネスには利用できると思います。但し、ハルシネーションが多いことは大きな課題であり、この点を早急に改善する必要があると思われます。