ChatNTQ 7B と LightChatAssistant 2x7B の日本語性能を測定する

  • 前回の記事で試した日本語チャットモデル「ChatNTQ-JA-7B-v0.1」と、そのMoEモデル「LightChatAssistant 2x7B(改称あり)」について、かなり性能が良さそうな感触が得られたので、追加でテストしてみました。
  • LLMの日本語チャット性能を測るベンチマークとしては「MT-Bench日本語版(GPT-4測定)」が最も代表的ですが、何度も測定するにはコスト面でヘビーそうなので、代わりにELYZAさんの考案した「ELYZA-tasks-100」を使うことにしました。

huggingface.co

  • このベンチマークは5点満点の日本語記述問題100問から構成されています。本来は人手で採点しますが、GPT-4採点でも人力評価とかなり高い相関が得られるようです。
    • 詳細はこちらこちらの記事で丁寧に紹介されています。同じモデルでも記事によって若干スコアが違いますが、単純な誤差のほかGPT-4のバージョン更新などが影響するようです。

ELYZATasks100 測定結果

  • 今回はGPT-4-Turbo(0125版)を使って測定しました。APIコストは1件あたり1ドルほど。比較対象にしたのは個人的に日本語性能が高いと感じた小型モデルです。結果は以下のとおりでした。
ベース Command R Mistral 7B Llama-2 7B
名称 Command R v01 LightChat Assistant
2x7B
ChatNTQ JA 7b Rakuten 7B Chat Shisa Gamma 7B ELYZA 7B Instruct
パラメータ 35B 35B 2x7B 7B 7B 7B 7B
量子化 Q8_0 IQ3_XXS Q8_0 Q8_0 Q8_0 Q8_0 Q8_0
サイズ
(量子化後)
37.2GB 13.8GB 13.7GB 7.7GB 7.8GB 7.7GB 7.2GB

ELYZATasks
平均得点

3.42 3.09 3.31 3.06 2.82 2.81 2.46
標準誤差 0.15 0.15 0.14 0.15 0.14 0.15* 0.13
平均字数 194.02 196.58 273.61 240.46 108.54 297.71 243.02
  • ベンチマーク結果は、個人的な使用感による順位とだいたい一致した印象です。「ChatNTQ-JA-7B」は、やはり7Bクラスのモデルの中ではとても優秀でした(比較した「Rakuten 7B」や「Shisa Gamma 7B」も7Bモデルの中では性能のいい部類です)。
  • この「ChatNTQ-JA-7B」と小説生成モデル「Antler-7B」をMoEマージした「LightChat Assistant 2x7B」のスコアはさらに高いです。パラメータ数がはるかに大きい多言語モデル「Command-R 35B」の日本語性能に迫っています。
    • さらにファイルサイズがほぼ同じになる「Command-R 35B」のIQ3_XXS量子化と比較すると「LightChat Assistant 2x7B」のQ8量子化のほうがスコアが高くなります。
  • なおGPT-4は冗長な回答を高く採点しやすいとよく言われるので、興味本位で出力字数の平均も取ってみました。今回は字数に影響される傾向は見られませんでした(ELYZATasks100では採点基準で説明の丁寧さも評価されるので、字数と相関があったとしても必ずしも問題はありません)。

 雑感

  • LightChat Assistant 2x7B」のチャット性能の高さは、ベースにした「ChatNTQ-JA-7B」の優秀さもありますが、小説生成モデルの「Antler-7B」とのマージがうまく機能している面も大きいようです。
  • 「Mixtral 8x7B」や「Qwen 1.5 MoE A2.7B」のように最初からMoEを使って作られたモデルの推論が高効率・高性能なことはよく知られています。一方、MergeKitで作られたコミュニティのMoEモデル(FrankenMoE)は、サイズは大きいけれど体感性能がほとんど変わらないと感じることが多いです。
  • しかし「LightChat Assistant 2x7B」は、体感性能でもベンチマークスコアでも明らかにベースモデルを上回っているので、適切な組み合わせでマージするとMergeKit製のMoEでもしっかり効果が得られるようです。
  • 面白いので、MoEマージの組み合わせについて引き続き調べてみたいと思います。