智猩猩AI整理
编辑:金水
诞生近40年的 Fast Weight 思想,被字节跳动等团队重新带回大模型注意力机制。
Fast Weight 是 Hinton 在 1990 年代提出的设想,即网络除了一直在训练的"慢权重",还有一套在推理时按上下文快速改写的"快权重",让模型不重新训练也能记住刚见到的模式。
今天 Mamba、线性注意力、DeltaNet 这类循环模型,把上下文压进一个固定大小的循环状态、每来一个 token 更新一次,和 Fast Weight 共享同一个直觉:用一小块"快速记忆"替代全部历史。
但这类循环模型大多只给状态更新的公式,很少说清这条公式究竟在优化什么?那块"快速记忆"到底在学什么、怎么学,一直是笔糊涂账。
字节跳动联合普林斯顿王梦迪团队、清华、加州大学洛杉矶分校等机构发表的论文接下了这个问题。
它的关键一步,是把"循环状态该怎么更新"重新表述成一个持续学习(continual learning)问题:模型一边接收新 token、一边更新记忆,还不能让新信息把旧知识冲掉(灾难性遗忘);每来一个 token 就是一条新训练样本,前向传播全程不停。
在这个视角下,他们提出了一套名为Falcon的更新规则,把循环状态写成带显式目标的在线快速记忆。
效果上,Falcon 的语言建模和同规模 Transformer 基本持平,而在"把能力外推到更长序列"上明显更稳;在约 1.2 亿参数、500 亿 token 的对比实验里,变长多位数加法的平均准确率达到 87.2%,其中 48 位超长输入上的准确率(69%)明显高于 Transformer 的 49%。
![]()
论文题目:
Fast Weight Attention for Continual Learning
01
被忽略的时间对齐
假设我们在做自回归的"预测下一个 token"。
在标准的循环写法里,第 t 步通常会把"当前键特征"和"当前值"绑成一对( , )记忆,这相当于在做一种同一步关联(same-step association),像查表一样:看到 ,就想到 。这当然是因果的。
但论文指出,在预测下一个 latent这个目标下,正确的配对其实是(, ),就是在你做预测那一刻已经可见的前缀特征去对应刚刚冒出来的那个目标值 。
![]()
![]()
![]()
两者差了一个位置。
打个比方你想学会"根据上文猜下一个词",训练样本应该是「上一句听到的内容 → 紧接着出现的词」,而不是「当前这句完整内容 → 当前这句的词」。后者虽然也是合法的因果关联,但它优化的是另一个内部目标。
论文把这种对齐叫作read-after-write / next-latent 对齐:先观察到并写入,再用更新后的状态去预测 t+1。这个"位移"不改变因果性,只改变记忆到底在学什么。
文中认为,很多现有循环模型用的其实是同一步配对,而它在自回归设定下优化的是一个不太对路的目标。
把上面的思路推到底,结论很自然:把循环状态看成一台在线学习的快速线性预测器,这恰好就是 Fast Weight 的现代版本。
每一步,前缀特征 "输入";
刚出现的值 是目标;
状态 基于前缀特征对 做一个预测,算残差;
然后用这个残差去更新状态,并把旧状态按一定比例"遗忘"。
每一步 token 都给这台小机器提供一条训练样本,前向传播全程不停止地在线学习。这正是持续学习 / continual learning的视角,模型必须一边接收新证据、一边更新记忆,还不能把旧的东西一股脑冲掉(灾难性遗忘)。
有意思的是这套想法并不是凭空来的。论文把它和自适应滤波(经典 LMS / NLMS 算法)、快速权重(fast weights)、以及"上下文学习即隐式优化"这几条线索接在了一起。
02
Falcon:持续学习的更新规则
作者把前面那个"在线持续学习"的视角,落成了一族命名很有规律的更新规则,叫Falcon。它的结构其实很好记:两个坐标轴交叉。
一个轴是优化目标:回归族(最小化预测误差)和内积族(直接对齐)。
另一个轴是更新粒度:1 = 全局一个学习率;2 = 每个值通道各一个学习率;3 = 在一个滑动窗口里做批量更新。
把两个轴一交叉,就是 Falcon-1 / 2 / 3 加上带 "A" 后缀的 1A / 2A / 3A,共六个变体。
![]()
![]()
(1)两条优化目标:先想清楚在最小化什么
回归族(Falcon-1 / 2 / 3)把状态当成一个线性预测器,每一步都在最小化"预测值"和"实际出现的值"之间的平方误差,外加一点防止过拟合的 L2 惩罚。
更新规则可以写成一句大白话:
新状态 = 旧状态按(1 − ηλ)衰减 + η · 前缀特征 · 预测残差
先沿着"当前特征方向"把旧状态里对应的那部分预测抹掉(rank-one 收缩),再把新目标写进去。
这正是自适应滤波里经典 NLMS 算法的在线梯度步。事实上,当 λ=0、ε=0 时,Falcon 的回归更新就精确退化为经典 NLMS。
η 是归一化步长,用输入特征的尺度做分母,避免数值随向量长度乱飘;λ 控制"遗忘"的强度,可以当成一个简单可控的遗忘旋钮。β 则是无量纲的可塑性增益,最终步长 η 由它和局部尺度共同决定。
内积族(Falcon-1A / 2A / 3A)换了一个更简单的目标:不先算误差,而是直接把"目标"写进状态(类似经典线性注意力的累加式写入)。
![]()
![]()
![]()
名字里的"A"后缀就表示用了内积目标。这一族里没有"抹掉旧预测"那一步,分母在这里更像"写入幅度的归一化",而不是曲率归一化。
(2)三个粒度:从共享到分通道到滑窗
Falcon-1:所有值通道共用一个标量学习率。最简单,也最省。
Falcon-2:每个值通道各有一个学习率。直觉上,不同维度的信息"该学多快"本来就不该一样。这一条是论文里比较用心的设计,作者推导了向量化的对偶形式,让"按列自适应"在 GPU 上也能算得动(用 WY / Gram 表示 + 批量三角求解),而不只是理论上好看。
Falcon-3 / 3A:在一个大小为 B 的滑动窗口内,对最近若干条因果样本做一次 mini-batch 式更新,而不是只盯住当前一步。
六个变体都和Mamba-2 的 SSD(结构化状态空间对偶)框架兼容,可以用chunk-parallel 方式并行训练,把序列切成块,块内并行、块间只传递固定大小的状态。
这意味着它不是只能一步步串行扫、慢吞吞地"在线"跑,而是能像 Transformer 一样高效地批量训练。这一点对真正落地很关键,也是很多"看起来很美"的循环模型卡住的地方。
Falcon 的价值更像一次统一,而不是凭空发明一个新模块。
回归族在特殊设定下就是经典 NLMS;
内积族若用同一步配对( ),就退化为大家熟悉的线性注意力 / Mamba-2 累积;
论文真正多做的,是把时间对齐这件事显式写出来,并给每个变体配上了和目标匹配的归一化步长。
所以与其把它看成某个更强的注意力替代,不如看成一张把已有想法摆清楚的地图。
03
接近 Transformer,
外推更稳
论文在 124M–130M 参数、约 50B token(FineWeb-Edu)上做了对比,基线包括 Transformer、RetNet、Mamba-2、DeltaNet、Gated DeltaNet。
语言建模困惑度(FineWeb-Edu,越低越好):
![]()
算术外推(变长多位数加法,越长越难,越高越好):
![]()
这里要老实说一句:论文自己也没把它写成"全面碾压"。在下游任务零样本/单样本平均准确率上,Falcon 和 Transformer、Gated DeltaNet 互有胜负,并不存在一边倒的领先。
在这个被刻意隔离出来的场景里,位移 + 归一化的 Falcon 变体表现更好,作者把它定位为佐证,说明当"记忆写入与携带"成为主矛盾时,这套对齐方式的外推更稳,而不是把它当成论文的"主结果"来吹。
04
总结
Falcon 的价值,不在于又端出一个"更强"的模块。它的贡献更像一个澄清:
把"循环式序列建模"重新表述为带显式快速记忆目标的在线持续学习——也就是把老 Fast Weight 思想,落进了今天大模型注意力的实处;
指出并分离了那个被忽略的时间对齐问题, 才是自回归下该用的因果训练对;
给出了一套归一化、可控制遗忘、且能 chunk-parallel 训练的更新规则;
把"时间对齐、可塑性、遗忘、有限回放"这几件事拆开来看,而不是糊在一起。
对做线性注意力、SSM 或高效序列模型的人,这个视角能帮你在设计那一步"状态更新"时,想清楚自己到底在优化什么。
关注+星标,获取AI前沿进展与开源一线动态
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.