PI logo

Does planning help a model design a molecule?

A concluded research line on emergent discrete planning tokens: three variants, five regimes, and a no-plan baseline that was never beaten, with each figure traced to its source.

PI Project · R&D notes/ Machine-native reasoning/ Note 3 · the molecular test· Note 1 · method & result· Note 2 · the failures

§01 Setup

A design task, and the control that decides it

Notes 1 and 2 study a discrete latent channel in a toy language and arithmetic setting, where the question is whether the channel carries the computation at all. This note reports a separate, concluded line that takes the same mechanism to a task with an external yardstick: controllable molecular generation. The model receives a property objective, emits a short sequence of discrete planning codes it invents during training, and renders a molecule from that plan.

Whether the plan earns its place is one comparison. Against the same decoder conditioned on the objective directly, with no bottleneck at all and the same step budget, does inserting the plan buy any additional control? Three variants share the pipeline and differ only in what sits between the objective and the decoder: nothing (direct), a discrete plan (the hypothesis), or a matched continuous Gaussian latent. The discrete plan comes from vector quantisation, VQ from here on: the model's internal state is snapped to its nearest entry in a learned codebook, so what reaches the decoder is a short sequence of integers rather than a continuous vector.

The three variants · only the middle block differs
direct · no bottleneck
objective no bottleneck decoder molecule

the decoder reads the objective itself

discrete · VQ plan
objective 8-slot plan decoder molecule

8 integers drawn from a learned codebook of 256 entries

continuous · Gaussian
objective Gaussian latent decoder molecule

a continuous vector, matched to the plan's capacity

same decoder · same 16k-step budget · one shared evaluation path

Molecules are decoded as SELFIES, a string encoding of molecular graphs in which every well-formed string decodes to a chemically valid molecule by construction, so a gap between variants cannot come from broken chemistry. Training and evaluation use ZINC-250k, a public benchmark subset of about 249,000 drug-like compounds drawn from the ZINC compound library. Two properties are steered: QED, a bounded 0 to 1 composite drug-likeness score, and penalized logP, an unbounded, heavy-tailed lipophilicity score.

The control metric is the steering range. Over a grid of property targets the model is asked for each one in turn, and the range is the spread between the highest and the lowest achieved median property. A model that can be moved from one end of the grid to the other has a wide range; a model whose outputs barely respond has a narrow one. Reported alongside it: the correlation between requested and achieved property, and the success lift over an unconditional base. One shared evaluation path scores every variant.

SELFIES · ZINC compound library

