Skip to content

Release 0.95.0: every new brain holds the memory, on the fastest backend - #277

Merged
muellerberndt merged 223 commits into
mainfrom
release-0.95
Nov 7, 2026
Merged

muellerberndt merged 223 commits into
mainfrom
release-0.95

Conversation

@muellerberndt

Copy link
Copy Markdown
Owner

Release 0.95.0: every new brain holds the recall memory at one composition, on the fastest backend the machine has at its size.

Default changes (Brain.compose(inputs, actions)): the memory on, the recipe, the read's rule as the only address lesson, teaching="deep", carried_gain, the capped recall_drive_gain, recall_grid with 128 slots, recall_position_reward, rates scaled by width, learning_fast_settle, backend="auto", float32 on a device. recall=False on backend="cpu" is bit-identical to 0.94.0, and recall_founder=True restores the memory's founder settings.

Readings. Every sequence gate and chamber bar holds on three blocks of fresh founders (#256), the last on this composition, and the falls are listed with their counts in the memory guide (#252).

Speed. One device form of the memory for torch and MLX (resident.py), the apical compartment on MLX, transport fixes (#275), the lifecycle on the device (#274), the default backend (#276), same-bits CPU speedups (#271). A step of sixteen streams at speech size with nothing named falls from 2,459 ms to 44.6 ms on an A10G and from 10,905 ms to 148 ms on an Apple M4.

Simplified. The distance lesson, recall_compete, recall_null, the checkpoint readers of 0.84.3 and earlier and other names leave (#273). A file of 0.85.0 on loads and continues; several-head files of 0.88.0 to 0.91.2 are refused by name.

Details: CHANGELOG.md.

🤖 Generated with Claude Code

muellerberndt and others added 30 commits November 5, 2026 15:10
The Grammar stage of #173 asks for agreement across distractors, roles,
nested structure and two-hop composition, read on held-out combinations
and lengths. This adds benchmarks/grammar: an 18-word language in which
every word is an input and an action, three sentence families (clauses
whose verb agrees with the agent across distractor phrases, Dyck bracket
sentences, paths chained through heard facts), a second grammar over the
same words (patient before verb) for persistence, sealed held-out splits
per founder, context twins, whole-sentence closed-loop scoring, a
located-read diagnostic, paid practice through step for maturity, and
LSTM and transformer next-word controls at matched parameters.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Thirty epochs over the brain's 4,000 training batches keep an offline
control within an hour on one core.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Where a continuation's context lives is read by erasing it at the
continuation's start, from the recall memory (the slots of the meaning,
GO and the first given word) or from the working trace, beside the
twins with the context intact and removed. Every phase can save its
brain, so later diagnostics read the same lives without living them
again. The README states the language, panels, scores, arms,
persistence schedule, controls and how to run them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
solve() rebuilds every sentence from what the brain hears, without the
episode's metadata; a test checks it on every panel and training batch
of two founders, so every reading is of an answerable sentence.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The recipe arm is the battery's recipe_relative, loaded from
benchmarks/sequence/battery.py as width.py loads it, instead of a copy
of its settings; a test pins the settings the chamber reads with.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The read of a moment sees the slots written before it; reading their
ages after the act counted the moment's own slot and shifted every
landing by one. The ages are now taken before the act, and a test
checks the read's columns against them. A score of attraction is added:
a verb that agrees with the noun said just before it, where that noun's
number differs from the agent's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The address and position lessons name the slots to read by the movement a
lesson leaves on the read port's synapses, read back through the synapses
into the association. With the copy pathway (recall_copy) the answer travels
from the read port to the motor region directly, and the association's
movement no longer named the slots that hold it: beside the positions recipe
look back's read collapsed (0.25 to 0.33 at 24 to 60 symbols, its position,
anchored and slope maps a fraction of their norms). The readback now adds the
motor region's movement through the copy synapses, so the taught answer names
its slot; look back reads 0.98 to 1.00 again on development founders. A brain
without the pathway is unchanged.

recall_copy_next (opt-in, construction, founder 0.0, needs recall_tokens)
starts the pathway's identity on the next ports as well, so a successor the
read delivers drives its own action, one never taught as an answer included
(induction with untaught successors: 1.00 against 0.00 on development
founders).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A read delivers a moment's event through that moment's slot (its value)
or through the slot before it (its next). Counting the value alone read
every path hop as never delivered; delivered now counts both ports.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Founder 0, every arm and control: the recipe says clauses at trained
lengths and composes held-out combinations, agrees with attraction,
fails held-out lengths at the read; every control fails the held-out
lengths, depths and hops at this size. The context is carried by the
recall memory. The second grammar erases the first in brain and
controls; an eighth of the lessons restores it. Paid practice unlearns
the lesson-taught grammar through the actor's steps, and maturity keeps
more of it only at a scale below the practice's use.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The recall read's address and position lessons take their target from the
slots' contents. With recall_tokens declared, a lesson whose answer is an
action without a token (-1: a yes, a no, a count) now leaves the read's maps
as they are; the cortex learns from it as from any lesson. Beside the
positions recipe, "was A told before B?" lost its read to such lessons (0.51
to 0.65 on development founders); with the read's lessons kept off those rows
and lessons at every row it answers 0.97 to 0.98. A token list may declare no
token at all ([-1] * actions), which starts the copy pathway at zero. Brains
without tokens are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The README's readings now cover the three development founders for
every arm and control, the located reading of the saved brains (both
read ports), the context erasures, persistence and recovery, and the
work on both sides. Maturity is founder 0's, stated as a finding for
the retention work of #169 and #238.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…y row

"Was A told before B?" learned only under lessons at every row: surprise lessons
stayed at chance after 4,500 lessons with 44 to 49 percent of the rows taught,
since lessons of a two-way judgment, given only where it is wrong, carry one
class at a time. Lessons at every row collapse the token answers of induction,
copying and two hops in the same composition (0.11 to 0.68 on development
founders). With recall_tokens the rows whose answer is no token are now taught
at every lesson and the token answers stay judged by surprise, so one
composition serves both. A margin on the surprise judgment was tried and
withdrawn: two hops collapses at every margin read (0.34 to 0.37 at 0.05, 0.1
and 0.3). Brains without tokens are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The reward step of the recall read's position maps (recall_position_reward)
was a lesson's step at recall_position_rate, so the positions recipe's slow
table (0.01) left what reward teaches a tenth as large: in the ordered recall
world under live the composed sequence brain learned order on 3 of 6
development founders, and on 5 of 6 with the step restored by setting (12 of
12 fresh founders). The reward step is now a lesson's step at the founder's
position rate, 0.1 (Recall.REWARD_RATE), whatever rate the lessons take.
Brains at the founder's position rate, and brains without the reward read,
are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…he pathway

The copy readback of 6531d61 (the read's lessons reading the motor's movement
back through the copy pathway) restored look back beside the positions recipe
(0.99) and misdirected every read whose answer is a successor: the recall
port's identity names the slot that holds the answer itself, not the slot it
follows, and two hops collapsed on fresh founders (0.27 to 0.28 against 0.99
without the pathway). It is withdrawn; the docs state that the pathway beside
the recipe stops look back's read learning where to look.

recall_tokens may now be given without recall_copy: they then only declare
which answers are tokens a slot can hold, for the read's lessons and the
surprise rule (no synapse is added). recall_copy_next needs both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
window.py says the chamber's sentences k words at a time: a brain of k
motor slots (slots=k) settles the window's words in one settle under the
message and the words of its previous window, says them and moves on.
With k = 1 it is the chamber's word-by-word life to the bit (a test
checks words, work and the located reading). The library settles the
slots jointly with synapses of their own per slot: a position is a
coordinate, not a shared role. The located reading adds the attention
mass on a word's meaning moment.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The library already settles k motor slots jointly (slots=k), teaches
them at once with (batch, k) labels, returns k indices from act, step
and live, holds the k commands issued in the efference copy and grows
slots, so the planning window is the documented use of slots: a guide
section (docs/tune.md, a planning window), tests of the contract under
tests/test_planning_window.py and a CHANGELOG Unreleased entry. No
library code changes; the founder, one slot, is unchanged to the bit.

