Skip to content

KuramitsuLab/testvista

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

166 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

testvista

モデル図理解度の評価データセットと評価スクリプト

データセットの入手

評価データ (data/) はコンタミネーション対策のため、パスワード付き ZIP で配布しています。

  • ファイル: data_pro159.zip
  • パスワード: pro159

展開すると data/ ディレクトリが作成されます。

unzip -P pro159 data_pro159.zip

ファイル構成

testvista/
├── testvista.py        # 評価スクリプト本体
├── data/               # 評価データセット(data_pro159.zip を展開)
│   ├── activity00/
│   ├── class00/
│   └── ...             # 図の種類 + 連番のフォルダ
└── results/            # 評価結果 CSV (モデル名.csv)

data/ サブディレクトリ

各フォルダは1枚のモデル図に対応し、以下のファイルを含みます。

ファイル 内容
qa.json 問題・選択肢・正解のJSONファイル
plantuml_ja.png PlantUMLで生成した図(日本語)
powerpoint_ja.png PowerPointで作成した図(日本語)
paperpen_ja.png 手書き図(日本語)
whiteboard_ja.jpg ホワイトボード図(日本語)
summary_ja.txt 図の内容をテキストで要約したファイル

画像ファイルには _en(英語)・_ko(韓国語)バリアントが存在する場合があります。

qa.json の構造

{
  "id": "jsai2025/392",
  "tags": ["counting"],
  "deprecated": false,
  "ja": {
    "question": "画像に含まれるパーティションの数はどれですか?",
    "choice": ["3", "4", "2", "1"],
    "answer": "B",
    "nodes": 10,
    "lines": 0,
    "labels": 19,
    "chars": 126
  },
  "en": { ... },
  "ko": { ... }
}

使い方

基本的な実行

# Claude (Anthropic API)
python testvista.py --backend claude --model_path claude-haiku-4-5

# Ollama
python testvista.py --model_path gemma3:4b
python testvista.py --model_path llava:7b

# HuggingFace
python testvista.py --backend huggingface --model_path Qwen/Qwen2-VL-7B-Instruct

# Apple Silicon (MLX)
python testvista.py --backend mlx --model_path mlx-community/Qwen2-VL-7B-Instruct-8bit

# OpenAI
python testvista.py --backend openai --model_path gpt-4o

# Gemini
python testvista.py --backend gemini --model_path gemini-2.0-flash

--backend--model_path のプレフィックスから自動判定されます(省略可)。

主なオプション

オプション デフォルト 説明
--backend 自動判定 claude / huggingface / mlx / ollama / openai / gemini / vllm
--model_path claude-haiku-4-5 モデルID
--tool plantuml 評価に使う画像ツール(複数指定可)
--lang ja 問題文の言語(ja / en / ko
--image_lang --lang と同じ 画像ファイルの言語
--trials 0 1 2 3 4 実行する試行番号
--data-dir data データディレクトリ
--output_dir . CSV出力ディレクトリ
--max_pixels 2048 画像の長辺最大サイズ(px)、0 でリサイズなし
--max_tokens 1024 生成トークン数の上限
--folders 全フォルダ 評価対象フォルダ名(glob パターン可)
--only なし 問題IDまたはタグに含まれる文字列でフィルタ
--one_shot off JSON出力形式のone-shot例をプロンプトに追加
--remarks CSV の remarks 列に記録する備考

ツール指定の例

# 複数ツールを同時評価
python testvista.py --model_path claude-haiku-4-5 --tool plantuml powerpoint paperpen

# 図なし(テキストのみ)と図ありを比較
python testvista.py --model_path claude-haiku-4-5 --tool plantuml none

# テキスト要約条件
python testvista.py --model_path claude-haiku-4-5 --tool plantuml text

none は図を渡さずに回答させる条件、textsummary_{lang}.txt の内容を与える条件です。

問題フィルタ

# jsai2025 タグ/IDを持つ問題のみ実行
python testvista.py --model_path claude-haiku-4-5 --only jsai2025

# 特定フォルダのみ実行
python testvista.py --model_path claude-haiku-4-5 --folders activity00 class03

# glob パターン
python testvista.py --model_path claude-haiku-4-5 --folders "activity*"

試行設定

各試行は temperature と random_seed が固定されており、選択肢のシャッフルに使われます。

試行 temperature seed
0 0.0 0(ベースライン)
1 0.2 42
2 0.2 43
3 0.2 44
4 0.2 45
# 試行0のみ実行
python testvista.py --model_path claude-haiku-4-5 --trials 0

# 試行0と1のみ
python testvista.py --model_path claude-haiku-4-5 --trials 0 1

出力 CSV

結果は {output_dir}/{model_name}.csv に保存されます。試行済みの画像はスキップされるため、中断後に再実行しても続きから再開できます。

CSV の主な列:

内容
model モデルID
category 図の種類(activityclasssequence 等)
image フォルダ名
tool 使用ツール名
question_id 問題ID
tags タグ(セミコロン区切り)
trial0trial4 各試行の正誤(1=正解、0=不正解)

About

モデル図理解度の評価データセットと評価スクリプト

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors