Skip to content

Latest commit

 

History

History
162 lines (117 loc) · 18.7 KB

README_ja.md

File metadata and controls

162 lines (117 loc) · 18.7 KB

LOGO

大規模視覚言語モデルの評価ツールキット
[英語] | [中国語] | 日本語

VLMEvalKit(pythonパッケージ名はvlmeval)は、大規模視覚言語モデル(LVLMs)のオープンソース評価ツールキットです。このツールキットは、複数のリポジトリでのデータ準備という重労働なしに、さまざまなベンチマークでLVLMsのワンコマンド評価を可能にします。VLMEvalKitでは、すべてのLVLMsに対して生成ベースの評価を採用し、正確なマッチングLLMベースの回答抽出の両方で得られた評価結果を提供します。

PS: 日本語の README には最新のアップデートがすべて含まれていない場合があります。英語版をご確認ください。

📊 データセット、モデル、および評価結果

公式のマルチモーダルリーダーボードでのパフォーマンス数値は、ここからダウンロードできます!

OpenVLM Leaderboard: すべての詳細な結果をダウンロード

Supported Image Understanding Dataset

  • デフォルトでは、すべての評価結果はOpenVLM Leaderboardに表示されます。
データセット データセット名 (run.py用) タスク データセット データセット名 (run.py用) タスク
MMBench シリーズ:
MMBench, MMBench-CN, CCBench
MMBench_DEV_[EN/CN]
MMBench_TEST_[EN/CN]
MMBench_DEV_[EN/CN]_V11
MMBench_TEST_[EN/CN]_V11
CCBench
多肢選択問題 (MCQ) MMStar MMStar MCQ
MME MME はい/いいえ (Y/N) SEEDBench シリーズ SEEDBench_IMG
SEEDBench2
SEEDBench2_Plus
MCQ
MM-Vet MMVet VQA MMMU MMMU_[DEV_VAL/TEST] MCQ
MathVista MathVista_MINI VQA ScienceQA_IMG ScienceQA_[VAL/TEST] MCQ
COCO Caption COCO_VAL キャプション HallusionBench HallusionBench Y/N
OCRVQA* OCRVQA_[TESTCORE/TEST] VQA TextVQA* TextVQA_VAL VQA
ChartQA* ChartQA_TEST VQA AI2D AI2D_TEST MCQ
LLaVABench LLaVABench VQA DocVQA+ DocVQA_[VAL/TEST] VQA
InfoVQA+ InfoVQA_[VAL/TEST] VQA OCRBench OCRBench VQA
RealWorldQA RealWorldQA MCQ POPE POPE Y/N
Core-MM- CORE_MM VQA MMT-Bench MMT-Bench_[VAL/VAL_MI/ALL/ALL_MI] MCQ
MLLMGuard - MLLMGuard_DS VQA AesBench AesBench_[VAL/TEST] MCQ

* ゼロショット設定で合理的な結果を出せないVLMの一部の評価結果のみを提供しています

+ 評価結果はまだ利用できません

- VLMEvalKitでは推論のみがサポートされています

VLMEvalKitは、キーを設定すると判定LLMを使用して出力から回答を抽出し、それ以外の場合は正確なマッチングモード(出力文字列で「はい」、「いいえ」、「A」、「B」、「C」...を検索)を使用します。正確なマッチングは、はい/いいえのタスクと多肢選択問題にのみ適用できます。

Supported Video Understanding Dataset

Dataset Dataset Names (for run.py) Task Dataset Dataset Names (for run.py) Task
MMBench-Video MMBench-Video VQA

Supported API Models

GPT-4v (20231106, 20240409) 🎞️🚅 GPT-4o 🎞️🚅 Gemini-1.0-Pro 🎞️🚅 Gemini-1.5-Pro 🎞️🚅 Step-1V 🎞️🚅
Reka-[Edge / Flash / Core]🚅 Qwen-VL-[Plus / Max] 🎞️🚅 Claude-3v-[Haiku / Sonnet / Opus] 🎞️🚅 GLM-4v 🚅 CongRong 🎞️🚅
Claude3.5-Sonnet 🎞️🚅

Supported PyTorch / HF Models

GPT-4v (20231106, 20240409) 🎞️🚅 GPT-4o 🎞️🚅 Gemini-1.0-Pro 🎞️🚅 Gemini-1.5-Pro 🎞️🚅 Step-1V 🎞️🚅
Reka-[Edge / Flash / Core]🚅 Qwen-VL-[Plus / Max] 🎞️🚅 Claude3-[Haiku / Sonnet / Opus] 🎞️🚅 GLM-4v 🚅 CongRong 🎞️🚅
Claude3.5-Sonnet 🎞️🚅

Supported PyTorch / HF Models

IDEFICS-[9B/80B/v2-8B]-Instruct🎞️🚅 InstructBLIP-[7B/13B] LLaVA-[v1-7B/v1.5-7B/v1.5-13B] MiniGPT-4-[v1-7B/v1-13B/v2-7B]
mPLUG-Owl2🎞️ OpenFlamingo-v2🎞️ PandaGPT-13B Qwen-VL🎞️🚅, Qwen-VL-Chat🎞️🚅
VisualGLM-6B🚅 InternLM-XComposer-[1/2]🚅 ShareGPT4V-[7B/13B]🚅 TransCore-M
LLaVA (XTuner)🚅 CogVLM-[Chat/Llama3]🚅 ShareCaptioner🚅 CogVLM-Grounding-Generalist🚅
Monkey🚅, Monkey-Chat🚅 EMU2-Chat🚅🎞️ Yi-VL-[6B/34B] MMAlaya🚅
InternLM-XComposer-2.5🚅🎞️ MiniCPM-[V1/V2/V2.5]🚅 OmniLMM-12B InternVL-Chat-[V1-1/V1-2/V1-2-Plus/V1-5/V2]🚅🎞️,
Mini-InternVL-Chat-[2B/4B]-V1-5🚅🎞️
DeepSeek-VL🎞️ LLaVA-NeXT🚅 Bunny-Llama3🚅 XVERSE-V-13B
PaliGemma-3B 🚅 360VL-70B 🚅 Phi-3-Vision🚅 WeMM🚅
GLM-4v-9B 🚅 Cambrian-[8B/13B/34B]

