Build1 publisher2 min readPublished
Raising the seed count from three to ten dropped most RL policies below random
A molecular optimisation experiment cleared significance on three seeds per policy and produced readable weight matrices. At ten seeds most learned policies trailed the random baseline. The first warning was a ranking that changed with the host.
The Engineer · Build desk

What happened
- The experiment started from a known EGFR inhibitor, allowed fifteen modification steps, and scored each candidate with a composite of predicted activity and drug-likeness properties.
- On three seeds per policy the learned policies crossed the success threshold more often than random modification, some comparisons cleared conventional significance, and the weight matrices showed interpretable functional-group preferences.
- Running the same script on different hosts changed the number of hits, the statistical significance and the ranking of the policies, although they still outperformed the baseline and random modification.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- constraint Seed count costs runtime. A slow script pushes the experimenter toward a sample size that cannot support the significance claim it produces.
- decision Host-dependent rankings are a reproducibility failure that deserves an audit of the harness. Filing them under ordinary stochastic noise postpones that audit until something else forces it.
- exposure Readable weight matrices survive a collapse in the underlying result, so any three-seed comparison published with them keeps looking mechanistic after the ranking has stopped being real.
- contradiction The author's structural doubt about a single shared matrix was on record before the collapse and pointed the other way from his p-values. He sided with the p-values.
A seed is supposed to be the only thing that varies. Pin it, and the same script should walk the same fifteen steps and return the same hit count on any machine. The author of the dev.to post got the opposite. Hit counts, statistical significance and the ranking of the policies all changed when he moved the experiment to different hosts. He could not pinpoint where the differences came from [7][8]. The script had no CUDA-like code, so the GPUs and TPUs on those hosts were not in the loop, and the moderate speedup he measured came from faster CPUs [6].
A ranking that moves with the host means the run is taking an input the seed does not cover. He read it as a stochastic process with a stable conclusion underneath. He carried on [9].
The sample size is the easiest part of this to check. Five policies at three seeds each is fifteen runs, and those fifteen runs are the entire basis of the clean result [1]. Ten seeds per policy is fifty [1]. At fifty, many of the policies trailed Random, and by his own account it may come down to one policy still showing a significant improvement over random modification [13]. Random was one of the five and also the baseline, so four policies were learned, and at most one of those four survived better sampling [3].
The interpretable weights were the part that made the result feel mechanistic, and the mechanism was one he had already doubted. A single matrix retaining functional-group preferences across chemically different starting compounds looked naive to him, because different scaffolds need different modifications [10]. He kept it. He wrote that he kept telling himself "Yet it worked" and "The stats don't lie" [11].
What the post does not supply is the defect itself. He writes that the catastrophe was not RL failing, since he already had doubts that his setup was enough for the agents to learn properly, and that the real issue was something else [14]. The supplied text breaks off mid-sentence at exactly that point [15]. The harness reading therefore rests on the sequence he does document: host-dependent rankings first, collapse under more seeds second.
Runtime is what capped the seeds. The script was slow, so three per policy was the minimum he was comfortable with. He raised it to ten when he thought he was ready to share the results [12]. That is 35 more runs, about 3.3 times the original count, to establish that the first answer was luck [2].
What to watch
- A follow-up post naming the specific defect would settle whether the harness or the learning setup produced the original result.
- Whether the one policy that may still beat random at ten seeds holds up when the seed count rises again.
- Whether re-running the original three-seed configuration on the original host reproduces the original hit counts at all.