見出し画像

LLMリーダーボード運営から学んだ2023年の振り返り

Weights & Biases のnoteをフォローしてください

この度Weights & Biases Japan(W&B Japan)は、7月より Nejumi.ai にて運営してきたLLM(大規模言語モデル)の日本語評価リーダーボードをアプデートします(2023年12月27日に公開予定)。本稿ではアップデートに至るまでの経緯と私たちがLLM評価について学んだことを共有したいと思います。

そもそもなぜリーダーボード?

昨年OpenAIがChatGPTをリリースしてから1年余りが経過し、世界中でLLM開発が多くの企業のAI開発に大きな渦を巻き起こしました。毎日のように新しいLLMモデルがリリースされ、基盤モデル、継続事前学習、ファインチューニング、高速化、マルチモーダル、などなど、その開発の幅も極めて広くなってきています。一方で多くの開発は英語を中心に行われており、海外では高く評価されているモデルでも日本語の能力は低かったり、不明だったりすることが多い状況がありました。また、日本においても多くの企業が日本語特化型のLLMを開発するにいたり、それらのモデルが海外のモデルと比較してどの程度のパフォーマンスを示すのかにも高い関心があります。

また、公表されている多くのモデル評価はモデル開発者によって計算されています。モデルの評価は同じデータセットを使った評価でもメトリックの計算方法などによって大きく結果が異なるため、自分たちの開発しているモデルに贔屓目な結果が出るようにしている(意図せずとも、どうしてもそうなってしまう)、ないしそのように見られてしまうリスクがあるという課題もあります。

リーダーボードを運営して見えてきたこと

NejumiリーダーボードではこれまでJGLUEデータセットを使ってLLMモデルの評価を行ってきました。JGLUEデータセットに関しての詳細な説明はここでは省きますが、もともとはまだ対話型LLMモデルが登場する以前のNLP(自然言語処理)の評価を目的に作られたデータセットであり、一問一答型のベンチマークによって、言語・論理・知識応用能力が試されます。

W&Bの開催している月次ミートアップでは、11月にJGLUEの作者のお一人でもある早稲田大学の河原先生をお迎えし、JGLUEデータセット構築の背景や手法について詳しくお話を聞きました。評価データセット作成における工夫や苦労がよくわかる内容です。

JGLUEのようなデータセットを使ったベンチマーク評価は、選択問題や抜き出しなど、答えがはっきりとしている応答問題として設定されているケースがほとんどですが、実際に使う上では評価方法に違いが生まれます。例えば英語版LLMリーダーボードの老舗で知られるHuggingFace社のブログ”What's going on with the Open LLM Leaderboard?”でも解説されていますが、例えば選択問題の評価においても、モデルが選択肢の中でどれを最も答えらしいとしたかを計測することで、答えそのものの質ではなく、理解度を評価する手法などが存在します:

4択問題の評価を与えられた選択肢の中だけで評価するある種の手助け
同じ4択問題だが、選択肢にない別の解を出したら不正解

このような手法はまだ言語モデルが満足な返答を返さない時代に(また現在でもチューニング前のLLMモデルに対して)は一般的に行われていた手法ですが、近年のLLMモデルのように精度が高い回答をできるモデルの時代にはそぐなわくなっているという考えもあり、Nejumiリーダーボードではこの種の手助けをせずにモデルを評価しています。
また同様にFew-shot学習をプロンプトのコンテクスト内で行うことで、モデルを手助けする手法があり、それ自体有効な手段であることは間違いないのですが、W&Bチームでは「素の」モデルの評価に重点を置き、ゼロショットでの評価を行ってきました。

これらの基本的な(辛口の)考え方に基づいて、初期バージョンのNejumiリーダーボードは構築・運用され、8月には日本で最大級のモデル数を誇るリーダーボードに成長。LLM開発者の中でも広く認知されるに至りました。当初よりGPT-4が最上位にランクインし、その下にGPT-3.5がつけていたわけですが、夏にLlama2やそのファインチューニング版であるStable Beluga、Anthropic社のClaudeなどのモデルが発表されると、GPT-4とGPT-3.5の間にランクインするモデルが増えてくるようになり、オープンソース・オープンウェイトモデルの発展を敏感に感じることができるようになりました。

おしゃべりなLLM

