DeepSeek V4的tid2eid是怎么来的?
By 苏剑林 | 2026-05-15 | 1114位读者 | Kimi 引用训过MoE的同学都知道,如果把整个模型的MLP部分都换成MoE,那么靠近Embedding的前几层MoE往往很难实现负载均衡。对此,DeepSeek V3,包括我们的Kimi K2,采取的应对策略是“first_k_dense”——顾名思义,就是前$k$层不用MoE而用常规的Dense型GLU。到了DeepSeek V4,这个策略改成了“first_k_hash”。
这里的“hash”指的是“Hash Routing”,提出自《Hash Layers For Large Sparse Models》,它通过一张事先确定的映射表tid2eid来为每个Token分配Expert。本文来探讨一下如何生成这个tid2eid。
直接以FID为Loss:从梯度计算到流式训练
By 苏剑林 | 2026-05-08 | 3211位读者 | Kimi 引用关注视觉生成模型的读者都知道,FID一直是其关键的评价指标之一,它越小往往意味着生成效果越真实。那么一个自然的问题是:为什么不干脆直接以FID为损失函数来训练生成模型呢?难道是因为FID不可导?非也,FID实际上是可导的,它作为Loss理论上没有问题,但实践中会遇到计算困难。
近日,论文《Representation Fréchet Loss for Visual Generation》做了一些克服困难的尝试,成功将FID用于生成模型的微调,并明显改进了单步生成的效果。本文将简要探讨一下其中的数学原理与实现技巧。
生成指标
FID,全称是“Fréchet Inception Distance”,我们可以分“Fréchet Distance(FD)”和“Inception(I)”两部分来理解。
如何更科学地估计矩阵的谱范数?
By 苏剑林 | 2026-05-04 | 2378位读者 | Kimi 引用谱范数(Spectral Norm)是矩阵分析中的核心概念,在深度学习领域中也扮演着重要角色——从WGAN时代所需的Lipschitz约束,到如今LLM的训练稳定性,再到方兴未艾的Muon优化器,都跟矩阵参数的谱范数密切相关。因此,如何高效、准确地估计谱范数,也愈发显得重要,值得我们深入研究。
众所周知,幂迭代(Power Iteration)是估计谱范数的标准方案,但它仍有很大改进空间。这篇文章将简要地整理谱范数的一些估计思路,包括改进幂迭代的收敛速度,以及如何估计谱范数的严格上界,等等。
谱范数
谱范数的定义是
\begin{equation}\Vert\boldsymbol{W}\Vert_2 = \max_{\Vert\boldsymbol{x}\Vert_2=1} \Vert \boldsymbol{W}\boldsymbol{x}\Vert_2\end{equation}
MuP之上:4. 坚守参数的稳定性
By 苏剑林 | 2026-04-24 | 2427位读者 | Kimi 引用通过前几篇文章的推导和计算,我们可以发现,第一篇《MuP之上:1. 好模型的三个特征》所提的三个稳定性指标通常可以分为“参数稳定性”和“增量稳定性”两部分,而在《MuP之上:2. 线性层与最速下降》和《MuP之上:3. 特殊情况特殊处理》中,我们演示了将增量稳定性与最速下降结合来获得新的更新规则(优化器)的过程.
然而,对于参数稳定性,我们之前只是停留在初始化上。这篇文章的任务,正是探讨如何在整个训练过程中维持参数的稳定性,将理论的实践补充完整。
问题背景
以《MuP之上:2. 线性层与最速下降》为例,三个稳定性指标分别是:
基于流式幂迭代的Muon实现:5. 延伸
By 苏剑林 | 2026-04-17 | 2252位读者 | Kimi 引用本系列文章的主题是“流式幂迭代”,顾名思义,它由“流式”和“幂迭代”两部分构成,其中“幂迭代”是求矩阵SVD的一种经典的多步迭代方案,而“流式”则是指将原本需要多步迭代的算法平摊到每一步训练上,使得计算成本变得可以接受,其核心思想在于:与其一次性完成复杂计算,不如在训练过程中持续逼近目标。
作为该系列的延伸,本文将介绍另外一些“流式”思想的应用,进一步展示如何通过流式转化将相对昂贵的操作巧妙地融入训练流程。
正交投影
有些场景下,我们会希望约束某些参数矩阵的正交性。正交矩阵具有良好的数值稳定性,可以避免一些数值爆炸或消失问题,同时在某些设计中能带来更好的理论保证。当然,哪些地方适合约束参数为正交矩阵,我们需要具体场景具体分析,这里不做展开。
基于流式幂迭代的Muon实现:4. 原理
By 苏剑林 | 2026-04-13 | 2005位读者 | Kimi 引用经过《基于流式幂迭代的Muon实现:1. 初识》、《基于流式幂迭代的Muon实现:2. 加速》和《基于流式幂迭代的Muon实现:3. 雕琢》三篇文章,想必大家已经对流式幂迭代(Streaming Power Iteration)的思想、实现、加速等细节有所了解,总的来说,这称得上是一种颇有竞争力的Muon实现方式,并且得益于它直接近似计算SVD,所以它还具备更好的拓展性。
受限于篇幅,当时我们对相关运算的数学原理描述得相对简略,因此在这篇文章中,我们补充部分关于幂迭代和QR分解的数学推导,以建立更完整的理论图景。不过,这里的推导依然是侧重解释性而非严格性,主要是为了帮大家(包括笔者)理清思路,还请专业读者海涵。
共轴等价
在开始推导之前,我们需要先引入“共轴等价”的概念。对于矩阵$\boldsymbol{A},\boldsymbol{B}\in\mathbb{R}^{n\times m}$,如果存在一个符号矩阵$\boldsymbol{S}$满足$\boldsymbol{A} = \boldsymbol{B}\boldsymbol{S}$,那么称$\boldsymbol{A}$与$\boldsymbol{B}$“共轴等价(Coaxial Equivalent)”,它们互为对方的“共轴矩阵”。这里的“符号矩阵(Signature matrix)”是指为对角线为$\pm 1$的对角矩阵,即$\newcommand{diag}{\mathop{\text{diag}}}\diag(\pm 1, \pm 1, \cdots, \pm 1)$。
基于流式幂迭代的Muon实现:3. 雕琢
By 苏剑林 | 2026-04-07 | 3040位读者 | Kimi 引用回顾前两篇文章《基于流式幂迭代的Muon实现:1. 初识》和《基于流式幂迭代的Muon实现:2. 加速》,我们引入了Muon的流式幂迭代(Streaming Power Iteration)实现方案,初步验证了它的可行性,并进一步讨论了核心运算——QR分解——的加速,使其接近Newton-Schulz迭代实现的效率。
在这篇文章中,我们不再局限于优化单步的QR分解,而是从更整体的视角看待流式幂迭代,并结合具体的计算背景,对其实现细节做进一步的“精雕细琢”,尽可能减少计算瓶颈,使其效率趋近理论极限。
现有结果
流式幂迭代本质上是“边训练边SVD”,它的想法是通过幂迭代来求SVD,并通过缓存上一步的结果,将计算平摊到每一步训练上,使得在优化器中嵌入SVD成为可能。至于Muon,只不过是它的一个基本应用,因为Muon的核心运算$\newcommand{msign}{\mathop{\text{msign}}}\msign$最基本的实现方式就是SVD。具体来说,Muon的更新公式是
中位数(Median)简介
By 苏剑林 | 2026-03-31 | 5630位读者 | Kimi 引用最近重新学习了一下中位数的概念,趁新鲜记录一下要点。
做异常值剔除或者裁剪时,我们经常需要一个“基准”,比如对于一堆非负数据,我们可能认为大于基准的50倍就是异常值。那这个基准如何选取呢?一个常用的指标是平均值,然而平均值容易被异常值“带偏”,因此以它为基准可能会偏向异常值,从而漏掉一些结果,这时我们可以考虑选取中位数为基准。
基本性质
对于一维数据点$x_1,x_2,\cdots,x_n$,它们的平均值(Mean)定义为
\begin{equation}\newcommand{mean}{\mathop{\text{mean}}}\mean(x_1,x_2,\cdots,x_n) = \frac{1}{n}\sum_{i=1}^n x_i\end{equation}
由于全体数据都直接参与平均计算,所以一旦有几个点特别大,那么平均值也会随之变大,从而干扰异常值的判断。







感谢国家天文台LAMOST项目之“宇宙驿站”提供网络空间和数据库资源! 感谢国家天文台崔辰州博士等人的多方努力和技术支持!
科学空间致力于知识分享,所以欢迎您转载本站文章,但转载本站内容必须遵循 署名-非商业用途-保持一致 的创作共用协议。 
最近评论