背景

前文 《大语言模型的基石:Transformer 入坑笔记(四) - 线性注意力(Linear Attention) 的基础》 介绍了线性注意力的基本思路:把历史 K/V 压进固定大小的状态,避免每次读出都遍历完整历史。 但计算量降下来以后,还有两个问题:有限状态该怎样保留和更新信息,以及怎样把递推计算组织成 GPU 擅长的大块矩阵运算。

各家 LLM 对长上下文的解决方案并不完全一致。Kimi K3 发布后,我自己体验下来效果相当好,也因此想了解它所用的 KDA。 此前公开的 《Kimi Linear: An Expressive, Efficient Attention Architecture》,正好给出了这条路线的设计和实验。

这篇继续梳理 Performer、DeltaNet、GLA、Mamba-2 / SSD 和 Gated DeltaNet,重点放在状态更新与分块计算上。最后再到 KDA 的逐通道 Delta 更新。

涉及的论文比较多,我也是零散地抽时间看和理解,阅读周期拖得比较长。这里主要记录公式和计算过程,性能结果以各论…

背景

接上文 《大语言模型的基石:Transformer 入坑笔记(三) - 注意力机制和 Transformer》。

通过之前的内容,我们大致了解了大语言模型的基石:Transformer 的基础原理。 但随之而来有一个问题:随着参数量和上下文长度的增长,计算量太大扛不住了。

现在很多大语言模型,经过了多轮迭代,终于陆陆续续能在参数量持续提高的前提下同时支撑 1M 上下文。

背景

接上文 《大语言模型的基石:Transformer 入坑笔记(二) - 基本原理和 Word Embeddings》,继续我们的 Attention Is All You Need/Transformer 学习之旅。

首先简单了解下传统的方案。

卷积神经网络(CNN)

卷积神经网络(CNN)似乎更适合静态数据(比如图片处理、提取特征等)。 所谓静态数据,是指每个数据组都单独和目标矩阵运算,通过卷积层、池化层、全连接层等输出。 每个数据组都单独运算所以可以大规模并发,但是数据组之间也缺乏关联。 我大概看了下原理,和我们要关注的 Transformer 关系不大,先略过了。