Line / run
denovo / h1 · h3
Architecture
VQ sequence model, d=384 · 4+4 layers · 21.5M params
Plan
8 slots · hard VQ, 256 codes · 64-d
Data
ZINC-250k · SELFIES, 111-token vocabulary
Training budget
two-phase · 10k + 6k steps · one 16 GB GPU
Variants
direct · discrete · continuous
Record
outputs/*_aggregate.json · 2026-07
Status
Concluded · negative, with one transferable finding
§02 · The comparison · 1/4

Two variants, and a gap that reads as support

The comparison starts with two arms. Over three seeds, the discrete plan steers QED across a range of 0.311 ± 0.022; the matched continuous Gaussian latent manages 0.054 ± 0.013. That is a factor of 5.8, with per-seed values that do not overlap. Read on its own, it is a result in favour of discrete planning codes.

§02 · The comparison · 2/4

The arm that changes the reading

The third arm is the same decoder conditioned on the objective directly: no bottleneck, no plan, the same 16k-step budget. It scores 0.358 ± 0.030, above the discrete plan rather than below it, and the per-seed values listed beside it overlap with the plan's. Inserting the plan buys no control over conditioning the decoder directly.

§02 · The comparison · 3/4

Two ratios, not one

With three arms the gap has to be quoted twice. Discrete over continuous is 5.8×, and direct over continuous is 6.6×. The larger of the two belongs to the variant with no bottleneck at all, which is what fixes the reading: the gap measures something about the continuous bottleneck rather than a benefit of planning.

Success lift over an unconditional base: +12.1% direct, +8.8% discrete, +2.5% continuous. Target-tracking correlation 0.988, 0.963 and 0.887. Three seeds each, best decoding temperature per seed.

§02 · The comparison · 4/4

What the comparison licenses

On QED the plan is neither inert nor helpful: it matches direct conditioning within seed noise. The competence gates were cleared before any of this was scored, so the statement is about control and not about degraded generation. Across the variants, validity is 100%, uniqueness 99%, novelty 100% and internal diversity 0.87.

§03 Where a plan should have won

Three regimes chosen to favour the plan

One tie is not a verdict. If a plan bottleneck pays off anywhere, the places to look are a property that is harder to steer, a task with two constraints at once, and a stronger base underneath. All three were run against the same direct control.

A second property: penalized logP

Penalized logP is unbounded with a heavy negative tail, so the metric is a median rather than a mean. Here direct beats the plan by roughly a factor of two, and the per-seed values do not overlap.

Penalized logP · success lift · 3 seeds · median metric
direct · no bottleneck +11.4%
discrete · VQ plan +5.8%
continuous · Gaussian +0.4%
direct  12.2 · 9.6 · 12.5  (±1.3) discrete  5.8 · 5.3 · 6.3  (±0.4) continuous  0.6 · −0.9 · 1.4  (±1.0)

Direct's lowest seed (9.6%) sits above the plan's highest (6.3%).

each dot is one seed · the tick is the mean · axis −2% to +14%

Two objectives at once

Hitting a QED target and a penalized-logP target together, over a 3×3 grid of target pairs, is the regime where a plan is most likely to pay: the two properties are close to independent, so the model has to satisfy two constraints in one generation. Three seeds, direct against discrete.

QED and penalized logP jointly · 3×3 target grid · 3 seeds joint-success lift · axis 0 to +6%
direct · no bottleneck +4.1%
discrete · VQ plan +2.1%
direct  4.9 · 3.7 · 3.6  (±0.6) discrete  1.6 · 2.8 · 1.9  (±0.5)
logP steering correlation · axis −0.6 to +0.9
direct · no bottleneck +0.47
discrete · VQ plan −0.25
direct  0.82 · 0.33 · 0.26 discrete  −0.53 · +0.21 · −0.44

each dot is one seed · the tick is the mean · the vertical rule is zero

Both variants steer QED well (+0.98 direct, +0.91 discrete). The second objective is where they separate: direct tracks it, the plan does not. The discrete mean of −0.25 covers one positive seed out of three, so the spread is the honest form of that number, and the joint-success lifts are the firmer comparison because their per-seed values do not overlap.

A stronger base

The remaining candidate explanation is base strength: related work reports discrete latents helping on a strong pretrained base. That regime is out of reach here, because a single 16 GB GPU puts the parameter ceiling at about 30M. What is possible is a robustness check rather than a scale test: take the base to the largest size the ceiling allows, triple its pretraining, switch the warm start off so that the longer pretraining is the only strength lever, and re-run the same comparison. The figure below carries the resulting size and budget.

That base is d=416 over 5 layers, against d=384 over 4+4 for the default.

Stronger base · 28.2M params · 30k pretraining steps
direct · 2 seeds 0.442
discrete · 3 seeds 0.362
direct  0.453 · 0.432  (±0.010) discrete  0.240 · 0.485 · 0.360  (±0.100)

Overlapping, Mann-Whitney p=0.40. The direct figure rests on two seeds, not three.

QED steering range · axis 0.20 to 0.50 · each dot is one seed

The stronger base lifts direct from 0.358 to 0.442, and it lifts it steadily. The plan reaches 0.362, which is barely above where it started, and its seeds are scattered ten times as widely. Codebook use stays at 98.8%, so the plan is being written and read, not abandoned. With two seeds on one side and three on the other this is weaker evidence than the QED comparison, and it is a robustness check inside the hardware ceiling rather than a statement about scale.

§04 · The re-roll · 1/4

One geometry cleared the bar

The last untested lever was the plan's own shape: how many entries the codebook holds, written |V|, and how many slots the plan fills, written L. Fifteen combinations of the two were swept, one seed each. Direct has no bottleneck, so it is geometry-free and its bar stays fixed at 0.358. One combination cleared that bar, at 0.446.

L in 1, 2, 4, 8, 16 crossed with |V| in 64, 256 and 1,024, at the full 16k-step budget. The one that cleared the bar is the geometry named in the panel.

§04 · The re-roll · 2/4

The screen had scored its own noise

The sweep carried a control inside itself. It also re-ran the default geometry, 256 codes over 8 slots, whose three-seed value is a known 0.311. On this single-seed pass it scored 0.367. A single seed at this budget therefore carries roughly +0.05 of stochastic-decoding inflation, which is most of the standout's margin over the bar.

§04 · The re-roll · 3/4

Re-rolled, it regressed to the bar

Two further seeds of the same geometry returned 0.232 and 0.381. The mean over three is 0.353, below direct's 0.358, and the seeds overlap. The second candidate went the same way. That control is the reason the standout was re-rolled instead of published.

Mann-Whitney p=0.50 for the standout. The second candidate, |V|=256 over L=2, scored 0.377 on the screen and 0.329 over three seeds, p=0.90.

§04 · The re-roll · 4/4

The null is not a collapsed codebook

A usage guard rules out the dull explanation. Both confirmed candidates use 97% to 100% of their codebooks at healthy perplexity, so the plan is being written and read. The sweep's one clean negative is the largest codebook: at 1,024 codes every configuration stays at or below 0.34 and utilisation falls to between 31% and 86%, a vocabulary this budget cannot drive.

Screen: 15 configurations, seed 0. Confirmation: 3 seeds, Mann-Whitney U plus a per-seed overlap check, against direct's locked 0.358 ± 0.030.

§05 What the run does establish

The kind of bottleneck moves controllability, the presence of a plan does not

Across the five regimes above, the plan never beats direct conditioning. The variation that does appear sits between kinds of bottleneck, and it is large. The continuous Gaussian latent steers QED over 0.054 where the discrete plan manages 0.311 and no bottleneck at all manages 0.358. On penalized logP it barely steers: +0.4% ± 1.0 against +5.8% and +11.4%.

The five regimes · direct against the plan
QED · de novo steering range · 3 seeds
direct 0.358
plan 0.311

A tie: the per-seed values overlap.

Penalized logP success lift · 3 seeds · median metric
direct +11.4%
plan +5.8%

Direct ahead: its lowest seed sits above the plan's highest.

Two objectives at once joint-success lift · 3×3 grid · 3 seeds
direct +4.1%
plan +2.1%

Direct ahead on the joint lift, and the plan does not track the second property.

Plan geometry QED steering range · 15 configurations
direct 0.358
best geometry 0.353

The one of fifteen that cleared the bar falls back to 0.353 over three seeds.

A stronger base QED steering range · 28.2M params
direct 0.442
plan 0.362

Overlapping, p=0.40. The direct figure rests on two seeds, not three.

Each panel keeps its own unit and its own scale, so bar lengths compare inside a panel and not across them. The continuous arm sits in §02 and in the figure below.

The mechanism is mode-averaging. Asked to represent two chemically distinct ways of satisfying the same objective, a Gaussian latent has one mean to place and places it between them, at a point that satisfies neither. A discrete codebook avoids this because quantisation forces the choice of one entry. Conditioning the decoder directly avoids it because there is nothing in between to average.

The obvious objection, that a single Gaussian simply cannot express what 256 categories can, was run as a control. A 16-component mixture-of-Gaussians planner, matched to the categorical's expressiveness, reaches 0.097 ± 0.035 over three seeds. It recovers part of the gap and stays 3.2× below the discrete plan, with per-seed values that do not overlap: the discrete minimum of 0.288 is above the mixture's maximum of 0.129. Multimodality is not what the Gaussian latent was missing.

Schematic · mechanism, not a measurement
two distinct solutions continuous latent one mean to place a point that satisfies neither
QED steering range · axis 0 to 0.45 · 3 seeds each
direct
0.358
discrete
0.311
mixture · K=16
0.097
continuous
0.054

the mixture recovers part of the gap and stays 3.2× below the discrete plan

DESIGN RULE · AT THE SCOPE OF THIS RUN

For controllable generation of this kind, at this scale, prefer a discrete bottleneck or none at all over the smooth continuous kind a variational autoencoder uses. The finding holds on two properties and survives the multimodality control, and it is the one result here that transfers outside the molecular task.

One method point sits underneath all of it. With only the discrete and continuous arms present, this comparison reads as support for the hypothesis: a 5.8× gap in the predicted direction. The direct arm, added afterwards, removes that reading and leaves a null. Any claim that an intermediate representation helps needs the no-intermediate control at a matched budget, or an effect of bottleneck design gets reported as an effect of planning.

§06 The bridge

A channel whose content is causal and whose order is not

Inside the discrete variant, the plan is not decoration. Corruption at evaluation time only, with the trained model and everything else held fixed: randomising the plan codes collapses the QED steering range from 0.272 to 0.030, a factor of 9.1. Shuffling the same codes across their slots leaves it at 0.270, unchanged.

Read together, those two results say what kind of object the emergent plan is. Its content drives the control, so the codes carry the objective rather than acting as filler. Its order does not, so the plan is an unordered set of codes rather than a sequence.

Note 1 defines shuffle as its most diagnostic intervention and states in advance what a channel surviving it would be: a bag of markers, as opposed to a channel that binds meaning to position. That protocol described the case without observing it. This run observes it. The same intervention pair, applied on a different task and a different architecture, returns the signature the protocol names: unchanged under shuffle, collapsed under randomisation.

There is a second connection between the two lines. Note 1 establishes that a discrete channel can be made causally necessary. This run establishes that being necessary is not the same as being useful: here the channel is demonstrably used, its content demonstrably carries the control signal, and it still buys nothing over conditioning the decoder directly.

The intervention protocol and the run it certified: Note 1 · a reasoning channel must break when you scramble it →

§07 Limits

What this null does not cover

  • Scale is untested, not exonerated. One 16 GB GPU, a 21.5M-parameter default base and a ceiling near 30M. The regime in which related work reports the mechanism helping, a large pretrained base, cannot be reached under those constraints. The strong-base check moves inside the ceiling; it is not a scale sweep.
  • One architecture, one encoding. A VQ sequence model decoding SELFIES on ZINC-250k. A different plan mechanism, for instance one whose units are graph-edit operations rather than emitted codes, is a separate question and was not run.
  • The strong-base direct figure rests on two seeds. 0.453 and 0.432, against three seeds for the discrete variant. Every other comparison on this page is three seeds against three.
  • Two properties and one target grid. QED and penalized logP were chosen because they differ in kind, a bounded composite against an unbounded heavy tail. Two properties are not a survey of design objectives.
  • Steering-correlation means hide their spread. The discrete −0.25 on the two-objective task is a mean over −0.53, +0.21 and −0.44: one seed of three is positive. The joint-success lift is the firmer half of that comparison.
  • The geometry screen is single-seed by design. Its own control measures the inflation that comes with that, which is why nothing from the screen is quoted as a result until it has been re-run at three seeds.

Related work

arXiv 2604.22709 · IBM · 2026

Abstract-CoT · "Thinking Without Words"

Replaces verbal chain-of-thought with a reserved abstract vocabulary on pretrained models. Its positive result rests on a strong pretrained base and a reasoning-heavy task, which is precisely the regime the constraints here foreclose, so this null and that positive do not test the same regime. Note 1 cites the same paper for a different reason: it makes no per-token causal-necessity claim.

§08 Conclusion

The control decides the reading

The hypothesis was that a discrete plan between an objective and a molecule buys controllability. Under the strongest form of the comparison available at this scale it does not: not on QED, where it matches direct conditioning; not on penalized logP or the two-objective task, where it falls behind; not at any of fifteen plan geometries; and not on the largest base the hardware allows. The plan is used and its content is causal, which is a fact about the channel rather than a benefit from it.

What transfers out is narrower than the hypothesis and firmer. Where the bottleneck is a continuous Gaussian latent, controllability falls by roughly a factor of six, and the missing ingredient is not multimodality but the averaging such a latent performs. And the arm that is easiest to leave out, the decoder conditioned on the objective directly, is what separates a finding about bottleneck design from a finding about planning.

Provenance · what each claim rests on

QED steering range, success lift and steering correlation for the three variants (0.358 / 0.311 / 0.054, 3 seeds each) outputs/h1_direct_aggregate.json · outputs/h3_aggregate.json
Mixture-of-Gaussians fairness control (0.097 ± 0.035, K=16, 3 seeds) outputs/h3_mog_aggregate.json · outputs/h3_continuous_mog_s{0,1,2}/h3_result.json
Penalized-logP success lift (+11.4% / +5.8% / +0.4%, 3 seeds, median metric) outputs/h1_plogp_direct_aggregate.json · outputs/h3_plogp_aggregate.json
Two-objective joint-success lift and per-property steering correlations (3×3 target grid, 3 seeds) outputs/mo_aggregate.json · scripts/train_denovo_multiobj.py
Plan-geometry screen (15 configurations, seed 0), the |V|=1024 negative, and the built-in control that scored 0.367 against a locked 0.311 outputs/geom_aggregate.json · scripts/run_geometry_sweep.sh
Three-seed confirmation of both candidates, Mann-Whitney p values and codebook utilisation outputs/geom_confirm_aggregate.json · scripts/aggregate_geometry_confirm.py
Strong-base robustness check: architecture, 30k pretraining steps, codebook use, Mann-Whitney p value, direct on 2 seeds and discrete on 3 outputs/strongbase_aggregate.json · scripts/run_strongbase_seeds.sh
The 16 GB hardware constraint and the parameter ceiling it implies FINDINGS.md · RESEARCH_PROPOSAL.md
Plan-corruption ablation (0.272 intact, 0.030 randomised, 0.270 shuffled, 3 seeds, eval-only) docs/experiment_D_denovo_planner.md · src/adpt/ablations.py
Competence gates (validity 100%, uniqueness 99%, novelty 100%, internal diversity 0.87), model configuration and step budget outputs/h3_aggregate.json · scripts/train_denovo_h3.py
Full source, run records and documents private research repository · available on request

Per-seed values are quoted as they stand in the aggregates listed above rather than re-derived, and the arXiv identifier was verified against the source paper in July 2026. This is a concluded research line, published for its method value.