Kimi K3 采纳了类似 Cohere 团队的 **RNoPE** 思想:由于 Hybrid Attention 中的 Linear Attention 本身已经引入了明确的时间顺序与位置信息,因此在全注意力(Full Attention)层中可以直接将位置编码完全移除,即采用 **NoPE (No Position Embedding)**。
[0:00] Hello 大家好 我是小俊今天的节目是一集学习播客学习KIMI K3的技术报告希望和大家一起领略技术之美K3是有效扩展到2.8T总参数并全量开源的MOE模型大家可能注意到这集技术报告的领读播客距离模型发布已经过去了一段时间期间我们试图寻找一位合适的嘉宾我们希望这位嘉宾合得来讲K3最后找到了孙宇涛宇涛目前是清华大学计算机系博士候选人上海创制学院普瑞学者他从博士开始的研究方向是LLM架构预训练架构创新一直都是他的兴趣所在这正好是K3的亮点之一那宇涛透过领读K3的论文也串联讲解了十多篇相关的论文他的语速非常快所以前方语速高能预警期待2026年我们和AI共同进步当然这块我觉得可能还有一些别的concern比如说我们发现其实如果用Ming的话它其实是会更容易出现Altlare的你控制中间的激活值总不是一个比较错的现象当然如果我说Ming更容易引来Altlare的这个速箭林一定会反对他肯定会说对于任何优化器来说它都一定会出现Altlare因为你从模型架构上是控制不了的所以说如果想严格控制的方法的话一定是直接从模型架构下手这个情绪上还有一个对应的概念就是泰休斯之船就是你刚开始2017年这个船刚开始行驶的时候是Transformer但是这个船刚开始是怎么拼起来的?它是Attention加Resigual,我们可能会把某些部分换了,其实跟Transfer已经,我觉得像素已经很低很低了,你是否还把这个东西叫做Transfer?我说一下我的判断,我的判断比较暴论,我的暴论就是大模型可能没有台北人的创新了,后面都是一些改样性的进行进步好的,那我们的论文学习播客又来了,这次我邀请了清华大学的PhD Candidate,上海创制学院普瑞学者孙宇涛,将由他带领大家一起来学习和阅读最近大家关注度非常高的Kimi K3的论文,但是宇涛会带领大家读一系列的论文啊,那宇涛你能不能先给大家做一个自我介绍并且介绍一下你的研究方向?好的各位观众朋友大家下午好然后我是来自千华大学的孙宇涛我在这个博士期间的主要的研究方向是大模型的架构和预训练然后这个博士课题呢我是从二十三年从那个时候开始我们主要去研究这个大模型的模型架构的一系列的工作然后在那个时间点应该是ChateGPT刚刚发布一段时间吧但是我们的架构研究从其实从ChateGPT发布之前就开始对差不多就开始了然后我这两三年的主要的一个研究方向就是去尝试解决大模型在推理这个环节的一些低效性吧然后所以说我们主要的一些研究方向都是围绕着推理高效性来去展开的然后其实大家也可以注意到说就是在模型架构这个方面呢整个业界的研究方向也是逐渐从偏这个性能为导向逐渐的变得是以效力为导向然后在这个方面其实是有一些办事上的变化的因为可能在Vision时代或者说在ImageNet时代大家还是尝试去做到更精妙的一些架构然后去提升模型本身的一个表现但是在大模型时代然后我们其实逐渐发现对于模型的性能而言模型的参数量原来是一个最主要的一个因素然后在这个在模型架构本身的一些改进性的变化呢其实相对于模型参数本身的提升对带来的这个性能提升是相当微小的但是其实不同的架构在这个模型的推理方面然后性能差异是巨大的而且这个也是主要决定了模型最后的一个部署的价格然后其实这两年大家主要在这个方向去努力然后对于我而言的话其实我们是在23年开始然后探索这个现役助力这样的一个方向的一个工作然后我们这篇RatSide工作刚开始主要是解决了两个问题的我觉得从现在的这个阶段主要解决了两个问题第一个问题就是现役助力怎么能尽量的去在一些比较gender的场景下能逼近这个全数域的这样的一个性能因为linear从刚开始提出主要是为了去用一个比较linear kernel然后去一个kernelized的方式去拟合然后二次复杂度的全数域这样的一个pattern所以在之前那个时代其实对于这个linear tension而言它的位置信息它其实是不够sensitive的然后其实在那个时代这个linear tension和这个和rn只是在形式上比较相似但是从这个建模的特性上来讲rn其实还是比较强调这个一切locality的一些表示我们在Racket上是比较早的引入了一个插点的一个机制这样的话可以让这个限制助力在一个有限的这个状态空间里然后尽量的去
[5:00] 电魔这一些对最后的结果贡献足够大的一些信息然后这个其实刚开始的一个motivation除了这个模型性能以外呢我们当时也是主要比较先的提出了这种这个tuncure recurrentChunk as Recurrent 这样的一个线性注意力的Kernel的计算形式,因为对于线性注意力来说,如果把整个的状态都展开了,然后在Token这个维度去做地规的计算的话,它其实从效率上并不是最优的,但是如果用仿照注意力这种计算方式去建模,它又享受不到整体计算复杂度带来的优势,所以说我们当时就是在这种Parallel Reputation,从一些并行的像全主义这样的一个计算形式和全地规的计算形式,之间然后找到了一个tradeoff也就是这个块地规的这样的一个计算形式这个charkwise requirement呢我们既可以拿到这个整体的一个计算复杂度上的一个收入同时我们能在kernelize层面然后我们可以尽量多的去这样tenthcore然后把这个local的一些计算密度都拿满这个是我们提出了一个比较有效的一个计算范式然后大家其实如果可以关注到就是之后的一些其实所有的一些现实注意的改进工作都是基于这样charkwise的计算形式去计算的对吧包括manbara2然后gety delta net包括然后来到今天的这个Kemilinear KDA这样的一个计算模式然后在这个计算大的计算模式上呢然后又带来一些新的比较细节上的变化然后这个可能之后对今天的后面会就更详细的来进行讨论然后当然从现在这个视角的纯线性注意力就作为纯线性注意力的一个模型而来无疑是一个比较失败的一个尝试因为无论如何这个比较有限的一个contest它都难以带来就是在长上来文中和这个全注意力比较完全相懂的一个性能这个其实在这个,今天这个时间点,我们都知道是不可能的,所以说这个,当时我们在23年吧,也是注意到了这个现象,所以说我们就会尝试说,就是从这个权限制注意力,然后转到一个这个,Hybrid Tension的这样一个架构的形式Hybrid Tension其实大家顾名思义就是很简单包括KIMIK3其实也是这样的就是用一些现役注意力和一些全注意力然后组合起来然后作为一个模型的架构然后这个本质上听起来像是一个工程上的trade off然后也是一个比较工程的解法但是虽然如此我们当时就发现一个现象不过这个也是目前所大家公认的就是混合注意力它其实虽然从架构上来讲是一种trade off但是从最后模型本身的表现来说并不是一个trade off大家其实发现在保持一定的全注意力比例的基础上整个模型其实是可以获得无损甚至更好的一个常常上菜文表现的也就是说其实在混合注意力模型的架构中我们并没有牺牲一定的这个全注意力的一个模型能力从而带来工程上的数据所以从这个角度上来讲也是因为这个实验上的一个结论然后从而导致这个混合注意力现在被大规模的利用起来这是你的第一片工作是吧对对对对对对然后后来的话就是当时我们会发现说这个混合助力其实在工程上是一个百分之二work的方法我觉得其实没有问题当然其实直到今天work的也还是不错嘛当然了,对于一个博士生来讲,这个东西虽然它比较work,大家也愿意去除了,但是这个东西从Nauty上其实感觉就差点意思,而且感觉也不够有趣,因为当时我们觉得如果只是把两种混合注意力模型结合起来的话,它有这么几个问题,我觉得最大的问题就是它在推理的加速比,它永远是和混合比是正交的,或者说也不是正交,就是完全成正比例的,因为现在比如大家比较常用的是混合注意力比全注意力大概是3比1这样的一个比例,也就是全注意力,在整个模型里大概是1/4这样的一个比例,所以说如果说我们认为1/4是一个比较无损的也是一个比较极限的比例的话,其实我们很难拿到更大的加速比,也就是说我们无论是prefail还是做decode,我们最多的加速比也就是4倍,当然我们在做纯线性注意力的时候,我们希望是更高的嘛,我们希望最后如果混合注意,它其实只是一个这个常数级别的改进,所以当时觉得可能不是很有意思,所以我们后来就做了优扣这样的一个工作当时我们的一个motivation就是我们从第一性原理去思考,为什么纯现役助力没有办法获得和纯全助力一样的性能?原因很简单,我们至少希望模型有一些比较基本能力,比如说我们至少有一个可以获取全文信息的能力,所以说在这个场景下,其实全上下文的kvcash这一点是没有办法去省掉的,所以说就kvcash既然没有省掉,我们能不能从另一个维度去省,所以当时我们就觉得既然说这个从从token长度这个维度没有办法去节省,所以说我们找到了另外一条节省的方向,就是从这个层间这样去节省。所以Yoko当时做的是一个就是所有层共用一份kpcash这样的一个架构的方式。然后另外一个就是从模型的计算角度,就每一个token在decode的过程当中,对它的计算密度是没有办法去这个减少的,因为我们希望它保持一定的这个全注意力的计算能力,然后这样它才能达到我们希望的长沙培能力。所以说我们提出的另一个东西就是我们希望把这个模型的计算和所以说我们当时可以看到 虽然我们只有一份的KP cash 但是我们可以保持一个多次的负责
[10:00] 的富而生生的一个计算结构,所以除了这个技术上,我们当时的优格架构只保留一份的开始但是可以获得这个和全注意力或者混合注意力,基本上可以等价的一个这个模型的一个计算结果。然后这个架构还有另外一个优势就是我们在prefuel的时候可以直接跳过这个全注意力的计算。因为prefuel它就是比如说也就是模型处理这个用户输入的这样的一个阶段。我们本质上只是希望我们可以拿到模型的kvcache,然后这个kvcache是用于后续的这个decode的一系列的hater state。所以说这个prefuel的唯一目的就是去达到这个模型的kvcache。经过前面的一些linear retention的一个计算然后拿到了kvcash这个就够了因为prefuel阶段我们是没有必要就是减码出每一个位置的后续的next token prediction的所以在prefuel阶段我们就可以直接不过cross retention但是在底后的阶段我们可以保持和这个传统模型一样的一个计算能力对然后这个是我相关的一些第二条件工作这个标题也挺有意思的对这个也是致敬有onlylookvance当然后来也有后面一系列的致敬的工作你只能缓存一次是吧对这个其实在这个从kvcash的存储角度基本上已经达到极致了因为我们都同意的吧如果从tokenwise角度我们必须等保证所的话一份其实就是最少了不可能再少了所以这个从kvcash角度是一个比较极限的一个结果对然后我讲我对personally我的一个第三边工作就是在这个工作里我们其实解决了就是从一个更通用的角度来去考虑问题的话就是模型的推理开销主要就分为三个部分就是prefuel的这个实现开销然后decoder的开销然后和kvcash的存储开销不可能有第四个,然后优客这个工作呢,我们主要解决的是prefuel和解决了那个cache,但是我们没有解决decode的。然后decode的话我们后续是或者大家会尝试用这个Sparse 腾讯的方式去解决然后但是K3他其实目前是没有用Sparse 腾讯所以这块对今天就对今天就先不讲了对然后我们后面的一个工作是一个和另一个赛道是一个比较相似的工作也就是Loop Language Model 公民思义,我们在保持一个固定的模型参数大小的情况下通过多次迭代来去提升模型的flops,从而去提升模型的一个能力。所以Loop这一系列的工作,主要目的就是可以在保持一个比较小的模型参数的基础上,取得比同参数的模型好更多的效果。但是其实传统的LoopLanguageModel,它在Decode的情况下,它的成本其实是难以忍受的,因为它只是省了模型参数,它其实并没有省计算,而且在相同计算下的话,它其实是并不如把参数转开,或者说用一个更大的但是不去Loap的模型,它最后总的效果好。比较传统的LoapLanguageModel,其中还有一个问题,就是它的这个Carray Cache,它的存储,它会随着这个模型推理的深度而增加。所以说最后总的算起来的loop栏格带来的总的credit其实是相当大的然后Yoko Universal这个工作其实就是在这个Yoko价格的基础上然后去做一个位置上的改变也就是我们把loop的单元然后变成一个很efficient的一个单元然后从而去避免就是推理的时候一些额外的一些或者比较大的成本但是能保持它模型的一个效果比较稳定的一个增长解法也很简单因为对于Yoko而言毫无疑问它是一个这个混合注意力架构但是我们混合注意力方式它不是一个交错式的一个结构是一个两端的一个结构也就是说我们模型推理的前期它是一个全线性主义力但是模型的后期是一个全注意力这样的一个架构所以说我们的选择是把这个把Luke这样的一个架构集中在这个线性主义力这样的一个位置然后这样的话我们对整体的QCash增长是比较小的因为LinearTension它本身的QCash它其实是微乎其微的然后第二个就是线性主义它不仅省存储它其实也是省了计算就是在长上下文这样的一个场景下它其实带来的额外的计算是相当小的因为它Linear Attention所带来的Attention的Decode的计算是相当小的,但是从Injernal的模型能力上的话,它从比如说模型的proplasty或者说从模型的skilling behavior它是可以获得足够接近全注意力的这样的一个模型的能力所以说我们这个架构它其实可以达到的一个效果就是从用差不多,比如说我们用两倍原模型的这样一个计算强度,我们基本上就可以获得两倍左右的一个性能提升,但是我们的模型存储和这个模型的QCache还是保持和原模型的一个差不多这样的一个推理开行对这个是我第三份工作这班工作因为去年开始这个loop language model是一个大家比较热议的一个话题然后我们在这方面然后做了一些探索所以你从二三年一开始读博你的研究方向就一直在架构创新上对吧是的而这次K3他在L1M的架构和预训练上也做了很多工作,这是我们今天来找你来带我们读论文的原因。对,是,因为Kimi Linear刚发布的时候,当时我们其实之间也有一些讨论,然后其实工作的连续性其实还是比较强的。包括Kimi Linear他其实也是比较原封不动的搬到了K3的一个总的一个合板的里面。你为什么一直对架构创新比较干?
[15:00] 我觉得两方面吧从个人角度我觉得价格创新比较有意思就是比较好玩对因为别的层面的工作的话它其实工程性的因素会更强一些当然价格创新它也有一些比较工程性的因素当然它的工程性主要来源于就是你需要做一些Infra上的code design但即使是Infra上的code design其实我们之前也提到了比如说我们提出Chunk Recount这样的一个计算节目它本身其实也是Infra层面的一个创新所以我觉得这个事情比较有意思而且它比较能起到一个四两拨千斤的效果吧我觉得对于一个博士生而言,这块是一个相当好的研究领域,当然在2023年是这样的,2026年可能架构创新能做的其实是越来越少了,这个是从个人层面带来的一个考虑,整个领域的角度而言,我觉得其实全注意力当时是一个非常大的瓶颈。如果大模型推理是大规模的应用的话,EUTSEN这个东西是一定可以解决的,是一定需要解决的,而且我们相信是一定可以解决的,所以说在那个时间上我们觉得从整个行业来讲架构创建是对于模型部署而言是最重要的事情我们这次的主题其实是一起来读拼命K3论文,但是你对于这篇论文有很多自己的想法,所以你也做了一个不一样的一个分享的结构,并不是完全是根据这篇论文展开,能不能介绍一下你整体的分享的一个结构和逻辑。我一般想talk的主要的逻辑就是从它模型本身,比如说从一个论文本身出发,当然所有论文都是建立在之前无数个relative work的基础之上,所以我会选一些比如说他一个论文他有几方面的贡献然后他可能一个若干贡献他在背后有一个历史研究的一个脉络我一般的风格是会把这个脉络打开然后这样会达到一个效果就是如果只看这篇论文你会知道他是这样做的但你可能会不太清楚他为什么这样做或者说历史上大家是怎么做的为什么最后达到这个解我觉得比如说从一个比较重要的点展开我觉得从观众的角度是一个比较好的学习的方式而这样的话也会讨论的更综合一些只是一个点的话它其实我觉得意义是不够大的当然这块可能这个模型架构是一个比较多的一个篇幅主要也是因为一个是Kimik3它也做了比较多的一个模型架构本身的创新作另一个就是模型架构这一块它的也这个研究的脉络它其实是相当清晰的而且它每一个部分它其实都有一些比较固定的一个credit我们可以就拆成一个一个点然后把大家去讲出来当然后面也会有一些关于Infra的那种因为现在其实都是比较依赖所以这两块它其实是密不可分的别的一些比如说这个Playtrain Data的话大家肯定都是一个比较密密的状态Paper里也没有写我也不会讲这个Paper除了公开内容以外的一些东西所以这块可能就会涉猎的少一些你的罗链结构让我感觉到其实我们最后看到的是K3的一个呈现,但其实它是有很多人的credit,它不只是Kimi一家公司,对吧,这也是现在做frontier这些模型的一个有意思的地方,它要吸收很多之前其他人的工作,然后我们也把credit都给到大家,我们这篇讲解就是除了你能理解K3,也能理解它是怎么来的,对吧?对 是的 我觉得做一个公司比较科学的方式,如果你最后想把这个模型做好,你肯定是几百家之长嘛,当然是如果说,比如说你只想用自己的工作,那这样可能就是没有必要了,如果是基于这样一个目的去做工作,那可能你就会错过一些这个别人一些做的比较好的工作,因为无论如何这个整个行业都是由大家集体推动的嘛,所以我觉得这个也是KMK3一个比较好的一个点,他其实我觉得包括他之前的一些paper也是这样的,我觉得比较客观会比较真实的吧,前任的一些工作用一个比较可靠的方式去引出来,不会说想办法去削弱这个之前一些人的贡献,我觉得这个其实是他做的也不错,比较好的一个点所以我们这次是从K3出发然后其实是串联起的不管是十几篇论文也好还是记住报告也好还是比如说苏建林老师的国课也好就是是有很多的那种那我很期待我们开始吧好Kimi K3从前面它的一个主要的卖点来说的话,它其实主打的是一些,我觉得从几个方面它有一个比较大的一个囊括。首先,它收了它的一些结果,这个结果特别好,而且这些数都摆在这里,其实也没有太多可以解读的。然后为什么能达到这样的一个结果,然后Kimi K3主要claim的是,三个维度的一个scaling然后当然我觉得最重要的还是说模型大小的一个scaling就是它做到了一个2.8T这样的一个模型大小而且它是一个比较有效的一个scaling的结果什么叫无效呢无效的scaling我今天就可以给你我晚上回去起一个这个2.8T的模型enit我跑个100B的token然后我就可以放出来这个显然是无效的所以说这个scaling当然是要永远是建立在有效的基础上PBK3就是在这个2.8T这个scale做了一个有效的scaling然后这个模型参数大小模型的一个激活的它来到了100B左右这样的一个量级其实在KIMI K3发布的时间点其实是比
[20:00] 国内开源模型的其他几家要大很多的这样一个情况的然后它另一个扩展是在模型上下文长度的这样一个扩展然后在模型上下文长度的这样一个维度呢它做到了1 million这样的一个量级然后1 million的话它自然是可以获得更大的这个上下文的窗口然后去解决更复杂的一个任务所以说从模型总的来看的话,我就还是遵循一个第一系原理,就是更大的模型,才有更大的一个智能上限,如果别的东西没有做太错的话,其实大家可以看到这个模型的参数大小还是解决模型智能最本质的一个参数量。当然如果只看benchmark的话,你有无数种方式去达到一个对内或者对外一个满意的结果,但是从模型的能力本质上,模型的参数大小还是最有效的一个方式,而Kimi确参是一个相当早期或者说相当成功的达到了这样的一个量。然后到这个模型结构章节模型结构章节的话KIMI K3其实是综合了KIMI整个团队包括整个业界然后过去一年以来比较重要的一系列的创新K2不一样K2当时KIMI的发力方向主要是这个模型scaling本身或者说一些非模型架构的一些创新所以说KIMI K2当时主要沿用的就是DeepSeg V3的一个结构但是K3这块的话它其实就跟K2大不一样了KMK3它本身引入了很多比较新的或者说比较创新的一些设计元素对包括对吧自己的也好别人的也好有些比较创新的一些材料也好或者说比较细节的一些调用也好它其实这块做了很多对比较充足的一些准备所以从观感上来看其实跟K2的感觉是很不一样的首先是Hybrid Attention,我刚刚也讨论过一些,我们可以重新翻回头来,再从Kimi本身写作的Writing去看起然后这块的话,我会先讲一下这个线性注意力的一个在过去三四年以来的一个历史的发展状态。因为你如果直接读这个Kimi Delta Tension的话,你会发现它的这个公式相当复杂,而且说对不同的项,然后具体是怎么来的,它具体承担什么样的一个作用。如果直接看这个公式的话,你会发现它特别特别长。比如说比经典的Tension,它其实是要复杂很多的。探索最后得到的这样的一个结果所以说如果想了解这个KIMI Delta Tension对这个最后是怎么设计出来的我们还是有必要去探索之前的一些现实助力经过了怎样的一个发展阶段然后让我们再回到这个RestNet对这个其实是刚开始我们必不可少的一个这个现实助力的一个发展的阶段吧因为刚开始这个现实助力非常非常简单我们就是这个KV乘出来得到一个YG然后把它加起来所以刚开始的线性注意力其实比RefNet还要更简单然后RefNet在这个线性注意力的基础上呢然后我们引入了一个衰减项然后这个衰减是跟Token的位置是有关的然后这样的话就把这个LinearTentent从一个比较PositionInvariant的这样的一个角度从位置无关然后不让它变上的一个位置有关然后位置有关最主要的方式呢一个就是我们可以加Rope另一个就是我们可以引入衰减项因为无论如何语言的特性它就是更近的位置它有更高的一个权重上下文理想达到更好的结果衰减这项其实是必不可少的对所以说这块是这个现实注意比较前期的一个经验吧然后这个衰减下所有工作基本上都保持住了然后另一个主要的这个影响就是Chunk Recount的这样的一个计算形式对因为如果我们只是这个做一些偏学术性的研究或者说只是发paper的话其实从这个kernelized的一个足够高的一个有效应其实是大家不会从一个比较刚开始就比较强调一个是我们主要发现的话,我们完全使用这个地规的这样的一个形式去计算它其实特别满,甚至在训练广中甚至直接要比这个parallel representation,就类似全数yd这样的一个计算方式它还要满但如果我们直接用这种parallel representation的,又感觉十分傻逼,因为因为我们在训练之后相当于完全没有享受到线性注意力的收益,它跟全注意力的计算强度是一模一样的,甚至还要更高的,因为它可能有一些别的处理,或者说我们的curdle写的写的没有flash的存在好,这些都是有可能的,所以说我们当时觉得无论如何,我们都要找到一个比较可靠的计算pattern,让它足够发挥GPU的能力的同时,然后享受到一个计算的计算。复杂度的一个加速所以当时我们就做了这样的一个事情然后RetNet之后呢有两个比较重要的一个节点在这我觉得一个是MambaMamba当时是把这个位置无关的衰减变成了这个位置有关的是一个衰减然后接下来就是DeltaNetDeltaNet的话当然这个概念不是宋林去提的当时是这个是DeltaNet是之前的一个工作然后宋林是在这个DeltaNet的基础上呢然后引入了就是开发了一个拖乱东特瑞德其实就一句话,就是如何能让这个DeltaNet转化为一个GPU可计算的一个这个Chunk Recurrent这样的一个计算模式当时送临去做这贩卖工作的时候
[25:00] 我说看上去好像DeltaNet不太可以并行,他说可以并行,并且他已经搞定了所以说从GPU efficiency的角度,DeltaNet主要是解决的是Infra上的一个困难而且这个解决方式我觉得还是一个比较本质的一个方式然后DeltaNet刚出来的时候我们当时尝试去解决因为当时我们知道线性注意力它在处理全上线文的这样的一个能力上它其实是不如对不如全注意力的所以当时就有两个方案第一个方案就是我直接认输我就去认定现役注意力是不可能匹敌全注意力的当然可能当时我是这种形态我当时意识到可能从现役注意力的视角出发是很难去匹敌全注意力的我当然是这个想法当然宋利是另一个想法他当然觉得我还可以再努力吧我们可以努力的去提升现役注意力本身的一个长线门的一个容量从而获得更好的一个节奏然后DeltaNet当时就是这样的一个目的通过这种方式我们可以获得比之前的RetNet本质上其实也就是在相同的这个kvcash大小的情况下,就是从上法上提高了这个限制度的一个上下文的容量。当时DeltaNet是没有做这个位置衰减的,当时从这个从Properacity或者说从这个Benchmark上它的结果不是特别好。所以说我觉得一个比较显然的事情就是既然我们知道这个位置衰减这个事情,本身是可以帮助这个模型总的一个能力的那我为什么不把这个模型衰减然后和这个DeltaNet这样一个更高容量的linear谈认结合起来Gatee的DELTA-DAD正是这么做的,我们可以去结合DELTA-ROOT这样的一个更高的线性注意力计算容量,然后同时我们给它带来一个衰减,然后同时融合这两个我们就可以得到一个更优的欠行注意力的一个表达形式然后这里就可以看到如果没有AlphaT这项的话,它其实就是一个比较经典的DeltaNet,然后引入衰减之后的话,我们就可以得到GatedDeltaNet这样的一个形式,然后大家就可以注意到这个表达形式其实已经比刚开始的限制入力要复杂很多了,对,因为如果把这项,如果把这个ST-1后面的一个系数完全消掉的话,其实就是最经典的LinearTension,然后RestNet和Mama呢是把这项小道得到一个结果就是我对这个上一个时间点的历史状态然后进行一个衰减然后这样的话是之前的RatHand和Mamba这样的一个结果然后DeltaNet呢它是引入了一个Gatee DeltaRoot的这样的一个方案然后写成地位形式的话它其实就额外再增加了一项这样的复杂度就叠加了上去我们再回到KB Leader,他其实在GateDeltaNet的基础上又变了一个东西,大家可以去对比一下这个是怎么引入的主要的区别,它其实就在这个衰减项上比如说在right hand,然后mama2和这个gated delta rule的情况下的,当然了,线性这个注意力是分配的嘛,所以说一般的现录主力也是分Head的但我们一般写公式的话我们会考虑只有一个Head的情况所以说如果只有一个Head的话GateDeltaNet也好,之前的工作也好,衰减项是一个标量,我整个Head遵循的衰减系数是一致的,这样的好处是,它在Kernel上比较容易,写Kernel比较方便,因为衰减项本身想做一个比较好的,如果说我把Decay拆成更refin的形式的话,我们再去写Kernel的话,它其实是一个不太好处理的一个项,这个是出于写Kernel方面,我们把一个标量的衰减然后变成ChinaWise衰减它严格的来说是能力更强的然后Kimi Delta Tension,它其实就是把这个AT的DeltaNet的这个衰减项,然后从一个标量,然后变成了一个更Fangrain Control这样的一个量。然后这样的话,它就可以带来就是每个Channel可以的衰减系数是不一样的。这样的话,我们这样可以带来一个严格更好的一个能力的上限,因为从公式上来讲,它是严格更好的。无论如何这个Channel-wise的DK,它是可以退化到一个比较均匀的DK的。这样一个严格更强的一个模型能力,它会带来一些更好的效果。Delta的谈设来说一个更强的模型能力它其实是有一些代价的它的代价就是它写Kernel会更麻烦一些它的麻烦的点就在于说我们不能说我们作为一个这个DK代言我们其他部分可以用一个比较方便的方式去做这个去利用探测号来进行计算如果是一个标量的率简厢的话它的处理会特别特别容易它其实一个Tile就只有一个变量就完事了但是如果把它从标量变成一个ChannelWise的话对 它的这个处理难度就会增加很多然后这样的一个处理难度也会带来这个在KimiK3里边一个更更细节的一个co-design的一个处理这样的话我们就来到了这个Lower Bondi的decay就为什么有这个东西两方面的原因一方面就是我们可以认为的从算法层面我们希望它不要decay的太快了但是从从Paper本身而言的话它其实
[30:00] 是为了和kernel来进行一个co-design原因在于说就是我们想去处理更find-green的decay的话我们需要在这个数值上做一个比较巧妙的处理也就是对于q和k而言我们会做一个这个decay的倒数的一个变化我可以举个例子吧最简单的例子就是减2可以表示为这个3-5这个其实也跟rope的思想是比较一致的rope的其实在这个inframe上一个特别方便的地方就是它可以通过这个绝对位置变化来去表示相对位置变化这个情况下它整个的一个计算会会容易很多然后rope它的思路就是其实就是用绝对位置来去表示相对位置所以说对于衰减而言它其实也可以用绝对位置来去表示相对位置也就是说比如说我们有一个衰减项它比如说它是一个alpha的平方对吧alpha的平方的这样的一个衰减项当然这个衰减项可能是对吧第0个token对第2个token的或者说对吧第100个token对102个token所以说我们如果想用绝对位置的话我们就会选择让k先做一个比较大的一个衰减也就是说我让K做一个三四方的一个衰减的提升然后让K做一个比如说五四方的一个反衰减然后这样的话我通过这个承卤结果率我们就可以得出和原来的低规一个比较等价的形式然后这样就带来一个问题对于这个KMDT来说的话他会对QK他有一边他会除一个很小的数对乘一个很小的数可能没有关系他无非就是抵克到0他并不会带来这个当然我们也不希望他抵克到0但是从数值精度上来讲我们希望让他控制在这个BF16的精度范围内这样利用ROPE那种协定位置来表示相对位置编码的这样的一个方式他才是有效的所以说为了让衰减在一定的上口范围内然后控制在BF16的固定的chunk内部让它控制在一定的进度范围内的话,我们是需要从数学上把它控制住的。比如说Kimiliner这块是16个Token Tile,我们就希望衰减。在这16个Token的RES里面不要超出BF16的这样的一个范围。当然BFL16的进度范围,这个是我们已知的,我们可以通过BFL16的进度范围,然后反解出来,在16个Token的区间内,我们最多可以衰减到多大的量。然后Kimi Delta Tension他就大概选了这样的一个量然后这块我们可以去证明说就在16个Token的Tile里我们是可以衰减像是不超出BF16 Dynamic Range这块的Lower Down Body的Decay它更像是一种Code Design我们通过模型算法成本的一些控制然后让它获得在一定Tile的内部然后不要让它有数值方面的问题这样的话整个Kernelless的方式会更加的去通常当然了如果不去限制Kernel肯定也有自己的写法会低效一些,所以说为了保证一个高效的实现,KIMI DeltaTEN采用了在一定的Tile Trunk内,然后控制它最大的一个系数,就是衰减程度这样的一个方式。然后KMI Delta Attention大概就是这样的其实拖到东瑞的也很简单第一个就是我们KMI Delta Attention把GDN这样的一个计算方式拓展了一下它的计算能力然后为了扩展的计算能力带来的一些额外的infra上的麻烦然后他们在模型的表达范围内采取了一些战址然后让它满足Chronalyze的一个方式然后最后得到了KMI K3采用的最后的一个形式OK 下一个环节是Gatey的MLOA顾名思义它就是把两个对,把两块的模型结合了起来,RMIA可能大家都很熟悉了,是DP-SIG V2刚开始去用的,主要目的是减少一些Cache的开销,然后MIA的配置后面主要是被DP-SIG V3和KIMI-K2去采用的,当然DP-SIG V4没有用。因为KIMI-K2也用了,KIMI的同学们认为,MLA如果在全注意力这样的一个scope内部,大家觉得至少还是一个可以接受的形式,或者说没有必要去搭动的形式,所以说K3还是采用了跟K2一样的这样的一个形式然后在这个MLY的基础上呢增加了一个Gated这样的一个操作然后Gated的Tension呢最早应该是Tamen团队刚开始去用的然后从签问这个团队的标题也可以看出来Gatee的Attention当时主要是解决的哪些问题比如说这个Long Linear Nenality然后Gatee的Attention可以带来额外的一个计算的一个强度然后Sparcity和Attention Think Free然后这个东西可能并不是那么显然这个就得具体看它的一个但是whatever我觉得DELTA的参设大家最buy in的一个点就是它的一个训练稳定性,而且这个训练稳定性它是一个我觉得是一个被广泛验证过的这样的一个形式大家可以从前面这个现在图里可以去看到对于一个这个Pretrain的RUN而言我们还是希望它越有越好从模型能力上如果不是最优但也没有关系因为模型的能力其实本质上最主要的因素是模型的参数大小所以说好一点差一点它都不如稳定性也要重要因为如果稳定性不好的话它会带来很多麻烦的问题甚至比较大的问题就是
[35:00] 整个Rounder迅崩了然后你前面整个的这个前面整个的Trypoint都废掉了这个其实对于这个对我觉得对于任何团队而言都是不可以接受的所以说如果说一个方法能比较有效的去提升模型的稳定性这个还是一个大家比较愿意采用的一个技术吧然后前面的GateAltentment的这个前面三应该是对前面三应该是没有用后来的这个后来的Chemmin Next包括Chemmin 3.5,3.6应该都采用了这样的一个架构,虽然它会带来一定的额外的计算开腰,但是它会对模型的稳定性会带来特别大的一个好处。然后这个是之前Chemmin团队的一个工作,Chemmin是在这个GQA上引入的嘛。把GateT的Tenient这样的稳定性的方式引入到MLA当中,这样的话它本身也不会破坏MLA本身的推理性质,可以提升模型的训练稳定性。为什么V4没有再继续演用MLA了呀对因为他们有别的东西了嘛你觉得MLA在未来还会成为一个共识吗因为我记得卢弗利之前跟我说过他觉得在Agent时代MLA应该会被替代你觉得MLA在未来会成为共识吗我们相同技术相讲,MLA它本身就是MQA的一个增加的形式,所以说MLA其实本质上并没有带来新的东西,它只是一个更好的水道。大家其实没有发现的一点,就是如果大家想把MLA用好的话,它其实想达到相同的一个计算效果,它其实会增加更多的腾认的计算去弥补这方面的一个损失。所以说我个人认为就是MLA主要拿到的收益其实是可以被更好的这个GQA的这个。参数设计基本上是可以拿到绝大多数的收益的为什么DeepSeek没有继续引用MLA啊对因为MLA这样的一个转化形式因为DeepSickV4它后面主要推Sparth对Sparth跟MLA它其实不是一个百分之百兼容的东西尤其是在这个在prefail阶段对而且他们其实是用了这个MLA的等价的MQA形式因为从从数学上来讲MLA它本质上就是一个大号的MQA所以DeepSickV4用的是一个大号的MQA我觉得本质上区别不是很大的罗芬利当时是在VR Flash里面采取的是MTP我觉得MLA对Chat来说是一个优秀的模型结构但是他觉得不那么适合Asian的范式MLA在设计之初为了达到很好的仿存和计算的比例在当时的H系列芯片上实现其不浪费算力又打破仿存瓶颈是在这个架构下设计的若发现计算剩余的实在太多了他觉得MTP能够更有效的能够利用起来对这个其实是一个比较reasonable的一个点就是MLA在推理阶段他的计算其实是大大浪费掉的其实从他的计算是远大于他实际的这个建模能力的对所以说对于计算而言的话他这块是有一定的浪费罗弗利可能主要讨论点就是这种计算模式他跟MTP的收益他不是正教的甚至他可能是互相缓冲的因为MTP本质上就是用更多的token同时去计算这样一个条件下,然后逐渐往这个ComputeBunds的方向去推。所以说对于MLA和MTP的加速比会大大减小。我觉得它从来也没有是公式它只是一个选择OK但KCM起码还选择继续沿用的是MLAOK我觉得K3是reasonable的因为K2当时主要是followDeepSig他们当时的选择是先不做模型架构的创新先把结果跑出来对然后就是说然后如果从K2到K3的话这块我觉得对于一个从工程或者说从组织管理上能跑的东西就不要动就如果MLA它不是一个特别大的问题那可能就暂时不会动但我觉得未来也不一定我觉得这块它我觉得是一个比较暂态的一个状态当然了MLA也不是这个没有好处嘛所以说我觉得这个都快好点所以它是加强了MLOA的可控性对Gate它主要是提升MLOA本身的训练问题性这块跟MLOA是正交的就是任何处理探测其实都可以用的好的我们现在讲到2.2对吧对2.2就是Attention ResidualAttention Residual其实当时还挺火的但是其实如果从Follow Attention Residual这样的一个研究脉络来讲的话我反而会认为Hyper Connection我觉得是一个相当好的一个工作Heper Connection 是很早以前Seed 团队去提出的对这块主要讨论的就是在一个比较深度的模型当中的一个深层到浅层的一个连接方式如果我们再仔细去考虑问题的话因为它叫attention recision这个本质上跟ResNet其实都有一个比较深刻的一个连接关系RestNet它本身解决的就是这个模型能力在这个模型参入增长的情况下,它至少可以达到一个不退化的一个效果,包括从稳定性角度它其实也是对或者对它其实从无论是从模型的
[40:00] 在稳定性和模型能力上,RESNET本质上都会比之前的一些工作有本质性的提升,不过这个大家都很熟悉了。然后大家其实没有注意到的是,RESNET它其实是有两个版本的,它一个是CVPR的版本,然后一个是ICCV的版本。其实在RESNET那个时代,凯明就已经讨论过就是Pre-Learn-Norm和Post-Learn-Norm和训练稳定性的这样的一个关系了。然后这个其实也可以追溯到比如在BERT时代,就是BERT时代它其实不太大,大家还是会更常用PostLilernum大家在Bird时代会觉得PostLilernum它的结果可能会稍微好一些但是在模型增大的效果在模型逐渐增大的情况下大家会发现PostLilernum它有T度消失的问题或者说有训练不够稳定的问题所以大家后面就会逐渐的去采取Prelilernum对这样的一个残差连接的手段然后TensureCitual它其实之前苏建林讨论过这样的观点就是TensureCitual它绝对不是Prelernum到另外一个Lilernum摆放方式这样的话它其实这个风险是很大的因为它会有如果你一旦触及了Postelianorm之前的问题的话对,整个Dodrun大家肯定是不敢上的所以说TenryZero当时强调的就是它一定是PreliaNorm一个超级就是它至少是可以退化到PreliaNorm它严格的是比PreliaNorm更强的一个结果然后这块主要就是简单讨论一下,Residual这条研究线,这之前大概是怎么来的HIP Connection 我觉得这个工作是相当有意思的 其实我觉得无论是这个Tipsick后来做的改进也好和Citro也好本身都是从这盘工作来的 它主要讨论的一个点就是我们在PreliairNum的基础上如何去增加模型残杀的容量,从而去提升模型能力的一个表达能力。当然了,我之前也跟HyperConnection一座的同学交流过,我觉得这个工作本身从技术上还是很好的。但是他有一个最大的问题就是他paper写的太抽象了 不太容易读Hyper Connection我觉得本质上就可以说一句话我们在resigual的分支上去用比模型hidden state更大的一个容量然后来去表示模型在模型推理深度上的一个状态所以说如果我们有更大的容量它一定是有更好的一个效果的我觉得Hyper Connection它其实我觉得从思想上是相当简洁的但是这个paper可能相对复杂了一点所以说当时这个工作其实没有出圈可能只是一个比较对大家做架构或者说技术层面的一些同学去了解的MHC可能就比HC本身要活了很多当然我觉得最重要的原因还是当时MHC是DeepSigate的我觉得可能没有别的原因所以说在HyperConnection之后的话大家会尝试去从模型本身的一个连接方式来讲去提升模型的能力因为从HyperConnection包括Alternational Residual它一个比较好的点就是它对于推理来说基本是免费的就是说在模型的Inference阶段它其实几乎不会增加任何的推理开销它就可以拿到对更好的一个模型结果这个其实是大家这个喜闻乐见的对因为如果一旦涉及到对一旦涉及到我们通过更慢的一个实现也好更慢的模型架构设计也好取得模型更好的表片那这块就带来一个自然的随道就是我为什么不能去扩更大的size这样还简单一些所以说一切比如说通过更慢的模型实现的去提升模型效果的话其实都是会被fully questioned的或者甚至说对于一些保守的或者说不是自己提的可能大家就不愿意去用对于这种模型设计它可能在推理阶段是几乎免费的这样的话大家上的时候没有什么压力而且它其实是和这个模型参数本身的提倡它其实并不是一个中央的一个状态对然后hyperconnection最下维度的话其实还有一个比较绕不过的就是desnetdesnet这个是一个更早的一个工作了就是他是对他是黄高老师在那个resnet之后他其实是一个连接方式desnet其实和tennerresidual他其实在思想上一个是一个相当密切的一个方式对只不过在desnet时代他其实是因为residual他其实只是一个层和层之间的一个连接方式但desnet他其实是就是在深层要去看这个所有浅层的状态然后再把它聚合起来的这样的一个方式因为那个时代其实没有Etherment,或者说大家也没有过度重视Etherment本身的一个能力所以DeathNet里边主要是一个大的linear来去把之前所有的HiddenSight聚合到一起的然后到Atlanta时代去的话,其实Defnet它的实现本身是不快的因为它的中间对于连接方面的它会带来一些大量的额外的计算但是到了Atlanta时代的话,大家会发现我们可以把Defnet里边一些比较highweight的部件然后变成更lightweight的部件然后这样的话就诞生了altenture residual这样的一个工作altenture residual它最大的优势就是它其实比dansnet它是一个更对它其实一个更efficient的架口我们可以通过一些这个更深层色的infra code design对比如说用block attention的方式去捷偶掉这个模型的深度对因为如果只是全注意力的话它上层会跟底下所有层来去进行交互这个其实也是这个之前的
[45:00] 一个比较大的问题就是模型越深它这块的overhead其实越不够务略然后block attention的话在这块做了一个解偶所以说它整体一方面是tension它本身的计算比较lightweight然后第二方面就是它解偶的深度所以最后总的看起来它其实就一个比较灵巧但是一个能揭示的去提升模型能力这样的一个组件然后这块它们对这块可以看一些这个skilling的一个结果就block对block attention residual它因为它解偶的深度它是严格来说表达能力肯定是不如付tension residual好的但是这块大家Claim的点就是它其实并没有损失太多能力而且对于Maisline来说它是一个比较显著的一个状态然后Tenry C这块应该主要就是上一个技术paper里讲的,然后K3这块应该没有做太多特殊的处理。然后这块大概就是这样的一个情况。你刚才讲的这几个,你觉得哪个创新性是最强的?其实我更喜欢DASNAT和Kyber Connection拜拜因为DenseNet它是一个相当早的工作,因为在那个时代大家考虑连接的问题,我觉得本质上它在ReCitial考虑的问题,其实DenseNet都考虑到了,只不过当时没有Attention而已。然后HyperConnection的话,其实它相当于是在Transformer时代重新把这个东西带了回来,然后让大家在连接方式上重新去讨论如何有一个更强的连接方式,然后从而去提升模型的性能。我觉得后面的工作当然会有一些CodeDesign或者说有一些模型稳定性的问题,但我觉得大的框架其实是之前的工作已经定好了。OK然后M1应该是年初的,英伟达他们一个团队去提出的。我觉得这块,我觉得一个比较大的好处就是,包括大家如果熟悉DeepSyc v3的同学其实都知道,训练M1无论从模型的稳定性或者训练方式,包括从音范上,它其实就是一个很大的挑战的。然后最大的挑战就是MOE的AutoAu Dispatch,其实在EP的情况下,它的overhead是相当大的,也就是为了解决这个问题,然后我们不得不引入DPP这样一个比较高优化的通信库的方式,从而去降低AutoAu的这样的一个开销。包括其实不同的AutoAu的不公的MOE的设计架架方式,它不仅影响了模型架架本身,它甚至影响了底层不同的Infra的一些设计选行。这个之后后面会在这个Infra那块会做一个更多的讨论。但是Latant的MOE它其实本质上的东西就在于说我们是否可以把这个AutoAu Dispatch这块的开销来去减小。因为AutoAu Dispatch这块的话,我们需要把这个Hidden State分发到各个专家卡上,而且这个通信量它是会随着这个Expert激活的数量和这个。这个模型黑暗色的大小来去并行的去增长的对然后雷特的M1它的思想就是我们是否可以把这个把通信量减少的同时来去保持模型的这样的一个表达能力然后Litent MOE的方式就是我们把Dispatch的这样的一个Hidden State减小它可能减少2倍减少4倍这样的一个量当然了如果我们直接去减少它的Hidden Dimension它后面的模型的这个MOE的参数量可能就会随之增长为了去弥补这个Litent Dimension减小的一个参数量的话这样然后这里边就有两种方式第一种方式就是提升MFN Intermediate Dimension就是通过这个提升MFN本身的一个参数量然后把之前这样的那部分弥补回来这是一种方式另一种方式就是我们去进一步去把模型拆碎这样的话我们去用对我们去用更多的expert和更多的激活然后来去弥补这个这个参数量的这样的一个减少然后最后其实我们可以看起来当然在 Inveida这个paper里它其实结果是更好的其实总的来说就是一句话就是如果一个恰当设计的Latant MOE的一个configuration它其实是可以完全保持这个standard MOE的这样的一个结果的也就是说我们可以在这个模型能力完全相懂甚至还能好一点的一个context底下然后来去减少模型的这个latant减少模型的一个通信开枪而且通信开销其实是在训练和推理中是不一样的训练因为我们主要优化的是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控制住从而提升模型整体训练的一个问题所以这2-long don't read就是很简单就是一般来说就是模型在模型架构的设计的当中如果你不得不把两个矩阵连程拆开来写而不适合背到一起的话然后这个思想其实在对一个是在MLA里有个设计然后其实这块的Latant MOE其实也是类似道理归根结底就是Latant MOE我是先把这个模型通过一个模型的Head State通过一个Linear Projection把它压到一个DV的状态然后我们再这个linear projection的基础上然后来去进行购买的一些计算然后当然了对于FFN来说第一个计算当然也是一个linear projection所以这块其实就会出现两个linear projection连成的情况所以这块我们需要一个RMSNOM来去控制它OK然后下边就是这个C2GLOU这个设计其实也是一个大家看起来可能对没有那么直观的一个东西然后这个东西其实也跟之前的一些设计是有关系的因为大家其实会发现对于大模型训练来说的话就FFN这块的MLP它其实中间的Heading Set是一个特别容易activation explode的这样的一个状态而且这个东西一个是跟优化器有关另一个就是跟模型的精度有关就在模型精度更低的情况下中间的这个Hidden State更容易出现Outline然后为了解决这个问题呢然后GPT OSS其实刚开始采用了一个特别简单的状态就是把最简单的Sviglue,就是没有邦迪的那块,直接通过一个Clip,然后控制,比如说我们设一个Clip的值,比如说5到10,然后我就把它Clip到这样的一个程度,这样的话就是可以从数据上比较严格的可以把这个它的上限控制住,然后Clip它是一个比较粗暴的状态,然后你如果把这个Hard Clip而变成soft clip,然后你就会比较自然得到tang-diteh这样的一个算子,因为tang-diteh它somo号就是一个soft clip,如果你指定一个下线指定的上级,它可以用一个比较平滑的方式,然后逼近你希望的一个设定上级,所以从这个角度上来讲,我就可以理解为一个clip的升级版,但升级版具体在模型的表达能力上有多大的影响,我觉得这个是而且这个肯定是需要这个具体的实验来去证明的,但whatever,我觉得soft clip它还是一个比较安全的一个做法,从swit glue开始,然后首先把一个比较自由的那个linear projection,然后改成了一个tangeta h bondi的一个状态,然后另一块的话就是switch,因为switchLU它前面就是一个linear的一个结果,然后再加一个swit glue的一个结果嘛,这个switch我们又可以拆成这个sigmoid和一个linear projection,当然这块它是一个共享位置的一个状态所以C2GEL相当于是你把我把所有这个中间可能出现unbounded的一个环节然后把它通过一个tangularh的上下界放缩然后来去bund住这样的话就可以把整个mlp中间的一个激活得到一个严格的数学上界然后这样会可以用于保持模型的训练委内心当然了这块我觉得可能还有一些别的concern比如说我们发现其实如果用命的话它其实是会更容易出现Altolair的你控制中间的激活值总不是一个比较错的一个现象当然如果我说命更容易来Altolair这个苏建林一定会反对他肯定会说对于任何优化器来说它都一定会出现Altolair因为你从模型架构上是控制不了的所以说如果想严格控制的方法它一定是直接从模型架构下手这门苏简单跟你观点不一样这个他没有说,但我猜到他会这么说。因为这个其实之前在Kimi K2的Mion Clip里也做过类似的考论,大家如果之前对Kimi K2或者Mion Lite,大家如果记得的话,当时就会说,因为用了没有油画器,所以QK Logics会更容易去爆炸。所以Mion Lite他们采用了一种对于QK的一个比较特化的处理方式,然后来去压制模型的Outlier。然后在那个时间点,大家就问嘛,说为什么?为什么我们之前用Adam训练的不效价这个东西,为什么之前的QTLogic都很稳就不需要额外的处理,但是Milk为什么要特殊处理?当然苏彦琳就是这么回复的,他就说从严格来说,Adam也不是完全稳定的,然后当时DivTikV3可能 somehow也有一些不稳定的现象,当然这个并没有影响模型最终的结果。他当时在对Milk的观点就是,如果说在Milk信念里有可能出现了一个sclow现象,他严格来说就是容易出现的,只不过你可能出现的早晚问题,所以说为了严格的限制这样这个模型的行为,还是从这个从模型架构本身去做限制是一个更本质的方案,他当时是这样一个观点。所以说这块他肯定也是这个相同的观点,就是我们为什么要做的?不直接在architect上做一些改变然后让它整体把邦地都限制住就完事了也不需要去纠结更复杂的优化的细节其实我觉得是一个道理,所以我觉得他应该还会这么说那又是对于K2的一个沿用对吧
[55:00] 对对对这块相比KR没有做太多的改进 没有当时比较严重的问题就是它其实控制不住这个对控制不住中间activation outlier 更早的一个版本它是更粗方吧它当时连VDK都没有价所以说这个Molite比较率先的就是把VDK这样的一个因素然后是首先引入到这个比较大规模的模型训练里然后这样的话其实在这个更长的run里边是可以保持的另外在KMK2,它就在wait decay的命运技术上额外额外搞了一个QK Clip的一个方式,其实这两个加起来是一个,对,就是Kimi团队在这个优化器上一个比较完整的工作。当然现在其实大家用Mule的方式比较多了,但是大家解决的方式不太一样。比如说你用MLA,你就没有办法去加QK GNOME,因为QK GNOME它是严格可以限制的QK这块的一个边界的嘛。所以说为了去适配MLA和Mule的一个结合,所以说当时Kimi K2引入了这个QK Clip这样的一个操作。当然大家可以注意到比如说DeepSake V4,然后包括Syp1那些,他们应该都是用了没有然后在命的基础上,因为他们又都是用的GQA,没有用MLP,所以直接用cocanom,它其实本质上是一个更简单的办法,就是尝试去控制命带来额外的outlier,outlier在cocanipal更容易出现的,它也一定会在MLP这块出现,相当于采取了不同的方式,cocanipal通过clip也好,normalization也好然后把它限制住,然后在底下MLP这块的话,大家会用一些比较更lightweight的手段,然后Kimi现在就是通过这个用设计的一个结果函数把它放得住大概就是这样的一个思想家然后Quantile Balancing的话,这个没有发什么论文,是苏建林在他自己的博客里去讲的然后Quantile Balancing的话,他主要是可以follow到就之前的这个Lost Free的routing的方式它主要的控制方法就是它只通过一个BIOS而不是通过一个偏整体的Loss控制方式来去解决模型Expert负载均衡的问题Dots loss free大家比较奇怪的一个问题就是它这样的一个BIOS的变量因为这个BIOS的变量它直接决定了每个Token它选哪些Expert但这个更新方式 somehow是有些Hawk的就是它采取了一个比较启发式的更新方案你要去做BIOS的更新然后这块的话一个问题就是它这个东西它其实没有一个比较严格的一个数学的一个收点比较惹令一个就是它其实容易和这个主模型的更新大家有个感觉就是可能没有那么这个偶合但这个形式还是本身还是可以work的对还不错的就是在整体work不错的情况下的话其实当时loss free有几个问题可能是没有完全解决的最主要的问题就是如果在使用loss free的时候呢大家可能会采取模型最底下几层一层或者三层然后都把m1去掉的一个方案对Lost Thread这样的一个控制方案对于底层的模型来说它做Work的不是很好正是Veluxpress没有做整体的扣定材所以它可能会采取一些别的方式然后去弥补模型在大规模训练中碰到的一些问题然后Quantial Balancing其实是主要是尝试用一个更Principal的一个思想然后来去解决模型推理的一个模型安模液负载稳定性这样的一个问题它本身Loss Free的update 方式它肯定是经过大量的调整之后得到一个还不错的方案所以它本质上也很简单,如果你某个专家的你进货的多了,然后就把BIOS往下砍一点如果每个进货的少了,就往上加一点,然后之前的Loss Free是一个比较启发式的方案去做对,然后这个Kimi团队呢,用更principle的一个方案,就是我们能不能直接通过一个这个限制的方式,直接推导出来就是这个BIAS,它应该是长什么样的,答案就是这个是可以被推出来的,而且推出来的具体的方式也跟之前的expert choice有一定的关系。本身就是一个让模型可以负债均衡的方案然后他博客里又写到了为了去避免信息泄漏也就是说我们不能让任意一个token然后来去获得其他token的一个信息所以说这个beta并不会在当前step使用而是会在下一步去使用然后这个是中间contail balance的这样的一个细节苏电林博克里其实就主要提到的一个优点就是首先它其实它不需要调参数因为loss free它是有一个list learning rate的一个更新的方式的这样的话它其实少了一个参数整体的看起来会更加principle一些然后第二个优点就是它其实对于负载均衡balance它其实是一个更优的一个能力然后它这块的博客就会贴出一个图对于第一层而言就因为我其实我刚刚也提到为了这个兼容这个modelLoss-free balance之前大家会把前几层搞成Dance不用MOE这样的方法然后把去把这个东西去规避掉然后如果说对于这种QB这种方式的话其实就没有必要去规避这样的一个问题了其实它其实就可以直接把第一层变得Balance这个其实可以发现前底层用Dance它其实是一个对它其实并不是一个groundshows上一定要去这么去做的一个方法
[60:00] 而是它其实在Loss Free的这样的一框材底下不得不去采用的一个方式其实如果你不采用Loss Free你直接就采用加辅助Loss的方案比如说千万Moy的工作它其实就是采用直接求Loss的方案对第一层也会没有问题所以说这块的话它主要就是可以处理到之前Loss Free一些比较失效的一些情况当然了他伯克里也提到如果本来S3SJD就比较Work的情况下QB它也是比较Work的而且他伯克里也可以证明有比较正常的情况它其实是可以推出来说如果我们不采用这个直接去均衡而去采用一些梯度更新的方案的话它其实是可以和Loss Free做到一个相当等价的数学形式然后这块其实还有一个细节是之前的伯克里没有去提及的简单来说就是我们为了去在整个一个bash也因为现在大家大猛行训练一个bash会特别大比如说4million可能都会比较小可能到几十million这样的一个量级就特别需要在几十million的token之间恰讨取到在一个比例的位数也就是说如果对于一个精确的计算的话我们需要把所有token的所有token的激活情况都存下来其实这个是相当heavy的然后当时在博客里提出了一个方案他采取的方案是每个GPU都去做一个local的分位数计算然后再把不同GPU的分位数计算也不一定是不同GPU了反正就是你得把一个大的batch切碎然后在一个小的batch里然后去求分位数然后这个分位数最后再做一个pooling然后KiminK3这个paper其实是有一些不太一样的一个变化它并不是按token去切chunk的,当然也有可能是我理解错的它其实是对这个模型的在直语切一个chunk也就是说比如说对于SIGMOID的介绍而言,它一定是0到1之间的所以说我们就可以在0到1或者说-1到1这样的一个趋向范围内,然后切成n个桶,然后在这个桶里边去进行histogram的一个统计,然后这样的一个统计值,这样的话它有个好处,它可以是一个常数量长数的存储大小的一个就可以做的一个计算而且它的计算代价会比较补速的时间要高效很多而且它可以比较好的去处理在大规模的BPEP的这样的一个分布式的架构底下是一个比较容易扩展的一个状态然后这个其实是相当于K3后来放出来之前在博客里没有去详细讨论的一个技术这个是其实对QB的一个比较必要的一个实验方式规格解体就是奶油的实验它基本上是不可行的所以必须用一些比如公式上可行的方式去把这个比较精确的解答出来然后到2.4了那因为这Vision这块其实没啥好说的它主要讨论的一个点就是是否有必要就用一个已有的Vision Encoder去做这个VITVision Encoder的一个数字化用已有的VIT的话当然它用已有的Vision Encoder比如说用Sigleaf 2这样也比较大规模训练的一个Vision Encoder它的好处就是它你熟练的会比较快但是这个Kimik3他中间讨论的一个问题就是如果说直接用这个Signalip Initialize的话它的这个模型的不稳定性会比直接NativeTrain它是要来的大的也不一定是模型不稳定性的因为不稳定它是一个比较相对甚至它不是一个严格被定义的东西只是大家可能会一般会去看GradientNorm这样的一个分布然后中间有一些东西是大家比较concern的比如说它的坚持多不多然后甚至说它本身Norm大不大这个团队会发现如果说我们直接FrontScrash训练可能会多用一些算力就是它的最后的结果它是不会有损的如果我们经过恰巧的训练它不会带来更差的结果甚至可能会带来差不多甚至更好的结果对第二个它主要可能有点就是原模型会带来一个更好的兼容性那就会体现在这个gradient的norm会更加稳定我觉得其实可能有一个类似的观察就是CGLEAP它其实是用ADAM来去训练的之前大家其实也讨论过一个比较相关的话题就是用ADAM训练的模型是否能用没有去反定然后反过来用没有去训练的模型可以使用animal去版定当然最后的结论就是肯定是比较原生的方式它肯定是最好的当然用别的方式的话如果想达到一样好可能就得做一些处理或者说它是有一些限制所以说可能对于这个KIMI K3而言,他们是希望去采用一个全M用的一个优化方式,这样的话对于模型整体的这个训练的这个稳定性也好,它的兼容性也好,是一个更优的状态。说到这里我们倒会去讲一下最早那个线性注意力机制的问题吧为什么K3它用的是纯线性注意力机制它没有用任何的spot attention就是线性注意力全注意力和这个Sparse的Tension你可以3选1和3选2就是为什么不用Sparse的Tension我们就会带来一个点为什么要用用了会有什么好处或者说会有什么问题这个其实一方面是跟模型架构有关另一方面其实也跟这个模型它每代这个这个GPU硬件的Fature有关比如说这个DeepSick 3.2那种,DeepSick Sparse一个是这个3.2用的,一个是那个GLM5,也用了DeepSick Sparse这样一个架构。DeepSick Sparse其实到最后在Decode里边其实加速是特别特别小的,原因就在于说,就Sparse求Index这一步它是相当昂贵的,而且在Blackwell的硬件的情况下,越先进的硬件它其实这个overhead是越大的,甚至其实在Decode当中,这种Sphart attention的一个方案,它其实甚至呢,跟这个
[65:00] Botention并不会带来一个显著的加速。为了解决这个问题的话,当时GLM团队做了一个工作叫Index Cache,他当时的做法就是把这个球解index就是球解哪一部分哪些token需要算了才是这样的一个竞争操作然后把不同层之间共享了起来就比如说每四层每八层然后做一个共享只要用这样的方法它其实才可以比较有效的去减小这个Sparse本身带来的开销只有Sparse Attention本身开销足够小的情况下其实才能带来一些比较可观的一个算法的上的一个手艺然后Sparse Attention这块我们也做了一些相关的东西也大概是一个类似的结论当然我们做的更极端了我们在优客的价格上直接去Library Sparse Attention的话因为我们之前的KBcache是once的,所以我们当时采取的方案是直接把Sparse Intex这部也做成once,也就是说我们把每层的Intex开销直接分摊到所有层上,这样的话其实那个开销就会特别特别小,这样的话我们才能吃到Sparse Tension本身的一个计算收益。对,然后我们再回到KBK3,为什么它不去采用?第一个就是我们认为说,就是每层都用Sparse Tension这样一个比较简易的方案,它其实在BlackWire上它的收益是特别特别小的。把多层的Sparse的一个结果然后来去跨层来进行复用然后跨层的方式呢其实比较简单的方式就是相邻的层去跨然后相应的层去跨层的话其实对于hybrid的程序就对于线性注意力和全注意力这样interleave的方式的话它其实并不是一个显然的,因为对于这种hybrid attention,对它不同负 attention,它并不是挨着的,它每个负 attention中间,它其实隔了很多个现役注意力的,所以说在隔很多层现役注意力的情况下,就是这种index share是否有效。加速比是否足够高,这个其实是相当快思想的然后其实还有一个问题就是Sparker retention它基本上是没有办法进行from scratch训练的Sparker retention大家现在一般采用的都是post train然后从负尔腾认进行转化的一个方式不排除KBK3可能未来会把已有的负尔腾认的部分然后来去进行这Sparter 吞噬转化当然如果他们用来MLA的话这个会更难一些所以说我觉得主要就两个原因,一个是想拿到实际加速比,其实对于这个Hybrid Tenshin来说是一个non-triple的东西,如果想拿实际加速比的话可能需要做更多的事情,第二个事情就是它跟Pretrain它并不是一个比较兼容的状态,所以说这个其实留一个接口之后再做也行。我刚才讲的这些不管是架构创建还是训练还是推理工程你觉得它中间有哪些trade off你有哪些许设我觉得hypertension它主要的trait off就是你要去调节这个现录励和全录役率的比例嘛,就你肯定比例越大,就是附的现录励比例越大,它肯定加速比较高嘛,但是如果你想达到一个偏无损的一个加速状态,一个比较无损的状态的同时想获得加速,3:1实验上是一个比较work的方案对这块其实就是一个主要的一个trait off它严格来说它肯定大个率是不会带来更前的表达能力的所以这块其实就是另一回事它其实跟hybrid的架构它其实是另一条线的只不过说如果如果你坚持不用hybrid那你可能就不得不采取一些别的方案我听到这里的感受是就是现在的模型训练好像没有一个巨大的所谓的范式创新但是他把之前很多的工作都融合起来然后再寻找一个可能的更有解我不知道这种感受对不对对我觉得其实问题不大我觉得不完全是技术的原因是为什么的就是因为大家现在都叫传送门但什么是传送门这个其实是其实是没有办法清晰定义的这个学校上还有个对应的概念就是泰修斯之船就是你刚开始的2017年这个船刚开始行驶的时候是川斯佛门但是这个船刚开始是怎么拼起来的它是Attention加Residual这些东西或者说对这些东西拼起来包括Stack Layer这种方式它其实在Transformer之前它其实也并不是一个全新的概念所以说这个船刚建起来的时候我们认为Transformer是个Miles Stone但是这个船已经行驶了8年9年了在这个船慢慢行驶的过程中我们可能会把慢慢的把某些部分换了某些部分换了然后其实我们现在看到2026年其实跟Transformer已经你是否还把这个东西叫做传统文当然这个是哲学上的一个问题但是其实从现在大家来看的话大家还是会叫但是我觉得如果说历史的走向如果有些不同的变化的话可能也就不叫了我们上面讲的这些你觉得总体来说是一个什么样的工作我觉得这个东西很难定义,因为首先它是一个偏综合性的工作,它严格来说,一般大家会把比较有创业性的单点突破会专门拿出来去做讨论。其实之前也考虑过,也之前也专门讨论过来。然后中间其实比较大的就几点。第一个就是注意力怎么设计,这个是一个点。第二个就是M1这块,有没有一些更好的设计。第三个是优化器,然后第四个可能就是中间的一些连接方式。Rossnet时代其实这些单拿出来它可能就是一个架构的对对我觉得在Rossnet时代它肯定是这样的就但是其实在Transformer的时代它可能并不是这样的但是
[70:00] 你可能你把这个东西综合起来它可能你最后再把它跑出来它才有意义因为之前大家做架构比如说大家在这个ImageNet上跑这个足够高的它其实就是一个Miles Stone但是大家在这个时代你想把这个实际的东西跑出来你的要做的东西就特别特别多了你得做这个Skilling的验证然后你得把这个各个工程东西搞定你得把Data搞定把这些东西都搞定然后你把这个Paper或者说你把这个架构迈出来大家才会白印当然我就从研究方面我觉得我Personally我是不会太去关注的因为我觉得架构的验状我觉得是有严格的标准的或者说不需要把这些东西卡不来一起但是我觉得从非技术角度它现在是一个这样的状态所以上面是拼命这篇论文的一些亮点的突破对吧然后接下来还开始讲他的预训练和后训练的工作对我觉得架构方面相比于K2至少不一样也不一定叫创新有些叫创新有些比较偏调调的部分我觉得还是比之前大不一样的你为什么K2到K3变化这么大我觉得是个战略的问题其实K2在那个时间点他们也可以不一样只不过他们当时主要的重心是把模型跑出来所以在K2到K3这个中心他们有更多的时间去做了很多的优化调整我觉得主要是K2它本身是做得不错的包括K2大家可当时他们主要考虑的问题比如说怎么把面评论出来的有效的把模型skill上去,因为当时K2就是1 trillion,当时1 trillion的话还是比之前的,比如说比Deep Seek V3还是要大一些的,其实在那个时间应该也是一个比较相当大的一个模型的嘛,所以当时他们解决的是这样的一个问题,先把这个,先把Base Model整体的一个这个Priple Line做稳,而在这个稳的基础上的话,然后后来这个K3,然后再去追求一些这个更因求精的一个优化。你从上面的这些亮点工作就是这是最后的结果吗你反推你能看出这个团队的整体的状态是什么样的我觉得看怎么去定义对于不同团队定义是不一样的如果只是KIMI的这个架构团队或者是一训练团队我觉得没什么变化我觉得一直就是一个样但是对于整体公司而言还是有这个战略性的侧重的我觉得四重点就是K2当时QB的团队主要的诉求还是把这个Base Model这个东西做稳就是先把能力做出来结合然后先不去考虑这个更高的Efficiency也好更精益求精的创新也好当然了他们团队内部内部是一直在做的只不过你看是你什么时候这个量出来就是研究工作是一个更长期的工作他可能要看放在哪个模型里跟他一起结合对对对好的,那接下来我们是预示那个?对,接下来后面其实就是一些对因为Pretrain和Postrain的话,首先Postrain它是一个偏工程或者说偏具体的场景的一个东西,这块可能就会不会讲太多,因为它也没有写太多。然后Pretrain和Postrain的话,我觉得主要是一些经验性或者说一些knowhow的东西,主要创新可能也是前面多一些。对然后中间会有一些比较我觉得比较有意思可以讨论的点我觉得可以会我会专门拿出来去讨论后面主要的风格会是这样的的然后我们就一个一个来Skin in the law的话我觉得一个比较值得讨论的一眼就是用哪样的这个Learning Weight的策略因为Learning Weight的策略的话其实刚开始就是Mini CPM当时那个Paper提出的WSDMini CPM之后对吧QM3之前我觉得几乎可能所有团队都会都在用的WSD的一个优化器因为这个这样的一个优化器我们可以去学习Mini CPM当时他们是怎么去考虑这个问题简单来说就是WC考虑的一个问题就是如果我们如何能把这个data schedule和learning schedule结合起来首先Mini CFM刚开始讨论的问题就是WSD然后和Costent Decay是可以取得一个比较相近的结果比如说我们从一个更高的学习率到一个更低的学习率中间怎么去调配它对最后的结果其实影响是没有那么大的所以在这种情况下,mini CPM的团队工作的认为,中间具体的DK的方式对结果不是影响特别大的,既然具体DK的方式对于最后的结果影响没有那么大然后这块我们就可以跟DataPython一些联动的方案因为在实际训练中我们还是会发现包括在这个图里我们可以看到就是在DK阶段的话这个模型Loss的这个衰减速度还是比大的学习率稳步去跑它的LearnEvator的Loss的下降速度还是会大很多的所以说之前大家会认为Coldown这个阶段它其实是模型学习最快的一个阶段所以说Mini CFM当时采用的策略就是既然Coldown这个阶段我们为什么不把更多的更好的数据,然后去放在这个空档这个阶段,然后来去做训练。这样的话可能会取得比所有data均匀分布,然后所有delearn rate schedule也均匀分布,然后可以取得一个更好的效果。然后这个是当时这个mini cpm 包括WSD提出的这样的一个背景我觉得这个还是挺有意思的 我觉得一方面的话他讨论了一个non-travel的问题就是为什么我们要采取不同的这个learn rate decay的方式然后learn rate decay 一个是为什么要这么去做的吧 另一个就是他就 decay的不同阶段他具体承担什么样的一个raw然后他们利用这个不同learn rate decay阶段的一个行为 然后跟这个data的具体的策略 然后来去结合这样最后可以取得
[75:00] 更好的一个结果KMIK3这块他们讨论了一个不太一样的事情就是他们为什么不去用WSD的结果这个其实在WSD之后的一些paper里,也是可以去讨论到的因为WSD它除了这个可以用更好的data schedule它还有一个额外的好处就是就因为前面的learning rate它其实是不变化的既然它不去变化就是它跟你整体要训练的flops和token量是无关的因为它是无关的所以说我们可以更自由的去在这个模型训练的过程中去选取我们最后实际的config比如说我们刚开始可能预定的是要跑实际token但如果我们跑了实际token比如说这个训练策略改变了或者说公司的策略改变了或者说我们要更早的发版或者更晚发版然后WST这样的一个优化器呢我们就可以更自由的在中间来进行切换而不用在刚开始就把整个模型要讯的token量定死对,然后这个它其实是这样的一个好处,但是它其实带来的一个问题没有讨论就是我们虽然可以去任意的去选择你实际要跑的token数但是你实际的LearnedWit是和你要跑的token数是有关系的比如说你要设六一夫四,六一夫四作为一个比较稳定的一个schedule你跑10T可能6亿伏斯是最优的,你跑20T可能就是3亿伏斯是最优的,所以说从最优的角度考虑,任意去扩展偷克的时候,它可能并没有大家想的那么有效,然后这块这个KIMI K3的这个paper其实就讨论这个问题就是说 民意就WSD它实际的schedule它的调节的难度其实和VTK是一样的,而且它并不一定好去调整,任意去选取最后训练的token量,这个事情也不一定只有WSD才能做到,我们其实用别的方式也是可以做到的。这个PayPalette可以写到这些原因,其实他们可以选择一个更简单的方案,然后Consent Decay它的方案就是它其实更好调。就它只有两个变量一个就是你要跑多少token然后你要一个就是你的那个maximal learning rate具体是多少但是你如果wst的话它就其实就会多一个变量就是你要decay的这个比例具体是多少所以说从调三的角度来讲的话cocent decay是一个更容易去调三的一个方案所以说kimi k3他们在paper里就写到如果说他们是因为这个发现cocent decay它是更好的去能找到一个hyper parameter setting的话他们最后会采取一些Learn it decay的方式了而且这个其实是大家都用WSD的情况下一个不太一样的才听然后一个是基于一个不太一样的Lenrate schedule的策略然后当然了Keymington对比了从K2到K3然后整体的一个scaling efficiency首先K3比K2大了很多 从1T左右到了2.8T 总参数就是从1T到2.8T大了不到三倍吧然后激活量是从32.6B到1.04B,它其实是比3倍要更多的,其实从模型参数上毫无疑问,是比KMK2强很多的一个模型,然后中间它有一些别的一些config,当然这个主要是上面表的一个总结,最后他们团队给出了一个Skilling Load这样的一个结果,K3比K2最后的在Skilling Efficiency上是2.5倍的这样一个量,但是它从对于一个简单的DAS model,它的Skilling Efficiency是一个比较经典讨论的问题,它之前很多OpenAI的Skilling Efficiency,Skilling Lab,Skilling Lab,Skilling Lab,包括一些比较新的Skilling Lab,其实都讨论过这样的一个问题。当然这块其实比较注意的一点,就是大家其实也问过,说就是KMK2K3的这样的一个Skilling Behavior,是不是固定Data的?我记得他们的回答是应该不是,而Paper的意义应该没有直接写是不是,当然也可以理解,K3K2它用的Data肯定不可能是一样的嘛,所以我觉得这块大概的应该是有一个不一样的Data Recipe,这个整体的Skilling Efficient,它其实一个是综合了一个模型架构,也综合了一个模型的Recipe,Chain Recipe,然后再叠加上这个模型的这个数据特定之后总的一个结果然后总的结果作为一个大的一个综合的一个结果是比这个K2的要高了很多的OK然后接下来是这个长上晒文长上晒文的话DVK3是一个原生去支持E1MLE长上晒文的一个模型然后这块其实比较有意思的点就是位置编码如何去选取我们从刚开始比较传统的这个Transformer的架构来去做的话大家都会用Rope来去做位置编码但是如果用Rope的话它在这个长文扩展的时候它有个问题就是Rope的这个具体的一个参数是需要做调整的如果不做调整的话那么有效然后这个其实是肉苦时代大家一个经典的做法当然说如果现在如果你还是用一个全注意力或者说如果你不引入线性注意力的话这个策略不会有太大的改变也就是说你还是得去在不同的长度的setting来说来去调节不同ROPE的参数但是这个事情在这个混合模型里是可以改变的最早是这个Coreware团队的一个工作主要讲了这样的一个因素
[80:00] 他们的结论也很简单简单来说就是因为这个hybrid tension排布方式对于LinearTension来说它已经引入了这样的一个位置信息无论说你用Rope也好Rope加Slanding Window也好LinearTension也好就是在线性注意力的这样的一个阶段其实位置信息是已经被引入到的所以说如果在这个Setting下就是在HybridAttention的Setting下如果我们可以把ForeTension从Rope改成Nope也就是说在全注意力的情况下把位置编码去掉它其实是可以带来一个更好一个是可以带来更好的一个模型的表现是更容易扩展的也就是说Nope它是在模型扩敞的情况下不需要调整任何模型架构的参数就可以达到一个长沙沙文的这样的一个效果这个效果无疑是很优雅的因为我们会觉得模型架构的参数选择当然是跟具体的长度是没有关系的也没有任何的理论去支持说我们具体我们为什么要去不同的长度recipe下然后来去采取不一样的参数然后这种架构其实就可以有效的避免了这一点一个是刚开始我比较早的看到,然后可能看到第二天我就去浮现了一下,因为我当时看到就觉得特别有道理,然后我第二天浮现了一下,然后也很work,我当然觉得这个肯定在混合注意力的一个里边比较好的一个方式。对,我在会议里边还审道了一篇文章,当时我直接给了一个strong accept,我感觉我这几年可能都没有给过几个strong accept,因为我觉得这个确实是一个很有效,也是一个很优雅的解决方案。本质上它带来的是这个recency bias就是ROPE work最有限的点就是对它对short context的这个建模能力是特别有效的但是它其实对常文来说是没有帮助的甚至是有负面影响的对于某一些舆论观点会认为是肉朴在引入了常文的表现这个其实是错误的肉朴它并不带来任何的常文能力它甚至是损害常文能力所以说KiminK3会把肉朴在长上海门的富河腾圣这块直接下掉然后直接下到之后就会一个是如果你直接侧外推,直接侧外推它都会好很多如果用ROPE的话,你扩长度你需要调参数,如果你调了参数你不去训练,它那个结果其实是很差的所以说如果有动物你不用调参数,它的外推效果也很好,然后长沙海文的这个效果也没有任何问题,甚至还要更好,它其实是一个混合注意力的一个Condust,是一个相当优美的解决方案,所以说这个KIMI-K3也用了这样的一个解决方案。然后post training的话首先其实可以讨论的一个问题就是低阶段这个训练应该在什么阶段去引入然后这个其实大家采取的策略是不太一样的就比如说DeepTek V3他们是刚开始是原刹F8来去训练的然后DeepSick V4他们就直接用W4 A8来去做延伸训练的但是KIMI这块采取的策略不太一样他们是首先用高精度去训练然后在SFT阶段然后再把低精度的QAT引入进来的这样至少我就有两点折的讨论第一个就是从项目而言就抛开技术角度从整个项目的管理而言大规模的训练才会去更高精度肯定是一个更保险的方案因为它无论如何也不会错如果用高精度训练在大规模的Skilling中带来了其他问题的话而且这个东西更大规模的信念是很难就是提前被充分验证的特别精确的我觉得第一点就是从项目管理的角度的一个优势第二个就是从技术角度对吧我们是否有必要从刚开始就用低精度去念起码从我的时间而言应该也是没有必要的然后Kimi可能他们发现也是没有必要的也就是说对于低进度推力而言本身就是从from scratch刚开始就引入并不会带来任何模型能力的一个提升也就是说你WC18你在什么时候引入只要你过了一定量的训练它最后的结果可能都差不多所以在SFT阶段引入是一个更保险然后在技术上也不会带来额外损失的一个方式对然后RL这块的话因为RL其实也是对因为Kimi刚开始他其实对RL这块是一个因为他们其实从很早以前就比较重视RL这块所以说从KMI K1.5到K2.5他们其实一直在做一些比较持续的创新然后其实在K3这边也会比较充分的引入进来然后这些其实都是一些比较成熟的一些方案了这块就不太展开去讨论了然后4.1.3的话这块可以讨论一下OPTOPT刚开始也是董老师团队这边比较早去讨论的一个方式就是艳演员院的对然后B.ROM这个是郁贤做的郁贤去年也是清华特奖这个是他在董老师在艳演员院这边去做的然后其实OPT从刚开始就刚开始大家用起来和其实和后面大家实际在工程中用的方式不太一样,这个其实可以讨论一下就是OP刚开始的Motivation是什么?后来大家又是怎么做的?当时OP讨论的contest是蒸馏,蒸馏有两种,一个是黑盒蒸馏,黑盒蒸馏就是大家现在比较采取的方式,拿一个API,然后我们不知道模型内部的状态,我们也拿不到这个模型推理的logit,对于外界来说,这个模型它完全只是一个黑盒,我们只能拿到它的输入和输出,然后这个叫黑盒蒸馏。
[85:00] 然后白合蒸馏的话就是另一种蒸馏方式我们可以获取到这个模型本身然后我们也可以任意的去拿到这个模型推理的过程中我们想得到的任何的一个状态然后在这个场景下我们如何去做这个蒸馏然后我们是否可以再基于比黑合蒸馏更好的一个表现然后mini-LM当时采取方式就是反其他而行之,因为之前大家采取的方案就是让模型,让teater去生成答案,然后再把这个生成答案用sft的,用forwardkd的方式把它引入到student的模型里,然后mini-LM是反过来做的,也就是让学生去生成答案,然后让teater做一个美部的一个纠正,然后直观来讲的话其实就两种,一个是老师讲课,然后你把这个老师讲课的结果学进来,然后第二个就是你自己去做答案,自己去做题,自己去写中间推理过程,然后老师会把你中间推理哪里做的不对,然后给你指出来,然后告诉你怎么去做,这个叫reverse-scale,然后reverse-scale的话,后来Cinting Machine Lab另一个名字,就叫on policy distillation大家会意识到这个是一个比较有效的一个从蒸馏的角度是一个比较有效的方式就是说从我们不直接去学习模型的答案而是在student自己的推理过程中让教师模型逐步的去verify或者说去纠正学生模型的这样的一个推理的方式然后这个范式刚开始其实是为了这个蒸馏来去使用的无论是你做白盒的一些实验性的时候包括说从公司的角度你可以有一个Pro的版本可以有个Flash的版本然后Flash的版本你可以用OPD的方式然后来去蒸馏更大的模型的这样的一个结果然后从而去获得这个更好的一个表现你如果from scratch训练一个Flash的模型你可以比这个Flash的模型获得一个更好的表现从而在这个比较比较便宜的模型这档然后获得一个更好的竞争力这个是这个OPT刚开始的一个motivation但是其实后来大家更常用的一个方式不是去做蒸馏原因在于其实原因在于如果你想做蒸馏的话你至少得有一个大模型然后你再去训练一个小模型如果你自己训练自己的模型而言但如果说你想去蒸馏这个比如说蒸馏一些黑盒的模型这套方案是完全不可用的从公司或者说从这个项目策略上来讲如果我们不去基于一个大模型然后来去训练一个更快更小的一个小模型的话因为现在大家都不是这个setting大家都一般都是这个搞一个旗舰模型然后就完事了然后来去它作为inference服务然后在这个场景下的话就不存在大到小蒸馏的这样的一个行为了然后大家逐渐去采用的蒸馏的方式就是自己蒸馏自己然后为什么要自己蒸馏自己呢我觉得也我觉得还是两部分一个是非技术层面的一个是技术层面的我觉得从非技术层面的原因的话我觉得这个技术可以让这个整个这个post train team的管理也变得更加简单比如post train核板它其实是一个比较highway的一个东西因为Postrain它跟Postrain不一样Postrain我只要把数据合起来然后一块去干就完事了但大家一般Postrain的话会用一些更复杂或者一些更先进的一些训练策略而且这些策略可能会不太容易训练场可能会如果再直接去做核板的话可能会有一些难度所以说基于项目管理策略的话Unpolicy Distribution它其实就是一个比较好的策略能把整个Postrain的team的管理变得简化一些然后从技术角度的话比如说大家训RL它一般有不同的策略比如说你训Math然后如果你有些preference的一些需求你可能就会有一些reward model来去做然后如果你再想扩展这个RL别的能力你可能每个能力对于RL来说它的reward它都是一个独特的reward然后你如果想把所有的模型的所有的能力都搞到一块因为PostStream一般大家都会专项突破然后你想把直接专项模型的不同的reward直接拿进来一朝汇它其实是比properation的难度要大的我也不是说完全不可能还是有可能的但是OPD的话它就会变得很简单我们可以把不同的reward model或者说不同的RL范式然后简化成不同的模型然后简化成不同的模型这个事情就容易很多了因为对于RL策略或者说对于data来说它是一个高度移构的一个状态是一个高度统括的状态因为现在我们也不会为了不同的任务去专门设计不同的模型架构如果模型都长这样的话我们再做一个Multi-T-shirt的一个河板这个就会容易很多不过这个也不是K3首先去用的这个是一个大家现在比较wide-accepted的一个做法我印象的应该小米GLM应该大家现在都是这么去做的对 然后qualization刚刚讲过了然后draft model这块其实我觉得还是挺有意思的这块还是可以额外去有一些很延伸的工作的因为我觉得这块K3目前优化的不是很完善之前小米他们推出了一个能达到1000TPS的一个方案那个主要是用了两个技术一个就是太奥量团队可以高度融合不同阶段的一个算子然后这样的话其实它可以获得比传统的VLM推理方式强很多的这样的一个推理效率然后那个可能达到三四百TPS然后小米是基于太阳量团队的一个结果然后再加上基于太阳而退的一个结果然后再加上DFLASH这个投机推理带来的额外的加速比最后能带来一个
[90:00] 比原模型强很多的一个强很多的这样的一个推理速度然后这个其实主要的服务是对于一些成本可以付出更高的成本但是想拿到更强的一个推理速度的这一波用户去做的因为它本质上如果说你是为了整体的throughput的服务的话这个其实它的收益会小很多但是如果你是小bash size但是大的throughput的这套方案是会强很多的然后这样的话就是刨开Tile RT那方面的贡献然后最后就落到了如何去做更好的MTP或者说做更好的Draft Model优优独播剧场——YoYo Television Series Exclusive然后这块的话有一些有力气脉露的工作然后刚开始就是Ego3和MTPEgo3和MTP它其实它主要的方法就是因为刚开始Speculative Decoding提出的时候大家还是用一个没有关系的小模型然后来去Speculative比较大的模型然后这样的话它其实有一个问题就是你无法充分的去利用大模型中单的一些Hidden State如果说你可以利用大模型中间的Hidden-C的话你其实就可以把小模型做得更小或者说你在相同的参数底下然后你的接触率做得更高最后可以带来总的更强的一个推理效率然后MTP和Ego3然后它其实都是这样的一个思想当然MTP如果从from scratch的话它还有一些别的好处然后Difflash的话它其实会更有意思一些对因为它联系了传统的Language Model和训练比较火的Difflash Model这两条脉络然后通过Difflash这条线结合了起来对因为Difflash Model刚开始提出的时候这个大家主要的claim就是Difflash Model在这个单用户或者说Batch Size比较小的情况下可以获得比这个可以获得比传统的Language Model一个推理效率对但是deferred language model之前最大有两个问题第一个问题就是他如果from scratch他的训练的训练效率不够高他的整体的结果很难和传统的AR的language model想去PD 第二个问题就是他只能打throughput就是它只能打小batch size的throughput但是如果是多用户最后追求总的throughput的一个场景它其实Deflash当时主要统一了这样者试图去利用Deflash更快的一个推理方式然后进一步去优化MTP或者Draft Model这块的一个加速比最后可以得到一个更优的总的一个单用户的throughput当然了就是MTP这块其实是之前我跟陈俊就是Dflash那个同学也交流过他倒是提了一个点是对于整个模型是很重要的即使我们用Dflash这种更先进的Draft Model的策略它跟预训练的关系仍然是很大的也就是说对于Draft Model来说我们它是需要利用这个大模型的一定的这个推理能力的基础上然后再去使用Draft Model进一步的去扩大也就是说对于MTP来说MTP是需要给MTP提供一个接口,然后这个接口会对下游的Draft Model的提升会特别王主,这部分其实是需要在这个Draft Model的阶段就引入的当然了Draft Model也是需要做一些自己特化的处理的,比如说我们可以用一个KL loss 然后来去替代比较传统的NAS token prediction的auth这样的话,我可以在原model verify的过程中,它可以对的更齐这样的话可以进一步去提升Draft model接收的一个效率对这块,我觉得之后还会有一些更深层次的工作,我猜哈,因为这个肯定不是对于MTP的一个重点然后Homer RL task的话,它是一个比较specific,对于不同的任务来说,它有不同的具体的一些策略,我觉得这块的话只要看原文就好了然后接下来的一大块就是InfraInfra这块的话首先现在其实对于模型架构的设计来说关键的设计它是需要和Infra进行一些co-design的一个是Code Design,然后一个就是模型架构本身它会影响整体的Infra Trusher它本身的一个设计,然后这块包括跟DeepSick这一系列的Infra它是有一些设计上的区别的,这块我觉得也是一个比较有意思的一个点。的一个效率然后这块其实多的一个点就是KDA的这个CPKDA的CP是一个我觉得这个LinearTenship的CP其实是一个可以简单讨论一下的一个点因为比如说对于SlideWinnow或者说对于ForeTenship而言其实CP它其实从概念上是相当容易的因为比如说你对于ForeTenship来说比如说现在有些比较经典的算法比如说你可以用RainTenship或者说用ZegazagTenship因为Tenship它本身的这个计算模式是够简单的而且它很多地方是省不了的我至少会得把这个跨GPU的所有的KP cache都拿到一个GPU上然后来去做计算我觉得这块是一个相对来说比较简单的一个概念但是对于Linear Tension的CPU而言它的概念其实是一个更复杂的然后这个大的框架其实我们还是可以回到最经典的一个chunkwise recurrent就chunkwise recurrent首先我们都同意说chunkwise recurrent对于linear tangent来说是一个必备的算法然后对于一个正常的单机的一个
[95:00] 不开CP的一个训练场景来说Chunk Recon它其实就是两部分一个就是你可以拆成比如说比较小的16Tile或者64Tile的一个Chunk然后Chunk之间然后使用这个Dgrade的方式去计算然后Chunk内部的话可以用一些比较Parallel的方式去计算然后KDA也是这么做的然后KDA的那个Decade限制主要是解决这个Chunk内部的一个可以用Parallel计算的一些高效性然后这样的话其实对于单机的这个Linear Attraction来说就是一个Chunk内部用并行的方式去计算用串行的方式去计算这样的一个计算的Python但是呢对于CP来说我们就需要讨论它的一个linear tension比较有意思的一个范式就是它这个chunk本身是可以任意去拆分的也就是说不同的chunk的数字就比如说你想512个token一个chunk或者说8k token一个chunk它在数学上是完全等价的这个就跟早年一些比较拼借式的方案比如说有一些工作会尝试这个chunk之间都要用用Linear Tenshunk内部用Fort Tenshunk如果用这种策略的话它的这个Tenshunk的大小就跟你具体的模型的这个architecture design是有关的了但是纯Linear Tenshunk其实是无关的既然是无关的的话我们就可以对这个Tenshunk的层次做出一个比较任意的处理比如说对于单机来说它Tenshunk是一步去拆分的我们就这个16Tile去拆分然后16Tile内部用一个并行的方式去计算但是它其实并没有限制说你Tenshunk只能拆一次它的思想就是比如说我有一个1M特别长的一个Tenshunk然后我们可以这个我们拆我们可以拆成8K放一张卡8K放一张卡这样的话我们就构建了一个以大chunk为单元然后不同这Po之间然后采取低过计算这样的一个chunk的拆分方式然后我们拿到这个8K的这样的一个拆分方式之后我们可以在这个内部进一步去拆分就在LinearTension的时候我们没有任何的限制说一个chunk中间是如何去计算因为对于一个比较小的chunk而言这个parallel是一个比较优的实现但是如果我们拆chunk足够大的话我们可以采取这个chunk套chunk的方式然后来去进行寄算也就是说对于LinearTension的CP而言的话我们是做一个层次性的chunk我们首先是在不同机器上做一个chunk然后在一个机器内的话我们再在Kernel来过然后做一个chunk然后通过这样的一个双层chunk的形式然后组成一个对于LinearTension一个比较大的CP然后这个能够主要还是就来源于说就是chunkLinearTension的chunk可以任意拆分的一个特性然后这样的话可以带来就是LinearTension的一个CP的一个方案然后这个其实是对于这个FortTension不太一样的一个处理方式这个是可以讨论一下然后接下来是上面这个是CP或者说Kernel-Less的一个Infra的方案然后接下来的话其实就会讨论就是从这个分布式训练的一个角度然后我们如何去优化它的分布式的这样的一个方案然后这块的话我们后面就可以发现其实它跟DeepSick方案是稍微有些区别的,然后这个区别是主要是来源于不同MOE的一个架构的一个方式。然后首先的话5.2.1这部分,KIMI团队带来了一个GDPP进一步延伸的一个EP的一个计算方案。然后他们的主要的Claim的一点就是对于传统的EP,因为我们现在都用DropplusEP,DropplusEP就是对于每一个Token而言,我选哪个专家他是不受整体的一个约束的,就是我想选哪个选哪个。这样带来一个方案,我们汇总起来之后会发现不同的专家的负载是不一样的然后既然它是不一样的它就会带来一些问题第一个问题就是对于EP而言因为每个GPU它分到的投稿数不一样投稿数不一样的话它就会带来它的整体的执行时间不一样然后执行时间如果一旦不一样它就会互相等互相等就会浪费这个模型的会浪费GPU的算力这是第一个问题第二个问题就是如果我们不同的卡上的它的投稿数是不确定的然后对于GPU的通信来说它会额外多一个阶段就是我们首先是需要告诉所有GPU就是你要接受多少投稿所以基于这样的阶段的话传统的EP它严格来说当然不是一个最优的方案的如果完全为了Infra它最优的方案就是这个Dedrope的EP也就是说我每个token然后要去受到全局的一个影响然后受到一个全局的影响的情况下我们可以通过一系列的一个allocate的方式从模型的角度让每个expert都受到完全均匀的一个token然后通过模型的方式然后让它达到完全的balance完全理想的情况其实就是这样的所以说如果在infra的层面完全均衡然后是一个最优的话从Infra的策略就是我们努力把Infra从非自由岛上一个最优然后同时保持模型能力是不下降的因为如果DropToken的话大家现在都不会用因为它对于模型损失对模型能力损失还是相当明显的然后这个然后MNEP它就采取了一个我觉得是一个比较高端的一个方案它把模型的EP的方式变成了一个更动态的一个方式就是它是可以计算出比如说之前的一个经验的方案就是我比如说我有128个专家如果我们EP8的话可能每张卡放是6个专家的话它是一个比较静态的一个方式然后MWEP的话它采取的是一个动态性的方式就是它有一些冗余的专家然后通过这个额外冗余的专家的话然后它从数月上是可以证明说我存在一个策略可以使得就是我们只需要
[100:00] 增加一个小比例的荣誉专家就可以保证token数的完全对齐的,我感觉像是一个比较经典的数据结构与算法的一个问题,这个是可以证明到的,然后他们可以证明到这一点的话,他就可以得到一个结论,就是我们通过少量的荣誉专家就可以达到所有卡上都均分的这样的一个效果,然后具体如何去达到他们采取了一个online planning的方式,然后这样的话我们去提前去规划,哪些卡应该有哪些荣誉专家,然后在这种情况下可以达到不同的这个对不同卡上这个就从投根数的一个完全的一个均衡当然即使说你从卡的角度是均衡的它并不代表专家层面是均衡的因为这个算法它只是保证了所有每张卡对吧每张卡的这个它的这个所有的投根数是一定的但是它并不保证这个每个专家是一定的因为一张卡里有多个专家嘛如果说你还想保证这个每个专家的这个都是一定的那就没有办法了那你就只能采取这个有损的一个策略去优化这个可能如果大家是不希望的话这个上线可能就卡到这里找一些更优的一个处理方式这块是这个KIMI团队带来的一个比较有意思的一个创新接下来就是这块就Memory的Effinant Training我觉得这块比较有意思就首先他们带来了一个从软件工程的层面这个比较简单的一个方案就是我们可以去更细利度的去控制每个部件应该去采取activation还是去采取offloading的一个策略,然后这块不一样的一点就是KBK3它采取了大规模的offloading,把中间计算得到一个结果offloading到CPU上,然后这个其实是一个non-tribal的一个东西,因为理论上如果想满足offloading不拖慢模型的训练,它是有一定的条件的,你得保证CPU和GPU之间的通信它满足的某个不等式,这样你才有完全用计算overlap时候通信的一个,然后为了达到可以做offloading的话,然后Kimi Ketan他把所有可以offloading的东西都用FP8去存,这样他可以省一倍,省一倍他可能才能从,一个编辑然后跨到另一个编辑然后具体这个编辑怎么算这个就跟具体的这个卡具体的具体环境机群环境也跟具体的模型config是有关系的然后后面的话他一方面他们是需要去优化这个aturnal residual他本身的一个infra的关系的这个其实在aturnal residual的paper里其实也讨论过然后我觉得PP这块其实它我觉得一个是PP一个是那个通信的overlap的手段这个其实跟DeepSync是不太一样的一个方案因为首先比如从DV6v3的角度而言,它采取了两个不太一样的,至少是non-trival的一个一个就是这个比较细利度的MOE角度的overlapMOE角度的overlap就是因为首先就是MOE中间有两个通信嘛,有两个通信,一个是dispatch,一个是combine然后这两个通信它是overhead是比较大的,其实在这个blackware上它其实又不太一样,但是无论如何它是一个比较大的一个开销然后Dipsic V3的话它一个是在MOE的overlap这块它会拆的特别细然后具体的方式它就是会把这个MOE上一个batch的MOE的forward还有backward和下一个MOE的forward把它俩融合起来然后通过重排序计算的一个先后顺序从而达到把所有的大的dispatch和comband的计算然后这个Combin的Dispatch和Combin的通信都藏起来然后想达到这点的话其实是需要特别精细或者也特别复杂的一些软件工厂的一些优化的这个其实在这个MicroStone Core里边也讨论过这样的类似一个事情因为这个事情如果想做的足够好的话我们需要把这个所有的Forward和Barcode的计算从原子计算的层面就拆开然后是手工进行重新排布我觉得这个还是有一定的难度的然后另一个就是这个DPSYKV3采用了这个DOOPIP的策略也就是为了去缓解这个PV的气泡和这个不同的activation不均匀的方式然后他们去采取了DOOPIP的一个训练的一个PIPELINE的排布方式然后当然后面除了DOOPIP还有个DOOPIPV他们达到的效果是一样的对它从逻辑上会更简单一些起码从公开的他们写到的里边KIMIK3是没有采取采用这两个优化方式的一些别的方式然后第一个就是如何去隐藏通信这个就跟实际的模型架构的选新有关系因为KimiK3他采用了Latant MOE因为Latant MOE他本身是极大的降低了通信开销的所以说他在整个的计算开销里边他其实是减小了特别多的因为它的通信开销减小的特别多所以其实如果想把它overlap掉就会变得容易很多就是我们没有必要再去跟另一个batch的计算来去做overlap,我们可以采取这个一个batch内部更简单的overlap手段就可以把这个通信很好的隐藏掉,然后KimiKetsan他具体采用的方式是把这个MOE的前向和互相的通信跟sharedexpert的计算这个overlap在一起因为ShareGasper的现在质量多数都有嘛而且ShareGasper它是有一定的计算量的然后正是因为这个通信的开销减小了所以说它才能被shared expert的一个比较简单的方式去overlap掉,但是如果你用传统的MOE,它的同意开枪就会特别大,特别大的话你用shared expert的去overlap就很难overlap掉,所以说如果你shared expert overlap不掉的话,你就必须
[105:00] Chuyệt. Để cho nên được được những thông tin có thể được được. Các bạn có thể dùng một cách khác nhau và đều có thể dùng một cách khác nhau. Và có một cách khác nhau là một cách khác nhau là một cách khác nhau. Các bạn có thể dùng một cách khác nhau. Và trong cách khác nhau, chúng ta có thể dùng một cách khác nhau. nên là nó là một cách rất đẹp. Vì vậy, 如果 dupype, 或者 dupype vay, 这样的 PP 方式, 它其实不同 PP Rang 之间, 它相对还是比较对称的状态。 如果你用单向的 PP 的话, 它其实就不太对称, 然后不太对称的话, 就两种解决方式, 第一种就是让它变得对称。 第二个方法, 其实就是 Kimmy paper 里讨论到的, 我们可以把不均衡的方式 transfer 掉。 因为比较朴素的 PP 的话, 比如说前面的 PP Rang, 它会进入的更早, 它会积累的 bash就更多, 它的 activation 的压力就会越大, KMX3 采用的方式是 它把 memory 占用 比较大的一些 PP rank 然后直接让它存到 比较小的一个 PP rank 然后通过这种 也是比较 lightweight 的方式 然后去 推避了 更复杂的 DoPipe 的一个设计方式 Mewm thì sẽ có những điều đó để làm những điều đó, vì Mewm thì sẽ cần phải làm những điều đó để làm những điều đó để làm những điều đó. Vì vậy, khi có những điều đó là một số số số, thì có thể làm những điều đó để làm những điều đó, sau đó thì có thể làm những điều đó để làm những điều đó. Vì vậy, Adam thì có thể làm những điều đó để làm những điều đó, thì không thể làm những điều đó để làm những điều đó. nên là chúng ta sẽ làm những điều đó để cho những điều đó sẽ được làm những điều đó để cho những điều đó được đạt được. Và PP này cũng có thể là một cái gì đó. Đây là một cái gì đó là một cái gì đó. Còn khi làm VL Native Trayne đó, VL Token chỉ có một số đối tượng. Còn khi có một cái đối tượng này là một cái đối tượng. Và sau khi có một cái đối tượng này là một cái đối tượng. Còn khi có một cái đối tượng này là một cái đối tượng. Còn khi có một cái đối tượng này là một cái đối tượng. Điều này không có thể giúp đỡ, nhưng mà cũng có thể giúp đỡ. Nếu như chúng ta có thể nhìn vào một số thông tin của chúng ta Điều đó là phân tự nhiên, nó sẽ giảm ra một cách giảm, nó sẽ giảm ra một cách giảm. Và để phân tự nhiên, Phân tự nhiên, Phân tự nhiên là phân tự nhiên, Phân tự nhiên là phân tự nhiên, nó sẽ giảm ra một cách giảm ra một cách giảm ra một cách giảm ra. 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. Đói
[110:00] 如果他写出来在复线难吗我觉得Infra上的事情本质上没有什么难的因为它本身就是个高度确定性的东西我觉得所有Infra的事情都本质上它是确定性的东西但是你如果想自己提出来的话它就对你本身分析Profeeling的方式或者说对于你本身的组织密度或者说就是你团队氛围就是有比较高的一个要求但是你如果整个Infra的团队比较好你还是可以自己搞出来的但是你如果不行的话你就尝试去follow一些比较好的一些工程实践的practice但如果这个事情都搞不定那我觉得就可能就不太应该了大家主要就翻三部分一个是pre-trainpre-train的话前面主要是讨论了一些大规模分布式的情况下一些比较复杂的一些优化方式然后后面的话一个就是后面的话就是两部分一个就RL然后还有一个就是inference然后RL的话因为它本身就是涉及大量的inference的所以在这两个中间其实是有一些overlap的然后LR它本身一个不太一样的点,就是它需要对大规模sandbox会有一些比较细的一个要求。但这个其实就算是一个更工程的一个东西了,这块的话它其实就是一些比较细的处理,如何去处理不同的sandbox。对于RL的task来说,你每一个trajectory它可能都对应一个它自己的docker。所以说如何去管理大规模docker,其实是这块比较麻烦的一个问题。然后上面这块的话,我觉得这个KimicSandrio比较有意思,它会时不时给你蹦出来一些比较有意思的东西。谢谢大家我觉得这块也比较有意思的东西但也不一定是刚才他提的了这块可以省一个gradient的buffer对这块相当于是一个比较tricky的一个东西因为对于一个完整的RR来说它有好几部分的model比如说你至少有一个种model然后你还有一个reference model然后你种model它还有对应的一个gradient和optimizer当然如果你还想做reward model的话它还会再多一个model然后其实这块的话它就会多特别特别多的model然后就Kimic3这块这样的一个比较有意思的事情它不同model之间因为你放一个model它对于GPT来说它还是很大的一个memory所以说它这块相当于是把两部分memory就拖到一块了就对于reference model而言然后他们发现它可以跟gradient buffer来去合起来因为首先就是reference model它是没有梯度的然后在你求objective的过程中你是没有gradient的等你有了gradient之后然后你可能这个reference model就不会去用了所以说它这块用了一个gradient buffer也有是for non-policy model一丝的一个东西然后上下来我就感觉是一些比较常规的处理方式然后我觉得Inference目前不会有太多的一个东西因为主体的Inference Optimization它其实是VLM或者S这样这些的专门讨论的一些内容然后这块它其实讲的就是对于Kemic 3架构它所带来的增量就是在现代的推理引擎中是如何去处理的然后首先就是会带来就就Linear Tension它在现代的这个Inference Angeline它有一个麻烦它有一个麻烦就是它Prefix Cache它是一个比较麻烦的一个点因为对于ForeTens来说它相当于是每个位置它都有一个Cache所以说你可以任意就是你下一个位置的Cache它一定是上一个Cache的一个简单的一个增量所以说在这种情况下Prefix Cache会简单很多但是对于LinearTens来说的话它会有一些它会有一个比较麻烦的特性就是LinearTens它每一步它是需要它是会在原来上一步的这个CarrieCache的基础上它是做一个复写的也就是说对于每一步而言它的这个prefix state它其实都是不一样的所以说如果我们把每一步都存起来那其实linear的好处就完全没有了但是你如果完全不存的话你就完全没有办法去享受到这个prefix cache所带来的好处对然后这块的话就是对现在目前对于这个linear tension它的一个采用的策略就是按照block去切就是我每个block去做一个呢去做一个这个prefix caching然后同样的话我们还需要另一个Long Non-Trival的点就是VLM这样的一个Page KV它的一个实现方式从工程上或者从概念上它最简单的一个分布方式它是不考虑层和层之间的意志性的所以说其实从去年还是前年就是如果想直接在这个VLM里去引入混合价格的话它在Infra上并不是一个容易的事情而且因为现在Inference Engine越来越heavy了所以说如果简单这些改法的话会把整个Inference Engine搞得特别特别的乱当然现在这个Inference Center可能都有一些比较先进的管理方式但是这个就是需要去透露处理一下就是把这个一个就是一个就是把不同的Tenchant Pattern去结合起来对因为对于Fortenchant来说是按配置管理的嘛但是对于LinearTrain或者Slideven的话它才是不能按照配置管理的因为它并不辞在一个长久的一个对于TokenVisor而言的一个CarrayCache的一个产生方式这个本身对于VLM的设计来说它其实是需要做一些兼容性的处理的然后我觉得后面就是一些就是适配性的一些优化因为Decoding的优化它其实跟Prefill或者说跟Training不太一样所以说这块的话就对于每个环节都需要做一些额外的一些Chronelize的一个配置但我觉得这块应该对我觉得这块都是可以去做的的一个事情然后后面就是evaluation了我觉得evaluation这个没啥好讲的就是
[115:00] 好呗特别好就是在每个环节都好然后后面主要就是这样的一个状态然后应该就没啥了觉得K3让你最impressive的地方是哪里啊个人而言吧我觉得impressive的一点就是他们把这个激活搞得特别特别大就是足足有100比0比我预期的还是要大一些的这个依赖的是什么能力呢这个不依赖任何能力就是你具体定义多少激活这个本身它不是一个技术性的东西就看你想到达到什么阶段的一个效果我觉得KIMI K3他还是比较有破裂的,就是在已有的开源模型这个赛的基础上他们要提升一个数量级,所以我刚刚就说他们比上一代的激活其实是多了三倍多的,我觉得这个决定是一个非技术性的一个决定,但是这个是要一定要副理的。因为杨真林喜欢说有概率的非共识你觉得在K3上能看到他们的什么样的Different Bats或者说创新我觉得也没查因为有价值的技术创新他们都单写了一个paper了所以这个K3刚出来的时候我主要就surprise这个size别的我都不合我预期的就是你刚才给大家也展示了好多他们历史的paper其实中间就已经发出来对吧但是他把它优化到了一个更大的模型上对我其实的一个观点就是科学研究是不存在节约性的提升的只是说大家习惯把这个技术的渐进性提升的某些节点会成为一个milestone我其实一直是这么认为的技术永远是慢慢去提升然后靠这个公司里的所有人下面的所有人包括整个业界的同学一块去推动的所以我觉得从这个角度没有什么milestone有人说听你的研究方式相对比较科学 你觉得这个你认同吗 怎么解释首先我是认可的,但具体认可的方式的话,我觉得首先,我觉得这个主要是来源于他们内部的一些管理方式吧。当然的,有些公开大家都知道的就是Kimi,其实公开里边大家认可的最强调这个模型内科的一个团队。所以他们其实一直去强调这个摩西内科的这样的一个case我觉得这个其实是他们科学化的一个体现吧我觉得这个其实是没有任何问题的我觉得科学对应的就是不科学嘛就是什么是不科学的我觉得这个事情就是讨论清楚大家就知道什么是科学的什么是不科学的我觉得不科学的方式就是如果从整体项目的角度你想去推一个东西你想证明某个东西是有效的我觉得这个东西不存在任何疑问因为学术创新或者说你从学术论文的管理的角度我觉得这个大家都是有明确标准的你得有明确的Avaluation你得有足够的变量的控制你得用更科学的方式去说明你这个东西是有效的我觉得这个大家都是认可的然后为什么不科学,不科学就是基于某些利益需求,然后把科学的方式都干掉了,这就是不科学,不特指任何技术。我一直强调的就是,我觉得KIMI这个团队非常团结,然后非常的能把劲往一处,如果大家是这样的motivation,你的判断方式自然而然就是科学。因为最近也是V4发布的时间,K3和V4你觉得他们的区别是什么,能不能做一些对比?我觉得是不同层面吧,我就从模型定位也好,然后从这个。刚刚咱们比较详细的讨论在Infra上的一些区别然后从模型角度层面的话我觉得目前区别还是比较大的我觉得完全不是一个东西我觉得其实比较好的一个case就是DeepSick现在出了两档一档是1.2T的然后另一个是一个更小的size然后DeepSick我觉得目前还是更强调一个性价比的他们其实Flash模型做的还是挺好的但Kemic我觉得他们目前主要的经历里还是尝试去提升开源模型的一个能力的上显而不是去考虑模型的也不是完全不考虑一个考虑条件当然也可以看到现在K3 API相当贵比别的模型贵多了照这个趋势发展下去Kinme和DeepSick会分化吗我觉得技术层外的东西只要大家不笨都是知道什么是好什么是不好我觉得组织团队的走向和取决于人的选择我觉得就是这么简单我觉得基础上这个东西不存在太多debate的好就是好不好就是不好这个是有明确的客观标准的但是对于组织而言对于人而言这个是比较模糊的你觉得K3相比之前的所有模型来说不一样在哪里它有架构创新它创新性更强了我觉得两方面我觉得从技术的层面来说的话我们可以讨论很多很多就是它中间的游戏有一些创新也好有些TRACK也好这个对于技术同学而言是可以去讨论的但这个东西是不是成为里程碑它是个非技术的问题所以说它最大的变样是你最后的一个能力DVC跟V3,我觉得比如说它那些RE这些东西,我觉得这就是紧张才花,我觉得最大的问题就是它其实是国内第一个,对,把模型思考到一定程度,并且把RL全都说打通的,因为在K3之前,可能最大的就是千万72B嘛,这个其实是从模型size上一个比较大的飞跃,因为有size它才有智能,所以说K3,你把激活多了三倍,把模型也快大三倍,它就是下一个level,这个就没有任何问题,它核心是size。有效的skating 其实是这样
[120:00] 对 这是个完全是一个靠团队来去做起来的东西因为你把模型增大,最简单,如果TRAWELL来看,我就把模型几个数字调大一点,我就可以达到一个更大size,但这个不解决任何问题,从技术上来讲,它不是一个太大的创新,因为你扩大模型size它本身不是创新,你把这个东西做work,它中间采用创新。觉得新团队现在再去重做一个模型还有时间窗口或者机会吗我觉得如果这个团队足够好,这个团队的氛围足够好,然后单B作战能力足够强是有机会的。但这个条件我觉得大概率是不存在的,所以说后面的事情也就不存在。为什么不存在 因为好的人其实已经进去了 还是怎么说我觉得好的人和好的组织文化想达成我觉得是有历史的局限的你不是想达成就能达成的邓伟这个事情真的是有点虚很难去描述他我觉得也不虚我觉得就是取决于这个leader的taste或者说leader的性格是绝大多数影响到整个团队的氛围的我觉得Kimi有一个特点是所有人好像都不怕杨志林吧对啊为什么要怕呢有道理你就谁有道理谁说了算吧对啊还是一个非常集体的一个工作它不是一个个人的工作它不依赖于个人英雄主义对的你觉得未来的模型的发展方向你有没有什么预测比如说半年之后一年之后模型size毫无疑问还会继续扩大我说一下我的判断我的判断比较暴论我的暴论就是大模型可能没有太本人的创新了后面都是一些改样性的进行进步然后他会做到一个什么样的水平呢做多大size对应的是什么样的性能呢我觉得这个重要的就是大家去定义什么能力去定义写的只要大家能定义一个能力就能去达到因为大家之前定义的方式比如说就是墙扣定这些东西是清晰定义出来然后大家就可以去做到这个取决于大家怎么去定义这能力或者说从商业化角度大家注重什么能力只要他能清晰定义这个任务本身他的能力就能够达成我觉得如果是纯language的应该没有太大问题它能达到所谓的AGI吗我觉得AGI最大的问题就是它没有被well define所以只要能够定义它就能达到后面都是一系列的优化工作当然如果说你定义AGI的是巨神是真实物理世界交互我觉得这个事情肯定还是gap是更大的但是如果你还是在这个Language Model的这个scope里讨论问题我觉得问题不大你觉得它最后会是一个多大的模型呢还是说他是无限大无限往上叠上去我觉得这个事情是不可能的,因为首先就是预期量的数据量,包括说我们已知的,人类,我觉得从抽签来讲,就是人类互联网上能集结到的所有的信息量,这个是有限的,这个事情是不可能无限提升的基于这个case来讲,从数写理论上,你想吃掉一个足够大的数据量,模型不太多,不可能是无线的,没有必要是无线的,所以说这个能带来一个更宽的bund然后这个宽的bund可能上下会更好,然后更窄的bund就是在什么情况下?我们对于模型具体在任务上的一个感知可能会没有那么充分然后这个是一个更窄的一个棒子或者说如果未来有更难的任务它必须有更大的size那可能就会退化的更宽在那个棒子里对但是我无论如何不可能是无限的你觉得它会最后有多大这个模型现在是只有到了2.8以后呢B原的肯定还是有更大的所以如果想完全MatchB原的肯定还是可以再大一些但是更大的话这个就不确定了你现在为什么去探索世界模型了我觉得这个主要是一个personal的一个东西因为我觉得这个弹幕型不存在太大的改进空间,没有大的突破的话就没有大的这个所以说我觉得对于个人来说可能从职业上来讲不是一个能做出太大的一个贡献的领域了我是一个well defined的问题 这玩意的问题更大 但我觉得至少是一个新的东西字幕志愿者 李宗盛