The grammar chamber's window reading adds the advance through the
efference copy beside the world's echo, context twins aligned to the
window, the Dyck sentences that fit in one window apart from those
that spill over it, and a window reading of the controls.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The founder-options test lists every recall option at its founder value;
recall_copy_next (0.0) joins the list. The founder memory is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Windows of 1, 3, 4 and 8 words on development founders 0 to 2: a phrase
window settles the verb with its agent (agreement with an attractor .66
to .90 and .97), the whole-sentence window loses the trained sentences
through its positions as coordinates, and lengths beyond the window stay
lost at every window.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The memory guide gains the composition the #173 Sequences gate read on fresh
founders: the positions recipe with the options that compose with it and the
tokens declared, without the copy pathway. Its readings on every task of the
sequence battery are stated beside it, with what it does not reach: answer
tokens never taught (0.00, the association's learned drive against them),
n-back's cost against the founder memory, and ordered recall from reward on 9
lives of 12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The implemented reading at windows 1, 3, 4 and 10 by the echo advance
and at 4 by the efference advance: held-out agreement .94 at the phrase
window against .72 word by word, no held-out-depth Dyck sentence said
right within the whole-sentence window, window-aligned twins differing
at .99 and both right at .55 to .59, the efference advance below the
echo, and the work per sentence per window.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Under reward alone two ordered-recall lives of the Sequences gate's composition
pinned one action at 0.95 to 0.99 and the other near zero from their first 256
episodes: aroused on 92 to 99 percent of moments, learning at every one and
sampling at 0.45 to 0.49, they answered one action on every query for 3,072
episodes, since an output on the activation's flat branch has no slope for
the dopamine or the recall read's eligibility. actor_relax (opt-in, runtime,
founder 0.0) lowers, at every actor update, the bias of an output whose
activation at the scored act sits past 0.9 by the rate times how far past it
sits; outputs below that keep their bias. Founders and relax 0.0 are the same
life to the bit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The reward guide and the changelog state what the readout relaxation does on
the two locked ordered-recall lives (at 0.15 one answers every query, the other
leaves its lock; at 0.05 neither does), that it moves other lives of the twelve
so the count at .90 stays 9 of 12, and that the reward chambers of the
preservation panel keep their counts with it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The "One composition for sequences" section states what each of its three
shortfalls comes from: n-back's cost is the slow position table that copying at
lengths no lesson reached needs; ordered recall from reward loses two lives to a
readout pinned on one action, which actor_relax opens, and then to the next
port's copy of the following write with no gap between the writes; answer
tokens never taught are not produced by any copy pathway shape read in
development, with the per-task numbers.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Declared protocol, founders 257000 to 257005: W1 (held-out agreement at
the phrase window) 3 of 6 at 0.90, W2 (held-out-depth brackets within
the whole-sentence window) 0 of 6, W3 (window twins both right) 0 of 6
with their continuations differing on 6 and 4 founders of 6, lengths
beyond the window lost at every window; the work per sentence per
window. A bounded negative: the first form does what #257 states and
does not reach the bars.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The LSTM and transformer at the brain's parameter count on the fresh
founders and the window twins, the founder parity harness (0 of 24
lives differ) and the full test suite from the branch (4,027 passed)
join the confirmation section.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Add recall_address_contrast (opt-in, runtime, founder off): the address lesson's
error is sum_i (p*_i - p_i) K_i, the named keys less the attended ones, the gradient
of the content logits and zero where the read is right, in place of K* - q, the
distance to the named keys, which keeps regressing the address onto the mean named
key. The rate, the row's bound, the rows' average and the reward's eligibility are
unchanged and no parameter is added. Retune holds it while a sampled action's
address contrast is pending.

