EvolvingLMMs-Lab/lmms-eval
One-for-All Multimodal Evaluation Toolkit Across Text, Image, Video, and Audio Tasks
lmms‑eval – マルチモーダルLLMのための統合評価ツールキット
概要 – lmms-evalは、研究者やエンジニアがマルチモーダルな大規模言語モデル(視覚と言語、音声と言語、ビデオと言語など)に対して、再現可能で効率的、かつ統計的に妥当なベンチマークを実行できるようにするPythonライブラリです。MMMU、MME、VideoMME、MathVistaなどの100を超えるタスクカタログと、Qwen‑2.5‑VL、Qwen‑3‑VL、LLaVA‑OneVision、InternVL‑2、VILA、およびOpenAI互換のあらゆるAPIを含む30以上のモデルファミリー向けのラッパーを提供しています。
重要性 – 現在、マルチモーダル評価は断片化されています。データセットは異なる場所に存在し、前処理は異なり、結果には信頼区間が報告されないことがよくあります。lmms‑evalは、以下の機能を持つ単一の決定論的なパイプラインを提供することで、この問題を解決します:
- 再現性の保証(同じモデル + 同じタスク → 同一の結果)。
- 非同期サービング、適応型バッチ処理、ビデオI/Oの最適化によるスループットの最大化(以前のバージョンより最大約3.5倍高速)。
- 信頼できる統計情報の出力(信頼区間、対応のある検定のp値、クラスター化された標準誤差)により、性能向上が本物かどうかを判断できます。
主な機能
| 機能 | 内容 |
|---|---|
| 統合タスクカタログ | 画像、ビデオ、音声のモダリティをカバーする、YAMLで定義された100以上のベンチマーク。 |
| モデルバックエンド | チャット形式のモデル、レガシーなシンプルモデル、vLLM、SGLang、およびOpenAI互換のエンドポイント用のネイティブラッパー。 |
| チャット形式API | 構造化されたChatMessages(ロール + マルチモーダルコンテンツ) – 単一のリクエスト内で画像/ビデオ/音声をインターリーブしてサポート。 |
| 統計レポート | 信頼区間、対応のあるt検定、標準誤差のクラスター化、サンプルごとのトークン数、スループット指標。 |
| Evaluation-as-a-service | ジョブをキューに入れ、専用GPUで実行し、REST API経由で結果を返すスタンドアロンのHTTPサーバー。 |
| Web UI | モデル/タスクの選択、コマンドのプレビュー、ライブ出力のストリーミング、ログの閲覧を行うためのオプションのReactベースのUI。 |
| Async/Syncクライアント | ブロッキングなしでトレーニングループからジョブを送信するためのPythonクライアントライブラリ(EvalClient、AsyncEvalClient)。 |
| 拡張性 | generate_untilを実装することで新しいモデルを追加したり、YAML設定とdoc_to_messages関数を通じて新しいタスクを追加したりできます。 |
| 多言語ドキュメント | READMEと完全なドキュメントが17言語で利用可能です。 |
クイックスタート(5分以内に小さなテストを実行)
git clone https://github.com/EvolvingLMMs-Lab/lmms-eval.git
cd lmms-eval && uv pip install -e "[all]"
python -m lmms_eval \
--model qwen2_5_vl \
--model_args pretrained=Qwen/Qwen2.5-VL-3B-Instruct \
--tasks mme \
--batch_size 1 \
--limit 8
精度数値を含むJSON-Lログが表示されれば、ツールキットの準備は完了です。
インストールに関する注意
- プロジェクトは、決定論的な環境のために
uvパッケージマネージャーを推奨しています(uv install -e "[all]")。 - 従来の
pip install git+https://github.com/EvolvingLMMs-Lab/lmms-eval.gitも動作します。 - キャプション形式のデータセットには、
pycocoevalAPIのためにJava 8が必要です。
典型的なワークフロー
- モデルの選択 – 内蔵ラッパー(
qwen2_5_vl、internvl_2など)を使用するか、OpenAI互換のエンドポイントを指定します。 - タスクの選択 –
docs/advanced/current_tasks.mdに記載されている100以上のタスクのいずれか。 - 評価の実行 – CLI(
python -m lmms_eval …)、HTTPサーバー、またはWeb UI経由。 - 分析 – 結果はフラット化されたJSONLファイルとして出力されます。集計指標、信頼区間を計算したり、ダウンストリームのダッシュボードに読み込んだりできます。
ライブラリの拡張
- 新しいモデル –
lmms_eval.api.model.lmmsをサブクラス化し、is_simple=Falseに設定し、ChatMessagesオブジェクトを構築してモデルのチャットテンプレートを呼び出すgenerate_untilを実装します。 - 新しいベンチマーク –
lmms_eval/tasks/の下に、データセットのパス、分割、および各レコードを構造化されたチャット形式に変換するdoc_to_messages関数を記述したYAMLファイルを配置します。 - カスタムメトリクス –
process_results関数をプラグインし、YAMLにメトリクス名をリストアップします。
リソース
- ドキュメント:
docs/README.md - 完全なタスクリスト: https://github.com/EvolvingLMMs-Lab/lmms-eval/blob/main/docs/advanced/current_tasks.md
- モデルリスト: https://github.com/EvolvingLMMs-Lab/lmms-eval/tree/main/lmms_eval/models
- Discordコミュニティ: https://discord.gg/8xTM6jWnXa
- ホームページ: https://www.lmms-lab.com/
上記の内容はすべてリポジトリのREADMEから直接引用されており、外部の仮定は追加されていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト