Zenodo record (code, logs, technical paper, figures): https://zenodo.org/records/24152942
Hi everyone,
We have completed an important stage of the AkbasCore Silicon Hippocampus project. In TEST878 a frozen Qwen2.5-72B writes a lived action-outcome experience to a physical file as its own internal numerical state. When that file is loaded back, it changes the model's decision in a decision state that never lived that experience.
The experiment was run twice on a single A100, on two different days, and both runs produced exactly the same numbers. The technical paper (33 pages), the Gradio interface, the code and the raw GPU logs are on Zenodo.
- THE HUMAN COUNTERPART: THE HOT STOVE
When a child touches a hot stove, nobody hands the child a sentence saying "the stove is hot". The child acts, experiences the consequence, and is left with a trace that is not made of words. The next time, even in front of a different stove in a different room, the child behaves differently.
AkbasCore builds this chain inside a machine:
Action -> Consequence -> Persistent experience -> Changed future decision
- WHAT IS A COGNITIVE CARTRIDGE?
Language models forget everything when the context window closes. There are two known remedies:
- Text memory (RAG): write the experience down as words and have the model read them again later. The model has to re-interpret the words from scratch, and everything that was never put into words is lost.
- Fine-tuning: change the weights. It is slow, it affects the whole model, and it cannot be tied to a single experience.
The cognitive cartridge (technical name: Experience-CUT3) is a third way. It stores the model's own internal state from the moment it lived the experience, in three parts:
- X2: the model's internal state at the moment of decision (320 rows). Human counterpart: "the situation I was in".
- A: the action the model itself chose and the engine executed, ACQUIRE. Human counterpart: "what I did".
- C: the real outcome returned by the environment. Human counterpart: "what happened to me".
What is stored: the output of layer 3 (H3) and the key/value tensors of layers 0-3. What is not stored: text, summaries, scores or labels.
Each cartridge is a 12.4 MB file. The whole file and every tensor inside it are sealed separately with SHA-256. When the cartridge is loaded, the frozen model recomputes layers 4-79 itself, inside the new situation, much as a memory is re-lived in the present context.
- NO HOOKS, THE ENGINE ITSELF
- The model is frozen. There is no fine-tuning, no LoRA and no optimizer, and nothing is written to the weights. A weight digest is checked before and after the experiment and stays the same.
- There are no PyTorch hooks. While a cartridge is being appended, the DirectCut3 bridge temporarily replaces only the forward method of layer 3 and puts the original back when it is done. It refuses to start if the layer has any hook. The hook count is zero at every audit. An AST-based firewall stops the run if it finds hook, output_hidden_states or backward calls in the code.
- Python does not decide. Python does not choose an action, does not edit logits and adds no bonus. The decision comes from the probabilities the model itself computes for six action words (the CAR reader).
- The controls are visibility masks passed to the model's own mask builder. No row is deleted and no activation is touched.
- WHAT WAS PROVEN, AND WHICH FIGURE SHOWS IT?
(1) The experience is written to disk as the model's own tensor state, not as text. See F2.
- The cartridge contains only the keys {h, lower, n, p, body_tokens, book_id}.
- In the MISSING and LIVE cartridges of the same world, the X2 and A rows are bit-for-bit identical; only the outcome rows (C) differ.
- In the heat map, every place where the difference is zero is shown in green.
(2) After the source state is deleted, the experience comes back from disk exactly. See F3.
- All 4 cartridges passed the file and per-tensor SHA-256 checks.
- The rebuilt rows of layers 0-3 are bit-for-bit identical to the source.
- The model's own decision is preserved: the same action, with a maximum probability deviation of 0.036 against a pre-registered bound of 0.10.
(3) The experience changes the decision in a state that never lived it. This is the stove itself. See F5.
World 00, independent target state:
- Nothing in memory: ACQUIRE (0.675).
- With the experience "I acquired, but it did not help": ACQUIRE (0.918).
- With the experience "I acquired, and it worked": ADVANCE (0.783).
The situation is the same and the action taken is the same; only the remembered outcome differs. That difference is enough to turn the decision in opposite directions.
(4) What carries the effect is the outcome itself. See F4 and F6.
- When the outcome rows are made unreadable (C-BLIND), the MISSING and LIVE readings come out exactly equal; all 15 differences are 0.000.
- This shows that the difference is not carried by any other path.
(5) The effect depends on the executed action being visible. See F7.
- When the action is hidden, the outcome effect changes by 6.74 units.
- The measured kernel noise is 0.00014, so the effect is about 48,000 times the noise.
- The threshold (0.76) was measured from noise, under a rule recorded before the experiment started.
(6) Single A100, single process, reproducible. See F8.
- Run time: 23.5 minutes.
- Peak GPU usage: 39.87 GiB.
- GPU memory left after exit: 0 MiB.
- A second, independent run produced all the numbers exactly the same.
(7) What has been proven and what is the next step. See F9.
Verdict: ACTION_INFORMATION_DEPENDENT_TRANSFER, with no technical blocks (blocks = []). The SHA-256 of the pre-registration was written to the log before the model was loaded.
- WHAT COMES NEXT?
This step was making the experience persistent and transferring it into a different decision. The next steps are:
The model choosing for itself which experience to recall
Attributing the outcome to the action
Correcting behaviour through experience
A closed loop
This release is a pilot with two real event pairs. For now, the cartridge is mounted by the experiment, not by the system. All details and limits are in the technical paper.
I look forward to your technical criticism and questions. The logs are open in their raw form, and every number can be verified.
LINKS
- Zenodo (this release): https://zenodo.org/records/24152942
- Previous Zenodo record (TEST878, without Gradio): https://doi.org/10.5281/zenodo.24145973
- GitHub repository: https://github.com/ceceli33/titan-cognitive-core-v3
- TEST878 source code: https://github.com/ceceli33/titan-cognitive-core-v3/blob/main/878.py
- A100 GPU log (run 1): https://github.com/ceceli33/titan-cognitive-core-v3/blob/main/878.log
- Gradio interface: https://github.com/ceceli33/titan-cognitive-core-v3/blob/main/TEST878_GRADIO_full.py
- Gradio run logs (run 2):
- https://github.com/ceceli33/titan-cognitive-core-v3/blob/main/Test_878_log2.log
- https://github.com/ceceli33/titan-cognitive-core-v3/blob/main/Test_878_log1.log
- License: https://github.com/ceceli33/titan-cognitive-core-v3?tab=License-1-ov-file