Release v1.1.1#
Release notes for the medvision_bm codebase, v1.1.1. This is the version this
documentation set describes; use the version switcher (bottom-right on Read the Docs)
to read the docs for a different release.
New Model Evaluations#
Claude (Anthropic API / OpenRouter): adaptive thinking + a 28px-grid pre-resize so the prompt’s stated image/pixel size matches what the model perceives (ead5ae0); finalized eval scripts and pinned
requirements_eval_claude.txt(91e14d9)Gemini (Google Gemini API / OpenRouter): pass-through resize with a 3072px client-side guard and per-model image caps (47210fb)
OpenAI/GPT (OpenAI API / OpenRouter): patch-budget resize rule and per-model image caps (a0c5d84); added non-Pro GPT-5.5 scripts and capped
--reasoning_effort/--max_tokenson all 6 GPT scripts to control runaway cost (cace62c)Kimi K2.6: OpenAI-compatible API model with MoonViT floor-28 fixed-point resize and a per-model patch-budget table (e3cf881)
GLM-4.6V and GLM-4.6V-Flash: vLLM wrapper covering both the MoE and dense checkpoints, with reasoning-model sampling and a perceived-size resize probe (238f84b); fix GLM-4.6V environment setup (a76f382)
MiniMax-M3: vLLM wrapper with a perceived-size probe (a070f93); MiniMax-M3-INT4 (AWQ) on 4xH100 with CUDA-13 forward-compat fixes (1e67af7); experimental MiniMax-M3 (MXFP8) for >=8x80GB GPUs with a fail-fast aggregate-VRAM guard (91a0cc8)
Gemma 4 and Qwen3-VL(-Thinking): vLLM wrappers with thinking-mode support and reasoning-content merge (98b0aa9)
Unify HealthGPT-L14/XL32 into a single
healthgptmodel key, selectable via a new--model_choiceCLI arg (cf52d7d, 7efb72a)MedVision-V0-7B: benchmark eval scripts and environment (ae972d8); full HF model card covering the two-stage SFT+RFT recipe,
<think>/<answer>output contract, and licensing, later revised for clarity and CC-BY 4.0 (575254e, 1002189, 84e8aa7)
New Metrics#
F1/Precision/Recall for Detection and per-sample nMAE for TL/AD added to the parsed JSONL output (1f4cc6c)
Step 1/2 raw L2 distance replaced by normalized L2 distance (÷√2) in the TL/AD process-accuracy scripts, making localization error comparable to the step 3/4 nMAE (986d4ea)
nMAE for
-scaledPSfiles reconstructed via a BLAKE2B hash whenpixel_size_scalewasn’t stored in the raw JSONL (677ccc4)
New Analyses#
Detection box-size analysis pipeline: per-bin Recall/Precision/F1 vs. a simulated random-detection baseline, plus a per-label × box-size visualization (4575d66, a9e2326, 9242e1b, 80508e0)
Removed-samples filtering added to the TL equation-/process-accuracy scripts to exclude samples dropped between dataset v1.0.0→v1.1.0 (a4a835f); later dropped from the response-visualization scripts as obsolete once dataset v1.1.1 changed which samples were removed (0719acb)
Visualization#
Per-sample overlay and response-visualization scripts for TL/AD/Detection tasks (c6bfea4, fcac4cf), made robust to missing or unparseable predictions (eb97ad0)
Radar-chart and cross-model comparison-grid compilation scripts with batch runners (4739c79, c4ca65f)
plot_utilsextended with AD landmark plotting and a GT axis overlay for TL (130583f)export_webpage_casesfor the project webpage’s interactive case viewer, with dual-origin off-the-shelf rendering and a demo gallery seeded from MedVision-V0-7B (9a76fd4, 563e9c7, c205333, 6a9fbdf)Image-vs-real-space ellipse-fit comparison figures illustrating the v1.1.1 TL bug (0a9ca53)
All figures capped at arXiv’s 34-megapixel per-image limit; transparent backgrounds and
--save_as_png/--save_as_pdfoutput flags added (c0afb27, d4bc9d3)
Key Bugfixes — Image Perception & Generation Truncation#
Critical:
get_resized_img_shape()returned a single shape used for both the stated image size and the pixel size; split into a (perceived-canvas, content) pair so padding models — LLaVA-OneVision, InternVL3, Llama-3.2-Vision, LLaVA-Med, HuatuoGPT-Vision, HealthGPT-L14 — report the correct TL/AD image size and pixel scale; off-the-shelf runs on non-square inputs should be re-evaluated (0a4c5e2)Critical regression: lmms-eval’s fewshot-delimiter
"\n\n"was being forwarded as a vLLM generation stop for every model, truncating CoT answers before<answer>(0% parseable answers observed for InternVL3-38B/Llama-3.2-Vision); removed the defaultuntil-forwarding and gated string stops on--stop_stringsonly, generalizing the earlier Gemma 4-specific fix (2eb7706, 18aa18a)--stop_stringswired end-to-end through HuatuoGPT-Vision and LLaVA-Med to stop truncated outputs (de6ae15, a766b35)min_new_tokens=16floor prevents empty LLaVA-Med responses from greedy premature-EOS (556f0b1)Fix scaledPS process-accuracy scoring against the scaled ground truth instead of the unscaled one; restore the missing MedVision-V0 scaledPS eval scripts (f6fc5e6)
Balance parentheses in the angle-formula CoT prompt (ae29149)
Key Bugfixes — Metrics & Summarization Pipeline#
Exit nonzero when
lmms_evalswallows an evaluation error, so vLLM-driver eval scripts correctly mark crashed tasks as incomplete instead of “done” (813b350; paired with raising eval subprocess verbosity toINFOacross the 9 remaining vLLM drivers in ee7d5f9)Detection-metric parse failures now count as 0 (not NaN) in IoU/F1/Precision/Recall, matching the authoritative summarizer; fixed a crash in the no-CoT verl detection formatter (6e90af4)
Exclude
_proc_acc/_eq_acc/_filteredsidecar JSONLs and cross-analysis outputs from the summarize/collection steps, preventing crashes and double-counted results (8644f91, 313ff45, 641517b, ba111a2)
Robustness Hardening (Audit-Driven)#
Replace
exec()of model-generated code in tool-execution with an AST-restricted evaluator that rejects dunder/attribute/subscript/import escapes; redact secrets from evaluation-tracker logs; deterministic per-task dataset ordering to fix non-deterministic RFT crash-resume; report angle pixel size in millimeters, not degrees (742c484)Replace
eval()withast.literal_evalfor JSONL targets, add a robust numeric parser, and seed the weighted sampler andSFTConfigfor reproducibility (28f6c67)
Dataset v1.1.1 Integration#
Release the MedVision dataset v1.1.1, fixing a TL anisotropic ellipse-fit bug (transposed in-plane voxel spacing); ~22% fewer TL samples on anisotropic data (fe27464)
Set
MedVision_ACK_RELEASE=1.1.1across benchmark/SFT scripts still pinned to olderMedVision_PLANNER_VERSIONs, acknowledging the new release-acknowledgement gate (5f35017); setMedVision_PLANNER_VERSIONexplicitly in SFT training scripts, required since medvision_ds v1.1.0 (01557f3)Add versioned v1.1.1 task lists (A/D, T/L, Detection) and a per-task pixel-size-distribution summarizer over MedVision configs (3673558, 77a00ea, a9947a3)
Share
lmms_eval_specific_kwargsvia a YAMLincludeacross landmark base configs; drop stale TL-OOD task lists (7a18805)
OOD Ablation#
Add MedVision-V0-7B eval scripts for plane-OOD and task-OOD ablation on TL and Detection tasks, evaluating generalization to unseen slicing planes and unseen anatomical targets; renamed the corresponding task-list JSONs to the
-CoT-<split>naming convention used elsewhere (2673ce5)
SFT / RFT#
Fix: SFT loss masked to train only on the assistant response (not the full prompt+response sequence) in the Qwen2.5-VL collate (9945b05)
Feat (experimental): full-parameter and LoRA SFT scripts for MedGemma-27B, Gemma-4-31B, and Qwen3-VL-27B (0e2c0eb)
Feat: parquet dataset building scripts for RFT in verl (7f638e3)
Infrastructure / Install#
Persist per-sample model outputs to a resumable, prompt-hash-keyed JSONL cache so an interrupted eval run only re-does the in-flight sample (783dddb)
Build the
medvision_bmwheel in a private temp dir instead of the repo tree, fixing intermittent build failures on shared CephFS checkouts (473a4fd)Write task-status JSON atomically (temp file + fsync +
os.replace) to survive full-disk writes (3c01bea)Standardize install method and pin
MedVision_PLANNER_VERSION='1.0.0'across all 38 benchmark eval scripts; rename eval script filenames to consistent Title Case and drop dead gemini keys (702c392, 7ba7f9a)Relax scipy/nibabel/matplotlib version pins to fix environment setup conflicts (69f7afe)
Auto-format all Python and shell sources with black/isort/shfmt (cosmetic only) (bfcf773)
Documentation#
Add a Read the Docs documentation site (Sphinx + MyST) with autodoc/autosummary API reference over all importable modules (f1102c5)
Change codebase license to CC-BY 4.0 (3633fea, 1002189)
Document each model’s perceived-resolution strategy in
docs/Model-Image-Processing.md; restructure the doc and drop the superseded perceived-size bugfix page (e930941, 8573eca)Refresh README News, Quick Start, benchmarked-models list, and reference links throughout the release cycle (a168350, cb40b43, 7564b9a, 0b7106d, 58a63e3, 4a184f0, 9fe1f96, 6ffe47f, 0719acb)