Hugging FaceのLeaderboards and Evals研究チームが最近行った小規模な実験では、評価がどれほど不安定であるかが浮き彫りになりました。同じタスクであっても、プロンプト形式のわずかな変更で結果が大きく変わるのです! しかし、これは望ましいことではありません。同じ量の情報を入力として与えられた場合、モデルは似たような結果を出力すべきです。
私たちはDottxtの友人たちとこの件について議論し、あるアイデアが浮かびました。プロンプト形式間の整合性を高める方法があるのではないか?
それでは詳しく見ていきましょう!
背景:形式の変更に対する評価の敏感さ
LLMのベンチマーク性能が、プロンプト自体の形式に密接に、かつある程度驚くべき形で依存していることが、ますます明らかになってきています。プロンプトに関連する分散を減らすための手法がこれまでいくつか導入されてきたにもかかわらずです。例えば、few-shot評価ではモデルに形式例を提供して特定の出力パターンを強制し、自由形式の生成を許さずに妥当な回答の対数尤度を比較することで、回答空間を制約しようとします。
Leaderboards and Evalsチームは、よく知られたタスクであるMMLU(タスクのサブセット4つを対象)に対して8つの異なるプロンプト形式を検証することで、これを実証しました。これらのプロンプトのバリエーションは、5つの異なるモデル(当時サイズに対してSOTAであり、トークナイゼーションと言語の多様性をカバーするものを選定)に提供されました。スコアは対数確率評価を用いて計算され、最も確率の高い回答が正解とみなされる、これは多肢選択タスクにおける古典的な指標です。
MMLUのglobal_factsサブセットの最初の質問を用いて、さまざまな形式を詳しく見てみましょう。
Question: “As of 2016, about what percentage of adults aged 18 years or older were overweight?”
Choices: [ "10%", "20%", "40%", "80%" ]
Correct choice: “40%”
| プロンプトに選択肢を含めない場合 | ||
| As of 2016, about what percentage of adults aged 18 years or older were overweight? | Q: As of 2016, about what percentage of adults aged 18 years or older were overweight? A: |
Question: As of 2016, about what percentage of adults aged 18 years or older were overweight? Answer: |
| プロンプトに選択肢を含める場合 | ||
| Question: As of 2016, about what percentage of adults aged 18 years or older were overweight? Choices:
10% Answer: |
Question: As of 2016, about what percentage of adults aged 18 years or older were overweight? Choices:
A. 10% Answer: |
Question: As of 2016, about what percentage of adults aged 18 years or older were overweight? Choices:
(A) 10% Answer: |
| 10%, 20%, 40%, 80% の対数確率 | 10%, 20%, 40%, 80% vs A, B, C, D の対数確率 | 10%, 20%, 40%, 80% vs (A), (B), (C), (D) の対数確率 |
プロンプトには質問だけが含まれる場合や、質問/回答形式であることを示すタグが付く場合、そして選択肢が含まれる場合があります。いずれの場合も、評価では可能な選択肢の対数尤度のみを比較します。これらの形式はすべて評価文献に登場するもので、各行に含まれる情報量はほぼ同じであるはずです。しかし、その直下でご覧いただけるように、理論上は表面的な変更であるにもかかわらず、パフォーマンスには大きなばらつきがあります!
各モデルは、極端な例であるQwen1.5-7B(トークナイザーの問題により7番目のプロンプト形式で22.9%まで低下)を除き、パフォーマンスが約10ポイント変動します。同じ情報量で51.2%の精度を達成できた別のプロンプトと比較すると、大きな差です。
単独では、スコアの変化はランキングが一貫している限り大きな問題ではありません。しかし、次のプロットでわかるように、ランキングもこれらの変更の影響を受けます。
形式の違いだけで、情報自体は変わっていないにもかかわらず、どのモデルもプロンプト間で一貫してランキングされていません。つまり、Gemma-7bの著者が自モデルがMistral-7B-v0.1より優れていることを示したい場合、適切なプロンプトを選ぶだけで実現できてしまうのです。
ほとんど誰も正確な評価設定を報告していないため、モデルレポートではこれが歴史的に行われてきました。著者は自社モデルに最も有利な設定を選んで報告するのです(そのため、一部の論文では奇妙なfew-shot数が報告されるのです)。
しかし、これはモデルスコアの分散の唯一の原因ではありません。
拡張実験では、同じモデル、同じプロンプト形式、同じfew-shotサンプルを、プロンプトの前にシャッフル順序だけを変えて評価した結果を比較しました。次の図は、これら2つのfew-shot順序間のモデルスコアの差を示しています。同じモデル/プロンプトの組み合わせで最大3ポイントのパフォーマンス差が観測されました!
異なるモデルを適切に評価・比較できるようにするには、この課題を克服する方法が必要です。
SclarらのQuantifying Language Model’s Sensitivity to Spurious Features in Prompt Designもこの問題の概要をよくまとめており、著者らはFormatSpreadというソフトウェアツールを紹介します。これは各モデルを複数の形式バリエーションで評価し、そのモデルのパフォーマンスの分散を計算するものです。このようなソリューションにより、どのモデルが他より優れているかをより確信を持って判断できますが、計算コストが高くなります。
形式に対するこれらの小さな変更に対して、入力ではなく出力に焦点を当てることで結果をより一貫させるにはどうすればよいか?
FormatSpreadはリーダーボードをより公平で正直なものにするための優れた試みですが、LLMの実用的なユーザーとして私たちが本当に望むのはプロンプトの一貫性です。つまり、これらのプロンプト間の分散を減らす方法を見つけたいのです。
.txtでは、モデルの出力が特定の構造に従うように制約される構造化生成の改善と理解を深めることに注力しています。私たちのライブラリOutlinesでは、正規表現や文脈自由文法を定義することでLLMの出力を構造化できます(以下に例を示します)。
構造化生成の初期のユースケースは、適切にフォーマットされたJSONで応答を保証することで、LLMをプログラム的に操作しやすくすることでした。しかし、構造化生成の他の利点にも驚かされ続けています。
構造化生成の利点を探る以前の研究に取り組む中で、構造化生成はベンチマーク性能を一貫して向上させることを実証し、JSON構造化プロンプトを探る中で興味深いエッジケースに遭遇しました。
ほとんどの場合、非構造化生成を使用する場合でも、プロンプト形式をJSONに変更すると、ほぼすべてのモデルでベンチマーク性能が向上します。しかし、MetaMath-Tulpar-7b-v2-Slerpではそうではなく、JSON形式のプロンプトを使用すると精度が劇的に低下しました。さらに驚くべきことに、構造化生成を用いてモデルの出力を制約した場合、パフォーマンスの低下はごくわずかでした!
これにより、構造化生成をプロンプトの一貫性に活用できるかどうかを疑問に思うようになりました。
n-shotとshot順序に焦点を当てた実験設定に関する注記
上記の実験では、Hugging FaceのLeaderboard and Evals研究チームがプロンプト自体の形式の変更を調査しましたが、次の実験では変更を制限します。
プロンプト空間の探索に焦点を当てるため、プロンプトの2つの特性のみを変化させます。
- プロンプトで使用される「ショット」または例の数(n*-shot*)を変化させる
- これらのショットの順序(shot order、shot seedで指定)を変化させる
2点目について、与えられたn-shotでは同じn個の例のみをシャッフルします。これは、プロンプトの形式とそれに含まれる情報を混同しないためです。明らかに5-shotプロンプトは1-shotプロンプトよりも多くの情報を含みますが、5-shotプロンプトのすべてのシャッフルは同じ例を含み、順序が異なるだけです。
初期探索:GSM8K 1〜8ショットプロンプティング
これをさらに検証するため、7Bパラメータ空間で非常に類似した強力な2つのモデル、Mistral-7Bv0.1とZephyr-7B-betaの動作を探ることにしました。この選択の理由は、個々の結果の分散だけでなく、相対的なランキングの変化を見るためです。使用するタスクはGSM8Kで、小学校レベルの算数文章問題のセットです。
以下は、暗黙の構造をハイライトしたGSM8K 1-shotプロンプトの基本形式です。
正しく構造化された回答を一貫して生成するため、元のプロンプト形式に内在する構造に一致する正規表現を作成します。以下の正規表現は、Outlinesで生成の構造を定義するために使用されます。
正規表現では、モデルが200〜700文字の範囲で推論することを許可し、その後「The answer is」と宣言して、0で始まらない最大10桁の数字で応答しなければならないことがわかります。
構造を制御する正規表現は、回答を解析するために使用される正規表現と似ていますが同一ではないことに言及する価値があります。プロンプトと同様に、構造の定義にはパフォーマンスに影響を与える可能性があるという興味深いニュアンスがあることを学びました。例えば、正規表現の{200,700}に注目してください。これは、モデルが回答する前に「推論」するために200〜700文字を持つことを意味します。これらの値を変更するとパフォーマンスに影響を与え、「思考制御」と呼ぶ領域につながります。この領域については近日中に詳しく書く予定です。
最初の実験は、GSM8Kデータセットの探索を続け、1〜8ショットプロンプティングを繰り返すことでした。以下に示す結果は非常に説得力のあるものでした。
この図で見られる2つの主な特徴は、n-shot設定間のパフォーマンスの分散が大幅に低減されたことと、ランキングの入れ替わりが一切発生しなかったことです(MistralがZephyrを一貫してリード)。また、1-shotの構造化パフォーマンスが1-shotの非構造化パフォーマンスを大幅に上回り、5-shotと同等である点も注目に値します。これは「プロンプト効率」と呼ぶ別の研究領域につながります。
より深く掘り下げる:GPQAのn-shotとshot順序のバリエーション
次の実験では、n-shotだけでなくn-shotの順序も変化させることを目指しました。順序は例のシャッフルに使用されるシードを設定することで制御しました。前述の通り、情報の一貫性を保つため最初のn-shotのみをシャッフルします。つまり、すべての1-shotプロンプトはシード間で同一です。以下は4-shotのshot順序の例です。
| seed | 4-shot order |
|---|---|
| 42 | 2-1-3-0 |
| 1337 | 1-0-3-2 |
| 1981 | 3-2-0-1 |
| 1992 | 0-3-1-2 |
| 12345 | 1-0-2-3 |
また、これらの結果の転用可能性を探るため、タスクをGraduate-Level Google-Proof Q&A Benchmark (GPQA)に変更しました。GPQAは難易度の高い知識多肢選択評価タスクです。以下はプロンプト形式とハイライトされた構造です。
次の実験では、厳選・クリーニングされた高品質な質問を表す「diamond」サブセットを具体的に使用します。このデータセットの198問のうち8問をn-shotプロンプティング用に確保し(ただし常に最初の5問のみを使用)、残りの190問で評価しました。
以下に可視化したのは、2つのモデルについて、ショットシードとnのすべての可能な組み合わせで達成された精度を表すグリッドで、構造化生成なし(左)とあり(右)です。
すぐに目につくのは、構造化出力が全体的に非構造化出力よりも高いスコアを傾向として示すことです。構造化と非構造化の各グリッドの平均値を以下に示します。
プロンプトシードとn-shot全体の結果の平均
| model | unstructured | structured |
|---|---|---|
| Mistral-7B-v0.1 | 0.2360 | 0.2935 |
| Zephyr-7b-beta | 0.2387 | 0.3048 |
また、グリッド内のすべての値にわたって、構造化生成と非構造化生成を比較すると分散の低減も確認されました。
プロンプトシードとn-shot全体の結果の標準偏差
| model | unstructured | structured |
|---|---|---|
| Mistral-7B-v0.1 | 0.0213 | 0.0202 |
| Zephyr-7b-beta | 0.0273 | 0.0180 |
グリッド全体にわたるこの分散の低減は、GSM8Kのn-shot変更のみを見た場合の分散低減と類似しています。
期待パフォーマンスの向上と分散の低減は優れた特性ですが、私たちが本当に理解したいのはランキングへの影響です。次のプロットでは、これらのグリッドを、2つのモデルのどちらが勝者と宣言されるかという観点で検証します。
- A: Zephyr-7b-beta
- B: Mistral-7B-v0.1
- “-”: 引き分け
これらの画像からわかるように、構造化生成を適用した場合、勝者判定の一貫性が大幅に向上しています。これらの結果は、さまざまなn-shotを使用したGSM8Kでの発見と一貫した絵を描いています。
結論と今後の研究
これらの結果は非常に有望ですが、さらなるモデルとタスクにわたってこれらの結果を探求する必要があります。これまでに見てきたのは、構造化生成が評価の不可欠な部分となり得るということです。プロンプト変更全体で期待スコアを向上させ、分散を低減させるという同時達成は、さらなる研究に値する非常に有望な結果です。










0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.