Swallowプロジェクトでは、日本語に強い大規模言語モデル (LLM) の開発と並行して、主要なLLMの評価実験を独自に進めています。日本国内のみならず、世界中で開発されたLLMと比較することで、Swallowプロジェクトの「現在地」を知ることができます。各LLMの独自仕様(トークン化やシステムプロンプトなど)を加味しながら公平な条件で評価を行い、各LLMの開発方法と照らし合わせることで、高性能なLLMを開発するための「レシピ」を模索できます。このサイトでは、Swallowプロジェクト内で実施されたLLMの評価結果を棒グラフやレーダーチャート、散布図などで閲覧できます。高性能なLLMを選択するための情報としてだけでなく、日本語に強いLLM開発の参考情報としてもお役に立てると幸いです。

このリーダーボードのコンテンツ(データやグラフ等)はクリエイティブ・コモンズ 表示 4.0 (CC-BY 4.0) ライセンスで、評価ソフトウェア(swallow-evaluation-instructswallow-evaluation)はMITライセンスで、このウェブサイトのソースコードはMITライセンスで提供しています。

更新履歴

  • 2025-08-18
    • Swallow LLM Leaderboard v2を公開しました。
    • 推論型モデルなどの新しい大規模言語モデルの能力を正しく測定するため、事後学習済みモデル向けの評価ベンチマーク・評価方法を刷新しました。日本語ベンチマーク6件(JEMHopQA, MMLU-ProX, GPQA, MATH-100, JHumanEval, M-IFEval-Ja)、英語ベンチマーク6件(HellaSwag, MMLU-Pro, GPQA, MATH-500, AIME 2024-2025, LiveCodeBench)を採用し、評価方法をzero-shot推論(以前はfew-shot推論)に変更しました。なお、開発した評価フレームワークは swallow-evaluation-instruct として公開しました。
    • ABEJA-QwQ32b-Reasoning-Japanese-v1.0、DeepSeek-R1-Distillシリーズ、ELYZA-Thinking-1.0-Qwen-32B、GPT-5 (gpt-5-2025-08-07)、gpt-oss-20b、gpt-oss-120b、Llama-3.1-Nemotronシリーズ、Llama 4 Scout Instruct、MedGemma 27B IT、o3 (o3-2025-04-16)、o3-mini (o3-mini-2025-01-31)、Phi-4-reasoning-plus、Qwen3シリーズの評価結果を追加しました。
    • 総合(平均スコアの棒グラフ)、タスク毎(レーダーチャート)、散布図の3種類のページからなる構成に変更しました。それぞれ、事前学習済みモデル(事後学習なし)、または事後学習済みモデルの評価結果が可視化されます。
    • 各ページに表示されるモデルの一覧(表)の右側に、規模やカテゴリでモデルを一括選択する機能を実装しました。
    • 総合ページの棒グラフでいずれかのモデル名をクリックすると、モデルの整列順が切り替わる機能を実装しました。
    • 専門家の混合(MoE; Mixture of Experts)のモデルに対して、有効パラメータ数を表示するようにしました。
    • 散布図のプロットの色をモデルの系統別(OpenAI系、Llama系、Gemma系、Qwen系、その他)で色分けするようにしました。
    • 以前のバージョンを https://swallow-llm.github.io/leaderboard-v1/ に移動しました。
  • 2025-06-27
    • llm-jp-3.1-*-instruct4のドメイン内評価(in-domain評価)に関して注釈を追加しました。
  • 2025-06-25
    • Llama 3.1 Swallow 8B v0.5の評価結果を追加しました。
    • Llama 4 Scoutの評価結果を追加しました。
    • llm-jp-3-7.2bの評価結果を追加しました。
    • llm-jp-3-1.8b-instruct3, llm-jp-3-3.7b-instruct3, llm-jp-3-7.2b-instruct3, llm-jp-3-13b-instruct3の評価結果を追加しました。
    • llm-jp-3.1-1.8b-instruct4, llm-jp-3.1-13b-instruct4の評価結果を追加しました。
    • Qwen2.5-32Bの評価結果を追加しました。
    • Qwen3-1.7B-Base, Qwen3-4B-Base, Qwen3-8B-Base, Qwen3-14B-Base, Qwen3-30B-A3B-Baseの評価結果を追加しました。
  • 2025-05-21
    • Sarashina2.2 0.5B, 1B, 3Bの評価結果を追加しました。
  • 2025-05-19
    • Gemma-2-Llama Swallow 2B, 9B, 27Bの評価結果を追加しました。
  • 2025-04-14
    • Gemma 3 1B, 4B, 12B, 27Bの評価結果を追加しました。
    • GPT-4 (gpt-4-0613) の評価結果(日本語理解・生成タスクと日本語MT-Benchのスコア)を追加しました。
    • GPT-4.5 (gpt-4.5-preview-2025-02-27) とo1 (o1-2024-12-17) の日本語MT-Benchの評価結果を追加しました。日本語理解・生成タスクでの評価も検討しましたが、Open AIのAPIの仕様により、他のモデルと実験条件を揃えられない部分(具体的には、一つのプロンプトに対して10個の応答を生成させることができない点)があるため、日本語理解・生成タスクのスコアは欠損扱いとします。
  • 2025-03-10
    • Swallow LLM Leaderboardとしてリニューアル公開しました。MATHベンチマークを追加しました。
  • 2024-07-01

