Skip to content

v2.8.0 — VLM Phase 1: Vision MCQ Evaluation

Choose a tag to compare

@lianghsun lianghsun released this 11 Apr 06:12
· 27 commits to main since this release

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 = True flag 自動分流
  • 4 個 Vision Benchmark:MMBench、MMStar、MMMU、POPE
  • Example Datasetdatasets/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 等)。