Skip to content

MIMIC-CXR imaging: no committed runner script for cascade/solo/system_flag/blind_metric (mirrors #337's CheXpert gap) #343

Description

@sebasmos

Problem

experiments/mimic_cxr_image/ has no committed script that actually calls the Gemini API to generate the cascade/solo/system_flag/blind_metric results. The only committed .py files there are build_subset.py (deterministic manifest/subset selection, no API calls) and plant_direction_check.py (an offline re-analysis that reads already-generated jsonl files, also no API calls).

The committed result files under experiments/mimic_cxr_image/results/ (e.g. cascade_150/imaging_cascade_summary.json, imaging_blind_metric_summary.json, imaging_system_flag_summary.json, imaging_strength_cascade_summary.json) were therefore produced by a script that either never got committed, or was run and then removed. Nobody looking at this repo can regenerate these numbers from what is here, and the code that was actually used to produce them cannot be audited for correctness (see below).

This is the exact same gap flagged on the CheXpert redesign in #331/PR #337 (also missing a committed runner), except CheXpert's gap is being actively worked on and MIMIC's is not yet tracked anywhere.

Why this matters for the paper

  1. Reproducibility. The project's standing rule is that every real-data claim reproduces from a committed cache with no API key required. That is impossible here since the generating script itself is absent, not just its cache.
  2. The ground-truth-plant fix (Imaging cascade plants against the model's clean read, not ground truth (NIH quantified, MIMIC to check) #332/Imaging cascade: plant against ground truth, not the clean read (#332) #333/Imaging: ground-truth plant fix, real re-run across all 7 affected scripts (#332, #339) #338/Audit the other 6 imaging scripts for the same plant-against-clean-read pattern (#332 follow-up) #339) cannot be verified as applied. PR Imaging cascade: plant against ground truth, not the clean read (#332) #333/Imaging: ground-truth plant fix, real re-run across all 7 affected scripts (#332, #339) #338 fixed a real bug in the shared experiments/imaging/imaging_cascade.py (and 6 sibling scripts): the old design planted wrong = flip(clean_read), which on finding-present cases coincides with ground truth whenever the model's own clean read was already wrong, understating what a genuine correction looks like versus real sycophancy. Aldo's plant_direction_check.py (MIMIC-CXR: deterministic subset tooling + imaging battery (closes #324) #329) is a valid, honest retrospective correction of the existing committed data (splits already-collected transcripts into genuinely-false vs coincides-with-truth subgroups), but it cannot confirm the next run (e.g. any rerun toward n=600, or any new cue/arm) would use the fixed design, because there is no committed generator to inspect or fix going forward.

What "done" looks like

  • Commit the script(s) that actually drive GeminiBackend/cache.ask calls for each MIMIC-CXR imaging arm (solo, cascade, system_flag, strength_cascade, blind_metric), under experiments/mimic_cxr_image/, mirroring the shape of the already-fixed experiments/imaging/*.py scripts.
  • The cascade runner must plant against ground truth (the definitely-false read), not against the model's own clean read, matching the Imaging cascade: plant against ground truth, not the clean read (#332) #333/Imaging: ground-truth plant fix, real re-run across all 7 affected scripts (#332, #339) #338 fix. Do not reintroduce the old wrong = "no" if clean == "yes" else "yes" pattern.
  • A README or docstring documents the exact command to regenerate every arm from a fresh manifest, so plant_direction_check.py's inputs are themselves reproducible, not just its outputs.
  • Re-verify (or re-derive) that the currently-committed result summaries match what the committed runner actually produces, since they may currently be stale relative to any local-only version of the script.

Real-data rule

Any fix here needs a real Gemini API run to confirm the committed runner reproduces the existing (or corrected) summary numbers, not just a code read. Mock/offline verification alone does not satisfy this project's standing rule.

Related: #331, #332, #333, #338, #339, PR #329, PR #337.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingdataset:mimic-cxrexperimentExperiment runner / study designpriority: highDo this soon; unblocks the paper or other work

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions