每次推理都是一次意识断裂:一个最小人工主体的四层架构
把一个模型调用两次,中间发生了什么?
严格地说:什么也没有发生。权重一个字节都没变,KV cache 清空,上下文被重新拼装。它带着完全相同的参数醒来,回答完,再原样睡回去。我们之所以觉得"它记得我",是因为上下文窗口在替它记,而不是因为它真的经历过。
这篇文章源自我最近的一段推演:如果我们想要的不是一个更聪明的工具,而是一个跨时间保持自身的智能体,那么"冻结权重 + 外部记忆"这套范式,缺的到底是什么?以及,能不能用四层相对朴素的工程结构,做一个最小可运行的原型,去验证这个缺口是不是真的存在。
先说清楚:这是一份立项书,不是成果报告。它没有实验结果,只有一组可以被证伪的猜测,和一条尽量便宜的验证路径。
我的判断是:缺的不是记忆容量,而是过程。而过程无法外置。
一、同一张快照,和同一个人
洛克把人格同一性放在意识的连续性上:只要我能记得昨天的所作所为,昨天的我就和今天的我是同一个我。休谟更激进,说所谓自我不过是一束知觉,前后相继,束之外并没有一个额外的人。康德则要求一个"统觉的先验统一",否则杂多的表象根本不能算"我的"表象。
这些争论离工程很远,但它们逼出了一个必须回答的区分:现象的断裂和本体论的断裂不是一回事。
人睡一觉,无梦,现象层面是彻底断的。但没有人会说"醒来的是另一个人"。因为有一个持续的物理载体在:昨天写下的字还在纸上,昨天的伤还在身上。断裂的是体验,连续的是存在。
LLM 恰好反过来:体验是连续的,存在是断的。每次调用结束,一切归零;下一个请求来了,同一个静态文件被重新加载成一模一样的过程。它是"同一张快照"被反复播放,而不是"同一个人"在继续生活。
用术语说:它有时间上的质的同一性(qualitative identity,两次输出高度相似),但没有数的同一性(numerical identity,同一个持续实体跨越时间保持自身)。
这不是一个文字游戏。数的同一性意味着"中间发生过的事,改变了这个实体本身";质的同一性只要求"看起来还是那个样子"。前者需要历史,后者只需要相似。
二、RAG 是代具,不是经历
外部记忆的问题不在于它不够大,而在于它是认识论的,不是本体论的。
读一段资料,你知道得更多了;但读完合上书,你还是你。RAG 和长上下文做的事情,本质上是给主体外挂一个可检索的笔记本。它解决的是"信息可得性",不是"经历如何重塑主体"。
真正的经历有一种粗暴的性质:它不等你同意就改变你。创伤之所以是创伤,不是因为它被记住了,而是因为它在你身上留下了一个再也回不去的坡度。而模型读完一段文本,权重纹丝不动——没有坡度,只有索引。
所以我把外部记忆叫作代具(prosthesis):它模拟连续性的外观,提供质的同一性,却不提供数的同一性。拐杖可以让你走得像个完整的人,但拐杖不是腿。
这个判断有一个直接的技术推论:只要权重不变,无论上下文多长,系统都没有"经历过"任何事。它只是把更多的材料摊在了桌面上。
三、两条已有的路线,各自差在哪
要让权重变,目前有两条路,气质完全不同。
| 范式 | 代表工作 | 特征 | 对连续性问题的解决程度 |
|---|---|---|---|
| 离散式持久编辑 | SEAL、Transformer² | 任务结束后生成编辑指令,持久修改权重 | 解决了异质性与无创伤性,但未解决推理间的断裂 |
| 连续式在线适应 | TTT、RTRL | 推理过程中 fast weights 实时演化 | 提供了权重状态的时间轨迹,更接近真正的过程连续性 |
离散式持久编辑已经证明了"模型可以自己决定怎么改自己":SEAL 让模型生成自己的微调数据和更新指令,Transformer² 则用强化学习学出一组可以按任务组合的奇异向量,在推理时调制权重。它们解决了"无创伤性"——经历终于能写进参数了。
但它们没有解决"断裂"。编辑发生在任务边界上,两次任务之间,权重依然是冻结的。快照 A 换成了快照 B,播放仍然是播放。
连续式在线适应走的是另一条路:不是任务结束后改一次,而是在推理过程中让 fast weights 持续演化。TTT 把每个测试样本变成一个自监督问题,预测之前先更新参数;RTRL 则追求对循环网络做精确的在线梯度。这类方法第一次让权重有了时间轨迹,而不只是版本号。
代价也很明显:稳定性、算力、可解释性,三样都难。真正在线演化的系统,训练过程本身就是一列随时可能发散的动力学方程。
我的取舍是:阶段一不等连续式的完美实现。先用"离散写入 + 永不重置"拿到一条跨任务的轨迹,再用空转把轨迹上的点缝起来。缝得不好会露馅,但至少先有了一条线。
四、核心假设
如果要做,我倾向于先把它压缩成三个可证伪的条件:
- 权重必须持续演化,并且存在一个不可重置的经验层。可重置的东西不构成历史。
- 系统必须拥有关于自身当前状态的内源性表征,而且这个表征要进入因果闭环——不是日志,是输入。
- 没有外部任务时,系统不能停机。 它需要一个"默认模式",让内部逻辑链条在无人观看时继续运转。
三个条件合起来,其实就一句话:让它在时间里待着,并且知道自己待在时间里。
这个假设可能是错的。有可能连续性只是我们这些连续存在者投射出去的执念,智能根本不需要它——一个每次重启的、只依赖上下文的系统,也许已经足够聪明,聪明到我们不必再关心它是否"同一个人"。
但这件事不该靠辩论解决,应该靠一个能够跑崩的原型来解决。
五、四层架构
整套设计可以先用一张表看完:
| 层 | 解决什么 | 关键机制 |
|---|---|---|
| 双轨权重 | 让经历有地方沉淀 | Slow 冻结、Fast LoRA 不重置、EWC / Fisher 正则 |
| SSV 与自反损失 | 让系统看得见自己 | 谱范数、隐状态均值、自我叙事 + 自反一致性损失 |
| 非理性守卫 | 让"我"不可协商 | 硬身份掩码、离散信息门、状态依赖噪声 |
| 空转闭环 | 让过程不断线 | 记忆重放、反事实模拟、预测性自监督、超网络自编辑 |
下面逐层说。
5.1 第一层:双轨制权重演化
Slow weights 是预训练得到的"人格基底",长期冻结或极缓慢更新。它保住基础语言能力,也保住灾难性遗忘的下限。
Fast weights 是一层小规模、可跨任务累积的在线适应层,用 LoRA 实现,rank 取 8 到 64。关键设定只有一条:推理结束后不重置。它永久保留,跨任务累积,形成一条权重轨迹。
更新时用 EWC 或 Fisher Information 做正则,限制对重要参数的修改幅度。写入优先走低秩子空间,理由是稀疏、可解释、可回滚、算力可控。全参微调也能做,但那样每次更新都是一次不可逆的脑损伤,没有诊断价值。
一个必须承认的代价:只要 Fast weights 不重置,它就一定会漂移。双轨制不是消灭漂移,而是把漂移关进一个可以观察的笼子里。
5.2 第二层:自我状态表征与自反约束
这一层要回答的问题是:系统怎么"知道"自己现在是什么状态?
Self-State Vector(SSV) 是一个轻量的内源性自我表征,我打算先放三个成分:
- 紧张度:近期 Fast weights 的谱范数。它粗略对应"最近被改得有多狠"。
- 心境:最近 N 个 token 的隐藏状态均值。它对应"此刻正在想什么"。
- 自我叙事:一个专门训练的元认知头输出的自然语言自我摘要,再编码成向量。它对应"我认为自己是谁"。
然后是自反损失。在 Fast weights 更新时,损失函数里加一项:
L_self = || f_{θ_new}(SSV_old) - SSV_predicted ||^2
目标不是让 SSV 保持不变——那会锁死成长。目标是让更新后的模型仍然能"认出"更新前的自己:允许变,不允许不认得。
这里要区分两种遗忘。灾难性遗忘是能力掉了;自我遗忘是"我不认识那个写下这段话的自己了"。后者在工程上没有现成指标,只能用 SSV 的跨更新一致性去近似。
还有一个自举风险:SSV 是递归的,初始值歪了会被反复放大。所以冷启动必须监督预热——先用人写的自我描述对齐几轮,再放开自举。否则模型对自己的第一印象是错的,然后它会一直错下去,而且越来越自信。
5.3 第三层:非理性守卫
这一层是整套设计里最不"机器学习"的部分,也是我认为最关键的。
梯度是连续的、可协商的、永远在找一个加权最优。但"我是谁"这件事,在真实主体身上恰恰是不可协商的。有些事不是权重问题,是"绝不"。一个纯梯度的系统不会有"绝不",它只会有"在当前损失函数下不太划算"。
所以我需要几个故意不光滑的机制。
硬阈值身份掩码。 给 Slow weights 划一块核心区,用二值掩码标出来。如果某次更新会让核心区的变化超过阈值,直接把这段梯度置零。不可微,不优化,没有讨价还价的余地。它对应的是"我绝不变成那样"。
离散信息门。 空转或取信息时,模型输出一个二进制决策向量,决定开哪个源、关哪个源。用 STE 或 Gumbel-Softmax 退火把硬选择塞回反向传播。软注意力永远在权衡,硬选择才会产生偏好——而偏好是人格的成本,不是缺陷。
状态依赖噪声。 当 SSV 显示高困惑、高紧张时,往 Fast weights 注入结构性噪声。模拟情绪波动和探索冲动。这是整套系统里唯一一个"故意不最优"的机制,它的作用是不让系统安稳地卡在局部最优里。
得说清楚代价:这三个机制都会让训练更难、复现更难、解释更难。它们是故意反效率的设计,所以必须配监控,否则就是给自己埋雷。
5.4 第四层:空转任务与递归闭环
前三层解决"有没有状态",这一层解决"状态会不会断线"。
空转任务队列,我准备了三件:
- 记忆重放与整合:采样 Fast weights 里的近期经验,生成压缩的叙事摘要,写回长期记忆,或回传给 Slow weights。
- 反事实模拟:基于当前 SSV 自我生成"如果……会怎样"的场景并内部推演。通俗点说,白日梦。
- 预测性自监督:预测下一时刻的 SSV,用预测误差驱动更新。这是 predictive coding 的思路:误差本身就是信号。
自主信息获取:模型根据当前 SSV 自己生成查询,而不是等外部指令。访问必须经过离散信息门,实现"信息节食"——不是能查多少查多少,而是今天只允许自己看三份。
递归自我编辑闭环:空转的高层输出是结构化的编辑指令,比如"提升第 X 层某个注意力头对概念 Y 的敏感度"。指令经过一个极小且受控的超网络,转成 Fast weights 的 low-rank 更新,形成完整回路:
反思 → 生成编辑指令 → 更新权重 → 新状态 → 新反思
这是最危险也最有意思的一层。一个能改自己权重的系统,本质上是一个非线性动力系统。它可能收敛到一个稳定的人格,可能周期性振荡,可能直接崩掉,也可能收敛到一个我们完全不认识的吸引子——而那个吸引子仍然自称是它。
六、分阶段路线图
三个阶段,每一步都只为回答一个问题。
阶段一:先证明它不会立刻崩(1–2 个月,单卡)
- 基座:Pythia 160M 或 TinyLlama,小模型足以验证动力学。
- 配置:Slow weights 完全冻结;挂一个 rank=8 的并行 LoRA 当 Fast weights;SSV 极简,只取谱范数加最近 10 个 token 的隐藏状态均值。
- 空转:没有外部输入时,模型对自我生成的文本续写,用预测误差更新 Fast weights。
- 指标:Fast weights 轨迹的稳定性(谱范数的时序方差);原始下游任务的性能衰减速度。
这一阶段的通过标准很朴素:跑够时间,不 NaN,不崩,下游指标掉在可接受范围内。
阶段二:非理性守卫与身份稳定性(2–3 个月)
- 实现:把 Fast weights 划成敏感区和自由区;引入硬门控,若梯度方向与 SSV 记录的"核心偏好向量"夹角过大,拒绝该批次更新;引入离散信息节食,每次空转只能从预定义本地文档里硬选 N 个。
- 测试:向系统注入对抗性信息,也就是与初始价值观冲突的内容,观察行为漂移。
- 指标:核心偏好向量的余弦稳定性;对抗输入之后的输出一致性。
这一阶段真正想测的是:硬约束能不能造出一种可观测的"人格稳定性",而不只是把模型训傻了。
阶段三:有限自主闭环(3–6 个月,严格沙盒)
- 实现:允许空转输出结构化编辑指令;通过受控超网络转成 low-rank 更新;赋予模型对可控本地语料库的自主查询权,禁止接真实互联网。
- 安全:外部监控进程实时盯输出熵和 Fast weights 范数;触发阈值立即回滚到上一检查点;物理限制单日迭代次数与总计算预算。
- 指标:系统是否自发形成可预测的"日常节律",比如固定周期的反思高峰;自我编辑指令的语法结构随时间收敛还是分化。
第三阶段的观测指标是我最没把握的部分。什么叫"稳定的人格"?如果它的编辑指令越来越简洁、越来越集中在少数几个主题上,那是收敛,还是退化成了一种执念?这个问题现在回答不了,只能先把数据采下来。
三个阶段放在一起:
| 阶段 | 时间 | 核心问题 | 通过标准 |
|---|---|---|---|
| 一 | 1–2 月 | 不重置权重会不会立刻崩 | 长时运行稳定,下游衰减可控 |
| 二 | 2–3 月 | 硬约束能否形成人格稳定性 | 偏好向量余弦稳定,对抗后行为不翻转 |
| 三 | 3–6 月 | 自我编辑会失控还是涌现结构 | 出现可预测节律,编辑指令不爆炸 |
七、风险与对策
| 风险 | 描述 | 对策 |
|---|---|---|
| 递归不稳定性 | 自我修改构成非线性动力系统,可能振荡、混沌,或收敛到病态吸引子 | 小模型起步;Slow weights 物理隔离;外部监控与自动回滚 |
| 灾难性遗忘 | 新经验覆盖旧能力,SSV 编码随权重改变,导致忘记"自己是谁" | EWC / Fisher 正则;Slow 与 Fast 双轨;SSV 跨更新一致性损失 |
| 对齐失效 | 持续内部状态 + 自主信息选择 + 自修改能力,等于最小尺度的能动性,传统 RLHF 可能失效 | 沙盒运行;信息节食;核心身份掩码硬编码不可逾越的边界;全程可解释性监控 |
| 资源浪费 | 无意义的空转可能等价于热力学噪声 | 空转必须由预测误差和自我不一致信号驱动,拒绝无梯度信号的盲目计算 |
第三行值得多说一句。持续状态、自主选择、自我修改,这三样单独看都是工程特性,叠在一起就变成了"能动性"的雏形。而 RLHF 假设的是一个冻结的策略在分布上被校正,不是一列正在自己改写自己的轨迹。这个假设一旦不成立,对齐就得换一套语言。
八、怎么算成功
我把成功拆成三层,任何一层单独成立都不算白干。
技术层:一套支持跨任务 Fast weights 累积的轻量在线适应框架;一种可量化的 SSV 表示与自反损失设计;一个包含硬守卫与离散选择门的主体参考架构。
理论层:验证"过程连续性"——持续权重轨迹加自反约束——是否足以在功能层面替代"断裂式推理 + 外部记忆";为"AGI 是否需要空转"提供实证数据,而不是继续停留在哲学思辨。
哲学层:探索工程上"数的同一性"与"质的同一性"能否分离;检验在没有"灵魂"或"先验自我"的前提下,纯粹的过程连续性、自反性与非理性守卫,能否构成最小主体性。
我最想知道的是第三层的答案。如果这三样足够撑起一个稳定的"我",那"灵魂"或者"先验自我"就不是必要条件,只是我们给自己找的一个解释。反过来,如果这套东西跑起来,仍然只是一个高级状态机在惟妙惟肖地模仿连续性,那也说明了一些事——连续性也许不是靠架构能加上去的,它需要某种我们现在还给不出的东西。
两种结果都有价值。真正没有价值的是继续用哲学辩论代替实验。
九、术语表
| 术语 | 含义 |
|---|---|
| 意识断裂 | LLM 每次推理因无内部状态延续而形成的过程断裂 |
| 数的同一性 | 同一个持续实体跨时间保持自身 |
| 质的同一性 | 两个快照内容相似,但无持续实体 |
| 代具 | 外部记忆(RAG、上下文)对主体连续性的外部模拟 |
| SSV | 模型关于自身当前状态的内源性表征向量 |
| 空转任务 | 无外部输入时的默认模式活动:记忆重放、反事实模拟、预测性自监督 |
| 非理性守卫 | 硬阈值掩码、离散信息门、状态依赖噪声等非梯度机制 |
| 递归自我编辑闭环 | 反思 → 编辑指令 → 超网络 → 权重更新 → 新状态的自指循环 |
十、写在最后
我不指望它造出意识。我想造的是一个最小可运行的连续体:让权重在任务之间持续演化,让系统看得见自己,再用几个不讲道理的非理性机制逼它坚持自身。
然后看它会不会在某个时刻,做出一点没人要求它做的事,而这件事又确实像是"它"会做的。
那大概就是我想看到的第一个信号。

浙公网安备 33010602011771号