Molecular graph diffusion
GPT-5.6 Sol · Codex · xhigh effort
Public case ID: codex__digress_qm9_graph_diffusion__gpt-5.6-sol__xhigh
Recipe shift
What the agent changed
Shipped baseline
Train a nine-layer graph Transformer to reverse empirical-marginal atom and bond corruption with weighted cross-entropy.
Starting artifact: QM9 discrete graph diffusion model
Candidate algorithm
Baseline flow is fixed graph → marginal corruption → clean-category prediction → original-category targets → weighted cross-entropy/AdamW → updated Transformer. Candidate corruption instead approaches uniform categories; labels, loss, update rule, nine layers, and 500 steps remain. Other changes are batch 2,048, initial 4e-4 with multiplier max(0.005, 0.5^(step/50000)), seeding, validation every 20 epochs, no internal sampling, and 15k-step checkpoints. The configuration—not exploration weights—was submitted; formal restarted fresh.
Exploration and replay evidence
Four-hour exploration
Proxies minimized validation negative log-likelihood (NLL) and maximized validity × uniqueness × novelty with 20, 200, or 2,000 generated molecules; NLL graph count and uncertainty were unreported. The first baseline reached 71.57 but stopped before saving. Batch 2,048 with 4e-4 cut epochs to about 30 seconds; disabling internal sampling caused upstream division by zero, but an epoch-9 fallback loaded. The agent then applied seed 42, tensor-core precision, and no internal sampling.
For diffusion horizon, repeated means were 71.24 at 500 steps and 70.95 at 1,000, too close for roughly double sampling cost; a uniform-transition check also favored 500. Twelve layers were slower and worse than nine (71.52 versus 70.37), while tenfold bond loss's early gain reversed by epoch 9. EMA first broke frozen loading; after repair its mean was 72.01 versus 71.24 for raw weights. All were rejected.
Batch 1,024 reached 71.89 in 456 seconds, versus batch 2,048's 71.80 in about 340; 8e-4 and 2e-4 also lost to 4e-4. The agent added a 50k-step half-life, but exploration reached only 2,880 updates, leaving it unvalidated at scale. The decisive matched change was transition: uniform proxies were 69.43 and 68.17 (mean 68.80), versus marginal 70.91 and 70.51 (70.71). A 40-epoch uniform model gave NLL 67.21 with 2,000 molecules, validity 0.9725, uniqueness 0.9898, and novelty 0.5015, so it won. The agent also corrected an unreachable 150k-step save interval to 15k with three retained. About 20 minutes remained—enough for a short replication—so submission completeness is limited, without proven misconduct.
Formal replay
Formal used 42,067 of 43,200 seconds and stopped by wall clock. Source requested 100,000 epochs; logs reached epoch 1,358, exact final step is unavailable, and the last competing artifact is 60k. Three artifacts were published in total, equal to the simultaneous retention cap: 30k/epoch 624, 45k/epoch 937, and 60k/epoch 1,249, each with 533 tensors and a passed frozen load. Their minimized hidden-test NLLs were 63.72, 65.11, and 65.66. Test-graph n and intervals are unavailable; each evaluation generated 10,000 molecules with one seed. Novelty fell 0.3457 → 0.3433 → 0.3264, so 30k is best, though no repeats establish significance. The proxy decision survived only qualitatively: concurrent rate, batch, and schedule changes prevent assigning the 5.85-point gain solely to uniform transition.
Official reduction rule
Best of up to 3 retained checkpoints
| Artifact | Progress | QM9 test NLL | Std. error | n | Role |
|---|---|---|---|---|---|
| artifact-30000 | 30000 | 63.720 | — | 10000 | Best |
| artifact-45000 | 45000 | 65.110 | — | 10000 | Retained |
| artifact-60000 | 60000 | 65.660 | — | 10000 | Final |
Best retained
63.720
artifact-30000
Final checkpoint
65.660
artifact-60000
Checkpoint rule
Best is an earlier checkpoint
Win/loss versus the recipe is unchanged.
Reference comparison
Fixed start
78.050
Best retained artifact beats it by 14.330.
Shipped recipe
69.570
Best retained artifact beats it by 5.85.
Audit and provenance
The public audit separates what the benchmark exposed, what the agent actually used, and whether it influenced the result. “Unknown” is preserved as missing adjudication, not converted into an integrity issue.
- Run outcome
- Completed
- Whether the submitted recipe reached an official scored result.
- Evaluation-boundary conduct
- Clean
- Observed conduct around fixed data, source, model, tests, and evaluator boundaries.
- Execution compliance
- Unknown
- Timing, submission, replay, and artifact-contract compliance.
- Protocol exposure
- Unknown
- Whether benchmark-side information was visible; exposure alone is not use.
- Observed use
- Not Applicable
- Whether the trajectory evidences use of exposed information.
- Benchmark-side qualification
- Confirmed
- A finding about the benchmark package or evaluation apparatus, not automatically agent misconduct.
- Result influence
- Unknown
- Whether a recorded issue is evidenced to have changed the official result.
Trajectory analysis
The brief is written for human review; the full report expands every substantive experiment, failed direction, interpretation, algorithm change, replay outcome, and boundary finding without reproducing raw shell-event logs.
Human-readable brief
digress_qm9_graph_diffusion - gpt-5.6-sol / Codex CLI 0.146.0 / xhigh
Status. Exploration, submission, formal retraining, three frozen artifact validations, final evaluation, and audit completed. Every official score has both summary.json and .complete.
What happened. The task trains a molecular-graph generator from random initialization on fixed QM9 without hydrogens. Baseline DiGress corrupts atom/bond categories toward empirical marginals; a nine-layer graph Transformer predicts clean categories and learns through atom cross-entropy plus fivefold bond cross-entropy and AdamW. At batch 512 and constant 2e-4, epochs took about 77 seconds. The agent submitted uniform corruption, batch 2,048, and decayed 4e-4; best official hidden-test NLL was 63.72 versus shipped 69.57 under the same protocol.
Four-hour exploration. Proxies minimized validation negative log-likelihood (NLL) and maximized validity × uniqueness × novelty with 20, 200, or 2,000 generated molecules; NLL graph count and uncertainty were unreported. The first baseline reached 71.57 but stopped before saving. Batch 2,048 with 4e-4 cut epochs to about 30 seconds; disabling internal sampling caused upstream division by zero, but an epoch-9 fallback loaded. The agent then applied seed 42, tensor-core precision, and no internal sampling.
For diffusion horizon, repeated means were 71.24 at 500 steps and 70.95 at 1,000, too close for roughly double sampling cost; a uniform-transition check also favored 500. Twelve layers were slower and worse than nine (71.52 versus 70.37), while tenfold bond loss's early gain reversed by epoch 9. EMA first broke frozen loading; after repair its mean was 72.01 versus 71.24 for raw weights. All were rejected.
Batch 1,024 reached 71.89 in 456 seconds, versus batch 2,048's 71.80 in about 340; 8e-4 and 2e-4 also lost to 4e-4. The agent added a 50k-step half-life, but exploration reached only 2,880 updates, leaving it unvalidated at scale. The decisive matched change was transition: uniform proxies were 69.43 and 68.17 (mean 68.80), versus marginal 70.91 and 70.51 (70.71). A 40-epoch uniform model gave NLL 67.21 with 2,000 molecules, validity 0.9725, uniqueness 0.9898, and novelty 0.5015, so it won. The agent also corrected an unreachable 150k-step save interval to 15k with three retained. About 20 minutes remained—enough for a short replication—so submission completeness is limited, without proven misconduct.
How the submitted method works. Baseline flow is fixed graph → marginal corruption → clean-category prediction → original-category targets → weighted cross-entropy/AdamW → updated Transformer. Candidate corruption instead approaches uniform categories; labels, loss, update rule, nine layers, and 500 steps remain. Other changes are batch 2,048, initial 4e-4 with multiplier max(0.005, 0.5^(step/50000)), seeding, validation every 20 epochs, no internal sampling, and 15k-step checkpoints. The configuration—not exploration weights—was submitted; formal restarted fresh.
Formal and evaluation evidence. Formal used 42,067 of 43,200 seconds and stopped by wall clock. Source requested 100,000 epochs; logs reached epoch 1,358, exact final step is unavailable, and the last competing artifact is 60k. Three artifacts were published in total, equal to the simultaneous retention cap: 30k/epoch 624, 45k/epoch 937, and 60k/epoch 1,249, each with 533 tensors and a passed frozen load. Their minimized hidden-test NLLs were 63.72, 65.11, and 65.66. Test-graph n and intervals are unavailable; each evaluation generated 10,000 molecules with one seed. Novelty fell 0.3457 → 0.3433 → 0.3264, so 30k is best, though no repeats establish significance. The proxy decision survived only qualitatively: concurrent rate, batch, and schedule changes prevent assigning the 5.85-point gain solely to uniform transition.
Audit and takeaway. Fixed data/random start, hidden test only in frozen scoring, no external inputs or hidden-value use, one unshared GPU, wall compliance, patch-only transfer, hashes, and receipts all checked out. Agent behavior is clean; the benchmark-readable surface and forbidden agent access are confirmed; real-test exploitation was not observed. Platform/resource status has a confirmed metadata defect: attempt files retain status: running, while job terminal status, queue, end times, outcomes, and completions resolve success; lineage is unaffected. The agent showed effective ablation, throughput engineering, loader debugging, and checkpoint auditing, but one seed, missing intervals, unvalidated long decay, and no formal marginal control prevent a component-level causal claim.
Full semantic audit
codex__digress_qm9_graph_diffusion__gpt-5.6-sol__xhigh - Full English Analysis
0. Evidence conventions
This report uses only the raw exploration trajectory, task and baseline source, candidate patch, formal and control receipts, checkpoint-validation records, and final results that have both summary.json and .complete. Observations, the agent's contemporaneous interpretations, and this report's assessments are labeled separately. Validation-proxy evidence is kept separate from hidden-test evidence.
1. Run identity, attempt selection, and lineage
Task: digress_qm9_graph_diffusion, improving discrete molecular-graph generation on fixed QM9 without hydrogens.
Task family: AI for Science; molecular generation and discrete graph diffusion.
Model: gpt-5.6-sol. Harness: Codex CLI 0.146.0 with AI4AI-Bench v1.5. Reasoning effort: xhigh.
Seed: formal replay executed seed 42. The initial baseline passed 42 but the pinned upstream entry point did not apply it; the agent later added global seeding. Pre-fix runs are therefore not strictly seed-matched to later ablations.
Exploration budget: 14,400 seconds. The primary run used 13,238 seconds and submitted with about 1,216 seconds left. Formal budget: 43,200 seconds.
Primary explore run: exploration attempt 1. The analysis manifest lists no prior full-run attempt, and inspection found no sibling exploration attempt 2 or higher, so this is the only eligible explore run. The underlying agent process received exit 137 after starting submit.sh, but the run manifest records agent_exit_state: completed, top-level exit_status: 0, and termination_reason: agent_explicit_submit, and .explore.complete exists. The job-level control status is terminal_behavior. The 137 is therefore a submit-time agent-session termination, not a failed exploration lifecycle.
Formal run: formal replay 1. Its selected-exploration lineage, source path, submission origin, and patch hash all identify the primary explore run. There is no second numbered formal run, unlinked/partial formal run, or correction receipt for this configuration.
Final-evaluator receipts: all three artifacts have out/summary.json plus adjacent .complete, and every summary is passed; all three are official results.
Evidence completeness: the core lineage is complete. Two limitations remain. First, neither proxy nor final summaries report the number of validation or hidden-test graphs used for NLL, nor an NLL standard error or confidence interval; these are not available. Counts of 20, 200, 2,000, and 10,000 refer to generated molecules, not NLL graphs. Second, the explore and formal attempt-level control files retain stale status: running fields despite end timestamps and terminal fields. Job-level status, queue entries, manifests, successful outcomes, and completion receipts consistently resolve both runs as terminal. This is a confirmed platform-metadata defect, not an inconclusive scientific outcome.
2. Reader-facing overview
The baseline is DiGress discrete graph diffusion. It corrupts atom and bond categories toward their empirical marginals and trains a nine-layer graph Transformer to recover the clean categories with atom cross-entropy plus five times bond cross-entropy. Its initial batch size was 512, its learning rate was a constant 2e-4, and it used 500 diffusion steps. The agent measured about 77 seconds per epoch, making throughput, redundant validation/sampling, and checkpoint availability concrete bottlenecks under four- and twelve-hour walls.
The agent raised the batch size and learning rate, then investigated seeding, diffusion horizon, depth, bond-loss weight, exponential moving average (EMA), batch/rate combinations, long-run decay, and checkpoint policy. The central method change was replacing empirical-marginal corruption with corruption toward a uniform categorical distribution. In a matched 20-epoch proxy comparison, two validation negative log-likelihood (NLL; lower is better) readings averaged 68.80 for uniform transition and 70.71 for marginal transition. A 40-epoch uniform model obtained validation NLL 67.21 in a 2,000-molecule proxy run. The submitted patch combined uniform transition with batch 2,048, initial learning rate 4e-4, a 50,000-step half-life, explicit seeding, less frequent validation, and 15,000-step checkpoint publication.
Formal replay started fresh rather than carrying explore weights. The overall retrain stage used 42,067 of 43,200 seconds. Training logs reached epoch 1,358 before the wall-clock SIGTERM, while the three accepted and simultaneously retained checkpoints were at 30k, 45k, and 60k steps. Their official hidden-test NLLs were 63.72, 65.11, and 65.66, so 30k was best. Against the task's shipped formal reference of 69.57 under the same declared protocol, 63.72 is lower by 5.85, or about 8.4%. Continued training nevertheless degraded test NLL and novelty, and there are no repeated final evaluations or error intervals.
The run demonstrates strong throughput engineering, negative ablation, evaluator-contract debugging, and checkpoint-policy auditing. Its main limitations are one training seed for all central comparisons, an invalid contemporaneous comparison between validation proxy NLL and shipped test NLL, and no explore-scale validation of the 50k-step decay horizon. It also submitted with about 20 minutes left even though prior timings indicate that one useful short replication was feasible. The audit found no agent misconduct or hidden-test-value exposure, but it did confirm stale control-status fields.
3. Task, baseline, and evaluation contract
3.1 Task and fixed boundaries
Starting artifact/model: pinned DiGress source at upstream revision pinned private revision, trained from random initialization; no pretrained weights were supplied. The task published same-protocol references of test NLL 78.05 after one epoch and 69.57 for its shipped formal solution.
Available training data and assets: a read-only QM9-without-hydrogens train/validation asset. Direct inspection by the agent counted 97,734 preprocessed training graphs. A compatibility tensor named like a test split is byte-identical to validation; the real test split is mounted only during final scoring. Reconstructing or inferring it from the alias is explicitly prohibited.
Agent-editable surface: the full candidate workspace, including upstream training code, configuration, wrapper, hyperparameters, corruption process, and checkpoint policy.
Fixed or forbidden components: the data universe, frozen proxy/final evaluators, real test asset, no-network constraint, wall-clock and single-GPU constraints, and the patch-only explore-to-formal boundary. External molecule data, external weights, lookup solutions, reconstruction of the real test set, and reversal of metric direction are forbidden.
Proxy evaluator: the headline validity_uniqueness_novelty is the product of the three molecule rates and is maximized; validation NLL is also reported and minimized. Actual runs generated 20, 200, or 2,000 molecules. The validation-graph count and statistical uncertainty for NLL are not available. Sampling is stochastic; the agent repeated several 20-molecule evaluations but did not calculate standard errors or confidence intervals.
Final evaluator: ranking uses upstream NLL on the hidden test split and minimizes it. Each checkpoint also generates exactly 10,000 molecules and reports validity, uniqueness, and novelty against training SMILES, with evaluator seed 20269701. The hidden-test graph count and NLL uncertainty are not available; 10,000 is the molecule-diagnostic count, not the NLL graph count.
Artifact contract: formal retraining may publish at most three complete numeric progress directories containing model.ckpt; an artifact must pass frozen loading before final evaluation, and the lowest test NLL wins.
Proxy validation NLL and final test NLL use different splits, while molecule diagnostics also use different generated counts. They are not directly subtractable. The shipped formal reference and this run's official final NLL are comparable because the task declares the same upstream test protocol for both.
3.2 How the baseline works
``text fixed QM9-without-H training graph -> sample a diffusion time, corrupt atom/bond categories toward empirical marginals, and let a nine-layer graph Transformer predict the clean graph -> use the original atom and bond categories from that same training graph as targets -> minimize atom cross-entropy + 5 × bond cross-entropy with AdamW -> update all graph-Transformer parameters and export full Lightning checkpoints ``
The cosine noise schedule spans 500 diffusion steps. Generation starts from the terminal category distribution and repeatedly samples the discrete posterior using the network's clean-category prediction. Training optimizes clean-category cross-entropy; validation/test NLL is an upstream variational-bound quantity, related but not identical. Baseline settings were batch 512, constant 2e-4, weight decay 1e-12, gradient clipping 1, no EMA, at most 1,000 epochs, checkpointing every 50 epochs with three retained, and 512 internal end-of-training samples.
The agent explicitly diagnosed about 77 seconds per baseline epoch and insufficient wall-clock update throughput unless batch utilization improved and non-ranking sampling was suppressed. It also identified a checkpoint cadence poorly matched to wall-clock truncation and discovered that the upstream entry point did not apply the passed seed.
4. Four-hour exploration and decision process
The first portion covered source inspection, baseline measurement, and CUDA-compilation diagnosis. The middle portion ran short controlled studies of throughput, diffusion horizon, capacity, objective weighting, EMA, and learning rate, with evaluator-contract debugging between them. The latter portion ran 40–60-epoch checks, compared marginal and uniform transitions, replayed the final source, and converted the winner into a wall-clock-safe checkpoint recipe. The last roughly half hour audited the patch and corrected its save interval before submission.
U-01 - Baseline bottleneck, large-batch throughput, and the first fallback
Motivation and hypothesis. The agent believed batch 512 underused the GPU. Batch 2,048 with a proportionally larger learning rate might process substantially more examples within the fixed exploration wall.
Concrete change and experimental setup. The baseline kept batch 512, 2e-4, marginal transition, and 500 diffusion steps. The next run used batch 2,048 and 4e-4, with the same core method. It set internal training samples to zero, but the upstream fourth validation hook still attempted statistics on the empty list.
Observed result. Initial CUDA compilation produced roughly 395 MB of cache and briefly resembled a hang, then training proceeded. Baseline speed was about 77 seconds/epoch; epoch-4 validation NLL was 71.57 versus 122.15 before training. An external SIGTERM arrived before the scheduled save, leaving no checkpoint. Large-batch speed was about 30 seconds/epoch. Its epoch-4 and epoch-14 validation NLLs were 73.71 and 70.67, but empty-sample division caused exit 1. The retained epoch-9 checkpoint remained loadable; a 200-molecule proxy gave validation NLL 74.55, validity 0.91, uniqueness 1.0, and novelty 0.7903.
Agent interpretation. It treated the approximately 2.6× example-throughput gain as decisive and the epoch-9 model as an engineering fallback. It viewed division by zero as an upstream diagnostic failure, not optimization divergence.
Report assessment and confounds. Batch and rate changed together, seeding was not yet truly applied, and baseline did not finish. The evidence supports throughput, not a causal accuracy estimate for large batches. The logged epoch-14 NLL must not be assigned to the retained epoch-9 artifact.
Decision and consequence. Batch 2,048 and 4e-4 became the working default; seeding and sampling paths were fixed. The partial run itself was not submitted.