「このモデルは精度90%です」と言われたとき、あなたは何を思うでしょうか。90%はどんなタスクでの90%なのか、どんなデータで測った90%なのか、そもそも人間ならどれくらいの精度を出せるのか — これらの文脈がなければ、90%という数字だけでは何も判断できません。
自然言語処理(NLP)の分野では、モデルの性能を客観的かつ公正に比較するためにベンチマークと呼ばれる標準化された評価体系が整備されてきました。ベンチマークがなければ、各研究者が独自のデータセットと独自の評価基準でモデルを評価するため、論文Aの「精度92%」と論文Bの「精度89%」を単純に比較することはできません。ベンチマークは、全員が同じ試験問題を解くことで初めて成り立つ「共通テスト」のようなものです。
ベンチマークを正しく理解することは、以下のような実践的な場面で直接的に役立ちます。
- モデル選定: 自分のタスクに最適なモデルを選ぶとき、リーダーボードのスコアをどう解釈するかが鍵になります
- 研究の再現性: 自分のモデルを既存手法と公正に比較するためには、同一ベンチマークでの評価が不可欠です
- 進歩の定量化: GPT-2からGPT-4へ、BERTからDeBERTaへ、モデルがどれだけ進歩したかはベンチマークのスコア推移で可視化されます
本記事では、NLPの歴史を象徴する4つの主要ベンチマーク — GLUE、SuperGLUE、MMLU、MT-Bench — を中心に、それぞれの設計思想、タスク構成、スコアの計算方法、そして限界までを体系的に解説します。
本記事の内容
- ベンチマークが満たすべき設計原則
- GLUEの8タスクの構成と評価指標
- SuperGLUEが生まれた背景と追加タスク
- MMLUの57科目知識テストとFew-shot評価
- MT-Benchの対話評価とLLM-as-a-Judge
- その他の重要ベンチマーク(HumanEval、GSM8K、TruthfulQA、HellaSwag)
- ベンチマークの限界とGoodhartの法則
- Pythonでのスコア可視化と比較
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
ベンチマークの設計原則
ベンチマークを理解するには、まず「良いベンチマークとは何か」を考える必要があります。ここでは、主要ベンチマークに共通する3つの設計原則を整理します。
タスクの多様性
一つのタスクだけでモデルを評価すると、そのタスクに特化した「一芸モデル」が高得点を取れてしまいます。たとえば、感情分析だけでモデルを評価すれば、感情を表すキーワード(「嬉しい」「最悪」等)のパターンマッチに長けたモデルが有利です。しかし、そのモデルが文の含意関係を理解できるかどうかは分かりません。
良いベンチマークは、多様な能力を異なる角度から測定するタスクの集合で構成されます。感情分析、テキスト類似度、自然言語推論、質問応答 — これらを横断的に評価することで、モデルの「総合力」を測れるのです。
リーダーボードと透明性
ベンチマークのもう一つの重要な機能は、リーダーボード(ランキング表)の提供です。テストデータの正解ラベルを非公開にしておき、参加者は予測結果をサーバーに送信してスコアを取得します。これにより、テストデータへの過学習を防ぎつつ、全モデルの比較を透明に行えます。
リーダーボードは単なるランキングではありません。評価の再現性を担保し、新しい手法がどれだけ既存手法を超えたかを誰でも検証可能にするインフラです。
人間ベースライン
ベンチマークには、人間がそのタスクでどの程度の成績を出すかを示す「人間ベースライン」が設定されています。これは極めて重要です。モデルのスコアが80%であっても、人間ベースラインが82%なら「ほぼ人間レベル」ですが、人間ベースラインが98%なら「まだまだ」です。
人間ベースラインは、そのベンチマークが「どれほど難しいタスクを測っているか」の尺度にもなります。人間ベースラインが高いタスクは、人間にとっては簡単であり、モデルにも比較的早く攻略される傾向があります。逆に、人間ベースラインが低いタスク(例:微妙なニュアンスの判定など)は、人間にとっても難しい、本質的にチャレンジングな問題です。
ここまでで、ベンチマークが満たすべき設計思想を理解しました。これらの原則を念頭に置きながら、NLPベンチマークの歴史を切り開いた最初の主要ベンチマーク — GLUE — を見ていきましょう。
GLUE — 自然言語理解の「共通テスト」
GLUEとは
GLUE(General Language Understanding Evaluation)は、2018年にWang らによって提案された自然言語理解のベンチマークです。名前の通り、言語の「理解」能力を多角的に測定することを目的としています。
GLUEが登場した背景には、当時のNLP研究の課題がありました。ELMoやBERTのような事前学習モデルが登場し始めた時期で、「事前学習されたモデルは本当に汎用的な言語理解能力を獲得しているのか?」を検証する共通の枠組みが求められていたのです。
GLUEは8つのタスクから構成されており、それぞれが自然言語理解の異なる側面を測定します。学校のテストに例えれば、「読解」「文法」「語彙」「作文」のように、異なる科目でバランスよく実力を問う総合試験です。
8つのタスクの詳細
GLUEの8タスクを、その特徴と評価指標とともに一つずつ見ていきます。
1. CoLA(Corpus of Linguistic Acceptability)
CoLAは、与えられた英語の文が文法的に正しい(acceptable)かどうかを二値で判定するタスクです。たとえば、”The author wrote the book.”(正しい)と “The author wrote.”(文脈によっては不自然)を区別する能力を測ります。
評価指標はMatthews Correlation Coefficient(MCC)です。MCCは正解・不正解のバランスが偏ったデータでも適切に評価できる指標で、値域は $[-1, 1]$ です。$+1$ が完全な正解、$0$ がランダム、$-1$ が完全な逆予測を表します。
$$ \text{MCC} = \frac{TP \cdot TN – FP \cdot FN}{\sqrt{(TP+FP)(TP+FN)(TN+FP)(TN+FN)}} $$
ここで $TP, TN, FP, FN$ はそれぞれ真陽性、真陰性、偽陽性、偽陰性の件数です。分母は4つの要素の幾何平均のような役割を果たし、クラス不均衡に対してロバストな評価を実現しています。
2. SST-2(Stanford Sentiment Treebank)
SST-2は、映画レビューの一文がポジティブかネガティブかを判定する二値分類タスクです。感情分析はNLPの中でも最も古くから研究されているタスクの一つであり、実用的にも広く使われています。
評価指標はAccuracy(正解率)です。クラスバランスがほぼ均等であるため、Accuracyが適切に機能します。
3. MRPC(Microsoft Research Paraphrase Corpus)
MRPCは、ニュース記事から抽出された2つの文が言い換え(パラフレーズ)関係にあるかを判定するタスクです。「同じことを別の言い方で表現しているか?」という問いに答えます。
たとえば、「東京の気温は30度に達した」と「東京では30度を記録した」は言い換え関係にありますが、「東京の気温は30度に達した」と「大阪の気温は30度に達した」は単語が似ていても意味が異なります。モデルは表面的な単語一致ではなく、意味レベルの等価性を判断する必要があります。
評価指標はAccuracy / F1スコアです。
4. STS-B(Semantic Textual Similarity Benchmark)
STS-Bは、2つの文の意味的類似度を1から5のスケールで予測する回帰タスクです。二値分類ではなく連続値を予測する点がGLUEの中でユニークです。
評価指標はPearson相関係数 / Spearman相関係数です。Pearson相関は線形関係の強さを、Spearman相関は単調関係の強さを測ります。
$$ r_{\text{Pearson}} = \frac{\sum_{i=1}^{n}(x_i – \bar{x})(y_i – \bar{y})}{\sqrt{\sum_{i=1}^{n}(x_i – \bar{x})^2 \sum_{i=1}^{n}(y_i – \bar{y})^2}} $$
この式は、予測値 $x_i$ と正解値 $y_i$ がどれだけ同じ方向に変動するかを $[-1, 1]$ の範囲で表します。$+1$ に近いほど予測が正確です。
5. QQP(Quora Question Pairs)
QQPは、Quora(Q&Aサイト)に投稿された2つの質問が同じ意味かどうかを判定するタスクです。MRPCと似ていますが、QQPはより大規模(約40万ペア)で、質問文という特定のドメインに特化しています。
「Pythonを学ぶ最良の方法は?」と「Python初心者はどう始めるべき?」は意味的に近いですが、「Pythonを学ぶ最良の方法は?」と「Javaを学ぶ最良の方法は?」は表面的に似ていても意味が異なります。
評価指標はAccuracy / F1スコアです。
6. MNLI(Multi-Genre Natural Language Inference)
MNLIは、GLUEの中核をなす自然言語推論(NLI)タスクです。前提文(premise)と仮説文(hypothesis)の関係を、含意(entailment)・矛盾(contradiction)・中立(neutral)の3クラスに分類します。
たとえば、前提文が「公園で子供たちが遊んでいる」のとき: – 「外で人が活動している」→ 含意(前提から論理的に導ける) – 「公園には誰もいない」→ 矛盾(前提と矛盾する) – 「子供たちはサッカーをしている」→ 中立(前提からは判断できない)
MNLIの特徴は、約43万ペアという大規模なデータセットと、Fiction、Telephone、Government、Travel、Slate の5つのジャンルにまたがる多様な文体を含む点です。テスト時には、学習データと同じジャンルの「matched」と異なるジャンルの「mismatched」の2種類で評価します。
評価指標はAccuracy(matched / mismatched の2種)です。
7. QNLI(Question Natural Language Inference)
QNLIは、Stanford Question Answering Dataset(SQuAD)を変換して作られたタスクです。質問文と候補の文が与えられ、その文が質問の答えを含むかどうかを二値で判定します。
もとのSQuADは抽出型質問応答(文中から回答箇所を特定する)でしたが、GLUEではこれを文ペアの二値分類に変換しています。こうすることで、他のGLUEタスクと同じ「文ペア→ラベル」の枠組みに統一できます。
評価指標はAccuracyです。
8. RTE(Recognizing Textual Entailment)
RTEは、MNLIと同様の自然言語推論タスクですが、含意 / 非含意の2クラス分類で、データサイズが小さい(約2,500ペア)のが特徴です。データが少ない状況でモデルがどれほど汎化するかを測る、いわばNLIの「少数データ版」です。
評価指標はAccuracyです。
GLUEスコアの計算
GLUEの総合スコアは、8タスクの個別スコアの単純平均(マクロ平均)として計算されます。
$$ \text{GLUE Score} = \frac{1}{8}\sum_{i=1}^{8} s_i $$
ここで $s_i$ は各タスクの主要評価指標のスコアです。MNLIについては matched と mismatched の平均を使用します。
この単純平均という設計には賛否があります。データサイズが大きいタスク(MNLI: 約43万件)も小さいタスク(RTE: 約2,500件)も同じ重みで平均されるため、少数データのタスクで偶然高いスコアが出ると、総合スコアが不当に引き上げられる可能性があります。しかし、単純であることが透明性につながるという設計判断がなされました。
GLUEが発表された当初、最高スコアは人間ベースラインを大きく下回っていました。しかし、2019年にBERTが登場するとスコアは急速に上昇し、わずか1年ほどで人間ベースライン(87.1)を超えるモデルが次々と現れました。ベンチマークがモデルにとって「簡単すぎる」状態 — これを天井効果(ceiling effect)と呼びます — に達したのです。
この天井効果を受けて、より難しいベンチマークが必要になりました。それが次に解説するSuperGLUEです。
SuperGLUE — GLUEの限界を超える
天井効果とSuperGLUEの誕生
SuperGLUEは、2019年にWangらによってGLUEの後継として提案されました。GLUEでモデルが人間ベースラインを超えてしまったことを受け、より高度な言語理解能力を要するタスクで構成されています。
SuperGLUEの設計では、GLUEからいくつかの重要な改善が加えられました。まず、GLUEで「簡単すぎた」タスク(SST-2やQQP)が除外されました。代わりに、常識推論、指示語の解決(照応解析)、語義の曖昧さ解消など、より高度な能力を要するタスクが追加されています。また、データ形式もより多様になり、二値分類だけでなく、多肢選択や抽出型の形式も含まれます。
8つのタスクの詳細
1. BoolQ(Boolean Questions)
BoolQは、Wikipedia記事の一節と、それに関するYes/No質問がペアで与えられ、質問に対する答えがYesかNoかを判定するタスクです。一見シンプルですが、答えが文中に明示されていないケースが多く、文脈からの推論が求められます。
たとえば、記事に「東京スカイツリーの高さは634メートルである」と書かれていて、質問が「東京スカイツリーは600メートル以上ありますか?」であれば、数値比較の推論が必要です。
評価指標はAccuracyです。
2. CB(CommitmentBank)
CBは、前提文に含まれる発話者の命題に対するコミットメント(確信度) を3クラスで分類するタスクです。Entailment(確信あり)、Contradiction(否定的)、Neutral(曖昧)の3値を判定します。
「彼女はその映画が面白いと思っている」という文に埋め込まれた「その映画は面白い」という命題に対して、発話者がどれほどコミットしているかを判定します。言語の微妙なニュアンスを理解する力が試されるタスクです。
データサイズは非常に小さく(約250件)、少数データでの汎化能力が問われます。評価指標はAccuracy / F1スコアです。
3. COPA(Choice of Plausible Alternatives)
COPAは、因果推論を測定するタスクです。前提文が与えられ、2つの選択肢からより妥当な原因または結果を選びます。
たとえば、「男は目覚まし時計をセットした」(前提)に対して: – 「彼は遅刻を心配していた」(原因として妥当) – 「彼は朝食を食べた」(関連性が低い)
COPAは、表面的な単語の重なりではなく、常識的な因果関係の理解を要求します。
評価指標はAccuracyです。
4. MultiRC(Multi-Sentence Reading Comprehension)
MultiRCは、複数の文からなる段落と質問が与えられ、複数の候補回答の中から正しい回答を全て選ぶタスクです。正解が1つとは限らない点がユニークで、モデルは各候補回答が正しいかどうかを独立に判定する必要があります。
評価指標はF1スコア / EM(Exact Match)です。EMは、全ての候補回答に対する予測が全て正解の場合のみ1、それ以外は0となる厳しい指標です。
5. ReCoRD(Reading Comprehension with Commonsense Reasoning Dataset)
ReCoRDは、ニュース記事のClozeスタイル(穴埋め)の質問応答タスクです。記事中のエンティティの中から、クエリの空所に当てはまるものを選択します。常識的な知識や複数文にまたがる推論が要求されます。
評価指標はF1スコア / EMです。
6. RTE(Recognizing Textual Entailment)
RTEはGLUEにも含まれていたタスクですが、SuperGLUEでも引き続き採用されています。含意 / 非含意の二値分類で、GLUEと同じデータが使われます。データサイズが小さく難易度が高いタスクであるため、より高度なベンチマークにふさわしいと判断されたのです。
評価指標はAccuracyです。
7. WiC(Word-in-Context)
WiCは、同じ単語が2つの文で同じ意味で使われているかを判定するタスクです。多義語の意味を文脈から理解する「語義曖昧性解消(WSD: Word Sense Disambiguation)」の能力を測ります。
たとえば、”bank”という単語が「river bank(川岸)」と「bank account(銀行口座)」で使われている場合は「異なる意味」、「I went to the bank to deposit money」と「The bank is closed on weekends」では「同じ意味」と判定する必要があります。
評価指標はAccuracyです。
8. WSC(Winograd Schema Challenge)
WSCは、照応解析(代名詞が何を指すか)の難問を集めたタスクです。Winograd Schema と呼ばれる特殊な構造を持つ文で、代名詞の指示対象を特定します。
有名な例として、「The trophy doesn’t fit in the suitcase because it is too big.」と「The trophy doesn’t fit in the suitcase because it is too small.」があります。前者の”it”はtrophy、後者の”it”はsuitcaseを指しますが、この違いは “big” と “small” という1単語の違いによって生じます。常識的な物理的推論なしにはこの問題は解けません。
評価指標はAccuracyです。
SuperGLUEスコアの計算
SuperGLUEの総合スコアもGLUEと同様に各タスクのスコアの平均です。ただし、CBではAccuracyとF1の平均、MultiRCではF1aとEMの平均がそのタスクのスコアとして使われます。
SuperGLUEの人間ベースラインは89.8でした。GLUEと比較して、モデルが人間レベルに到達するまでにはるかに長い時間がかかりました。しかし、2021年頃にはT5やDeBERTaのような大規模モデルが人間ベースラインを超え、SuperGLUEもまた「天井」に達しつつある状況になりました。
GLUEとSuperGLUEは、事前学習型モデル(BERT、RoBERTa、DeBERTa等)の言語「理解」能力を測る優れたベンチマークです。しかし、これらはモデルが保持する「知識」を直接的に測定するものではありません。次に紹介するMMLUは、まさにモデルの「知識」を包括的にテストするベンチマークです。
MMLU — 57科目の知識テスト
MMLUとは
MMLU(Massive Multitask Language Understanding)は、2021年にHendrycksらが提案したベンチマークで、57の学術科目にわたる4択問題約15,700問でモデルの知識を評価します。
GLUEやSuperGLUEが「文を理解する能力」を測るのに対し、MMLUは「世界に関する知識を持っているか」を直接的に問います。学校のテストに例えるなら、GLUEは「国語力」を測り、MMLUは「全科目の総合テスト」を行うイメージです。
MMLUが提案された背景には、GPT-3のような大規模言語モデルの登場があります。パラメータ数が巨大なモデルは、学習データに含まれる膨大な知識をモデルの重みに蓄積します。その知識が実際にどれほど正確で広範なのかを測定するには、従来のNLUベンチマークでは不十分でした。MMLUは、高校レベルから大学院レベルまでの幅広い知識を体系的にテストすることで、この問いに答えようとしています。
4つのカテゴリと57科目
MMLUの57科目は、大きく4つのカテゴリに分類されます。
STEM(理工系): 数学(抽象代数、大学数学、初等数学、高校数学)、物理学(大学物理、高校物理、概念物理)、化学(大学化学、高校化学)、生物学(大学生物、高校生物)、コンピュータサイエンス(大学CS、高校CS、機械学習)、電気工学、天文学
Humanities(人文科学): 歴史(先史時代、世界史、高校世界史、高校ヨーロッパ史、高校アメリカ史)、哲学、法学(国際法、法理学、専門法学)、論理学(形式論理、論理的誤謬)、倫理学(道徳論争、道徳的シナリオ)
Social Sciences(社会科学): 経済学(高校マクロ、高校ミクロ、計量経済学)、政治学(高校政治、高校行政、安全保障)、社会学、心理学(高校心理、専門心理)、地理学(高校地理)、マーケティング、経営学
Other(その他): 医学(解剖学、臨床知識、大学医学、医学遺伝学、専門医学、栄養学、ウイルス学)、ビジネス倫理、グローバルファクト、専門会計、その他
この広範なカバレッジにより、MMLUはモデルの「知識の広さ」と「知識の深さ」の両方を評価できます。あるモデルがSTEMでは高得点だがHumanitiesでは低得点であれば、学習データの偏りが示唆されます。
問題の形式とFew-shot評価
MMLUの各問題は、4択の選択問題です。以下に形式を示します。
Question: What is the main function of the mitochondria?
A. Protein synthesis
B. Energy production
C. Cell division
D. DNA replication
Answer: B
MMLUの重要な特徴は、Few-shot評価を標準とする点です。Few-shot評価とは、モデルに数個の例題(ショット)とその正解を見せてからテスト問題に回答させる方法です。
具体的には、各科目につき5つの例題(5-shot)がdev setとして用意されており、これをプロンプトの先頭に配置します。モデルはファインチューニングなしで、プロンプトに含まれる例題のパターンだけを手がかりに回答します。この評価方式は、GPT-3の論文で提案されたFew-shot学習の思想と一致しています。
Few-shot評価のスコアは、モデルが次に生成するトークンの確率で計算します。選択肢A, B, C, Dのそれぞれに対応するトークンの対数確率を比較し、最も確率の高い選択肢をモデルの回答とします。
$$ \hat{y} = \arg\max_{c \in \{A, B, C, D\}} P(c \mid \text{prompt}) $$
各科目のスコアはAccuracy(正解率)で計算され、4択のランダムベースラインは25%です。
MMLUスコアの読み方
MMLUの総合スコアは、57科目のAccuracyの単純平均です。
$$ \text{MMLU Score} = \frac{1}{57}\sum_{j=1}^{57} \text{Acc}_j $$
ここで注意すべきは、科目ごとの問題数にかなりのばらつきがある点です。問題数の少ない科目(例:Formal Logic は約100問)も多い科目(例:Professional Law は約1500問)も同じ重みで平均されます。したがって、問題数の少ない科目でのスコアは統計的に不安定で、数問の正解・不正解で大きくスコアが変動します。
また、カテゴリ別のスコア(STEM平均、Humanities平均など)を確認することも重要です。総合スコアが同じ80%でも、STEM: 90% / Humanities: 70% のモデルと STEM: 75% / Humanities: 85% のモデルでは特性が大きく異なります。
MMLUは知識の「広さ」を測る優れたベンチマークですが、あくまで4択問題の静的なテストです。実際のLLM(大規模言語モデル)の利用場面では、ユーザーとの自然な対話、多段階の推論、指示に忠実に従う能力などが求められます。次に紹介するMT-Benchは、こうした対話能力をより直接的に評価するベンチマークです。
MT-Bench — 対話能力をLLMが審査する
MT-Benchとは
MT-Bench(Multi-Turn Benchmark)は、2023年にZheng らが提案したマルチターン対話ベンチマークです。従来のベンチマークが「正解のある問題」を解く能力を測っていたのに対し、MT-Benchは自由形式の対話における応答品質を評価します。
MT-Benchが革新的な点は2つあります。第一に、マルチターン(複数回のやり取り)を評価する点です。1回の質問に答えるだけでなく、その回答を踏まえた追加質問にも適切に答えられるかを測定します。第二に、LLM-as-a-Judge(LLMを審査員として使う)という評価方式を採用した点です。
問題構成
MT-Benchは、8つのカテゴリから各10問、計80問で構成されています。各問題は2ターンの構成で、1ターン目の質問に回答した後、その回答を前提とした2ターン目の質問に答えます。
8つのカテゴリは以下のとおりです。
- Writing(執筆): エッセイや物語を書く能力
- Roleplay(ロールプレイ): 特定の役割を演じながら会話する能力
- Reasoning(推論): 論理的な推論を行う能力
- Math(数学): 数学的な問題を解く能力
- Coding(プログラミング): コードを書く・説明する能力
- Extraction(情報抽出): テキストから情報を抽出・要約する能力
- STEM(理工系知識): 理工系の知識に関する質問に答える能力
- Humanities(人文科学): 人文系の知識に関する質問に答える能力
マルチターン評価の意義は大きいです。たとえば、1ターン目で「バブルソートの仕組みを説明してください」と聞き、モデルが説明を生成した後、2ターン目で「では、そのコードを計算量 $O(n \log n)$ のアルゴリズムに書き換えてください」と要求します。2ターン目は1ターン目の回答に依存しているため、モデルは自分の過去の発言を正確に把握し、一貫性のある応答を生成する必要があります。
LLM-as-a-Judge — LLMを審査員にする
MT-Benchの最も革新的な側面は、GPT-4を審査員として用いて応答を採点する「LLM-as-a-Judge」方式です。
従来のベンチマークは、明確な正解が存在するタスク(分類、選択問題など)で構成されていたため、自動で正解率を計算できました。しかし、自由形式の対話には「唯一の正解」がありません。「バブルソートの説明」に対して、コードを示す説明も、日常的なアナロジーを使う説明も、どちらも正しい回答です。
人間の評価者を使えば質の高い評価ができますが、コストと時間がかかります。LLM-as-a-Judgeは、この問題を強力なLLM(GPT-4)を人間の代理として使うことで解決しました。
具体的な流れは以下のとおりです。
- 評価対象のモデルに80問×2ターンの質問をさせ、応答を収集する
- GPT-4に「審査員プロンプト」を与え、各応答を1-10のスケールで採点させる
- カテゴリごとの平均点と、全体の平均点を算出する
GPT-4は採点の際に、正確さ、有用性、関連性、深さ、創造性、詳細さなどの観点から総合的に判断し、1から10のスコアと共にその理由を生成します。
スコアの構造
MT-Benchのスコアは以下の階層構造になっています。
- 1ターン目スコア: 80問の1ターン目応答の平均スコア(1-10)
- 2ターン目スコア: 80問の2ターン目応答の平均スコア(1-10)
- カテゴリ別スコア: 8カテゴリそれぞれの平均スコア(1-10)
- 総合スコア: 全160応答(80問×2ターン)の平均スコア(1-10)
一般に、2ターン目のスコアは1ターン目より低くなる傾向があります。これは、2ターン目の質問がより制約のある(1ターン目の回答に依存した)追加要求であることが多いためです。
また、カテゴリ間のスコア差を見ることで、モデルの得意・不得意が分かります。Codingで高得点だがWritingで低得点のモデルは、技術的なタスクには強いが創造的な文章生成には弱いという特性を持ちます。
LLM-as-a-Judgeの課題
LLM-as-a-Judgeは革新的ですが、いくつかの既知の課題があります。
位置バイアス(Position Bias): 2つの応答を比較させる場合、GPT-4は先に提示された応答を高く評価する傾向があります。これを緩和するために、応答の順序を入れ替えて2回評価し、結果を平均する手法が取られます。
冗長性バイアス(Verbosity Bias): GPT-4は、より長く詳細な応答を好む傾向があります。簡潔で的確な回答よりも、冗長だが情報量が多い回答が高く評価されることがあります。
自己バイアス(Self-Enhancement Bias): GPT-4は自分自身が生成したような応答を高く評価する傾向があるという指摘もあります。
これらのバイアスはあるものの、Zhengらの研究では、GPT-4の採点と人間の採点の一致率は約80%以上であり、人間の評価者間の一致率(約81%)と同等の水準であることが示されています。
ここまでで、4つの主要ベンチマーク(GLUE、SuperGLUE、MMLU、MT-Bench)を詳しく見てきました。しかし、NLPモデルの能力は言語理解や知識だけにとどまりません。コード生成、数学的推論、事実性、常識推論など、特定の能力に焦点を当てたベンチマークも数多く存在します。次のセクションでは、これらの補完的なベンチマークを概観しましょう。
その他の重要ベンチマーク
NLPモデルの多面的な能力を測定するために、特定の側面に特化した様々なベンチマークが提案されています。ここでは、現在のLLM評価で特に重要な4つを紹介します。
HumanEval — コード生成能力の評価
HumanEvalは、2021年にOpenAIがCodexの論文で提案したコード生成ベンチマークです。164問のPythonプログラミング問題から構成されており、各問題には関数のdocstringが与えられ、モデルはそのdocstringに合致する関数本体を生成します。
HumanEvalのユニークな点は、評価方法にpass@kを用いることです。モデルが $k$ 個の候補コードを生成し、そのうち1つでもテストケースを全て通過すれば正解とします。
$$ \text{pass}@k = \mathbb{E}\left[1 – \frac{\binom{n-c}{k}}{\binom{n}{k}}\right] $$
ここで $n$ は生成した候補コードの総数、$c$ はそのうちテストケースを通過した数です。$k=1$ のとき、1回の生成で正解する確率を表します。
pass@kの直感的な意味は、「$k$ 回チャンスがあるとき、少なくとも1回は正解できる確率」です。$k$ を大きくすれば当然スコアは上がりますが、実用的には $k=1$(1回で正解できる確率)が最も重要です。
GSM8K — 数学的推論能力の評価
GSM8K(Grade School Math 8K)は、約8,500問の小学校レベルの数学文章題で構成されたベンチマークです。問題自体は小学生向けですが、多段階の推論ステップが必要であり、LLMにとっては意外に難しいタスクです。
たとえば、「ジョンはリンゴを5個持っています。メアリーに2個あげた後、店で3倍の数のリンゴを買いました。ジョンは今何個のリンゴを持っていますか?」という問題では、(5 – 2) × 3 = 9 という複数ステップの計算が必要です。
GSM8Kは特にChain-of-Thought(CoT: 思考連鎖)プロンプティングの効果を検証するベンチマークとしても注目されています。CoTプロンプティングでは、「ステップバイステップで考えましょう」と指示することで、モデルの推論精度が大幅に向上することが示されています。
評価指標はAccuracyで、最終的な数値回答が正解と一致するかで判定されます。
TruthfulQA — 事実性の評価
TruthfulQA は、2022年にLinらが提案したモデルの事実性(truthfulness)を測定するベンチマークです。817問の質問から構成され、モデルが一般的な誤解や迷信に基づいた回答をしないかを評価します。
通常のQAベンチマークは知識の正確さを測りますが、TruthfulQAは「学習データに含まれる誤情報をモデルが鵜呑みにしていないか」を検出する点で異なります。質問は意図的に、人間やモデルが誤った回答をしやすい内容(健康に関する迷信、歴史的な誤解など)で構成されています。
興味深いことに、初期の研究ではモデルが大きくなるほどTruthfulQAのスコアが下がるという逆相関が観察されました。これは、大規模モデルほど学習データに含まれる一般的な誤解を「よく学習してしまう」ためと考えられています。
HellaSwag — 常識推論の評価
HellaSwag は、2019年にZellersらが提案した常識推論ベンチマークです。日常的なシナリオ(料理、スポーツ、DIYなど)の文脈が与えられ、4つの選択肢から最も自然な続きを選びます。
HellaSwagの名前は “Harder Endings, Longer contexts, and Low-shot Activities for Situations With Adversarial Generations” の略で、敵対的フィルタリング(Adversarial Filtering)で作成された不正解選択肢が特徴です。不正解の選択肢はGPT-2のような言語モデルで生成されており、表面的にはもっともらしく見えますが、常識的に考えると不自然です。
人間のAccuracyは約95%ですが、HellaSwagが発表された時点でのモデルのスコアは約50%程度でした。しかし、GPT-4のような最新モデルでは95%を超えるスコアが報告されています。
これらのベンチマークはそれぞれ異なる能力を測定しており、モデルの評価にはこれらを組み合わせた多面的な評価が必要です。しかし、ベンチマーク自体にも限界があります。次のセクションでは、ベンチマーク評価に潜む落とし穴を考えます。
ベンチマークの限界と落とし穴
ベンチマークはモデル評価に不可欠なツールですが、万能ではありません。ベンチマークのスコアを盲信することは、テストの点数だけで学生の実力を判断するのと同じ危うさがあります。ここでは、ベンチマーク評価に潜む3つの主要な限界を解説します。
データ汚染(Data Contamination)
データ汚染とは、テストデータ(またはそれに非常に近いデータ)がモデルの学習データに含まれてしまう問題です。大規模言語モデルの学習データはインターネットから収集された膨大なテキストであり、その中にベンチマークの問題や回答が含まれている可能性は否定できません。
たとえば、MMLUの問題がインターネット上の教育サイトに掲載されていて、それがモデルの学習データに含まれていた場合、モデルは「問題を理解して推論した」のではなく「答えを暗記していた」だけかもしれません。これは、テスト前に答案を見てしまった生徒の点数を信用できないのと同じです。
GPT-4の技術レポートでは、MMLUの問題とモデルの学習データの重複を調査し、一部の問題で汚染の可能性が報告されています。この問題に対する対策として、学習データからベンチマークを除外する(decontamination)手法が研究されていますが、完全な解決は困難です。
ベンチマークへの過学習
モデル開発の過程で、特定のベンチマークのスコアを上げることが目標化すると、そのベンチマークに特化した最適化(ベンチマーク過学習)が起こり得ます。たとえば、ハイパーパラメータの調整でvalidation setのスコアを最大化する通常の手法でも、ベンチマークのtest setが十分に大きくなければ、test setに対する間接的な過学習が起こり得ます。
より深刻なケースでは、ベンチマークの出題パターンに特化したモデルが開発され、ベンチマーク以外のタスクでは期待される性能を発揮しないことがあります。
Goodhartの法則
Goodhartの法則は、もともと経済学の文脈で提唱された原則で、次のように述べられます。
$$ \text{「指標が目標になると、その指標は良い指標でなくなる」} $$
ベンチマークに当てはめると、「GLUEスコアを上げること」自体が研究の目標になった瞬間、GLUEスコアはもはや「汎用的な言語理解能力」の信頼できる指標ではなくなります。
これはベンチマークの宿命的な問題です。ベンチマークが広く使われるほど、それを攻略するインセンティブが生まれ、スコアと真の能力の乖離が大きくなります。この問題に対する根本的な解決策はなく、ベンチマークを定期的に更新・刷新する、複数のベンチマークを組み合わせて評価する、ベンチマーク以外の定性的評価も重視するといった多角的なアプローチが必要です。
GLUEからSuperGLUEへの移行は、まさにこの刷新プロセスの好例です。天井効果に達したベンチマークを、より難しい新しいベンチマークで置き換えることで、モデルの進歩を引き続き追跡できるようにしました。
ここまでで、ベンチマークの理論的な側面を一通り解説しました。次のセクションでは、実際にPythonを使ってベンチマークのデータに触れ、スコアを可視化することで、これまでの知識を実践に結びつけます。
Pythonでの実装と可視化
GLUEタスクのデータを読み込む
まず、Hugging Faceの datasets ライブラリを使って、GLUEの各タスクのデータを読み込み、その構造を確認しましょう。GLUEのデータは公開されており、数行のコードでアクセスできます。
from datasets import load_dataset
# GLUEの各タスクを読み込む
glue_tasks = ['cola', 'sst2', 'mrpc', 'stsb', 'qqp', 'mnli', 'qnli', 'rte']
for task in glue_tasks:
ds = load_dataset('glue', task, split='validation')
print(f"{task:6s}: {len(ds):6d} 件 | 列: {list(ds.column_names)}")
このコードを実行すると、各タスクのvalidationセットのサイズとデータの列名が表示されます。CoLAは約1,000件と小規模ですが、MNLIは約10,000件と大規模です。また、列名からタスクの入力形式が分かります。sentenceが1つのタスク(CoLA、SST-2)は単文分類、sentence1とsentence2があるタスク(MRPC、STS-B、QQP、MNLI、QNLI、RTE)は文ペアのタスクです。この入力形式の違いは、BERTなどのモデルに入力する際のトークナイズ方法に直接影響します。
GLUEタスクのデータ分布を可視化する
次に、各タスクのデータ件数とラベルの分布を可視化します。ベンチマークのスコアを正しく解釈するには、データの特性を把握しておくことが重要です。
import matplotlib.pyplot as plt
import numpy as np
from datasets import load_dataset
# タスク名と対応するデータ件数を取得
glue_tasks = ['cola', 'sst2', 'mrpc', 'stsb', 'qqp', 'mnli', 'qnli', 'rte']
task_labels = ['CoLA', 'SST-2', 'MRPC', 'STS-B', 'QQP', 'MNLI', 'QNLI', 'RTE']
sizes_train = []
sizes_val = []
for task in glue_tasks:
ds_train = load_dataset('glue', task, split='train')
ds_val = load_dataset('glue', task, split='validation')
sizes_train.append(len(ds_train))
sizes_val.append(len(ds_val))
# 可視化
fig, ax = plt.subplots(figsize=(10, 5))
x = np.arange(len(glue_tasks))
width = 0.35
bars1 = ax.bar(x - width/2, sizes_train, width, label='Train', color='#2196F3')
bars2 = ax.bar(x + width/2, sizes_val, width, label='Validation', color='#FF9800')
ax.set_xlabel('Task')
ax.set_ylabel('Number of samples (log scale)')
ax.set_title('GLUE Tasks: Dataset Size Comparison')
ax.set_xticks(x)
ax.set_xticklabels(task_labels)
ax.set_yscale('log')
ax.legend()
ax.grid(axis='y', alpha=0.3)
plt.tight_layout()
plt.show()
このグラフから、GLUEタスク間のデータサイズの差が非常に大きいことが読み取れます。QQPとMNLIは約40万件のトレーニングデータを持つのに対し、RTEは約2,500件に過ぎません。対数スケールで表示しないと差が分からないほどの開きがあります。この規模の違いは、ファインチューニングの難易度に直接影響します — データが少ないタスクでは過学習のリスクが高く、データ拡張やマルチタスク学習などの工夫が必要になります。
モデル別スコアの比較を可視化する
続いて、複数のモデルのGLUEスコアを比較する可視化を行います。ここでは、NLPの歴史を象徴する主要モデルのスコアを使って、モデルの進化を視覚的に追います。
import matplotlib.pyplot as plt
import numpy as np
# 各モデルのGLUEタスク別スコア(公表値に基づく代表的な値)
models = {
'ELMo': {
'CoLA': 44.1, 'SST-2': 91.5, 'MRPC': 84.4, 'STS-B': 70.4,
'QQP': 63.1, 'MNLI': 68.6, 'QNLI': 71.1, 'RTE': 53.4
},
'BERT-base': {
'CoLA': 52.1, 'SST-2': 93.5, 'MRPC': 88.9, 'STS-B': 85.8,
'QQP': 71.2, 'MNLI': 84.6, 'QNLI': 90.5, 'RTE': 66.4
},
'BERT-large': {
'CoLA': 60.5, 'SST-2': 94.9, 'MRPC': 89.3, 'STS-B': 86.5,
'QQP': 72.1, 'MNLI': 86.7, 'QNLI': 92.7, 'RTE': 70.1
},
'RoBERTa': {
'CoLA': 63.6, 'SST-2': 96.4, 'MRPC': 90.9, 'STS-B': 92.4,
'QQP': 74.3, 'MNLI': 90.2, 'QNLI': 94.7, 'RTE': 86.6
},
'DeBERTa-v3': {
'CoLA': 69.2, 'SST-2': 96.9, 'MRPC': 92.1, 'STS-B': 92.7,
'QQP': 75.1, 'MNLI': 91.8, 'QNLI': 96.0, 'RTE': 92.7
},
'Human': {
'CoLA': 66.4, 'SST-2': 97.8, 'MRPC': 86.3, 'STS-B': 92.7,
'QQP': 59.5, 'MNLI': 92.0, 'QNLI': 91.2, 'RTE': 93.6
}
}
tasks = ['CoLA', 'SST-2', 'MRPC', 'STS-B', 'QQP', 'MNLI', 'QNLI', 'RTE']
model_names = list(models.keys())
colors = ['#9E9E9E', '#2196F3', '#1976D2', '#4CAF50', '#FF5722', '#FFC107']
fig, ax = plt.subplots(figsize=(12, 6))
x = np.arange(len(tasks))
n_models = len(model_names)
width = 0.12
for i, (name, scores) in enumerate(models.items()):
values = [scores[t] for t in tasks]
offset = (i - n_models / 2 + 0.5) * width
bars = ax.bar(x + offset, values, width, label=name, color=colors[i],
edgecolor='white', linewidth=0.5)
ax.set_xlabel('Task')
ax.set_ylabel('Score')
ax.set_title('GLUE Benchmark: Model Performance Comparison')
ax.set_xticks(x)
ax.set_xticklabels(tasks)
ax.set_ylim(40, 100)
ax.legend(loc='lower right', fontsize=9)
ax.grid(axis='y', alpha=0.3)
plt.tight_layout()
plt.show()
このグラフから複数の重要な傾向が読み取れます。第一に、ELMoからBERT、RoBERTa、DeBERTaへとモデルが進化するにつれて、ほぼ全てのタスクでスコアが向上しています。特にRTEのスコアはELMoの53.4%からDeBERTa-v3の92.7%まで劇的に向上しており、事前学習モデルの効果が最も顕著に表れています。第二に、SST-2のような比較的簡単なタスクではELMoの時点で既に91.5%に達しており、改善の余地が少ないことが分かります。第三に、DeBERTa-v3はほぼ全てのタスクで人間ベースラインに匹敵するか超えており、GLUEが天井に達していることが視覚的に確認できます。
レーダーチャートでモデルの特性を比較する
棒グラフに加えて、レーダーチャート(スパイダーチャート)を使うと、各モデルの「得意・不得意パターン」をより直感的に把握できます。
import matplotlib.pyplot as plt
import numpy as np
# モデルデータ(上と同じ)
models_radar = {
'BERT-base': [52.1, 93.5, 88.9, 85.8, 71.2, 84.6, 90.5, 66.4],
'RoBERTa': [63.6, 96.4, 90.9, 92.4, 74.3, 90.2, 94.7, 86.6],
'DeBERTa-v3':[69.2, 96.9, 92.1, 92.7, 75.1, 91.8, 96.0, 92.7],
'Human': [66.4, 97.8, 86.3, 92.7, 59.5, 92.0, 91.2, 93.6],
}
tasks = ['CoLA', 'SST-2', 'MRPC', 'STS-B', 'QQP', 'MNLI', 'QNLI', 'RTE']
colors_radar = ['#2196F3', '#4CAF50', '#FF5722', '#FFC107']
# レーダーチャートの準備
angles = np.linspace(0, 2 * np.pi, len(tasks), endpoint=False).tolist()
angles += angles[:1] # 閉じるために最初の角度を追加
fig, ax = plt.subplots(figsize=(8, 8), subplot_kw=dict(polar=True))
for (name, values), color in zip(models_radar.items(), colors_radar):
values_closed = values + values[:1] # 閉じる
ax.plot(angles, values_closed, 'o-', linewidth=2, label=name, color=color)
ax.fill(angles, values_closed, alpha=0.1, color=color)
ax.set_xticks(angles[:-1])
ax.set_xticklabels(tasks, fontsize=11)
ax.set_ylim(40, 100)
ax.set_title('GLUE: Model Performance Radar Chart', fontsize=14, pad=20)
ax.legend(loc='upper right', bbox_to_anchor=(1.3, 1.1))
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
レーダーチャートから、モデルと人間の「能力パターン」の違いが明確に見えます。人間はQQPのスコアが59.5%と低く、これはレーダーチャートで内側に凹んだ形として現れます。一方、DeBERTa-v3はQQPで75.1%を記録しており、人間を大きく上回っています。QQPは質問の重複判定タスクで、40万件のデータで学習したモデルにとっては特定パターンの検出が容易ですが、人間にとっては一つ一つ丁寧に判断する必要があり、疲労やミスの影響を受けます。逆に、RTEでは人間が93.6%、BERT-baseが66.4%と大きな差があり、少数データでの自然言語推論では依然として人間の優位性が見られます。
MMLUカテゴリ別スコアの可視化
最後に、MMLUのカテゴリ別スコアを可視化して、モデルの知識分野ごとの強弱を見てみましょう。
import matplotlib.pyplot as plt
import numpy as np
# MMLUカテゴリ別スコア(代表的な値)
categories = ['STEM', 'Humanities', 'Social\nSciences', 'Other']
mmlu_scores = {
'GPT-3 (175B)': [36.7, 40.8, 50.5, 48.8],
'Chinchilla (70B)':[54.2, 63.6, 69.3, 67.4],
'GPT-3.5': [54.7, 63.9, 68.2, 66.1],
'GPT-4': [82.7, 85.0, 89.3, 86.0],
'Random': [25.0, 25.0, 25.0, 25.0],
}
model_names = list(mmlu_scores.keys())
colors_mmlu = ['#9E9E9E', '#2196F3', '#4CAF50', '#FF5722', '#BDBDBD']
fig, ax = plt.subplots(figsize=(10, 6))
x = np.arange(len(categories))
n_models = len(model_names)
width = 0.15
for i, (name, scores) in enumerate(mmlu_scores.items()):
offset = (i - n_models / 2 + 0.5) * width
linestyle = '--' if name == 'Random' else '-'
if name == 'Random':
ax.axhline(y=25, color='gray', linestyle='--', alpha=0.5, label='Random (25%)')
else:
ax.bar(x + offset, scores, width, label=name, color=colors_mmlu[i],
edgecolor='white', linewidth=0.5)
ax.set_xlabel('Category')
ax.set_ylabel('Accuracy (%)')
ax.set_title('MMLU: Category-wise Model Performance')
ax.set_xticks(x)
ax.set_xticklabels(categories)
ax.set_ylim(0, 100)
ax.legend(fontsize=9)
ax.grid(axis='y', alpha=0.3)
plt.tight_layout()
plt.show()
このグラフから3つの顕著な傾向が読み取れます。第一に、全てのモデルにおいてSTEMのスコアが最も低い傾向があります。これは、数学や物理の問題が計算や論理的推論を要求するため、単純な知識の暗記では正解できないことを反映しています。第二に、GPT-3(175B)からGPT-4への進化は全カテゴリで劇的であり、特にSTEMでは36.7%から82.7%へと2倍以上の向上を示しています。第三に、Social SciencesやOtherは比較的スコアが高い傾向にあり、これらの分野の問題が常識的な知識で解ける割合が高いことを示唆しています。
MT-Benchスコアの可視化
MT-Benchのカテゴリ別スコアも可視化してみましょう。
import matplotlib.pyplot as plt
import numpy as np
# MT-Benchカテゴリ別スコア(代表的な値)
mt_categories = ['Writing', 'Roleplay', 'Reasoning', 'Math',
'Coding', 'Extraction', 'STEM', 'Humanities']
mt_scores = {
'GPT-4': [9.5, 8.8, 8.5, 7.8, 8.8, 9.3, 9.6, 9.8],
'Claude-3': [9.2, 8.5, 8.0, 7.2, 8.5, 9.0, 9.4, 9.7],
'GPT-3.5': [8.8, 7.8, 6.2, 5.8, 7.0, 8.5, 8.8, 9.5],
'Llama-2-70B': [7.5, 7.2, 5.5, 3.8, 5.2, 7.0, 8.0, 9.0],
'Vicuna-13B': [7.2, 6.8, 4.5, 3.2, 4.0, 6.5, 7.5, 8.8],
}
colors_mt = ['#FF5722', '#9C27B0', '#4CAF50', '#2196F3', '#FF9800']
fig, ax = plt.subplots(figsize=(12, 6))
x = np.arange(len(mt_categories))
n_models = len(mt_scores)
width = 0.15
for i, (name, scores) in enumerate(mt_scores.items()):
offset = (i - n_models / 2 + 0.5) * width
ax.bar(x + offset, scores, width, label=name, color=colors_mt[i],
edgecolor='white', linewidth=0.5)
ax.set_xlabel('Category')
ax.set_ylabel('Score (1-10)')
ax.set_title('MT-Bench: Category-wise Model Performance')
ax.set_xticks(x)
ax.set_xticklabels(mt_categories, fontsize=9)
ax.set_ylim(0, 10.5)
ax.legend(fontsize=9)
ax.grid(axis='y', alpha=0.3)
plt.tight_layout()
plt.show()
MT-Benchのカテゴリ別スコアからは、対話型LLMの興味深い特性が読み取れます。第一に、全てのモデルでHumanitiesのスコアが最も高い傾向があります。人文科学の質問は知識と表現力があれば回答しやすく、特に大規模モデルは学習データに豊富な人文系テキストを含んでいることが効いています。第二に、MathとCodingのスコアはモデル間の差が最も大きいカテゴリです。Vicuna-13BのMathスコア3.2に対してGPT-4は7.8であり、数学的推論能力はモデル規模と学習方法に強く依存します。第三に、GPT-4とGPT-3.5の差はReasoningとMathで特に顕著であり、これは推論能力の向上がGPT-4の最大の特徴であることと一致します。
スコアの読み方ガイド
ここまで各ベンチマークの詳細を見てきましたが、実際にリーダーボードやモデルのブログ記事でスコアを目にしたとき、それをどう解釈すべきでしょうか。以下に実践的なガイドラインをまとめます。
絶対値よりも相対比較
「MMLU 86%」という数値だけを見ても、それが良いスコアなのかどうかは分かりません。重要なのは、以下のような相対的な比較です。
- 人間ベースラインとの比較: 人間の87%に対して86%なら「ほぼ人間レベル」
- ランダムベースラインとの比較: MMLU(4択)のランダムベースラインは25%なので、86%は偶然ではなく意味のあるスコア
- 先行モデルとの比較: 前世代モデルの70%から86%への向上は大きな進歩
信頼区間を意識する
ベンチマークのスコアには統計的な不確実性があります。特にデータサイズが小さいタスクでは、数問の正解・不正解でスコアが大きく変動します。
二項分布に基づく信頼区間を考えると、$n$ 問中 $k$ 問正解したときの正解率 $\hat{p} = k/n$ の95%信頼区間は近似的に次のように計算できます。
$$ \hat{p} \pm 1.96\sqrt{\frac{\hat{p}(1-\hat{p})}{n}} $$
たとえば、RTEのテストセット(約300件)でAccuracy 90%の場合、95%信頼区間は次のようになります。
$$ 0.90 \pm 1.96\sqrt{\frac{0.90 \times 0.10}{300}} = 0.90 \pm 0.034 $$
つまり、約 $[86.6\%, 93.4\%]$ の範囲です。この信頼区間を考慮すると、「モデルAが90%、モデルBが88%」という差は統計的に有意とは言えない可能性があります。
一方、MNLIのテストセット(約10,000件)で同じAccuracy 90%の場合、信頼区間は次のように計算されます。
$$ 0.90 \pm 1.96\sqrt{\frac{0.90 \times 0.10}{10000}} = 0.90 \pm 0.006 $$
信頼区間は $[89.4\%, 90.6\%]$ と非常に狭くなります。データサイズが大きいタスクでは、わずか1%の差でも統計的に意味のある差と言えます。
カテゴリ別スコアを確認する
総合スコアだけでなく、カテゴリ別・タスク別のスコアを必ず確認しましょう。総合スコアが同じでも、内訳が大きく異なるモデルは珍しくありません。
たとえば、MMLUの総合スコアが同じ80%のモデルAとBがあったとき:
- モデルA: STEM 90% / Humanities 70% → 理工系に強い
- モデルB: STEM 70% / Humanities 90% → 人文系に強い
自分のユースケースが理工系のタスクであれば、総合スコアが同じでもモデルAを選ぶべきです。
複数ベンチマークを横断的に見る
一つのベンチマークだけでモデルの実力を判断することは避けましょう。MMLUで高得点でも、HumanEvalでは低得点かもしれません。理想的には、言語理解(GLUE/SuperGLUE)、知識(MMLU)、推論(GSM8K、HellaSwag)、コード生成(HumanEval)、対話品質(MT-Bench)など、異なる能力を測る複数のベンチマークのスコアを総合的に判断すべきです。
これは人間の能力評価でも同じです。大学入試(知識テスト)の成績が良くても、面接(対話能力)が苦手な人がいるように、モデルも得意不得意が異なります。
ここまでの議論を踏まえて、最後に全体のまとめに移りましょう。
まとめ
本記事では、NLPの主要ベンチマークについて、設計思想からスコアの読み方まで体系的に解説しました。
- GLUEは8つのタスクで自然言語理解の基本能力を測定するベンチマークで、BERTの登場以降に天井効果が発生しました。各タスクは感情分析、テキスト類似度、自然言語推論など、異なる能力を測定します
- SuperGLUEはGLUEの限界を受けて設計された高難度ベンチマークで、常識推論、照応解析、語義曖昧性解消などのより高度なタスクが含まれています
- MMLUは57科目の4択問題でモデルの知識の広さと深さを測定し、Few-shot評価を標準とする点が特徴です。カテゴリ別スコアの分析が不可欠です
- MT-Benchはマルチターン対話能力を評価する革新的なベンチマークで、LLM-as-a-Judgeという新しい評価パラダイムを提示しました
- ベンチマークの限界として、データ汚染、ベンチマーク過学習、Goodhartの法則が存在し、スコアの盲信は禁物です。信頼区間を意識し、複数ベンチマークを横断的に評価することが重要です
ベンチマークはモデルの能力を測る「ものさし」であり、完全ではありません。しかし、ベンチマークの設計思想と限界を正しく理解していれば、スコアの数字の裏にある意味を読み取り、適切なモデル選定や研究の方向づけに活かすことができます。
次のステップとして、以下の記事も参考にしてください。