AI・機械学習
上級
LLM評価ハーネス(エルエルエムヒョウカハーネス)
LLMの性能を複数のベンチマークタスクで体系的に測定するためのフレームワーク。EleutherAI の lm-evaluation-harness が代表的で、MMLU・HellaSwag・ARC 等の標準ベンチマークを統一インターフェースで実行し、モデル間の公平な比較を可能にする。
0 回閲覧
0 いいね
LLM評価ハーネスとは
LLM評価ハーネス(Evaluation Harness)は、大規模言語モデルの性能を複数のベンチマークタスクで自動的かつ再現可能に測定するためのソフトウェアフレームワークである。個別のベンチマークをバラバラに実行するのではなく、統一されたインターフェースで数十〜数百のタスクを一括実行し、モデル間の公平な比較を実現する。
代表的な評価ハーネス
| ハーネス | 開発元 | 対応タスク数 | 特徴 |
|---|---|---|---|
| lm-evaluation-harness | EleutherAI | 400+ | 業界標準。HuggingFace Open LLM Leaderboard で使用 |
| HELM (Holistic Evaluation) | Stanford CRFM | 80+ | 多面的評価(精度・公平性・ロバスト性・効率性) |
| OpenCompass | 上海AI研究所 | 100+ | 中国語ベンチマーク充実。国際比較に対応 |
| Lighteval | HuggingFace | 60+ | lm-eval-harness と互換性のある軽量ハーネス |
| simple-evals | OpenAI | 10+ | OpenAI が公開した簡易評価スクリプト集 |
lm-evaluation-harness の使い方
EleutherAI の lm-evaluation-harness は最も広く使われている評価ハーネスで、以下のように利用する。
pip install lm-eval
lm_eval --model hf --model_args pretrained=meta-llama/Llama-3-8B --tasks mmlu,hellaswag,arc_challenge --batch_size 8
主要な機能として以下がある。
- 多様なモデルバックエンド対応: HuggingFace Transformers、vLLM、GGUF(llama.cpp)、API(OpenAI/Anthropic)
- Few-shot 設定: 0-shot、5-shot などの few-shot 数を統一的に指定可能
- カスタムタスク定義: YAML ベースで独自のベンチマークタスクを追加可能
- 結果の JSON 出力: 自動的に構造化された結果ファイルを生成
評価される主要ベンチマーク
| ベンチマーク | 測定対象 | 形式 | 問題数 |
|---|---|---|---|
| MMLU | 57科目の知識 | 4択 | 14,042 |
| MMLU-Pro | 難化版MMLU(10択) | 10択 | 12,032 |
| HellaSwag | 常識推論 | 4択 | 10,042 |
| ARC-Challenge | 科学知識推論 | 4択 | 1,172 |
| Winogrande | 代名詞解決 | 2択 | 1,267 |
| GSM8K | 小学算数 | 自由記述 | 1,319 |
| HumanEval | Python コード生成 | コード | 164 |
| TruthfulQA | 真実性 | 多択/生成 | 817 |
評価方式の種類
評価ハーネスで使われる代表的な評価方式は以下の通り。
- Perplexity(パープレキシティ): モデルの言語モデリング能力を測定。低いほど良い
- Multiple Choice(多択): 正解選択肢の確率が最も高いかで判定。Log-likelihood ベース
- Exact Match(完全一致): 生成テキストが正解と完全に一致するか
- Pass@k: コード生成で k 回の試行中に正解が含まれる確率
- ROUGE / BLEU: 要約・翻訳の自動評価スコア
- LLM-as-Judge: 別の LLM(GPT-4 等)に出力品質を評価させる
評価結果の解釈における注意点
- ベンチマーク汚染(Contamination): 学習データにベンチマークの問題が含まれていると、スコアが実力以上に高くなる
- プロンプト感度: 同じベンチマークでもプロンプトテンプレートの違いで5〜10%スコアが変動する
- Few-shot 数の統一: 0-shot と 5-shot では大きくスコアが異なるため、比較時は統一が必須
- 評価と実用性の乖離: ベンチマークスコアが高くても実際のタスクでの有用性とは相関しない場合がある
FAQ
Q1: 自作の LLM を評価するにはどうすればいいですか?
A1: lm-evaluation-harness をインストールし、HuggingFace 形式のモデルを指定して実行するのが最も簡単。GGUF 形式なら vLLM バックエンドを使用する。カスタムタスクも YAML で定義可能。
Q2: API 経由のモデル(GPT-4o 等)も評価できますか?
A2: lm-evaluation-harness は OpenAI API バックエンドに対応しているが、API コスト(数万〜数十万トークン消費)に注意が必要。simple-evals のような軽量ツールの方がAPI評価には向いている。
Q3: ベンチマークスコアだけでモデルを選ぶべきですか?
A3: スコアは参考指標であり、実際のユースケースでの検証が重要。特に Chatbot Arena のような人間の選好に基づくランキングや、自社タスクでの A/B テストを併用することを推奨する。