Skip to content
dgem has moved to github.com/GoogleCloudPlatform/dgem. Docs are moving to googlecloudplatform.github.io/dgem; this site stays up during the move.

Decision Model Experiment Ledger (EXP-01 – EXP-43)

This directory serves as the structured research and engineering log for DiffusionGemma (dgemma) as a Zero-Shot Decision Model and dgem as a Declarative Policy Engine (Policy-as-Template).

Much like benchmarks/ stores reproducible JSONL evaluation suites and JSON telemetry receipts, docs/experiments/ chronicles why each experiment was designed, how its templates encode domain policy, what the empirical single-pass logprobs and Shannon entropy HH revealed, and where our next architectural frontiers lie.

📋 Planned work: Experiments we intend to run, each with a pre-registered hypothesis, design, and decision criteria, are tracked in the Proposed Experiments Register. Claim the next EXP-XX number by adding its row here when the run starts (status 🧪 Running), so parallel work never reuses a number. Comparisons with other decision models follow Comparing dgem with Another Decision Model; each one ends with findings that go to the register, the issue tracker or the regression matrix.


1. Repository Taxonomy & Filepath Architecture

Section titled “1. Repository Taxonomy & Filepath Architecture”

Every experiment in dgem connects three version-controlled artifacts:

flowchart LR
    T["1. Policy Templates\n(templates/**/*.json.tmpl)"] --> H["2. CLI Harness\n(cmd/dgem/bench*.go)"]
    D["2. JSONL Datasets\n(benchmarks/*.jsonl)"] --> H
    H --> R["3. Telemetry Receipts\n(benchmarks/results_*.json)"]
    R --> E["4. Experiment Log\n(docs/experiments/*.md)"]
