Quickstart#
This walkthrough runs the full MedVision benchmark pipeline end to end on a tiny slice of the Angle/Distance task using Qwen2.5-VL-7B. It is deliberately small — a smoke test to confirm your environment, data, and outputs line up before you commit to a real sweep.
The flow is always the same three stages: evaluate → parse → summarize.
1. Install and configure the environment#
Install the package (see Installation for the complete setup), then point MedVision at your data and pin the dataset planner version:
export MedVision_DATA_DIR=/path/to/MedVision/Data
export MedVision_PLANNER_VERSION=1.1.1
MedVision_DATA_DIR tells the loader where the datasets live, and
MedVision_PLANNER_VERSION locks the sample-selection logic to a specific
dataset release so results are reproducible.
Note
MedVision_ACK_RELEASE=1.1.1 is only required when you pin
MedVision_PLANNER_VERSION below the latest release. Pinning the latest, as
above, needs no acknowledgement variable.
2. Evaluate on 10 Angle/Distance samples#
Run the Qwen2.5-VL driver against the Angle/Distance CoT task list, capped at 10 samples per task:
python -m medvision_bm.benchmark.eval__qwen2_5_vl \
--model_hf_id Qwen/Qwen2.5-VL-7B-Instruct \
--model_name Qwen2.5-VL-7B-Instruct \
--data_dir "$MedVision_DATA_DIR" \
--tasks_list_json_path tasks_list/tasks_MedVision-AD-CoT.json \
--task_status_json_path completed_tasks/completed_tasks_MedVision-AD-CoT.json \
--results_dir Results/MedVision-AD-CoT \
--sample_limit 10
This writes one per-sample JSONL file per task under
Results/MedVision-AD-CoT/Qwen2.5-VL-7B-Instruct/, containing each model
response alongside its ground truth. Completed tasks are recorded in the
--task_status_json_path file, so an interrupted run resumes where it left off.
Note
The first invocation provisions the model’s inference environment (PyTorch, vLLM, the vendored lmms-eval, plus the dataset install), which can take a while. A GPU is required.
3. Parse the raw outputs into metrics#
Turn the raw JSONL responses into structured, scored records:
python -m medvision_bm.benchmark.parse_outputs \
--task_type AD \
--task_dir Results/MedVision-AD-CoT \
-p 8
This extracts the predicted angles and distances from each response and computes
per-sample parsed metrics (MAE and MRE, in degrees and mm), written to a
parsed/ folder next to the JSONL files. -p 8 runs 8 worker processes.
4. Summarize into per-anatomy tables#
Aggregate the parsed metrics across all samples:
python -m medvision_bm.benchmark.summarize_AD_task \
--task_dir Results/MedVision-AD-CoT \
-p 8
This produces a per-anatomy summary (CSV and JSON) reporting mean MAE and MRE
for the model. Add --skip_model_wo_parsed_files to ignore any model folders
that were never parsed.
Tip
This is a 10-sample smoke run, not a benchmark result. For the full task suite, larger sample limits, and the other models and tasks, see Running evaluations and the Benchmark overview.