This is the rule of lane-095-keys (33a6776, 775e602) without the learned keys, the
contextual keys and their rate, which earned no reading. The test file comes with it,
less the key maps' test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ct gradients (#260)

The instrument the read's rule was found with, from lane-095-ablate at 3a17b64,
byte for byte: ablations.py puts the recall memory's restrictions on the matched
transformer, gradients.py puts the transformer's training on the brain's graph,
with their tests and the README's sections. The candidate carries it so its readings
can be taken again. Nothing under src/ changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
FdL reads the base composition through recall_address_contrast in place of the
patch, and a test holds Fd and FdL to the bit. The README's pending tables take the
development readings of the ablations and of the base composition, with the replica
floor beside them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
muellerberndt and others added 29 commits November 7, 2026 15:03
…sson

test_the_founders_acts_and_checkpoint_bytes_are_the_recorded_ones[taught] and
test_a_founder_with_the_region_lives_its_recorded_life[region] flipped at 169c0d3, the owner's
ruling of 6 November. Re-recorded under the file's procedure: the commit before reproduces the old
values, the commit before with recall_address_contrast=True gives the new acts and every new array,
and with recall_address=0.0 the commit before, 169c0d3 and this tip read one digest. So the record
moves by the lesson alone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ty held

brain.retune(recall_position_reward=0.0) on a new brain with a read eligibility raised ValueError
'need at least one array to concatenate' from kept_eligibility after installing the settings. A
trace whose columns change is dropped before the layout is read back.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Read on 73ad6d2, one EPYC core at its default against the A10G in float32, each cell
read in turn with the GPU to itself. Over act, lesson and step, geometric mean: the
chamber at 16 rows .67 and at 64 rows 1.19; 128 inputs at 16 rows .84 and at 64 1.84;
512 inputs at 1 row .74, at 4 rows .94 and at 16 rows 1.97; 1,024 inputs at 1 row
1.19; the speech size 7 and more at every row read. Under a compartment: 48 inputs
at 1 row .58 and at 4 rows 1.45; 35 inputs with modules (64, 32) at 4 rows .76 and at
16 rows 1.76. The default takes 800,000, a compartment 110,000.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The dev extra installs Numba, so every pin of acts and checkpoint digests skipped on every CI job:
the two that flipped at 169c0d3 went unseen. A numpy-solver job runs the four modules that hold them
under CADENCE_FUSED=0. A full suite under CADENCE_FUSED=0 failed 60 more tests, all of them reading
the compiled path Numba's presence stood for (test_fused*, test_fast_settle, one of
test_recall_composed); they skip there now, and none of the 60 is a defect.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Lane Q's reading, one M4 core at its default against MLX, each pair at one load of 12
to 25: the default takes MLX from rows * synapses of 800,000, a compartment from
500,000. Past them every cell read passes or is level, but for 512 inputs at 4 rows
(lesson .95, step .79), the price of 1,024 inputs at one row (6.7, 4.5).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
memory.md opened on a stray table row in front of its title, and its first table named the two gains
a new brain holds as settings to write. A new brain's memory reads in the pages that said trace and
store (README, docs/README, start, tune, world-model, anatomy, contracts); teach, api and reward state
the teaching point, surprise, capacity and recall_tokens as they are; a removed setting and the null
slot's logit leave tune and api. The readings at the 0.94 brain name recall=False where a new brain
would read otherwise. what-the-composition-gives-up holds the binding, how long ago, the chain whose
stages look alike and the bracket cost at 256. backends says what a device costs a small brain and the
MLX floor. A test holds every guide to its title.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…peats

