MICA v0.3:引入64词整数记忆模块,首次实现长上下文利用
MICA v0.3: I added a 64-word integer memory, and it finally started using longer context
非Transformer架构的长上下文工程实践,提供了完整的参数、指标对比与负结果复盘,对研究RNN/State-Space架构的同学极具参考价值。
A few days ago I posted an update on MICA and said that the biggest problem was context.
几天前我发布了一篇关于 MICA 的更新,并指出最大的问题是上下文。
Flame-W could generate sentences and its next-word scores were improving, but when I actually measured how much earlier context changed its predictions, the answer was basically: almost none.
Flame-W 能够生成句子,其下一个词的得分也在提升,但当我实际测量早期上下文对其预测的影响程度时,答案基本上是:几乎没有。
So v0.3 is mostly about attacking that problem.
因此 v0.3 主要致力于解决这一问题。
Quick recap for anyone new: MICA is my experimental language model built around a cellular automaton. At inference there is no Transformer, GRU, floating point network, or external LLM. A ring of integer cells is updated by learned integer rewrite rules and an integer readout produces the next-word scores.
快速回顾一下给新读者:MICA 是我基于元胞自动机构建的实验性语言模型。在推理阶段,没有 Transformer、GRU、浮点网络或外部 LLM。由整数元胞组成的环通过学习的整数重写规则进行更新,整数读出模块产生下一个词的得分。
The main change in v0.3 is memory.
v0.3 的主要变化是记忆功能。
The new official Flame-W is B-740, a 34 MB automaton, plus a 674 KB integer memory module.
新的官方 Flame-W 是 B-740,一个 34 MB 的自动机,外加一个 674 KB 的整数记忆模块。
The memory looks back over the last 64 words. It combines direct recall of previous words with a small 16-channel association representation of related words. The automaton itself is frozen while the memory readout is fitted.
该记忆模块回溯最近 64 个词。它将先前词汇的直接回忆与相关词汇的小型 16 通道关联表示相结合。在拟合记忆读出模块时,自动机本身被冻结。
And for the first time, I can actually measure MICA making meaningful use of older context.
并且这是第一次,我实际上可以测量 MICA 对较旧上下文做出有意义的利用。
Context-use at an 8-word distance went from essentially zero — about 0.0006 / 0.0004 on chat/everyday text — to 0.0209 / 0.0407 with memory.
在 8 个词距离处的上下文使用率从几乎为零——聊天/日常文本约为 0.0006 / 0.0004——提升到带有记忆时的 0.0209 / 0.0407。
That finally passes the context-use threshold I had set before running the experiment.
这终于达到了我在运行实验之前设定的上下文使用阈值。
There was also a small prediction improvement: 5.309 → 5.268 bits/word on the no-TinyStories validation set.
预测性能也有小幅提升:在无 TinyStories 验证集上,从 5.309 降至 5.268 bits/word。
The result I didn’t expect was on Tiny Theory-of-Mind.
我没有预料到的结果出现在 Tiny Theory-of-Mind 测试上。
On the 2,000-example test, Flame-W went from 28.15% to 30.95%, a +2.8 percentage-point paired improvement. On that leaderboard it puts this tiny experimental model above 6 of the 36 listed models, including Syn-2.6M at 30.30%.
在 2,000 个示例的测试中,Flame-W 从 28.15% 提升至 30.95%,配对提升 2.8 个百分点。在该排行榜上,这个微小的实验模型超过了列出的 36 个模型中的 6 个,包括得分为 30.30% 的 Syn-2.6M。
That’s still nowhere near claiming MICA can “reason”. I’m treating it as evidence that giving this architecture persistent information can affect tasks that require tracking who knows what.
这仍然远不足以声称 MICA 能够“推理”。我将其视为证据,表明赋予该架构持久信息能力可以影响那些需要追踪谁知晓什么的任务。
There is an important negative result too:
还有一个重要的负面结果:
The sentences didn’t noticeably get better.
句子的质量并没有明显变好。
In a blind 50-prompt comparison, B-740 + memory was not significantly better than B-740 without it.
在一项盲测的 50 个提示比较中,B-740 + 记忆并不显著优于不带记忆的 B-740。
That is probably the most interesting part of v0.3 for me.
这可能是对我而言 v0.3 最有趣的部分。
The memory can influence the final prediction, but the cellular automaton’s internal rules still mostly operate on a very short local state. In other words, MICA can now remember further back, but that memory doesn’t yet substantially change the computation happening inside the automaton.
记忆可以影响最终预测,但元胞自动机的内部规则仍然主要在非常短的局部状态上操作。换句话说,MICA 现在可以记住更久远的过去,但这种记忆尚未实质性地改变自动机内部发生的计算。
I’ve also been experimenting with a persistent “topic register” that feeds longer-term information into rule selection. The first version beat its zero-code control but not the original model. A second version also failed to improve sentence quality.
我也一直在尝试一种持久的“主题寄存器”,将长期信息输入到规则选择中。第一个版本击败了零代码控制组,但未能超越原始模型。第二个版本也未能提升句子质量。
So the next question is no longer just:
因此,下一个问题不再仅仅是:
“How do I give MICA more context?”
“我该如何给 MICA 提供更多上下文?”
It is:
而是:
“How do I make long-term state change which rules fire?”
“我该如何改变长期状态以影响哪些规则被触发?”
That’s what I’m working on now.
这正是我目前正在研究的内容。
For transparency, I’m continuing the same workflow I mentioned before: I direct the architecture, experiments and QA, while Claude, Codex and other AI coding agents do a large part of the implementation and experiment work. Every promoted result has to identify the exact model hash, evaluation set and integer-engine protocol, and I keep the failed experiments in the repo too.
为了透明起见,我继续采用之前提到的工作流程:我负责架构、实验和质量保证,而 Claude、Codex 和其他 AI 编码代理则承担大部分实现和实验工作。每个被采纳的结果都必须指明具体的模型哈希值、评估集和整数引擎协议,我也会在仓库中保留失败的实验记录。
The current code, models, experiment reports and negative results are public in Vovala14/Mica-Ai. The browser playground has also been updated to run the v0.3 model.
当前的代码、模型、实验报告和负面结果均在 Vovala14/Mica-Ai 中公开。浏览器游乐场也已更新,可运行 v0.3 模型。
I’d especially like input from people who have worked on unusual recurrent/state-space architectures:
我特别希望听取那些在非典型循环/状态空间架构方面有经验的人的意见:
If you had a discrete rule system where long-term memory reaches the output but not the internal dynamics, how would you inject that memory into rule selection without destroying the local structure that already works?
如果你有一个离散规则系统,其中长期记忆能到达输出端但不影响内部动态,你会如何将这种记忆注入到规则选择中,而不破坏已经有效的局部结构?
I’m considering things like persistent routing state, memory-conditioned hashes, separate slow/fast state, or letting only some rule phases see memory.
我正在考虑持久路由状态、记忆条件哈希、分离的慢/快状态,或仅让部分规则阶段感知记忆等方案。
Curious what you would test first.
好奇你们会首先测试什么。
更进一步:量化金融体系
看懂新闻只是起点——沿量化金融路径,把它变成能交付的工程能力