Skip to content

Latest commit

 

History

History
215 lines (153 loc) · 10.6 KB

File metadata and controls

215 lines (153 loc) · 10.6 KB

Evaluierungssuite für Große Multimodale Modelle

🌐 English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Français | Deutsch | Português | Русский | Italiano | Nederlands | Polski | Türkçe | العربية | हिन्दी | Tiếng Việt | Indonesia

PyPI PyPI - Downloads GitHub contributors issue resolution open issues

Beschleunigung der Entwicklung großer multimodaler Modelle (LMMs) mit lmms-eval. Wir unterstützen die meisten Text-, Bild-, Video- und Audio-Aufgaben.

🏠 LMMs-Lab Homepage | 🤗 Huggingface Datensätze | Discord_Thread discord/lmms-eval

📖 Unterstützte Aufgaben (100+) | 🌟 Unterstützte Modelle (30+) | 📚 Dokumentation


Was ist neu?

Die Evaluierung multimodaler Modelle ist schwieriger, als es aussieht. Wir haben hunderte von Benchmarks, aber keinen Standardweg, um sie auszuführen. Die Ergebnisse variieren zwischen den Laboren. Vergleiche werden unzuverlässig. Wir haben daran gearbeitet, dies zu beheben – nicht durch heldenhaften Einsatz, sondern durch systematische Prozesse.

