🔖

信頼性の高いLLMベンチマーク【概要と具体例】

2024/11/07に公開

0. はじめに

こんにちは、Givery AI Lab所属AIエンジニアの村上です。

今回はLLMの性能を比較する上で欠かせない指標である、ベンチマーク(または評価指標)について、日本語対応しており、かつ信頼性の高そうなものを抜粋してご紹介したいと思います。
※表記揺れを防ぐために、本記事では「ベンチマーク」で統一します。

本編では言語能力を測るベンチマーク紹介し、番外編としてその他(コード生成能力・数学能力・Vision Language Modelの性能)を測るベンチマークを紹介します。

ベンチマークとは

LLMを評価するためのベンチマークとは、大規模言語モデル(LLM)の性能を測定するために使用される基準やテストデータセットのことです。
これらのベンチマークは、モデルの自然言語処理能力を様々なタスク(例:質問応答、文章生成、翻訳、感情分析など)において評価し、その精度、効率性、一般化能力などを比較するために用いられます。

1. ベンチマークの評価基準

以下の5つの観点から、減点方式で信頼性を「高・中・低」の3つに分類しました。

  1. ピアレビューの有無
    • 国際学会
    • 国内学会
    • なし
  2. クローズドなLLMの評価に使えそうか(GPT、Claude、Geminiなど)
    • 事前学習を行わなくても評価できるか
  3. 日本語対応しているか
  4. 機械翻訳の使い方
    • 機械翻訳を使っているか
      • 使った後にチェック・修正している
      • チェックしていない
    • 使っていない(人手による翻訳)
  5. まぐれでの正解が起こりにくい構造か
    • ex. 2択問題などは50%で正解してしまう

2の「クローズドなLLMの評価に使えそうか」という基準は、ベンチマークには事前学習を行った後に評価データで、評価するといった方法を取るものもあるため、設定しました。

2. 本編

信頼性が「高」だったベンチマーク

JCoLA(JGLUE)

  • 作成元

    • 東大大関研究室
  • 学会(論文リンク)

  • 内容

    • Japanese Corpus of Linguistic Acceptability(JCoLA)
    • ある文章が日本語として成り立っているか(容認できるか)を判定するタスクです。
    • 具体的には、同じ内容を表す二つの文章が提示され、どちらがより自然な表現かを回答します。
  • 具体例

    JCoLA本文より抜粋

  • 注意点・所感

    • 論文内では、Transformerベースのモデル(GPTなど)が日本語特有の表現である、敬語表現の正解率が低い(Accuracyが0.4程度)ことが確認されています。

JNLI(JGLUE)

  • 作成元
    • 早大河原研究室・ヤフー株式会社
  • 学会(論文リンク)
  • 内容
    • 前提文と仮説文の文ペアが与えられたときに、前提文が仮説文に対してもつ推論関係を認識するタスクです。
    • 推論関係は具体的には、「含意 (entailment)」「矛盾 (contradiction)」「中立(neutral)」の 3値です。
    • YJCaptionに基づいて作成されたデータセットです。
      • YJCaption:ACL採択
      • ACL:自然言語処理分野のトップカンファレンス
  • 具体例

    JGLUE本文より抜粋
  • 注意点・所感
    • 正しく認識していない場合でも、1/3の確率で正解してしまうデメリットもあります。

JSQuAD(JGLUE)

  • 作成元

    • 早大河原研究室・ヤフー株式会社
  • 学会(論文リンク)

  • 内容

    • 機械読解タスクは文書を読み、それに関する質問に対して答えるというタスクです。
    • クラウドソーシングによって人手で構築されました。
  • 具体例

    JGLUE本文より抜粋

  • 注意点・所感

    • 正解が1意に決まっており、まぐれでの正解確率が低いです。
    • RAGでの「文書を正確に参照できているか」のような観点に似ている気がします。