評価タスク

事後学習(日本語)

日本語のベンチマークデータで推論型モデルを含む事後学習済みモデルの能力を測定します。評価スコアは0 (最低) から1 (最高) までの範囲の値をとります。

多段階推論
JEMHopQA

説明可能なマルチホップ日本語質問応答

評価尺度: 文字F1 (柔軟)
大学レベルの試験問題
MMLU-ProX (日本語)

多分野にわたる高度な言語理解と推論能力

評価尺度: 正解率
科学
GPQA (日本語)

検索では解けない大学院レベルの日本語質問応答

評価尺度: 正解率
数学
MATH-100 (日本語)

コンテストレベルの数学

評価尺度: 正解率
コーディング
JHumanEval

コード生成能力のベンチマークHumanEvalの日本語訳

評価尺度: Pass@1 (n=10)
指示追従
M-IFEval-Ja

指示追従能力の制御性

評価尺度: 正解率

このタスクの評価結果は平均の算出から除外されます

事後学習(英語)

英語のベンチマークデータで推論型モデルを含む事後学習済みモデルの能力を測定します。評価スコアは0 (最低) から1 (最高) までの範囲の値をとります。

自然言語推論
HellaSwag

次に起こる出来事を予測する4択の選択式問題

評価尺度: 正解率
大学レベルの試験問題
MMLU-Pro (英語)

多分野にわたる高度な言語理解と推論能力

評価尺度: 正解率
科学
GPQA (英語)

検索では解けない大学院レベルの質問応答

評価尺度: 正解率
数学
MATH-500 (英語)

コンテストレベルの数学

評価尺度: 正解率
数学
AIME 2024-2025

米国数学オリンピック (USAMO) の予選

評価尺度: 正解率
コーディング
LiveCodeBench

競技プログラミング (LeetCode, AtCoder, CodeForces)

評価尺度: Pass@1 (n=10)
日本語 MT-Bench

マルチターン対話能力を測定するMT-Benchの日本語版(Nejumi LLMリーダーボード版)を用いました。設問はv4を、模範回答はv2の誤答を修正したものを採用しています。評価スコアは0 (最低) から1 (最高) までの範囲の値をとります。

コーディング

PythonやC++でアルゴリズムを実装したり、HTMLでウェブサイトを作成する

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
情報抽出

文書から固有表現(著者名や数値など)や評判(ポジネガなど)を抽出する

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
人文科学

法律や経済、歴史、哲学、教育などの話題に関する論説や戦略を作成する

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
数学

代数、幾何、確率、整数などの問題や文章題に対する解答を作成する

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
推論

常識や推論力を活用して問題に対する解答を作成する

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
ロールプレイ

有名人や映画中の人物になりすますなど、仮想の状況を想定して文章を作文する

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
科学・技術・工学・数学

物理学、化学、生物学、地理、建築、機械学習などの話題に関して解答を作成する

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
執筆

ブログ記事やメール文面、フィクションの文章などを執筆するタスク

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
英語 MT-Bench

マルチターン対話能力を測定する英語 MT-Bench。評価スコアは0 (最低) から1 (最高) までの範囲の値をとります。

コーディング

PythonやC++でアルゴリズムを実装したり、HTMLでウェブサイトを作成する

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
情報抽出

文書から固有表現(著者名や数値など)や評判(ポジネガなど)を抽出する

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
人文科学

法律や経済、歴史、哲学、教育などの話題に関する論説や戦略を作成する

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
数学

代数、幾何、確率、整数などの問題や文章題に対する解答を作成する

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
推論

常識や推論力を活用して問題に対する解答を作成する

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
ロールプレイ

有名人や映画中の人物になりすますなど、仮想の状況を想定して文章を作文する

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
科学・技術・工学・数学

物理学、化学、生物学、地理、建築、機械学習などの話題に関して解答を作成する

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
執筆

ブログ記事やメール文面、フィクションの文章などを執筆するタスク

評価尺度: GPT-4o (gpt-4o-2024-08-06) による自動採点
事前学習(日本語)

日本語のベンチマークデータで事前学習済み(事後学習無し)モデルの能力を測定します。評価スコアは0 (最低) から1 (最高) までの範囲の値をとります。

常識的な知識
JCommonsenseQA

知識ベースに基づいて作成された5択の選択式問題

評価尺度: 正解率
マルチホップ質問応答
JEMHopQA

