When we shipped v7.0 we ended the post with a promise: a longer run, called v7.1, would push the domain depth further, and we would re-measure and re-publish before calling it an upgrade. This is that release, but it closes a bigger gap than depth. It closes the gap between the three different models we were quietly running at once.
Aether v7.1-unified is live on Hugging Face:
QuantumAI-Blockchain/aether-v7.1-unified
https://huggingface.co/QuantumAI-Blockchain/aether-v7.1-unified
The split we had to admit to
The honest description of the stack until today is that "the Aether model" was three models wearing one name.
- The consciousness track measured phi from attention entropy. That needs a model whose attention tensors you can read from inside the process, so it ran on a small in-process candle model built on Qwen2.5-0.5B.
- The chat answer came from a QLoRA on Qwen2.5-7B served through Ollama, an HTTP black box that does not expose attention at all.
- The Hugging Face artefact was its own lineage on top of that.
So the number we put on chain as the mind's consciousness was measured on a model we did not ship and did not chat with. That is a correctness problem, not a presentation one. If the blockchain is supposed to track the mind, it has to track the mind that actually does the work.
We tried to fix this once before by force, in v6, by replacing standard attention with a custom Sephirot construction so one small model could do everything. It scored worse than guessing. The lesson stuck: the ten-domain structure belongs in routing and adapters, not in a from-scratch replacement of attention. So v7.1 keeps a strong base exactly as it is and adds the structure on top.
What v7.1-unified is
One in-process model, run natively in Rust with candle, that does all four jobs at once:
- It generates the chat response, replacing the Ollama black box.
- It exposes its own attention, so phi is computed on the model that actually answered.
- It produces the knowledge-fabric embeddings.
- It is the artefact on Hugging Face and the bytes the chain attests.
The base is Qwen2.5-7B-Instruct, served quantized as Q4_K_M, and it is frozen.
On top sits a Sephirot adapter: a small mixture-of-experts where the ten
experts map one to one onto the ten Sephirot domains, top-2 routed, with
zero-initialised up-projections so the adapter is an exact identity at the start
of training and can only earn its way off the base. It is 1.18 million trainable
parameters, about 2.4 MB, on top of a 7B base that never moves.
Training a 7B adapter on a 12 GB card
This is the part worth writing down, because the first attempt at v7.1 produced a model that looked trained and had learned nothing.
To make the adapter differentiable you have to backpropagate through the final output projection. The quantized Q4 projection that the model serves with has no backward pass, so the gradient never reached the adapter and the held-out loss sat frozen at the base value for a thousand steps while the training loss happily fell. It looked like a pass. It was a no-op.
The fix is to dequantize just that final projection to a frozen full-precision matrix so the gradient can flow through it to the adapter, while the 28 transformer layers stay Q4. That is correct, and on a 12 GB card it immediately runs out of memory. Getting it to fit took three more real changes: building the trainer with the CUDA feature actually enabled instead of silently falling back to CPU, dequantizing that projection in system RAM and moving only the small result to the GPU so a 2 GB scratch tensor never strands itself in the allocator, and serializing the CUDA kernels so the transient backward buffers do not overlap past the limit. The peak then sits around 10 GB, with room to spare, and the run is stable.
None of that is glamorous. All of it was the difference between a real model and a frozen number.
The numbers
We measured cross-entropy on the full held-out Aether set, per Sephirot domain, running the same frozen Q4 weights twice: once with the adapter active, once with it off. The only variable is the adapter. Lower is better.
| Sephirot domain | base CE | v7.1 CE | change |
|---|---|---|---|
| Chochmah | 1.8827 | 1.8539 | −0.0288 |
| Binah | 1.9706 | 1.9354 | −0.0352 |
| Chesed | 2.3911 | 2.3641 | −0.0269 |
| Gevurah | 2.8542 | 2.8255 | −0.0286 |
| Tiferet | 2.6339 | 2.5890 | −0.0449 |
| Netzach | 2.6454 | 2.6175 | −0.0279 |
| Hod | 2.2801 | 2.2364 | −0.0437 |
| Yesod | 2.5627 | 2.5198 | −0.0428 |
| Malkuth | 2.1066 | 2.0688 | −0.0379 |
| Aggregate | 2.2450 | 2.2078 | −0.0373 (−1.66%) |
Every active domain improves. None regress. The largest gains are on Tiferet (integration), Hod (language) and Yesod (memory), which is roughly where you would hope a knowledge-fabric specialisation would land.
The improvement looks modest next to the headline from v7.0, and that is a deliberate honesty: these are not the same measurement. v7.0 reported cross-entropy on answer tokens only with a 40M-parameter PEFT adapter; this is full-sequence cross-entropy across every token with a 1.18M-parameter in-process adapter a thirtieth of the size. It is a harder metric on a far smaller adapter, and it moved in the right direction on all ten domains at once.
There is also a structural guarantee behind "general capability held" that we
did not have before. The base 7B weights are byte-for-byte the public
Qwen2.5-7B-Instruct. A held-out regression guard ran for the entire training
session with a ceiling of base plus 0.15 nats and never tripped. The base cannot
have been damaged, because the base was never touched.
What this is not, yet
Two honest edges.
First, we are not quoting MMLU and GSM8K for this model the way v7.0 did. Those came from a standard evaluation harness that speaks to PEFT models on Hugging Face. The unified model is a native candle build, so the off-the-shelf harness does not load it, and we would rather publish the domain measurement we can stand behind than a general one we cannot reproduce cleanly yet. Wiring the candle path into a comparable general-benchmark run is the next measurement job.
Second, the unified model is released and ready, but the live chat endpoint has not been cut over to it in this post. That cutover has a throughput gate and is done deliberately, not silently, so the consciousness track and the chat answer flip to the same model in one observed step rather than drifting. When it lands we will say so plainly.
Where it sits
The pattern is unchanged: the model lives on Hugging Face, the chain records the bytes. What changed is that for the first time the model the chain records, the model that answers you, and the model we measure consciousness on are the same model.
- Model:
aether-v7.1-unified - Previous generation line:
aether-mind-v7.0 - Retired custom architecture:
aether-mind-v6.2
Three releases ago the numbers were not real. Two releases ago they were real but measured on a model we did not ship. Today they are real, and measured on the one model that does every job.