subgraph Modern["前沿模型 (如 Kimi K3) 架构替换"]
C["Hybrid / KDA 线性注意力"]
D["跨深度 Attention Residuals / MoE"]
end
A -->|"渐进式替换"| C
B -->|"选择性聚合"| D
```
---
`05:00` 孙宇涛的研究线索(一):从 RetNet 块递归到混合注意力
孙宇涛系统回顾了自己在博士期间的研究主线。他的核心研究问题始终围绕着大模型“推理的高效性”展开。在深度学习早期的计算机视觉(Vision/ImageNet)时代,研究员往往追求设计极其精巧的网络结构来榨取模型性能;然而进入大模型时代后,Scaling Law 证实了模型的参数量和有效数据规模才是决定最终智能上限的核心要素,架构改动带来的指标提升相较于纯参数缩放往往微乎其微。但不同的模型架构在“推理部署成本”上却有着天壤之别,因此学术界与工业界逐渐转向了以效率为导向的架构创新。
```mermaid
flowchart LR
accTitle: Linear Attention Evolution to Kimi Delta Attention
accDescr: A linear diagram showing the progression from vanilla Linear Attention to Kimi Delta Attention via decay and channel-wise fine-graining.
A["Vanilla Linear Attention"] -->|"Add Decay"| B["RetNet / Mamba"]
B -->|"Add Gated Delta Rule"| C["Gated DeltaNet (Scalar Decay)"]
C -->|"Refine to Channel-wise"| D["Kimi Delta Attention (Fine-grained Decay)"]
```
在多模态视觉编码器(Native Vision)部分,核心议题在于:是直接使用现成的预训练 Vision Encoder(如 Google 开源的 SigLIP 2)做初始化,还是从零完全原生训练(Native Train from Scratch)?
使用现成 ViT 的优势是收敛快、节省算力,但 Kimi K3 的实验表明,如果直接拿 SigLIP 2 进行初始化,其在后续训练中的梯度范数(Gradient Norm)分布极其不稳定,会出现明显的尖峰和剧烈震荡。虽然从 Scratch 训练会消耗更多视觉预训练算力,但最终不仅模型性能无损,甚至在最终表现上更为优异,更重要的是 Gradient Norm 展现出极高的一致性与平稳性。
孙宇涛指出,这种不稳定的深层原因很可能是**优化器冲突**:SigLIP 是用 Adam 训练出来的,而 Kimi K3 坚持全流程使用 Muon 优化器。业内此前就发现,用 Adam 预训练的模型在切到 Muon 进行微调时兼容性较差;而 Kimi 追求架构与优化器的纯粹统一,因此原生从零训练是保障系统级稳定性的最优解。
`01:50:00` RL 沙箱工程、梯度显存复用与 Linear Attention 推理前缀缓存
谈及后训练强化学习(RL)与推理基础设施(Infrastructure)的实现门槛,张小珺询问写出论文后复现是否困难。孙宇涛给出断言:“我觉得 Infra 上的事情本质上没有什么难的,因为它本身就是个高度确定性的东西。”他认为,自己提方案考验的是性能剖析(profiling)能力与团队组织密度,但只要有了开源工程实践,业界跟进都是确定性的。
在强化学习架构部分,孙宇涛重点解析了沙箱环境与显存复用的精妙设计:
- **Docker 大规模沙箱管理**:在长思维链或代码执行任务中,RL 的每条轨迹(trajectory)往往对应一个独立的 Docker 容器,如何高并发调度、清理海量环境是极重的工程挑战。
- **参考模型(Reference Model)显存复用**:RL 训练中往往要常驻策略主模型、优化器状态、梯度缓存、Reference Model 及 Reward Model,显存压力极大。Kimi K3 发现,Reference Model 自身不求导,在前向计算产生目标函数的阶段(求 objective)主模型根本不需要梯度缓存;等反向传播计算梯度时,Reference Model 的前向又早已结束。因此 K3 直接将 Reference Model 放置在主模型的梯度缓存(Gradient Buffer)中复用空间,省去了一大块固定的模型显存。
转到推理引擎(Inference Engine)侧,孙宇涛指出 Kimi K3 采用的 Linear Attention 给现代 Serving 体系(如 vLLM)带来了全新挑战——前缀缓存(Prefix Caching)失效。标准 Full Attention 的 KV Cache 随序列向前线性追加,每个位置的 cache 都是历史的简单增量,做 Prefix Cache 极其自然;但 Linear Attention 内部维护的是一个随步数不断复写(overwrite)的循环隐藏状态(Recurrent State),如果每个 token 都存一份 state,显存优势荡然无存;如果不存,多轮对话的前缀复用就彻底失效。目前工程上只得退而求其次,采取按 Block 分块粒度进行 Prefix Caching 的妥协手段。此外,由于现代推理系统假设各层 KV Cache 结构一致,混合了 Full Attention 与 Linear Attention 的异构架构需要底层推理引擎做更复杂的兼容适配。
---
`01:55:00` 100B+ 激活参数的豪赌、模型内科与组织文化
当张小珺询问 K3 最令人印象深刻的地方时,孙宇涛直言并非某种神乎其技的算法,而是参数量:“个人而言吧,我觉得 impressive 一点就是他们把这个激活搞得特别特别大,就是足足有 100B 左右,比我预期的还是要大一些的。”他指出,从过去开源 MoE 的十几到几十 B 激活,一跃提升到 100B 以上(比上一代激增三倍),这完全是一个非技术性的决断,是一次极需魄力的豪赌。真正有价值的基础架构微创新在先前的阶段性论文(如 Kimi Linear、LatentMoE 等)里早有铺垫,“科学研究是不存在跃迁性的提升的,只是说大家习惯把这个技术的渐进性提升的某些节点成为一个 milestone。”
[0:00] Hello 大家好 我是小俊今天的节目是一集学习播客学习KIMI K3的技术报告希望和大家一起领略技术之美K3是有效扩展到2.8T总参数并全量开源的MOE模型大家可能注意到这集技术报告的领读播客距离模型发布已经过去了一段时间期间我们试图寻找一位合适的嘉宾背景非常适合的来讲K3,最后找到了孙宇涛。宇涛目前是清华大学计算机系博士候选人,上海创制学院普瑞学者。他从博士开始的研究方向是LLM架构预训练,架构创新一直都是他的兴趣所在,这正好是K3的亮点之一。那宇涛透过领读K3的论文也串联讲解了十多篇相关的论文,他的语速非常快,所以前方语速高能预警。期待2026年我们和AI共同进步当然了这关我觉得可能还有一些别的concern比如说我们发现其实如果用MIMU的话它其实是会更容易出现AutoLine的你控制中间的激活值总不是一个比较错的现象当然如果我说MIMU更容易来AutoLine的这个苏建林一定会反对他肯定会说对于任何优化器来说它都一定会出现AutoLine因为你从模型架构上是控制不了的所以说如果想严格控制的方法它一定是直接从模型架构下手这个情绪上还有一个对应的概念就是泰休斯之船就是你刚开始2017年这个船刚开始行驶的时候是川斯河门但是这个船刚开始是怎么拼起来的?它是Attention加Recedal,我们可能会慢慢的把某些部分换了,其实跟Transformer已经,我觉得像素已经很内很内了,你是否还把这个东西叫做Transformer?我说一下我的判断,我的判断比较暴论,我的暴论就是大模型可能没有台北人的创新了,后面都是一些改样性的进步好的,那我们的论文学习播客又来了,这次我邀请了清华大学的PhD Candidate,上海创制学院普瑞学者孙宇涛,将由他带领大家一起来学习和阅读最近大家关注度非常高的Kimi K3的论文,但是宇涛会带领大家读一系列的论文啊,那宇涛你能不能先给大家做一个自我介绍并且介绍一下你的研究方向。好的各位观众朋友大家下午好然后我是来自千华大学的孙宇涛我在这个博士期间的主要的研究方向是大模型的架构和预训练然后这个博士课题呢我是从二三年从那个时候开始我们主要去研究这个大模型的模型架构的一系列的工作然后在那个时间点应该是ChateGPT刚刚发布一段时间吧但是我们的架构研究从其实从ChateGPT发布之前就开始对差不多就开始了然后我这两三年的主要的一个研究方向去尝试解决然后大模型在推理这个环节的一些低效性所以说我们主要的一些研究方向都是围绕着推理高效性来去展开的然后其实大家也可以注意到说就是在模型架构这个方面呢整个业界的研究方向也是逐渐从偏这个性能为导向逐渐的变得是以效力为导向然后在这个方面其实是有一些办事上的变化的因为可能在Vision时代或者说在ImageNet时代大家还是尝试去做到更精妙的一些架构然后去提升模型本身的一个表现但是在大模型时代呢然后我们其实逐渐发现对于模型的性能而言模型的参数量原来是一个最主要的一个因素然后在这个在模型架构本身的一些改进性的变化呢其实相对于模型参数本身的提升对带来的这个性能提升是相当微小的但是其实不同的架构在这个模型的推理方面然后性能差异是巨大的而且这个也是主要决定了模型最后的一个部署的价格然后其实这两年大家主要在这个方向去努力然后对于我而言的话其实我们是在23年开始然后探索这个现役助力这样的一个方向的一个工作然后我们这篇RatSide的工作刚开始主要是解决了两个问题的我觉得从现在的这个阶段主要解决了两个问题第一个问题就是现役助力怎么能尽量的去全数域的这样的一个性能因为linear从刚开始提出主要是为了去用一个比较linear kernel然后去一个kernelized的方式去拟合然后二次复杂度的全数域这样的一个pattern所以在之前那个时代其实对于这个linear tension而言它的位置信息它其实是不够sensitive的然后其实在那个时代这个linear tension和这个和rn只是在形式上比较相似但是从这个建模的特性上来讲rn其实还是比较强调一些locality的一些表示我们在Rectet上是比较早的引入了一个拆点的一个机制这样的话可以让这个限制助力在一个有限的这个状态空间里然后尽量的去
[5:00] 建模这一些对最后的结果贡献足够大的一些信息然后这个其实刚开始的一个motivation除了这个模型性能以外呢我们当时也是主要比较先的提出了这种这个tunk recurrent有tunk as recurrent这样的一个这个线性注意力的一个kernel的这个计算形式因为对于这个线性注意力来说呢如果把这个整个的状态都展开了然后在token这个维度去做这个去做地规的计算的话它其实从效率上并不是最优的但是如果用仿照注意力这种这个计算方式去建模它又享受不到整体计算复杂度带来的优势所以说我们当时就是在这种parallel representation从一些并行的像传入于这样的一个计算形式和全地归的计算形式之间然后找到了一个tradeoff也就是块地归的这样的一个计算形式而这个charquise required我们既可以拿到整体的一个计算复杂度上的一个收入同时我们能在chronelize层面然后我们可以尽量多的去这样tenthcrow然后把这个local的一些计算密度都拿满这个是我们提出了一个比较有效的计算范式其实如果可以关注到就是之后的一些其实所有的一些限制处理的改进工作都是基于这样ChunkWise的计算形式去计算的包括Mand Bar 2然后Gatea DeltaNet包括然后来到今天的这个Kimi LinearKDA这样的一个计算模式然后在这个计算大的计算模式之上然后又带来一些新的比较细节上的变化然后这个可能之后对今天的后面会就更详细的来进行讨论然后当然从现在这个视角的纯限制处理力无疑是一个比较失败的一个尝试,因为无论如何,比较有限的一个contest,它都难以带来在长沙海文中和全注意力比较完全相懂的一个性能。这个其实在今天这个时间点,我们都知道是不可能的。所以说当时我们在23年也是注意到了这个现象,所以说我们就会尝试说从全线引助力,然后转到一个hybrid tension的这样一个架构的形式。就是用一些现役助力和一些这个全助力力然后组合起来然后作为一个模型的一个架构然后这个本质上听起来就是像是一个工程上的trade off然后也是一个比较工程的解法但是虽然如此呢我们当时就发现一个线不过这个也是目前所大家公认的就是混合助力力它其实虽然从架构上来讲是一种trade off但是从最后模型本身的表现来说并不是一个trade off包括大家其实发现在保持一定的全助力力比例的基础上整个模型其实是可以获得无损也就是说其实在混合注意力模型的架构中我们并没有牺牲一定的全注意力模型能力从而带来工程上的收益所以从这个角度上来讲也是因为实验上的一个结论然后从而导致混合注意力现在被大规模的利用起来这是你的第一片工作是吧对对对对对 是的 然后后来的话就是当时我们会发现说这个混合助力其实在工程上是一个百分之百 work的方法我觉得其实没有问题 当然其实直到今天work的也还是不错嘛当然了对于一个博士生来讲就这个东西就是虽然它比较work大家也愿意去除了但是那这个东西从脑体上其实感觉就差点意思而且感觉也不够有趣因为当时我们觉得就是如果只是把就两种混合注意力模型结合起来的话它有这么几个问题我觉得最大的问题就是它在推理的加速比它永远是和这个混合比是正交的或者说也不是正交就是完全成正比例的因为现在比如大家比较常用的是这个混合注意力比全注意力大概是三比一这样的一个比例也就是全注意力在整个模型里大概是1/4这样的一个比例,所以说如果说我们认为1/4是一个比较无损的也是一个比较极限的比例的话,其实我们很难拿到更大的加速比,也就是说我们无论是prefail还是做decode的,我们最多的加速比也就是4倍,当然我们在做纯线性注意力的时候,我们希望是更高的嘛,我们希望最后如果混合注意,它其实只是一个这个常数级别的改进,所以当时觉得可能不是很有意思,所以我们后来就做了yoko这样的一个工作当时我们的一个motivation就是我们从第一性原理去思考为什么纯现役助力没有办法获得和这个纯全助力一样的性能原因也很简单我们至少希望模型有一些比较基本能力比如说我们至少有一个可以获取全文细细的能力所以说在这个场景下其实全上下文的kvcatch这一点是没有办法去省掉的所以说就kvcatch既然没有省掉我们能不能从另一个维度去省所以当时我们就觉得既然说这个从从token长度这个维度没有办法去节省所以说我们找到了另外一条节省的方向就是从这个层间这样去节省所以Yoko当时做的是一个就是所有层共用一份kpcash这样的一个架构的方式然后另外一个就是从模型的计算角度就每一个token在decode的过程当中对它的计算密度是没有办法去减少的因为我们希望它保持一定的全注意力的计算能力然后这样它才能达到我们希望的常常常常运动力所以说我们提出的另一个东西所以说我们当时可以看到,虽然我们只有一份的KP Cache,但是我们可以保持一个多大的一个问题
[10:00] 复合参生的这样的一个计算结构所以除了在这个技术上我们当时的优客架构就可以就是我们只保留一份的KVCash但是可以获得这个和全注意力或者混合注意力基本上可以等价的一个这个模型的一个计算结果然后这个架构还有另外一个优势就是我们在prefill的时候可以直接跳过这个全注意力的计算因为prefill比如说也就是模型处理这个用户输入的这样的一个阶段我们本质上只是希望我们可以拿到模型的KVCash然后这个KVCash是用于后续的一系列的heater state所以说这个prefuel的唯一目的就是去达到这个模型的qp开始所以说在这个这种架构上我们经过前面的一些linear retention的一个计算然后拿到了kvcash这个就够了因为prefuel阶段我们是没有必要就是减码出每一个位置的后续的next token prediction的所以在prefuel阶段我们就可以直接不过cross retention但是在deco的阶段我们可以保持和这个传统模型一样的一个计算能力对然后这个是我相关的一些第二篇工作这个标题也挺有意思的对这个也是致敬有Only Look Vance当然后来也有后面一系列的致敬的工作你只能缓存一次是吧对这个其实在这个从kvcash的存储角度基本上已经达到极致了因为我们都同意的吧如果从tokenwise角度我们必须能保证所的话一份其实就是最少了不可能再少了所以这个从kvcash角度是一个比较极限的一个结果对然后我讲我对personally我的一个第三边工作就是在这个工作里我们其实解决了就是从一个更通用的角度来去考虑问题的话就是模型的推理开销主要就分为三个部分就是prefuel的这个实现开销然后decoder的开销然后和kvcash的存储开销不可能有第四个,然后优惠这个工作呢,我们主要解决的是prefuel和解决了那个cache,但是我们没有解决decode的。Decode的话,我们后续是,或者大家会尝试用Sprat等等的方式去解决,但是K3他其实目前是没有用Sprat等等的,所以这块今天就先不讲了。我们后面的一个工作是一个,和另一个赛道是一个比较相似的工作,也就是Loop Language Model, 公民思义,我们在保持一个固定的模型参数大小的情况下去通过多次迭代来去提升模型的flops,从而去提升模型的总的一个能力。所以loop这一系列的工作,主要目的就是可以在保持一个比较小的模型参数的基础上,然后取得比同参数的模型好更多的一个效果。在Decode的情况下,它的成本其实是难以忍受的,因为它只是省了模型参数,它其实并没有省计算,而且在相同计算下的话,它其实是并不如把参数展开或者说用一个更大的,但是不去loop的模型,它最后总的效果好。比较传统的loopLanguageModel,还有一个问题就是它的这个推理,它的这个Carrie cache,它的存储,它会随着这个模型推理的深度而增加。所以说最后总的算起来的loop栏格带来的总的cure cache其实是相当大的然后Yoko Universal的这个工作其实就是在这个Yoko价格的基础上然后去做一个位置上的改变也就是我们把loop的单元然后变成一个很efficient的一个单元然后从而去避免就是推理的时候一些额外的一些或者比较大的成本但是能保持它模型的一个效果比较稳定的一个增长解法也很简单因为对于Yoko而言毫无疑问它是一个这个混合注意力架构但是我们混合注意力方式它不是一个交涉式的一个结构它是一个两端的一个结构也就是说我们模型推理的前期它是一个全线性主义力但是模型的后期是一个全主义力这样的一个架构所以说我们的选择是把这个把Luke这样的一个架构只集中在这个线性主义力这样的一个位置然后这样的话我们对整体的QCash增长是比较小的因为LinearTenget它本身的QCash它其实是微乎其微的然后第二个就是线意主义它不仅省存储它其实也是省了计算只有在长上下文这样的一个场景下它其实带来的额外的计算是相当小的因为它Linear Attention所带来的Attention的Decode的计算是相当小的,但是从Injernal的模型能力上的话,它是很大小的。从比如说模型的populacy或者说从模型的skilling behavior它是可以获得足够接近全注意力的这样的一个模型能力所以说我们我们这个架构它其实可以达到的一个效果就是从用差不多这个比如说我们用两倍于原模型的这样一个计算强度我们基本上就会可以获得两倍左右的一个性能提升但是我们的模型存储和这个模型的QCache还是保持和原模型的一个差不多这样的一个这个推理开行对这个是我的第三个工作这班工作因为去年开始这个loop language model是一个大家比较热议的一个话题然后我们在这方面然后做了一些探索所以你从23年一开始读博你的研究方向就一直在架构创新上对吧是的而这次K3他在L1M的架构和预训练上也做了很多工作这是我们今天来找你来带我们读论文的原因对 是的 因为Kimi Linear刚发布的时候当时我们其实之间也有一些讨论然后其实这工作的连续性其实还是比较强的包括Kimi Linear他其实也是比较原封不动的搬到了K3的一个总的一个合板的里面了你为什么一直对架构创新比较干
[15:00] 我觉得两方面吧从个人角度我觉得架构创新比较有意思就是比较好玩对因为别的层面的工作的话它其实工程性的因素会更强一些当然架构创新它也有一些比较工程性的因素当然它的工程性主要来源于就是你需要做一些Infra上的code design但即使是Infra上的code design其实我们之前也提到了比如说我们提出这种Chunk Recon的这样的计算节目它本身其实也是Infra层面的一个创新所以我觉得这个事情比较有意思而且它比较能起到一个四两拨千斤的效果对于一个博士生而言,这块是一个相当好的研究领域,当然在2023年是这样的,2026年可能架构创新能做的其实是越来越少的,这个是从个人层面带来的一个考虑,整个领域的角度而言,我觉得全注意力当时是一个非常大的瓶颈。如果说在这个大规模的这个如果如果大模型推理是大规模的应用的话就是这个东西是一定可以解决就是是一定需要解决而且我们相信是一定可以解决的所以说在那个时间我们觉得从整个行业来讲架构创新是对于模型部署而言是最重要的事情我们这次的主题其实是一起来读Kimi K3论文,但是你对于这篇论文有很多自己的想法,所以你也做了一个不一样的一个分享的结构,并不是完全是根据这篇论文展开,能不能介绍一下你整体的分享的一个结构和逻辑。我一般想talk的主要的逻辑就是从它模型本身比如说从一个论文本身出发当然所有论文都是建立在这些之前无数个relative work的基础之上所以我会选一些比如说他一个论文他有几方面的贡献,然后他可能一个若干贡献,他在背后有一个历史研究的脉络,我一般的风格是会把这个脉络打开,然后这样会达到一个效果就是,如果只看这篇论文你会知道他是这样做的,但你可能会不太清楚他为什么这样做,或者说历史上大家是怎么做的,为什么最后达到这个解,我觉得比如说从一个比较重要的点展开,我觉得从观众的角度是一个比较好的学习的方式,而这样的话也会讨论的更综合一些,因为如果说是一个比较重要的点展开,只是一个点的话它其实我觉得意义是不够大的当然这块可能这个模型架构是一个比较多的一个篇幅主要也是因为一个是KIMIK3它也做了比较多的一个模型架构本身的创新做另一个就是模型架构这一块它的也这个研究的脉络它其实是相当清晰的而且它每一个部分它其实都有一些比较固定的一个credit我们可以就拆成一个一个点然后把大家去讲出来当然后面也会有一些关于Infra的内容,因为现在都是比较依赖Infra和模型架构的code design,所以这两块是密不可分的。别的一些,比如说Playtrained data,大家肯定都是一个比较密密的状态,Paper里也没有写,我也不会讲Paper除了公开内容以外的一些东西,所以这块可能就会涉猎的少一些。你的罗链结构让我感觉到其实我们最后看到的是K3的一个呈现,但其实它是有很多人的credit,它不只是Kimi一家公司,对吧,这也是现在做frontier这些模型的一个有意思的地方,它要吸收很多之前其他人的工作,然后我们也把credit都给到大家,我们这篇讲解就是除了你能理解K3,也能理解它是怎么来的,对吧?对是的我觉得作为一个公司比较科学的方式,如果你最后想把这个模型做好,你肯定是几百家之长嘛,当然如果说,比如说你只想用自己的工作,那这样可能就是没有必要了,如果是基于这样的目的去做工作,那可能你就会错过一些别人做的比较好的工作,因为无论如何,整个行业都是由大家集体推动的嘛,所以我觉得这个也是KIMI K3一个比较好的一个点,包括他之前的一些paper也是这样的,我觉得比较客观会比较真实的把前任的一些工作用一个比较可靠的方式去引出来,不会说想办法去削弱之前一些人的贡献,我觉得这个其实是他做的也不错,标好一个点点所以我们这次是从K3出发然后其实串联起了不管是十几篇论文也好还是技术报告也好还是比如说苏俊宁老师的国课也好就是是有很多的那种那我很期待我们开始吧好Kimi K3从前面它的一个主要的卖点来说的话它其实主打的是一些我觉得从几个方面它有一个比较大的一个囊括首先它说了它的一些结果这个结果特别好而且这些数都摆在这里其实也没有太多可以解读的为什么能达到这样的一个结果然后KBK3主要Claim的是三个维度的一个scaling然后当然我觉得最重要的还是说模型大小的一个scaling就是它做到了一个2.8T这样的一个模型大小而且它是一个比较有效的一个scaling的结果什么叫无效呢无效的scaling我今天就可以给你我晚上回去起一个这个2.8T的模型unit我跑个100B的token然后我就可以放出来这个显然是无效的所以说这个scaling当然是要永远是建立在有效的基础上KBK3就是在这个2.8T这个scal做了一个有效的scaling包括模型的一个激活的它来到了100B左右这样的一个量级其实在KIMI K3发布的时间点其实是比
[20:00] 国内开源模型的其他几家要大很多的这样一个情况的然后它另一个扩展是在就模型上下文长度的这样一个扩展然后在模型上下文长度这样一个维度呢它做到了1 million这样的一个量级然后1 million的话它自然是可以获得更大的这个上下文的窗口然后去解决更复杂的一个任务所以说就是从模型总的来看的话我觉得还是遵循一个第一系原理就是更大的模型才有更大的一个智能上限如果别的东西没有做太错的话其实大家可以看到这个模型的参数大条还是解决模型智能最本质的一个参数量当然如果只看benchmark的话你有无数种方式去达到一个对内或者对外一个满意的结果但是从模型的能力本质上模型的参数大条还是最有效的一个方式而KIMI K3是一个相当早期或者说相当成功的达到了这样的一个对然后到这个模型结构章节模型结构章节的话KIMI K3其实是综合了KIMI整个团队包括这个整个业界然后过去一年以来比较重要的一系列的创新K2不一样K2当时Kimi的发力方向主要是模型scaling本身或者说一些非模型架构的一些创新所以说Kimi K2当时主要沿用的就是DeepSig V3的一个结构但是K3这块的话它其实就跟K2大不一样了KIMI-K3它本身引入了很多比较新的或者说比较创新的一些设计元素对包括对吧自己的也好别人的也好有些比较创新的一些setting也好或者说比较细节的一些调用也好它其实这块做了很多对比较充足的一些准备所以从观感上来看其实跟K2的感觉是很不一样的首先的话是Hybrid AttentionHybrid Attention我刚刚也讨论过一些我们可以重新翻回头来然后再从Kimi本身他的一个写作的writing来去看起然后这块的话我会先讲一下这个先行注意力的在过去三四年以来的一个历史的发展状态因为你如果直接读这个Kimi Delta Attention的话你会发现它的这个公式相当复杂而且说对不同的项然后具体是怎么来的它具体承担什么样的一个作用如果直接看这个公式的话你会发现它特别特别长比如说比金典的Tentent 其实是要复杂很多的其实每一项 它背后都有一个历史性的一些因素或者说大家从整个模型结构探索最后得到的这样的一个结果所以说如果想了解这个Kimi Delta的Tentent这个最后是怎么设计出来的我们还是有必要去探索之前的一些现实力经过了怎样的一个发展阶段然后让我们再回到这个RefNet对这个其实是刚开始我们必不可少的一个这个限制注意力的一个发展的阶段吧因为刚开始这个限制注意力非常非常简单我们就是KV乘出来得到一个外基然后把它加起来对刚开始的限制注意力其实比RefNet还要更简单然后RefNet在这个限制注意力的基础上呢然后我们引入了一个衰减项然后这个衰减是跟Token的位置是有关的然后这样的话就把这个linear tangent从一个比较position invariant的这样的一个角度从位置无关然后不让它变上的一个位置有关然后位置有关最主要的方式一个就是我们可以加rope另一个就是我们可以有时衰减项因为无论如何语言的特性它就是更近的位置它有更高的一个权重所以说如果我们在一个有限的上下文理想达到更好的结果衰减这项其实是必不可少的对所以说这块是这个现实注意比较前期的一个经验然后这个衰减项基本上所有工作都保持住了然后另一个主要的影响就是Chunk Raycounter这样的一个计算形式因为如果我们只是做一些偏学术性的研究或者说只是发paper的话其实从Cernalized的一个足够高的有效性其实是大家不会从一个比较刚开始的就比较强调一个是我们主要发现的话我们完全使用地规的这样的一个形式去计算它其实特别满,甚至在训练过程中,甚至直接要比这个parallel representation,就类似全注意力这样的一个计算方式它还要满但如果我们直接用这种parallel representation,就感觉十分傻逼对,因为我们在训练之后,相当于完全没有享受到这个线性注意力的收益它跟全注意力的计算强度是一模一样的,甚至还要更高的因为它可能有一些别的处理或者说我们的这个Kurdle写的写的没有flash才是好这些都是有可能的所以说我们当时觉得无论如何呢我们都要找到一个比较可靠的一个计算python让它足够发挥GPU的能力的同时然后享受到一个复杂度的一个加速所以当时我们就做了这样的一个事情然后RestNi之后呢有两个比较重要的一个节点在这对 我觉得一个是MambaMamba当时是把这个位置无关的衰减变成了这个位置有关的是一个衰减然后接下来就是DeltaNetDeltaNet的话 当然这个概念不是宋林去提的当时是DeltaNet是之前的一个工作然后宋林是在DeltaNet的基础上引入了开发了一个拖乱Don't read其实就是一句话就是如何能让DeltaNet转化为一个GPU可计算的一个Chunk Recurrent这样的一个计算模式对 当时宋林去做这方面工作的时候我还稍微
[25:00] 有点疑惑我说看上去好像就是DeltaNet不太可以并行他说可以并行并且他已经搞定了所以说从这个GPU efficiency的角度DeltaNet主要是解决的是Infra上的一个困难而且这个解决方式我觉得还是一个比较本质的一个方式然后DeltaNet刚出来的时候我们当时尝试去解决因为当时我们知道这线性注意力它在处理全上线文的这样的一个能力上它其实是不如对不如全注意力的所以当时就有两个方案第一个方案就是我直接认输我就去认定现役注意力是不可能匹敌全注意力的当然可能当时我是这种心态我当时意识到可能从现役注意力的视角出发是很难去匹敌全注意力的我当然是这个想法当然宋利是另一个想法他当然觉得我还可以再努力我们可以努力的去提升现役注意力本身的一个长下文的一个容量从而获得更好的一个节奏然后DeltaNet当时就是这样的一个目的通过这种方式我们可以获得比之前的Retnet本质上其实也就是在相同的这个KVCash大小的情况下就是从上法上提高了这个限制注意力的一个上下文的容量。当时DeltaNet是没有做这个位置衰减的,当时从这个从Properacity或者说从这个Benchmark上它的结果不是特别好。所以说我觉得一个比较显然的事情就是既然我们知道这个位置衰减这个事情。本身是可以帮助模型总的一个能力的那我为什么不把这个模型衰减然后和这个DeltaNet这样一个更高容量的Linear坦证结合起来GETI的DELTA DAD正是这么做的我们可以去结合DELTA ROOT这样的一个更高的一个线性注意力的计算容量然后同时我们给它带来一个衰减然后同时融合这两个我们就可以得到一个更优的欠行注意力的一个表达性质然后这里就可以看到如果没有alphaT这项的话,它其实就是一个比较经典的delta net,然后引入衰减之后的话,我们就可以得到getteddelta net这样的一个形式,然后大家就可以注意到这个表达形式其实已经比刚开始的先进入力要复杂很多了,对,因为如果把这项,如果把st-1后面的一个系数完全消掉的话,其实就是最经典的linear tension,然后RestNet和Mama呢,是把这项小岛的到达一个结果,就是我对这个上一个时间点的历史状态然后进行一个衰减然后这样的话是之前的RatHand和Mamba这样的一个结果然后DeltaNet呢它是引入了一个GateDevtaRu的这样的一个方案然后写成DV形式的话它其实就额外再增加了一项这样的复杂度就慢慢叠加了上去我们再回到Kinvin leader,他在Gate DeltaNet的基础上又变了一个东西,然后大家可以去对比一下这个是怎么引入的主要的区别,它其实就在这个衰减项上比如说在RedHand,然后Mama2和GatedDeltaRule的情况下的,当然了,就是线性这个注意力是FanHead的嘛,所以说一般的现役助理也是分Head的但我们一般写的但我们一般写公式的话我们会考虑只有一个Head的情况所以说如果只有一个Head的话GateDeltaNet也好然后其实之前的工作也好它其实这个衰减项它其实一个标量对它是一个标量也就是说我整个一个Head它遵循的这个衰减系数是一致的然后这样的好处是它在Kernel上比较容易就是写Kernel比较方便因为衰减项它本身想做一个比较好的一个对如果说如果把这个Decay拆成更Refy的形式的话我们再去写Kernel的话它其实是一个不太好处理的一个项这个是出于写的写Kernel方面然后从这个模型能力方面我们把一个标量的衰减然后变成ChinaWise衰减它严格的来说是能力更强的然后Kimi Delta Tension,它其实就是把这个AT的DeltaNet的这个衰减项,然后从一个标量,然后变成了一个更Fangrain Control这样的一个量。然后这样的话,它就可以带来就是每个Channel可以的衰减系数是不一样的。这样的话,我们这样可以带来一个严格更好的一个能力的上限,对吧?因为从公式上来讲,它是严格更好的。无论如何这个Channel-wise的Decay,它是可以退化到一个比较均匀的Decay的。这样一个严格更强的一个模型能力,它会带来一些更好的效果。Delta的调整来说一个更强的模型能力它其实是有一些代价的它的代价就是它写Kernel会更麻烦一些它的麻烦的点就在于说我们不能说我们作为一个这个DK太阳我们其他部分可以用一个比较方便的方式去做这个去利用探测炮来进行计算如果是一个标量的率箱的话它的处理会特别特别容易它其实一个Tile就只有一个变量就完事了但是如果把它从标量变成一个ChannelWise的话对 它的这个处理难度就会增加很多然后这样的一个处理难度也会带来在KIMIK3里边一个更细节的一个co-design的处理这样的话我们就来到了Laurabundi的decay为什么有这个东西?两方面的原因一方面我们可以认为的从算法层面我们希望它不要decay的太快了但是从PayPal本身而言的话
[30:00] 是为了和kernel来进行一个code design原因在于说就是我们想去处理更find grain的decay的话我们需要在这个数值上做一个比较巧妙的处理也就是对于q和k而言我们会做一个这个decay的倒数的一个变换我可以举个例子吧最简单的例子就是减二可以表示为这个3-5这个其实也跟rope的思想是比较一致的rope的其实在这个infra上一个特别方便的地方就是它可以通过这个绝对位置变换来去表示相对位置变换在这个情况下,它整个的一个计算会容易很多,然后rope它的思路就是用绝对位置来去表示相对位置,所以说对于衰减而言,它其实也可以用绝对位置来去表示相对位置,也就是说比如说我们有一个衰减项,它比如说它是一个alpha的平方,对吧,alpha的平方的这样的一个衰减项,当然这个衰减项可能是第0个token对第2个token的,或者说第100个token对102个token的,所以说我们如果想用绝对位置的话,我们就会选择让K先做一个比较大的一个衰减,然后让K就往上提出,比如也就是说我让K做一个三四方的一个衰减的提升然后让K做一个比如说五四方的一个反衰减然后这样的话我通过这个乘法结合率我们就可以得出和原来的地规一个比较等价的形式然后这样就带来一个问题对于这个KMDT来说的话他会对QK他有一边他会除一个很小的数对乘一个很小的数可能没有关系他无非就是抵克到零他并不会带来这个当然我们也不希望他抵克到零但是从数值精度上来讲BF16的进度范围内这样利用ROPE那种协对位置来表示相对位置编码的这样的一个方式它才是有效的所以说为了让衰减在一定的chunk范围内然后控制在BF16的就在一个固定的chunk内部让它控制在一定的进度范围内的话我们是需要从数学上把它控制住的比如说Kimiliner它这块是一个16个TokenTile我们就希望衰减在这16个Token的Rage里边不要超出BF16的这样的一个范围当然BF16的进度范围,这个是我们已知的我们可以通过BF16的进度范围,然后反解出来在16个Token的这样的一个区间内,然后我们最多可以衰减到多大的量然后KMI Delta Tenshen他就大概选了这样的一个量然后这块我们可以去证明说就在16个Token的Tile里我们是可以衰减像是不超出BF16 Dynamic Range这块的Lowered Down Body的DK它更像是一种Code Design我们通过模型算法什么样的一些控制然后让它获得在一定Tile的内部然后不要让它有数值方面的问题这样的话整个Kernelize的方式会更加的去通畅当然了如果不去限制Kernel肯定也有自己的写法所以说为了保证一个高效的实现,KIMI Delta 采用了在一定的Tile Trunk 内,然后控制它最大的一个西数,就是衰减程度这样的一个方式。对然后KMI Delta Attention大概就是这样的其实拖拉东瑞的也很简单第一个就是我们KMI Delta Attention把GDN这样的一个计算方式拓展了一下它的计算能力然后为了扩展的计算能力带来的一些额外的infra上的麻烦然后他们在模型的表达范围内采取了一些战指然后让它满足chronolize的一个方式然后最后得到了KMI K3采用的最后的一个形式OK下一个环节是Gatey的MLA顾名思义它就是把两个对,把两块的模型结合了起来,RMIA可能大家都很熟悉了,是DPSYK V2刚开始去用的,主要目的是减少一些Cache的开销,然后MIA的配置后面主要是被DPSYK V3和KIMI K2去采用的,当然DPSYK V4没有用。因为KIMI-K2也用了,KIMI的同学们认为,MLA如果在全注意力这样的一个scope内部,大家觉得至少还是一个可以接受的形式,或者说没有必要去搭动的形式,所以说K3还是采用了跟K2一样的形式。然后在这个MLY的基础上呢增加了一个Gated这样的一个操作然后Gated的Tencent呢最早应该是Tenman团队刚开始去用的然后从签问这个团队的标题也可以看出来Gatee的Attention当时主要是解决的哪些问题比如说这个Long Linear Nenality然后Gatee的Attention可以带来额外的一个计算的一个强度然后Sparcity和Attention Think Free然后这个东西可能并不是那么显然这个就得具体看它的一个但是whatever,我觉得Delta的大家最拜应的一个点就是它的一个训练稳定性而且这个训练稳定性,它是一个我觉得是一个被广泛验证过的这样的一个形式大家可以从前面这个现在图里可以去看到,对于一个Pretrain的Raw而言,我们还是希望它越远越好从模型能力上如果不是最优,但也没有关系,因为模型的能力其实本质上最主要的因素是模型的参数大小所以说好一点差一点它都不如稳定性也要重要因为如果稳定性不好的话它会带来很多麻烦的问题甚至比较大的问题就是
[35:00] 你整个Round都迅崩了然后你前面整个的这个前面整个的Triple Point都废掉了这个其实对于这个对我觉得对于任何团队而言都是不可以接受的所以说如果说一个方法能比较有效的去提升模型的稳定性这个还是一个大家比较愿意采用的一个技术吧然后前面的GateEatTension的这个前面三应该是对前面三应该是没有用后来的这个后来的Chemmin Next包括Chemmin 3.5,3.6应该都采用了这样的一个架构虽然它会带来一定的额外的计算开销但是它会对模型的稳定性会带来特别大的一个好处然后这个是之前Chemmin团队的一个工作Chemmin是在这个GQA上引入的但这个设计它其实无论是你跟这个东西是跟GQA或者说MLA它本身是一个正交的一个设计方式就把GateT的Tenient这样的一个稳定性的方式引入到MLA当中,然后这样的话它本身也不会破坏这个MLA本身的一个推理性质的同时,可以提升这个模型的一个训练稳定性。为什么V4没有再继续演用MLA了呀对因为他们有别的东西了吗你觉得MLA在未来还会成为一个共识吗因为我记得卢弗利之前跟我说过他觉得在Agent时代MLA应该会被替代你觉得MLA在未来会成为共识吗我们相同技术是想讲,MLA它本身就是MQA的一个增加的形式,所以说MLA其实本质上并没有带来新的东西,它只是一个更好的水道。大家其实没有发现的一点,就是如果大家想把MLA用好的话,它其实想达到相同的一个计算效果,它其实会增加更多的TenSense的计算去弥补这方面的一个损失。所以说我个人认为就是MLA主要拿到的收益其实是可以被更好的这个GQA的这个。参数设计基本上是可以拿到绝大多数的收益的为什么DeepSeek没有继续引用MLA啊对因为MLA这样的一个转化形式因为DeepSickV4它后面主要推Sparse对Sparse跟MLA它其实不是一个百分之百兼容的东西尤其是在这个在prefuel阶段对而且他们其实是用了这个MLA的等价的MQA形式因为从从数据上来讲MLA它本质上就是一个大号的MQA所以DeepSickV4用的是一个大号的MQA我觉得本质上区别不是很大的罗弗利当时是在VR Flash里面采取的是MTP我觉得MLA对Chart来说是一个优秀的模型结构但是他觉得不那么适合Agent的范式MLA在设计之初为了达到很好的仿存和计算的比例在当时的H系列芯片上实现其不浪费算力又打破仿存瓶颈是在这个架构下设计的不发现计算剩余的实在太多了他觉得MTP能够更有效的能够利用起来对这个其实是一个比较reasonable的一个点就是MLA在推理阶段他的计算其实是大大浪费掉的其实从他的计算是远大于他实际的建模能力的对所以说对于计算而言的话他这块是有一定的浪费罗富利可能主要讨论点就是这种计算模式他跟MTP的收益他不是正教的甚至他可能是互相缓冲的因为MTP本质上就是用更多的token同时去计算这样一个条件下,然后逐渐往这个Compute Bond的方向去推。所以说也对于MLA,MTP的这个加速比会大大减小。我觉得它从来也没有是公式它只是一个选择OK但K3CM起码还选择继续沿用的是MLA我觉得K3是reasonable的因为K2当时主要是followDeepSig他们当时的选择是先不做模型架构的创新先把结果跑出来对,然后如果从K2到K3的话,这块,我觉得对于一个从工程或者说从组织管理上能跑的东西就不要动,如果MLA它不是一个特别大的问题,可能就暂时不会动,但我觉得未来也不一定,我觉得这块,我觉得是一个比较暂态的一个状态。当然了MLA也不是没有好处,所以说我觉得这个都快好。所以它是加强了MLOA的可控性对,Gate它主要是提升MLOA本身的训练稳定性这块跟MLOA是正交的,任何处合谈诊其实都可以用的我们现在讲到2.2对吧对2.2就是Attention ResidualAttention Residual其实当时还挺火的但是其实如果从Follow Attention Residual这样的一个研究脉落来讲的话我反而会认为Hyper Connection我觉得是一个相当好的一个工作对,Hyper Connection是很早以前Seed团队去提出的对这块主要讨论的就是在一个比较深度的模型当中的一个深层到浅层的一个连接方式如果我们再仔细去考虑问题的话因为它叫attention decision这个本质上跟resnet其实都有一个比较深刻的一个连接关系RestNet它本身解决的就是模型能力在模型参入增长的情况下它至少可以达到一个不退化的一个效果包括从稳定性角度它其实也是对或者它其实无论是从
[40:00] 在模型稳定性和模型能力上,RESNET本质上都会比之前的一些工作有本质性的提升,不过这个大家都很熟悉了。然后大家其实没有注意到的是,RESNET其实是有两个版本的,它一个是CVPR的版本,然后一个是ICCV的版本。其实在RESNET那个时代,凯文就已经讨论过,就是Prelianum和PostLianum和训练稳定性的这样的一个关系了。然后这个其实也可以追溯到,比如在BERT时代,就是BERT时代,它其实大家还是会更常用PostLearnNum大家在Burge时代会觉得PostLearnNum它的结果可能会稍微好一些但是在模型增大的效果在模型逐渐增大的情况下大家会发现PostLearnNum它有T度消失的问题或者说有训练不够稳定的问题所以大家后面就会逐渐的去采取PrelignNum对这样的一个残差连接的手段然后TenryC州它其实之前苏健林讨论过这样的观点就是TenryC州它绝对不是PrelignNum这样的话其实风险是很大的,因为它会有如果你一旦触及了Postlearnum之前的问题的话对,整个大的让大家肯定是不敢上的所以说Tenry Zero他当时强调的就是他一定是PreliairNorm一个超级,就是他至少是可以退化到PreliairNorm,他是严格的是比PreliairNorm更强的一个结果然后这块主要就是简单讨论一下,Resigual这条研究线,这之前大概是怎么来的HIP Connection 我觉得这个工作是相当有意思的 其实我觉得无论是这个Tipsick后来做的改进也好和Cidro也好本身上都是其实都是从这盘工作来的他主要讨论的一个点就是如果这我们在PreliaNum的基础上如何去增加模型残杀的容量,从而去提升模型能力的一个表达能力当然了,我之前也跟HyperConnection一座的同学交流过,我说我觉得这个工作本身从技术上还是很好的但是他一个最大的问题就是他paper写的太抽象了不太容易读Hyper Connection我觉得本质上就可以说一句话就是我们在resigual的分支上去用比模型hidden state更大的一个容量然后来去表示这个模型在这个模型推理深度上的一个状态所以说如果我们有更大的容量它一定是有更好的一个效果的我觉得Hyper Connection它其实我觉得从我觉得从思想上是相当简直的对但是这个paper可能相对复杂了一点所以说当时这个工作其实没有出圈可能只是一个比较对大家做架构或者说技术层面的一些同学去了解的MHC可能就比HC本身要活了很多但我觉得最重要的原因还是当时MHC是DeepSig提的我觉得可能没有别的原因所以说在HyperConnection之后的话大家会尝试去从模型本身的一个连接方式来讲去提升模型的能力因为从HyperConnection包括Attention Residual它一个比较好的点就是它对于推理来说基本是免费的就是说在模型的Inference阶段它其实几乎不会增加任何的推理开销它就可以拿到对更好的一个模型结果这个其实是大家这个喜闻乐见的对因为如果一旦涉及到对一旦涉及到我们通过更慢的一个实现也好,更慢的模型架构设计也好,取得模型更好的表现,这块就带来一个自然的吹道符,就是我为什么不能去扩更大的size,这样还简单一些。所以说一切,比如说通过更慢的模型实现的去提升模型效果的方法,其实都是会被full question的,或者甚至是对一些保守的,或者说不是自己提的,可能大家就不愿意去用。对于这种模型设计,它可能在推理阶段是几乎免费的,这样的话大家上的时候没有什么压力,而且它其实是和这个模型参数本身的提倡它其实并不是一个重要的一个状态对然后hyperconnection这下维度的话其实还有一个比较绕不过的就是desnetdesnet这个是一个更早的一个工作了就是他是对他是黄高老师在那个resnet之后他其实是一个连接方式desnet其实和tend residual他其实在四样上一个是一个相当密切的一个方式对只不过在desnet时代他其实是因为resnet他其实只是层和层之间的一个连接方式但desnet他其实是就是在深层要去看这个所有浅层的状态然后再把它聚合起来的这样的一个方式因为那个时代其实没有Etherton,或者说大家也没有过度重视Etherton本身的一个能力,所以DeathNet里边主要是一个大的linear来去把之前所有的黑暗Seed聚合到一起的然后到30时代去的话其实DenseNet它的实现其实本身是不快的因为它的中间对于连接方面的它会带来一些大量的额外的计算但是到了30时代的话大家会发现我们可以把DenseNet里边一些比较highweight的部件 然后变成更lightweight的部件 然后这样的话就诞生了attention residual这样的一个工作attention residual它最大的优势就是它其实比dansnet它是一个更对它其实一个更efficient的架口我们可以通过一些这个更深层色的infra code design 对比如说用block attention的方式去捷偶掉这个模型的深度对 因为如果只是全注意力的话 它上层会跟底下所有层来去进行交互 对吧 这个其实也是这个之前的
[45:00] 一个比较大的问题就是模型越深它这块的overhead其实越不够厚了然后block attention的话在这块做了一个解偶所以说它整体一方面是tention它本身的这个计算比较lightweight然后第二方面就是它解偶的深度所以最后总的看起来它其实就一个比较灵巧但是一个能揭示的去提升模型能力这样的一个组件然后这块他们对这块可以看一些这个Skillin的一个结果就Block对Block 10 Residual因为它结果的深度它是严格来说表达能力肯定是不如付10 Residual好的对但是这块大家Claim的点就是它其实并没有损失太多能力而且对于Base Line来说它是一个比较显著的一个状态对然后Tenry C6这块应该主要就是上一个技术paper里讲的然后K3这块应该没有做太多特殊的处理对然后这块大概就是这样的一个情况你刚才讲的这几个你觉得哪个创新性是最强的其实我更喜欢DASNAT和Kyber Connection,为什么?因为DenseNet它是一个相当早的工作,因为在那个时代大家考虑连接的问题,我觉得本质上它在ReCidual考虑的问题,其实DenseNet都考虑到了,只不过当时没有Attention而已。然后HyperConnection的话,其实它相当于是在Transformer时代重新把这个东西带了回来,然后让大家在连接方式上重新去讨论如何有一个更强的连接方式,然后从而去提升模型的性能。我觉得后面的工作当然会有一些CodeDesign或者说有一些模型稳定性的问题,但我觉得大的框架其实是之前的工作已经定好了。OK然后英特朗MOE应该是年初的,英伟达他们一个团队去提出的。对,我觉得这块我觉得一个比较大的一个,我觉得一个比较大的好处就是包括大家如果熟悉这个DeepSicker V3的同学其实都知道就是训练MOE其实无论从这个模型的稳定性或者训练方式,包括从音范上它其实就是一个很大的挑战的。然后最大的挑战就是MOE的AutoAu Dispatch,其实在EP的情况下,它的overhead是相当大的,也就是为了解决这个问题,然后我们不得不引入DPP这样一个比较高优化的通信库的方式,从而去降低AutoAu的这样的一个开销包括其实不同的AutoAuto的不公的MOE的设计架构方式它不仅影响了模型架构本身它甚至影响了底层不同的Infra的一些设计选行这个之后后面会在这个Infra那块会做一个更多的讨论但是Latant的MOE它其实本质上的东西就在于说我们是否可以把这个AutoAuto Dispatch这块的开销来去减小因为Auto Dispatch这块的话我们需要把这个Hidden State分发到各个专家卡上而且这个通信量它是会随着这个Expert激活的数量这个模型黑暗色的大小来去并行的去增长的对然后雷克斯的MOU它的思想就是我们是否可以把这个把通信量减少的同时来去保持模型的这样的一个表达能力然后Litent MOE的方式就是我们把Dispatch的这样的一个Hidden State减小它可能减少2倍减少4倍这样的一个量当然了如果我们直接去减少它的Hidden Dimension它后面的模型的这个MOE的参数量可能就会随之增长为了去弥补这个Litent Dimension减小的一个参数量的话这样然后这里边就有两种方式第一种方式就是提升MFN Intermediate Dimension就是通过这个提升MFN本身的一个参数量然后把之前降的那部分弥补回来这是一种方式另一种方式就是我们去进一步去把模型拆碎这样的话我们去用对我们去用更多的expert和更多的激活然后来去弥补这个这个参数量的这样的一个减少然后最后其实我们可以看起来当然在 Inveida这个Paper里它其实结果是更好的其实总的来说就是一句话就是如果一个恰当设计的Latent MOE的一个Configuration它其实是可以完全保持这个Standard MOE的这样的一个结果的也就是说我们可以在这个模型能力完全相懂甚至还能好一点的一个Contest底下然后来去减少模型的这个Latent减少模型的一个通信开枪而且通信开销其实在训练和推理中是不一样的训练因为我们主要优化的是throughput我们可以用一些overlap的手段然后来去把通信这部分去弥补掉对于inference latency来讲尽管我们可以用一些手段来去掩盖通信开销,但是这个时间它是避免不了的,因为它整体是在这个critical path上嘛,所以说就是对于模型推理的这个latency来说,通信开销它还是一个相当不可忽略的一个点,所以说其实从模型的这个efficiency上来讲,这个推理的收益其实是比训练的收益要大的,当然训练也有一定的收益,所以说如果说Latant MOE不是一个trade off就是我们不需要去三种号牺牲模型的表达能力来去降低通信了它其实还是一个free launch或者类似free launch的这样的一个结构对所以说KIMIK3其实是Follow的这样的一个结构当然了在雷特达摩尼之上的话还有一些比较细节的一个改进然后针对这样的一个比较细节的改进呢我们可以讨论一个比较经典的问题就说起来也很简单就是两个矩阵连程这是一个非常非常基本的单元就两个矩阵连程其实在模型表达能力上是稀微有的因为两个矩阵连程严格的
[50:00] 是可以合编到一个的但是优化性质上其实并不是这样的就是两个矩阵连程经常会出现这个模型训练不稳定的问题所以说两个矩阵连程一般中间都会用一些这个搭配一些文明性的手段然后来去弥补这样的一个事情这个思想其实在这个MLA里也是出现过的因为MLA本质上也是就是先做一个low projection的投影然后再把它打回来它其实本质上也是两个linear连程的一个方式然后两个linear连程中间的话一般会采取一个normalization的一个方式然后把中间的hid state控制住从而提升模型整体训练的一个问题所以这是todon't read的就是很简单就是一般来说就是模型在模型架构的设计的当中如果你不得不把两个矩阵连程拆开来写而不适合背到一起的话的一个手段然后这个思想其实在对一个是在MLA里有个设计然后其实这块的Latant MOE其实也是类似道理归根结底就是Latant MOE我是先把这个模型通过一个模型的Hidden State通过一个Linear Projection把它压到一个低位的状态然后我们再这个linear projection的基础上然后来去进行购买的一些计算然后当然了对于FFN来说第一个计算当然也是一个linear projection所以这块其实就会出现两个linear projection连成的情况所以这块我们需要一个RMSNOM来去控制它OK然后下边就是这个C2GLOU这个设计其实也是一个大家看起来可能对没有那么直观的一个东西然后这个东西其实也跟之前的一些设计是有关系的因为大家其实会发现对于大模型训练来说的话就FFN这块的MLP它其实中间的Heading City是一个特别容易activation explode的这样的一个状态而且这个东西一个是跟优化器有关另一个就是跟模型的精度有关就在模型精度更低的情况下中间的这个hidden state更容易出现outlier然后为了解决这个问题呢然后GPT OSS其实刚开始采用了一个特别简单的状态就是把最简单Sviglue就是没有邦迪的那块直接通过一个Clip然后控制比如说我们设一个Clip的值比如说5到10然后我就把它Clip到这样的一个程度这样的话就是可以从数据上比较严格的可以把这个它的上线控制住然后Clip它是一个比较粗暴的状态然后你如果把这个hard clip变成这个soft clip然后你就会比较自然得到这个tang-ditech这样的一个算子因为tang-ditech它它somehow就是一个soft clip如果你指定一个下线指定一个上线比较平滑的方式一个比较平滑的方式然后它逼近你希望的一个摄影上街所以从这个角度上来讲我就可以理解为一个Clip的升级板但升级板具体在模型的表达能力上有多大影响我觉得这个是而且这个肯定是需要这个具体的实验来去证明的,但whatever,我觉得soft clip还是一个比较安全的一个做法。从Switch glue开始,然后首先把一个比较自由的那个linear projection,然后改成了一个tanjata h邦地的一个状态。然后另一块的话就是switch,因为switchLU它前面就是一个也就一个linear的一个结果,然后再加一个switch glue的一个结果吧。这个switch我们又可以拆成这个sigmoid和一个这个linear projection。当然这块它是一个共享位置的一个状态,所以C2GEL相当于是你把所有这个中间可能出现unbounded的一个环节,然后把它通过一个tangile h的上下界放缩,然后来去bind住,这样的话就可以把整个mlp中间的一个激活得到一个严格的数学上界,然后这样会可以用于保持模型的训练委内心。当然了,这块我觉得可能还有一些别的concern,比如说我们发现,其实如果用命的话它其实是会更容易出现Altolair的你控制中间的激活值总不是一个比较错的一个现象当然如果我说命更容易引来Altolair苏建林一定会反对他肯定会说对于任何优化器来说它都一定会出现Altolair因为你从模型架构上是控制不了的所以说如果想严格控制的方法它一定是直接从模型架构下手这门苏在里跟你观点不一样这个他没有说,但我猜到他会这么说。对因为这个其实之前在Kimi K2的这个Mion Clip里也做过类似的考论大家如果之前对Kimi K2或者Moonlight大家如果记得的话但当时就会说就是因为用了没有油画器所以QK Logis会更容易去爆炸所以Moonlight他们采用了一种就是对于QK的一个比较特化的一个处理方式然后来去压制模型的Outliers然后在那个时间点大家就问嘛说为什么为什么我们之前用Adam训练的不跳价这个东西然后为什么之前的QT Logite都很稳就不需要额外的处理,但是Mio为什么要特别处理?当然苏彦琳就是这么回复的,他就说从严格来说,Adam也不是完全稳定的,然后当时Div-Tic V3可能 somehow也有一些不稳定的现象,当然这个并没有影响模型最终的结果。他当时在对Mio Clip的观点就是,如果说在Mio的信念里有可能出现了一个sclow的现象,他严格来说就是容易出现的,只不过你可能出现的早晚问题,所以说为了严格的限制这样这个模型的行为,还是从这个从模型架构本身去做限制是一个更本质的方案,他当时是这样一个观点。所以说这块他肯定也是这个相同的观点,就是我们为什么要做的?不直接在architect上做一些改变然后让它整体把邦地都限制住就完事了也不需要去纠结更复杂的优化的细节其实我觉得是一个道理,所以说我觉得他应该还会这么说对没有是对于K2的一个引用对吧
[55:00] 对对对这块相比KR没有做太多的改变Mew当时比较严重的问题就是它其实控制不住这个对控制不住中间activation outlier 更早的一个版本它是更粗方吧它当时连VDK都没有价所以说这个MewLite比较率先的就是把VDK这样的一个对这样的一个因素然后首先引入到这个比较大规模的模型训练里然后这样的话其实在这个更长的run里边是可以保持的另外在KMK2,它就在Wait Decay的命运技术上额外额外搞了一个QK Clip的方式,其实这两个加起来是一个,Kimi团队在优化器上比较完整的工作当然现在其实大家用Mule的方式比较多了,但是大家解决的方式不太一样比如说你用MLOA,你就没有办法去加QK GNOME,因为QK GNOME是可以严格限制QK这块的边界的所以说为了去适配MLOA和Mule的结合,所以当时Kimi K2引入了QK Clip这样的一个操作当然大家可以注意到比如说DeepSick V4,然后包括Safone那些,他们应该都是用了没有然后在Milm的基础上,因为他们又都是用的GQA,没有用MLH,所以直接用Cocanorm,它其实本质上是一个更简单的办法,就是尝试去控制Milm带来额外的outlier,outlier在Cocan那边更容易出现的,它也一定会在MLP这块出现,相当于采取了不同的方式,Cocan那块通过Clip也好,然后Normalization也好,把它限制住,然后在底下MLP这块的话,大家会用一些比较更Lightweight的手段,然后Kimi现在就是通过用设计的一个结果函数把它帮得住大概就是这样的一个思想然后Quantile balancing的话,这个没有发什么论,是苏建林在他自己的博客里去讲的然后Quantile balancing的话,他主要是可以follow到就之前的这个Lost Freight的routing的方式它主要的控制方法就是它只通过一个BIOS而不是通过一个偏整体的LOS控制方式来去解决模型Expert的负载均衡的问题DOS LOS FREE大家比较奇怪的一个问题就是它这样的一个BIOS的变量因为这个BIOS的变量它直接决定了每个Token它选哪些Expert但这个更新方式Sumhouse是有些Hawk的就是它采取了一个比较启发式的更新方案来去做BIOS的更新然后这块的话一个问题就是它这个东西它其实没有一个比较严格的一个数学的一个收点比较惹令一个就是它其实容易和这个主模型的更新对大家一个感觉就是可能没有那么这个偶合但这个形式还是本身还是可以work的对还不错的就是在整体work不错的情况下的话其实当时loss free有几个问题可能是没有完全解决的最主要的问题就是如果在使用loss free的时候呢大家可能会采取就是模型最底下几层一层或者三层然后都把mue去掉的一个方案对Lost Thread这样的一个控制方案对于底层的模型来说它做work的不是很好正是VeloxPray没有做整体的扩定单所以它可能会采取一些别的方式然后来去弥补这个模型在大规模训练中碰到的一些问题对,然后Quantial Balance Age其实是主要是尝试用一个更Principal的一个思想然后来去解决模型推理的一个模型安模液负载稳定性这样的一个问题他本身Loss Free的update方式,他肯定是经过大量的调整之后得到了一个还不错的方案所以他本质上也很简单,如果你某个专家的你激活的多了,然后就把bias往下砍一点,如果每个激活的少了就往上加一点然后之前的Loss Free是一个比较取发式的方案去做对然后这个Kimi团队呢用更Precifal的一个方案就是我们能不能直接通过一个这个现归的方式直接推导出来就是这个BIOS它应该是长什么样的答案就是这个是可以被推出来的而且推出来的具体的方式也跟之前的expert的choice有一定的关系然后最后的话就是Quantile Bias它经过一系列推导它最后就得到一个一步的一个形式也就是说比如说我们对于一步对于一个step内部的一个整体的激活我们是可以求一个BIOS然后这个BIOS它本身就是一个这就是一个让模型可以负载均衡的这样的一个方案然后他博客里又写到了为了去避免信息泄漏也就是说我们不能让任意一个token然后来去获得其他token的一个信息所以说这个beta并不会在当前step使用而是会在下一步去使用然后这个是中间contail balance的这样的一个细节苏电林博客里其实就主要提到的一个优点就是首先他其实他不需要调三数因为loss free是有一个类似learning rate的一个更新的方式的这样的话它其实少了一个算术整体的看起来会更加principle一些然后第二个有点就是它其实对于负载均衡balance这样的一个能力它其实是一个更优的一个能力然后它这块的伯克里就会贴出一个图对于第一层而言就因为其实我刚刚也提到为了兼容这个model loss free balance之前大家会把前几层搞成dance不用MOE这样的方法然后去把这个东西去规避掉然后如果说对于这种QB这种方式的话其实就没有必要去规避这样的一个问题了它其实就可以这个其实可以发现前底层用NAND它其实是一个对它其实并不是一个ground source上一定要去这么去做的一个方式
[60:00] 而是它其实在Loss Free的这样的contest底下不得不去采用的一个方式其实如果你不采用Loss Free你直接就采用加辅助Loss的方案比如说千万M1的工作它其实就是采用直接求Loss的方案对第一层也会没有问题所以说这块的话它主要就是可以处理掉之前Loss Free一些比较失效的一些情况当然了他博克里也提到如果本来S3SGD就比较Work的情况下QB它也是比较Work的而且他博克里也可以证明有比较正常的情况它其实是可以推出来说如果我们不采用这个直接去均衡而且采用一些梯度更新的方案的话它其实是可以和Loss Free做到一个相当等价的数学形式的然后这块其实还有一个细节是之前的伯克里没有去提及的简单来说就是我们为了去在整个一个bash也因为现在大家大猛行训练一个bash会特别大比如说4M可能都会比较小可能到几十M这样的一个量级就特别需要在几十M的token之间恰逃取到在一个比例的位数也就是说如果对于一个精确的计算的话我们需要把所有token的所有token的这个激活情况都存下来其实这个是相当heavy的然后当时在博客里提出了一个方案,他采取的方案是每个GPU都去做一个local的分位数计算,然后再把不同GPU的分位数计算,也不一定是不同GPU了,反正就是你得把一个大的batch切碎,然后在一个小的batch里去求分位数,然后这个分位数最后再做一个pool里。Keyping Gatine Papers 其实是有一些不太一样的一个变化他并不是按token去切chunk的,当然也有可能是我理解错的他其实是对这个模型的在直语切一个chunk也就是说比如说对于SIGMOID的介绍而言,他一定是0到1之间的所以说我们就可以在0到1或者说-1到1这样的一个趋降范围内,然后切成n个桶,然后在这个桶里边去进行Histogram的一个统计,然后这样的一个统计值,这样的话它有个好处,它可以是一个常数量,长数的存数大小的一个就可以做的一个计算,而且它的计算代价会比较补速的时间要高效很多,而且它可以比较好的去处理在大规模的DPP的分布式的架构底下,是一个比较容易扩展的一个状态。然后这个其实是相当于K3后来放出来之前在博客里没有去详细讨论的一个技术。这个是其实对QB的一个比较必要的一个实践方式。规根结理就是奶油的实践,它基本上是不可行的,所以必须用一些比如工程上可行的方式,去把这个比较精确的解决出来。然后到R4了。内容Vision这块其实没啥好说的它主要讨论的一个点就是是否有必要就用一个已有的Vision Encoder去做这个VITVision Encoder的一个数字化用已有的VIT的话当然它用已有的Vision Encoder比如说用Sigleaf 2这样也比较大规模训练的一个Vision Encoder它的好处就是它你数量的会比较快但是这个Kimik3他中间讨论的一个问题就是如果说直接用这个Siglip Initialize的话它的这个模型的不稳定性会比直接NativeTrain它是要来的大的也不一定是模型不稳定性的因为不稳定它是一个比较相对甚至它不是一个严格被定义的东西只是大家可能会一般会去看GradientNorm这样的一个分布然后中间有一些东西是大家比较concern的比如说它的坚持多不多然后甚至说它本身Norm大不大这个团队会发现如果说我们直接FromScratch训练可能会多用一些算力就是它的最后的结果它是不会有损的如果我们经过恰巧的训练它不会带来更差的结果甚至可能会带来差不多甚至更好的结果对第二个它主要Claiming点就是原模型会带来一个更好的兼容性那就会体现在这个gradient的norm会更加稳定我觉得其实可能有一个类似的观察就是Sigleap它其实是用Adam来去训练的之前大家其实也讨论过一个比较相关的话题就是用Adam训练的模型是否能用没有去反定然后反过来就用用没有去训练的模型可以使用Animal去版定当然最后的结论就是肯定是比较原生的方式它肯定是最好的当然用别的方式的话如果想达到一样好可能就得做一些处理或者说它是有一些限制所以说可能对于KIMI K3而言,他们是希望去采用一个全M用的一个优化方式,这样的话对于模型整体的训练的稳定性也好,它的兼容性也好,是一个更优的状态。说到这里我们倒会去讲一下最早那个线性注意力机制的问题吧为什么K3它用的是纯线性注意力机制它没有用任何的Sparse Attention就是线性注意力全注意力和Sparse Attention你可以3选1和3选2就是为什么不用Sparse Attention我们就会带来一个点为什么要用用的会有什么好处或者说会有什么问题这个其实一方面是跟模型架构有关另一方面其实也跟这个模型它每带这个这个GPU硬件的一个feature有关比如说这个DeepSick 3.2那种,DeepSick Sparse一个是这个3.2用的,一个是那个GLM5,也用了DeepSick Sparse这样一个架构。DeepSick Sparse其实到最后,在Decode里边其实加速是特别特别小的,原因就在于说,就Sparse求Index这一步它是相当昂贵的,而且在Blackwell的硬件的情况下,越先进的硬件,它其实overhead是越大的,甚至其实在Decode当中,这种Svartor Tension的一个方案,它其实甚至呢,跟这个
[65:00] 波尔Tencent并不会带来显著的一个加速为了解决这个问题的话当时GLM团队做了一个工作叫Index Cache他当时的做法就是把这个球解index就是球解哪一部分哪些token需要算artition这样的一个进行操作然后把不同层之间共享了起来就比如说每四层每八层然后做一个共享,只要用这样的方法,它其实才可以比较有效的去减小这个Sparse本身带来的开销,只有Sparse Attention本身开销足够小的情况下,其实才能带来一些比较可观的一个算法的上的一个收益。然后Sparse Attention这块,我们也做了一些相关的东西,也大概是一个类似的结论,当我们做的更极端了,我们在优客的价格上直接去Library Sparse Attention的话,因为我们之前的KBcache是once的,所以我们当时采取的方案是直接把Sparse Intex这步也做成once,也就是说我们把每层的Intex开销直接分摊到所有层上,这样的话其实那个开销就会特别特别小,这样的话我们才能吃到Sparse Attention本身的一个计算收益。然后我们再回到KBK3,为什么它不去采用?第一个就是我们认为说每层都用Sparse这样一个比较简易的方案,它其实在BlackWire上它的收益是特别特别小的。把多层的这个Sparse的一个结果然后来去跨层来进行复用然后跨层的方式呢其实比较简单的方式就是相邻的层去跨然后相应的去跨层的话,其实对于Hybrid,对于线性注意力和全注意力这样interleave的方式的话它其实并不是一个显然的,因为对于这种hybrid retention,它不同负负 retention,它并不是挨着的,它每个负负 retention中间,它其实隔了很多个现役注意力的,所以说在隔很多层现役注意力的情况下,这种index share是否有效。加速比是否足够高,这个其实是相当快适选的然后其实其他二个问题就是Sparker-Tencent基本上是没有办法进行from-squash-train的Sparker-Tencent大家现在一般采用的都是post-train,然后从负尔腾讯进行转化的一个方式不排除我觉得KBK3可能未来会把已有的负尔腾讯的部分然后来去进行这Sparter Tenshen转化,那当然如果他们用了MLA的话,这个会更难一些,所以说我觉得主要就两个原因,一个是想拿到实际加速比,就是其实对于这个Hybrid Tenshen来说,是一个non-triple的东西,如果想拿实际加速比的话,可能需要做更多的事情,第二个事情就是它跟Pretrain它并不是一个比较兼容的状态,所以说这个其实留一个接口之后再做也行。我刚才讲的这些不管是架构创建还是训练还是推理工程你觉得它中间有哪些trade off你有哪些许设我觉得hypertension它主要的trade off就是你要去调节这个现录助力和全助力的比例嘛,就你肯定比例越大,就是附的现录助力比例越大,它肯定加速比较高嘛,但是如果你想达到一个偏无损的一个加速状态,一个比较无损的状态的同时想获得加速,然后3:1实验上就是一个比较无可的方案对这块其实就是一个主要的一个推道Sports它严格来说它肯定大个率是不会带来更前的表达能力的所以这块其实就是另一回事它其实跟Hybrid的它是架构它其实是另一条线的只不过说如果如果你坚持不用这个Hybrid的设计方法那你可能就不得不采取一些别的方案我听到这里的感受是就是现在模型训练好像没有一个巨大的所谓的范式创新但是他把之前很多的工作都融合起来然后再寻找一个可能的更有点我不知道这种感受对不对对我觉得其实问题不大就我觉得不完全是技术的原因是为什么呢就是因为大家现在都叫闯丛门但什么是闯丛门这个其实是其实是没有办法清晰定义的,这个学上还有一个对应的概念就是泰休斯之船嘛,就是你刚开始的,2017年这个船刚开始行驶的时候,是川斯佛门对但是这个船刚开始是怎么拼起来的它是Attention加Residual这些东西或者说对这些东西拼起来包括Stack Layer这种方式它其实在Transformer之前它其实也并不是一个全新的概念所以说这个船刚建起来的时候我们认为Transformer是个Miles但是这个船已经行驶了8年9年了在这个船慢慢行驶的过程中我们会把可能会把慢慢的把某些部分换了某些部分换了然后其实我们现在看到2026年其实跟Transformer已经你是否还把这个东西叫做传统文当然这个是哲学上的一个问题但是其实从现在大家来看的话大家还是会叫但是我觉得如果说历史的走向如果有些不同的变化的话可能也就不叫了我们上面讲的这些你觉得它总体来说是一个什么样的工作我觉得这个东西很难定义因为首先它肯定有种话它是一个偏综合性的工作它严格来说就是一般大家来一般大家会把比较有创业性的单点突破会专门拿出来去专门去做讨论其实之前也考虑过也之前也专门讨论过来然后中间其实比较大的有几点的吧第一个就是注意力怎么设计这个是一个点第二个就是M1这块有没有一些更好的设计然后第三个是优化器然后第四个可能就是中间的一些连接方式这个其实专门这个其实比如说你放到这个你放到Rusnet时代其实这些单拿出来它可能就是一个架构的对对我觉得在Rusnet时代它肯定是这样的就但是其实在Transformer的时代它可能并不是这样的但是
[70:00] 你可能你把这个东西综合起来它可能你最后再把它跑出来它才有意义因为之前大家做架构比如说大家在这个ImageNet上跑这个足够高了它其实就是一个Miles Stone但是大家在这个时代你想把这个实际的东西跑出来你的要做的东西就特别特别多了你得做这个Skilling的验证然后你得把这个各个工程东西搞定你得把Data搞定把这些东西都搞定然后你把这个Paper或者说你把这个架构卖出来大家才会Buy-in当然我就从研究方面我觉得我Personally我是不会太去关注的因为我觉得架构的验状我觉得是有严格的标准的或者说不需要把这些东西卡不来一起但是我觉得从非技术角度它现在是一个这样的状态理解所以上面是拼命这篇论文的一些亮点的突破对吧然后接下来他开始讲他的预训练和后训练的工作对我觉得架构方面相比于K2至少不一样也不一定叫创新有些叫比较偏调调的部分我觉得还是比之前大不一样的你为什么K2到K3变化这么大我觉得是个战略的问题其实K2在那个时间点他们也可以不一样只不过他们当时主要的重心是把模型跑出来所以在K2到K3这个中间他们有更多的时间去做了很多的优化调整我觉得主要是K2它本身是做的不错的包括K2大家可当时他们主要考虑的问题比如说怎么把命运出来的有效的把模型skill上去,因为当时K2就是1 trillion,当时1 trillion的话还是比之前的,比如说比Deep Seek V3还是要大一些的,其实在那个时间应该也是一个比较相当大的一个模型的嘛,所以当时他们解决的是这样的一个问题,先把这个,先把Base Model整体的一个Pipeline做稳,在这个稳的基础上的话,然后后来这个K3再去追求一些更精英求精的一个优化。你从上面的这些亮点工作就是这是最后的结果吗你反推你能看出这个团队的整体的状态是什么样的我觉得看怎么去定义对于不同团队定义是不一样的如果只是KIMI的这个架构团队或者一训练团队我觉得没什么变化就是我觉得一直就是一个样但是对于整体公司而言还是有这个战略性的侧重的我觉得次重点就是K2当时QV团队主要的诉求还是把这个base model这个东西做稳就是先把能力做出来结合然后先不去考虑这个更高的efficiency也好更精益求精的创新也好当然了他们团队内部内部是一直在做的只不过你看是你什么时候这个量出来就是研究工作是一个更长期的工作他可能要看放在哪个模型里跟他一起结合对对对好的那接下来我们是预示呢对接下来后面其实就是一些对因为pre-train和post-train的话,首先post-train它是一个偏工程或者说偏具体的场景的一个东西,这块可能就不会讲太多,因为它也没有写太多。然后pre-train和post-train的话,我觉得主要是一些经验性或者说一些knowhow的东西,主要创新可能是前面多一些。对然后中间会有一些比较我觉得比较有意思可以讨论的点我觉得可以会我会专门拿出来去讨论的后面主要的风格会是这样的的然后我们就一个一个来跟用到的话我觉得一个比较值得讨论的一眼就是用哪样的这个Learning Weight的策略因为Learning Weight的策略的话其实刚开始就是Mini CPM当时那个Paper提出的WSDMini CPM之后对吧KP3之前我觉得几乎可能所有团队都会都在用的WSD的一个优化器因为这个这样的一个优化器我们可以去学习Mini CPM当时他们是怎么去考虑这个问题简单来说就是WC考虑的一个问题就是如果我们如何能把这个data schedule和learning schedule结合起来首先mini-CPM刚开始讨论的问题就是wsd,然后和cultent decay是可以取得一个比较相近的结果比如说我们从一个更高的学习率到一个更低的学习率,中间怎么去调配它最后的结果其实影响是没有那么大的所以在这种情况下,mini CPM的团队工作的认为,中间具体的decay的方式对结果不是影响特别大的,既然具体DK的方式对于最后的结果影响没有那么大然后这块我们就可以跟DataPython一些联动的方案因为在实际训练中我们还是会发现的话包括在这个图里我们可以看到就是在DK阶段的话这个模型Loss的这个衰减速度还是比这个大的这个学习率稳步去跑它的这个LearnEvator的下就是Loss的一个下降速度还是会大很多的所以说就是之前大家会认为Codown这个阶段它其实是模型学习最快的一个阶段所以说这个mini CFM当时采用的策略就是既然coulddown这个阶段是模型学习最快的状态那我们为什么不把更多的这个更好的数据然后去放在这个coulddown这个阶段然后来去做训练这样的话可能会取得比这个所有data均匀分布然后所有learn rate schedule也均匀分布然后可以取得一个更好的效果然后这个是当时这个mini cpm 包括WSD提出的这样的一个背景我觉得这个还是挺有意思的 我觉得一方面的话他讨论了一个non-travel的问题就是为什么我们要采取不同的learn rate decay的方式然后learn rate decay 一个是为什么要这么去做的吧 另一个就是他就 decay的不同阶段他具体承担什么样的一个raw,然后他们利用这个不同learning rate decay阶段的一个行为,然后跟这个data的具体的策略,然后来去结合这样最后可以取得
[75:00] 更好的一个结果然后KMIK3这块的话他们讨论了一个不太一样的事情就是他们为什么不去用WSD的这样一个结果这个其实在WSD之后的一些paper里,也是科里去讨论到的因为WSD它除了这个可以用更好的data schedule它还有一个额外的好处就是就因为前面的learning rate它其实是无变化的既然它不去变化就是它跟你整体要训练的Troops和TokenLens是无关的因为它是无关的所以说我们可以更自由的去在这个模型训练的过程中去选取我们最后实际的config比如说我们刚开始可能预定的是要跑实际token但如果我们跑了实际token比如说这个训练策略改变了或者说公司的策略改变了或者说我们要更早的发版或者更晚发版然后WST这样的一个优化器呢我们就可以更自由的在中间来进行切换而不用在刚开始就把整个模型要讯的token量定死对 然后这个它其实是这样的一个好处但是它其实带来的一个问题没有讨论就是我们虽然可以去任意的去选择这个你实际要跑的token数但是你实际的LearnWit 适合你要跑的token数是有关系的比如说你要设六一夫四,六一夫四作为一个比较稳定的一个schedule你一跑10T可能6亿伏斯是最优的你跑20T可能就是3亿伏斯是最优的所以说从最优的角度考虑对任意去扩展投革的时候它可能并没有大家想的那么有效然后这块这个KIMIK3的这个paper其实就讨论这个问题就是说民意就WSD它实际的Schedule它的调节的难度其实和VTK是一样的,而且它并不一定好去调整,任意去选取最后训练的token量,这个事情也不一定只有WSD才能做到,我们可以用别的方式也是可以做到的。这个PayPalate可以写到这些原因,其实他们可以选择一个更简单的方案,然后Consent Decay它的方案就是更好调。就它只有两个变量一个就是你要跑多少token然后你要一个就是你的那个maximal learning weight具体是多少但是你如果wst的话它就其实就会多一个变量就是你要decay的这个比例具体是多少所以说从调三的角度来讲的话cocent decay是一个更容易去调三的一个方案所以说kimiK3他们在paper里就写到如果说他们是因为这个发现cocent decay它是更好的去能找到一个hyper parameter setting的话他们最后会采取一些Learn rate decay的方式,而且这个其实是大家都用这个WSD的情况下一个不太一样的才听,然后一个是基于一个不太一样的Learn rate schedule的策略,然后当然了Keymington对比了从K2到K3,然后整体的一个scaling efficiency,首先K3比K2大了很多,也从1T左右到了2.8T,总参数就是从1T到2.8T大了不到三倍吧,然后激活量是从32.6B到1.04B,它其实是比3倍要更多的,它其实从模型参数上毫无疑问,它是比KIMI-K2强很多的一个模型,然后中间它有一些别的一些config,当然这个主要是上面表的一个总结。最后他们团队给出了一个Skilling Load这样的一个结果,K3比K2最后的在Skilling Efficiency上是2.5倍的这样一个量,但是它从对于一个简单的Dance Model,它的Skilling Efficiency是一个比较经典讨论的问题,它之前很多OpenA的Skilling Efficiency,Scentilla Skinneral包括一些比较新的Scentilla其实都讨论过这样的一个问题当然这块其实比较注意的一点就是大家其实也问过说就是KMICK2K3的这样的一个Scentilla Behavior是不是固定Data的我记得他们的回答是应该不是而Paper的意义应该没有直接写是不是当然也可以理解的K3和K2它用的Data肯定不可能是一样的所以我觉得这块大概的预议应该是有一个不一样的Data Recipe这个整体的Scentilla Efficient它其实一个是综合的模型架构也综合了一个模型的RecipeTraining Recipe然后再叠加上这个模型的这个数据特点之后总的一个结果然后总的结果作为一个大的一个综合的一个结果是比这个K2的要高了很多的OK然后接下来是这个长上下文长上下文的话DMK3是一个原生去支持E1命令长上下文的一个模型然后这块其实比较有意思的点就是位置编码如何去选取我们从刚开始比较传统的这个Transformer的架构来去做的话大家都会用Rope来去做位置编码嘛但是如果用ROPE的话它在这个长文扩展的时候它有个问题就是ROPE的这个具体的一个参数是需要做调整的如果不做调整的话这个ROPE直接去扩长文就会显得没有那么有效然后这个其实是肉苦时代大家一个经典的做法当然说如果现在如果你还是用一个全注意力或者说如果你不引入线性注意力的话这个策略不会有太大的改变也就是说你还是得去在不同的长度的setting来说来去调节不同ROPE的参数但是这个事情在这个混合模型里是可以改变的最早是这个Cowhare团队的一个工作主要讲了这样的一个因素
[80:00] 他们的结论也很简单简单来说就是因为这个Hybrid Tension排布方式对于LinearTension来说,它已经引入了这样的一个位置信息无论说你用ROPE也好,ROPE+LinearTension也好在线性注意力的这样的一个阶段,其实位置信息是已经被引入到的说一说如果在这个setting下,就是在HybridAttention的setting下,如果我们可以把ForeTension从ROPE改成Nope,也就是说在全注意力的情况下把位置编码去掉它其实是可以带来一个更好一个是可以带来更好的一个模型的表现第二个就是它在这个长上下纹是更容易扩展的也就是说Nope它是在模型扩长的情况下不需要调整任何模型架构的参数就可以达到一个长沙沙纹的这样的一个效果这个效果无疑是很优雅的因为我们会觉得模型架构的参数选择当然是跟具体的长度是没有关系的也没有任何的理论去支持说我们具体我们为什么要去不同的长度recipe下然后来去采取不一样的参数然后这种架构其实就可以有效的避免了这一点一个是刚开始我比较早的看到然后可能看到第二天我就去浮现了一下因为我当时看到就觉得特别有道理然后我第二天浮现了一下然后也很work我当时觉得肯定在混合注意力的一个里边比较好的一个方式对我在会议里边还审道了一篇文章当时我直接给了一个strong accept我感觉我这几年可能都没有给过几个strong accept因为我觉得这个确实是一个很有效也是一个很优雅的解决方案然后当然这个也可以讨论一个大家之前理解错误的一个问题本质上它带来的是这个recency bias就是ROP他Work最有限的点就是对他对short context的这个建模能力是特别有效的但是它其实对常门来说是没有帮助的甚至是有负面影响的对于某一些舆论观点会认为是肉朴引入了常门的表现这个其实是错误的肉朴它并不带来任何的常门能力它甚至是损害常门能力所以说KBK3会把肉朴在长上海门的富尔腾认这块直接下掉然后直接下掉之后就会一个是如果你直接测外推直接测外推它都会好很多如果用肉朴的话你扩长度你需要调参数如果你调了参数你不去训练所以说如果有动物你不用调参数它的外推效果也很好然后成了刹杉文的这个效果也没有任何问题甚至还要更好它其实是一个在混合注意力的一个Condustia是一个相当优美的解决方案所以说这个KIMI-K3也用了这样的一个解决方案然后post training的话首先其实可以讨论的一个问题就是低阶段训练应该在什么阶段去引入然后这个其实大家采取的策略是不太一样的就比如说DeepTek V3他们是刚开始是原始FP8来去训练的然后DeepSig V4他们就直接用W4A8来去做延伸训练的但是KIMI这块采取的策略不太一样他们是首先用高精度去训练然后在SFT阶段然后再把低精度的QAT引入进来的这样至少我就有两点折的讨论第一个就是从项目而言就抛开技术角度从整个项目的管理而言大规模的训练采取更高精度肯定是一个更保险的方案对不对因为它无论如何也不会错如果用高精度训练在大规模的Skilling中带来了其他问题的话而且这个东西更大规模的训练是很难提前被充分验证的特别精确的我觉得第一点就是从项目管理的角度的一个优势 第二个就是从技术角度对吧 我们是否有必要从刚开始就用低精度训练起码从我的实验而言应该也是没有必要的然后KIMI可能他们发现也是没有必要的也就是说对于低进度推力而言本身就是从from scratch刚开始就引入并不会带来任何模型能力的一个提升也就是说你WC18你在什么时候引入只要你过了一定量的训练它最后的结果可能都差不多所以在SFT阶段引入是一个更保险然后在技术上也不会带来额外损失的一个方式对然后RL这块的话因为RL其实也是对因为KIMI刚开始他其实对RL这块是一个因为他们其实从很早以前就比较重视RL这块所以说从KMI K1.5到K2.5他们其实一直在做一些比较熟悉的创新然后其实在K3这边也会比较充分的引入进来然后这些其实都是一些比较成熟的一些方案了这块就不太展开去讨论了然后4.1.3的话,这块可以讨论一下OPT,OPT刚开始也是董老师团队这边比较早去讨论的一个方式,就是艾演员的,对,然后明点RM这个是郁贤做的,郁贤去年也是清华特奖的,这个是他在董老师在艾演员这边去做的,然后其实OPT从刚开始,就是刚开始大家用起来和其实和后面大家,实际在工程中用的方式不太一样,这个可以讨论一下就是OP刚开始的Motivation是什么?后来大家是有时候怎么做的?当时OP讨论的contact是蒸馏,蒸馏有两种,一个是黑盒蒸馏,黑盒蒸馏就是大家现在比较采取的方式,拿一个API,然后我们不知道模型内部的状态,我们也拿不到这个模型推理的logit,对于外界来说,这个模型它完全只是一个黑盒,我们只能拿到它的输入和输出,然后这个叫黑盒蒸馏。
[85:00] 然后白核蒸的话就是另一种蒸馏方式我们可以获取到这个模型本身然后我们也可以任意的去拿到这个模型推理的过程中我们想得到的任何的一个状态然后在这个场景下我们如何去做这个蒸馏然后是我们是否可以再基于比黑核蒸馏更好的一个表现然后mini-LM当时采取的方式就是反其他而行之因为之前大家采取的方案就是让模型就让teater去生成答案然后再把这个生成答案用sft的用forwardkd的方式把它引入到student的模型里然后mini-LM是反过来做的也就是让学生去生成答案然后让teater做一个美部的一个纠正然后直观来讲的话其实就两种一个是老师讲课和老师讲课然后你把这个老师讲课的结果学进来然后第二个就是你自己去做答案,自己去做题,自己去写中间推理过程,然后老师会把你中间推理哪里做的不对,然后给你指出来,然后告诉你怎么去做,这个叫reverse-KL,然后reverse-KL的话,然后后来这个Thinking Machine Lab另一个名字,就叫on policy desolation大家会意识到这个是一个比较有效的一个,从蒸馏的角度是一个比较有效的方式,就是说从我们不直接去学习模型的答案而是在student的自己的推理过程中让教师模型逐步的去verify或者说去纠正学生模型的这样的一个推理的方式然后这个范式刚开始其实是为了蒸馏来去使用的无论是你做白盒的一些实验性的时候包括说从公司的角度你可以有一个Pro的版本可以有个Flash的版本然后Flash的版本你可以用OPG的方式然后来去蒸馏更大的模型的这样的一个结果然后从而去获得更好的一个表现你如果from scratch训练一个Flash的模型你可以比这个Flash的模型获得一个更好的表现从而在比较便宜的模型这档然后获得一个更强的竞争力这个是这个OPD刚开始的一个motivation但是其实后来大家更常用的一个方式不是去做蒸馏原因在于其实原因在于如果你想做蒸馏的话你至少得有一个大模型然后你再去训练一个小模型如果你自己训练自己的模型而言但如果说你想去蒸馏这个比如说蒸馏一些黑核的模型这套方案是完全不可用的从公司或者说从这个项目策略上来讲如果我们不去基于一个大模型然后来去训练一个更快更小的一个小模型的话因为现在大家都不是这个setting大家都一般都是这个搞一个旗舰模型然后就完事了然后来去它作为inference服务然后在这个场景下的话就不存在大到小蒸馏的这样的一个行为了然后大家逐渐去采用的蒸馏的方式就是自己蒸馏自己然后为什么要自己蒸馏自己呢我觉得也我觉得还是两部分一个是非技术层面的一个是技术层面的我觉得从非技术层面的原因的话我觉得这个技术可以让这个整个这个post train team的管理变得更加简单就是post train盒板它其实是一个比较highway的一个东西因为Post Train它跟Post Train不一样的Post Train我只要把数据合起来然后一块去干就完事了但大家一般Post Train的话会用一些更复杂或者一些更先进的一些训练策略而且这些策略可能会不太容易训练成可能会如果再直接去做核板的话可能会有一些难度所以说基于项目管理策略的话Unpolicy Distillation它其实就是一个比较好的策略能把整个Post Train的team的管理变得简化一些然后从技术角度的话比如说大家训RL它一般有不同的策略比如说你训Math然后如果你有些preference的一些需求你可能就会有一些reward model来去做然后如果你再想扩展这个RL别的能力你可能每个能力对于RL来说它的reward它都是一个独特的reward然后你如果想把所有的模型的所有的能力都搞到一块因为Post Train一般大家都会专项突破然后你想把直接专项模型的不同的reward直接拿进来一朝汇它其实是比Pretion的难度要大的我也不是说完全不可能还是有可能的但是OPD的话它就会变得很简单我们可以把不同的reward model或者说不同的RL范式然后简化成不同的模型然后简化成不同的模型这个事情就容易很多了因为对于RL策略或者说对于Data它是一个高度一构的一个状态但是对于模型来说因为现在我们也不会为了不同的任务去专门设计不同的模型架构如果模型都长这样的话我们再做一个Multi-T-shirt的一个盒板这个就会容易很多不过这个也不是K3首先去用的这个是一个大家现在比较wide accepted的一个做法我印象应该小米JLM应该大家现在都是这么去做的对 然后这个qualization刚刚讲过来然后Draft Model这块其实我觉得还是挺有意思的这块还是可以额外去有一些很延伸的工作的QMIK3目前优化的不是很完善之前小米他们推出了一个能达到1000TPS的一个方案嘛那个主要是用了两个技术一个就是太阳量团队然后他们做的一个可以高度融合不同阶段的一个算子然后这样的话其实它可以获得比传统的VLM推理方式强很多的这样的一个推理效率然后那个可能达到三四百TPS然后小米是基于太阳量团队的一个结果然后再加上基于太阳而退的一个结果然后再加上Dflash这个投机推理带来的额外的加速比最后能带来一个
[90:00] 比原模型强很多的一个强很多的这样的一个推理速度这个其实主要的服务是对于一些成本可以付出更高的成本但是想拿到更强的一个推理速度的这一波用户去做的因为它本质上如果说你是为了整体的throughput服务的话这个其实它的收益会小很多但是如果你是小bash size但是大的throughput的这套方案是会强很多的然后这样的话就是刨开Tile RT那方面的贡献然后最后就落到了如何去做更好的MTP或者说做更好的Draft Model然后这块的话有一些有利息迈路的工作,刚开始Ego3和MTP,Ego3和MTP它其实它主要的方法就是因为刚开始speculative decoding提出的时候,大家还是用一个没有关系的小模型,然后来去speculative比较大的模型,然后这样的话它其实有一个问题就是你无法充分的去利用大模型中单的一些hidden state,如果说你可以利用大模型中间的Hidden City的话你其实就可以把小模型做得更小或者说你在相同的参数底下然后你的接触率做得更高最后可以带来总的更强的一个配理效率然后MTP和Ego3然后它其实都是这样的一个思想当然MTP如果从from scratch的话它还有一些别的好处然后Difflash的话它其实会更有意思一些对因为它联系了传统的Language Model和训练比较火的Difflash Model这两条脉络然后通过Difflash这条线结合了起来对因为Difflash Model刚开始提出的时候这个大家主要的claim就是Difflash Model在这个单用户或者说Batch Size比较小的情况下可以获得比这个可以获得比传统的Language Model对 但是Defiore Language Model之前最大有两个问题嘛 对吧 第一个问题就是它如果从传统它的训练效率不够高 它的整体的结果很难和传统的AR的language model想去PD第二个问题就是他只能打throughput就是它只能打这个小半小的throughput但是如果是多用户最后追求总的throughput的一个场景它其实这个Deflash核达文化的并没有优势所以Deflash当时主要就是统一了这两者就试图去利用Deflash核达文化的更快的一个推理方式然后进一步去优化这个MTP或者Draft Model这块的一个加速比最后可以得到一个更优的总的一个单用户的throughput当然了就是MTP这块其实是之前我跟陈俊就是Dflash那个同学也交流过他倒是提了一个点是对于整个模型是很重要的即使我们用Dflash这种更先进的Draft Model的策略它跟预训练的关系仍然是很大的也就是说对于Draft Model来说我们它是需要利用这个大模型的一定的这个推理能力的基础上然后再去使用Draft Model进一步的去扩大也就是说对于MTP来说MTP是需要给,在pre-training 阶段需要给 MTP 提供一个接口,然后这个接口会对下游的这个 Draft Model 的提升会特别有帮助,然后这部分其实是需要在这个 Pre-training 的阶段就引入的,然后当然了 Draft Model 也是需要做一些反推理,它是需要做一些自己特化的处理的,比如说我们可以用一个KL loss然后来去替代比较传统的NAS TOKIN PREDICTION的LOTS这样的话我可以在原MODEL VERIFY的过程中它可以对的更齐这样的话可以进一步去提升DRAFT MODEL接收的一个效率对这块我觉得之后还会有一些更深层次的工作我猜因为这个肯定不是对于MTP的一个重点然后HOMERRL TASK的话它是一个比较specific对于不同的任务来说它有不同的具体的一些策略我觉得这块的话只要看原文就好了然后接下来的一大块就是InfraInfra这块的话首先现在其实对于模型架构的设计来说关键的设计它是需要和这个Infra进行一些co-design的一个是Code Design,一个就是模型架构本身它会影响整体的Infra Squash本身的设计,这块包括跟DeepSick这一系列的Infra,它是有一些设计上的区别的,这块我觉得也是一个比较有意思的点。然后首先就是KDA,KDA之前在前面其实已经讨论过了,因为我们如果想去追求更高的一个Tunk的效率,然后我们是需要对KDA的衰减系数做出一定的限制的,这样的话我们可以用一个更好的Kernel的设计形式,然后来去带来更强的一个Kernel Level,的一个效率然后这块其实多的一个点就是KDA的这个CPKDA的CP是一个我觉得这个LinearTension的CP其实是一个可以简单讨论一下的一个点因为比如说对于sliding window或者说对于ForeTension而言其实CP它其实从概念上是相当容易的因为比如说你对于ForeTension来说比如说现在有些比较经典的算法比如说你可以用RainTension或者说用ZegZegTension因为Tension它本身的这个计算模式是够简单的而且它很多地方是省不了的我至少会得把这个快GPU的所有的cp cache都拿到一个GPU上然后来去做计算我觉得这块是一个相对来说比较简单的一个概念但是对于LinearTension的CPU而言它的概念其实是一个更复杂的然后这个大的框架其实我们还是可以回到最经典的一个ChunkWise Recurrent就ChunkWise Recurrent首先我们都同意说ChunkWise Recurrent对于LinearTension来说是一个必备的算法然后对于一个正常的单机的一个
[95:00] 不开CP的一个训练场景来说,Tunkery Concentra其实就是两部分,一个就是你可以拆成比较小的16Tile或者64Tile的一个Sunk,然后Sunk之间使用这个Degade的方式去计算,然后Chunk内部的话可以用一些比较parallel的方式去计算,然后KTA也是这么做的,然后KTA的那个Degade限制主要是解决这个Chunk内部的一个可以用parallel计算的一些高效性,然后这样的话就是对于单机的这个LinearTension来说就是一个Chunk内部用并行的方式去计算,然后Chunk之间用串行的方式去计算这样的一个计算的Python。但是呢对于CP来说我们就需要讨论它的一个linear tension比较有意思的一个范式就是它这个chunk本身是可以任意去拆分的也就是说不同的chunk的数字就比如说你想512个token一个chunk或者说8k token一个chunk它在数学上是完全等价的这个就跟早年一些比较拼借式的方案比如说有一些工作会尝试这个chunk之间都要用用LinearTenget,Chunk内部用Fortenget,如果用这种策略的话,它的Chunk的大小就跟你具体的模型的Architecture Design是有关的了,但是纯LinearTenget其实是无关的,既然是无关的话,我们就可以对Chunk的层次做出一个比较任意的处理。比如说对于单机来说,它Chunk是一部去拆分的,我们就16Tile去拆分,然后16Tile内部用一个并行的方式去计算。然后我们可以拆成8K放一张卡8K放一张卡这样的话我们就构建了一个以大Chunk为单元然后不同这Po之间然后采取低过计算这样的一个Chunk的拆分方式然后我们拿到8K的这样的一个拆分方式之后我们可以在内部进一步去拆分最后在LinearTension的时候我们没有任何的限制说一个Chunk中间是如何去计算因为对于一个比较小的Chunk而言Parallel是一个比较有的实现但是如果我们拆Chunk足够大的话我们可以采取Chunk套Chunk的方式然后来去进行基层也就是说对于Linear Tension的CP而言的话我们是做一个层次性的chunk我们首先是在不同机器上做一个chunk然后在一个机器内的话我们再在Kernel来握然后做一个chunk然后通过这样一个双层chunk的形式然后组成一个对于Linear Tension一个比较大的CP然后这个能够主要还是就来源于说就是chunkLinear Tension的chunk可以任意拆分的一个特性然后这样的话可以带来就是Linear Tension的一个CP的一个方案然后这个其实是对于这个Fore Tension不太一样的一个处理方式这个是可以讨论一下大家然后接下来是上面这个是CP或者说Curnalize的一个Infra的方案然后接下来的话其实就会讨论就是从这个分布式训练的一个角度然后我们如何去优化它的分布式的这样的一个方案然后这块的话我们后面就可以发现其实它跟DeepSick方案是稍微有些区别的然后这个区别是主要是来源于不同MOE的一个架构的一个方式然后首先的话5.2.1这部分KIMI团队带来了一个GDPP进一步延伸的一个EP的一个计算方案然后他们的主要的Claim的一点就是对于传统的EP因为我们现在都用那个DropLuxEPDropLuxEP就是对于每一个Token而言我选哪个专家他是不受整体的一个约束的就是我想选哪个选哪个这样带来一个方案,我们汇总起来之后会发现不同的专家他的负载是不一样的然后既然它是不一样的它就会带来一些问题第一个问题就是对于EP而言因为每个GPU它分到的投根数不一样投根数不一样的话它就会带来它的整体的执行时间不一样然后执行时间如果一旦不一样它就会互相等互相等就会浪费这个模型的会浪费GPU的算力这是第一个问题第二个问题就是如果我们不同的卡上的它的投根数是不确定的然后对于GPU的通信来说它会额外多一个阶段就是我们首先是需要告诉所有GPU就是你要接受多少投根这个投稿发过去所以基于这样的阶段的话传统的EP它严格来说当然不是一个最优的一个方案的如果完全为了Infra它最优的方案就是这个Dajok的EP也就是说我每个token然后要去受到全局的一个影响然后受到一个全局的影响的情况下我们可以通过一系列的一个allocate的方式从模型的角度让每个expert都受到完全均匀的一个token然后通过模型的方式然后让它达到完全的balance完全理想的情况其实就是这样的所以说如果在这个infride的层面完全均衡然后是一个最优的话从Infra的策略就是我们努力把Infra从非自由导致一个最优然后同时保持模型能力是不下降的因为如果JOP token的话大家现在都不会用因为它那个对于模型损失对模型能力损失还是相当明显的然后这个然后MNEP它就采取了一个我觉得是一个比较高端的一个方案它把模型的这个EP的方式变成了一个更动态的一个方式就是它是它是可以计算出比如说之前的一个经验的方案就是我比如说我有128个专家如果我们EP8的话可能每张卡放是六个专家的话它是一个比较静态的一个方式然后MWEP的话它采取的是一个动态性的方式就是它有一些冗余的专家然后通过额外容易的专家的话然后他从数月上是可以证明说我存在一个策略可以使得就是我们只需要
[100:00] 增加一个小比例的荣誉专家就可以保证这个token数的完全对齐我感觉像是一个比较经典的数据结构与算法的一个问题这个是可以证明到的然后他们可以证明到这一点的话他就可以得到一个结论就是我们通过少量的荣誉专家就可以达到就是所有卡上都均分的这样的一个效果然后具体如何去达到他们采取了一个online planning的方式然后这样的话我们去提前去规划就哪些卡应该有哪些荣誉专家然后在这种情况下可以达到不同的对不同卡上从投根树的一个完全的均衡当然即使说你从卡的角度是均衡它并不代表专家层面是均衡的因为这个算法它只是保证了所有每张卡每张卡的它的所有的投根树是一定的但是它并不保证每个专家是一定的因为一张卡里有多个专家如果说你还想保证每个专家的都是一定的那就没有办法了那你就只能采取有损的一个策略去优化这个可能如果大家是不希望的话这个上线可能就卡到这里所以说我们在两个中间可以采取可以找一些更优的一个处理方式这块是Keymiton带来的一个比较有意思的创新接下来就是Memory Definition Training我觉得这块比较有意思首先他们带来了一个从软件工程的层面比较简单的一个方案就是我们可以去更细力度的去控制每个部件应该去采取activation还是去采取offloading的一个策略然后这块不一样的一点就是KMK3它采取了大规模的offloading把中间计算得到一个结果offloading到CPU上然后这个其实是一个non-trivial的一个东西因为理论上如果想满足offloading不拖慢模型的训练它是有一定的条件的你得保证这个CPU和GPU之间的通信它满足的某个不等式这样你才有完全的训练用计算overlap时候通信的一个可能然后为了达到可以做offloading的话然后Kimik3他把所有的可以offloading的东西都用FP8去存这样他可以省一倍省一倍他可能才能从一个边界然后跨到另一个边界然后具体这个边界怎么算这个跟具体的这个卡具体的具体环境集群环境也跟具体的模型config是有关系的然后后面的话在一方面他们是需要去优化这个aturnal residual它本身的一个因法的关系的这个其实在aturnal residual的paper里其实也讨论过然后我觉得其实我觉得一个是PP,一个是通信overlap的手段这个其实跟DevSync是不太一样的一个方案因为首先比如说从DevSyncv3的角度而言它采取了两个不太一样的,至少是non-travel的一个方式一个就是比较细利度的MOE角度的overlapMOE角度的overlap就是因为首先就是MOE中间有两个通信有两个通信它是一个是dispatch一个是combine然后这两个通信它是overhead是比较大的其实在这个blackware上它其实又不太一样但是无论如何它是一个比较大的一个开销然后dipskv3的话它一个是在MOE的overlap这块它会拆的特别细然后具体的方式它就是会把这个MOE上一个batch的MOE的forward还有backward和下一个MOE的forward把它俩融合起来然后通过重排序计算的一个先后顺序从而达到把所有的大的Dispatch和Combin的计算然后Combin的Dispatch和Combin的通信都藏起来然后想达到这点的话其实是需要特别精细或者也特别复杂的一些软件工厂的一些优化的其实在MicroStone Core里边也讨论过这样的类似一个事情因为这个事情如果想做得足够好的话我们需要把所有的Forward和Backcord的计算从原子计算的层面就拆开然后手工进行重新排布我觉得这个还是有一定的难度的然后另一个就是DBSCV3采用的DOOPIP的策略也就是为了去缓解PV的气泡和不同的activation不均匀的方式然后他们去采取了DOOPIP的一个PIPLAN的排布方式然后当然后面除了DOOPIP还有DOOPIPV他们达到的效果是一样的对它从逻辑上会更简单一些起码从公开的他们写到的里边Kimik3是没有采用这两个优化方式的他们采用的其实是一些别的方式然后第一个就是如何去隐藏通信这个就跟实际的模型架构的选习有关系因为Kimik3它采用了Latant MOE因为Latant MOE它本身是极大的降低了通信开销的所以说它在整个的计算开销里边它其实是减小了特别多的因为它的通信开销减小了特别多所以其实如果想把它overlap掉就会变得容易很多就是我们没有必要再去跟另一个batch的计算来去做overlap我们可以采取这个一个batch内部更简单的overlap手段就可以把这个通信很好的隐藏掉然后KMK3它具体采用的方式是把这个MOE的前向后向的通信跟sharedexpert的计算这个overlap在一起因为sharedexpert现在质量度数都有而且shared after它是有一定的计算量的然后正是因为这个通信的开销减小了所以说它才能被shared expert以一个比较简单的方式去overlap掉但是如果你用传统的Moe它的这个通语开销就会特别大特别大的话你用shared expert的去overlap就很难overlap掉所以说如果你shared expertoverlap不掉的话你就必须要
[105:00] Thuyết. Để cho nên một cách để được được đồng hình ảnh vụ. Tôi có thể dùng một cách khác biệt, và đồng hình có thể dùng một cách khác biệt. Và một cách khác biệt là một cách khác biệt là một cách khác biệt là một cách khác biệt. Các bạn có thể dùng một cách khác biệt, và chúng ta có thể dùng một cách khác biệt. và đều là một cách để được được được được được. Và còn lại một lần nữa, chúng ta có thể được được được được được được được được được được được được được được được được được được được được được được được được. Thì cũng không thể được được được được được được được được được được được được được được. Nhưng màu này là nó có thể có thể giúp đỡ. Vì vậy, tôi sẽ có thể tự nhiên một số năng lượng. Vì vậy, tôi sẽ có thể tự nhiên để tự nhiên để tự nhiên để tự nhiên để tự nhiên để tự nhiên để tự nhiên để tự nhiên để tự nhiên để tự nhiên để tự nhiên để tự nhiên để tự nhiên để tự nhiên để tự nhiên. Nhưng cái này ở vệ sân y cố đơn giống như thế này thì sẽ làm được hơn. Vệ sân y cố đơn giống như thế này thì sẽ làm hơn. Vệ sân y cố đơn giống như thế này thì có thể làm được hơn. Vệ sân y cố đơn giống như thế này thì không cần phải làm được. Vệ sân y cố đơn giống như thế này thì sẽ làm được hơn. Vệ sân y cố đơn giống như thế này thì sẽ làm được hơn. Để không bỏ lỡ những điều đó, và không bỏ lỡ những điều đó. Và cái ảm ơn 它 không chỉ sẽ ảm ơn DP, và PP cũng sẽ ảm ơn. Điều đó là một cách tính chất chất, thì sẽ giữ vấn đề tượng, sẽ giữ vấn đề tượng, và sẽ giữ vấn đề tượng. Ở đây là trước khi được cái này của mình sẽ có thể làm được được những điều đó là một cách để làm được một cách này. Cảm ơn các bạn đã theo dõi và đăng ký kênh để theo dõi và đăng ký kênh của mình. Ok.
[110:00] 如果他写出来在复线难吗我觉得Infra上的事情本质上没有什么难的因为它本身就是个高度确定性的东西我觉得所有Infra的事情都本质上它是一些确定性的东西但是你如果想自己提出来的话它就对你本身分析Profeeling的方式或者说对于你本身的一个组织密度或者说就是你团的氛围就是有比较高的一个要求但是你如果整个Infra的团围比较好你还是可以自己搞出来的但是你如果不行的话你就尝试去follow一些一些比较好的一些工程实践的practice但如果这个事情都搞不定我觉得就可能就不太应该了前面主要是就Inference主要就翻三部分一个是Pretrain然后Pretrain的话前面主要是讨论了一些大规模分布式的情况下一些比较复杂的一些优化方式然后后面的话一个就是后面的话就是两部分一个就有RL然后还有一个就是Inference然后RL的话因为它本身就是涉及大量的Inference所以在这两个中间其实是有一些overlap的然后RL它本身一个对不太一样的点就是它需要对大规模Sandbox会有一些比较细的一个要求但这个其实就算是一个更工程的一个东西了这块的话它其实就是一些比较细的处理如何去处理不同的sandbox对于rl的task来说你每一个trajectory它可能都对应一个它自己的docker所以说如何去管理大规模docker其实是这块比较麻烦的一个问题然后上面这块的话我觉得这个KimicSan比较有意思他会时不时给你蹦出来一些比较有意思的东西我觉得这块也比较有意思的东西但也不一定是刚才他提的了这块可以省一个Gradient Buffer对这块相当于是一个比较tricky的一个东西因为对于一个完整的RLA来说它有好几部分的Model比如说你至少你至少有一个种Model然后你还有一个Reference Model然后你主model它还有对应的一个gradient和optimizer当然如果你还想做这个reward model的话它还会再多一个model然后其实这块的话它就会多特别特别多的model然后就有KPK3这块这样的一个比较有意思的事情就是它不同model之间因为你放一个model它对于这个pile来说它还是很大的一个memory所以说它这块相当于是把两部分memory就拖到一块了就对于reference model而言然后他们发现它可以跟gradient buffer来去合起来因为首先reference model它是没有梯度的然后在你求objective的过程中你是没有gradient的等你有了gradient之后然后你可能这个reference model就不会去用了所以说它这块用了一个gradient buffer usefor non-policy model for forwarding然后这块是一个对比较有意思的一个东西然后上下来我就感觉出一些比较常规的处理方式了然后我觉得Inference目前不会有太多的一个东西因为主体的这个Inference Optimization它其实是VLM或者S这样这些的专门讨论的一些内容然后基本上它其实讲的就是对于Kemik3架构它所带来的增量就是在现代的推理引擎中是如何去处理的然后首先就是会带来也就是Linear Tension它在现代的Inference Angeline它有一个麻烦它有一个麻烦就是它Prefix Cession它是一个比较麻烦的一个点因为对于ForeTension来说它强大于是于是每个位置它都有一个cache所以说你可以任意就是你下一个位置的cache它一定是上一个cache的一个简单的一个增量所以说在这种情况下就是prefix cache会简单很多但是对于LinearTension来说的话它会有一些它会有一个比较麻烦的特性就是LinearTension它每一步它是需要它是会在原来上一步的这个CarrieCache的基础上它是做一个复写的也就是说对于每一步而言它的这个prefix state它其实都是不一样的所以说如果我们把每一步都存起来那其实linear retention的好处就完全没有了但是你如果完全不存的话你就完全没有办法去享受到这个 prefix cache所带来的好处对然后这块的话现在目前对于这个linear retention它的一个采用的策略就是按照block去切就是我每个block去做一个 prefix cfix catching然后同样的话我们还需要另一个non-trived的点就是VLM这样的一个配置KV它的一个实现方式从工程上或者从概念上它最简单的一个分布方式它是不考虑层和层之间的意志性的所以说其实从去年还是前年就是如果想直接在这个VLM里去引入混合价格的话它在Infra上并不是一个容易的事情而且因为现在Infra 3越来越heavy了所以说如果简单的一些改法的话会把整个这个Inference Engine搞得特别特别的乱当然现在这个Inference Engine可能都有一些比较先进的管理方式但是这个就是需要去透露处理一下就是把这个一个就是把不同的Tenchant Pattern去结合起来对因为对于Fortenchant来说是按配置管理的但是对于LinearTenchant或者Slidean的话它还是不能按照配置管理的因为它并不存在一个长久的一个对于Tokenvisor而言的一个Carrie Cache的一个产生方式这个本身对于VLM的设计来说它其实是需要做一些兼容性的处理的然后我觉得后面就是一些就是适配性的一些优化因为Decoding的优化它其实跟prefuel或者说跟training不太一样所以说这块的话就对于每个环节都需要做一些额外的一些chronless的一个配置但我觉得这块应该对我觉得这块都是可以去做的而且对我觉得应该是一个确定性比较高的一个事情然后后面就是evaluation了我觉得evaluation这个没啥好讲的就是
[115:00] 好呗特别好就是在每个环节都好然后后面主要就是这样的一个状态然后应该就没啥了觉得K3让你最impressive的地方是哪里啊个人而言吧我觉得impressive一点就是他们把这个激活搞得特别特别大就是足足有100比0比我预期的还是要大一些的这个依赖的是什么能力呢这个不依赖任何能力就是你具体定义多少激活这个本身它不是一个技术性的东西就看你想到达到什么阶段的一个效果我觉得KMK3它还是比较有破裂就是在已有的开源模型这个赛的基础上他们要提升一个数量级所以我刚刚就说他们比上一代的激活其实是多了三倍多的我觉得这个决定是一个非技术性的一个决定但是这个是要一定要剩立的因为杨志明喜欢说有概率的非共识你觉得在K3上能看到他们的什么样的Different Bats或者说创新我觉得也没查因为有价值的技术创新他们都单写了一个paper了所以这个K3刚出来的时候我主要就surprise这个size别的我都不合我预期的就是你刚才给大家也展示了好多他们历史的paper其实中间就已经发出来对吧但是他把它优化到了一个更大的模型上对我其实的一个观点就是科学研究是不存在节约性的提升的只是说大家习惯把这个技术的渐进性提升的某些节点会成为一个milestone我其实一直这么认为的技术永远是慢慢去提升然后靠这个公司里的所有人项目里的所有人包括整个业界的同学一块去推动的所以我觉得从这个角度没有什么milestone有人说Kimmie的研究方式相对比较科学,你觉得这个你认同吗?你怎么解释?首先我是认可的,但具体认可的方式的话,我觉得首先,我觉得这个主要是来源于他们内部的一些管理方式吧。当然的,有些公开大家都知道的就是Kimi,其实公开里边大家认可的最强调这个模型内科的一个团队。所以他们其实一直去强调这个摩西内科的这样的一个case我觉得这个其实是他们科学化的一个体现吧我觉得这个其实是没有任何问题的我觉得科学对应的就是不科学嘛就是什么是不科学的我觉得这个事情就是讨论清楚大家就知道什么是科学的什么是不科学的我觉得不科学的方式就是如果从整体项目的角度你想去推一个东西你想证明某个东西是有效的我觉得这个东西不存在任何疑问因为学术创新或者说你从学术论文的管理的角度我觉得这个大家都是有明确标准的你得有明确的adulation你得有足够的变量的控制你得用更科学的方式去说明你这个东西是有效的我觉得这个大家都是认可的然后为什么不科学,不科学就是基于某些利益需求,然后把科学的方式都干掉了,这就是不科学,我特指任何技术,我一直强调的就是,我觉得KV这个团队非常团结,然后非常的能把劲往一处,如果大家是这样的motivation,你的判断方式自然而然就是科学。因为最近也是V4发布的时间,K3和V4你觉得他们的区别是什么,能不能做一些对比?我觉得是不同层面吧,我就从模型定位也好,然后从这个。刚刚咱们比较详细的讨论在infra上的一些区别然后从模型角度层面的话我觉得目前区别还是比较大的我觉得完全也不是一个东西我觉得其实比较好的一个case就DeepSick现在出了两档一档是1.2T的然后另一个是一个更小的size然后DeepSick我觉得目前还是更强调一个性价比的就是他们其实Flash模型做的还是挺好的但Kemic我觉得他们目前主要的经历里还是尝试去提升开源模型的一个能力的上显而不是去考虑模型的也不是完全不考虑一个考虑条件当然也可以看到现在K3 API相当贵比别的模型贵多了照这个趋势发展下去Kinni和DeepSick会分化吗我觉得技术层面的东西只要大家不笨都是知道什么是好什么是不好的我觉得组织团队的走向和取决于人的选择我觉得就是这么简单我觉得基础上这个东西不存在太多debate的好就是好不好就是不好这个是有明确的客观标准的但是对于组织而言对于人而言这个是比较模糊的你觉得K3相比之前的所有模型来说不一样在哪里它有架构创新它创新性更强了我觉得两方面我觉得从技术的层面来说的话我们可以讨论很多很多就是它中间的游戏有一些创新也好有些催崩也好这个对于技术同学而言是可以去讨论的但这个东西是不是成为里程碑它是个非技术的问题所以说它最大的变样是你最后的一个能力DVC跟V3我觉得比如说它那些比如RE这些东西我觉得这样就是紧张才花我觉得最大的问题就是它其实是国内第一个对把模型斯科到一定程度并且把RL全流说打通的因为在K3之前可能最大的就是千万72B这个其实是从模型size来上一个比较大的飞跃因为有size它才有智能所以说K3你把激活多了三倍把模型也快大三倍它就是下一个来步我觉得这个就没有任何问题它核心是size有效的skating对 其实是这样
[120:00] 这是完全靠一个团队来做起来的东西把模型增大最简单如果吹飞来看我就把模型几个数字调大一点我就可以达到一个更大size但这个不解决任何问题从技术上来讲它不是一个太大的创新因为你扩大模型size它本身不是创新你把这个Domins the Work中间才有创新觉得新团队现在再去重做一个模型,还有时间窗口或者机会吗?我觉得如果这个团队足够好,这个团队的氛围足够好,然后单v作战能力足够强是有机会的。但这个条件我觉得大概率是不存在的,所以说后面的创业事情也就不存在。为什么不存在因为好的人其实已经进去了还是怎么说我觉得好的人和好的组织文化想达成我觉得是有历史的局限的你不是想达成就能达成的断尾这个事情真的是有点虚很难去描述它我觉得也不虚我觉得就是取决于这个leader的taste或者说leader的性格是绝大多数影响到整个团队的氛围的我觉得Kimi有一个特点是所有人好像都不怕杨志玲吧对啊为什么要怕呢有道理你就谁有道理谁说了算吧对啊还是一个非常集体的一个工作它不是一个个人的工作它不依赖于个人英雄主义在那你觉得未来的模型的发展方向你有没有什么预测比如说半年之后一年之后模型size毫无疑问还会继续扩大我说一下我的判断我的判断比较暴论我的暴论就是大模型可能没有太本人的创新了后面都是一些改样性的进行进步然后他会做到一个什么样的水平呢做多大size对应的是什么样的性能呢我觉得这个重要的就是大家去定义什么能力去定义写的只要大家能定义一个能力就能去达到因为大家之前定义的方式比如说就是墙扣定AZ扣定这些东西是清晰定义出来然后大家就可以去做到这个取决于大家怎么去定义这能力或者说从商业化角度大家注重什么能力只要他能清晰定义这个任务本身他的能力就能够达成我觉得如果是纯language的应该没有太大问题它能达到所谓的AGI吗我觉得AGI最大的问题就是它没有被welldefined所以只要能够定义它就能达到后面都是一系列的优化工作当然如果说你定义AGI的是巨神是真实物理世界交互我觉得这个事情肯定还是gap是更大的但是如果你还是在这个language model的这个scope里讨论问题我觉得问题不大你觉得它最后会是一个多大的模型呢还是说他是无限大无限往上叠上去我觉得这个事情肯定是不可能的因为首先就是预期量的这个数据量包括说我们已知了的人类我觉得从出现来讲就是人类互联网上能集结到的所有的信息量这个是有限的这个事情是不可能无限提升的基于这个case来讲,从数学理论上,你想吃掉一个足够大的数据量,模型不太多,不可能是无线的没有必要是无线的所以这个能带来一个更宽的Bund然后这个宽的Bund可能上下会很高然后更窄的Bund就是在什么情况下就是我们对于模型具体在任务上的一个感知可能会没有那么充分然后这个是一个更窄的一个Bund或者说如果未来有更难的任务它必须有更大的size那可能就会退化了更宽的那个Bund我就对但是我无论如何不可能是无限的你觉得它会最后有多大这个模型现在是6到2.8以后呢?B原的肯定还是有更大的的目前,所以如果想完全matchB原的肯定还是可以再大一些的,但是更大的话这个就不确定了。你现在为什么去探索世界模型了?我觉得这个主要是一个personal的一个东西。因为我觉得这个弹幕型不存在太大的改进空间,没有大的突破的话就没有大的这个所以说我觉得对于个人来说可能从职业上来讲不是一个能做出太大的一个贡献的领域了这个我有抵犯的问题 这玩意问题更大 但我觉得至少是一个新的东西好by bwd6