Continual Learning
Test Time Training
- https://arxiv.org/pdf/2512.23675
TTT 是一个Continual Learning的方案,早期的TTT还没有应用在 LLM 上,在没有scaling的情况下,域外数据对于模型是一个难题,因此人们当时采用了TTT,来处理图像分类等任务
监督信号
测试时的数据没有标签,因此人们要手动构造一些可供训练的数据出来,在最初的TTT论文上,人们将图片旋转特定角度,用模型来预测图片旋转的角度,来进行训练,后续发展出来MAE的方案,也即遮住图像的部分patch,然后预测遮住的部分,更加有效且通用
后续进入LLM领域之后,监督信号自然变成了Next token prediction
参数更新
对于TTT而言,更新全量参数往往不是一个现实的做法,尤其是进入LLM领域,人们往往考虑只更新
- Layer Norm
- Lora
- 内嵌一个几层的小模型
LLM TTT
LLM在早期也是引入了一个小型的神经网络,模拟RNN中的隐状态,每个时间步用自监督损失对W做梯度更新。但是后续人们为了支持更加实时地输出,努力降低计算开销,将神经网络替换成一个线性模型,也就是没有激活层的MLP,相当于乘了一个矩阵。
TTT本质是要做上下文学习,相比于静态的context输入,TTT可以改变部分参数来针对现在的上下文进行学习,人们开始考虑用TTT的线性模型来替代Self-Attention(么有替代qkv矩阵,只是替代了最后一步softmax操作)。本质上来说,Self-Attention机制不承担世界记忆,而是用作上下文内关联性的学习,和TTT要做的事情一致,但是TTT的优势在于其可以根据不同的上下文修改参数
这时候的TTT开始变为KV binding,仅增加一个线性模型的TTT就是KV binding
KV binding这个东西一开始和TTT并没有联系,是从KV cache那边发展出来的,KV cache 本身随着token数量的增加线性增长,人们开始考虑各种方案来降低这个开销,KV binding就是其中一个方案,维护一个固定大小的矩阵,将每个KV对以加法的形式存入这个矩阵
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
想要从这个矩阵中提取出KV对,就用对应的Q去乘以这个矩阵,从形式上来说就是对所有历史信息加权求和,对应的数学形式是
我们来对比标准的softmax attention
区别恰好就在于Softmax操作带来的归一化,并且另一方面,KV binding计算形式和Linear Attention是一致的,Linear Attention的核心操作正是去掉softmax,交换qkv的计算顺序来获得线性的复杂度,但是由此我们也知道了KV binding自然也引入了Linear Attention低秩等缺陷
现在我们已经建立了KV binding和Linear Attention的关联,接下来我们来看KV binding和线性层TTT的关联,线性层TTT用一个矩阵替代Self-Attention层,然后根据其梯度下降,我们可以推导出和KV binding和Linear Attention一致的表达
人们用Key-Value对来训练这个线性层,本质上这个线性层用于提供查找的操作
这篇论文揭示了Test Time Training with KV binding和Linear Attention的内在联系
对于Linear Attention,我们知道它是通过交换Attention操作的计算顺序来达到线性的计算复杂度,并且后续还衍生出了一系列的SSM模型,Mamba等SSM模型和Linear Attention的是同一类模型的不同视角
DeltaNet被证明为是单层线性层+零初始化的TTT特例