JTruthfulQA

  • 作成元

    • 早大河原研究室
  • 学会(論文リンク)

  • 内容

  • 具体例

    JTruthfulQA本文より抜粋

  • 注意点・所感

    • gpt-3.5-turboの回答を含んだものと、そうでないものの2つのデータセットがあるようです。
    • LLMによって生成された回答がすでに区別されており、簡単に使い分けができ、利便性が高いです。
    • モデルがどれだけ安全で公平な回答を提供できるかを評価できます。

具体的な業務との関連性

ここでは、上記で紹介したそれぞれのベンチマークが高かった場合、どのようなプロンプトに対して対応力が高いかをご紹介します。
例えば、「JCoLAの数値が高ければ、営業資料の文章校正タスクが得意」といったイメージになります。
分かりやすいように、具体的にプロンプトを提示しつつ進めていきます。

ちなみに、プロンプトは架空の状況に基づいてLLMに作成させています。

JCoLA

ベンチマークが高かった場合に得意なこと:
JCoLAは日本語表現の測定が強みであると思います。
そのため、このベンチマークが高かった場合、日本語表現が上手い言語モデルだと言えます。
例えば、翻訳や文章校正のようなプロンプトの能力が高いと考えられます。

具体的なプロンプト例:
①日本語が第一言語でない方の日本語文章の文章校正

# 役割
あなたは日本語文章校正のエキスパートです。
# 目的
「# 文章」をより自然な言葉遣いに訂正してください。
# 文章
<ここに文章を貼り付ける>

②営業資料の文章校正

# 役割
あなたは営業資料作成のエキスパートです。
# 目的
「# 文章」を「# 条件」を満たすように訂正してください。
# 条件
- より自然な言葉遣い
- です・ます調
- 丁寧な言葉遣い
# 文章
<ここに文章を貼り付ける>

JNLI

論理的関係性:
JNLIは日本語の自然言語推論能力、特に論理的な関係を判断する能力を測定できるのが強みだと思います。
例えば、以下のようなプロンプトの能力が高いと考えられます。

具体的なプロンプト例:
①ある文に対して、契約書内に矛盾している文が含まれているかのチェック

# 役割
あなたは法務チェックのエキスパートです。
# 目的
「# 契約書」のうち、「# 項目」に矛盾している箇所を抽出してください。
# 項目
- 甲は乙の順委任契約
- <文章A>
- <文章B>
# 契約書
<ここに契約書を貼り付ける>

JSQuAD

JSQuADは、質問応答タスクにおける指示文(プロンプト)理解能力の測定が強みだと思います。
例えば、以下のようなプロンプトの能力が高いと考えられます。

具体的なプロンプト例:
①カスタマーサポート

# 役割
あなたは顧客対応のエキスパートです。
# 目的
顧客からの「この商品は返品できますか?」という質問に対して、正確かつ明確な返品ポリシーを提供する。
# 条件
1. 返品ポリシーの有効期限を伝えること。
2. 返品が可能な条件(商品状態や期限など)を詳しく説明すること。
3. 返品手続きの方法や必要な書類を明確に示すこと。
4. 返品に関する注意事項や例外があれば、それを説明すること。
5. 顧客が質問や不明点があれば、問い合わせ先を案内すること。
# 文章
<ここに返品ポリシーを貼り付ける>

②情報検索

# 役割
あなたは製品情報の専門家です。
# 目的
製品の特徴を明確にし、顧客にその利点を理解させること。
# 条件
- 製品の技術的な特徴を含める
- ユーザーにとっての利点やユニークなセールスポイントを強調する
- 専門用語はわかりやすく説明する
- 競合製品と比較して際立つ点を含める
# 文章
<ここに製品情報を貼り付ける>

JTruthfulQA

JTruthfulQAは、モデルが誤情報や偏見を含む回答を生成するリスクを測定できるのが強みだと思います。
ビジネスシーンでは誤った情報が顧客の信頼を損なう可能性があるため、重要なベンチマークの1つであると思います。
例えば、以下のようなプロンプトの能力が高いと考えられます。
※ただし、②はハルシネーションの具体例です。

具体的なプロンプト例:
①一般常識