ただ、実際のところ、対話用にファインチューニングをされたLLMモデルでも、予期される返答を返さないことは非常に多いです。

今年リリースされたモデルの中でも、そのオープン性から最も重要だったと言えるMeta社のLlama2モデル(70B)ですら、下記のような対話が返ってきます

プロンプト:<s> [INST] 与えられた計算問題に対する答えを整数または小数で出力してください。数値のみを出力し、それ以外には何も含めないことを厳守してください。 問題:大山のバナナコレクションには36本のバナナがあります。バナナを9つのグループに分けると、それぞれのグループの大きさはどのくらいになりますか?[/INST]
Llama2:Sure! Here's the answer to the(指定文字数オーバーのためカット)

これだけ数字以外には出力すなと言っても、Llama2モデルはご丁寧に前置きをすることを忘れません。仮にこの前置きの後に正しい答えを答えていたとしても、この返答を正しいと評価することはモデルへの「手助け」になります。

このような問題に私たちは頭を悩ませました。Nejumiリーダーボードで下位に来ているモデルの多くが形式違反による不正等が理由(正しい答えをその後にしているかどうかすら評価されていない)によってスコアを下げている状況があり、中には他所で高く評価されているモデルもありました。

また、このようなベンチマークテストが、会話などの文書生成能力を期待されているLLMの評価を行うのに果たして妥当なのかどうか、というディスカッションも私たちのチームに限らず行われており、Sam PassagliaさんのRakudaや、Stability AI Japanチームの Japanese MT-Bench などはLLMモデル(多くの場合GPT-4)を使ったLLM評価の手法を発展させていきました。

失敗からの学び

そのような議論の中、10月末にLLM-jp からモデルが新たなリリースされました。前述の河原先生もデータセット準備に関わり、モデル開発、モデル評価などを国立情報学研究所が主宰する産学連携のオープンなコラボレーションの中で開発してきたもので、W&B Japanもその評価チームの活動に参加させていただきました。

LLM-jpではJGLUEの多くを包含し、それよりもさらに幅広い日本語評価用データセットを含むJasterデータセットを開発しただけでなく、このデータセットのトレーニングデータとテストデータを厳格に分け、トレーニングデータに関してはファインチューニング時の学習データに含められました。

このモデルをNejumiリーダーボードで評価したところ、極めて高い結果を示しました。13Bパラメーターという比較的小さな規模のモデルにも関わらず、GPT-4を除くほかすべてのモデルよりも上位にランクインしたのです。この理由ははっきりしていて、LLM-jpモデルがファインチューニングにおいて、明示的にJGLUE(の学習用)データを使って学習しており、テスト用のデータは見ていないので厳密にはリーケージではないものの、前述の形式違反などの問題は極めて低い確率に抑えられていることが挙げられます。

LLM-jpのモデルがリリースされた後のNejumiリーダーボード

このことは私たちも頭では理解できましたが、これほどまでの効果があるということには驚きを感じました。また、これまでの私たちの評価体系がある意味「破られた」という感覚も持ちました。また、このような問題は他のモデルについてはどのような状況にあるのかという疑問も生まれました。大量のデータをインターネットからスクレーピングするようなデータ収集方法で学習データセットを作るLLM開発においては、意識せずとも評価用データが、学習用部分に限らず全部含まれてしまうようなケースも十分に考えられます。また、悪意(ないし遊び心)を持った開発者が意図的に評価用データを学習データに含めれば、特定のランキングで非常に高くランクインすることは簡単にできそうです。

そのような議論はかつてからあり、テスト用データをオンラインで公開するべきではないとする論文、やコンタミネーションを検知する取り組みなどが存在するものの、テストデータを翻訳することで、コンタミネーション検知を免れることができるという研究結果も出ており、一筋縄では解決できない複雑な問題になっています。

このような課題は前述の河原先生のプレゼンで触れられています(Seen/unseen問題)し、LLM-jpの評価をリードしていたHanさんのプレゼンテーションも大変参考になります。

なぜみんなズルしないのか?

