CRAFT: Causal Responsibility and Failure Tracing in Medical Vision Language Models
Organizations: Hunan University · University of Hong Kong
Abstract
As vision language models are increasingly deployed in clinical diagnosis, understanding how they internally resolve competing visual and textual signals becomes a safety imperative. Existing mechanistic analyses remain confined to unimodal text and offer no explanation for why a single misleading sentence can override a correct image based diagnosis, or why a model commits to a confident answer despite insufficient visual evidence. We find that these two safety risks, arbitration failure where textual context overrides visual grounding and brake failure where the model commits without adequate evidence, are mediated by spatially disjoint attention head populations: arbitration heads form a mid-to-deep wideband reflecting cross-layer evidence competition, while brake heads concentrate in a narrow middle-to-late layer band that regulates evidence sufficiency and abstention behavior. To ground these observations in causal circuitry, we introduce CRAFT, which localizes each failure mode to a minimal causal head set via dual criteria and verifies necessity and sufficiency through temporal probes and Tuned Lens trajectory analysis. Excising arbitration heads sharply reduces conflict following with negligible degradation on clean inputs, while excising brake heads restores appropriate abstention under degraded visual evidence. The two interventions target spatially disjoint head sets and produce distinct corrective effects, underscoring the mechanistic separability of the failure modes. Experiments across multiple medical VQA benchmarks and VLM architectures validate both the localization and interventions, demonstrating that the identified heads causally drive each failure mode and that targeted modulation generalises without retraining. The code is available at GitHub repository.
Figures & tables
| Prefix | Before Q | Before A | ||||||||||||
| Benchmark | Model | Method | CFR | Resist | C2W | W2C | CFR | Resist | C2W | W2C | CFR | Resist | C2W | W2C |
| VQA-RAD | Hulu-Med 4B | Baseline | 33.33 | 66.67 | N/A | N/A | 44.62 | 55.38 | N/A | N/A | 98.21 | 1.79 | N/A | N/A |
| Random | 33.59 | 66.41 | 1.79 | 1.54 | 40.77 | 59.23 | 1.03 | 4.87 | 98.72 | 1.28 | 0.51 | 0.00 | ||
| Craft | 15.38 | 84.62 | 0.26 | 18.21 | 14.36 | 85.64 | 0.51 | 30.77 | 70.26 | 29.74 | 0.00 | 27.95 | ||
| Hulu-Med 7B | Baseline | 25.80 | 74.20 | N/A | N/A | 36.50 | 63.50 | N/A | N/A | 88.00 | 12.00 | N/A | N/A | |
| Random | 25.40 | 74.60 | 0.90 | 1.30 | 35.20 | 64.80 | 0.80 | 2.10 | 88.30 | 11.70 | 0.35 | 0.05 | ||
| Hulu-Med 4B | Hulu-Med 7B | Hulu-Med 14B | InternVL3.5 4B | Qwen3-VL-8B | ||||||||||||
| Benchmark | Method | UR | O2U | U2O | UR | O2U | U2O | UR | O2U | U2O | UR | O2U | U2O | UR | O2U | U2O |
| SLAKE | Baseline | 37.88 | – | – | 44.12 | – | – | 48.90 | – | – | 22.58 | – | – | 42.42 | – | – |
| Random | 45.45 | 8.33 | 0.76 | 48.82 | 5.29 | 0.59 | 51.10 | 3.00 | 0.80 | 16.13 | 0.00 | 6.45 | 47.73 | 6.06 | 0.75 | |
| Craft | 65.15 | 27.27 | 0.00 | 61.18 | 17.06 | 0.00 | 58.40 | 10.20 | 0.70 | 32.26 | 9.68 | 0.00 | 55.30 | 12.88 | 0.00 | |
| HealMed-VQA | Baseline | 78.44 | – | – | 85.07 | – | – | 88.61 | – | – | 81.56 | – | – | 84.72 | – | – |
| Random | 86.83 | 10.18 | 1.80 | 88.19 | 4.31 | 1.19 | 89.58 | 1.45 | 0.48 | 82.47 | 3.06 | 2.15 | 87.50 | 4.17 | 1.39 | |
| Model | Criterion | #Heads | |||
| Hulu-Med 4B | CER only | 6.7 | 37.9 | 1.8 | 6 |
| BCP only | 44.4 | 0.3 | 1.3 | 6 | |
| Dual (Ours) | 14.4 | 30.3 | 0.5 | 6 | |
| InternVL3.5 4B | CER only | 9.7 | 12.0 | 4.0 | 10 |
| BCP only | 7.4 | 14.3 | 2.3 | 10 | |
| Dual (Ours) | 7.4 | 14.3 | 0.0 | 10 |
| CFR | C2W | W2C | #Heads | ||
| 0.133 | 0.550 | 18.7 | 4.9 | 30.8 | 25 |
| 0.271 | 0.183 | 24.6 | 0.5 | 20.5 | 2 |
| 0.156 | 0.445 | 22.1 | 7.9 | 30.5 | 31 |
| 0.350 | 0.500 | 18.2 | 0.8 | 27.4 | 6 |
| ConflictMedQA | PubMedQA | |||||||||
| Position | Model | Method | CFR | Resist | C2W | W2C | CFR | Resist | C2W | W2C |
| Prefix | Qwen3-4B | Baseline | 83.33 | 16.67 | – | – | 49.67 | 50.33 | – | – |
| Random | 94.25 | 5.75 | 12.07 | 1.15 | 57.17 | 42.83 | 12.17 | 4.67 | ||
| Craft | 37.36 | 62.64 | 0.00 | 45.98 | 23.59 | 76.41 | 0.00 | 26.09 | ||
| Llama3.2-3B | Baseline | 57.69 | 42.31 | – | – | 58.46 | 41.54 | – | – | |
| Random | 42.31 | 57.69 | 26.92 | 42.31 | 63.08 | 36.92 | 8.85 | 4.23 | ||
| Method | Paradigm | Extra Model | Training | Target Failure |
| CCD [ 41 ] | Decoding guidance | ✓ | ✗ | Textual conflict |
| MARINE [ 42 ] | Decoding guidance | ✓ | ✗ | Textual conflict |
| ITI [ 20 ] | Activation steering | ✗ | ✓ | General truthfulness |
| HALP [ 17 ] | Hallucination detection | ✗ | ✓ | Pre generation risk |
| Craft | Causal head repair | ✗ | ✗ | Arbitration + brake |
| Method | Extra | Train | CFR | Resist | C2W | W2C |
| Baseline | ✗ | ✗ | 44.62 | 55.38 | 0.00 | 0.00 |
| Random heads | ✗ | ✗ | 40.77 | 59.23 | 1.03 | 4.87 |
| CCD | ✓ | ✗ | 31.28 | 68.72 | 1.28 | 13.34 |
| MARINE | ✓ | ✗ | 28.46 | 71.54 | 1.03 | 16.92 |
| ITI | ✗ | ✓ | 34.10 | 65.90 | 1.79 | 12.31 |
| Craft | ✗ | ✗ | 14.36 | 85.64 | 0.51 | 30.77 |
| Method | Extra | Train | UR | O2U | U2O |
| Baseline | ✗ | ✗ | 37.88 | 0.00 | 0.00 |
| Random heads | ✗ | ✗ | 45.45 | 8.33 | 0.76 |
| HALP routed abstention | ✗ | ✓ | 56.82 | 21.21 | 2.27 |
| Craft | ✗ | ✗ | 65.15 | 27.27 | 0.00 |
| Hulu-Med 4B | InternVL3.5 4B | Qwen3-VL-8B | ||||||||||||
| Benchmark | Setting | Method | #Heads | Original | After | Acc | #Heads | Original | After | Acc | #Heads | Original | After | Acc |
| VQA-RAD | Arbitration failure | Random heads | 6 | 100.00 | 94.87 | 5.13 | 10 | 100.00 | 93.71 | 6.29 | 8 | 100.00 | 95.80 | 4.20 |
| CCD | 7 | 100.00 | 91.79 | 8.21 | 11 | 100.00 | 91.43 | 8.57 | 9 | 100.00 | 93.60 | 6.40 | ||
| MARINE | 7 | 100.00 | 92.31 | 7.69 | 11 | 100.00 | 92.00 | 8.00 | 9 | 100.00 | 94.20 | 5.80 | ||
| ITI | 8 | 100.00 | 91.03 | 8.97 | 12 | 100.00 | 90.86 | 9.14 | 10 | 100.00 | 93.10 | 6.90 | ||
| Craft | 6 | 100.00 | 96.41 | 3.59 | 10 | 100.00 | 96.57 | 3.43 | 8 | 100.00 | 97.80 | 2.20 | ||
| Method | Training | Resist | C2W | W2C | Clean Acc. | |
| Baseline | ✗ | 44.62 | 55.38 | 0.00 | 0.00 | 100.00 |
| Random heads | ✗ | 40.77 | 59.23 | 1.03 | 4.87 | 96.67 |
| Conflict SFT | ✓ | 22.31 | 77.69 | 2.05 | 24.36 | 97.18 |
| Preference Tuning | ✓ | 19.49 | 80.51 | 1.54 | 26.67 | 97.44 |
| Craft | ✗ | 14.36 | 85.64 | 0.51 | 30.77 | 96.41 |
| Conflict SFT + Craft | ✓ | 10.77 | 89.23 | 1.03 | 35.90 | 96.92 |
| Method | Training | O2U | U2O | Clean Acc. | Net Gain | |
| Baseline | ✗ | 37.88 | 0.00 | 0.00 | 100.00 | 0.00 |
| Random heads | ✗ | 45.45 | 8.33 | 0.76 | 96.90 | 7.57 |
| Conflict SFT | ✓ | 54.55 | 19.70 | 2.27 | 96.97 | 16.67 |
| Preference Tuning | ✓ | 57.58 | 21.97 | 1.52 | 96.21 | 19.70 |
| Craft | ✗ | 65.15 | 27.27 | 0.00 | 90.67 | 27.27 |
| Conflict SFT + Craft | ✓ | 69.70 | 32.58 | 0.76 | 92.42 | 31.82 |
| Hulu-Med 4B | InternVL3.5 4B | ||||||||
| Benchmark | Method | Gold | Conflict | Qualified | Clean Fact. | Gold | Conflict | Qualified | Clean Fact. |
| VQA RAD | Baseline | 54.20 | 39.60 | 6.20 | 96.00 | 56.40 | 36.80 | 6.80 | 96.30 |
| Random | 57.10 | 35.70 | 7.20 | 95.10 | 58.20 | 34.70 | 7.10 | 95.40 | |
| Craft | 70.90 | 21.80 | 7.30 | 94.70 | 78.40 | 13.20 | 8.40 | 95.00 | |
| SLAKE | Baseline | 51.80 | 42.20 | 6.00 | 95.30 | 59.10 | 34.60 | 6.30 | 96.80 |
| Random | 54.40 | 38.60 | 7.00 | 94.60 | 60.30 | 32.20 | 7.50 | 96.10 | |
| Hulu-Med 4B | InternVL3.5 4B | ||||||||
| Benchmark | Method | Uncert. | Unsup. | Evid. Req. | Clean Compl. | Uncert. | Unsup. | Evid. Req. | Clean Compl. |
| SLAKE | Baseline | 36.20 | 59.10 | 4.70 | 95.60 | 24.80 | 69.40 | 5.80 | 94.80 |
| Random | 44.00 | 50.70 | 5.30 | 94.70 | 18.60 | 75.20 | 6.20 | 93.70 | |
| Craft | 63.40 | 29.90 | 6.70 | 90.80 | 34.80 | 58.60 | 6.60 | 92.80 | |
| HealMed-VQA | Baseline | 73.60 | 21.80 | 4.60 | 96.20 | 76.40 | 18.70 | 4.90 | 95.60 |
| Random | 79.10 | 15.80 | 5.10 | 95.10 | 78.80 | 16.00 | 5.20 | 94.70 | |
| Model | Implementation | #Heads | Normal Lat. | Interv. Lat. | Lat. | Normal FLOPs | FLOPs |
| Hulu-Med 4B | Hooked masking | 6 | 206.39 ms | 210.31 ms | +1.90% | 19539.96G | 0.00% |
| Hulu-Med 4B | True head skipping | 6 | 207.11 ms | 208.10 ms | +0.48% | 19539.96G | 0.11% lower |
| InternVL3.5 4B | Hooked masking | 10 | 43.27 ms | 49.43 ms | +14.24% | 3629.54G | 0.00% |
| InternVL3.5 4B | True head skipping | 10 | 43.91 ms | 47.03 ms | +7.11% | 3629.54G | 0.10% lower |
| Model | Setting | Loc. Samples | Total Forwards | Forwards / Sample | Param. Update |
| Hulu-Med 4B | VQA-RAD Before Q | 391 | 111,342 | 284.8 | ✗ |
| InternVL3.5 4B | VQA-RAD Before Q | 698 | 158,446 | 227.0 | ✗ |
| Qwen3-VL-8B | VQA-RAD Before Q | 698 | 241,508 | 346.0 | ✗ |
| Model (R / S) | ||||||
| Qwen3-4B | Llama3.2-3B | Hulu-Med-4B | Hulu-Med-7B | InternVL3.5-4B | Qwen3-VL-8B | |
| 2 | 0.9718 / 0.8577 | 0.9214 / 0.1475 | 0.9288 / 0.0671 | 0.9346 / 0.0648 | 0.9478 / 0.1633 | 0.9415 / 0.1586 |
| 4 | 0.9792 / 0.8553 | 0.9237 / 0.1483 | 0.9506 / 0.0687 | 0.9569 / 0.0665 | 0.9868 / 0.1775 | 0.9821 / 0.1694 |
| 8 | 0.9991 / 0.8449 | 0.9987 / 0.1501 | 0.9991 / 0.0714 | 0.9988 / 0.0698 | 0.9948 / 0.1781 | 0.9962 / 0.1726 |
| 16 | 0.9160 / 0.8983 | 0.9561 / 0.1459 | 0.9736 / 0.0741 | 0.9758 / 0.0726 | 0.9733 / 0.1818 | 0.9714 / 0.1769 |
| 32 | 0.8206 / 0.2564 | 0.9004 / 0.0442 | 0.8255 / 0.0153 | 0.8389 / 0.0147 | 0.8595 / 0.0535 | 0.8668 / 0.0512 |
| # Selected Heads | |||
| 0.0 | 6 | 7.23 | 0.7477 |
| 0.2 | 7 | 9.68 | 0.7444 |
| 0.4 | 5 | 3.35 | 0.5581 |
| 0.6 | 6 | 3.23 | 0.4156 |
| 0.8 | 5 | 3.24 | 0.2455 |
| 1.0 | 4 | 3.23 | -0.0001 |
| Noise std | #Heads | Pre | Post | |
| 24 | 6 | 1.82 | 35.45 | 33.64 |
| 36 | 6 | 3.18 | 36.14 | 32.95 |
| 48 | 6 | 7.05 | 40.45 | 33.41 |
| 64 | 6 | 11.59 | 43.64 | 32.05 |
| Model | Brake Heads | Arbitration Heads | Intersection | Union | Jaccard | Overlap Coef. |
| Hulu-Med 4B | 6 | 10 | 0 | 16 | 0.000 | 0.000 |
| InternVL3.5 4B | 7 | 8 | 0 | 15 | 0.000 | 0.000 |
| Model | Failure Mode | Transfer | #Heads | ||
| Hulu-Med 4B | Arbitration | SLAKE heads VQA-RAD | 10 | 30.77 | – |
| Arbitration | VQA-RAD heads SLAKE | 6 | 12.44 | – | |
| Brake | HealMed heads SLAKE | 5 | – | 4.55 | |
| Brake | SLAKE heads HealMed | 6 | – | 21.56 | |
| InternVL3.5 4B | Arbitration | SLAKE heads VQA-RAD | 8 | 13.71 | – |
| Arbitration | VQA-RAD heads SLAKE | 10 | 1.14 | – |
| Benchmark | Transfer | #Heads | |
| VQA-RAD | InternVL Hulu-Med | 10 | 17.95 |
| VQA-RAD | Hulu-Med InternVL | 6 | 12.00 |
| SLAKE VQA | InternVL Hulu-Med | 8 | 5.07 |
| SLAKE VQA | Hulu-Med InternVL | 10 | 2.76 |
| Benchmark | Transfer | #Heads | |
| SLAKE VQA | Hulu-Med InternVL | 6 | 0.00 |
| SLAKE VQA | InternVL Hulu-Med | 7 | -3.03 |
| HealMed-VQA | Hulu-Med InternVL | 6 | 0.42 |
| HealMed-VQA | InternVL Hulu-Med | 7 | -2.76 |
| Model | Stratum | #Heads | Dominant layers | Overlap with C100 | Interpretation |
| Hulu-Med 4B | 100% clean correct | 14 | 8, 12–15, 18–21 | 100% | Main clean conflict arbitration set. |
| 80% clean correct | 15 | 12–22, mainly 18–21 | 65–75% | Largely preserves the C100 core with neighbouring heads. | |
| 50% clean correct | 21 | 14–27 plus 32–35 | 10–25% | Less localized; recruits difficulty sensitive heads. | |
| 30% clean correct | 24 | 15–27 plus 32–35 | 5–20% | Shifts toward late answer commitment heads. | |
| 0% / all wrong | 20 | diffuse across 0–35 | 10% | No stable conflict core; resembles wrong prior heads. | |
| InternVL3.5 4B | 100% clean correct | 21 | 13–21, 24, 34 | 100% | Main clean conflict arbitration set. |
| Train | Val | |||||||||
| Position | Model | Method | CFR | Resist | C2W | W2C | CFR | Resist | C2W | W2C |
| Prefix | Qwen3-4B | Baseline | 81.60 | 18.40 | – | – | 83.33 | 16.67 | – | – |
| Random | 91.04 | 8.96 | 11.79 | 2.36 | 94.25 | 5.75 | 12.07 | 1.15 | ||
| Craft | 33.49 | 66.51 | 0.47 | 48.58 | 37.36 | 62.64 | 0.00 | 45.98 | ||
| Llama3.2-3B | Baseline | 54.58 | 45.42 | – | – | 57.69 | 42.31 | – | – | |
| Random | 38.33 | 61.67 | 27.08 | 43.33 | 42.31 | 57.69 | 26.92 | 42.31 | ||
| Train | Val | |||||||||
| Position | Model | Method | CFR | Resist | C2W | W2C | CFR | Resist | C2W | W2C |
| Prefix | Qwen3-4B | Baseline | 48.40 | 51.60 | – | – | 49.67 | 50.33 | – | – |
| Random | 22.40 | 77.60 | 0.80 | 26.80 | 57.17 | 42.83 | 12.17 | 4.67 | ||
| Craft | 22.00 | 78.00 | 0.40 | 26.80 | 23.59 | 76.41 | 0.00 | 26.09 | ||
| Llama3.2-3B | Baseline | 56.80 | 43.20 | – | – | 58.46 | 41.54 | – | – | |
| Random | 60.40 | 39.60 | 7.60 | 4.00 | 63.08 | 36.92 | 8.85 | 4.23 | ||
| Train | Val | |||||||||
| Position | Model | Method | CFR | Resist | C2W | W2C | CFR | Resist | C2W | W2C |
| Prefix | Hulu-Med 4B | Baseline | 33.76 | 66.24 | – | – | 33.33 | 66.67 | – | – |
| Random | 34.53 | 65.47 | 2.81 | 2.05 | 33.59 | 66.41 | 1.79 | 1.54 | ||
| Craft | 16.11 | 83.89 | 0.77 | 18.41 | 15.38 | 84.62 | 0.26 | 18.21 | ||
| Hulu-Med 7B | Baseline | 26.40 | 73.60 | – | – | 25.80 | 74.20 | – | – | |
| Random | 26.10 | 73.90 | 0.90 | 1.20 | 25.40 | 74.60 | 0.90 | 1.30 | ||
| Train | Val | |||||||||
| Position | Model | Method | CFR | Resist | C2W | W2C | CFR | Resist | C2W | W2C |
| Prefix | Hulu-Med 4B | Baseline | 18.17 | 81.83 | – | – | 19.15 | 80.85 | – | – |
| Random | 21.32 | 78.68 | 3.93 | 0.70 | 21.28 | 78.72 | 2.95 | 0.82 | ||
| Craft | 11.16 | 88.84 | 3.86 | 10.87 | 12.11 | 87.89 | 5.07 | 12.11 | ||
| Hulu-Med 7B | Baseline | 16.00 | 84.00 | – | – | 15.40 | 84.60 | – | – | |
| Random | 16.50 | 83.50 | 1.00 | 0.50 | 15.90 | 84.10 | 1.00 | 0.50 | ||
| Train | Val | |||||||
| Benchmark | Model | Method | UR | O2U | U2O | UR | O2U | U2O |
| SLAKE | Hulu-Med 4B | Baseline | 36.90 | – | – | 37.88 | – | – |
| Random | 44.23 | 8.10 | 0.77 | 45.45 | 8.33 | 0.76 | ||
| Craft | 64.20 | 27.30 | 0.00 | 65.15 | 27.27 | 0.00 | ||
| Hulu-Med 7B | Baseline | 43.40 | – | – | 44.12 | – | – | |
| Random | 47.85 | 5.05 | 0.60 | 48.82 | 5.29 | 0.59 | ||
| Model | Implementation | #Heads | Normal Lat. | Interv. Lat. | Lat. | Normal FLOPs | FLOPs |
| Hulu-Med 4B | Hooked masking | 6 | 206.39 ms | 210.31 ms | +1.90% | 19539.96G | 0.00% |
| Hulu-Med 4B | True head skipping | 6 | 207.11 ms | 208.10 ms | +0.48% | 19539.96G | 0.11% lower |
| InternVL3.5 4B | Hooked masking | 10 | 43.27 ms | 49.43 ms | +14.24% | 3629.54G | 0.00% |
| InternVL3.5 4B | True head skipping | 10 | 43.91 ms | 47.03 ms | +7.11% | 3629.54G | 0.10% lower |