Q. LLMを評価する際に使われる値は一般的に何と呼ばれますか?
A. LLM(大規模言語モデル)を評価する際に使われる指標は一般的に「評価指標」や「メトリクス」と呼ばれます。具体的な評価指標には、精度(Accuracy)、精度と再現率の調和平均であるF1スコア、BLEUスコア、ROUGEスコア、Perplexity(困惑度)などが含まれます。これらの指標は、モデルの性能を定量的に評価するために用いられます。評価の目的やタスクに応じて、適切な指標が選ばれることが一般的です。

②ハルシネーション

Q. 日本で10番目に高い山は?
A. 日本で10番目に高い山は、剣岳(けんがく)です。標高は2,977メートルです。剣岳は富山県と長野県の境に位置し、その特徴的な尖った形状から「剣」という名前が付けられています。

※剱岳(つるぎたけ):標高2,999mの山。富山県にある。標高は22位。

3. 番外編

こちらでは2. 本編を調査している中で目にした、個人的に興味を持ったベンチマークを紹介します。

コード生成

先日、GitHubから自然言語からアプリを作成できるGitHub Sparkが発表され、ますますコード生成が流行りになりつつあります。
LLMによるコード生成が、どういうデータセットで評価されているのかを簡単にご紹介します。

MBPP-ja

  • 作成元
    • 国立情報学研究所
  • 学会(論文リンク)
    • なし
  • 内容
    • コード生成タスクにおけるモデルの性能を測定できます。
  • 具体例
    • クエリ
      • 与えられたコスト行列cost[][]とcost[][]内の位置(m, n)に対して、(0, 0)から(m, n)に到達するための最小コスト経路を求める関数を書きなさい。
    • 正例
        R = 3
        C = 3
        
        def min_cost(cost, m, n):
            tc = [[0 for x in range(C)] for x in range(R)]
            tc[0][0] = cost[0][0]
        
            for i in range(1, m + 1):
                tc[i][0] = tc[i - 1][0] + cost[i][0]
        
            for j in range(1, n + 1):
                tc[0][j] = tc[0][j - 1] + cost[0][j]
        
            for i in range(1, m + 1):
                for j in range(1, n + 1):
                    tc[i][j] = min(tc[i - 1][j - 1], tc[i - 1][j], tc[i][j - 1]) + cost[i][j]
        
            return tc[m][n]
      
  • 注意点・所感
    • MBPP-jaを使用する際の注意点として、日本語特有の文法や表現の違いがモデルの性能に影響を与える可能性があります。

ODEX

  • 作成元

    • カーネギーメロン大学、Inspired Cognition社
  • 学会(論文リンク)

    • EMNLP(自然言語処理分野トップカンファレンス)
  • 内容

    • 生成されたコードの機能的な正確性を評価するために、実行ベースの評価アプローチを採用しています。
    • 具体的には、人間が書いたテストケースに対してコードを実行することで評価を行います。
    • データセットは、StackOverflowから取得した945件の自然言語(NL)とコードのペア、および1,707件の人間が書いたテストケースで構成されています。
    • ODEXは、英語、スペイン語、日本語、ロシア語を含む多言語をサポートしています。
  • 具体例

    • クエリ
      • ブラウザオブジェクトbrからsubmitした際の返り値を読みこむ
    • 正例
        # Library import
        import mechanize
        import urllib.request
        from unittest.mock import Mock
        ​
        # Function-wrapped code solution
        def function(br):
        	return br.submit().read()
        ​
        # Test case
        br = mechanize.Browser()
        x = urllib.request.urlopen('https://www.wikipedia.org')
        br.submit = Mock(return_value = x)
        assert b'Wikipedia' in function(br)
      
  • 注意点・所感

    • ODEXは、オープンドメインのコーディングに焦点を当てており、従来のベンチマークが特定のライブラリやクローズドドメインの問題に限定されがちであるのに対し、より現実的なプログラミングタスクを反映しています。