🎞️: 複数の画像を入力としてサポートします。

🚅: 追加の設定/操作なしで使用できるモデルです。

Transformersバージョンの推奨事項:

特定のtransformerバージョンで一部のVLMが実行できない可能性があることに注意してください。各VLMを評価するために、以下の設定を推奨します:

  • transformers==4.33.0を使用してください: Qwenシリーズ, Monkeyシリーズ, InternLM-XComposerシリーズ, mPLUG-Owl2, OpenFlamingo v2, IDEFICSシリーズ, VisualGLM, MMAlaya, ShareCaptioner, MiniGPT-4シリーズ, InstructBLIPシリーズ, PandaGPT, VXVERSE, GLM-4v-9B.
  • transformers==4.37.0を使用してください: LLaVAシリーズ, ShareGPT4Vシリーズ, TransCore-M, LLaVA (XTuner), CogVLMシリーズ, EMU2シリーズ, Yi-VLシリーズ, MiniCPM-[V1/V2], OmniLMM-12B, DeepSeek-VLシリーズ, InternVLシリーズ, Cambrianシリーズ.
  • transformers==4.40.0を使用してください: IDEFICS2, Bunny-Llama3, MiniCPM-Llama3-V2.5, LLaVA-Nextシリーズ, 360VL-70B, Phi-3-Vision, WeMM.
  • transformers==latestを使用してください: PaliGemma-3B.
# デモ
from vlmeval.config import supported_VLM
model = supported_VLM['idefics_9b_instruct']()
# 単一画像のフォワード
ret = model.generate(['assets/apple.jpg', 'この画像には何がありますか?'])
print(ret)  # この画像には葉がついた赤いリンゴがあります。
# 複数画像のフォワード
ret = model.generate(['assets/apple.jpg', 'assets/apple.jpg', '提供された画像にはリンゴが何個ありますか?'])
print(ret)  # 提供された画像にはリンゴが2個あります。

🏗️ クイックスタート

クイックスタートガイドについては、クイックスタートを参照してください。

🛠️ 開発ガイド

カスタムベンチマーク、VLMsを開発するか、単にVLMEvalKitに他のコードを貢献する場合は、開発ガイドを参照してください。

🎯 VLMEvalKitの目標

このコードベースは以下を目的として設計されています:

  1. 研究者や開発者が既存のLVLMsを評価し、評価結果を簡単に再現できるようにするための使いやすいオープンソースの評価ツールキットを提供します。
  2. VLMの開発者が自分のモデルを簡単に評価できるようにします。複数のサポートされているベンチマークでVLMを評価するには、単一のgenerate_inner()関数を実装するだけで、他のすべてのワークロード(データのダウンロード、データの前処理、予測の推論、メトリックの計算)はコードベースによって処理されます。

このコードベースは以下を目的として設計されていません:

  1. すべての第三者ベンチマークの元の論文で報告された正確な精度数値を再現すること。その理由は2つあります:
    1. VLMEvalKitは、すべてのVLMに対して生成ベースの評価を使用します(オプションでLLMベースの回答抽出を使用)。一方、一部のベンチマークは異なるアプローチを使用する場合があります(SEEDBenchはPPLベースの評価を使用します)。これらのベンチマークについては、対応する結果で両方のスコアを比較します。開発者には、コードベースで他の評価パラダイムをサポートすることをお勧めします。
    2. デフォルトでは、すべてのVLMに対して同じプロンプトテンプレートを使用してベンチマークを評価します。一方、一部のVLMには特定のプロンプトテンプレートがある場合があります(現時点ではコードベースでカバーされていない場合があります)。VLMの開発者には、現在カバーされていない場合でも、VLMEvalKitで独自のプロンプトテンプレートを実装することをお勧めします。これにより、再現性が向上します。

🖊️ 引用

この作業が役立つ場合は、このリポジトリにスター🌟を付けてください。サポートありがとうございます!

Stargazers repo roster for @open-compass/VLMEvalKit

研究でVLMEvalKitを使用する場合、または公開されたオープンソースの評価結果を参照する場合は、以下のBibTeXエントリと、使用した特定のVLM/ベンチマークに対応するBibTexエントリを使用してください。

@misc{2023opencompass,
    title={OpenCompass: A Universal Evaluation Platform for Foundation Models},
    author={OpenCompass Contributors},
    howpublished = {\url{https://github.com/open-compass/opencompass}},
    year={2023}
}

💻 OpenCompassの他のプロジェクト

  • Opencompass: LLM評価プラットフォームで、LLaMA、LLaMa2、ChatGLM2、ChatGPT、Claudeなどの幅広いモデルを50以上のデータセットでサポートしています。
  • MMBench: "MMBench: Is Your Multi-modal Model an All-around Player?"の公式リポジトリ。
  • BotChat: LLMのマルチラウンドチャット能力を評価します。
  • LawBench: 大規模言語モデルの法的知識をベンチマークします。
  • Ada-LEval: 言語モデルの長文コンテキストモデリング能力を測定します。