v2.8.0 — VLM Phase 1: Vision MCQ Evaluation
VLM Phase 1 — Vision MCQ Evaluation
第一個 Vision Language Model 評測方法上線。Twinkle Eval 現可評測 VLM 在多模態選擇題(MMBench / MMStar / MMMU / POPE)的表現。
Added
vision_mcq評測方法(Milestone #22,PR #134)VisionMCQExtractor:支援字母答案(A–Z)與 Yes/No 二元答案(POPE 等幻覺偵測 benchmark)- 優先解析
\boxed{}/\box{}(推理型 VLM 的標準輸出格式) - 採用
findall + 取最後一個 match策略,正確處理 VLM 先回顯選項列表再給最終答案的常見情境 - Pattern 順序經精細調整:parenthesized / bare-letter-at-end 優先於 line-start,避免 "A) cat / B) dog / C) bird / D" 被誤抓為 C
- Evaluator vision 路由
_encode_image_to_data_uri():magic-byte MIME 偵測(PNG / JPEG / GIF / WebP / BMP)、symlink resolve、50MB 大小上限保護- 支援本地檔案(base64 data URI)與 HTTP/HTTPS URL(直接傳遞給 OpenAI Chat Completions)
uses_vision = Trueflag 自動分流
- 4 個 Vision Benchmark:MMBench、MMStar、MMMU、POPE
- Example Dataset:
datasets/example/vision_mcq/(10 筆 MMStar 樣本,含 jpg 圖片) docs/evals/vision_mcq.md:含 VLMEvalKit 分數對比與速度對比- 61 個 vision_mcq 測試(
tests/test_vision_mcq.py),含大量 VLM 真實輸出格式的 regression cases - Optional dependency
vision = ["Pillow>=10.0.0"]
Changed
datasets/file.py:多模態附帶資源(圖片、音檔、影片)改為統計後一次性log_info,避免逐檔 warn 噪音- CLAUDE.md §13 新增「強制 Reviewer Agent」規定:所有 coding agent 在任何 PR push 之前,必須先 spawn 獨立的 reviewer agent 檢查 diff,blocker 必須先處理才能 push
使用方式
llm_api:
type: "openai"
base_url: "http://localhost:8000/v1"
api_key: "your-api-key"
model:
name: "your-vlm-model"
max_tokens: 1024
evaluation:
dataset_paths:
- "datasets/example/vision_mcq/"
evaluation_method: vision_mcq
strategy_config:
image_field: "image_path"
max_image_size: null
image_detail: "auto"需要 vision-capable 的 OpenAI 相容 API 端點(vLLM + Qwen2-VL、OpenAI GPT-4o、NVIDIA Build VLM 等)。