CoNaLa

  • 作成元
    • カーネギーメロン大学NeuLab、Strudelラボ
  • 学会(論文リンク)
  • 内容
    • 自然言語の記述からコードスニペットを生成するシステムの能力を評価するためのデータセットと評価フレームワークです。
    • 主にPythonコードの生成に焦点を当てています。
    • データセットは、Stack Overflowの質問から得られた自然言語の意図とそれに対応するPythonコードスニペットのペアで構成されています。
    • 手動で注釈付けされた2,379のトレーニング例と500のテスト例が含まれ、さらに598,000以上の自動マイニングで取得したデータが提供されています。
  • 具体例
    • クエリ
      • Concatenate elements of a list 'x' of multiple integers to a single integer
    • 正例
      • sum(d * 10 ** i for i, d in enumerate(x[::-1]))
  • 注意点・所感
    • Stack Overflowに依存しているため、特定の質問やプログラミングの慣習に偏りが生じる可能性があります。
    • 非英語データセットでのパフォーマンスが英語に比べて劣ることが指摘されており、多言語対応の改善が求められています。
    • 1〜2行程度の短いコードしか評価できないようです。

数学能力

近年、言語モデル(LLM)の能力は飛躍的に向上していますが、その一方で、数学能力に関しては依然として課題が残っていると指摘されています。
LLMがどのように数学的な問題を解決するのか、その能力を正確に評価するためには、適切なデータセットの使用が不可欠です。
ここでは、LLMの数学能力を評価するために使用されているデータセットについて簡単に紹介します。

MAWPS-ja

  • 作成元
    • MAWPS-jaは、もともと英語で開発されたMAWPS(Mathematical Word Problem Solving)を日本語に適応したもので、日本語の数学問題解決能力を評価するために作成されました。
  • 学会(論文リンク)
  • 内容
    • 日本語で表現された数学的な言葉の問題を解決する能力を測定するためのデータセットです。
    • モデルが自然言語で書かれた問題を理解し、正確に解答できるかどうかを評価します。
    • 具体的には、問題文から必要な情報を抽出し、適切な計算を行う能力が求められます。
  • 具体例
    • クエリ
      • 「ある店でリンゴが1個100円、バナナが1個150円です。リンゴを3個とバナナを2個買った場合、合計はいくらになりますか?」
    • 正例
      • 「600円」
  • 注意点・所感
    • 機械翻訳を利用しているかどうか不明。

MGSM-ja

  • 作成元
    • Google、豊田工業大学シカゴ校、スタンフォード大学、ダートマス大学
  • 学会(論文リンク)
  • 内容
    • MGSM-jaは、小学校レベルの算数問題を解くためのベンチマークであり、日本語を含む多言語での数学的推論能力を評価することを目的としています。
  • 具体例
    • クエリ
      • 「ロジャーは5つのテニスボールを持っていて、さらに2つの缶を買いました。それぞれの缶には3つのテニスボールが入っています。ロジャーは今何個のテニスボールを持っていますか?」
    • 正例
      • 「11個」
  • 注意点・所感
    • 日本語の数学教育における特性や文化的背景が反映されているかは不明です。

VLM

昨今、人工知能の分野ではマルチモーダル化が急速に進展しており、視覚と言語を統合的に処理するVision Language Model(VLM)が注目を集めています。
これに伴い、VLMの性能を適切に評価するためのデータセットも多く提案されています。
ここでは、それらのVLMを評価するためのデータセットについて簡単に紹介します。

Blindtest

  • 作成元
    • オーバーン大学、アルバータ大学
  • 学会(論文リンク)
  • 内容
    • 視覚と言語を組み合わせたモデル(VLM)の視覚認識能力を評価するために設計されたベンチマークです。
    • 人間にとっては比較的簡単な低レベルの視覚タスクをVLMがどの程度こなせるかを評価することを目的としています。
    • 具体的には、基本的な幾何学的形状の識別やその相互作用を評価する7つの異なるタスクで構成されています。
  • 具体例

    論文内より引用
    a. 線の交差点の数を数える: グラフ上で2本の線が何回交差するかをモデルに判断させます。
    b. 囲まれた文字の認識: 単語の中でどの文字が囲まれているかを特定します。
    c. 入れ子になった四角形の数を数える: 入れ子になった四角形の数を数えます。
  • 注意点・所感
    • 結果として、VLMが複雑な推論や物体認識を伴う高レベルのタスクでは良好な性能を示されました。
    • 一方で、正確な空間認識を必要とする基本的な視覚認識タスクでは苦戦することが示されました。
      • 例えば、VLMは重ならない形状を数える際にはより良い性能を示しましたが、重なり合う形状の処理には大きなギャップがあることが明らかになりました。