Januar 2026 – Wir haben erkannt, dass räumliches und kompositionelles Denken blinde Flecken in bestehenden Benchmarks blieben. Wir haben CaptionQA, SpatialTreeBench, SiteBench und ViewSpatial hinzugefügt. Für Teams, die Remote-Evaluierungs-Pipelines betreiben, haben wir einen HTTP-Eval-Server eingeführt (#972). Für diejenigen, die statistische Strenge benötigen, haben wir CLT und Clustered Standard Error Estimation hinzugefügt (#989).

Oktober 2025 (v0.5) – Audio war eine Lücke. Modelle konnten hören, aber wir hatten keinen konsistenten Weg, sie zu testen. Dieses Release fügte eine umfassende Audio-Evaluierung, Response-Caching für Effizienz und über 50 Benchmark-Varianten hinzu, die Audio, Vision und Reasoning abdecken. Release Notes.

Nachfolgend finden Sie eine chronologische Liste der jüngsten Aufgaben, Modelle und Funktionen, die von unseren großartigen Mitwirkenden hinzugefügt wurden.

Warum lmms-eval?

Wir befinden uns auf einer aufregenden Reise zur Schaffung Künstlicher Allgemeiner Intelligenz (AGI), ähnlich wie die Begeisterung der Mondlandung in den 1960er Jahren. Diese Reise wird von fortschrittlichen großen Sprachmodellen (LLMs) und großen multimodalen Modellen (LMMs) angetrieben, komplexen Systemen, die in der Lage sind, eine Vielzahl menschlicher Aufgaben zu verstehen, zu lernen und auszuführen.

Um zu messen, wie fortschrittlich diese Modelle sind, verwenden wir verschiedene Evaluierungs-Benchmarks. Diese Benchmarks sind Werkzeuge, die uns helfen, die Fähigkeiten dieser Modelle zu verstehen und zeigen, wie nah wir der Erreichung von AGI sind. Das Finden und Verwenden dieser Benchmarks ist jedoch eine große Herausforderung.

Im Bereich der Sprachmodelle hat die Arbeit von lm-evaluation-harness einen wertvollen Präzedenzfall geschaffen. Wir haben das exquisite und effiziente Design von lm-evaluation-harness aufgenommen und lmms-eval eingeführt, ein sorgfältig entwickeltes Evaluierungs-Framework für konsistente und effiziente Evaluierung von LMM.

Installation

Verwendung von uv (Empfohlen für konsistente Umgebungen)

Wir verwenden uv für die Paketverwaltung, um sicherzustellen, dass alle Entwickler exakt dieselben Paketversionen verwenden. Installieren Sie zunächst uv:

curl -LsSf https://astral.sh/uv/install.sh | sh

Für die Entwicklung mit konsistenter Umgebung:

git clone https://github.com/EvolvingLMMs-Lab/lmms-eval
cd lmms-eval
# Empfohlen
uv pip install -e ".[all]"
# Wenn Sie uv sync verwenden möchten
# uv sync  # Dies erstellt/aktualisiert Ihre Umgebung aus uv.lock

Um Befehle auszuführen:

uv run python -m lmms_eval --help  # Beliebigen Befehl mit uv run ausführen

Alternative Installation

Für direkte Verwendung von Git:

uv venv eval
uv venv --python 3.12
source eval/bin/activate
# Möglicherweise müssen Sie Ihre eigene Task-YAML hinzufügen und einbinden, wenn Sie diese Installation verwenden
uv pip install git+https://github.com/EvolvingLMMs-Lab/lmms-eval.git

Verwendung

Weitere Beispiele in examples/models

Evaluierung eines OpenAI-kompatiblen Modells

bash examples/models/openai_compatible.sh
bash examples/models/xai_grok.sh

Evaluierung von vLLM

bash examples/models/vllm_qwen2vl.sh

Evaluierung von LLaVA-OneVision

bash examples/models/llava_onevision.sh

Evaluierung von LLaVA-OneVision1_5

bash examples/models/llava_onevision1_5.sh

Evaluierung von LLaMA-3.2-Vision

bash examples/models/llama_vision.sh

Evaluierung von Qwen2-VL

bash examples/models/qwen2_vl.sh
bash examples/models/qwen2_5_vl.sh

Evaluierung von LLaVA auf MME

Wenn Sie LLaVA 1.5 testen möchten, müssen Sie deren Repository von LLaVA klonen und

bash examples/models/llava_next.sh

Evaluierung mit Tensor Parallel für größere Modelle (llava-next-72b)

bash examples/models/tensor_parallel.sh

Evaluierung mit SGLang für größere Modelle (llava-next-72b)

bash examples/models/sglang.sh

Evaluierung mit vLLM für größere Modelle (llava-next-72b)

bash examples/models/vllm_qwen2vl.sh

Weitere Parameter

python3 -m lmms_eval --help

Umgebungsvariablen Bevor Sie Experimente und Evaluierungen durchführen, empfehlen wir Ihnen, die folgenden Umgebungsvariablen in Ihre Umgebung zu exportieren. Einige sind für die Ausführung bestimmter Aufgaben erforderlich.

export OPENAI_API_KEY="<YOUR_API_KEY>"
export HF_HOME="<Path to HF cache>" 
export HF_TOKEN="<YOUR_API_KEY>"
export HF_HUB_ENABLE_HF_TRANSFER="1"
export REKA_API_KEY="<YOUR_API_KEY>"
# Weitere mögliche Umgebungsvariablen sind 
# ANTHROPIC_API_KEY, DASHSCOPE_API_KEY etc.

Häufige Umgebungsprobleme

Manchmal treten häufige Probleme auf, zum Beispiel Fehler im Zusammenhang mit httpx oder protobuf. Um diese Probleme zu lösen, können Sie zunächst versuchen:

python3 -m pip install httpx==0.23.3;
python3 -m pip install protobuf==3.20;
# Wenn Sie numpy==2.x verwenden, kann dies manchmal Fehler verursachen
python3 -m pip install numpy==1.26;
# Manchmal ist sentencepiece erforderlich, damit der Tokenizer funktioniert
python3 -m pip install sentencepiece;

Benutzerdefiniertes Modell und Datensatz Hinzufügen

Siehe unsere Dokumentation.

Danksagungen

lmms_eval ist ein Fork von lm-eval-harness. Wir empfehlen, die Dokumentation von lm-eval-harness für relevante Informationen zu lesen.

Zitierung

@misc{zhang2024lmmsevalrealitycheckevaluation,
      title={LMMs-Eval: Reality Check on the Evaluation of Large Multimodal Models}, 
      author={Kaichen Zhang and Bo Li and Peiyuan Zhang and Fanyi Pu and Joshua Adrian Cahyono and Kairui Hu and Shuai Liu and Yuanhan Zhang and Jingkang Yang and Chunyuan Li and Ziwei Liu},
      year={2024},
      eprint={2407.12772},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2407.12772}, 
}

@misc{lmms_eval2024,
    title={LMMs-Eval: Accelerating the Development of Large Multimoal Models},
    url={https://github.com/EvolvingLMMs-Lab/lmms-eval},
    author={Bo Li*, Peiyuan Zhang*, Kaichen Zhang*, Fanyi Pu*, Xinrun Du, Yuhao Dong, Haotian Liu, Yuanhan Zhang, Ge Zhang, Chunyuan Li and Ziwei Liu},
    publisher    = {Zenodo},
    version      = {v0.1.0},
    month={March},
    year={2024}
}