Llama 2が発表された(公式サイトはLlama 2 – Meta AI huggingfaceへはmeta-llama (Meta Llama 2) (huggingface.co))ので機械翻訳性能を検証してみた。論文によると日本語データは0.1%程度しか含まれていない[1]とのことだが機械翻訳性能はかなり高い。
性能評価に使用したデータは前回(DAMO PolyLM-13Bの機械翻訳性能 | ぷるーふおぶこんせぷと (staka.jp))と同じ。同様の条件でサンプリングして使っている。他のフリーなモデルに比べて回答部分の抽出は容易になっているがそれでも失敗することがある[2]。そのためルールベースで回答部分を抽出した結果と手動抽出した結果の2通りでBLEUを算出している。
環境はColab Pro+を用いfloat16で読み込んだ。A100 VRAM 40GBではメモリ制約が厳しいのも前回同様。結果は下表の通り。13Bモデルの性能は高く(特に最大の構成70Bであれば)ChatGPT(GPT-3.5)相当という評価は過大というわけではなさそう。
モデル・条件 | zero shot | 1 shot [3] |
GPT-3.5 [4] | 26.7 | 37.0 |
Llama-2-7b-chat-hf | 11.6 | 20.1 |
Llama-2-7b-chat-hf ※手で回答抽出 | 13.4 | 23.9 |
Llama-2-13b-chat-hf | 19.1 | 33.1 |
Llama-2-13b-chat-hf ※手で回答抽出 | 19.1 | 35.1 |
結果
話題のLlama 2を試してみた。13Bかつ1 shot設定でうまく回答が抽出できればChatGPT(GPT-3.5)に迫るレベル。プロンプトを工夫すればもう少しスコアを出せそうとも感じる。
Llama 2の事前学習トークン量は2Tとされていて日本語データはそのうち0.1%とのこと。日本語データの割合が少なくても一定の性能が出せることに驚き。絶対量としても2TB×0.1%=2G tokensであり多いと言えば多いが大量というほどでもない。7Bと13Bで大きな性能差がある事も興味深い。MPTの検証でも感じたが機械翻訳を行う場合7Bでは厳しいのかもしれない。70Bでどうなるか、特にzero shotでの性能が改善するか非常に気になるところ[5]。
Llama 2を用いた派生モデルは今後出てくるはずで日本語能力の強化バージョンも開発されるはず。すでにMeet FreeWilly, Our Large And Mighty Instruction Fine-Tuned Models — Stability AIが発表されている。(前回の感想と同じだが)フリーのLLMに期待したい。
脚注
[1] Llama 2: Open Foundation and Fine-Tuned Chat Models | Meta AI Research 論文の22ページ目
[2] 特にICL利用時に意図しない出力が続くことが多かった。公式にも書かれている通りllama/llama/generation.py at main · facebookresearch/llama · GitHubを参考にプロンプトを組み立てると改善するものと思われる。(時間が無いこともあってプロンプトチューニングは十分ではない…)
[3] OpenICL、TopkRetrieverにより取得
[4] gpt-3.5-turbo-16k-0613
[5] 4bit量子化してもA100(40GB)だと推論時にOut of Memoryになる…