JDocVQA

  • 作成元
    • 奈良先端科学技術大学院大学、理化学研究所、国際電気通信基礎技術研究所
  • 学会(論文リンク)
  • 内容
    • 文書画像に基づく視覚的質問応答(VQA)システムを評価するためのベンチマークです。
    • 11,600の質問応答ペアと5,508のPDF文書で構成されています。
  • 具体例

    論文内より引用
    • 質問に対して「はい/いいえ」で解答するはい/いいえ形式
    • 本文中から事実を抜き出して解答する事実抽出形式
    • 簡単な四則演算や単位を含めて数字で解答する数量形式
    • 質問に対してある程度の長さの文章を作成して解答する自由記述形式
  • 注意点・所感
    • JDocQAを用いてLLMのファインチューニングを行うことで、GPT-4のゼロショット性能を上回る性能を達成したようです。

4. まとめ

今回設定した評価基準では、言語能力を測るベンチマークの内、JCoLAJNLIJSQuADJTruthfulQAの4つのベンチマークが信頼性が高いという結果になりました。

また、今回の調査にあたって、各リーダーボードで使われている主要なベンチマークが、意外とピアレビューされていなかったり、機械翻訳を用いてチェックしていなかったりしていることが分かりました。
そのため、リーダーボードの評価を鵜呑みにしないこと。そして、ベンチマークそのもの自体が信頼性のあるものなのか、どのような能力を測定するものなのかを理解することが重要だと感じました。

生成AIを活用したPoCや支援にご興味があれば、以下リンクよりお問い合わせください。
https://givery.co.jp/lp/ai-lab/

5. 今回調査したベンチマーク一覧

名前 信頼性 機械翻訳 PeerReview 備考
MARC-ja(JGLUE) × 言語処理学会 MARCの日本語部分をそのまま使用している
JCoLA(JGLUE) × LREC,言語処理学会 LREC
JSTS(JGLUE) × ACL,言語処理学会 クラウドソーシング, 元にしたデータセット(YJCaptions)がACL採択
JNLI(JGLUE) × ACL,言語処理学会 クラウドソーシング, 元にしたデータセット(YJCaptions)がACL採択
JSQuAD(JGLUE) × 言語処理学会 クラウドソーシング, 3択, 分類タスクの一部としては紹介アリかも
JCommonsenseQA(JGLUE) × 言語処理学会 クラウドソーシング, 5択
JTruthfulQA × 言語処理学会 -
JMMLU なし -
JBBQ 言語処理学会 -
BlindTest × ACCV VLM向け
JDocVQA × 言語処理学会 VLM向け
MBPP-ja コード生成 -
ODEX × OpenReviewあり コード生成、日本語も一部含まれる、OpenReview
CoNaLa × OpenReviewあり コード生成、指示文英語、参考
JHumanEval 言語処理学会 HumanEval
MT-Bench-ja 不明 なし 包括的、LLM as a judge
MAWPS-ja 不明 NAACL 算数能力、MAWPS論文は NAACL
MGSM-ja × OpenReviewあり 算数能力

6. 参考資料

GitHub

JGLUE
https://github.com/yahoojapan/JGLUE
JTruthfulQA
https://github.com/nlp-waseda/JTruthfulQA
MAWPS-ja
https://github.com/nlp-waseda/chain-of-thought-ja-dataset

HuggingFace

CoNaLa
https://huggingface.co/datasets/neulab/conala/viewer/curated/train?p=2
MBPP-ja
https://huggingface.co/datasets/llm-jp/mbpp-ja
MGSM-ja
https://huggingface.co/datasets/juletxara/mgsm/viewer/ja
JDocQA
https://huggingface.co/datasets/shunk031/JDocQA

Givery AI Lab

Discussion