知識量や推論能力を評価するための自由記述式質問応答

評価尺度: 文字F1
クラシカルな質問応答
NIILC

百科事典で解答が得られそうな自由記述式質問応答

評価尺度: 文字F1
機械読解
JSQuAD

Wikipedia記事に対する自由記述式質問応答

評価尺度: 文字F1
自動要約
XL-Sum

イギリス国営放送(BBC)の記事本文からハイライト(要約)を生成するタスク

評価尺度: ROUGE-2
数学(算数)
MGSM

小学校の数学の文章題データセット(GSM8K)の日本語訳

評価尺度: 正解率, 完全一致
英日機械翻訳
WMT20 (en-ja)

ニュース記事の翻訳(英語から日本語)

評価尺度: BLEU
日英機械翻訳
WMT20 (ja-en)

ニュース記事の翻訳(日本語から英語)

評価尺度: BLEU
マルチタスク言語理解
JMMLU

4値選択式試験問題のベンチマークMMLUの日本語訳(53科目)

評価尺度: 正解率
コード生成
JHumanEval

コード生成能力のベンチマークHumanEvalの日本語訳

評価尺度: pass@1
事前学習(英語)

英語のベンチマークデータで事前学習済み(事後学習無し)モデルの能力を測定します。評価スコアは0 (最低) から1 (最高) までの範囲の値をとります。

事実と常識に基づく質問応答
OpenBookQA

科学的な知識と常識に基づく4択の選択式問題

評価尺度: 正解率
知識に基づく質問応答
TriviaQA

雑学的な知識に基づく自由記述式質問応答

評価尺度: 正解率, 完全一致
常識推論
HellaSwag

次に起こる出来事を予測する4択の選択式問題

評価尺度: 正解率
機械読解
SQuAD2

根拠文書に対して作成された自由記述式質問応答

評価尺度: 正解率, 完全一致
常識推論
XWINO

文中の代名詞の先行詞を推定する2択の選択式問題

評価尺度: 正解率
マルチタスク言語理解
MMLU

57科目からなる4値選択式の試験問題

評価尺度: 正解率
数学(算数)
GSM8K

小学校の数学の文章題データセット

評価尺度: 正解率, 完全一致
数学
MATH

高校生向け数学コンテスト

評価尺度: 正解率, 完全一致
LLMにとって難しいタスクのコレクション
BIG-Bench-Hard (BBH)

BIG-Benchデータセット (Srivastava et al., 2023) の中でも難易度の高い23件のタスク

評価尺度: 正解率, 完全一致
コード生成
HumanEval

単体テストによるコード生成能力の評価

評価尺度: pass@1

評価に用いたツール

