开场0:00
欢迎收听 《 晚点聊 》, 我是曼祺 。 今天的主题是我们年初的两期节目里讨论过的 " 注意力机制 ", 这是大语言模型的核心机制 。9 月和 10 月 , 阿里和 Kimi 越站面都发布了相关进展 ,而且都用到了一个线性注意力的成果 :DeltaNet。
本期嘉宾就是 DeltaNet 的核心贡献者之一 , 现在在 MIT 读博士的杨松琳 , 她也是线性注意力开源小组 FLA 的发起者 。
这期节目的 25 分钟以前 , 非常硬核 : 杨松琳讲了线性注意力和 DeltaNet 的发展脉络 , 为什么 2021 年刚被提出时它没有引起太多注意 , 后来是怎么进化的 。25 分钟以后是关注 AI 比较多的文科生 、 比如我 、 也能跟上的部分 。
我们讨论了重新去做 full attention 的 MiniMax, 和未来要在旗舰模型上用上线性注意力的越站面和阿里的不同选择 。
线性注意力的优劣势 ,以及一些脑洞 , 比如 " 如果算力无限 , 还需要线性注意力吗 "。 松琳给了很有启发的回答 。
最后半小时, 她分享了作为 AI 研究员 , 她是怎么 get 交叉技能的 、 怎么开始发起 FLA 小组的等成长经历 。
这期里多次提到的 Softmax attention, 可以简单理解为就是最初版本的 full attention。 还有 decay 是指衰减 , 更多详细注释见 Sholes 末尾的附录 , 这些也会发布文字版 。
我们正式进入节目吧 。
松琳你可以和我们的听友简单打一个招呼 , 介绍一下自己的现状 。
好 ,Hello 大家好 , 我叫杨松琳 。 我现在是 MIT C 校的一名 PhD 学生在读 , 然后我老板是 Yongqing。 然后博士期间主要的研究方向就是注意力机制 , 然后主要是线性注意力这个方面 。
注意力机制1:48
就年初我们有两期节目是讨论过注意力机制 ,因为这个也是 Transformer 大语言模型里的一个核心机制 。 一期是 103 期 ,是和 InfLM 的作者萧朝军 , 还有 MOA 的作者傅天宇一起聊稀疏注意力机制的改进 。
然后是 104 期 , 和当时在 MiniMax 的钟怡然聊线性注意力机制 。 因为有一些听友可能对注意力机制还不是那么了解 , 所以松琳你可以先简单地就是从你的角度解释一下注意力机制它在大语言模型里面 , 它是一个什么作用 ,以及为什么很重要吗 ?
注意力机制的话 , 就是通俗来讲的话 , 它就是一个上下文的一个处理的一个机器 , 就是你有一段话 , 你后面的话你如果想用到前面这句话的信息的话 , 那你必须要有一些能够在句子这个维度上面做一些运算的一些操作嘛 。
然后注意力机制的话 , 就是一个非常典型的这种做运算的一个代表 。 一般的话我们可以管这个在序列上面做这种可以说是 mixing, 一般管它叫做 sequence mixing, 就是我们会把不同位置的那些信息把它混合起来嘛 , 然后得到当前的一个 representation 来预测下一个层嘛 。
然后我们就想尽可能去 encover 前面的那些信息嘛 。 然后注意力机制它就是一个非常直接的 , 然后通过建模 , 就是两点之间 pairwise 的这种直接的交互的这么一种机制嘛 。
对 , 所以它是一个平分的一个机制 。 注意力机制它现在应该也可以泛指这一类的这种在序列维度上面做这种信息聚合或者信息交互的一些算子 , 比方说这种线性注意力了 , 然后有一些可能就已经没有那种注意力的这种 interferation 了 。
对 , 你的意思就是说它最开始的那个版本它是一个平分的关系 , 就相当于它要算每个词每个词之间的这个相关性吧 , 或者说它的联系 。
但现在你就说它也可以泛指一些 , 只要是有一些方法能去表达这个关系 , 然后它可能已经有很多不是非线性的了 。
比如说线性的改进其实就是这个方向上的 。
我觉得注意力不一定要这种 pairwise, 就是两个 token 它们之间直接建模注意力的这种方式来做嘛 。 但是我们肯定需要有一些在序列长度上面来做一个信息聚合的一些操作嘛 。
对 , 所以我们可能可以提出很多各种各样这种操作 ,但平分的话它就是最直接 , 然后最被大家常用到的 。
DeltaNet4:21
对 ,因为其实你的工作也是对这个领域的一个改进嘛 。 然后我们可以从最近的一些进展开始聊 。 就为什么这次我特别想找到你来聊这个注意力机制 ,也是因为有好几个新的动向都是和 DeltaNet 有关的 。
一个是 9 月 12 号的时候 , 阿里那边发布了 Qwen 3.0 Next 开源模型 , 然后再就是 10 月底越站面发布了他们的开源线性模型 Kimi Linear, 这个里面都是用到了 DeltaNet 的一些成果吧 。
比如说 Qwen 3.0 Next 它的技术报告里就是提到了 ,他们是在注意力模块混合使用了 Gated DeltaNet attention 和 Gated Attention。 那 Kimi 的开源的这个新的线性注意力机制 , 它就是叫 Kimi Delta Attention。
包括我看 Kimi 也把他们这个新的 KDA, 就简称为 KDA,也是放到了你在发起和维护的这个开源线性注意力的一个小组叫 FLA,在 GitHub 上, 这个大家也可以去看 。
就是你可以给我们简单地介绍一下这些业界的新的应用和 DeltaNet 之间的关系吗 ?
好呀 , 我可以大概简单讲一下 DeltaNet 是一个什么东西 。 最开始的话就比方说那种线性注意力嘛 , 就基本上就是把 Softmax 那个操作把它扔掉 , 然后就变成线性注意力了 。
你因为你把 Softmax 扔掉 , 然后你再因为它本来就已经线性了 , 再通过一些数学变换就可以把它写成一个 RNN 的形式嘛 。
对 , 这个结论应该挺经典的 。 然后后面几代的话就是在研究怎么改善线性注意力这种机制吧 。 因为它这种机制虽然最开始的时候它可以写成 RNN 做 inference 嘛 ,但是它首先那个时候好像也没有搞明白要怎么高效来训它 。
然后那个年代也没有把这个东西在 language model 上面做得很 work 吧 。 然后后面有一系列的改进吧 , 然后最常见的就是加 Gating 或者加 DeltaNet、 加 DeltaRule 嘛 。
然后像加 DeltaRule 这个词的话 , 最早是 2021 年, 然后就是那个 LSTM 的那个作者他们那个团队 , 当时做了一篇 paper 应该叫做 《Linear Transformers Are Secretly Fast Weight Programmer》。
这是应该是一篇 ISTM 2021 的一篇 paper。 然后在这个里面它就是把线性注意力用比较传统的这种 fast weight programming, 这怎么翻译呢 , 快速权重变换的这个视角来解释了一遍 。
然后他们就说要这个 fast weight 它的这个更新 , 它可以用一些更强的 rule, 像线性注意力的话它用的是就是那个叫做 Haydn 的一个 update rule。
然后他们在那篇文章他们就提出了 DeltaNet, 然后就是相当于就是用一个 Delta Rule 这个机制来增强整个模型的那种 , 就是有一个叫做 in-context retrieval 的一个能力 。
然后 in-context retrieval 的话就是比方说在模型的前面的 context, 然后放一些 key value 的这一些关联对 , 然后想让模型能够正确地就是通过这个 key 来找到它所关联的这个 value。
对 , 这就是 DeltaNet 它当时诞生的背景 。 但是我觉得 DeltaNet 在那个时候可能没有受到太多的重视吧 。 一方面的话就是像线性注意力的话 , 它近几年就是网络架构层面它有很多改进了 , 就是有很多东西就如果没有这些改进就不 work 了 。
像有一个改进叫做 short convolution, 对 ,short convolution 的话就是短卷积 , 对 , 它是当代线性注意力一个非常重要的模块嘛 。
然后它可以看成 RWKV 之前那个 token shift 的一个 extension。 对 , 它就相当于就是每一个 token 它有一个单向的一个卷积操作嘛 。 它就是每个 token 大概你可以理解成它不仅可以看自己 token, 它还可以看前面三个 token 的信息嘛 , 这短卷积 。
然后另外的话呢 , 还有就比方说像在输出的地方加上 output norm 或者 output gate, 这两个东西的话呢 , 就是对结果也挺重要的吧 。
对 , 然后这都是一些比较现代一点的这种网络架构的改进嘛 。 然后现在很多线性注意力都是会采用这些模块的 。
就是 DeltaNet 在当时那个条件下没有活起来 , 就是一方面的话它缺少一些必要的这种当代的这种网络的一些模块嘛 , 能让这些线性注意力的模型表现得很好 。
然后另外一方面呢 ,也是 DeltaNet 它当时没有一个很好的实现嘛 。 它作者提供的那个实现 , 它其实是一个用 CUDA 写的一个循环的实现嘛 。
虽然它是能用的 ,但是那个速度比较感人嘛 。 直到就比方说我去年的时候 , 然后我发了一篇文章叫做 《Parallelizing Linear Transformers with Delta Rule across Sequence Length》 这一篇 Unix 文章 。
这篇文章就是来探讨怎么去并行化 DeltaNet 这一个更新的这个循环递归的 。
对 ,因为你刚讲的这些还是挺硬核的 。 有些可能要稍微就是给不是做研究的人稍微解释一下 。 你说最开始是大家把这个 Softmax 丢掉 , 然后直接试到 RNN, 对吧 ?
就相当于回到之前那种循环神经网络的这种方式 。 这个是在你说这是很早的时候 , 这个大概是在什么阶段呀 ?
比如哪一年有这个探索 ?
应该就是 2020 年吧 。 有一篇 paper 叫 《Transformers Are RNNs》, 就是最早提出 Linear Attention 这个概念吧 。 后面很多年, 包括 DeltaNet 它也是 2021 年做的嘛 。
这些工作其实都挺早的 ,但是在当时那个条件下面就既没有硬件加速 , 然后又缺少一些当代的这种现代的这种网络的一些模块 , 比方说前面提到的短卷积 , 然后比方说前面提到的那个输出的那个 normalization 和输出的那个门控 。
这就导致它这两个模型能在当时它既慢 , 然后又效果不是特别好 , 所以可能就是很长时间就被大家忽略掉了 。
然后最近几年呢 , 现代的这种网络模块的话呢 , 就是其实有很多发展嘛 。 然后大家这种短卷积呀 , 然后输出的那种 normalization 门控基本都是标配了 。
这个时候的话呢 , 你就算就是一个比较简单的一个 Linear Attention, 你给它加一个 Rope, 再加一个简单的 Decay, 它就可以表现得挺好的了 。
对 , 这其实就是有一篇工作叫做 Write to Light, 它是微软亚言论的一个工作嘛 。 这其实就是那篇工作的核心的一个 idea 嘛 。
像 MiniMax 他们做的那一些 , 就是也是加在这个基础上面就加了一个简单的 Decay 嘛 。他们管这个叫 Lightning Attention。 所以我觉得就是这些工作的话 , 可能大多数还是在网络的架构的改进上 ,而不是在那个更新的规则的改进上 。
对 , 当然这些工作它肯定是为这种网络架构的改进做出了很多贡献嘛 。 对 , 像之前这个 Lightning Attention 之前叫 Transnormal 嘛 , 然后它更早之前就是把这个 output normalization 把它推出来的嘛 。
然后后面 Write to Light 它又推用了这种像 output gate, 就是输出门的这一个模块 。 然后再往后面就 Mamba 直接把这个短卷积这一个模块带火了 。
就是感觉就是前几年的进展主要是在这个网络的这个小模块的一些进展 , 跟整体的这个 RNN 的这个线性注意力它的更新公式呢 , 它是没有什么太大的 , 就有点乏善可陈吧 。
对 , 就包括像 Lightning Attention 呀 , 像 Write to Light 呀 , 它的更新规则都是在最开始的基础上面加一些简单的 Decay 嘛 。
规则与算子12:32
那更新规则的大的改进是最近发生的什么 ? 比如说你 24 年你们发的那个论文里是有一些更新规则的改进的 。
像更新规则改进的话 , 我觉得我们也没有发明一些特别新的东西吧 。 我们就是发明一些新的算法 , 然后让一些比较老的一些技术能够让它让大家重新看它的潜力吧 。
就比方说像 Delta Rule 这一个机制 , 我前面应该也提到了 , 它是 2021 年就有了 ,但是它后面几年都没有人用 。
然后我去年 6 月份就是提出了一个并行的算法 , 能让它就是 scalable 的来训练 。 然后紧接着呢 , 我去年在 NVIDIA 的实习的一个工作就叫做 Gated DeltaNet, 它其实就是在 DeltaNet 的基础上面呢 , 然后加上一些这种衰减的这一些 Decay 的这一些 term。Gated DeltaNet 的话呢 , 它其实可以看成是 DeltaNet 和 Mamba2 的一个结合吧 。
然后 Gated DeltaNet 的话呢 , 就是它既拥有就是继承 Write to Light, 继承 Lightning Attention 这种 , 就是有一些比较当代的一些网络架构嘛 。
然后它又拥有最开始 Delta Rule 这一些 , 就是从理论上它更新就是要更好的一些规则嘛 。 然后再加上呢 , 就是这个衰减嘛 , 像衰减就是类似于遗忘门嘛 。
然后遗忘门的话在 RNN 里面就非常重要嘛 。 因为 RNN 的话呢 , 它 hidden state 它的大小就那么大 , 所以它肯定需要遗忘一些信息的 。
要不然的话呢 , 它有限的这个空间的话呢 , 它就如果把所有的问题都记下来的话呢 , 它就会撑爆 。
然后所以就到了我们这个 Gated Delta Rule 嘛 ,Gated DeltaNet。 然后这个架构在今年的话应该是被千问团队他们就是比较认真地试了一下嘛 。
然后他们当时应该也可以从他们那个博客看到嘛 ,他们是跑了一些全局注意力混滑穿注意力 , 就 Sideline Attention, 然后还混那个 Mamba2, 然后再混那个 Gated DeltaNet。
然后他们做了一些 apple to apple 的比较吧 , 然后他们就发现 Gated DeltaNet 应该是最好用的一个版本吧 。 所以他们是用到千问 3NX 的模型里面了 。
像 KimiLinear 的话呢 , 它用到的那个 KDA 的话呢 , 它应该就是 Gated DeltaNet 的一个改进的一个版本 。 它 Delta Rule 的那个部分呢 ,是保持在那里没有变的 。
然后它把衰减的那个部分呢 , 把它从一个非常粗粒度的一个衰减 , 把它变成了一个非常细粒度的衰减 。
原来的话呢 , 就比方说你 high dimension 128, 你有 128 个 channel, 然后这 128 个 channel 呢 , 它需要去共享一个遗忘率 。 然后现在的话呢 , 就相当于就是给每一个 channel, 每一个维度给它一个独立的一个遗忘率 。
这样的话呢 , 就是可能有一些维度它能忘得更快 , 然后有些维度呢 , 它就可以忘得更慢 , 用来记一些更长程的一些东西 。
然后这种细粒度的这种 Decay 呢 , 它其实历史也挺多的 。 比方说像最近的 , 像我 ISTM 2024 发表了一个工作叫做 Gated Linear Attention, 它其实就是用到了这种细粒度衰减的这种思想 。KDA 这个模块就是可以看成是 Gated Linear Attention 和 DeltaNet 的一个 combination 嘛 。
然后 Gated DeltaNet 就可以看成 DeltaNet 和 Mamba2 的一个 combination。 它们的主要区别就类似于 GLA 和 Mamba2 的一个区别 , 就是在那个衰减的那个粒度上面 。
所以就是其实大家都是用了很多之前可能已经存在一段时间 ,但因为由于一些限制 ,以前效果没有那么好 ,但是现在包括可能算力啊 , 硬件啊 , 各方面更 ready 了 , 然后它的效果就体现出来了 。
比如现在就是你刚刚说的 Qwen 3 的那个成果 , 对吧 ? 他们也做了一些比较 , 就是他们有混 Mamba,也有混 Gated DeltaNet, 然后是觉得就 Gated DeltaNet 的效果是更好的 , 包括 KDA。
你可以给大家解释一下就是这个更新规则的改进和模型架构的改进的区别是什么 ?
我觉得架构改进它分成两个模块吧 , 一个是网络的改进 , 然后一个是算法的改进嘛 。 像网络的改进呢 , 比方说像这种输出上面加个门控嘛 。
像这个思想的话 , 之前在 Linear Attention 里面用到了很多 。 然后像千问最近它有一篇工作叫做 Gated Attention 嘛 , 它也是把在输出上面加了一个门控嘛 。
对 , 然后我觉得这一类的改进基本上都可以叫做是网络架构上的一些改进 , 它主要都是这些网络架构 。
它真正做运算的那些算子 , 比方说像 Gated Attention 里面 , 它还是用 GQA 来作为一个最基本的一个算子嘛 。 它还是用 FlashAttention 来训嘛 。
所以这个算子是更加就是这个中间这个算子的话 , 它可能就是更加算法层面的了 。 然后就是刚才那种更新规则的话呢 , 它就是在这个算子的这个层面上面来动刀 。
然后外面那些网络架构其实就是都可以随便用了 。 就比方说最近那些大家都验完效果好的那些架构 , 我们就跟着用 。
然后我们只需要把那个核心的那个中间的那个算法 , 就是它定义它如何做这种在序列上面做 mixing 的这个操作 , 进行一些改善嘛 。
然后像这个更新规则的话 ,Delta Rule 的话 , 它直接反映在那个线性注意力它所对应的 RNN, 它的那个转移矩阵上面嘛 。
还交代一个前提吧 , 就是线性注意力的话 , 它一般是可以写成一个一阶的一个线性的一个递归 。 一般这种一阶的这种线性递归嘛 , 它会有一些比方说那种转移矩阵嘛 , 然后它会有一些 input 嘛 。
然后像 Linear Attention 的话 , 它 input 一般就是一个外集 。 然后 Linear Attention 的转移矩阵其实是一个 Identity 的一个矩阵 。 之后像 GLA 呀 , 像 Mamba 呀 , 就把这个 Identity 的一个转移矩阵把它换成了一些 Diagonal 的一些转移矩阵 。
然后像 DeltaNet, 它其实是把这个转移矩阵变成了一个 Identity plus LowRank, 就是一个 Identity 加上一个 LowRank 这一个形式 。 然后像 Kimi 最近的这个工作 , 它就是把那个 Identity 的部分又把它 Relax 成 Diagonal 对角的一个可以学的一个矩阵 。
像 RWKV7 的话 , 它也是用到这种 DPLR 的这一种类型的一种转移矩阵嘛 。 对 ,DPLR 的话就是 Diagonal plus LowRank。
就其实这些部分我都不太能听懂 ,但是我觉得到时候我们可以把这个内容保留下来 ,因为我觉得对就是做研究的人来说 , 这个信息肯定还是有价值的 。
然后因为你做了一些这个算子上的一些工作嘛 , 包括我看你在 FLA 里的一些工作 ,也是你会去做这个 CUDA 的 Canal 的一些实现 , 就是能在算子上做一些改进 , 它需要什么样的背景啊 ?
比如说我之前就是我们年初聊注意力的时候 , 就有的作者他是偏算法背景的 ,他就有提到过说其实算法背景去改算子是会比较难的 。
我觉得现在就是改注意力机制的人其实大部分都是算法出身的同学吧 。 只不过现在大家都会有意识地去结合这种 Infra 和算法之间来进行一些结合 。
所以算法的同学呢 ,他也会去学一些像比方说像 CUDA 啦 , 像 Triton 啦 , 像 Colors 啦 , 这种 GPU 上的一些编程语言 , 然后能够来更好地来实现他们的算子 , 这样就可以来在硬件上面高效地跑起来 , 这样比人才能 scale up, 对吗 ?
我觉得像 Infra 的同学应该他们也在更加学习多的这种算法 , 然后来了解哪些算法 , 比方说在 Inference 上面是更加高效的 。
所以我觉得算法和 Infra 总的来说还是在互相学习 , 然后互相靠拢吧 。
那像你自己的话 ,是你本来是算法背景 , 然后你是自己后来就为了做这个研究 , 你学了比较多 Infra 的一些东西 。
大概上可以这么说是吧 ,但我之前确实也是会做一些并行的一些加速的 。 我硕士的时候就是会做一些上下文无关文法的一些工作 , 然后它有很多那种 parsing 的内容 , 然后需要去并行地来在 GPU 上面加速 。
对 , 我当时就写一些 CUDA 来加速这一些 parsing 的算法 , 然后后面来做这种模型架构的话 , 然后就觉得就写这种算子就是可能更加在我的一个舒适区吧 。
所以我就会做一些需要写算子的一些软硬件结合的一些算法的设计 , 然后能让它在 GPU 上面能跑得更快 。
你当时是有意识地就是要去积累这方面的能力 , 还是因为你当时硕士的时候 , 它有一些研究方向就是让你不得不去做这个事 ?
我觉得我可能本身就对这种并行加速还挺有兴趣的吧 。 然后当时刚读 PhD 的时候 , 像 Hazy Research,Stanford 有一个 research group 叫 Hazy Research,他们就比较倡导这种能够 hardware-aware 的一些算法设计嘛 , 就是他们 FlashAttention 呀 , 这个也是他们组做出来的 。
然后像 Mamba 也是他们组的毕业生做出来的 。 对 , 所以他们组就会做很多这种有硬件感觉的一些算法设计的一些工作 。
然后当时因为自己对算法和硬件加速都挺感兴趣的嘛 , 然后当时就来研究这个领域了 , 然后就学习他们的风格 , 自己写算子 , 然后自己也会去做一些算法 。
因为我看你就是发的有些 DeltaNet 的相关的论文 , 你的合作者里也有这个 Tri Dao,他之前也是 Mamba 的作者 。
那你说的应该是那篇 Log Linear Attention。 对 , 那篇是跟 Tri Dao 我们组过函 , 我和 Tri Dao 有一个合作 , 然后我们做了一篇 Log Linear Attention。
混合架构23:28
然后我们可以回到就是这个 DeltaNet 相关的一些进展 ,因为刚才也说到这个 Qwen 3NX 的 , 还有 KimiLinear 都有用到嘛 , 然后我也都注意到他们都是一个混合的架构 。
就是为什么现在大家会采用这种线性和这个比如说之前的 full attention 混在一起的这种结构啊 ? 就它不能就全部都用线性的原因是什么 ?
我觉得主要还是长文本吧 。 对 ,因为线性的话呢 , 它的这个容量是有限的嘛 ,you know, 它每一层它有一个 RNN 的一个隐藏状态 , 它那个大小是固定的嘛 。
然后当你的所有的层都固定住了 , 那么你整体的这个状态数量的大小 , 它就是可以算出来的嘛 , 它是一个常数 。
然后就是当你的这个序列长度变长的时候 , 你的这个整体的容量并不会变 。 所以如果是这种纯线性的模型 , 它在短文本上面可能还可以来应付 。
那到长文本下面的话呢 , 基本上就表现就会非常地烂 , 主要还是这种容量太小了嘛 , 这个大家应该是有共识的 。
然后像注意力机制的话呢 , 就是传统的 swarmized attention, 就是他们有 KV cache 嘛 , 你可以把 KV cache 也看成这个隐藏状态 。
然后他们就是 token 越多 ,他们的这个隐藏状态就这个 KV cache, 它就会线性地增加嘛 , 就一个 token 一个 KV cache。 那这样的话呢 , 它长文本的话呢 , 它是根本不会被容量这个问题给 bound 住的嘛 ,因为每个历史的 token 它都有一个属于它自己的一个 state 嘛 。
然后 attention 它所有的 inference 的这个困难 , 它其实也是来源于它这个 state 太多了 。 就 KV cache 它线性增加到一段时间之后 ,因为推理它本身它是一个 memory bound 的一个过程 , 就是它会取决于你从这个 global memory 里面去读取多少的这个状态数嘛 。
然后像 KV cache 的话就要读整个 KV cache 呢 , 可能这个就会很慢嘛 。
所以 Softmax 去解决这个就长文本的这个问题 ,因为线性可能会遗忘之前那些东西 , 对吧 ? 那混这个线性的话 , 线性主要是解决的效率问题 。
因为它如果所有层都是 full attention 的话呢 , 那它就是做 inference 的时候 , 它肯定最后就尤其是长文本做 inference 嘛 , 它迟早会被这个 KV cache 的这种就是 unbounded 的这种增长把那个速度就是戳不下来嘛 。
然后如果之后如果要走一些非常大的一些模型的话 , 那这个 inference 代价是很夸张的 。 对 ,因为比方说一些小模型嘛 , 它其实做 full attention 它的代价还是可以接受的嘛 ,但如果是一些非常大的模型 , 那其实这个代价我觉得就是在做 inference 的时候其实很难让人接受了 。
所以整个业界就会想去寻求一些出路了 。 然后大家就会去关心这种高效的注意力嘛 , 比方说线性注意力啊 。
然后现在反而是在就已经在用的这个 DeltaNet 的这些模型啊 , 比如说 Qwen 3NX 的 , 还有 KimiLinear, 它其实都不是特别大的模型 。
比如说 Qwen 3NX 的是个 80B 的模型 , 然后 KimiLinear 是一个 48B 的模型 。 那大家现在的旗舰模型 , 比如说 Kimi 的 K2, 它还是没有用这个线性注意力机制 。
所以就说在之前把线性注意力机制用到参数很大的模型上是有什么瓶颈吗 ?
我觉得他们现在先做小的 , 就是工业界的一个常见的做法吧 , 就是他们如果想去验证一个新的技术到底好不好用 , 那他肯定先从小的一些 scale 上面开始验证嘛 。
大部分人一下子就直接就在非常大的 scale 下面验证嘛 , 要不然验两次基本上就破产了 。
所以是个发展阶段的问题是吧 ? 就因为它本身是个表新的技术 , 所以目前我们看到的是大家是先在相对小的模型上去做的 。
对 , 然后他们都在训大的或者在训大的路上嘛 。 像 Kimi 他今天早上, 对 , 应该是北京时间你们昨天 ,他在那个 Reddit 的论坛上面有一个 Ask Me Everything 的一个活动嘛 。他们的人也爆料说就是 K3 大概率还是要沿着这个混合 KDA 的这个方向来走嘛 。
对 , 所以他们应该是现在这个小的就是为之后的大的模型来减少一些风险的 , 就是来验一些架构嘛 , 就肯定用小的模型来验了 。
然后 Qwen 3NX 应该是同理的 ,因为他们这个 Qwen 3 应该就是之后的官方代码应该叫 Qwen 3.5,他们 3.5 应该就是会走 hybrid 的 。
你就说这个 Qwen 3NX 的之后可能就是 Qwen 3.5, 对吧 ?
对的 ,因为他们的我记得他们的负责人在推特上面是这么说的 。
对 , 确实那个昨天的就是 Reddit Ask Me Anything 上 Kimi 的人是有说到 ,因为有人问他们嘛 , 就问这个 KDA 的模块什么时候会用到旗舰模型上 ,他们说 K3 很可能就是会用 KDA 的 。
然后还有一个想聊一聊的动向啊 ,也是跟这个线性注意力有关的 , 就是 MiniMax 其实在这块做的是很早的 , 我就是指它在业界把它放到特别大的模型上 。
因为他们今年初发布的 MiniMax M1, 它就是一个参数 4560 的模型 , 然后它的这个 MoE 模型激活是 459B, 它就是用的线性注意力 , 就是你刚才说到的这个他们是叫 Lightning Attention。
但是它最近就 10 月 27 号发的这个 MiniMax M2,他们又变回了就是 Full Attention。 就是我想知道就是比较关注线性注意力改进的研究员对这个变化有什么讨论吗 ?
我觉得大家都觉得这个现象也挺好玩的嘛 , 就是一边是 MiniMax 回去坚守 Full Attention 了 , 然后另外一边呢 , 像 Qwen 和 Kimi 又感觉就像是跳到坑里面来了嘛 。
就如果线性注意力是个坑 , 如果像 MiniMax 说的那样线性注意力有点坑的话呢 , 就是一边就是往坑外面跳 , 然后另外一边又是急着往坑里面跳 , 这个场景感觉还是非常有意思的 。
然后说回他们这个做回 Full Attention 的这个决定吧 , 我觉得你应该也看过他们那个博客对吧 ? 他们 Pretrain 的那个负责人 ,他们写过一个 blog, 就是为什么用回那个 Full Attention。他那个博客里面大概就讲 , 首先第一点的话就是说他们觉得他们之前 MiniMax 那个 Lightning Attention,他们在一些指标上面 , 比方说像 MMRU 这些指标上面呢 , 肯定就是跟 Dense Attention 它是就这种 Full Attention 它是没有什么区别的嘛
。 因为这种 task 它其实跟在序列上面做 mixing 它其实关联不是很大嘛 。 我觉得 MMRU 它其实就是一个短程的一个 in-context learning 的一个问题嘛 , 只要有一些比较短的一些 study window,MMRU 就可以直接搞定了嘛 。
它不需要一个很长的一个 Full Attention。 然后很长的 Full Attention 的话 , 我觉得就是他们应该也提到了就很多 , 比方说像 Multi-hop reasoning, 就是那个多跳推理嘛 。
多跳推理它是一个非常吃 attention 的一个任务 , 这个也挺好理解的嘛 , 就 A 到 B,B 到 C,C 到 D。 对 , 如果你有 Full Attention 的话 , 那你就是因为它本来就可以直接建模两个点之间的关系嘛 , 然后你这么迭代几层之后呢 , 那你其实建模这个多跳推理它是一个非常自然的一个事情嘛 。
然后像 Linear Attention 或像 Hybrid 的 , 它可能中间这种 RNN 它把它 compress 到一个非常模糊的一个 state 上面 , 然后它就不知道它记得什么东西了 。
然后它做这种多跳推理的时候 , 它就可能那个准确率就会降很多 。 对 , 然后多跳推理的话 , 它是 Agentic AI 里面一个非常重要的东西嘛 。
像现在这些 Agent, 你要它完成一些事情 , 那它肯定就会就是有各种各样的 , 比方说 interleaved thinking, 它就会想很多很多东西啊 。
然后多跳推理在这个里面的话呢 , 就是一个比较看重的能力 , 就是因为这个多跳推理 ,他们觉得在 Hybrid 下面他们暂时搞不定嘛 , 然后他们又想推 ,因为这个 MR 它主要就是来推这种 Agentic 的这种 AI 的一个能力的嘛 。
所以他们推回 Full Attention 这个也是相对来说还是挺自然的嘛 。 然后他们也有很多那种 reflection, 我觉得读完之后还是挺受益的 , 就包括那种 benchmark 的选择呀 , 比方说有些多跳推理 benchmark 像 BBH 呀 , 它很容易就比方说你用一些方法让你的架构在这个 benchmark 上面表现得很好 , 那到实际场景这个真的能表现好吗 ?
就是按它这种在 Pretrain 阶段这些 evaluation 和到这种真正来做这种 Agentic 任务的上面 , 它这个表现其实它这个关联度还是比较低的嘛 。
对 , 就他们想强调的是说它在这个实际的商用场景的 Agent 的一些需求上, 它他们会觉得可能按他们现在掌握的信息或者它实验的结果 , 它觉得 Full Attention 的效果更好 。
但另一方面上不管是 Qwen 还是 Kimi,他们肯定也是要去做这个 Agentic 的 model 的嘛 ,因为这都是大家看到的一个比较共识性的方向 。
那他们要在接下来的旗舰模型上, 不管你是用 KDA 还是说这个 Gated DeltaNet 混合 Full Attention 的这种方式 ,他们怎么去解决这个问题了 ?
我觉得不同公司它肯定有自己一套 benchmark 嘛 ,他们可能在他们内部 benchmark 觉得还行吧 , 所以他们觉得有信心来上 。
然后像 MiniMax 他们也没有完全失去信心吧 , 按他们负责的人的话来说呢 ,他们只是暂时把它退回 Full Attention,但他们还是其实还是在验这种 Hybrid 架构嘛 。
对 , 另外一方面的话 , 我觉得他们可能是之前受 Lightning Attention 的伤太大了 , 然后一朝被蛇咬 , 十年怕井水的这种感觉嘛 。
因为像 Lightning Attention 的话呢 , 它是一个非常弱的一个线性注意力的一个模块嘛 。 对 , 这个因为它就是那种最原始的 Linear Attention 上面加上一个粗粒度的 , 然后输入无关的一个 Decay。
对 , 然后这个的话我觉得它就是一个非常弱的一个线性注意力嘛 。 然后他们当时就直接 scale up 到那么大 , 我觉得可能就是内部的 eval 这些 pipeline 没有做得特别扎实吧 。
要不然的话呢 , 我觉得它可能就比方说像 Kimi, 它有很多那种 scaling 来的 , 就是如果你有一些任务你验出来觉得有 concern,有问题 , 那它肯定不让你就 scale up 到这么大嘛 。
那我也不确定为什么 MiniMax 当时就一路畅通无阻直接就是 scale up 到那么个几百 B 的一个模型嘛 。 我觉得就是主要可能是 eval 没有搭好吧 ,他们比方看 MMRU 嘛 , 这个前面也提到了 , 没有关心一些更加考验这种长程依赖和这种多跳推理的一些任务嘛 。
其实这个问题我觉得它的本质的一个问题是说就是怎么在使用线性注意力的时候也保证它的效果 。其实之前就是业界对这个线性注意力的一个质疑就是觉得它肯定是提升效率的嘛 。
就是你刚刚说的就是这个推理成本它肯定是能降低推理成本的 ,但是大家就在想如果它放到更大的规模上去 , 它这个效果能不能保证 。
这个现在可以说是已经解决到一个比较好的程度了嘛 , 如果做得比较强 , 做得比较扎实的话 。
我觉得还是要看 Qwen 和 Kimi 他们能不能开源出一个比较旗舰的一个模型吧 。 对 ,因为他们现在暂时还是一些比较小规模的一些验证嘛 。
就 hopefully 他们之后能放出一些更加大规模的一些更有 promising 的一些结果吧 。
可以说现在 Qwen 和 Kimi 是在这个方向上业界就是领军的两个模型厂家 , 可以这么说 。
对啊 , 比方说像 Kimi,Qwen 和 DeepSeek 嘛 , 就他们就是说机模做得比较好的嘛 , 然后做的就在海外名声也挺好的嘛 。
然后当然我觉得国内做机模的厂商还挺多的 , 就比方说像美团 ,他们最近也做了很多那种像 LongKite 之类的工作 , 然后也是感觉比较惊艳的 。
对 。
我说的倒不是机模这个方向 , 我是指在这个线性注意力这个方向上 ,是不是全球来说目前业界是 Kimi 和 Qwen 做的就比较 , 就反正至少它发出来的公开能看到它是在往这个方向上推的 , 两个比较主要的公司 。
对 , 我觉得可以把主要去掉吧 ,因为就两个公司 。 因为感觉像美国首先它不开源嘛 , 你也不知道它在玩什么嘛 。
然后就市面上那种非常大规模的那种还在做开源的厂商 , 那其实就屈指可数了嘛 。
DeepSeek 它没有这方面的进展是吗 ? 或者说它可能有一些进展 ,但只是没发出来 。
他们应该内部也在验吧 , 然后我不知道验得怎么样 , 我没有跟他们交流过 。他们应该更加相信 Sparse Attention 吧 , 就是 。
稀疏注意力 。
线性注意力 。 对 。
对 ,因为他们连初发的那个 NSA 是一个稀疏注意力的改进 。
对啊 , 像最近 3.2 DeepSeek Sparse Attention, 这也是一个稀疏注意力的一个改进嘛 。 所以他们这一家应该是比较笃信这种稀疏注意力的这种技术路线的 。
稀疏与线性37:07
从你自己的角度 , 你觉得稀疏注意力和这个线性注意力它未来的这个潜力或者说空间有什么区别 ?
我觉得就是单看一层来看潜力的话呢 , 那肯定稀疏注意力更强嘛 。 因为它像现在这些动态的稀疏注意力 , 它都是要把 KV cache 全部把它存下来嘛 , 然后把这些 KV cache 存下来了 , 大家会有满满的安全感 , 这种 token 它不容易掉嘛 。
然后就是理论上呢 , 这个模型它有足够多的这种 KV cache, 它能够把这些相关的这些 KV cache 把它找回来嘛 。
这样的话呢 , 就可以逼近 Service Attention 嘛 。 因为 Service Attention 就是大家学出来的发现 , 它那个 attention map 它相当稀疏的嘛 。
所以单看一层的话来说 ,Sparse Attention 当然更好了 。 然后像线性注意力的话 , 它就是有一些这种理论上的一些缺陷嘛 , 就因为它那个 state size 固定死了 , 它是一个理论上的缺陷 。
但是这个东西我觉得是一把双刃剑吧 ,因为它既是理论上的缺陷 , 又是它就是做 inference 加速的一个动力嘛 。
因为它 state size 更少 , 所以它 inference 可以加速 。Sparse Attention 它是通过减少激活的这种 KV cache 的这种 state size 的这种读取来起到加速的作用的 。
但是呢 , 就是 Sparse Attention, 就这种动态 Sparse Attention 这种路径的话呢 , 它其实是没有省 KV cache 的嘛 。 就还是需要存这么多 KV cache 的 , 只是你每一次做运算的时候呢 , 动态的去选一些 KV cache 出来 。
你用的比较少 。
对对对 ,但是就是 eventually 规模很大的时候呢 , 然后序列很长的时候呢 , 当这个 KV cache size 它本身成为一个瓶颈的时候 , 这个稀疏注意力我觉得它就是爱莫能助的了 , 没有办法去减少这个 KV cache 的 size。
然后像 Hybrid 的这种线性的话呢 ,因为它一般的话就是它 75% 的层都被换成了这种 RNN, 那这些在长文本推理的时候 , 这些 RNN 的这些 cache, 它的那个大小基本上可以忽略不计嘛 。
这样的话呢 ,他们其实 KV cache size 就基本上就减了 3/4 嘛 。 这样的话呢 ,他们就是可以去支持更大的 batch size 来做 inference。
对 , 然后 batch size 更大的话呢 , 我们都知道嘛 , 就是 batch size 越大 , 它做 inference 这个效率肯定就越高嘛 。
我们可以 batchify 很多操作呀 , 然后同时来 serve 很多 user 呀 , 然后之类的 。
就如果我们假设一种极端情况 , 如果有无限算力 ,而且不在乎推理成本的话 , 那大家还有动力去做这个效率高的但是不是 Full Attention 的方法吗 ?
数据与状态39:40
我觉得有无限算力它是一方面 , 另外一方面的话你还要看 data 呀 。 像这种 Full Attention 它肯定这种 data efficiency 它是更差的嘛 ,因为它没有那种 inductive bias, 它是一个全局的这种注意力 。
然后如果当你的这个 data 它比较固定的话呢 , 那你全局注意力学它 , 那可能就会变得比较慢嘛 。
然后可能最后我们 eventually 我们是被 data bind 住的 , 我们不是被算力 bind 住的 。 那我们可能就要去研究一些架构能够来更好的有一些更更好的这种 data efficiency 嘛 , 来更好的利用有限的 data。
然后这时候的话 , 我觉得可能 Full Attention 反而是一个劣势吧 ,因为它的这个 inductive bias 太差了 。 它虽然你喂它很多足够的数据 , 它也能学出来 ,但是呢 , 如果数据变成一个 bundle 的话 , 那可能这个东西就反而会变成一个劣势了 。
对 。
你是指数据太少对这个 Full Attention 是个劣势 ?
对 ,因为它的 data efficiency 肯定是不如像这些有 inductive bias 的一些模型嘛 。 比方说像 Linear Attention 的话 , 它肯定有一个 locality 的一个更加关心宁静 token 的一些 inductive bias 嘛 。
所以它在一些 data constraint 的一些场景下的话呢 , 它可能就表现得更好吧 。
Inductive bias 就是这个归纳的偏见啊 , 这个东西也是模型自己学出来的吗 ? 还是其实它是带了人的一些先验给它的了 ?
它肯定要带一些先验嘛 , 这 inductive bias 它就是先验 。 然后像 Transformer 它好用 , 它一方面也是没有 inductive bias 嘛 , 然后你给足数据的情况下它学得更好嘛 。
那另外一方面当数据不足的时候呢 , 那可能又是一把双刃剑了嘛 。 对 , 这个东西都是要分情况讨论的嘛 。
你要是给我说无限的数据 , 无限的算力 , 那我肯定直接就用 Full Attention 嘛 。 但是我觉得现在高质量的 data 已经完全被 bind 住了呀 , 那你可能就需要有一些利用这些有限的 data 更高效的一些架构来做一些这种东西嘛 。
然后甚至比方说像 post training, 像 RL 这些场景下面呢 , 它的那个 data 是更加被 bind 住嘛 , 它不像 Pretrain 那样有非常多的这种 data 嘛 。
所以可能说不定像 Hybrid 的这种线性的架构呢 , 它的优势就会在这种 post training 上面体现出来 。 当然如果算力足够的话 , 那我可以有足够多的这种 attention 层嘛 。
对 , 这样的话我可以看看我们关心的这些 task 嘛 , 我们找到最少的 attention 层嘛 , 然后剩下的就把它放成这种 Linear 层 。
所以就是说大家来探索这个线性注意力 , 它除了说就是你可以节省比如说推理的算力和成本之外 ,也有你说的它在某一些情景下, 比如说这个数据比较少的一些任务 , 包括你说的后训练还有强化学习这些场景里面 , 它其实对效果可能也是有提升的 。
对的 , 然后另外的话呢 , 可能也是从理论上面来看呢 , 就是有一些表达能力的一些分析嘛 。 像 Full Attention 的话呢 , 它其实从那种电路复杂理论来看呢 , 它是在一个叫做 TC0 的一个 class 里面 。
这里我就不想解释了 , 我感觉我解释也解释不清楚 , 我是一个半吊子的一个理论 , 我就不解释了 。
主要是我听不懂啊 。 没事你继续 。
对 ,有个叫 TC0 嘛 , 然后它的意思就是说你解决复杂的问题 , 就你 Transformer 原来的表达能力不够 , 那你就只能靠那种很长的这种 CLT 做这种任务嘛 。
像 DeltaNet 还有一个优势吧 , 我觉得就是它从这种计算理论的角度来看呢 ,因为它的表达能力是超过 TC0 的 , 它是一个 NC1 complete 的一个架构 。
这样的话呢 , 它做那种 state tracking 状态追踪这些任务可能就会更加好嘛 。 像 Transformer 它可能就需要更长的这种思维链来追踪一些状态的话 , 那我如果我这些模型本身就有一定的这种状态追踪的能力 , 那我可能 inference 就不需要那么长的思维链 , 我就能达到相同的效果嘛 。
我觉得这也是一个大家可能没有意识到的一个好处吧 。 然后状态追踪的话 , 我觉得是一个非常重要的一个 concept。 就比方说你在 coding 的时候 , 你那些变量名啊 , 它变来变去啊 , 那这个模型它肯定就要在它的那个内部嘛 , 要去维护一系列这些变量名对于的变量的一些这种状态嘛 。
那其实也是一个状态追踪的问题嘛 。 然后像 Agent 嘛 , 就比方说你有一个 Agent, 你打开一个互联网页面 , 就是你 , 然后你再做一些其他操作 , 然后这个模型其实也要知道你干了哪些事情嘛 。
你按照这个顺序你干了哪些事情 , 你可以到哪个状态嘛 。 然后它可能就会有一些状态的这些 state 来帮助模型来做一些决策嘛 。
对 , 所以我觉得状态追踪在 Agentic AI 里面也是一个比较 , 我觉得是一个比较重要的概念呢 , 可能大家还没有意识到 。
前段时间我看到一个还挺有意思的一个 paper, 它也讲了很多为什么在 Agentic AI 里面这种状态追踪啊 , 这种 recurrence 啊更加值得被人关心吧 。
就比方说有一篇 paper 叫做 Recurrence Complete Frame-based Action Models, 这里面有很多的这种讨论 。
所以就是你刚刚提到这个线性注意力的机制 ,在有一些这个 Agentic 的任务上, 它可能会有些劣势 , 就比你刚刚说的多跳推理什么的 。
但是在你说就是现在可能没有那么多人在去讨论的状态追踪上, 它其实对 Agentic model 它是有效果提升的 。
对啊 , 很有可能 , 我觉得非常有可能 。 我觉得还是需要大规模来验证一下的 。 我觉得 evaluation 还是一个非常难的问题嘛 , 就像 MiniMax 说的那样 。
然后可能就需要更加多的那种能够能及时在 Pretrain 阶段 , 然后能看到一些信号的一些 benchmark。 比方说像腾讯他们最近出了一个 paper, 就是来测这些 base model 他们的这个 Agentic 能力的 。
对 , 就是他们会制造一些 task, 这样的话呢 , 就不需要等到 Pretrain 完 , 然后再去 post train, 再去 RL, 然后再来测这个模型 。
这整体的 evaluation pipeline 就太长了嘛 。
对 , 就评估的评估链条太长了 。
对对对 , 如果这种 evaluation 的这个层面 , 我觉得 evaluation 是一个非常重要的事情 。 我觉得很多人可能没有重视 evaluation。
我们之前有期节目也在聊这个 , 就是跟那个在硅谷那边有个组织叫 Agile House,他们也聊了很多 evaluation 的一些东西 , 包括其实 OpenAI 最近也有收一些公司 ,也是有这个方向的一些业务吧 。
然后他们在那个 10 月 6 号的 DevDay 上也发了很多跟 evaluation 有关的一些工具 。
对 , 我觉得如果 evaluation 不好 , 那你就不知道你的模型在真正的这些比较关心的场景下面表现得怎么样嘛 。
所以但是大家也不想全部都训完了再来测吧 , 这样子没有什么成本来测嘛 。 所以尽可能可能大家还想去造一些比较合适的一些 evaluation, 比方说能在 Pretrain 阶段来测这个模型的 Agentic 能力嘛 。
对 , 然后我觉得这些工作都非常有意义的 , 它只是它就是提供一条路嘛 。 就是你在 base model pretrain 的时候呢 , 你就可以去测一些大家关心的东西 , 这样可能呢 , 就之后做什么架构迭代啦 , 然后比方说想换一个架构来看看它这个效果怎么样呢 。
那如果有一些比较可靠的一些 proxy 的一些 metrics 的话呢 , 我觉得 evaluation 的这种完善是对架构整体迭代的速度是非常有帮助的 。
然后我想问一个有点抽象的问题啊 , 我不知道我想的对不对 。 就是因为你刚才说到其实这个线性注意力里面 , 它肯定是会包含一些归纳偏见的 , 这有可能是会带来一些效果提升 。
先验与争议47:34
然后好像在就是做 AI 的人里面也长久会有一个讨论吧 , 就是说我们到底要不要在这个模型里面加先验 。
就之前有一篇大家会经常提到的文章 , 就是这个 The Bitter Lesson, 它这个里面就是提到可能我们每一次想给它加一些人为的结构和先验的东西 , 最后都会发现其实这个效果我不如比如说我给它更多的算力 , 然后我把这个整个模型做得更规模化 , 可以训更多的数据更有效 。
100 个人里面有 100 种 scaling 这种 Bitter Lesson 的解读嘛 。 对 , 然后像很多 scaling portraiture 的这种解读 , 可能在 Ratio 本身看来它就是一个不对的解读嘛 。
就像 Large Language Model 本身就是一个苦涩教训的一个代表嘛 。 因为我们想把 human 的这个 prior knowledge 把它注入进去嘛 。 对 , 这就见仁见智吧 。
但是我应该说我还是很支持去做一些能够 scalable 的一些方法 。 先 scalable, 然后不管它 inductive bias 怎么样 , 对 , 你把它做得 scalable, 然后好不好大家验嘛 , 就验出来是就是了 ,不是就不是了 ,而不是多一些这种讨论 。
你这里说的 scalable 的关键是什么呀 ?
一方面的话 , 它那个效率 ,在大规模训练下面它要有保证嘛 。 这个要这个算法本身它就是一些硬件亲和的一些算法嘛 。
硬件亲和 。
对 , 然后另外的话呢 , 可能就是它整个模型它训上去要有效果嘛 , 你不能有一些改动 。 你在小的 scale 上面有用 , 你在大 scale 下面就不有用了 , 对吗 ?
就很多时候我们做架构 research 的时候 , 我们就会有这种非常沮丧的发现嘛 , 就有很多有一些改动就是不 scalable 的 , 就是它只在一些比较特定的一些浅的一些网络下面有用 , 然后在深的下面又没有用了 。
我觉得只要能在效率上面能 scalable, 然后在 performance 上面就能 scalable, 那我就不需要管它到底来讨论它到底有多少 inductive bias 了 。
最近围绕 DeltaNet 还有一个事件啊 , 就是开发这个 RWKV 开源模型的原始智能的创始人彭博 ,他说应该把 DeltaNet 的 credit 给这个人的姓我还不知道怎么读 , 应该是叫施米德 。
对 ,他应该就叫做 Switch Corporate 吧 , 然后他是他做了很多工作的 , 然后他就很有意思 ,他在推特上面也天天喷人不给他 credit 什么 。
你说 Switch Hoober 是吧 ? 他自己也会说人不给他 credit。
对啊 ,他在推特上面非常活跃呀 ,他天天说别人不给他 credit 呀 。 比方说他最近还有个文章就是谁发明了 residual collection 那个东西 , 然后就 argue 就是 ResNet 的他的 credit 应该全部给到他之前的那个 highway 那个 highway network 上面嘛 。
对 ,有这么多的争分 。 但是这个 case 我觉得是完全不一样吧 。 我觉得我给了 Switch Hoober 很多的 credit, 像 Paralleling DataNet 的话 , 那个工作的话 , 所有的地方引用都是把它叫 DeltaNet 嘛 , 然后这个 DeltaNet 它就是 2021 年它那个工作它自己就这么叫了 , 然后我也没有去改它的名字嘛 。
然后我就是 , 然后我整体我那个文章的名字都是只是说我是在做一个 paralleling 的一个算法嘛 。 然后那肯定我也没天天 , 我从来没有说过我发明了 DeltaNet 呀 , 我只是发明了怎么去让 DeltaNet 去做 scalable 的一个训练的一个方法呀 。
你要是去采访 Switch Hoober, 然后去采访那些作者 ,他们肯定不觉得我抢了他们 credit 呀 。Instead 我跟他们作者还挺熟的 , 就尤其是 Katsuki,他们觉得我在就是我给了他们很多 credit, 然后还在把这个概念就是积极的把它推向于世界吧 。
所以我也不知道就是 RWKV 他那边的人乱咬是什么意思 。 我觉得他们可以自己回去看一下他们究竟有给多少 credit 给别的 researcher 吧 。
对 , 然后历史站位哪的算了 , 然后就对 , 我的 comment 就到这里了 , 可以下一个问题了 。 为难的题 ,有点晦气 。
研究之路51:51
那接下来就是因为刚才聊的是 DeltaNet 嘛 , 接下来就想展开聊一下你自己是怎么来关注到线性注意力这个研究的方向的 , 包括你怎么来开发 DeltaNet。
这个其实前面已经说到了一些 ,因为你其实是一个非常年轻的 AI 研究员 ,因为你是 2016 年读本科嘛 ,在南方科技大学 , 对吧 ?
然后 2020 年到上海科技大学读书的是 23 年, 到现在的话是在 MIT 读博 。 你自己是在哪个阶段你开始比较关注到注意力机制的改进的 ?
我感觉我应该整体就喜欢做一些模型啊 , 做一些算法啊 , 可能在硕士阶段就对 , 就喜欢看一些魔改注意力的一些方法吧 。
但当时并没有做这个方面的 research, 然后直到读 PhD 的时候才正式开始做这些 research 吧 。
就是 23 年左右的时候 。
对 , 我应该是 23 年开始做这个方向的 。 然后当时也是思考自己做什么方向 , 就自己感兴趣 , 然后又比较 relevant, 然后我当时觉得架构还是可以做一下的 。
对 ,因为我觉得就是我 full attention 它长文本这个问题感觉永远也解决不掉嘛 。 然后这里面又有很多很有意思的算法可以玩 , 那我就跑过来玩这个领域了 。
对 。
你最开始有哪些合作者或者说这个一起学习一起进步的小伙伴啊 ? 你刚刚提到有斯坦福那边有一个组 , 你有去比如说学习他们的一些风格吗 ?
对 , 这个组他们也是做新架构做得很多的 ,他们很多人我都还挺熟的 。 比方说像 Simran, 然后像 Albert, 像 Tri。
Albert Gu 什么你知道 。
对对 , 然后像其他就是国内的话呢 , 我觉得是亚研院董立团队他们做得挺好的 , 然后我跟那个 Rednet 那个一座 ,他叫孙宇涛 , 然后我跟他讨论也挺多的 。
然后另外的话就是之前就主要是中医院那边有一个人叫秦峥 , 然后我跟他讨论也挺多的 。他当时从知乎的私信找到我的 , 然后就跟他聊 research, 然后就聊着聊着就合作了一两篇 paper 吧 , 那个叫做 HGRN 嘛 。
对 , 那个也是一些比较早的一些来做线性 RNN 的一些工作了 。
所以就是你们这些很年轻的 AI 研究员 ,其实你们都还挺跨组织的 , 对吧 ? 也不是说就是在比如自己的实验室啊 , 或者什么合作伙伴只限于这个范围 , 就非常跨机构 、 跨组织 、 公司 , 然后学校主要是研究方向把大家聚合到一起 。
那肯定啊 , 你可能你在一个学校里面并不能找到这么多来从事这个领域研究的人嘛 。 那肯定还是跟同行 , 就是都是这个领域的这些研究者交流起来可能收获更多吧 。
你现在的导师是一个韩国人是吗 ? 我看这个名字好像是一个韩裔吧 。
韩国人, 对 。
他会在这方面就是给你一些什么这个指导或者建议吗 ?
他可以帮我来搞卡 。
OK, 就是这个老师还是有比较多资源什么 。
我觉得说 PI 的话 , 那可能就是搞资源了 , 然后对 , 然后别的方向可能也不一定能帮得上学生嘛 。
因为遇到像 PhD 的话 , 那可能就大家读 PhD 的 goal 就是在这个领域里面比自己老板还要懂嘛 。 当你如果已经比老板懂这个领域了 , 老板也不能给你太多帮助嘛 。
但我觉得老板他当年其实还是有眼光的吧 , 然后他会在大方向他会觉得建议我去关心一些这种软硬件结合的一些算法设计啊 , 然后建议我去关心一些这种数值代数里面的一些东西嘛 。
有些算法也是从这种数值经典的数值代数里面把它把它就是给启发出来的嘛 。 像 DeltaNet 的那个算法 , 它其实用到了一个就是数值代数里面一个非常经典的一个 Householder 矩阵来做累乘的一个算法嘛 。
然后那个矩阵那个算法可以完美的和先验推理的一个创造算法来做一个结合 , 然后就得到了最后的那个算法 。
所以我觉得老板可能就是会在最开始的时候会有一些大方向的一些感觉吧 , 然后提供一些算力的这种支持嘛 , 然后写 paper 的支持 , 然后主要 idea 应该都是我自己想的 。
像数值代数这属于数学领域的一些成果 , 对吧 ? 那这个比如说你的数学知识 , 就是因为你本科 、 硕士 、 博士期间都有修一些这方面的课 , 就它怎么积累了 ?
包括你之前因为是比较偏算法背景嘛 , 你也说你后来会自己去做这个 Quader Canal、Triton 这些 , 这都是你自学的吗 ?
就这些比较交叉的能力怎么去积累啊 ?
感觉还是看兴趣吧 。 我觉得我对这种矩阵运算和这种 cardinal 化还是都有一些比较 general 的 interest 的 。 像数值计算的话 , 它其实还是比较应用数学的啦 , 然后很重要就是矩阵的一些 numerical 的一些算法 。
然后矩阵的话呢 , 那你做 deep learning, 那你肯定跑不开矩阵嘛 , 就是你无论做这种啥你都能看到一些矩阵嘛 。
然后那些 numerical 你在 Algebra 里面就会有很多那种 , 比方说那种迭代的算法嘛 。 比方说你想求一个东西 , 你它有一些迭代算法 , 然后有一些也就是一些就是能够直接换成一个新的算法来提供加速的 , 来提供并行加速的这些 。
我觉得这些 Matematology 都是我比较喜欢的东西嘛 , 所以我可能就自然而然我就会看得比较多 , 然后看得比较多就熟能生巧吧 。
对 。
因为南方科技大学本身也是一个比较新型的研究型的大学啊 。 就是你们当时上本科的时候 , 像什么数值代数这种东西是在你们什么数学课上会学吗 ?
还是它其实不在课程体系里 ?
其实我本科的时候最喜欢的课就是 Near Algebra。 我觉得南科大都算挺好的 ,因为它那些教材基本上都是全英文的那种比较先进的一些教材嘛 。
像 Near Algebra 线性代数我们当时用的是 MIT Gilbert Strand 教授的一篇那个非常经典的一个教材 。 像他的那个 MIT 公开课在应该也挺火的吧 , 很多人应该也看过 , 就 Gilbert 他的那个线性代数的那个讲法嘛 。
然后他当时就让我对这种线性代数很感兴趣嘛 。 对 , 如果我觉得如果我如果我是读的国内一些其他学校 , 然后上线性代数如果先生来就给我来什么行列式啊 , 然后给我来一些什么求一些什么东西 , 我可能就对线性代数没有什么兴趣了 。
像 Gilbert 的那个教法的话就完全就是那种非常符合直觉的那种从那种空间的角度来理解这种形象来理解这种线性代数的一些教法嘛 。
所以我当时就有很强的这种线性代数的这种兴趣 。
你自己就是具体来改进这个 DeltaNet, 就是让它那个可以并行化的去运转的这个过程中间 , 这个思路是怎么产生的 ,以及它有什么难点吗 ?
你是怎么解决的 ?
它的难点的话就是像一个线性的一个 recurrence, 如果我们想要并行的话呢 , 那肯定就要把它展开嘛 , 然后把它展开完之后呢 , 我们就是有一个转移矩阵 , 那个转移矩阵它一展开 , 它就会变 , 它会有一个累乘的项在那个地方嘛 。
然后这个难点就是怎么去算这个累乘的项 , 然后它非常高效的算出来嘛 。 像 DeltaNet 的话 , 它是一个 Householder 的一个类似的一个 transition matrix 嘛 。
那个时候最开始的话是不太知道就是这个 Householder 它那个累乘怎么算 , 然后不太知道它怎么跟那个 Near Attention 的那个创算法来进行一些结合 。
然后后面突然发现这个 Householder 它的这个累乘 , 它其实有一个算法叫做 WY 算法 , 然后这个算法它它就是相当于就是把一个累乘变成一个累加 。
然后我一看到累加 , 我想这不就是线性注意力它的形式吗 ? 然后我就意识到它可能里面就会有一些就是它这个 Householder 累乘和这个线性注意力它的这个创算法 , 它可能就有一些能够兼容的一个部分 。
然后我后面推了一段时间 , 然后终于推出来一个这样子的算法 , 然后当然还挺开心的 , 就推到一个这么一个比较好玩的一个算法 , 然后可以把 DeltaNet 这个工作把它 scale up。
你开始不知道 , 然后后来知道是你怎么知道的 ? 就怎么发现的 ?
我觉得做 research 你肯定就是突然你就想通了 , 可能 。 对 , 就比方说突然盯着那个 DeltaNet 那个形式看 , 然后盯了一会儿 , 然后想这玩意不应该就是它这个 transition matrix 不就应该是一个 Householder 的一个矩阵吗 ?
然后我想那我是不是可以把它 reduce 成一个 Householder 累乘的一个算法 , 然后去搜相关的这种 retention。 然后就发现就可以搜到一些这种 numerical Near Algebra 里面一些比较经典的一些算法嘛 。
然后我又发现就是这些算法它 somehow 它就可以跟这个 Near Attention 它这个算法把它完美的融成一体 。 对 , 我觉得这个就是就有下一代就是就突然就想出来了嘛 , 就可能想了很久 。
我觉得这个问题我还想了很久的吧 。 我觉得我可能从 23 年 9 月我就开始想怎么并行 DeltaNet 了 , 然后直到 2024 年可能 3 月份才开始想出了一个算法来开始做嘛 。
然后我觉得可能就是做当时那个 project, 比方说像 KT Near Attention 那个 project, 然后当时对线性注意力它的这个分块 , 它的创算法有了很深刻的理解 。
然后后面就是做这个研究的本身 , 它启发到了后面的一些 idea 的一些产生嘛 。 我觉得还是挺循序渐进的吧 , 就是 。
对 , 我觉得它是把一些过往积累串起来的过程 , 对吧 ? 包括你最开始能联想到这个 Householder 矩阵 , 可能也是比如说你说你本科的时候数学啊什么线性代数你也比较感兴趣 , 你可能自己平时看的 、 学的 、 想的也比较多 。
对 , 就比方说像我 master 的时候在商科大就学过一门课嘛 , 叫做 Matrix Method 矩阵方法 , 然后里面就讲过 Householder, 然后还讲过就比方说 QR 分解 , 它是一个非常经典的一个算法 , 对吧 ?
然后它其实很多时候呢 , 它可以调用这个 Householder 累乘来做这个 QR 分解的 , 然后它这样子的话可以做一些并行的一些 QR 分解 。
然后那个 Householder 累乘它最开始的应用就是来做这些 QR 分解 , 非常非常经典的一些数值方法了嘛 。 然后直到最近我发现这玩意又可以用来加速 DeltaNet 之类的这种架构 。
对 , 然后让那些方法可能有了一些更多的应用场景吧 。
我觉得很有意思的一个问题是说 AI 什么时候能像人一样有这种联想的能力啊 ? 就它可能过往有很多其实看起来没有什么关系的一些东西 ,但是你可能把它放在一起 , 它会有一个新的成果或者说发现出现 。其实以前很多基础科学也是这样的嘛 , 比如说物理学有很多东西 , 它其实也是从可能已经存在比如说 100 多年甚至几百年的一些数学里面它又得到启
发 ,但在那之前也许没有人把这两个东西联系在一起 。 不知道大模型什么时候能做到这个 。
这个我其实我也不好说吧 。 我觉得像大语言模型应该是能独立发明这个算法的 , 我觉得以当前的 AI 来看 。
你觉得是可以的 ?
对 ,因为我如果给一些合适的 prompt, 它可能就已经能够把后面的东西全部给我推出来了 。 那肯定会存在一个 trajectory, 然后它推出这个东西 。
它完全没有人参与也可以吗 ? 如果只给它一个目标 , 就是说我想这个并行 DeltaNet, 它能做到吗 ?
我觉得应该可以用 RL 来做吧 。 然后这个东西应该是可以给一些 verifiable 的 reward 的 。 只要它能给 verifiable reward, 它可能肯定这个问题就可以被 RL solve 掉嘛 。
像并行这个的话 , 我觉得可能是可以通过 RL 直接来做出来的 。 像 RL 的话 , 那可能就做很多那种 scientific discovery 也是挺有用的嘛 。
具体之后它到底能不能比人强呢 ? 可能就是我也没有什么概念 。 可能有人觉得就这两年可能 AI for science discovery 可能会有很大的进展吧 ,但我也不太懂 , 我就没有 comment。
FLA 社区1:04:11
今年 1 月你也开始维护 FLA, 就是一个这个线性注意力的开源社区和小组吧 。 你可以讲讲这个契机是什么样 ?
然后也可以分享一下就是你们在做这个开源小组的过程中间有什么故事啊或者收获之类的 。 因为我看这里面有很多不同公司 、 不同国家的人都来贡献 , 包括有 Kimi 的研究员 ,有在瑞士 、 在德国做 AI for science 的一些开发者 。
我记得当时可能还是就是在之后看了一篇文章 , 然后比方他说就是 FlashAttention 它的成功呢 ,其实最主要还是一个做产品的成功嘛 。
因为它就是说它这些 idea 的话 , 它其实都是已经被发明的了嘛 。 像这种 Tiling, 像这种 Nonce of Max 这些东西全部都已经早就有了嘛 。
甚至之前可能有一些比方说像 X-Transformer 里面就已经有一个比较 , 之前好像有些文献就已经有 FlashAttention 的一些初步的一些想法了吧 。
然后 FlashAttention 它之所以出圈呢 , 就是因为 Tri Dao 它非常重视这个把 FlashAttention 作为一个产品来运营 。 就比方说它会提供一些非常好用的一些接口啦 , 然后让大家就是能够非常方便来用啦 。
然后另外一点的话呢 , 它会经常跟开源社区来互动啦 , 然后比方说像用户有什么需求啦 , 它就会去想办法去实现一些功能来满足用户的需求嘛 。
对 , 然后所以反正就是最主要的还是一点嘛 , 就是它足够好用 , 然后就是你即插即用嘛 , 你就安装一个包 。
虽然很多时候大家都知道 FlashAttention 非常难装 ,但是装上了之后它用还挺好用的嘛 。 对 , 它就是画也好嘛 , 然后它就可以看了 , 带来很大的提升嘛 。
然后当时就是被 FlashAttention 它这一套做产品的这种理念就被打动了嘛 , 然后我觉得我可能我也要需要 , 比方说像 Near Attention, 那为什么我不用相同的理念 , 然后来做一些 Near Attention 的一些开源库呢 ?
因为像 Near Attention 的话呢 , 它可能有一些算法的一些成果嘛 ,但大家也没有一些比较好的实现来用嘛 。 然后大家想用其实也不知道到哪去用嘛 。
那我干脆就搞一个 library, 然后我会写很多那种 Triton 算子 , 然后我会写很多那种不同的模型的一些 layer 的一些实现 。
这样的话呢 , 大家的话可能就只要用一个库 , 它就可以跑很多很多的模型 , 然后每个模型都有相应的 kernel 的支持 , 然后用户肯定就会觉得这个库很好用啦 , 然后呢 ,他们肯定就会就是一直来用这个 。
然后同时他们可能会给你反馈一些这种什么 future request 啦 ,他们想用一些什么功能啦 。 然后我们也会根据就是用户想要什么东西 , 我们可能也会来迭代我们的这个 FLA 的这个实现嘛 。
就比方说像有段时间就很多人就想要我们加一个变场训练的一个模块嘛 , 然后我们后面就发现这个需求非常大 。
那我们就我就跟张雨绎商量 , 然后我们就决定就是全面 , 然后来把这些变场训练 Verifiable Learning 的这种东西把它全部写到 FLA 里面 。
就是 FLA 它有另外一个 core contributor, 它叫张雨 , 她也是 Kimi Data Attention 的那个作者 。
比如说像张雨的话 , 就是你做了这个 FLA 之后, 就他们有关注到这个方向 , 然后所以她就加入进来成为这个核心贡献者了是吗 ?
我跟她之前就认识 , 我跟她很早之前就认识了 。 我跟她可能 2020 年就认识了 , 认识挺早的 。 然后我们当时之前都一直在做 parsing。
对 , 我前面也提到过 , 我说是阶段是在做 parsing。 然后就是 parsing 里面它会有很多那种可能要你写一些并行算法来做并行 parsing 的一些东西嘛 。
然后像张雨她之前的时候 , 她就会有一个开源库叫做 Supa。Su 的话就是苏州大学嘛 , 就她当时在苏州大学念书 。
然后 Pa 就是 parsing 的意思 。 然后那个 Supa 的话呢 , 就是我感觉它是维护得相当的好的 。 然后它会有一些非常 clean 的一些并行的实现 , 然后效率都挺好的 。
然后当时我觉得就是所有的这种 parsing researcher, 它都会来用这个库来做相应的这种 research。 然后当时觉得这个库非常的酷 。
然后当时想做 FLA 的时候 , 我就第一时间想到赶紧把张雨拉过来 ,因为她做库很有水平嘛 。 对 , 她之前就有维护开源库的经验 。
然后我感觉她是一个写这种并行算法写 kernel 的一个苗子 。 虽然她当时应该还没有大规模的来写这个 ,但她之前就喜欢写这种东西嘛 。
然后我觉得把她拉过来 , 她兴趣上面也会比较感兴趣嘛 。 然后我就把她拉过来一起来做这个开源库了 。
然后你要是翻 FLA 的那个 DeltaNet commit, 它其实是 in terms of 那种贡献的行数和这种总体的 commit 数的话 , 它都是最多的 。
对 , 它是这个库就写得最多的 。 我觉得它写代码就写得非常厉害嘛 。 然后后面也是 Kimi 想做这种 hybrid 的 Near, 那可能就来找这个 FLA 的这个库的这种作者嘛 。
像我在美国 ,他们肯定也不能把我弄过去嘛 。 那他们就把张雨啊 , 把他们就把她弄到 Kimi 去来做这种研究了 。
所以张雨是先做 , 就她先和你一起在做这个 FLA, 然后她才去的 Kimi。 你们刚开始在就去年的时候 , 她那会还不在 Kimi。
对啊 , 去年做了一年, 然后她当时还在各种地方实习吧 。 然后今年初 , 然后她就才去的 Kimi。 然后她在 Kimi 就开始做这个 Project 嘛 。
我看到了 , 她的头像是个二次元 , 一个少女拿着一个实验笔记吗 , 还是什么东西 。
经典 stereotype 啦 , 就二次元头像的人,coding 强 , 这个非常刻板印象 。
所以相当于 Kimi 也是他们有关注到这个方向 , 然后也定向的找了一些这个方向做得比较好的人。
对啊 , 我觉得是的吧 。 我觉得就是如果有一些技术他们想用的话 , 那肯定不如把这个做得挺好的一些团队直接把它搬过去嘛 。
这个方向在 Kimi 里面是比如是谁来判断了 ? 我看那个苏建林在你们这个就是群里面也比较活跃啊 , 就在 FLA 这个小组里面啊 。
我听说好像是 Tim 来判的 。 对 , 就是周欣宇 。
周欣宇 。
对 ,但是我也不太了解了 。 对 ,因为我毕竟也不是他们 ,在他们那里上班 , 对吧 ?
对 , 我觉得 Kimi 的这个就是模型上的产出还是挺强的 。其实它 K1.5 的时候就挺强的 , 只不过当时 DeepSeek R1 肯定是最吸引关注的 。
对啊 , 感觉它就经常喜欢对着 DeepSeek 干嘛 。 对 ,DeepSeek 出一个 latention sparse attention, 它出一个 Moba 都在做 sparse attention。 然后现在启明也要对着干了 ,DeepSeek 出一个 dispersed sparse attention, 它要来一个对仗的一个名字 。
所以就有 Kimi Delta Attention 了 。
你觉得再往下的话 , 整个这个注意力的演进的趋势可能是什么样 ? 可以分这个线性注意力和稀疏注意力都聊一下 。
未来趋势1:11:25
如果稀疏注意力那边你也有一些了解的话 。
我觉得稀疏注意力的话呢 , 我本身我觉得我还是挺熟这一块领域的 。 对 ,因为我觉得做架构的一般都是会关心就是不同 Sub-era 的一些进程嘛 。
然后像稀疏注意力的话呢 , 它主要就是想做一些动态的稀疏嘛 。 因为之前那些比较静态的稀疏可能就是效果不太好嘛 。
然后动态稀疏的话就是一个 token, 它动态来决定哪些东西要去 。
跟它有关 , 跟它关联 , 对吧 ?
对 , 然后我觉得稀疏注意力那边可能还是也是要卡在比方说你这个实现啊 , 要怎么硬件高效呀 。
对 , 像 NSA 的话 , 它也是搞了一些东西的 , 让它硬件高效嘛 。 就比方说它有一个那个 block 的那个 selection 嘛 , 就是你一次你要选一个 block, 这样的话呢 , 你就可以把它连续的把它读进来 , 然后一次来做一个那种运算嘛 。
对 , 然后最近的话呢 , 像 DeepSeek sparse attention, 它好像就把这个东西又扔掉了 , 它又改回那种完全 unstructured 的那种 sparse attention 了 。
它是改成静态的了吗 ?
它是改 , 它还是动态的 ,但是它把那个 block 的那个按 block 来选择 。 对 ,因为按 block 来选择呢 , 还是一个 constraint 嘛 。
对 , 你如果你要选 512 个 token, 你是选 512 个单独的 token 好呢 , 还是按照 block size 32, 你选 512 除以 32 个 block 好呢 ?
对吗 ? 那肯定就是从直觉来看 , 那肯定就是选 512 个单独的 token 要更好嘛 。 然后像 DeepSeek sparse attention, 它就改成这种更灵活的这种方式了 。
相对应的话 , 它们可能就会加一些其他的新的改动了 。
相当于就是它选的这个范围变得颗粒度更细了是吗 ? 它之前是选一块一块 , 它现在可能是选到跟它更相关的单个 , 就是你刚说直觉上更好的单个的这个 token。
对对对 , 它就是变得更加灵活了 。
但这个就是更难实现的 。
对 , 它这东西肯定会有些误判的 。 然后像 DSA 它的那个处理的那个方法就是说它会去用一个非常非常轻量的一个平方复杂度的一个这个来做一个那种整体的一个注意力 , 然后会得到一个 L 平方的一个矩阵嘛 。
因为它这个东西它会比较
比较轻量 , 它这个算子是可以在 FP8 下面做的 。 因为它这个东西它如果选 Top K 的话 , 它不需要做 Nonce of Max, 它不需要做那种 exponential 这种非常吃精度的一些算法 。
它其实就是一个矩阵乘法嘛 , 那它就可以用 FP8 的这种矩阵乘法来加速嘛 。 另外的话 , 它这个模块它本身就比较轻量嘛 , 所以它可能就比方说它那个维度比较小啊 , 然后它算起来比较快嘛 , 所以它会有一个比较轻量的一个这个 ,他们管这玩意叫 Indexer。
然后 Indexer 的话 , 它求出一个整体的一个注意力 , 然后它就求 Top K 嘛 , 然后每个 token 就是来找它前面 Top K 个注意力最强的那些 token 嘛 。
你可以继续说 , 就是稀疏注意力上的一些演进 。
对 , 这个是就是大概就是最近这两个工作的思想嘛 。 然后我觉得它想要解决问题应该就是还是说比方说像如何去把那个 token 选得更准一点 。
像那个 block sparsity 的话呢 , 我觉得可能就是如果你那个 block 没选中, 你那个就容易把那个重要的信息把它漏掉嘛 。
所以研究怎么去把这个 block 把它选准 , 我觉得这是一个非常非常有价值的一个问题嘛 。 然后另外一方面的话 , 比方说你像 DeepSeek 一样走这种 token-level 的这种 sparsity, 那它其实训练起来的话呢 , 它没有从预训练开始就开始做嘛 。
它其实它是从 MIDI training 开始的 。 它会先跑一个蒸馏 , 它会把最开始的 3.1,DeepSeek 3.1 把它转成一个 MQA, 然后把那个 attention 的那个 distribution, 然后来蒸馏这个 Indexer, 然后来得到一个初始化 。
对 , 然后有一些因为这种稀疏 , 我觉得可能好像是有一些那种梯度的那种传递的一些问题嘛 。 然后可能 sparse attention 它 block 之所以选不准 , 那可能也跟这种梯度它的这个传的这个它梯度准不准也是挺相关的嘛 。
就是无论是什么时候如果有 sparse 的话 , 那你肯定要想一下这个梯度要怎么更好嘛 。 然后大概可能就这样子 。
然后最后的话 , 我觉得 sparse attention 也可以想一下有没有可能稍微丢一下这种 KV 开始呢 ? 因为现在 sparse attention 它我觉得它完全不丢 KV 开始了 。
那它跟 full attention 一样嘛 。 所以我前面也讲到 , 它最后它可能还是会被这个 KV 开始的 size 被它 dominate 了嘛 。
所以就是相比于 full attention,sparse attention 它的这个推理的效率是更高的 ,但是它这个就是存储的这个负担上还是很大 , 如果文本越来越长的话 。
对啊 ,因为它还是从前觉得 KV 开始嘛 。
那这个方向是有人在探索什么 ? 就是在稀疏注意力的基础上, 然后我去掉一些 KV cache,也是有人在做这个方向 。
不太确定 。
那你可以讲讲就是这个线性注意力机制的改进这一块 , 再往下你觉得会怎么去演进啊 ? 可能会有些什么趋势 ?
像 Near Attention 我觉得就是就前面也讲了嘛 , 就是它主要是两个方面的改进嘛 , 一个是网络架构上面的 , 一个是更新规则上面的嘛 。
然后像网络架构我觉得大家可能已经验得差不多了啦 。 然后像更新规则的话呢 , 可能可以想一下除了 DeltaRule 这一种 , 还有什么更新规则能够更好的这种并行 , 同时它又看起来更加 expressive。
然后另外的话呢 , 可能我觉得像 DeltaRule 这一系列沿着这系列走已经有很多 work 了 , 就是比如包括把它加 Decay 啊 , 然后加 Fine-Grain Decay 啊 。
因为 DeltaNet 它还有一个梯度下降的视角嘛 , 从 Test and Training 的角度来看 , 它有个梯度下降的视角 。 然后也有一些工作就是每一个 step 它不做一次梯度下降了 , 它做很多次梯度下降了 。
然后有个工作叫 Delta Product。 然后还有一些就是动态扩容的一些方法嘛 , 比方说像 Mesh of Memory, 就把 N 的那种 state 看成 MLP 的那种 weight matrix。
既然你 MoE 可以在 weight matrix 上面找 MoE 嘛 , 那我为什么不能在 N 的这个 state 上面来做一个 MoE 呢 ? 所以也有一些工作这么做的 。
然后最近还有一些就比方说把 Sliding Window 和 Near Attention 把它做一个结合嘛 , 比方说像有个工作叫 Latent Hybrid Attention, 它相当于就是说它还是保留了 Sliding Window Attention, 然后它把 N 的那种 state 就可以看成很多个 token 嘛 。
然后可能外面的就用那种 N 来 compress, 然后相近的就直接保留这种 Sliding Window 的形式嘛 。
就是滑动窗口加那个线性的注意力的结合是吧 ?
对啊 , 就是对 , 就是 0 进 token 就是 Sliding Window, 外面的话就用那种线性 。
你觉得当前的注意力机制离你理想中所设想的那个状态它还差什么呀 ? 或者说离大家理想中所设想的这个状态还差什么 ?
我先不说理想吧 , 我觉得我可能我下一步最想看到就是比方说有个地方把 Sparse Attention 加 Near Attention 把它做通嘛 。
因为像 Hybrid Attention 的话 , 那其实现在还是有 Global 的这个 Full Attention 嘛 。 然后有 Global Full Attention 的话 , 那其实你在长文本 decode 的时候 , 你还是会或多或少会被这些 Global Attention 的这些层被影响到嘛 。
然后可能可以把这些 Full Attention 全部换成这种 Sparse Attention, 然后沿着这个路子把它做通 。 就比方说你搞一个 DSA 混那个 KDA, 对 , 你搞一个这样子的混法 。
DeepSeek 和 Kimi 的 。
搞个这种 Hybrid 我觉得也挺好的呀 。 对 , 你至少你可以把长文本的这个问题暂时先彻底搞定嘛 。 你这样的话 , 你 KV cache 的 size 也掉下来了呀 。
然后你这个 inference 速度也降下来很多嘛 。 然后你可能就可以 build 更多的这种 application 嘛 , 然后能做很多长文本的应用嘛 , 然后可能可以做更多的 agentic task 嘛 。
对 , 我觉得长文本问题还是那种开销还是要来处理一下的嘛 。
现在大家在混的时候都是混的这个线性注意力和 Full Attention,而不是直接用线性注意力混稀疏注意力的原因是什么样 ?
就它没有这么好容易混起来 ,在现阶段的难点是什么 ?
我觉得架构 research 它是一个缓慢的过程 , 它不可能一步子迈这么大的了 。 它可能都是慢慢的来嘛 , 就是你先保留一些 Full Attention, 你来验这个 , 来验这个 Near Attention 嘛 。
然后先验完这种 Hybrid 的嘛 , 你 Hybrid 先验出来 , 你再验这个 Sparse 也不迟嘛 。 然后现在 Hybrid 我也不知道它先等那些更大 scale 的那些旗舰模型验出来了嘛 , 然后再来验这种 Sparse Attention 嘛 。
那肯定不能急嘛 ,不可以直接最开始就直接来一个非常 crazy 的一些改动 。 然后我觉得架构 research 还是要扎实嘛 , 就是你一次动一点点 , 然后你来把这东西验得非常充分之后再去动下一个 , 这样子才能有一些比较实在的一些进步吧 。
所以接下来其实就是我们看就是这种混合的线性注意力和 Full Attention 的表现好不好 , 可能接下来一个比较明显的观察的指标就是 Qwen 3.5 还有 K3, 对吧 ?
它肯定是比较大规模的模型了 。 如果它们真的用这个 KDA 的话 , 可以看一看是一个什么效果 。
对啊对啊对啊 , 我觉得这就是一个非常好的一个观测指标嘛 。 如果它们最后要上这个来上 scale, 然后大家可以让子弹再飞一会儿嘛 , 到时候回来再来看一下也不迟嘛 。
持续学习1:21:10
就更广泛来说的话 , 你现在比较关注大语言模型或者说这个预训练方法加强化学习这个再往下走的什么演进趋势啊 ?
因为可能业界上有一种讨论就是会觉得预训练加强化学习这个它已经到了一个比较长的阶段了 , 那可能需要一些新的方法或者说范式吧 。
有几个讨论的比较热门的方向 , 包括什么在线学习啦 、 持续学习 、 自主学习等等。
我觉得持续学习应该是大家一个非常关心的一个问题吧 。 这个领域有很多那种 open question, 持续学习到底要怎么搞 , 大家也没有什么定论嘛 。
然后感觉大家搞的持续学习也效果好像也没有看到什么样嘛 。
对 , 就说是一个很新的觉得有前景 , 然后很早期的一个状态 , 路径还很不清楚的状态 。
持续学习我觉得它肯定是一个非常重要的一个东西嘛 。 然后就比方说你 AI 如果能持续学一些外界的东西嘛 , 那你可能就不需要隔一段时间重新训一遍啦 。
然后另外它也有很多那种商业上的价值嘛 , 比方说做 Personalization, 然后你这个用户你不停地交互 , 然后这模型就有了这些记忆 , 然后它能够更好地来
记住用户的这种喜好或者历史的一些事情之类的 。
现在的模型的记忆 , 比如说 ChatGPT 它有这个记忆的能力 ,但它并不是内化在模型里面 , 它是靠一些工程或者外挂的方式 , 它记住你的一些东西是吗 ?
对啊 , 像 Pre-train 的话 , 它就是把东西把它压到 FFN 的那个 weight 里面嘛 。 然后另外一种就是比方说上下文工程 , 你就是把那些东西把它放在 context 上, 然后通过这种注意力机制啦 , 或者其他东西来 in-context 来学嘛 。
这是现在主要的两种 。 当然也有很多那种比方说搞一些 memory 的外挂嘛 , 然后把它加进来 。
所以如果模型能自己持续学习的话 , 就理论上这个模型它就可以变得越来越懂你 , 或者说它懂某一个场景或者任务 。
对 , 可以这么理解 。
那这样的话岂不是上下文工程的空间就变少了 ? 当然这还没实现啊 , 只是设想一下 。
其实这也是一个 open question, 就是有一些信息啊 , 它是到底是存在 weight matrix 里面好呢 , 还是存在上下文做 KV cache 更好呢 ?
对 , 我觉得这东西也是没有定论的 。 然后其实我觉得这两个问题是一个 duality 的一个问题嘛 。 梯度下降你也可以想象成比方说你上下文学习你也可以想象成一个梯度下降的一个问题嘛 。
像最近比较流行的这种 Test and Training 的这套框架嘛 , 就相当于你每一个 token 都相当于是一个训练的一个样本 。
然后另外这个训练样本把它喂进去 , 然后它过一遍 Gradient Descent 来优化一个目标函数 , 然后更新它的那个 weight matrix。
然后这 weight matrix 就是快速变化的嘛 , 所以我们也可以把它叫做 Fast Weight 嘛 。 然后 Fast Weight 在 RNN 里面它就可以看成这个 RNN 的一个影状态嘛 。
然后既然它有一个这么一个 duality 的问题 , 那其实我觉得像 FFN 怎么学这种知识的这种东西其实也是一个很好的来启发大家解决长文本的一个东西嘛 。
像 FFN 肯定记了 Trillions of tokens, 对 , 然后它很多还记得还挺牢的 。 你要是比方说你有一个长的上下文的一个问题 , 那你其实可以把它转换成一个你看能不能用类似的这种技术把它存在一些 weight matrix 里面嘛 , 这么来做一些动态来做一些这种 Test and Training, 然后可能可以实现一些比较好的一些持续学习的一个路径吧 。
我觉得这个路径还是挺看好的 。 因为像现在的话就是这些 weight matrix 它都是一些 slow weight, 就是说它在做 inference 的时候它是不更新 weight 的 , 所以它无法从新的 token 里面学到新的信息 。
像 Test and Training 或者像 Fast Weight Programming, 它这 weight matrix 它在处理完新的 token, 它是会更新它自己 weight 的 。 对 , 它有一套更新的规则 。
然后 weight 更新其实跟 RNN 更新规则也是一个 duality 的一个关系啦 。 然后如果我们能把这一套把它做通的话呢 , 首先长文本的问题可以解决嘛 , 我们可以把它转换成一个用一个更加 compact 的一个 weight matrix 来存很多东西 。
然后另外这个我觉得也可以解决 , 顺便解决一下这种持续学习的这个东西嘛 。
那今天非常感谢松琳做客 《 晚点聊 》, 分享了 DeltaNet 还有线性注意力机制的一些发展脉络 ,以及最近通义的 Qwen 3.Next 还有 Kimi 的 Kimi Linear 里面用到的线性注意力机制的一些进展 ,以及接下来这个领域可能会有些什么趋势 。
我觉得特别有意思的是你讲的就是你自己怎么去想到 DeltaNet 去做并行的这个方法 , 就这个思考的过程 , 做研究的过程很有意思 。
我觉得对很多研究员来说可能是会有启发和共鸣的 。 那今天节目就到这里 , 谢谢大家 , 拜拜 。
拜拜 。
本期零点呈现推荐的往期节目就是开头说到的两期关于注意力的讨论 , 分别是 103 期和萧潮君傅天宇聊整个注意力机制的发展脉络 , 重点聊了稀疏注意力的改进 , 还有 104 期与当时的 MiniMax 算法总监钟怡然聊了线性注意力机制的改进 。
如果听过那两期节目 , 再来听这期应该会有很多内容上的呼应 , 那两期也都有文字版 。 感兴趣的听友可以在 《 晚点 LatePost》 的公众号上搜索阅读 。
本期节目就到这里 , 欢迎收听 。 如果你对今天聊的话题有观察 、 好奇或疑问 , 欢迎在评论区分享想法 , 这也会成为我们节目的一部分 , 让整个讨论更完整 。
你也可以把我们的节目分享给对这个话题感兴趣的朋友 , 欢迎推荐更多你想听的主题和嘉宾 。
你可以从小宇宙 、 苹果 Podcast 等渠道关注 《 晚点聊 LateTalk》,也欢迎关注我们的公众号 《 晚点 LatePost》。 下期再见
。






