EvolvingLMMs-Lab/lmms-eval
One-for-All Multimodal Evaluation Toolkit Across Text, Image, Video, and Audio Tasks
lmms‑eval – 用於多模態大語言模型的統一評估工具包
產品定義 – lmms-eval 是一個 Python 函式庫,允許研究人員和工程師對多模態大語言模型(視覺-語言、音訊-語言、影片-語言等)執行可復現、高效且統計嚴謹的基準測試。它擁有不斷增長的包含 >100 個任務(MMMU, MME, VideoMME, MathVista, …)的目錄,以及針對 30 多個模型家族(如 Qwen‑2.5‑VL, Qwen‑3‑VL, LLaVA‑OneVision, InternVL‑2, VILA 以及任何 OpenAI 兼容的 API)的封裝器。
重要意義 – 目前的多模態評估是碎片化的:數據集分布在不同地方,預處理方式各異,且結果往往在沒有置信區間的情況下報告。lmms‑eval 透過提供一個單一的、確定性的流水線來解決這個問題,該流水線:
- 保證可復現性(相同的模型 + 相同的任務 $\rightarrow$ 相同的结果)。
- 透過非同步服務、自適應批處理和影片 I/O 優化實現吞吐量最大化(比早期版本快約 ~3.5 倍)。
- 輸出可靠的統計數據(置信區間、配對檢定 p 值、聚類標準誤差),以便您可以判斷性能提升是否真實。
核心功能
| 功能 | 說明 |
|---|---|
| 統一任務目錄 | 100 多個由 YAML 定義的基準測試,涵蓋圖像、影片和音訊模態。 |
| 模型後端 | 用於聊天風格模型、傳統簡單模型、vLLM、SGLang 以及任何 OpenAI 兼容端點的原生封裝器。 |
| 聊天風格 API | 結構化的 ChatMessages(角色 + 多模態內容)——支持在單個請求中交錯使用圖像/影片/音訊。 |
| 統計報告 | 置信區間、配對 t 檢定、標準誤差聚類、每樣本 Token 數、吞吐量指標。 |
| 評估即服務 | 獨立的 HTTP 伺服器,可對任務進行排隊、在專用 GPU 上執行並透過 REST API 回傳結果。 |
| 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同樣有效。 - 對於字幕風格的數據集,您需要 Java 8 來使用
pycocoevalAPI。
典型工作流程
- 選擇模型 – 使用內建封裝器 (
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/下放置一個 YAML 檔案,描述數據集路徑、劃分以及將每條記錄轉換為結構化聊天格式的doc_to_messages函數。 - 自定義指標 – 插入一個
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;未添加任何外部假設。
相關
- 專案
- 專案
- 專案
- 專案
- 專案