Directory / PathPurposeFormat
templates/Executable Decision Policies (choice & score slots, depends_on / ask_if DAGs).json.tmpl
templates/calibration/Public Dataset Calibration & Guardrail Policies (AgentDrift, ChaosNLI, LLM-AggreFact, prompt-injections).json.tmpl
templates/rerank/Listwise & Pointwise Neural Reranking + RAG Security Policies (EXP-10).json.tmpl
benchmarks/*.jsonlEvaluation Datasets (eval_dataset.jsonl, calibration_suite.jsonl, rerank_suite.jsonl, jevbench/jevbench_public.jsonl, banking77_26.jsonl, clinc150_26.jsonl, tn_*.jsonl).jsonl
benchmarks/results_*.jsonImmutable Telemetry Receipts (logprobs, slot probabilities pip_i, Shannon entropy HH, wall latency).json
docs/experiments/Experiment Ledger & Architectural Deep-Dives.md

2. Master Experiment Index (EXP-01 – EXP-43)

Section titled “2. Master Experiment Index (EXP-01 – EXP-43)”
IDExperiment TitlePolicy TemplatesDataset (benchmarks/)CLI CommandPrimary Finding & Telemetry ReceiptStatus
EXP-01Multi-Domain Joint Slot Readout Across 4 Hardware Tierssupport_triage.json.tmpl
code_review.json.tmpl
security_audit.json.tmpl
eval_dataset.jsonl (30 cases, 113 slots)dgem bench93.3% accuracy (bfloat16 2× A100), 86.7% (4-bit Metal), 80.0% at 458.9 ms (Serverless Cloud Run 1× L4). Zero JSON syntax errors across all runs.
Receipts: results_local_metal_slot.json, results_gce_a100_16bit.json, results_cloudrun.json
✅ Completed
EXP-02Contextual Text Normalization: WFST (ecotone) vs. DiffusionGemmatn_semiotics.json.tmpl
tn_audit.json.tmpl
tn_semiotics.jsonl (30 polysemy traps)
tn_challenge_en.jsonl (19 NSWs)
dgem bench-ecotone96.7% accuracy on contextual homographs (St. →\rightarrow Saint vs Street, 1/2 →\rightarrow January second vs one half) where deterministic WFSTs score 50.0%, proving bidirectional context resolves semiotic ambiguity.
Receipt: results_ecotone_comparison.json
✅ Completed
EXP-03High-Cardinality Intent Routing & Out-of-Scope (oos) Detectionbanking77.json.tmpl
clinc150.json.tmpl
(26-option [A-Z] slice)
banking77_26.jsonl (100 items)
clinc150_26.jsonl (100 items, 16% oos)
dgem bench-intents92.0% accuracy on PolyAI/banking77 (H = 0.2518 nats, 485 ms) and 95.0% accuracy on DeepPavlov/clinc150 (H = 0.1459 nats, 562 ms) with 93.8% zero-shot oos recall.
Receipts: results_intents_banking77_cloudrun.json, results_intents_clinc150_cloudrun.json
✅ Completed
EXP-04Public Dataset Calibration, Guardrails & ChaosNLI Epistemic Entropytemplates/calibration/*.json.tmpl (8 policy templates)calibration_suite.jsonl (50 items across 11 public datasets)dgem bench-calibration88.0% overall accuracy (44/50) at 712 ms. 100% accuracy on AgentDrift (7/7), prompt-injections (4/4), LLM-AggreFact (2/2), and MS MARCO (2/2). On ChaosNLI, slot entropy HH scales monotonically by 8.0× (0.0744 nats →\rightarrow 0.5932 nats) with human annotator disagreement.
Receipt: results_calibration_cloudrun.json
✅ Completed
EXP-05Entropy-Gated Escalation Cascade (H~m=Hm/ln⁡∥Vm∥\tilde{H}_m = H_m / \ln\|\mathcal{V}_m\| + Prior Forwarding)templates/calibration/*.json.tmplcalibration_suite.jsonl (50 items)dgem bench-calibration --cascade-from ... --normalize-entropy --cascade-threshold 0.1698.0% cascade accuracy (49/50, +10.0% gain, 100% on ANLI-R3 & 100% on Adversarial + Ambiguous tiers) using Cardinality-Normalized Entropy (H~≥0.16\tilde{H} \ge 0.16) and Pass-1 Slot Prior Forwarding, matching 100% standalone gemini-3.8-flash (98.0%) while saving 66% of frontier LLM calls.
Receipts: results_calibration_cascade_normalized.json, results_calibration_cascade_prior_guided.json, results_calibration_cascade.json
✅ Completed (Analysis)

Part B — Active & Next-Horizon Experiments (EXP-06 – EXP-43)

Section titled “Part B — Active & Next-Horizon Experiments (EXP-06 – EXP-43)”

Detailed architectural specifications, mathematical formulations, and empirical cascade results for EXP-05 through EXP-08 are documented in exp-05-roadmap-cascades-and-dags.md, EXP-10 is documented in exp-10-listwise-diffusion-reranking.md, EXP-11 is documented in exp-11-jevbench-parity.md, EXP-12 is documented in exp-12-decision-index.md, and EXP-13 is documented in exp-13-permutation-invariance.md.

IDExperiment TitleCore HypothesisTarget Datasets & TemplatesTarget CLI Flag / FeatureStatus
EXP-06Decision Models vs. Discriminative Encoder HeadsCompare zero-shot dgemma (Policy-as-Template) against fine-tuned encoder heads (DeBERTa-v3-large, Llama-Guard-3-8B, ModernBERT) across joint multi-slot capability, policy adaptability (0s template edit vs. fine-tuning), and Expected Calibration Error (ECE).calibration_suite.jsonl (AgentDrift, prompt-injections, ChaosNLI)dgem bench-encoders🔬 Planned (Spec)
EXP-07Conditional Policy DAGs (depends_on & ask_if)Multi-stage conditional templates prune irrelevant downstream branches when upstream gate slots resolve negative, cutting slot density and eliminating contradictory sub-slot classifications.templates/secops_conditional_dag.json.tmplNative structured_server.py DAG execution (depends_on, ask_if)🧪 Template Ready (Spec)
EXP-08Multimodal Vision & Document Policy Readout (SigLIP)Because DiffusionGemma inherits Gemma 4’s SigLIP vision encoder (896×896 patches), bidirectional slot readout can classify receipts, UI screenshots, and PDF invoices in a single forward pass (~500 ms).Receipt & UI compliance image suitedgem decide --image <path>🔬 Planned (Spec)
EXP-09Single-Pass Bounding Boxes (re-baselined 2026-10-03)Reads [ymin, xmin, ymax, xmax] as four 21-label slots plus object_present in one pass. Re-baseline (v0.2.0, Vertex G4, 11 boxes ×3, write-up):
- The model localizes: expectation mIoU 0.599 [0.516, 0.680], Acc@0.5 81.8%, against 0.331 for a fixed centre box (paired lift +0.27 [+0.11, +0.40]). It said absent on 30/30 blank images.
- Softmax expectation does not reliably beat argmax: −0.03 on on-grid cases, +0.04 [−0.04, +0.14] off-grid.
- Occluded edges show no entropy rise against their unoccluded twins.
- Per-edge entropy flags wrong edges (AUROC 0.82, 17 wrong edges).
- Boxes are unstable under flips and padding (consistency IoU 0.34–0.53). Reversed digit levels break localization.
The September Cloud Run numbers (+30% sub-bin, 1.37× occlusion) did not beat a fixed box and are withdrawn.
templates/multimodal/bbox_localization.json.tmpl
templates/multimodal/bbox_multi_object_detr.json.tmpl
benchmarks/bbox_suite.jsonl
./scripts/run_exp09_rebaseline.sh
dgem bench-bbox --variants all --repeat 3
runs/20261003-exp09-rebaseline
legacy: results_bbox_cloudrun.json
✅ Re-baselined
EXP-10Listwise Diffusion Canvas Reranking, Softmax Expectation & RAG Poison QuarantineEvaluate 10 candidate passages (doc_01..doc_10) + 2 RAG security/abstention gates (answer_present, poisoned_passage) simultaneously in 1 forward pass (12 slots, ~138 ms effective/passage on Cloud Run 1× L4). Continuous Softmax Expectation (r^i=∑g=03g⋅pi,g\hat{r}_i = \sum_{g=0}^3 g \cdot p_{i,g}) cuts Exact Tie Rate from 70.0% (discrete argmax) to 0.0%, lifting nDCG@10 from 0.8416 to 0.9265 (+8.49 pts) and MRR@10 from 0.7407 to 0.9444 (+20.37 pts), with 100.0% NevIR negation accuracy, +0.7533 FollowIR p-MRR policy steerability, and 100.0% prompt-injection quarantine.templates/rerank/listwise_decision_rerank.json.tmpl
templates/rerank/pointwise_rerank.json.tmpl
benchmarks/rerank_suite.jsonl
dgem bench-rerank
results_rerank_cloudrun.json
✅ Completed (Analysis)
EXP-11JevBench v1.3.1 & v1.4 4-Axis Parity, Harmonic Scoring, Slot Temperature Calibration & Upstream SyncUpgrade dgem with JevBench v1.3.1 & v1.4’s 4-Axis Scorecards (Chance-Corrected Intelligence, 10-Bin ECE + Soft TVD Calibration, Speed with 2×+0.15s load factor adjustment, Cost, and v1.4 Harmonic Mean Composite with 3 gates <50.0<50.0) and Post-Hoc Slot Temperature Scaling (pk(T)=pk1/T/∑pj1/Tp_k(T) = p_k^{1/T} / \sum p_j^{1/T}). On Cloud Run EXP-04, T* = 1.35 cuts 10-bin ECE by 56.2% (0.0745 →\rightarrow 0.0326), lifting Calibration from 82.67 to 88.18 (76.79 Composite). On EXP-05, the Entropy-Gated Cascade scores 70.16 Composite (98.0% raw / 97.17% chance-corrected) vs. standalone gemini-3.8-flash at 62.76 (56% lower cost). Syncs and replays all 231 JevBench public tasks (75.70 v1.3.1 Composite →\rightarrow Rank #1, surpassing #1 Hopper [75.40]; 71.95* v1.4 Harmonic Estimate). Supports --compare-leaderboard against official v1.4.2 rows (Plumb-4B, decider-4b v2, djev, OpenJev).templates/jevbench_generic.json.tmpl
benchmarks/jevbench/jevbench_public.jsonl
benchmarks/jevbench/manifest.lock.json
benchmarks/jevbench/leaderboard_v14.json
dgem bench-jev --sync --check-upstream
dgem bench-jev --compare-leaderboard
results_djev_upstream_calibrated.json
✅ Completed (Analysis)
EXP-12jev-decision-index (apolinario/decision-index) 5-Area Benchmark, Wide-Canvas Adapter & /v1/systemone ProtocolEvaluate dgemma across the 5-Area Decision Index (19 scored panel benchmarks + 3 wide-option benchmarks). Eliminates HTTP 422 capacity rejections (0.0 score penalty on M > 10 slots in ContractNLI/BRIGHT/ToolRet and K > 26 options in API-Bank/BANKING77/CLINC150) via Multi-Slot Canvas Batching + 2-Stage Bracket Tournament Routing (T*=1.25), lifting structural coverage from 72.7% to 100.0% and Headline Decision Index from 76.67 to 98.89 (+22.22 pts, Skill 98.33, ECE 0.0371). Projects to Rank #3 / 49 Overall (#1 Diffusion, 46.90 balanced_skill) as Pure System-1 (0% LLM) and Rank #1 / 49 Overall (53.94 balanced_skill, beating TypeSafe Jev 1.13.0 [51.67]) with EXP-05/11 Entropy-Gated Cascades (#1 / 31 on v0.1 at 56.51 raw).benchmarks/decision_index/panel_suite.jsonl
pkg/decisionindex/engine.go
dgem bench-decision-index --compare-naive
dgem bench-decision-index --serve-systemone :8095
results_decision_index_cloudrun.json
✅ Completed (Analysis)
EXP-13Permutation Sensitivity, Content-Free Null-Prior De-Biasing & O(1)O(1) Dual-Mirror Canvas CalibrationQuantifies how option order distorts single-pass confidence. Content-free probes show a strong Slot-'A' preference (p0=[88.3%,11.7%]p_0 = [88.3\%, 11.7\%] for K=2K=2, [78.3%,8.6%,13.1%][78.3\%, 8.6\%, 13.1\%] for K=3K=3, [49.3%,4.8%,16.3%,29.5%][49.3\%, 4.8\%, 16.3\%, 29.5\%] for K=4K=4). On 16 synthetic items (baseline 16/16 correct): (1) Null-Prior De-Biasing (13B) cuts Brier 0.0173 →\rightarrow 0.0017 but raises cyclic flip rate 12.5% →\rightarrow 25%; (2) Cyclic JSD (13A) is ~156× higher on the 4 ambiguous items, where reordering flips 2/4 answers; (3) Dual-Mirror (13C) reads forward + reversed slots in one pass (124.7 vs 128.8 ms) and flags perm_08 (99.9%, H~=0.007\tilde{H}=0.007, Mirror TVD = 0.258) but misses perm_06 (TVD 0.0006) and worsens Brier (0.0410). See the plain-English summary in Confidence Beyond Shannon (IDC).benchmarks/permutation_suite.jsonl
pkg/permutation/permutation.go
dgem bench-permutation
results_permutation_cloudrun.json
✅ Completed (Analysis)
EXP-14Same-Session IDC Re-run on Vertex AI (versioned runs)Pre-registered follow-ups PROP-01/02/05/10 plus an EXP-13 reproduction, run in one session with versioned receipts. Findings: ±1–2 item noise floor; null-prior helps on the 50-item suite (Brier 0.147 vs 0.175–0.193) but not on JevBench (186 vs 187, Brier worse); the dual-mirror slot id __mirror_rev degraded readings (JevBench 187 → 145; fixed to __rev), and a same-canvas mirror still lowers the forward reading; held-out temperature scaling cuts ECE 24–33% on 231 JevBench items but not on 50 items; entropy cascade reaches 221/231 at 39% escalation. Detailsbenchmarks/calibration_suite.jsonl, benchmarks/jevbench/jevbench_public.jsonl, benchmarks/permutation_suite.jsonlscripts/run_idc_rerun.sh
scripts/analyze_idc.py
benchmarks/runs/20260925-vertex-idc*
✅ Completed
EXP-15Letter Collision in the Dual-Mirror (PROP-11)Same-canvas mirror damage comes from shared letters: on JevBench (231, Vertex G4, 3 baselines 182–189), an identical copy (184) and a digit-labelled reversed slot (182) are within noise, while the letter-labelled reversed slot drops to 154; forward answers change on 67% of same-letter items vs 6% otherwise (p≈1e-19). Detailsbenchmarks/jevbench/jevbench_public.jsonldgem bench-jev --dual-mirror --mirror-mode
scripts/analyze_idc.py collision
benchmarks/runs/20260925-prop11-letter-collision
✅ Completed
EXP-16Slot Names Are Part of the Prompt (PROP-16)Single-slot ids (q1, random, mirror, check) are within the baseline band (183–189) on JevBench; a loaded second-slot id (__mirror_rev, identical options so no letter collision) drops accuracy to 162 (second slot 135) vs 181 for __rev. Style rule: neutral ids in multi-question schemas. Detailsbenchmarks/jevbench/jevbench_public.jsonldgem bench-jev --slot-id
benchmarks/runs/20260926-prop16-slot-names
✅ Completed
EXP-17Separate-Pass Mirror (PROP-12)Forward vs. separately-run reversed pass on JevBench (231, Vertex G4): order disagreement relates to errors beyond hesitation (mean partial Spearman 0.133, CI [0.025, 0.240]), but two forward passes show a similar non-significant value (0.083) and CV AUROC improves by ≤ 0.016 at double the cost. Detailsbenchmarks/jevbench/jevbench_public.jsonldgem bench-jev --flip-options
scripts/analyze_idc.py separate-pass
benchmarks/runs/20260926-prop12-separate-pass
✅ Completed
EXP-18Judge Capabilities With and Without an Autoregressive Autorater (mizan Experiment 07)Gold-scored comparison over 13 human-labelled judge suites (n=100 each) and 650 computation items, rerun on serving image v0.1.0 (2026-09-29) and replicated from 2026-09-26: v0.1.0 shows no regression (67.0 → 67.9%, p=0.23). DiffusionGemma matches gemini-3.8-flash on safety (80 vs 76), faithfulness (81 vs 78) and RewardBench with a mirror read (90 vs 90); trails on toxicity (81 vs 87.9, p=0.065) and LLMBar instruction following (79 vs 94, p=0.0015); MT-Bench expert preference favours Gemini by 5–10 points on both dates. A fixed 35%-hesitation cascade reaches 81/86 on safety/faithfulness with 8–32% escalation; p50 105 ms (G4) vs 3,125 ms. No-model metrics: mizan local = Vertex on exact/tool/trajectory (350/350). Speed/cost: one G4 replica ~83 items/s (0 errors sustained); ~0.02per1kjudgementsfullyutilizedvs0.02 per 1k judgements fully utilized vs 1.06–2.25 (3.8-flash) and ≥$10 (Vertex predefined metrics); live cascade matches the simulation. Detailsmizan judge-eval pack; suites built by mizan scripts/judge-eval/build_suites.py (BeaverTails, ToxicChat, HaluBench, MT-Bench human, RewardBench, HelpSteer2, SummEval)mizan eval compare-engines
mizan scripts/judge-eval/run_all.sh
✅ Completed
EXP-19Prompt Layout, Precision and Joint Reads (wave 2)Pre-registered, development data only, on a temporary G4 canary next to production. (1) Layout: putting the state first and the questions after it (layout: document_first) instead of the questions as the system prompt raised CLINC150-validation accuracy 0.790 → 0.870 (catch-all answers on in-scope requests 21% → 2.5%, out-of-scope recall 1.00 → 0.825) and RAGTruth-train 0.705 → 0.770 (hallucination F1 0.52 → 0.68), with JevBench and wide-option suites unchanged; on typed-decisions train joint reads gained +7.0 points (2 SE 2.7). Now the adapter default. (2) Precision: bf16 weights scored −0.97 points (2 SE 1.42) against NVFP4 with worse ECE, so quantisation doesn’t explain the gap to bf16 harnesses. (3) Joint vs isolated reads: isolated reads cost 5× the latency and gain +6.1 points under the old layout, only +1.6 (n.s.) under document_first.CLINC150 validation, RAGTruth train, typed-decisions train, JevBenchscripts/bench_matrix.py run --tier T1 --target base=<URL> --target doc=<URL>#layout=document_first
benchmarks/runs/20261002-w2-canary-t1, benchmarks/runs/20261002-w2-image-t2
✅ Completed
EXP-20Production Context LengthPre-registered, identical G4 canaries at 4,096 / 8,192 / 32,768 tokens, v0.2.0. Short-prompt T1 accuracy identical at all three; 8k latency within tolerance; a 32k replica died once during the T1 latency suite (not reproduced on a fresh replica, container logs were off). On a long-prompt slice built from dev data (79 items × 4 lengths) 4k answers 79/316, 8k 150/316, 32k 316/316; accuracy where both answer is identical. 32k sustained ~24k-token prompts at 8 and 16 concurrent with 0 errors. Decision by the rule: 8k becomes the deploy default; 32k pending a repeat with logging on.JevBench long_policy, RAGTruth train (padded with unrelated documents)scripts/bench_matrix.py run --tier T1 with three targets
benchmarks/runs/20261003-exp20-context
✅ Completed
EXP-21Attributing Two Decision Index Drops (layout vs yes/no descriptions)ForecastBench and PhishNChips dropped in the v0.2.0 Decision Index run. On dev stand-ins (no index rows): 320 single dataset-source forecasting questions (Brier 0.2277 vs 0.2268, schema_first vs document_first, 2 SE 0.011), 182 market questions (+0.0051, 2 SE 0.0065) and 200 phishing emails in the index’s question schema (all four layout × description arms within ±1 point). Neither factor explains the drops; combination forecasting questions are untested.ForecastBench question sets 2025-03-16 and 2025-05-25, ealvaradob/phishing-datasetbenchmarks/runs/20261003-exp21-attribution✅ Completed
EXP-22Validating Image Readouts (PROP-18 phases 2–4)Write-up. Gemini 3.x as reference and judge: 3.8/3.7-flash localize the EXP-09 fixtures at mIoU 0.89/0.88 and stay consistent under flips and padding (0.79–0.96). As box judges they catch 99–100% of edges more than 5 pts off, with about 1.5-pt resolution. Boxes on harder data: on a 230-item generated sweep, dgem scores mIoU 0.20 (centre hit 43%) vs Gemini 0.78 (87%), and says “present” for 17/40 absent targets. On real images: RefCOCO centre hit 75% vs 90%; ScreenSpot 12% vs 93%. Categorical questions in one pass (~0.3 s): lift over the majority baseline is grid cell +0.52, relation +0.42, quality +0.40, count +0.25, with hesitation AUROC 0.61–0.80. The occlusion question fails (−0.30). A hesitation-gated Gemini cascade escalating 10–30% of answers recovers most of the gap (offline).templates/multimodal/vision_aspects.json.tmpl
benchmarks/bbox_sweep.jsonl
benchmarks/bbox_real.jsonl
dgem bench-bbox --engine gemini|predictions
dgem bench-bbox-judge
dgem bench-vision
scripts/run_prop18_phase{2,3,4}.sh, scripts/run_detectors_gce.sh
runs/20261003-prop18-*
✅ Completed
EXP-23dgem vs Strands Decider 2B (model comparison)Lab head-to-head (E2) with an open 1.9B decision model on the same GPU type, 3 runs: dgem leads on JevBench (194/194/195 vs 169/169/169, p = 3.5e-4) and on tasks unrelated to Strands’ training (72.5% vs 62.7%, n = 2,346) but ties on tasks it was trained on (85.2% vs 85.9%, n = 142). Strands is faster below ~1,700 input tokens (34 vs 54 ms server p50) and deterministic; dgem has 3–5× its throughput. Found a dgem defect: two yes/no questions with opposite answers in one request collapse to one label (gate suite 58% vs 86%; 100 of 102 when asked separately), now PROP-19. Strands’ published JevBench predictions reproduced on 229 of 231 tasks. DetailsJevBench, calibration suite, intents, tool-call gate (new), typed-decisions, MASSIVE, XNLI, option orderscripts/bench_matrix.py --matrix benchmarks/matrix/matrix_v2.json run --tier TC --competitor
benchmarks/runs/20261003-compare-strands-v19
✅ Completed
EXP-24dgem-Guided Gemini Boxes and MasksWrite-up. dgem first answers presence and grid cell in one pass (0.19 s), then gemini-3.8-flash runs. On 228 RefCOCO/ScreenSpot positives and 204 absent targets:
- Skip: skipping Gemini when dgem confidently says absent saves 35% of calls and loses 1.3% of positives.
- Hint: dgem’s grid-cell hint plus LOW thinking scores mIoU 0.654 against 0.639 for Gemini alone at default thinking, at 2.1 s instead of 3.9 s p50 and 73% fewer thought tokens.
- Crop: cropping to dgem’s cell does not help.
- Masks: SAM from Gemini’s box scores mask IoU 0.73, against 0.64 for Gemini’s polygon. Native PNG masks are impractical (72 s).
benchmarks/bbox_real_aspects.jsonl
benchmarks/bbox_real_masks.jsonl
dgem bench-guided
scripts/run_exp24_guided.sh, scripts/analyze_guided.py
runs/20261003-exp24-guided
✅ Completed
EXP-25dgem as a Documentation Reviewer (Diátaxis type, house style, claim evidence)Pre-registration and development results. On 175 development sections (25 clean sections plus single injected problems), raw dgem ranks problem sections well (AUROC 0.96–1.00 on 4 of 6 rules) but over-flags at argmax (0.81 mean accuracy vs docstats 0.92 on 4 rules and gemini-3.8-flash 0.96); per-rule thresholds are frozen from 5-fold CV, and a 0.35-hesitation cascade reaches 0.945 with 17% handed to Gemini (in-sample). The human-labelled frozen test (150 sections) decides.templates/docs/*.json.tmpl, benchmarks/docs_eval/scripts/docs_eval/
benchmarks/runs/20261003-exp25-dev
🧪 Running
EXP-26Guided Boxes and Categorical Image Questions on Domain Images (#76)Write-up. Pre-registered; 400 positives + 373 negatives over mobile UI, web UI, DocLayNet pages and synthetic PCBs; gemini-3.8-flash and gemini-3.7-flash.
- Guided boxes (R1): fail on all domains and both models. LOW thinking gives the latency gain (30–45%); dgem’s grid-cell hint is neutral (−0.03 to +0.01), and dgem’s cell is right on only 36–61%.
- Skip absent (R2): passes only on mobile UI (22% saved). PCB loses 15% of defects.
- Categorical questions (R3): web-UI presence is dgem-alone (0.90, AUROC 0.85); grid cell is cascade on mobile UI, documents and PCB; relations are unsupported everywhere.
- 3.7 vs 3.8: 3.7 matches 3.8 on boxes.
benchmarks/domain_images.jsonlscripts/run_exp26_domains.sh, scripts/exp26_decide.py
runs/20261004-exp26-domains
✅ Completed
EXP-40Contact-Sheet Visual Verification, Co-Denoised Evidence Slot (PROP-08, PROP-37) & Pre-Gated Prior Fusion (PROP-09)Pre-registered (PROP-37; PR #190). Opt-in prior_logits fusion (--prior-weight, --hesitation-gate, --prior-gate-mode) and same-canvas <id>_evidence slot (evidence_prompt + evidence_criteria). On the 3-run live validation suite, pre-gating raw hesitation passes adversarial-prior safety (ΔAUROC −0.014, equal to uniform control; confident errors −0.5 pt); the confident gate (H~raw<0.16\tilde{H}_{\text{raw}} < 0.16) shows noise-level base-rate lift (+0.9 ± 0.5 pt), motivating hesitation-side gating (--prior-gate-mode hesitant).templates/multimodal/contact_sheet_verify.json.tmpl
pkg/decisionindex/engine.go
dgem decide -t multimodal/contact_sheet_verify
PriorLogits, PriorWeight, PriorGateMode, EvidencePrompt in pkg/decisionindex
🧪 Running
EXP-41Two-Stage Embedding / Prior Shortlist & Pairwise Diff Routing for Wide Choices (PROP-24)Pre-registered (PROP-24; PR #191). Opt-in stage-1 ShortlistFunc (PriorLogitsShortlist via --shortlist-topk with automatic bracket fallback when prior_logits is absent, generic LexicalOverlapShortlist, catch-all preservation, and --shortlist-contrastive). With an embedding ranking in prior_logits, matches bracket accuracy (−1.4 ± 2.1 points at M = 15) at 1 pass instead of 2 (p50 ~155 ms vs 330–410 ms) on K = 30–151; generic lexical/BM25 shortlists lose 11–24 points; H24 not met.pkg/decisionindex/shortlist.go
pkg/decisionindex/engine.go
ShortlistFunc, ShortlistTopK, ShortlistContrastive in pkg/decisionindex
dgem systemone serve --shortlist-topk
✅ Completed
EXP-42Set-of-Marks Discrete Visual UI Next-Hop Navigator (PROP-38)Pre-registered (PROP-38). Replaces EXP-09/EXP-22 21-bin coordinate regression (12% ScreenSpot centre hit) with Set-of-Marks discrete [A..F] candidate mark selection (next_target_mark, element_state, loop_or_error_detected, goal_progress_score in 1 pass) + hesitation-gated gemini-3.8-flash escalation (H~raw≥0.16\tilde{H}_{\text{raw}} \ge 0.16).templates/multimodal/ui_pathfinder_som.json.tmpl
benchmarks/ui_pathfinder_suite.jsonl
dgem bench-ui-pathfinder🧪 Running
EXP-43Multimodal Entity Resolution (PROP-39), Sliding-Window Live Checklist & Multi-Agent Swarm Arbitration (PROP-40)Pre-registered (PROP-39, PROP-40). Evaluates: (1) 4-slot single-pass catalog entity resolution (entity_relation, pack_quantity_match, visual_evidence_cue, merge_action) with transitive triangle-consistency checking (P(A≡B),P(B≡C),P(A≡C)P(A \equiv B), P(B \equiv C), P(A \equiv C)); (2) 8-slot sliding-window transcript + keyframe checklist verification; and (3) 8-slot concurrent 4-agent file-lock and action-tree collision arbitration in one ∼57 ms\sim 57\text{ ms} pass.templates/multimodal/entity_resolution_dedup.json.tmpl
templates/live_checklist_verify.json.tmpl
templates/swarm_lock_arbiter.json.tmpl
dgem bench-multimodal-dedup
dgem bench-live-checklist
dgem bench-swarm-arbiter
🧪 Running

3. Synthesis of Completed Findings (EXP-01 – EXP-04)

Section titled “3. Synthesis of Completed Findings (EXP-01 – EXP-04)”

3.1 Why DiffusionGemma is a “Decision Model” (EXP-01 & EXP-04)

Section titled “3.1 Why DiffusionGemma is a “Decision Model” (EXP-01 & EXP-04)”

Across 280+ evaluated cases (EXP-01 through EXP-04), DiffusionGemma demonstrates three properties that distinguish a Decision Model from both autoregressive generative LLMs and discriminative encoder classifiers:

  1. Zero-Shot Policy-as-Template (0s Policy Iteration): Adding a new governance domain (AgentDrift behavioral drift, LLM-AggreFact RAG grounding, deepset/prompt-injections) required zero gradient updates, zero labeled training splits, and zero output regex parsers. Writing a .json.tmpl file immediately turned the 9B model into a 100%-accurate classifier across those four benchmarks (15/15 combined in EXP-04).
  2. Joint Multi-Slot Co-Adaptation in O(1)O(1) Forward Pass: In EXP-01 (support_triage, code_review, security_audit) and EXP-04 (AgentDrift), a single forward pass (458.9 ms on 1× L4) evaluates 3 to 5 orthogonal decision dimensions simultaneously (drift_detected + drift_severity + remediation_action). Because the [MASK] canvas is bidirectional, the severity and remediation slots attend directly to the detection slot in the same pass.
  3. Intrinsic Epistemic Calibration (EXP-04 ChaosNLI 8.0× Entropy Multiplier): Traditional neural classifiers suffer from overconfidence on out-of-distribution or genuinely ambiguous inputs. In EXP-04, evaluating ChaosNLI (where 100 human annotators rated each premise/hypothesis pair) proved that DiffusionGemma’s restricted-softmax Shannon entropy HH scales monotonically with human disagreement:
    • High human consensus (low-entropy): 100.0% accuracy, H=0.0744 natsH = 0.0744\text{ nats} (1.0× baseline)
    • Moderate split (ambiguous): H=0.4061 natsH = 0.4061\text{ nats} (5.5× entropy increase)
    • Near-uniform 3-way human split (high-entropy): H=0.5932 natsH = 0.5932\text{ nats} (8.0× entropy increase)
    • Adversarial multi-hop reasoning (ANLI-R3): When single-pass think: 0 readout fails (0/3), slot entropy automatically spikes to H=0.4104 natsH = 0.4104\text{ nats} (5.5×), providing an unmistakable mathematical trigger (H>0.30 natsH > 0.30\text{ nats}) to escalate to a reasoning pass (EXP-05).