LLM-jp 評価スクリプト (1.3.0)
日本語の大規模言語モデルの自動評価ツール
JP Language Model Evaluation Harness (commit #9b42d41)
日本語の大規模言語モデルの評価フレームワーク
Language Model Evaluation Harness (0.4.2)
大規模言語モデルの評価フレームワーク
Code Generation LM Evaluation Harness (commit #0261c52)
コード生成(HumanEval)の評価フレームワーク
FastChat (commit #e86e70d0)
LLMによる自動評価(MT-Bench)のフレームワーク
swallow-evaluation
上記5つのツールを統合・改修した、Swallowプロジェクトで用いた評価フレームワーク

評価したモデル

モデル名 パラメータ数 [B] 公開日 事後学習 推論モード 未評価タスク
ABEJA-QwQ32b-Reasoning-Japanese-v1.0 33 2025-04-25 あり on
CyberAgentLM3-22B-chat 22 2024-07-09 あり N/A
DeepSeek-R1-Distill-Llama-8B 8.0 2025-01-20 あり on
DeepSeek-R1-Distill-Llama-70B 70 2025-01-20 あり N/A
DeepSeek-R1-Distill-Qwen-7B 7.6 2025-01-20 あり on
DeepSeek-R1-Distill-Qwen-14B 15 2025-01-20 あり on
DeepSeek-R1-Distill-Qwen-32B 33 2025-01-20 あり on
DeepSeek-R1-Distill-Qwen-14B-Japanese 15 2025-01-27 あり on
DeepSeek-R1-Distill-Qwen-32B-Japanese 33 2025-01-27 あり on
ELYZA-Thinking-1.0-Qwen-32B 33 2025-05-01 あり on
Falcon3-1B-Base 1.7 2024-12-19 なし
Falcon3-3B-Base 3.2 2024-12-19 なし
Falcon3-7B-Base 7.5 2024-12-19 なし
Falcon3-10B-Base 10 2024-12-19 なし
Gemma 2 2B 2.6 2024-06-27 なし
Gemma 2 2B IT 2.6 2024-06-27 あり N/A
Gemma 2 9B 9.2 2024-06-27 なし
Gemma 2 9B IT 9.2 2024-06-27 あり N/A
Gemma 2 27B 27 2024-06-27 なし
Gemma 2 27B IT 27 2024-06-27 あり N/A
Gemma-2-Llama Swallow 2B 2.6 2025-05-19 なし
Gemma-2-Llama Swallow 2B IT 2.6 2025-05-19 あり N/A
Gemma-2-Llama Swallow 9B 9.2 2025-05-19 なし
Gemma-2-Llama Swallow 9B IT 9.2 2025-05-19 あり N/A
Gemma-2-Llama Swallow 27B 27 2025-05-19 なし
Gemma-2-Llama Swallow 27B IT 27 2025-05-19 あり N/A
Gemma 3 1B 1 2025-03-12 なし
Gemma 3 1B IT 1.0 2025-03-12 あり N/A
Gemma 3 4B 4.3 2025-03-12 なし
Gemma 3 4B IT 4.3 2025-03-12 あり N/A
Gemma 3 12B 12 2025-03-12 なし
Gemma 3 12B IT 12 2025-03-12 あり N/A
Gemma 3 27B 27 2025-03-12 なし
Gemma 3 27B IT 27 2025-03-12 あり N/A
GPT-4.1 (gpt-4.1-2025-04-14) 0 2025-04-14 あり N/A
GPT-4o (gpt-4o-2024-08-06) 0 2024-08-06 あり N/A
GPT-5 (gpt-5-2025-08-07) 0 2025-08-07 あり on (middle)
gpt-oss-20b 22 (3.6) 2025-08-05 あり on (middle)
gpt-oss-120b 120 (5.1) 2025-08-05 あり on (middle)
Llama 3.1 8B 8.0 2024-07-23 なし
Llama 3.1 8B Instruct 8.0 2024-07-23 あり N/A
Llama 3.1 70B 70 2024-07-23 なし
Llama-3.1-Nemotron-Nano-8B-v1 8.0 2025-03-18 あり on
Llama 3.1 Swallow 8B Instruct v0.3 8.0 2024-12-23 あり N/A
Llama 3.1 Swallow 8B v0.5 8.0 2025-06-25 なし
Llama 3.1 Swallow 8B Instruct v0.5 8.0 2025-06-25 あり N/A
Llama 3.2 1B 1.2 2024-09-25 なし
Llama 3.2 3B 3.2 2024-09-25 なし
Llama 3.3 70B Instruct 70 2024-12-06 あり N/A
Llama-3.3-Nemotron-Super-49B-v1 50 2025-03-18 あり N/A
Llama 3.3 Swallow 70B v0.4 70 2025-03-14 なし
Llama 3.3 Swallow 70B Instruct v0.4 70 2025-03-10 あり N/A
Llama 4 Scout 109 (17) 2025-04-04 なし
Llama 4 Scout Instruct 109 (17) 2025-04-04 あり N/A
llm-jp-3-1.8b 1.8 2024-09-25 なし
llm-jp-3-3.7b 3.7 2024-09-25 なし
llm-jp-3-7.2b 7.3 2025-02-05 なし
llm-jp-3-13b 13 2024-09-25 なし
llm-jp-3.1-1.8b-instruct4 1.8 2025-05-30 あり N/A
llm-jp-3.1-13b-instruct4 14 2025-05-30 あり N/A
MedGemma 27B IT 27 2025-07-09 あり N/A
o3 (o3-2025-04-16) 0 2025-04-16 あり on (middle)
o3-mini (o3-mini-2025-01-31) 0 2025-01-31 あり on (middle)
Phi-4 15 2024-12-13 あり N/A
Phi-4-reasoning-plus 15 2025-04-30 あり on
PLaMo 2 1B 1.3 2025-02-21 なし
PLaMo 2 8B 9.1 2025-02-21 なし
Qwen2.5-1.5B 1.5 2024-09-19 なし
Qwen2.5-3B 3.1 2024-09-19 なし
Qwen2.5-7B 7.6 2024-09-19 なし
Qwen2.5-7B-Instruct 7.6 2024-09-19 あり N/A
Qwen2.5-14B 14 2024-09-19 なし
Qwen2.5-14B-Instruct 15 2024-09-19 あり N/A
Qwen2.5-32B 33 2024-09-19 なし
Qwen2.5-32B-Instruct 33 2024-09-19 あり N/A
Qwen2.5-72B 72 2024-09-19 なし
Qwen3-0.6B 0.5 2025-04-29 あり on
Qwen3-0.6B-Base 0.6 2025-04-29 なし
Qwen3-1.7B 1.5 2025-04-29 あり on
Qwen3-1.7B-Base 1.7 2025-04-29 なし
Qwen3-4B 3.1 2025-04-29 あり on
Qwen3-4B-Base 4.0 2025-04-29 なし
Qwen3-8B-Base 8.2 2025-04-29 なし
Qwen3-8B 8.2 2025-04-29 あり on
Qwen3-14B-Base 15 2025-04-29 なし
Qwen3-14B 15 2025-04-29 あり on
Qwen3-32B 33 2025-04-29 あり on
Qwen3-30B-A3B-Base 31 (3.3) 2025-04-29 なし
Qwen3-235B-A22B-Instruct-2507 235 (22) 2025-07-23 あり N/A
Qwen3-235B-A22B-Thinking-2507 235 (22) 2025-07-23 あり on
Sarashina2-7B 7.3 2024-06-14 なし
Sarashina2-13B 13 2024-06-14 なし
Sarashina2-70B 70 2024-06-14 なし
Sarashina2.2 0.5B 0.8 2025-03-07 なし
Sarashina2.2 1B 1.4 2025-03-07 なし
Sarashina2.2 3B 3.4 2025-03-07 なし
Sarashina2.2 3B Instruct v0.1 3.4 2025-03-07 あり N/A
TinySwallow-1.5B 1.5 2025-01-30 なし

評価時に発生した問題

評価データの学習セットで訓練されたモデル(in-domain評価)

大規模言語モデル(LLM)が登場する以前は、汎用的に様々なタスクに対応できる機械学習モデルは稀であり、通常は解きたいタスクごとにモデルを個別にチューニングしていました。このような場合、まずタスクに対応する学習データでモデルを訓練し、(学習データとは重複しない)評価用データで性能を測定します。これは一般にホールドアウト検証と呼ばれます。ここでは、モデルが評価対象となるタスクについてあらかじめ学習している点に注目し、このような評価方法をドメイン内評価in-domain評価)と呼びます。

一方で、大規模言語モデルには、未学習のタスクに対しても汎用的に対応できる能力が求められます。この場合、評価対象のタスクに特化したデータでモデルを訓練するのではなく、事前学習データや他タスクの学習データでのみ訓練し、評価タスクは初見で解かせることで、その汎用性を測定することができます。このように、評価対象のタスクに関する学習データを使用せずに性能を測定する方法は、ドメイン外評価out-of-domain評価)と呼ばれます。

まとめると、ドメイン内評価はモデルを特定のタスクに最適化した場合の性能を測定する方法であり、ドメイン外評価はモデルがタスクを初見で解く際の汎用的な能力を測る方法です。どちらも有効な評価手法ですが、大規模言語モデルの場合、評価タスクの出題形式にモデルが事前に慣れていると、評価スコアが大幅に上昇することがあります。ドメイン内評価について、日本語の大規模モデルを評価するためのソフトウェアであるllm-jp-evalでは、以下の注意喚起がなされています(リンク)。

jasterを用いてインストラクションチューニングを施したモデルが、テストデータをインストラクションチューニングに使用していない場合でも, llm-jp-evalの評価スコアを非常に高くすることができることが明らかになっている. したがって、高い評価スコアを得たからといって、他のLLMよりも性能が優れていると断言するのは適切ではないことに注意されたい.

llm-jp-3.1-*-instruct4 シリーズは、jaster v1.4.1 を用いて教師ありファインチューニングを実施したと明記しており、これはドメイン内評価に該当します。具体的には、これらのモデルのJCommonsenseQA, JEMHopQA, NIILC, JSQuAD, JMMLU, MGSM, XL-Sum, MMLUタスクの評価結果、日本語理解・生成タスクの平均スコア、英語理解・生成タスクの平均スコアに影響が出ると考えられます(ただ、百科事典的知識への依存度が高いNIILC, JMMLU, MMLUの影響は低いと推定されます)。そのため、これらのモデルの評価結果は他モデルとの単純な比較には適しておらず、スコアには注釈を付ける形で示す必要があります。なお、2025年6月現在、Swallowチームで開発されているすべてのモデルは、評価タスクに関するデータを事前学習に含めないよう配慮しており、ドメイン外評価の形で性能を測定しています。

評価の実行環境が多様

Swallowプロジェクトでは、大規模言語モデルの評価のため、AI Bridging Clud Infrastructure (ABCI) のAノード(NVIDIA A100)の他、東京工業大学のTSUBAME 4.0 (NVIDIA H100)、岡崎研究室内の計算サーバ(NVIDIA RTX A6000 Ada, A6000)、横田研究室内の計算サーバ(NVIDIA A100, RTX 6000 Ada, A6000など)が使われています。まとまった大規模なGPU計算資源は大規模言語モデルの学習に割り当てることになりますので、モデルの評価は学習環境の予備ノードや、クラウド計算環境の通常利用枠、研究室内の計算資源などでやりくりをします。さらに、規模の異なる多数のモデルに対して、20~28個のタスクで評価を行いますので、評価実験は6名くらいの学生で分担しています。したがって、計算環境と評価者の掛け算で、20~30個の評価環境が使われることになります。

(J)HumanEvalの評価にdocker環境が必要

(J)HumanEvalでは、大規模言語モデルが生成したコードを実際に実行するため、dockerを用いてサンドボックス環境を作る必要があります。ところが、ABCIはdockerに対応していないため、(J)HumanEvalの評価は別の実行環境で行う必要がありました(ABCIでは代わりにsingularityが利用できますが、今回の評価実験では採用しませんでした)。

実行環境によって評価スコアが変動する

乱数シードの固定など、評価の再現性を担保するための対策を講じていますが、それでも実行環境によって評価スコアが変動することを観測しています。評価スコアの有効数字3桁目以降は、再現性の担保が困難な状況にあります。

実行環境によってエラーが発生する

XL-Sumのタスクで、以下のエラーに遭遇することがあります。

  File "/.../.venv_harness_jp/lib/python3.10/site-packages/transformers/models/llama/modeling_llama.py", line 1184, in forward
    logits = logits.float()
RuntimeError: CUDA error: unspecified launch failure
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

この問題はtransformersのversionを上げることで解決しました。

Llama 3にはtransformers 4.40.0以降が必要

Llama 3に対応したtransformersのバージョンは4.40.0以降です。そのため、評価を行うときは、評価担当者のtransformersのバージョンが4.40.0以降になるように指定する必要がありました。また、4.39.3以前のtransformersはLlama 3のtokenizer.jsonを正しく扱えないため、学習データのトークン化もtransformersのバージョンが4.40.0以降を使う必要があり、学習データの準備のやり直しが発生しました。

稀に評価が途中でハングアップする

評価タスクの実行が途中で止まってしまうことがあります。正確には、特定のモデル、タスク、事例において、モデルの出力が停止し、いつまでたっても評価が終わらないという状況に遭遇することがあります。この現象は実行環境を変えると解消することがあるため、Pythonやtransformersのバージョンによる微妙な挙動の違いを疑っていますが、現段階では原因を特定できていません。

GPUのメモリ不足によるエラー

評価したいモデルのサイズやタスクによっては、メモリ不足(out of memory)が発生することがあります。このような場合は、バッチサイズを下げる必要があり、時にはバッチサイズを1に設定することもあります。ところが、それでもメモリ不足が解消しないことがあり、そのような場合はより多くのメモリを積んだGPUの実行環境に変更するなど、対処が必要になります。

評価のジョブが打ち切られる

Swallowプロジェクトではたくさんの評価実験を行っていますが、自分たちが開発しているモデルのハイパーパラメータ調整の実験では、評価結果をできるだけ早く知りたい場合があります(本実験にできるだけ早く移行したいため)。逆に、他で開発されたモデルの評価は、さほど急ぐ必要がありません。このように、評価実験にも優先度があります。ところで、ABCIにジョブを投入する場合、実行時間を短く指定した方がジョブが早く実行されます。ABCIは大変混雑していますので、評価実験を行う担当者は、各タスクの評価実験にかかる実行時間を予測し、ジョブの投入時に経過時間制限値を設定します。ところが、何らかの要因で評価タスクの実行時間が長くなってしまうと、無慈悲にも設定した経過時間でジョブの実行が打ち切られ、評価実験が未完了となります。一部の評価タスクでは、評価中に結果をキャッシュしておくことで、ジョブの実行が打ち切られた場合でも続きから評価が再開できるような対策を講じました。

MT-Benchの評価でOpenAIのAPIを呼び出すときにRateLimitErrorが発生した

MT-Benchの評価では、GPT-4のAPIを呼び出す必要があります。MT-Benchの評価を並列で実行すると、OpenAI APIのRateLimitErrorが高頻度で発生し、retry回数の上限を超えてしまい正しく評価が行えないことがありました。FastChatの実装では、retry回数の上限を超えた際はエラーを出すのではなくスコアを-1として記録するため、最終結果のスコアを見るだけでは気づきにくい状況にありました。最終的にはretryの処理を工夫することで、この問題に対処しました。

一部のモデルの評価が正しく行えない

他で開発されたモデルを評価しているとき、過去に自分たちで実施した評価や外部のリーダーボードの評価を大幅に下回るスコアに出くわすことがありました。このようなことが複数のモデルにおいて発生するうえ、その現象を引き起こし得る原因がいくつも考えられる(先ほどのtransformersのバージョンによる動作の違い、評価ソフトウェアのバージョンアップに伴うプロンプトの違い等)ため、評価スコア低下の原因を特定し、デバッグをするのは困難です。そこで、モデルの評価で問題が発生した場合は、Swallowプロジェクトで開発しているモデルと規模や性能で競合する場合だけ原因を特定し修正することにし、競合しないと思われるモデルの評価は優先順位を下げ、場合によっては断念しました。

確率的デコーディングが意図せずに使われていた

2024年度のSwallowプロジェクトで採用している評価フレームワークで初代Swallowモデルの評価をやり直したとき、いくつかのタスクで以前よりも10ポイントくらい低いスコアが出ることがありました。これは、論文やウェブサイト等で報告していたスコアが間違っている可能性を示唆していますので、我々にとって深刻な問題です。結局、この現象は評価ソフトウェアのバージョンアップに伴う初期設定の変更によるものでした。

大規模言語モデルで出力を予測するときは、出力単語の確率分布を計算して、確率の高い単語を選びます。このとき、最も高い確率が計算された単語を出力するのが基本ですが、出力の多様性を高めるため、大規模言語モデルの応用では確率分布に従って単語をサンプリングする手法(確率的デコーディング)が用いられます。ところが、確率的デコーディングを多値選択式質問応答の回答生成に使ってしまうと、(よくデキるモデルでは)正解率が下がります。例えば、「はい」「いいえ」の2択問題を解いているとき、言語モデルが「はい」の確率を80%、「いいえ」の確率を20%と予測した状況を考えましょう。「はい」という答えに比較的自信を持っているようですので、「はい」と答えるのが合理的ですが、確率的デコーディングでは20%の確率で「いいえ」と答えることになります。つまり、回答にある程度自信を持っていたとしても、それとは異なる回答をわざと行うことになります。

出力単語の確率分布の形状は温度パラメータによって変わりますし、大規模言語モデルによっては推奨される温度パラメータがモデルの設定ファイルで指定されていることがあります。評価スコアを安定させるためには、(コード生成や対話などの生成系のタスクを除き)多値選択式のタスクでは確率的デコーディングを使わず、貪欲的デコーディング(最も高い確率が計算された単語を出力すること)を採用することが望ましいです。そのため、大規模言語モデルの評価ソフトウェアでは、しばしば貪欲デコーディングを大規模言語モデルに強制することがあります。我々が経験したケースでは、llm-jp-eval v1.0.0では初期設定の温度パラメータが0.1だったため、貪欲デコーディングに近い状態になっていましたが、v1.3.0でその設定が削除されたため、確率的デコーディングがデフォルトになっているモデルでは、特定のタスクの評価スコアが低下しました。この問題を解決するため、貪欲デコーディングを強制するように修正してすべてのモデルを再評価しました。

(J)HumanEvalではプロンプト末尾の改行に敏感なモデルが存在する

Swallowプロジェクトでは2024年度からコード生成タスクをモデルの評価に採用しました。これは、コード生成タスクが大規模言語モデルの論理的思考力を鍛えると期待していることに加え、初代Swallowがコード生成タスクに弱かったことが理由です。

ところが、Llama 3 Swallowの開発を進める中で、JHumanEvalやHumanEvalの評価スコアは8Bのモデルよりも70Bのモデルの方が悪いことに気づきました。Llama 3をHumanEvalで評価してみると、pass@1が0.28 (8B) および0.16 (70B) となり、8Bのモデルよりも70Bのモデルが苦戦しています。この問題を調査していくと、プロンプトの末尾が"""\nで終わるならコードが生成されますが、"""で終わる場合は[EOS]が生成され、コードが生成されない傾向があることが分かりました(三重引用符"""はPythonのドキュメンテーション文字列の開始と終了を表すことが多く、コード生成の指示やテストケースの末尾によく出現します)。さらに細かく調べていくと、Llama 3は""", [SPC]""", [SPC]"""\n, [SPC]"""\n\nをそれぞれ異なる単独のトークンにエンコードしており、この扱いかたに原因があるのかもしれません。

HumanEval, JHumanEvalの元々のデータでは、プロンプトの末尾に改行が付加されています。ところが、Code Generation LM Evaluation Harnessのデフォルトの実行条件では末尾の改行が除去されます。正確には、末尾の改行を除去するか否かを選べるようになっています( --tasks=humaneval-unstripped を指定すると除去されません)。先に説明した通り、改行の有無でコード生成が変わる問題はトークン化に起因するものと考えられ、実際に多くのモデルではどちらでもかまわないようです。しかし評価の条件をそろえるのが望ましいという原則を鑑みて、(J)HumanEvalは改行を付与するように修正してすべてのモデルを再評価しました。

なお PLaMo 2 8B の場合は、改行を付与しない場合のHumanEval, JHumanEvalがそれぞれ 0.470 と 0.397 で、改行を付与した場合の 0.260 と 0.213 に対して約20ptのスコア差がありました。評価の条件をそろえる原則を鑑みて、一覧表には改行を付与した場合のスコアを表記しています。

生成の冒頭に改行を出力するモデルがある

Sarashina2 7Bと13Bをllm-jp-evalで評価しているとき、特定のタスクで評価スコアが0点になることに気づきました。これは、モデルが生成の冒頭に改行文字\nを出力することが原因で、JMMLUのように出力の完全一致で評価するタスクでは致命的です。Swallowプロジェクトの評価実験では、Sarashina2の出力に対して空白や改行を除去する処理を追加して評価を行っています。

OpenAI系列モデルの評価設定

GPT-3.5やGPT-4oなどのOpenAI系列モデルは、一部のタスクにおいて通常とは異なる設定のもとで評価を実施しています。

改行文字の取り扱い

MGSMでは、通常、改行文字を文終了トークン(EOSトークン)として扱います。しかし、OpenAI系列モデルはfew-shotの事例を無視して、回答文内に改行を頻繁に挿入する傾向があります。そのため、通常の設定では回答が途中で切れてしまい、スコアが大きく低下します。この問題を防ぐために、OpenAI系列モデルの評価においては改行文字をEOSトークンとして使わないようにしました。

コード生成タスクの処理方法

(J)HumanEvalでは、出力文からコードのみを取り出して動作をテストする必要があります。このため、simple-evalsに倣い、モデルがコードのみを生成するようにプロンプトを調整しました。さらに、出力文からコードブロックのみを抽出する後処理を追加しました。

尤度ベースの評価タスクの扱い

OpenBookQAなど、尤度を用いて回答の選択肢を選ぶタスクについては、OpenAI系列モデルの評価を行いませんでした。これは、OpenAIのAPIからではモデルが計算する文の尤度を取得できないためです。
HELMを参考にして、尤度による選択ではなく回答を直接生成する代替策を検討しましたが、OpenAI系列以外のモデルでは尤度方式と回答生成方式によるスコアの乖離が顕著でした。したがって公平な比較が困難であると判断し、評価を見送ることとしました。

「思考の深い」推論型モデルは従来の評価方法では過小評価になる場合がある

Swallowプロジェクトでは、事前学習済み言語モデル(いわゆるbaseモデル)と指示チューニング後のモデル(いわゆるchatモデル)を同一の評価方法で比較できるように、Few-shot学習による短答を標準的な評価手法としています。具体的には、たとえば {設問1}: {回答1} … {設問N}: のようなプロンプトを与えて、次に続く文字(4択問題なら A/B/C/D いずれかの1文字)を予測させる方法です (Brown et al., 2020)。この手法は、基礎能力や指示追従能力がまだ低かった初期のLLMを想定して開発され、現在も広く利用されています (Biderman et al., 2024) 。

一方、OpenAI o1やDeepSeek-R1 (DeepSeek-AI, 2025) などの推論型モデルは まず○○を考えます。次に[...]。いやしかし[...]。むしろ△△なら[...]。よって答えは××です。 のように、内省や自問に似た深い思考過程を出力したのちに回答を導くという特徴があります。推論型モデルは数学や科学の高度な問題に強いとされており、これらの推論能力は指示チューニングなどの事後学習によって獲得されると考えられています。また事後学習では、<user>{設問}</user><assistant>{回答}</assistant> のようにユーザ指示と回答を専用のタグで囲む「chat template」の形式で微調整を行うのが一般的です。

Swallowプロジェクトでは、事前学習モデルと事後学習モデルを比較しやすくするため、指示チューニング後のモデルについてもchat templateなし、Few-shot学習による短答、貪欲法による文生成という評価手法を主に用いてきました(CoTプロンプトやzero-shot推論を用いるベンチマークもあります)。しかし、推論型モデルを数学や科学の難しい問題に適用する際は、この手法では十分に性能を引き出せない場合があることがわかっています。たとえば、DeepSeek-R1をLlama 3.1で模倣したDeepSeek-R1-Distill-Llama-8BにMATHベンチマーク(高校生レベルの数学)を解かせたところ、Swallowプロジェクトの評価手法では正答率が約70%でした。しかし、chat templateを適用し、zero-shot推論と確率的デコーディングで回答させた場合の正答率は約90%であり、20ポイントもの差が生じました。またリーダーボードには未採用ですが、博士課程レベルの科学問題を集めたGPQAベンチマークでも、同じく正答率が20~25ポイントほど向上することがわかりました。

以上のように、推論型モデルを用いた難しいタスクの評価においては、従来の評価手法よりも、思考過程を自由に出力させる手順やzero-shot推論などの手法が適切な場合があると考えられます。公平性の観点からすべてのモデルを統一的な手法で評価すべきである一方で、推論能力の過小評価を避けるべきと考えて、今回(2025年3月現在)は推論型モデルの評価結果を公表しないことにしました。
推論能力の獲得や汎化はAIのフロンティアを研究する上でも極めて興味深いテーマであり、その性能を正しく評価することも重要です。Swallowプロジェクトでは、モデル間の比較可能性や公平性に留意しながら、上記の評価手法や推論能力に適したベンチマークの導入について、今後も検討を続けていきます。

Acknowledgements

  • Tabler Admin Template licensed under MIT License
  • ApexCharts licensed under MIT License
  • Swallow icon by Game Icons.net in CC Attribution License via SVG Repo
  • The research and development of the large language model Swallow has been supported by the AIST Project "Research and Development on Generative AI Foundation Models in the Physical Domain"