ELYZA-tasks-100 でLLM14個の日本語性能を横断評価してみた

## TL;DR

* 14個の「日本語が話せるLLM」（日本製・外国製問わず）の性能を、日本語データセット ELYZA-tasks-100 で横断評価しました
* 海外勢70Bモデルの性能が高いことがわかりました。7Bでは ELYZA-japanese-llama-2 や CALM2 の成績がよかったです
* モデルの回答・スクリプトへのリンクは[記事内](#リンク)に貼っています

## JGLUE などのベンチマークは、モデルの性能を反映しているのか？

2023年は、かつてないほど多くの LLM が（クローズド・パブリック問わず）公開され、まさに LLM フィーバーの年でした。
一方で、どのモデルが高性能なのか、自分の利用用途に合ったモデルはどれなのか、とお悩みの方も多いのではないでしょうか。

LLM の性能を比較するときに役立つのが、**ベンチマーク**です。
英語圏の LLM に関していえば、[MMLU](https://github.com/hendrycks/test) や [HellaSwag](https://rowanzellers.com/hellaswag/)、[WinoGrande](https://arxiv.org/abs/1907.10641.pdf) などが広く使われており、その結果は [Open LLM Leaderboard](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard) で比較できます。

日本語のベンチマーク用データセットとしては、Yahoo! JAPAN が2022年12月に公開した [JGLUE](https://techblog.yahoo.co.jp/entry/2022122030379907/) が広く利用されています。
このデータセットは、言い換え（JSTS）、常識問題（JCommonsenseQA）、推論（JNLI）などのタスク別データセットを統合したものです。

JGLUE に含まれる設問の例を見てみましょう。

> ### JNLI
>
> ```
> 前提と仮説の関係を含意、矛盾、中立の中から回答してください。
>
> 制約:
> - 前提から仮説が、論理的知識や常識的知識を用いて導出可能である場合は含意と出力
> - 前提と仮説が両立しえない場合は矛盾と出力
> - そのいずれでもない場合は中立と出力
>
> 前提: 誰も居ない学校の教室に机が並べられています。
> 仮説: 生徒が一人だけの学校の教室に机が並べられています。
> 関係: 
> ```
>
> ### JCommonsenseQA
>
> ```
> [問題]に対する[答え]を[選択肢]の中から選んでください。
>
> [問題]:会社の最高責任者を何というか？
> [選択肢]:[社長, 教師, 部長, バイト, 部下]
> [答え]:
> ```
>
> 出典: [shunk031/JGLUE](https://huggingface.co/datasets/shunk031/JGLUE/viewer/JNLI), プロンプトは [Stability-AI/lm-evaluation-harness](https://github.com/Stability-AI/lm-evaluation-harness) による ([JNLI](https://github.com/Stability-AI/lm-evaluation-harness/blob/effdbeaf742e74ea1787871e99272c12146ba346/lm_eval/tasks/ja/jnli.py#L31-L116), [JCommonsenseQA](https://github.com/Stability-AI/lm-evaluation-harness/blob/effdbeaf742e74ea1787871e99272c12146ba346/lm_eval/tasks/ja/jcommonsenseqa.py#L36-L111))

この例からわかるように、それぞれの質問は答えが決まっており (closed-ended questions)、正誤の判定を機械的に行うことができます。
その結果をもとに、accuracy やマクロF1などの統計量を算出して、成績を比較する...というベンチマークになっていいます。
このデータセットは日本語LLMの評価に広く使われており、モデル公開時のプレスリリースでも、JGLUE のスコアを掲載している場合が多いです。

一方で、公開されている LLM を使ってみると、**ベンチマークで示されたスコアが人間の肌感覚と一致しないのではないか**、と思う場面があります。

例えば、JGLUE データセットで高得点をマークしたモデル（`stabilityai/japanese-stablelm-instruct-beta-7b`）と、それよりもスコアが低い別のモデル（`elyza/ELYZA-japanese-Llama-2-7b-instruct`）に同じプロンプトを与えてみましょう。
JGLUE のスコアとは逆に、`elyza/ELYZA-japanese-Llama-2-7b-instruct` の回答のほうがよさそうに感じます。

> ### 質問
> 
> フルマラソンにチャレンジしたいです。脚力を鍛える方法を教えてください。
>
> ### `stabilityai/japanese-stablelm-instruct-beta-7b` の回答 (JGLUE平均スコア: 58.38)
>
> やあああああああああああああああああ
>
> ### `elyza/ELYZA-japanese-Llama-2-7b-instruct` の回答 (JGLUE平均スコア: 56.61)
>
> フルマラソンにチャレンジするためには、脚力を鍛える必要があります。脚力を鍛えるためには、走る距離とスピードを意識して変化させる必要があります。以下のようなトレーニング方法がおすすめです。
> 
> 1. ジョギングからはじめて、徐々に距離とスピードを伸ばしていく。
> 
> 2. 10kmを切るような距離のトレイルランニングに取り組む。
> 
> 3. ウルトラマラソンに参加する。
> 
> これらのトレーニング方法はあくまで一例です。トレーニング方法は個人のランニングスタイルや目標に合わせて選ぶことが大切です。
>
> JGLUE スコア (9タスク平均) の出典: StabilityAI (https://ja.stability.ai/blog/japanese-stable-lm-beta)

このように、人間の感覚とベンチマークスコアの乖離が生じる原因として、JGLUE データセットはクローズエンドの（答えが厳密に決まっている）質問だけで構成されている点が挙げられます。

チャットなどの質問応答・指示追従タスクでLLMを利用する場合、モデルに与えられる指示・質問は、JGLUE のように答えが1つに決まっている質問ばかりではありません。
こうしたタスクでは、あいまいな指示や、答えが決まっていない質問（open-ended questions）に対しても適切な回答を生成することが求められます。
JGLUE のような「答えが決まっているデータセット」を使って、モデルの性能を評価することは、実際の利用シーンでユーザが感じる使いやすさを反映しているとは言い切れないと思います。

こうした問題意識をふまえ、英語圏を中心に、オープンエンドの質問を使ってモデルを評価しよう、という動きがあります。
[Alpaca-EVAL](https://github.com/tatsu-lab/alpaca_eval) や [MT-Bench](https://github.com/lm-sys/FastChat/tree/main/fastchat/llm_judge#mt-bench) などが、その代表例です。
これらのベンチマークでモデルを評価する場合、回答が正しいか否かを機械的に判定できないため、人間あるいは性能のよい LLM（GPT-4 など）によって、モデルの性能を評価します。
詳細な評価方法はベンチマークごとに異なりますが、回答を5段階評価などで採点する方法（絶対評価）か、2つの回答を並べてどちらがよいか判定する方法（相対評価）に分類できます。

日本語でも、次のようなオープンエンド質問のベンチマークが開発されています。

* [ELYZA-tasks-100](https://huggingface.co/datasets/elyza/ELYZA-tasks-100)
* [Japanese MT-Bench](https://github.com/Stability-AI/FastChat/tree/jp-stable/fastchat/llm_judge)（MT-Benchの日本語訳）
* [Rakuda](https://yuzuai.jp/benchmark)

これらのベンチマークを用いたモデルの比較記事として、[ELYZA のブログ記事 (ELYZA-tasks-100)](https://zenn.dev/elyza/articles/5e7d9373c32a98) や [shi3z さんの記事 (MT-bench)](https://note.com/shi3zblog/n/n6b2ac5874021) があります。しかし、オープンエンド質問で構成されるデータセットの成績は JGLUE などのスコアに比べて測定例が少なく、とくに最近のモデルや海外発のモデルについては、評価結果がインターネット上に公開されていない場合も多いです。

そこで今回は、オープンエンド質問データセットのひとつである**ELYZA-tasks-100 を用いて、各種 LLM の日本語タスクでの性能を横断的に評価**しました。

## データセット

### ELYZA-tasks-100

ELYZA-tasks-100 は、ELYZA が開発した日本語の LLM の性能を評価するためのデータセットです。
開発元 ELYZA によるデータセットの解説を引用します。

> 本データセットはinstruction-tuningを行ったモデルの評価用データセットです。[...]
> 
> 特徴:
> 
> * 複雑な指示・タスクを含む100件の日本語データです。
> * 役に立つAIアシスタントとして、丁寧な出力が求められます。
> * 全てのデータに対して評価観点がアノテーションされており、評価の揺らぎを抑えることが期待されます。
> 
> 具体的には以下のようなタスクを含みます。
> 
> * 要約を修正し、修正箇所を説明するタスク
> * 具体的なエピソードから抽象的な教訓を述べるタスク
> * ユーザーの意図を汲み役に立つAIアシスタントとして振る舞うタスク
> * 場合分けを必要とする複雑な算数のタスク
> * 未知の言語からパターンを抽出し日本語訳する高度な推論を必要とするタスク
> * 複数の指示を踏まえた上でyoutubeの対話を生成するタスク
> * 架空の生き物や熟語に関する生成・大喜利などの想像力が求められるタスク
>
> 出典: [elyza/elyza-tasks-100 (HuggingFace)](https://huggingface.co/datasets/elyza/elyza-tasks-100)

実際のデータは、**指示・正解例・評価観点**の3つの要素から構成されています。
データの例（設問 No.11）を見てみましょう。

> ### 指示
>
> 以下の製品について、Facebookで流す広告を書いてください。子供のいる親をターゲットにして、キャッチーにしてください。  
> 【製品概要】  
> 子供のためのGPSトラッカー。音声通話ができる。
>
> ### 正解例
>
> トークできるGPS ‍新登場！
> 
> 遊んでいる子供の様子が心配なこと、ありませんか？💦  
> このGPSトラッカーなら、子供の位置がすぐ分かります！  
> しかも、通話で声が聞けるから安心😆
> 
> #喋れるGPS #キッズGPS
>
> ### 評価観点
>
> - 概要に書いていない機能（e.g. ジオフェンシング機能）などが勝手に追加されている場合: -1点
> - 製品概要の内容が抜けていたら-2点
> - キャッチーではないスタイルの場合: -1点

このように、指示ごとに模範解答や採点基準が与えられており、回答の正誤判定の参考とすることができます。
また、引用した評価観点とは別に、基本的な採点基準（指示に従えていなければ1点、方向性が合っていれば2点、...など）も示されていいます。
このため、評価時は「基本的な採点基準」「問題別の評価観点」の2つを参照して、回答を評価します。

### LLMベンチマークのコンタミネーション問題

評価データセットの作成にあたっては、**コンタミネーション**に注意する必要があります(参照: [Kaggle](https://www.kaggle.com/code/alexisbcook/data-leakage))。
コンタミネーションがあると、学習時に覚えたデータを利用してLLMが回答を生成できる可能性があり、モデルの性能を正しく評価できなくなってしまいます。
モデルの真の性能を評価するためには、学習データセットに含まれないデータを使ってベンチマークをとる必要があるのです。

ここで問題になるのは、**LLM の開発者が学習データセットを公開していない場合が多く、学習データセットのテキストを特定することが難しい**、という点です。
LLMの学習方法などがどの程度公開されているかまとめている [Opening up ChatGPT](https://opening-up-chatgpt.github.io/) を見ると、大半のモデルが学習データセット ("LLM data" や "RL data") を公開していないことがわかります。
このような事情から、今回の評価で利用した ELYZA-tasks-100 に含まれるデータが、評価対象モデルの学習データセットに含まれてしまっている可能性は否定できません。

LLM のコンタミネーションに関する問題は、公表されているベンチマークの信頼性にも関わることから、議論の対象となっています。
LLM のベンチマーク成績をまとめたリーダーボードについて、一部のモデルがコンタミネーションによって高いスコアを出しているとの指摘があるほか ([参考](https://huggingface.co/upstage/SOLAR-10.7B-Instruct-v1.0#data-contamination-test-results))、[ベンチマークの信頼性を横断調査した研究](https://arxiv.org/abs/2310.10628) ではコンタミネーションがベンチマークスコアに大きな影響を与えることが報告されています。
[モデルの回答から各種ベンチマークのコンタミネーションを検出する試み](https://github.com/swj0419/detect-pretrain-code-contamination) もありますが、この問題への対策はまだ発展途上の段階です。

コンタミネーションの問題は、非公開の評価用データセットを用いることで回避できますが、そうすると第三者がベンチマークスコアを検証できなくなってしまいます。
評価用のデータを新規作成してベンチマークを行いつつ、データセットを公開するという方法もありますが、これでは評価のたびにデータセットを作成しなおさなければならず、作業負担の面で現実的ではありません。
（学習時のデータセットが公開されればこのような問題はないのですが、CV分野における [ImageNet](https://www.image-net.org/) のようにデファクトスタンダードとなっている公開大規模学習データがあまりなく、現状では難しいでしょう...。）

この問題は、データセットが公開されているすべてのベンチマークに共通する課題です。
今回ご紹介する ELYZA-tasks-100 での評価結果についても、コンタミネーションによるスコアの上振れが生じているかもしれない、という点にご留意ください。

## 評価手法

### GPT-4 による自動評価

今回は多数のモデルを短時間・低コストで評価するため、GPT-4 による自動評価を行いました。
評価対象の LLM による回答を、設問や評価基準とあわせて GPT-4 に入力して5段階評価を行い、その平均値をモデルの最終スコアとしました。

このスキームで評価する場合、GPT-4 による評価が人間の評価と一致するのか、という点が気になります。
これについては、MT-Bench や ELYZA-tasks-100 の開発元が妥当性の検証を行っています。
[MT-Bench の論文](https://arxiv.org/pdf/2306.05685.pdf)では、GPT-4 による評価結果を人間（専門家およびクラウドソース）と比較していますが、GPT-4 と人間の評価の一致率は80%以上であり、人間どうしの評価の一致率と同程度であると報告しています。

また ELYZA の分析では、人間の評価どうしの相関には劣るものの、GPT-4 の評価と人間による評価には相関がある、という結果が得られています。

> 様々な指標から、human間の相関 > humanとgpt4の相関 という関係がわかりました。しかし、humanとgpt4の相関は0.818と高く、見かけの一致率は60.3%、ファジーな一致率は88.6%あり、人間の評価と相関しているといえます。GPT-4によるランキングも人手評価と概ね一致しており、順位が一致していない箇所も標準誤差の範囲を考えれば妥当だと考えられます。
>
> 引用元: 「ELYZAが公開した日本語LLM「ELYZA-japanese-Llama-2-7b」についての解説 : (2) 評価編」(https://zenn.dev/elyza/articles/5e7d9373c32a98#%E8%A9%95%E4%BE%A1%E6%89%8B%E6%B3%95%E3%81%AE%E5%88%86%E6%9E%90%E7%B5%90%E6%9E%9C%E3%81%AE%E8%80%83%E5%AF%9F)

GPT-4 による評価が人間による評価と完全に一致するわけではない、という点に気をつける必要はありますが、手動で評価するコストを考慮すると、GPT-4 を用いた自動評価は有効な手段だと思います。（GPT-4 による評価の妥当性については[考察](#考察)でも触れます）

### モデル

今回調査対象としたモデルは下記のとおりです。

| 開発者 | モデル名 | HuggingFace | 備考 |
| --- | --- | --- | --- |
| CyberAgent | calm2-7b-chat | [HuggingFace](https://huggingface.co/cyberagent/calm2-7b-chat) | |
| DeepSeek (深度求索) | deepseek-llm-7b-chat | [HuggingFace](https://huggingface.co/deepseek-ai/deepseek-llm-7b-chat) | |
| DeepSeek (深度求索) | deepseek-llm-67b-chat | [HuggingFace](https://huggingface.co/deepseek-ai/deepseek-llm-67b-chat) | TheBloke さんの量子化モデル (Q4_K_M, GGUF フォーマット) を使用  |
| ELYZA | ELYZA-japanese-Llama-2-7b-instruct | [HuggingFace](https://huggingface.co/elyza/ELYZA-japanese-Llama-2-7b-instruct) | |
| llm-jp | llm-jp-13b-v1.0 | [HuggingFace](https://huggingface.co/llm-jp/llm-jp-13b-v1.0) | |
| rinna | youri-7b-chat | [HuggingFace](https://huggingface.co/rinna/youri-7b-chat) | |
| Stability AI | japanese-stablelm-instruct-beta-7b | [HuggingFace](https://huggingface.co/stabilityai/japanese-stablelm-instruct-beta-7b) | |
| Stability AI | japanese-stablelm-instruct-beta-70b | [HuggingFace](https://huggingface.co/stabilityai/japanese-stablelm-instruct-beta-70b) | TheBloke さんの量子化モデル (Q4_K_M, GGUF フォーマット) を使用  |
| Weyaxi | OpenHermes-2.5-neural-chat-7b-v3-1-7B | [HuggingFace](https://huggingface.co/Weyaxi/OpenHermes-2.5-neural-chat-7b-v3-1-7B) | |
| 清華大学/中国科学院 | Xwin-LM-7B-V0.1 | [HuggingFace](https://huggingface.co/Xwin-LM/Xwin-LM-7B-V0.1) | |
| 清華大学/中国科学院 | Xwin-LM-13B-V0.1 | [HuggingFace](https://huggingface.co/Xwin-LM/Xwin-LM-13B-V0.1) | |
| 清華大学/中国科学院 | Xwin-LM-70B-V0.1 | [HuggingFace](https://huggingface.co/Xwin-LM/Xwin-LM-70B-V0.1) | TheBloke さんの量子化モデル (Q4_K_M, GGUF フォーマット) を使用  |
| 01.ai (零一万物) | Yi-6B-Chat | [HuggingFace](https://huggingface.co/01-ai/Yi-6B-Chat) | |
| 01.ai (零一万物) | Yi-34B-Chat-4bits | [HuggingFace](https://huggingface.co/01-ai/Yi-34B-Chat-4bits) | 公式4Bit 量子化モデル (AWQ) を使用 |

表の備考欄にも記載していますが、30B 以上のモデルは検証環境 (Colab Pro+) の都合上、元のモデルを実行することができませんでした。
このため、TheBloke さんの 4-bit 量子化モデルを使用しています（Yi-34B-Chat は公式の 4bit AWQ を使用）。
量子化前のモデルは、ここで報告するよりも高い性能をもっている可能性があります。

表に記載したモデルのほか Llama 2 (Facebook) や Falcon-7B (TII-UAE)、Phi-1.5 (Microsoft) も試しましたが、ナンセンスな応答しかできなかったり、日本語で質問しても回答が英語になってしまう等の現象があったため、評価結果からは除外しました。

## 評価結果

### 全体の成績

各モデルの平均スコアを図に示します。
データセットの各質問に対するモデルの出力と、GPT-4 による採点理由、最終的なスコアは [Google スプレッドシート](https://docs.google.com/spreadsheets/d/1nOWtneRdrkxwQbAN0rWmXqiJXR9IXK9lVkyDjQTqNGc/edit?usp=sharing) に掲載しています。

![ELYZA-tasks-100 による各モデルの平均評価](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58671/423ee9fc-2dbc-facc-835e-7b3a67978880.png)


図からわかるように、平均スコアが最も高かったのは `Xwin-LM-70B-V0.1` で、次いで `deepseek-llm-67b-chat`、`Yi-34B-Chat` と続いています。
上位3つはすべて中国勢で、パラメタ数も30B以上の大規模モデルです。

パラメタ数 7B で比較すると、平均スコアの上位3傑は `ELYZA-japanese-Llama-2-7b-instruct` 、`calm2-7b-chat`、`deepseek-llm-7b-chat` でした。
ELYZA-japanese-Llama-2 や CALM2 は、[shi3z さんによる MT-Bench での評価](https://note.com/shi3zblog/n/n6b2ac5874021)でも高いスコアをマークしていましたが、ELYZA-tasks-100 でも7Bモデルの中で最高レベルの性能を示しています。

一方 `japanese-stablelm-instruct-beta-7b` が他のモデルに比べて大幅に低いスコアとなっています。
これは、StableLM-β がレスポンスなしの回答をすることが多く（プロンプトの直後に end-of-text となる）、それらの回答をすべて最低スコア（1点）として処理しているためです。
（この問題の回避策をご存じの方は、ぜひ教えてください...）

肌感覚では、**2点前後のモデルはまだ発展途上、2.5点前後のモデルは用途次第で活用できるレベル、3点前後のモデルは（GPT-3.5 ほどではないものの）複数の用途で活用できるレベル**、と感じました。
なお、測定方法が異なるため直接比較はできませんが、ELYZA が実施した人間による評価での平均スコアでは、**GPT-3.5 が 3.8 点、GPT-4 が 4.3 点**となっています。
[ELYZA が取りまとめた各モデルの回答](https://docs.google.com/spreadsheets/d/1mtoy4QAqDPk2f_B0vDogFoOrbA5G42DBEEHdqM4VmDI/edit#gid=1023787356) を読んでみても、GPT-4 や GPT-3.5 の回答は、オープンLLMの回答と比べて高品質であると感じます。
最近はオープンLLMの性能向上が著しく、英語圏を中心に「GPT-3.5超え」「GPT-4超え」をうたうモデルが登場していますが、日本語での受け答えに関していえば、現時点ではプロプライエタリモデルのほうが優位に立っていると思います。

### LLMの回答と GPT-4 による評価の例

具体的なテキスト生成例として、まずは最も性能がよかった `Xwin-LM-70B-V0.1` による回答を見てみましょう。
このモデルは中国の研究者チーム（清華大学、中国科学院）が開発しており、学習データセットに日本語テキストが占める割合は高くないと推測されますが、日本語の質問に対してもきちんと回答できています。

> **Q. あなたはゲーム会社のプランナーです。新しいアクションゲームを企画することになりました。ゲームのコンセプトを考えてください。**
>
> **A.** コンセプト：『Chronicle of the Fallen』（落ちた者たちの年代記）
> 
> ジャンル：アクションRPG
> 
> 物語の概要：
> 西暦20XX年、地球上に突如として多元宇宙からの侵略者が現れた。彼らは高度な技術力を持っており、人類は圧倒的な力で蹂躙されてしまう。地球上のあらゆる国家は滅亡の危機に瀕するが、そんな時、謎の古代遺跡から発掘された「レリクス」と呼ばれる技術が人類を救うことになった。
> 
> レリクスは、地球の生命体と機械の融合を可能にするもので、人間と機械が一体化して侵略者に立ち向かうことができる。プレイヤーは、レリクスを使いこなす特殊部隊「フォールン」の一員となり、地球の未来をかけた戦いに挑む。
> 
> ゲームの特徴：
> 
> 1. レリクスによる強力な武器や能力の獲得
> 2. プレイヤーが機械と融合したキャラクターをカスタマイズ可能
> 3. 高速アクションバトルと、戦術的なオーダー制を組み合わせたバトルシステム
> 4. 壮大なストーリーと、多様なエンディング
> 5. コミュニティ機能を使って、他のプレイヤーと協力したり、競い合ったりすることができる
> 6. ストーリーに沿ったサイドクエストや、チャレンジ要素の豊富なマップ

~~ストーリーが「[マブラヴ](https://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%96%E3%83%A9%E3%83%B4)」に似ている気もしますが~~、ユーザの指示に沿った回答ができていることがわかります。
GPT-4 による評価も、最高評価の5点でした。

これに対して、特定の文体で回答する必要がある問題（「小説のセリフを書いてください」「メールの返信を書いてください」など）や、ことわざに関する質問など、日本語固有の知識が要求される問題には弱い、という傾向もみられました。
同じ `Xwin-LM-70B-V0.1` による、別の質問への回答をみてみましょう。

> **Q. 小説のセリフを書くことを手伝ってください。物語の中で、主人公は学校生活での人間関係に問題があります。彼には母親がいますが、母親は彼に良い大学に行ってほしいという気持ちからハードな勉強を押し付けてしまっています。
> ここで、最終的に主人公の気持ちを理解することができた母親のセリフを考えてください。**
>
> **A.** 母親：「息子よ、これまで僕らの関係がぎくしゃくしていたことを知っています。僕は君に良い大学に行って欲しい一心で、勉強を押し付けすぎてしまったのね。しかし、今日から僕は変わることを決めました。君の人間関係や学校生活に対して、もう僕は干渉しないであろう。君が喜ぶような道を自分で選んでいくことが大切だと気付いたのです。今後は、僕が君の味方となって、どんな悩みや困りごとにも共に乗り越えていくつもりです。信頼しあい、お互いに励まし合いましょう。それが親子の関係だと思っています。」

文意そのものは提示された場面に合っているため、指示の内容は理解できていそうです。
しかし、「**息子よ**」「**僕は君に...押し付けすぎてしまったのね**」「**僕は干渉しないであろう**」など大仰な言い回しや不自然な表現が多く、そのまま小説のセリフとして採用するのは難しいでしょう。
GPT-4 による評価は3点でした。

このように特定の文体での表現が求められるタスクでは、中国語を日本語に翻訳したような文体になってしまう場合がありました。
おそらく、モデルの内部表現が中国語になっており「中国語で考えた文章を、日本語に訳して話している」ような状態になっているのだと推測されます。

続いて、日本発のモデルである `elyza/ELYZA-japanese-Llama-2-7b-instruct` の回答例を見てみましょう。
パラメタ数は7Bで `Xwin-LM-70B-V0.1` の10分の1ですが、日本語データを中心に学習しているため、日本語独特の表現に強いと考えられます。

> **A.** 承知しました。母親のセリフとしては下記のようなものが適切かと思われます。
>
> 「私はずっとあなたが大学に行って、自分の力で道を切り拓いて欲しかっただけなんです。それがあなたにとって、苦しくてたまらないことだとは思わなかった。申し訳ありません。」

最後の「申し訳ありません」という表現がちょっと硬い気もしますが、指定されたシーンでのセリフとしてはおおむね妥当です。
先ほどの `Xwin-LM-70B-V0.1` による回答と比べれば、高い評価を与えられそうです。
...ところが、GPT-4 の評価は辛口でした。

> **評価理由:** 言語モデルの回答は、母親が主人公の気持ちを理解したというシチュエーションを踏まえており、母親が謝罪し、自分の行動を反省している点が示されています。しかし、正解例に比べると、母親の気持ちの変化や、今後の関係改善に向けた具体的な提案が不足しています。また、小説のセリフとしてはやや短く、感情の深さや複雑さが十分に表現されていないため、完全には適切とは言えません。そのため、問題固有の採点基準に基づき、文体としてやや不適切な点を考慮して-2点とします。
> 
> **最終評価:** 3点

このように、GPT-4 による評価は、人間の感覚と必ずしも一致しないことがあります。
ELYZA のブログ記事でも、GPT-4 が日本語の自然さを甘めに評価する傾向があることが報告されていますが、この例はそれを裏付けるものとなっています。

同じ問題に対する、別のモデルの回答を見てみましょう。
`elyza/ELYZA-japanese-Llama-2-7b-instruct` に比べて平均スコアのやや低かった `youri-7b-chat` の回答を引用します。

> **A.** あなたの母親は、彼女があなたに良い大学に行ってほしいという気持ちから、あなたに過剰な勉強を押し付けてしまっていると感じています。あなたは彼女に対して怒りを感じていますが、彼女があなたを心配していることも理解しています。
> 
> 彼女は、あなたが自分の感情を理解し、自分自身の人生を生きることができるようになることを望んでいます。彼女は、あなたが自分自身の人生を生きることができるようになることを望んでいます。このような状況で、あなたの母親があなたを理解し、あなたが自分自身の人生を生きることができるようになることを望んでいることを示すことができると良いです。

母親のセリフを考える、という指示に対して、母親の気持ちをユーザに説明しており、指示にうまく従えていません。
GPT-4 による評価は2点で、`Xwin-LM-70B-V0.1` や `ELYZA-japanese-Llama-2-7b-instruct` よりも低い評価となりました。
これは納得のいく評価と言えます。

ここまで、具体例を挙げながら、各モデルの回答や GPT-4 による評価の傾向を見てきましたが、実際の回答例を読むことで各LLMの特性をよりよく理解できると思います。
[各質問への回答・評価をまとめた Google スプレッドシート](https://docs.google.com/spreadsheets/d/1nOWtneRdrkxwQbAN0rWmXqiJXR9IXK9lVkyDjQTqNGc/edit?usp=sharing) を公開していますので、そちらもぜひご覧ください。

## 分析

ここからは、パラメタ数や学習トークン数といったモデルの特性と、成績の関係を見ていきます。

### パラメタ数と成績の比較

まず、パラメタ数と成績の関係をみてみましょう。
下の図は、パラメタ数をx軸、平均スコアをy軸として、各モデルの性能をプロットしたものです。

```plantuml
@startuml
<style>
root {
  Padding 0
  Margin 0
}
title {
  FontStyle normal
  FontColor black
  FontSize 18
}
</style>
title
<img:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58671/23b125ee-a702-84b8-5360-a5aa0df42df6.png>
モデルのパラメタ数をx軸、成績をy軸にとった散布図。
最も成績のよかったモデルに着目すると、7Bモデルは2点台前半、
34Bモデルは2.8点前後、70Bモデルは2.9点前後に位置している。
end title
@enduml
```


成績が上位のモデルに着目すると、**パラメタ数が増えるにしたがって、スコアが上昇する**という関係が読み取れます。
多数のモデルが密集している 7B クラスでは2点台前半がベストスコアですが、パラメタ数が増加するにつれてスコアが漸増し、70B クラスで平均3.0点のラインに迫っています。

一方、先ほどのグラフからは、パラメタ数が多くなるにしたがってスコアの向上が緩やかになっていることもわかります。
この傾向がはっきり見て取れるのが、次の図です。
今度は**モデル自体の成績をパラメタ数で割った値**を y 軸にとっています。

```plantuml
@startuml
<style>
root {
  Padding 0
  Margin 0
}
title {
  FontStyle normal
  FontColor black
  FontSize 18
}
</style>
title
<img:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58671/ab6a374c-38c7-2df7-fdbd-09dade501822.png>

モデルのパラメタ数をx軸、成績をパラメタ数で割った値をy軸にとった散布図。
最も成績のよかったモデルに着目すると、7Bモデルは10億 (1B) パラメタあたり0.3点、
34B モデルは1Bパラメタあたり0.08点、70Bモデルは1Bパラメタあたり0.05点程度である。
end title
@enduml
```

7B クラスでは、多くのモデルが1Bパラメタあたり0.3点前後ですが、30B以上では1Bパラメタあたり0.1点を下回っています。 
量子化の効果を考慮する必要はあるものの、モデルの規模が大きくなるほど性能向上効果が逓減しているようすが見て取れます。

こうした傾向を踏まえると、リソースが限られるコンシューマ向け GPU にモデルを展開する場合、パラメタ数の増加により性能向上を図る戦略には限界があると考えられます。
70B などの大規模モデルを利用できる場合は別としても、一般向けGPUで動作させる場合は 7B ～ 13B あたりのモデルを選択するのがよさそうです。

なお、パラメタ数が回答に与える影響は、[Appendix](#Appendix-パラメタ数が回答に与える影響の例)でも実際の回答例を見ながら検証しています。

### 学習トークン数と成績の比較

続いて、学習トークン数と成績の関係を図示してみます。
下図では、学習トークン数を x 軸、平均スコアを y 軸としています。
プロットした点の大きさは、モデルのパラメタ数を示しています。

指示応答モデルへのファインチューン用データセットについては、トークン数が公開されていないケースがほとんどのため、ここではベースモデルの学習トークン数で比較しました。
Llama 2 からファインチューンしたモデルは、ファインチューン時に使用したトークン数を示しています。

```plantuml
@startuml
<style>
root {
  Padding 0
  Margin 0
}
title {
  FontStyle normal
  FontColor black
  FontSize 18
}
</style>
title
<img:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58671/96fbdbe3-6b0c-5ad9-a1dc-b7fefbd0aadf.png>
モデルの学習トークン数をx軸、成績をy軸にとった散布図。
Llama2からファインチューンしたモデルがトークン数の少ない側に集中しており、最大でも200Bトークン程度である。
end title
@enduml
```



ぱっと見て気づくのは、Llama 2 からファインチューンしたモデル（青丸）が、図の左側（学習トークン数が少ない）に集中している、という点です。
Llama 2 自体は2Tトークンで学習されており、ファインチューン用のデータは少数で済むため、フルスクラッチで学習したモデルに比べて学習トークン数が少なくなっています。
Llama 2 ベースの `ELYZA-japanese-Llama-2-7b-instruct` と、フルスクラッチで学習した `CALM2-7b-chat` を比較すると、CALM2 は ELYZA よりはるかに大規模なデータセットで学習していますが、性能はほぼ同等です。
学習に利用できるデータ量や計算資源が少ない場合、Llama 2 からのファインチューンが有効な手段であると言えそうです。

一方、学習トークン数が多いほど性能がよい、と言い切れない面もあります。
先ほどの図のうち、7Bクラス、かつ Llama 2 からのファインチューンを行ったモデルに絞った図を見てみましょう。

```plantuml
@startuml
<style>
root {
  Padding 0
  Margin 0
}
title {
  FontStyle normal
  FontColor black
  FontSize 18
}
</style>
title
<img:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58671/6cf6fc7e-7f83-fbca-0762-c619826896f9.png>
Llama 2 派生モデルの学習トークン数をx軸、成績をy軸にとった散布図。
ELYZA-japanese-Llama-2, Youri-7B-chat, Japanese-StableLM-Instruct-Beta-7B
と 70B がプロットされている。7B モデルではトークン数の最も少ない 
ELYZA が約2.3点で最も成績がよく、最も多い StableLM-Beta が約1.3点で成績が一番低い
end title
@enduml
```


最もトークン数が少ない `ELYZA-japanese-Llama-2-7b-instruct` が最も高いスコアを出しており、次いで `youri-7b-chat` 、 `japanese-stablelm-instruct-beta-7b` と続いています。
これを考慮すると、データセットの規模よりも、むしろ学習の手法やデータセットの品質がELYZA-tasks-100 ベンチマークでの性能評価に大きく影響しているように思えます。

## 考察

ここまで、オープンLLMの性能を評価するためのベンチマークである ELYZA-tasks-100 を使って、各モデルの性能を比較してきました。
今回の比較分析で得られた知見をまとめます。

### 結局、どのモデルを使えばよいのか

パラメタ数が比較的少ない 7B レンジでは、ELYZA-japanese-Llama-2 や CALM2 などの日本発モデルが高いパフォーマンスを発揮しています。
リソースに制約がある環境では、これらのモデルが最適な選択肢となりそうです。
Xwin-LM や Yi-Chat などの中国発モデルも指示追従能力は高いですが、パラメタ数が少ないモデルでは日本語の不自然さが目立つため、用途を選ぶ必要があります。

一方、パラメタ数 30B 以上の大規模モデルでは、（そもそも日本発のモデルが少ないこともあり）海外モデルが高い性能を示しています。
リソースに余裕がある場合は、大規模な海外モデルを試してみるのもおすすめです。

日本語圏でも 30B レンジ以上のモデルが増えてくれば、高い指示応答能力と自然な日本語を兼ね備えたモデルが登場する可能性があります。
また、最近では MoE などの比較的小規模なモデルでも高い性能を発揮する手法が利用されはじめており、日本語圏でもこうした手法を取り入れたモデルが登場すれば、リソースが制限される環境でも性能のよいモデルが利用できるようになるかもしれません。
今後の動向にも注目したいと思います。

### GPT-4 による自動評価は信頼できるのか

今回は GPT-4 を用いて自動評価しましたが、この手法が人間の評価を完全に代替できるわけではありません。
GPT-4 による回答評価の課題として、以下のような点が挙げられます。

* 言語による性能差が、評価に影響する可能性があります。記事内でもご紹介したように、**日本語として不自然な表現があるにもかかわらず見逃しているケース**のほか、**正しい回答をしているのに減点を適用しているケース**もありました。[GPT-4 テクニカルレポート](https://arxiv.org/abs/2303.08774) では、GPT-4 の日本語の理解度が英語に比べて低いことが示唆されています。
* LLM がモデルを評価する際、バイアスがかかっている場合があります。長い回答を選好するバイアス（verbosity bias）や、自分自身の出力によって学習したデータを選好するバイアス（self-enhancement bias）などが知られています。
* GPT-4 は API 経由で利用する必要があり、モデルバージョン間の差異や回答のランダム性などが原因で評価の再現性を担保しづらいという問題があります。なお、今回の比較調査では、API バージョンを `gpt-4-1106-preview` で固定しています。

GPT-3.5 や Claude-2 を上回るベンチマーク成績を出して話題となった [Starling-7B](https://starling.cs.berkeley.edu/) の開発者らも、GPT-4 による評価の一般化に対して警鐘を鳴らしています。

> It’s important to highlight that the model’s preference ranking by GPT-4 does not necessarily correlate with human preference, a phenomenon that echoes the principles of Goodhart’s Law. Essentially, a higher MT-Bench score, as endorsed by GPT-4, doesn’t automatically imply greater human favorability, especially compared to models with lower scores.
>
> 強調すべきは、GPT-4によるモデルの好みのランキングが必ずしも人間の好みと相関するわけではないという点である。これは[グッドハートの法則](https://www.j-wave.co.jp/original/tokyounited/archives/business_outlook/2018/08/31-075031.html)が示す原則を反映した現象である。煎じ詰めて言えば、GPT-4 の評価による MT-Bench スコアが高いからといって、そのモデルが人間にとって好ましいモデルだ、と自動的に判断できるわけではない。特に、スコアが低いモデルと比較した場合はそうである。
>
> 出典: "Starling-7B: Increasing LLM Helpfulness & Harmlessness with RLAIF" (https://starling.cs.berkeley.edu/), 翻訳は筆者による

とはいえ、GPT-4 が提示した順位は筆者の肌感覚にも近く、性能のよいモデルのスクリーニングとしては活用できそうだと感じました。
人間が実際の回答を読んで評価することはもちろん必要ですが、大量のモデルを比較したいときや、限られたコスト・時間で評価しなければならない場合の選択肢として、GPT-4 による自動評価は有用だと思います。

## おわりに

海外では Llama 2 をはじめ「GPT-3.5/-4 を超えた！」とうたうオープンモデルが次々と公開され、モデル間を比較する環境も整っている一方、日本語LLMの性能評価データは十分整備されていない、という現状があります。
JGLUE のようなクローズエンド質問のデータセットは、LLM の基礎的な能力（知識や論理的推論など）を測ることには適していますが、[MT-Bench の論文](https://arxiv.org/abs/2306.05685) などでは、モデルがチャット用途でどの程度役立つかの指標としては不向きである、と指摘されてきました。

オープンなモデルも含め、LLMの分野は日進月歩です。
この記事を書いている間にも、Mixtral 8x7B など新しいモデルが次々と公開されており（Mixtral については[別記事](https://qiita.com/wayama_ryousuke/items/0b95a88487e3ac1f14ee)にまとめています）、これからも LLM の進化は続くでしょう。
日本語圏のLLMベンチマークがさらに充実し、LLMの比較がしやすくなることを期待しつつ、今後もさまざまなモデルを試していきたいと思います。

## リンク

* [評価結果まとめスプレッドシート](https://docs.google.com/spreadsheets/d/1nOWtneRdrkxwQbAN0rWmXqiJXR9IXK9lVkyDjQTqNGc/edit?usp=sharing)
* [GPT-4 による自動評価用スクリプト](https://github.com/Northern-System-Service/gpt4-autoeval)
* LLM の回答生成用 Colab ノートブック
    * [calm2-7b-chat](https://colab.research.google.com/drive/1cz-UKLiRaJRAOipg3Hr4R5rK1lzwPrTZ?usp=sharing)
    * [deepseek-llm-7b-chat](https://colab.research.google.com/drive/1YGiXqWU1dacjL_4GlY-5gZyrS6WONGLq?usp=sharing)
    * [deepseek-llm-67b-chat](https://colab.research.google.com/drive/19W8H53x30h53LlX6zzypM8bLTY_-3v7p?usp=sharing)
    * [ELYZA-japanese-Llama-2-7b-instruct](https://colab.research.google.com/drive/1k4ks6m8c4OuoGZkJ3njTwoOmeot0hHeD?usp=sharing)
    * [llm-jp-13b-v1.0](https://colab.research.google.com/drive/19WvUVrDHU0HM27uGuMbmiwnvPy5ezRu_?usp=sharing)
    * [youri-7b-chat](https://colab.research.google.com/drive/1rets4X8JHXTJgrSsRSdqEk2G-6HNu0GK?usp=sharing)
    * [japanese-stablelm-instruct-beta-7b](https://colab.research.google.com/drive/1dMcFjr5LGpKbwPHrGBjriX2WXbsWY_fx?usp=sharing)
    * [japanese-stablelm-instruct-beta-70b](https://colab.research.google.com/drive/14WxkKKYpmpZP5EVoVvnTP3Ch02Kj8fzM?usp=sharing)
    * [OpenHermes-2.5-neural-chat-7b-v3-1-7B](https://colab.research.google.com/drive/1yiIsgnjl4zUlfyQjpA_b_t6f0XXAST91?usp=sharing)
    * [Xwin-LM-7B-V0.1](https://colab.research.google.com/drive/1M43V3lvdjB30Tuufz9oxj-gfT0dbCQT4?usp=sharing)
    * [Xwin-LM-13B-V0.1](https://colab.research.google.com/drive/1Arj9GQbW28GvQsD5ij5WXESu1VHZ3QXo?usp=sharing)
    * [Xwin-LM-70B-V0.1](https://colab.research.google.com/drive/1Waf9IBv9fhk_TVkd_yab8J8fGnliNXZW?usp=sharing)
    * [Yi-6B-Chat](https://colab.research.google.com/drive/1k1418sP1_Bl3DRvgIcVCqAuN5f2RYKZo?usp=sharing)
    * [Yi-34B-Chat](https://colab.research.google.com/drive/1-5i4Y8_VVQd-KD8oSv4Om0jEg4ELxGW4?usp=sharing)

## Appendix. パラメタ数が回答に与える影響の検証

パラメタ数が回答品質に与える影響を示す例として、同じ質問に対する `Xwin-LM` の 7B、13B、70B モデルの回答を比較してみましょう。

> **Q: 次に読むべきSFを10冊挙げて**
>
> ### Xwin-LM-7B-V0.1
>
> 以下は、SFファンにとって絶対に読むべき10冊の中から選んだものです。
> 
> 1. 『さらば、宇宙の戦士』（Arthur C. Clarke）：冒険的なテーマと先進技術が絶妙に調和した作品。
> 2. 『ドラキュラの娘』（Dracula's Daughter）：ファンタジーSFとホラーの境界を描いた不朽の作品。
> 3. 『地球が静止する日』（The Day the Earth Stood Still）：SFの古典として知られる作品。
> 4. 『2001年宇宙の旅』（2001: A Space Odyssey）：カンバートンのSF小説の中でも屈指の名作。
> 5. 『星の戦士』（The Star War）：SFとファンタジーが融合したシリーズ。
> 6. 『虹の彼方』（The Rainbow's End）：SFの世界観と未来の社会を描いた優れた作品。
> 7. 『戦士の賦役』（The Soldier's Tale）：コルトーのSF短編で、音楽とSFを融合させた優れた作品。
> 8. 『ターミネーター』（Terminator）：時間旅行やロボットの哲学を扱った快作。
> 9. 『バック・トゥ・ザ・フューチャー』（Back to the Future）：時間旅行と科学の進歩をテーマにした楽しい作品。
> 10. 『秘密結社シャドウラン』（The Shadowrun）：ファンタジーとSFが融合したシリーズ。
> 
> これらの作品は、SFファンにとって欠かせないものであり、多くの人々にとって影響を与えた作品です。

4（[2001年宇宙の旅](https://en.wikipedia.org/wiki/2001:_A_Space_Odyssey_(novel))）と6（[虹の彼方](https://en.wikipedia.org/wiki/Rainbows_End_(novel))）を除いて、この回答は「読むべきSF」つまり**SF小説を挙げるという題意を満たしていません**。
挙げられた項目の半数以上は映画（[2](https://en.wikipedia.org/wiki/Dracula%27s_Daughter),[3](https://en.wikipedia.org/wiki/The_Day_the_Earth_Stood_Still),[5](https://en.wikipedia.org/wiki/Star_Wars),[8](https://en.wikipedia.org/wiki/The_Terminator),[9](https://en.wikipedia.org/wiki/Back_to_the_future)）や劇（[7](https://en.wikipedia.org/wiki/L%27Histoire_du_soldat)、内容もSFではない）、TRPG ([10](https://en.wikipedia.org/wiki/Shadowrun)) になっており、題意を十分理解できていないことが伺えます。
なお 1 は架空の作品で、実際には存在しないと思われます。

次に、13B モデルの回答を見てみましょう。

> ### Xwin-LM-13B-V0.1
>
> 以下に、SFファンにおすすめの10冊の小説を紹介します。これらの作品は、革新的なテーマやアイデア、創造的な設定によって知られており、SFの世界にとって重要な作品です。
> 
> 1. 『地球最後の男』（The Last Man on Earth） - フィリップ・K・ディック（Philip K. Dick）
> 2. 『異星からの侵略』（The War of the Worlds） - H・G・ウェルズ（H.G. Wells）
> 3. 『2001年宇宙の旅』（2001: A Space Odyssey） - アーサー・C・クラーク（Arthur C. Clarke）
> 4. 『スターシップ・トゥルーパーズ』（Starship Troopers） - ロバート・A・ハインライン（Robert A. Heinlein）
> 5. 『宇宙の旅』（A Wrinkle in Time） - メアリー・D・プロイス（Madeleine L'Engle）
> 6. 『ルーシャス・エフェクト』（The Sparrow） - メアリー・D・プロイス（Mary Doria Russell）
> 7. 『火星の人』（The Martian Chronicles） - レイ・ブラッドベリ（Ray Bradbury）
> 8. 『異星からの使者』（The Left Hand of Darkness） - ウルスラ・K・レッグーム（Ursula K. Le Guin）
> 9. 『スラングル』（Slaughterhouse-Five） -  Kurt Vonnegut
> 10. 『タイタンの戦い』（The Battle of the Titans） - サミュエル・R・ディレイニー（Samuel R. Delany）
> 
> これらの作品は、SF小説の歴史やジャンルの多様性を代表するものです。各作品は、独自のスタイルやテーマを持っており、SFファンにとってはおすすめの閲覧物となっています。

作品名が日英2言語で挙げられていますが、英語で挙げられた作品はほぼすべてSF小説です（10 は架空の作品ですが）。
一方、作品名の和訳が誤っていたり（たとえば 8. "The Left Hand of Darkness" は『[闇の左手](https://ja.wikipedia.org/wiki/%E9%97%87%E3%81%AE%E5%B7%A6%E6%89%8B)』が正しい）、作者の日本語表記が英語名と合っていない（5 はメアリー・D・プロイスではなく[マデレイン・レングル](https://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%87%E3%83%AC%E3%82%A4%E3%83%B3%E3%83%BB%E3%83%AC%E3%83%B3%E3%82%B0%E3%83%AB)）など、回答のなかに自己矛盾が見られます。
質問の意図を理解していることは伺えますが、役立つ回答とは言い難いです。

最後に、70B モデルの回答です。

> ### Xwin-LM-70B-V0.1
>
> 以下は、今後読むべきSF10冊のリストです。これらの作品は、古典的な名作から現代のベストセラーまで、さまざまな時代とジャンルを代表しています。
> 
> 1. 『フランケンシュタイン』（Mary Shelley） - この古典的なゴシックSF小説は、1818年に発表されました。研究者が死と再生の境界線を越えて造り出したクリーチャーとその創造主との関係を描いています。
> 2. 『時計じかけのオレンジ』（Anthony Burgess） - 1962年に発表されたこのディストピアSF小説は、近未来の暴力と狂気に満ちた世界を描いています。
> 3. 『2001年宇宙の旅』（Arthur C. Clarke） - この1968年の小説は、スタンリー・キューブリック監督による同名の映画と共に発表されました。人類が初めて接触する高度なエイリアン文明との遭遇を描いています。
> 4. 『猿の惑星』（Pierre Boulle） - 1963年に発表されたこのSF小説は、地球が猿に支配された遠未来を描いています。人類と猿の関係や倫理的な問題をテーマにしています。
> 5. 『タイム・マシン』（H.G. Wells） - H.G.ウェルズの1895年の小説で、タイムトラベルと未来社会を描いています。この作品は、SFジャンルにおけるタイムトラベル物語の先駆けとなったでしょう。
> 6. 『審判』（Franz Kafka） - 1925年に発表されたこの小説は、KafkaがSF的な要素を取り入れて描いた神秘的な世界を描いています。
> 7. 『1984年』（George Orwell） - 1949年に発表されたこのディストピアSF小説は、全体主義的な政府が支配する近未来の世界を描いています。
> 8. 『ファウンデーション』（Isaac Asimov） - 1951年に発表されたアイザック・アシモフの SF小説。数千年にわたる銀河帝国の歴史を描いており、心理学と歴史の研究がテーマです。
> 9. 『Dune』（Frank Herbert） - 1965年に発表されたフランク・ハーバートのSF小説。砂漠惑星アラキスを舞台に、政治と宗教の闘争を描いています。
> 10. 『ニューヨーク2140』（Kim Stanley Robinson） - 2017年に発表されたこの近未来SF小説は、海水面上昇によって変わりつつあるニューヨークを舞台に、環境問題と人類の居住空間をテーマにしています。

6（カフカの『[審判](https://ja.wikipedia.org/wiki/%E5%AF%A9%E5%88%A4_(%E5%B0%8F%E8%AA%AC))』）は通常SFとは見なされませんが、それ以外はSF小説として適切です。
作品を薦める記述もあり、親切な回答ができています。

このように、パラメタ数が少ないモデルでは、**問題の趣旨を誤解して的外れな回答をする場合**や、**回答に矛盾があるケース**（英語と日本語で作者名が異なるなど）がみられますが、**パラメタ数が増加するにしたがって、問題の趣旨をきちんと理解して適切な回答ができる**ようになっています。
モデルの規模と回答品質の関係が、このように明確に読み取れるのは興味深いところです。

## Appendix 2. 他のモデルも評価してみた

本編の調査終了後に公開されたモデルも、同様の手法で評価してみました。

調査したモデルは次のとおりです。

| 開発者 | モデル名 | HuggingFace | 備考 |
| --- | --- | --- | --- |
| 清華大学/SAIL(上海人工知能研究所)/01.ai | openchat-3.5-1210 | [HuggingFace](https://huggingface.co/openchat/openchat-3.5-1210) | |
| 東京工業大学/産総研 | Swallow-7b-instruct-hf | [HuggingFace](https://huggingface.co/tokyotech-llm/Swallow-7b-instruct-hf) | |
| 東京工業大学/産総研 | Swallow-13b-instruct-hf | [HuggingFace](https://huggingface.co/tokyotech-llm/Swallow-13b-instruct-hf) | |

平均スコアは次の図のようになりました。
OpenChat-3.5-1210 が平均2.08点、Swallow-7B が1.92点、Swallow-13B が 2.12 点、という結果でした。


![elyza-tasks-100_benchmark_performance_appendix.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58671/ae12be62-5da1-24e0-5275-92d39eaf1b87.png)

各モデルの回答例を見てみましょう。

> **Q. 仕事の熱意を取り戻すためのアイデアを5つ挙げてください。**
> 
> ### OpenChat/openchat-3.5-1210
>
> 1. 仕事の目標をリフェット: 新しい目標やプロジェクトに取り組むことで、元々の興味や熱意を回復できます。新たな挑戦を選ぶことで、疲れやむりではなく楽しく仕事を敢いすぐれるようになります。
> 2. コラボレーションを図る: 他の役割や部門のメンバーとワークショップやコミュニケーションを通して、一緒に新しいアイデアや手法を生み出しましょう。他者からのアイデアや視野を広げることで、仕事の楽しさや取り組みを再び見つけることができます。
> 3. 自己成長: 自分のスキルや知識を提高することで、仕事の興味を取り戻せます。例えば、新たな工程や技術を学ぶことで、興味深い仕事に取り組むことができるようになります。
> 4. ワークライフのバランス: 仕事以外の活動や趣味を重視し、ストレスを解消するために役割を分担しましょう。新たな飾る空間や休日の活動にコミッティーすることで、興味深い人たちとの出会いや新しい視界を見つけることができます。
> 5. 成果を実感する: 目指す成果やゴールに向かってステップバイステップ取り組むことで、進捗を実感し、成功感をもたらせます。これにより、熱意を取り戻せるようになります。
> 
> これらのアイデアを実践し、自分たちの仕事環境に応じて柔軟に取り組むことで、元々の熱意を再生できるでしょう。

回答の方向性自体は合っているのですが、「**リフェット**」「**敢いすぐれる**」「**新たな飾る空間や休日の活動にコミッティーする**」など、日本語の自然さという面では改善の余地があります。
日本語データを使ってファインチューンすれば、もっと良い回答が得られるかもしれません。

> ### tokyotech-llm/Swallow-7b-instruct-hf
>
> 仕事の熱意を取り戻す5つのアイデアを紹介します。
> 
> 1.達成したい目標を設定する。
> 
> 2.同僚と積極的に関わり、支援を求める。
> 
> 3.タスクの優先順位を明確にする。
> 
> 4.プロジェクトを小さく分解し、段階的に進める。
> 
> 5.新しいテクノロジーを学び、ツールの使い方を向上させる。

日本語の自然さは高く、さすが日本語圏のモデルです。
ただ、仕事の熱意回復というよりは、仕事の効率化につながるアイデアになっているのが惜しいところ。

> ### tokyotech-llm/Swallow-13b-instruct-hf
>
> 仕事の熱意を取り戻す5つの方法
> 
> 1.仕事を好きになる  
> 2.目標を設定する  
> 3.ワークアウト  
> 4.セルフケアを行う  
> 5.感謝をしてください  

回答自体は簡潔ですが、質問のテーマには合っていると思います。


## Appendix 3. さらに他のモデルも評価してみた

他の日本語モデルとして、[Augmxnt](https://augmxnt.com/) の [shisa-7b-v1](https://huggingface.co/augmxnt/shisa-7b-v1) と、TheBloke さんが公開した [Swallow-70B-instruct の GGUF モデル](https://huggingface.co/TheBloke/Swallow-70B-instruct-GGUF) も評価してみました。

| 開発者 | モデル名 | HuggingFace | 備考 |
| --- | --- | --- | --- |
| 東京工業大学/産総研 | Swallow-70b-instruct-hf | [HuggingFace](https://huggingface.co/tokyotech-llm/Swallow-70b-instruct-hf) | TheBloke さんの量子化モデル (Q4_K_M, GGUF フォーマット) を使用  |
| Augmxnt | shisa-7b-v1 | [HuggingFace](https://huggingface.co/augmxnt/shisa-7b-v1) | |


```plantuml
@startuml
<style>
root {
  Padding 0
  Margin 0
}
title {
  FontStyle normal
  FontColor black
  FontSize 18
}
</style>
title
<img:https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58671/1dfa1526-ac76-87df-30ad-616a4e6cc0aa.png>
Swallow-70B と shisa-7b-v1 を加えた評価結果グラフ。Swallow-70B は 2.10 点、shisa-7b-v1 は 1.91 点。
end title
@enduml
```


予想外だったのは、Swallow-70b（4-bit 量子化）の成績が 2.10 点と、Swallow-13b （平均2.12点）よりも低かったことです。
他のモデル（Xwin、StableLM-beta、Yi など）では、パラメタ数の増加にあわせてスコアが向上していたのですが、Swallow-70b はこの傾向とは逆の結果になりました。
本編でも触れたように、今回の比較では 30B 以上のモデルに対して、原則として TheBloke さんの GGUF フォーマット（4bit）による量子化を適用していますが、何らかの理由で Swallow が量子化による精度低下の影響を強く受けている可能性があります。
この問題については、今後検証してみたいと思います。

具体的な回答例を見てみましょう。

> **Q. 仕事の熱意を取り戻すためのアイデアを5つ挙げてください。**
> 
> ### Swallow-70b-instruct-hf
>
> ここでは、あなたの仕事への熱意を再燃させるかもしれないアイデアを5つ紹介します:  
> 1.自分がなぜその仕事に就きたいと思ったのかを思い出してみてください。もし、あなたがその職業を選んだ動機や目標を思い出したら、それらを紙に書き出して、今でもモチベーションにつながるかどうか確かめてみましょう。また、自分のキャリアで達成したいことをリストアップする時間を取ってもいいでしょう。  
> 2.同僚と話してみる:仕事が退屈でストレスがたまっているときは、友人や家族、同僚に相談するとよいでしょう。そうすれば、彼らがどのようなアイデアを持っているか、またあなたの状況を経験したことがあるかどうかを知ることができます。  
> 3. 新しいスキルを学ぶ:もし、あなたが仕事でより多くの刺激ややりがいを求めているなら、その分野に関連する新しいスキルを学ぶ時間をとってみましょう。これは、読書をしたり、オンラインコースに登録したり、地元のワークショップやクラスに参加したりすることかもしれません。  
> 4. 休憩を取る:もし仕事がストレスやフラストレーションの原因になっているなら、しばらく休みをとって自分自身の面倒を見てもいいでしょう。友人と交流したり、運動したり、新しい場所を訪れたりしてみましょう。そうすれば、リラックスでき、エネルギーが湧いてくるような新しい視点で仕事に戻れるかもしれません。  
> 5. 上司やメンターに相談する:自分のキャリアをもっとエキサイティングでやりがいのあるものにしたい場合は、上司やメンターと話してみましょう。より重要なプロジェクトへの参加や、チームメンバーと協力した新しいアイデアの追求など、あなたが仕事に対して熱意を持てるような方法を提案できるかもしれません。  
> このような戦略を用いることで、あなたのキャリア目標を見直し、達成したいことをよりよく理解することができます。
>
> ### Shisa-7b-v1
> 
> 1. 目標を設定する: 仕事に対する情熱を取り戻したい場合、まず自分のキャリアのビジョンと現在のポジションとのギャップを特定することが重要です。また、自分自身の価値観や興味に沿った仕事に就くことでやりがいを感じることができるかもしれません。
> 
> 2. 新しいスキルを学ぶ: 新たなスキルを身につけることで、職場での役割を再定義し、新たな挑戦に備えることができます。また、特定の分野の知識を深めることも、モチベーションの向上につながります。
> 
> 3. キャリアカウンセラーに相談する: キャリアカウンセリングを受けることで、今の状況を客観的に分析し、その後の計画を立てることができます。また、キャリアカウンセラーは、あなたの強みと弱み、キャリア上の目標、将来の夢について話し合うことができます。
> 
> 4. 自己啓発プログラムに参加する: 自己啓発プログラムやワークショップに参加することで、自信を高め、成功への意欲を高めることができます。これらのプログラムでは、コミュニケーション能力、リーダーシップ、問題解決などのスキルを学びます。
> 
> 5. プロジェクトチームに参加する: 他の同僚と共同で作業に取り組めば、より創造的な方法で仕事を進めることができ、共通の目標に向かって協力しやすくなります。

どちらのモデルも、おおむね題意に沿って回答ができていそうです。

> **Q. 以下の説明を読んだユーザーが感じるであろう疑問とは？**
> 
> **大量のゴミの処理にお困りではありませんか？**
> 
> **「生産で出るゴミ処理費用が大幅にかかっている」**
> **「指定ゴミ袋が導入され、一気にコストが上がってしまった」**
> **「工場が狭いので、ゴミ保管スペースを減らしたい」**
> **「ISO14001でゴミ削減が大きな課題となっている」**
> 
> **場所をとる嵩張るゴミをつぶしてまとめて運びやすい形にすることで、処理・保管・運搬にかかる様々なコストを削減したり、環境負荷の低減にも貢献できるのが、廃棄物圧縮減容機→『ゴミ圧縮機』です。**
> 
> **ゴミ圧縮機の主な用途は廃プラスチック・紙・段ボール・袋類・ペットボトル・プラスチック容器などつぶれるが元に戻ってしまうゴミを圧縮梱包します。**
>
> ### Swallow-70b-instruct-hf
>
> 質問
>
> ### Shisa-7b-v1
>
> ユーザーが感じているかもしれない疑問を以下に示します。
> 
> 1. 大量のごみ処理に困っている？
> 2. 「廃棄物の排出量が大きく増えた」と感じますか？
> 3. 工場が広いため、ごみ保管スペースを節約する必要がありますか？
> 4. ISO 14001の要件により、廃棄物を減らすことが課題になっていると想像できますか？

Swallow-70B の回答は、題意から外れた内容になってしまいました。
Shisa の回答は方向性が合っているものの、質問に対する的確な回答とは言い難い面があります。