The networks of Coherent: main network, teacher and cascade
Listen to this post16 min
Created by AI from the text of this post and read by the synthetic voice “Sulafat”; not a word-for-word version, and it may contain errors.
Loading…
Created by AI from the text of this post and read by the synthetic voice “Sulafat”; not a word-for-word version, and it may contain errors.Position and speed stay in this browser and are sent nowhere.
The recording could not be played. Open the audio file
Coherent evaluates positions with a neural network. Today the project deals with four widths: 768, 1024, 1536 and 3072. This post shows what lies behind each of them, what was measured and how two networks work together in a cascade. The numbers are labelled: oracle (verdict of the independent measurement chain), internal measurement (games of the project outside the oracle, not an oracle verdict) or calculated. Status: 5 November 2026.
Summary
- Main network: Since
8 September 2026the oracle has brought16networks onto the main branch. Their width grew from128to768; no main network has been wider yet. - Teacher: The network of width
1536is called the teacher in the project. At the same node count it played stronger than the main network at all8levels (internal measurement). On the clock it is slower, and its lead shrinks to+17.1Elo Strength difference to the opponent, estimated from the games, with a 95-percent half-width where the oracle reported one. Never an absolute rating.. - Cascade: A program with both networks asks the teacher only for close evaluations. With two speed changes it was
+23.4Elo ahead of the main network on the clock (internal measurement). - Same data, small network: A network of width
768, trained with the same data and the same recipe as the teacher, was+3.9Elo ahead internally. The triage of the measurement chain rejected it. 1024and3072: There is a separate post on1024. For3072the design is fixed; this post contains no measurements for it.
What “width” means
The network first translates every position into features: 768 for each side, that is 2 colours × 6 piece types × 64 squares. Which weights apply also depends on which of 8 regions the side's own king stands in (king buckets). The first layer condenses these features into as many neurons per side as the width says. Small layers follow, and then a single number, the evaluation.
Almost all weights sit in this first layer. The networks 1536 and 3072 also have 86,808 threat features there; they tell the network which pieces are currently attacked.
The weights of the first layer (calculated) show how much the networks grow: 4.7 million at 768, 6.3 million at 1024, 142.8 million for the teacher 1536 and 285.5 million at 3072. In the two large networks most of them belong to the threat features.
The main network: 768
The first network replaced the hand-written evaluation on 8 September 2026. Since then the oracle has tested every new main network against its predecessor. The first 15 of these networks are described in the post “15 networks in 40 days: the lineage of the evaluation”. One more has been added since.
The current main network came onto the main branch on 23 October 2026. It has 8 king buckets instead of 4. A start network was first trained for 16 epochs with 26.43 billion rows per epoch. Then followed 4 epochs on 148,834,647 positions that the engine's own search had evaluated before (self-distillation). At the short stage of the oracle (8+0.08, book A) it was +9.23 Elo ahead of its predecessor (95 % interval +4.11 to +14.36, 4,556 games; oracle).
The comparison of a network of width 1024 with a 768 control on the same data, and the calculation behind it, are described in the earlier post “Network of width 1024: plan, calculation and status before the start”.
The teacher: 1536
In the project a teacher is a large network whose evaluations are meant to serve other networks as a learning target. Its name follows the project's teacher register: T1536w-K64-v1 means teacher (T), width 1536, widened from its predecessor in a function-preserving way (w), head width 64 (K64), version 1.
- Design:
1536neurons per side,8king buckets with mirroring, fine and coarse threat features, then2layers of64neurons each. - Start: warm from the main network, not from zero.
- Data: one pass over
16,584,642,797rows. The labels are the evaluation of the engine's own search and the game result.200data blocks were held back and never trained on. - Effort:
43.2GPU hours. - Mean squared error (MSE) on the held-back positions:
0.013900against0.015426for the main network (internal measurement).
The finished program is 423 MB in size, because the weights are inside it.
At the same node count. First the teacher played against the engine with the main network, both with the same fixed number of nodes per move, at 8 levels from 1,000 to 200,000 nodes with 15,000 games each (internal measurement). It was stronger at every level, between +104.5 Elo at 200,000 nodes and +151.6 Elo at 5,000 nodes. All 8 verdicts hold after the correction for multiple testing (Holm).
On the clock. Fixed nodes leave computing time out. On the clock the teacher pays for its large network. At 8+0.08 seconds an earlier build gained +10.0 Elo (95 % interval +7.5 to +12.4). A build that was 11.7 % faster in a separate timing measurement, with bit-identical evaluation and the same search tree, gained +17.1 Elo (+14.6 to +19.5). It reached 1.07 million nodes per second, the main network 2.34 million. 15,000 games each, internal measurement.
At the longer time control 20+0.2 the same build was +19.4 Elo ahead (+15.8 to +22.9, 6,000 games). On the same first 3,000 openings the same build had reached +19.6 Elo at 8+0.08. The paired difference was −0.2 Elo (−5.3 to +4.9); no difference between the two time controls was measurable.
Same data, small network: K2
K2 was built as a control network for the teacher, in the design of the main network: width 768, 8 king buckets, a small head with 16 and 32 neurons, no threat features. Data, recipe and warm start were the same as for the teacher. The values in the table are internal measurements of the project, not oracle verdicts.
| Main network | K2 | Teacher | |
|---|---|---|---|
| Width | 768 | 768 | 1536 |
| Threat features | no | no | yes |
| MSE on held-back positions | 0.015426 | 0.014967 | 0.013900 |
| GPU hours of training | – | 5.27 | 43.2 |
Elo on the clock against the main network, 8+0.08 | – | +3.9 | +17.1 |
K2 was +3.9 Elo ahead internally (+1.6 to +6.2, 15,000 games) and almost exactly as fast as the main network. In the triage of the measurement chain K2 was rejected on 4 November 2026. The teacher differs from K2 not only in width, but also in the threat features and in the head; these measurements do not separate how much each part contributes.
The cascade: two networks in one program
The teacher evaluates better but computes more slowly. The cascade tries to combine both.
Every evaluation first computes the main network; its value is corrected as on the main branch. If this corrected value lies less than 96 centipawns from the bound the search is currently testing against, the teacher computes as well, and its value applies. Otherwise the value of the main network applies, unless a teacher value for this position is already in the value cache; then that one applies. The teacher only catches up its intermediate sums when it is needed. With the bound 0 the program computes bit for bit like the engine with the main network, with an unlimited bound bit for bit like the engine with the teacher; both were checked.
Measured (internal measurements):
- Against the teacher alone: With the bound
96the cascade was+5.3Elo ahead in15,000games (+3.0to+7.5) and computed1.13instead of1.00million nodes per second. According to the measurement report, the second bound chosen in advance,48, gave−0.2Elo (−2.5to+2.2). - Two speed changes: Both leave the search tree unchanged. Prefetching memory lowered the time per node to
0.9785times (0.9761to0.9810), large memory pages for the network weights lowered it again to0.9755times (0.9736to0.9773). The project only estimated the Elo contribution of each single change from these timing measurements; the complete cascade with both changes was measured on the clock. - Against the main network: The cascade with both speed changes was
+23.4Elo ahead of the engine with the main network at8+0.08(+18.9to+27.9,4,000games), at1.24against2.37million nodes per second. On the same first2,000openings the teacher alone had reached+21.1Elo in its own measurement against the main network. In the paired, indirect comparison of both measurements the cascade was+2.3Elo higher (−4.3to+8.7); this difference is not decided.
Width 3072
On 31 October 2026 the project fixed the design of a teacher of width 3072: 3072 neurons per side, 8 king buckets with mirroring, the same threat features and the same head as the teacher 1536. It starts from the teacher 1536 in a function-preserving way: the old columns stay byte-identical, new columns of the first layer start with small random values, their connections to the next layer and the new threat columns with zero. At the start the wider network therefore evaluates exactly like its predecessor. This post contains no measurements for width 3072.
Ideas in the register
Networks are only part of the research. Of the 1,671 entries in the hypothesis register, 118 concern the network, 47 of them open. The largest area is the search, with 813 entries. Some open ideas in plain words:
- Intermediate teacher: A network of medium size learns from the large teacher and passes on what it learned to the small network, so that the difference in size is not too large.
- Start small: A network of half width,
384, first learns more cheaply and is then widened to768in a function-preserving way. - Win, draw, loss: An additional output estimates the draw probability and uses it to damp the evaluation.
- Pruning: A trained network of width
1024is reduced to896columns without new training by removing the128columns that contribute least; the bias values of the next layer compensate for their average contribution.
What the numbers show and what they do not
- Internal measurements are not oracle verdicts. They ran under the project's own protocols, with self-generated openings, hash
16and15games at a time. The oracle measures under its own conditions. - Only against the own base. All values measure against the engine with the main network or against the teacher. Gains against the own base are only an indication of playing strength against other engines.
- Fixed nodes are not the clock. The values at fixed nodes leave computing time out and are therefore much larger than the values on the clock.
- Size, data and features are linked. The teacher differs from K2 in width, threat features and head; the measurements do not separate these shares.
- Calculated values such as the number of weights or the Elo value of the speed changes are not game measurements.
Sources
- Oracle register, export of
5 November 2026:16main networks, short stage of the current main network. - Commit history of the weights file in the engine repository; header of the weights on the main branch.
- Measurement reports and package descriptions of the project on the teacher, K2 and the cascade from
1to5 November 2026, with pentanomial Games are played in pairs with swapped colours; the five counts are the pairs scoring 0, ½, 1, 1½ and 2 points. or wins, draws and losses; point estimates and intervals recalculated with our own script where a pentanomial is available, for the earlier teacher build the point estimate from wins, draws and losses; the remaining paired comparisons, timing intervals and the value for bound48are taken from the measurement reports. - Teacher register and design decision on width
3072of31 October 2026. - Hypothesis register, status of
5 November 2026.