Read on the A10G with the memories on the device: a float64 life at 16 rows differed
between two processes in the relative maps by 1e-20, from the atomic add of the
buckets, which takes its floats in arrival order. A product of the gradient and a
one-hot of the buckets sums in a fixed order. Float32 at 16, 4 and 1 rows read equal
digests in two processes before this and do after it (re-read on the box).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…mns change

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mx.addmm reads an alpha of zero as one: addmm(zeros, a, b, alpha=0.0, beta=1.0) returns a @ b on MLX
0.32.4. So recall_position_rate=0.0, which freezes the table, moved the position maps of a memory
resting on MLX by the whole product, .47 after one lesson at 12 inputs where the host stays at 0.
add_outer returns the map at a rate of zero. A test on every device holds the table still and the
slope beside it learning.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d without a warning

A mature brain placed at its first step kept `_life_depth` at -1 and never relaxed
again: the moment's wrapper held its counter across the move. The wrapper now places
first. A read-only rate array goes to the device through a copy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…end (#256, #252, #271, #274, #275, #276)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Their digests pin one machine's arithmetic, and a hosted runner reads other bits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ed brain does there

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The opening points to the default backend's rule and tables. Acts, lessons and settles at both precisions
and one CPU core at its default, read on 9c76538 with the GPU to itself. A settle is about a third of an act
below the memories' size and from it. A small brain's cost on CUDA follows the new rows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… a report's norm within a BLAS's last bits

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s it once

At the speech size and 256 streams the file held the synapses' eligibility in float64,
12.9 GB of a 13.9 GB file, and a load copied it after reading it: the box's 30 GB host
killed that load (read on the A10G's box, default brain, float32). A float32 brain now
writes it in float32, and a load keeps the array it read. On the host a float32 file
continues in float64. A float64 brain's and a CPU brain's files keep their bytes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… have not read

The M4 table under "Which hardware" read 0ba1793, before the memory moved to the device and before the CPU's fast
solve: its rows of brains with the memory leave for the default backend's M4 rows, read on one harness at load 12 to
25, and the rows of brains without the memory, whose CPU keeps the ordinary solve, stay. The CHANGELOG's MLX numbers
come from those rows, beside a line for the size rule and CADENCE_MLX_MEMORY. The default brain's chamber and
battery panels on MLX read after the release, which the CHANGELOG and the guide say.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@muellerberndt
muellerberndt merged commit d4a2cd0 into main Nov 7, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant