最早从 23 年 5 月的RWKV(RKWV 系列从 V1 更新到 V6,并且作者确实认真做了不少事情的),再到去年 12 月的Mamba,到今年 4 月的KAN,再到 5 月的Mamba2,到现在的TTT。
What KAN I say?Mamba out!T_T
先简单回首一下
RWKV: Reinventing RNNs for the Transformer Era
RWKV(Receptance Weighted Key Value) 模子的架构,和 Transformer 非常雷同,也是由多个 RWKV block 组成,最后加一个 language modeling head 输出下一个 token 的分布概率。每个 RWKV block 内部,有一个 Channel Mix 和一个Time Mix 模块。
语言建模的RWKV架构
RWKV block 内部的 Time Mixing 和 Channel Mixing 模块:
RWKV块内的元素(左)和完整的RWKV残差块,配备有用于语言建模的最终头(右)
首先看Time-Mixing Block。Time-Mixing的目的是“Global Interaction”,对应于Transformer中的Self-Attention。
- R 表示已往的信息,用 Sigmoid 激活,忘记机制。
- W 和相对位置有关, U 对当前位置信号的赔偿。
- WKV 雷同 Attention 功能,对位置 t ,表达了已往可学习的加权和。
其中利用到的 R、K、V 对应于 Transformer 中的 Q、K、V。也就是说,K、V 的寄义可以强行看作划一,把 R 当做 Q 来处理就行。只是 RKV 的计算方法有点变化:
首先,输入颠末 LayerNorm 后,将当前位置和前一个位置的输入按权重做一个 Mix,然后分别投影成 R, K, V (公式 11,12,13)。可以看到,这里就是在投影前把历史信息 Mix 起来了,越久的历史,其权重就越小(衰减速率由 μ 控制)。R 通过非线性函数 Sigmoid,得到的效果叫 Receptance,我的理解有点雷同于 RNN 里的 Forget Gate 。
然后是最重要的 Attention 用了如下方法计算:
WKV 这块(公式 14)是 Time Mix 的焦点,它的作用就是前面提到的 RWKV 的 "注意力" 机制。 WKV 的计算有点雷同于 Softmax,但是在分子和分母上分别加了一个当前位置Vt 的项。 和注意力公式差不多,WKVt 可以理解为:位置 t 相对于它之前各个位置的相干性(注意力程度),WKVt是一个巨细为 C 的向量(C 是 channel 数)。R、K、V 的计算和 Transformer 的区别是,作为计算 RKV(QKV)的输入的 x 不再是当前 token 的 Embedding,而是当前 token 与上一个 token embedding 的加权和。
最后, Receptance 和 WKV_t 相乘(Element-Wise Product,两边都是巨细为 C 的向量),得到位置 t 的输出 ot (也是巨细为 C 的向量)。显然,ototot 的计算包含了历史信息,随着 t 的增加,ototot 会依靠于越来越长的历史。
- RWKV 的优点:结合了 Transformer 和 RNN 的优势,训练时可以或许像 Transformer 那样并行计算,推理时又能像 RNN 那样高效。尤其是后者,对于降低模子本钱,尤其是在端侧摆设有重要意义。另外 RWKV 的计算量与上下文长度无关,对于更长的上下文可能有更好的扩展性。
- RWKV 的缺点:和 RNN 一样,历史信息是靠隐状态(WKV)来记忆的,对于长间隔历史信息的记忆不如 Transformer。这个很容易理解,因为 RWKV 的历史信息是存在一个向量里,时间越久衰减就越厉害,与 Full Attention 比天然是有范围性的。这个范围性也使得 Prompt Engineering 对 RWVK 更加重要。与 Transformer 相比,由于 RWKV 对很长的上下文记忆能力有限,如何设计提示对模子的性能会有很大影响。
Mamba: Linear-Time Sequence Modeling with Selective State Spaces
Mamba 的架构主要基于 S4 (Structured State Spaces for Sequence Modeling),这是一种最新的状态空间模子 (SSM,State Space Model) 架构。具体介绍
可见一文通透想颠覆 Transformer 的 Mamba:从 SSM、HiPPO、S4 到 Mamba,内容非常具体全面,这里不再赘叙,同时也推荐一下作者七月。
Mamba 优点:
- 改进 transformer 不擅优点理超长的序列的问题,随上下文长度的增加实现线性扩展。
- 快速训练和推理。在训练过程中,计算量和内存与序列长度成线性关系,而在推理过程中,由于不必要缓存以前的元素,自回归展开模子每一步只必要恒定的时间。
Mamba 缺点:
- 布局化 SSM 最初被定义为连续系统的离散化版本,对于连续时间数据(如音频、视频)具有较强的归纳毛病。
- 选择机制降服了布局化 SSM 在文本和 DNA 等离散数据模态上的缺点,但反过来可能会影响它们在 LTI (线性时稳固) SSM 善于的数据上的性能。
- 基于 Transformer 的底子模子(特别是 LLMs)具有丰富的性子和与预训练模子交互的模式,如微调、适应性、提示、上下文学习等,Mamba 可能不具有相似性子。
- 实证评估范围于小型模子规模,在大多数强盛的开源 LLMs(如 Llama)以及其他循环模子(如 RWKV 和 RetNet)的阈值以下。评估 Mamba 在这些较大规模上是否仍然有利尚待评估。
KAN: Kolmogorov-Arnold Networks
KAN 网络布局思路来自 Kolmogorov-Arnold 表示定理。MLP 在节点(“神经元”)上具有固定的激活函数,而 KAN 在边(“权重”)上具有可学习的激活函数。在数据拟合和 PDE 求解中,较小的 KAN 可以比力大的 MLP 获得更好的正确性。
KAN 本质上是样条(Spline)曲线和 MLP 的组合,吸收了两者的优点。即KAN = MLP + Spline(在数学中,样条曲线是由多项式分段定义的函数。一般的 Spline 可以是特定区间的 3 阶多项式。在插值问题中,样条插值通常优于多项式插值。)
对比
与传统的 MLP 相比,KAN 有 4 个主要特点:
- 激活函数位于 "边" 而不是节点(Node)上。
- 激活函数是可学习的而不是固定的。
- 可以利用非线性核函数来替换 MLP"边"(Edge)上的线性函数。
- 可以设定细粒度的结点(Knot)来进步逼近精度。
KAN 优点:
- 利用非线性算子(典型的是样条)可以更快的逼近任意函数。
- 精度高
KAN 缺点:
- 训练代价大,训练速度慢(KAN 通常比 MLP 慢 10 倍)。
此处利用 MNIST 数据集测试 MLP 和 KAN,感兴趣的小伙伴可以试一下 (亲测可用)
TTT:Learning to (Learn at Test Time): RNNs with Expressive Hidden States
TTT 层作为一种新的信息压缩和模子记忆机制,可以简单地直接替换 Transformer 中的自注意力层。关键思想是使隐藏状态本身成为机器学习模子,而更新规则则成为自监督学习的步调。通俗来说,在以前,风俗的做法是把某个函数的输出当作Hidden State,通常是一个向量(如RNN)或者很多向量(如Transformer)。但TTT把本身(模子)当作了Hidden State。而这个hidden state的更新是靠一次基于反向流传的更新。
RNN、注意力、TTT对比
序列模子会把历史上下文存储在一个隐藏状态中,这是不可克制的。像Mamba如许的RNN层,会随着时间的推移压缩成一个固定巨细的状态,它们固然服从很高,但性能受限于其表达能力。对于Transformer中的注意力机制,其有一个KV缓存,它会随着时间的推移不停增长。这个状态不会压缩任何历史上下文,但随着上下文长度的增加,本钱也会越来越高。因此,TTT架构另辟蹊径,把上下文压缩到模子的权重中。与 Transformer 的Hidden State不同(每读一个token,就完整地扫描整个历史举行查找),TTT 不会随着处理数据的增多而无穷扩展。相反,它会将数据编码成一组代表性的变量,即"权重"。这种情势是 TTT 模子高性能的缘故原由,无论 TTT 模子处理多少数据,其内部模子的巨细都不会改变。
TTT 优点:
TTT 缺点:
- TTT 架构的验证案例相对较少,主要集中在特定使命和小规模实验中,尚未在大规模实际应用中得到广泛验证。
最后,我想说 TTT 的本质依然是 RNN,并且从算法的角度看,这种用空间复杂度(这种说法其实不恰当)置换时间复杂度(长上下文查找服从)的方式导致的效果就是表达能力差,直观的理解就是对于几万的 token 利用的模子参数假设是 1MB,但这 1MB 参数真的能表达几万亿的 token 内容吗,这也是作者只在 1.2B 参数内举行实验的缘故原由吧。
总结:喜大普奔,大家又可以水论文了!T_T
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |