モデル図理解度の評価データセットと評価スクリプト
評価データ (data/) はコンタミネーション対策のため、パスワード付き ZIP で配布しています。
- ファイル:
data_pro159.zip - パスワード:
pro159
展開すると data/ ディレクトリが作成されます。
unzip -P pro159 data_pro159.ziptestvista/
├── testvista.py # 評価スクリプト本体
├── data/ # 評価データセット(data_pro159.zip を展開)
│ ├── activity00/
│ ├── class00/
│ └── ... # 図の種類 + 連番のフォルダ
└── results/ # 評価結果 CSV (モデル名.csv)
各フォルダは1枚のモデル図に対応し、以下のファイルを含みます。
| ファイル | 内容 |
|---|---|
qa.json |
問題・選択肢・正解のJSONファイル |
plantuml_ja.png |
PlantUMLで生成した図(日本語) |
powerpoint_ja.png |
PowerPointで作成した図(日本語) |
paperpen_ja.png |
手書き図(日本語) |
whiteboard_ja.jpg |
ホワイトボード図(日本語) |
summary_ja.txt |
図の内容をテキストで要約したファイル |
画像ファイルには _en(英語)・_ko(韓国語)バリアントが存在する場合があります。
{
"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 textnone は図を渡さずに回答させる条件、text は summary_{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結果は {output_dir}/{model_name}.csv に保存されます。試行済みの画像はスキップされるため、中断後に再実行しても続きから再開できます。
CSV の主な列:
| 列 | 内容 |
|---|---|
model |
モデルID |
category |
図の種類(activity・class・sequence 等) |
image |
フォルダ名 |
tool |
使用ツール名 |
question_id |
問題ID |
tags |
タグ(セミコロン区切り) |
trial0 … trial4 |
各試行の正誤(1=正解、0=不正解) |