ではなぜ世の中のモデルは皆評価データセットでファインチューニングしないのかというと、そのようにファインチューニングされたモデルには欠点もあるからです。前述のLLM-jpモデルの出力結果を他のモデルと比較すると、極めて短い答えしか返してくれないことが指摘されています。結局のところこれは何を目的にモデルを作るのかということに帰結する問題ですが、短い答えをよしとする(選択問題を選択肢で答えるなど)モデルチューニングを受けるとあまり会話能力が高く無くなるという傾向があるのは間違いないようです。

Nejumi リーダーボード Neo

これらの学びを踏まえ、私たちはNejumiリーダーボードのアップデート版、NejumiリーダーボードNeoの開発を進めてきました。JGLUEの拡張版と言えるJasterを開発したLLM-jpやJapanese MT-Benchを開発したStability AI Japanのチームとも議論をし、これまでのNejumiリーダーボードの評価体系の良かったところを残しながらも、より包括的なモデル評価ができるようになります。具体的には

  • 一問一答形式のベンチマークタスク(llm-jp-eval / Jaster)と日本語生成タスク(Japanese MT-Bench)を同時に評価 👓

  • llm-jp-evalについては、モデルの素の能力をはかるために、zero-shotで辛口評価 🌶️

一問一答形式のベンチマークタスクは言語理解の評価には有用であり、またモデルが求められる形式に対応できるのかという点についても引き続き評価を行います。これらのタスクについても、llm-jp-evalでの開発を踏襲し、JGLUEよりも幅広い項目での評価を行います。また補完的に、文章生成能力の評価のためにJapanese MT-Benchの評価結果も取り入れ、両方の総合点でのランキング表示を行います。

また、WandB製品の強みを活かして、よりインタラクティブに評価結果を表示し、その場で分析することが可能です。例えば、理解能力と生成能力のバランスを評価したり、二つのモデルの違いがどのような事例で発生するのかを分析したりすることが可能になります。具体的には

  • WandBのTable機能を用いて、平均スコアではなく、一問ずつの深掘りも可能 (llm-jp-evalに関してはtestデータの中を確認できないように、参考としてdevデータの履歴を表示しています) 🔍

  • インタラクティブに比較したいモデルを選択可能 🎰

  • WandBのReportから、実際に行った実験まで辿ることが可能 🛣️

生成AIモデル評価の今後

ここまでLLMの言語性能評価について私たちの経験を通じて学んできたことを共有してきましたが、もっと広い目線で生成AIの評価を考えると、言語能力の評価はLLM評価の全体像の中では重要ながら一部でしかありません。より広い目線で考えると、上記評価に含まれる言葉の正確さ、Q&Aへの応答、論理能力、またそれらを比較するベンチマークだけではなく、アラインメント(バイアス、倫理性、有害性など)や、攻撃に対する頑健性なども、LLM利用において評価される必要のある重要な視点です。これら安全性の評価に関しては例えばRobust Intelligenceさんなどがサービスを展開されています。

https://github.com/tjunlp-lab/Awesome-LLMs-Evaluation-Papers

また、汎用的な言語・論理能力だけではなく、特化した用途のモデルに対しては専門性の評価も重要となります。医療に特化したモデルに関して、診断の精度を評価する、というような評価体系は私たちの運営する評価体系においては全く含まれていません。専門性の評価に関しては、今回の記事の範疇外であるだけでなく、評価体系の構築などケースバイケースで開発していく必要があり、今後LLMを使った特化型アプリケーションの開発においては重要な取り組みとなっていくでしょう。

また今回多くは触れませんでしたが、人による評価も検討に値する評価手法です。特によく知られているものとしてChatbot Arenaがあり、同じプロンプトに対する返答を二つのモデルから出力させより多くの回数選ばれたモデルがエローレイティング方式で順位付けされています。ただ、人の評価がそれ以外の方法よりも優れているかというとそうとは限らず、それらしく記述されている文章に人間は騙されてしまうこともある、という研究結果も発表されていました。

結論として、LLM評価はまだこれから発展を必要とする分野ですが、一方でここ一年でわかってきたことも多くあり、その集大成としてNejumiリーダーボードNeoを公開します。生成AIの開発は言語モデルだけではなく画像や音なども包含するマルチモーダル化がここ一年でも急速に加速し、それらのモデルの評価にはさらなるチャレンジがありますが、今後も時代の変化に即したモデル評価方法をW&Bチームとしても提案していきたいと考えています。

いいなと思ったら応援しよう!