从几何角度解释DeepSeek V4的训练不稳定性,论证损失尖峰本质上是流形撕裂而非优化失败。
AI translation, not an official translation. Refer to the original for technical details.
Adapted from @BetaTomorrow# 单标几何 02:流形撕裂 中文版:单标几何 02:流形撕裂(https://x.com/BetaTomorrow/status/2084751162994307258) 我原本正在准备《单标几何:数据复杂性》——本系列的第二篇——此时 DeepSeek V4 发布了。我立刻把那篇文章搁置一旁。 吸引我注意的不是那些令人印象深刻的基准测试数字,而是技术报告第 4.2.3 节中一段不起眼的文字: > "我们发现,尖峰的出现始终与 MoE 层中的异常值相关,而路由机制本身似乎加剧了这些异常值的产生。" 紧接着,他们以罕见的坦诚写道: > "尽管对其底层机制的全面理论理解目前仍是一个开放性问题,我们仍选择公开分享,以促进社区的进一步探索。" 我很欣赏 DeepSeek 在这里的透明态度。他们找到了三种有效的经验性修复方案,坦承自己并不完全理解其原因,但仍然选择发表。这种求真务实的精神十分罕见,而这恰恰正是几何思维大有用武之地的切入口。 这篇文章是我尝试填补他们留下的空白:对 DeepSeek V4 这类系统中训练不稳定性的几何解释,以及他们的缓解措施为何奏效。 核心论点简单明了,我想在开篇直接点明: MoE 训练中的损失尖峰不是优化失败,而是流形撕裂。 ## 什么是流形撕裂? 在将某件事称为"撕裂"之前,我们需要精确界定流形是什么——以及它需要满足什么条件。 流形是一个局部欧氏的空间。典型例子是地球表面:从整体看是弯曲的、非欧氏的,但在任意一点上足够放大,看起来就像平坦的一块 ℝ²。更正式地说,拓扑流形要求每个点都有一个与 ℝⁿ 同胚的邻域。光滑流形进一步要求,重叠邻域之间的转换映射(称为坐标卡)是可微的。黎曼流形在此基础上还为空间赋予了度量张量,使距离和曲率的概念得以成立。 这一切的基础性要求是连续性——不仅仅是连续性,更是光滑性。微分几何的整套工具,以及至关重要的基于梯度的优化的整套工具,都假定所遍历的空间在各处都足够光滑以支持求导。 流形撕裂是对这一假设的违反。精确地说:当流形区域之间的映射失去连续性——当某个点没有明确定义的像,或者邻近的点被映射到目标空间中相距甚远的区域时——撕裂便发生了。撕裂不是大幅度的形变。流形的大幅形变仍然是流形。撕裂是一种不连续性——流形在撕裂点处的局部欧氏结构崩溃了。 在 Transformer 残差流的语境下,我们可以给出操作性定义: > Transformer 残差流中的流形撕裂,是层间传输映射中的不连续性,由与该点表示流形的局部几何不相容的离散路由决策所引发。 现在让我们来具体看看这在 DeepSeek V4 中是如何发生的——以及三种缓解措施分别如何针对同一故障级联的不同阶段。 ## 残差流的几何结构 想象一个单一的词元(token)穿越一个 Transformer 模型。在每一层中,其隐藏状态是 ℝᵈ 空间中的一个点——一个高维向量。随着词元逐层传递,这个点在表征空间中描绘出一条轨迹。这条轨迹存在于流形(manifold)之上的论断,隐含在我们训练模型的方式之中:梯度下降假设损失景观是平滑的,反向传播假设各处的操作均可微,而深层网络的表达能力恰恰来源于对这一空间所学到的平滑、结构化的变换。 在标准 Transformer 中,每个词元在每一层都经过同一个前馈网络(FFN)。从第 l 层到第 l+1 层的映射对所有词元来说都是相同的。流形会发生形变,但它是连续形变的——同一个函数被应用于所有位置。 在 DeepSeek V4 这样的混合专家(MoE)Transformer 中,这一点发生了根本性的改变。在每个 MoE 层,路由器审视词元的隐藏状态,并将其路由至一个或多个专家——从数百个可能的 FFN 中进行离散的 Top-k 选择。从隐藏状态到新隐藏状态的复合映射现在变为: > 隐藏状态 → 路由决策 → 专家处理 → 新隐藏状态 路由决策在构造上就是不连续的。它是一个离散的选择器。一个处于表征空间中位置 x 的词元被路由至专家 E₁;而一个处于无限接近的位置 x + ε 的词元,可能会被路由至专家 E₂。这两个专家在流形的不同区域上训练,其输出并不保证彼此接近。 这意味着逐层传输映射在路由边界处存在不连续性。流形在结构上已经在每条专家边界处被撕裂。这不是一个缺陷——这是 MoE 架构效率所付出的代价。但这是一种潜在的几何脆弱性,在特定条件下会演变为灾难性的故障。 ## 故障级联 该论文的观察——尖峰与 MoE 层中的异常值密切相关,而路由机制会加剧这些异常值——描述了一种特定的故障级联。从几何角度来看,它分三个阶段展开: **阶段一:局部曲率尖峰。** 某个 MoE 专家中的激活值变得极大。SwiGLU 门控或线性组件产生了一个极端值。这尚未构成撕裂——它是表征流形上曲率极高的一个区域。局部几何在技术上仍然有定义,但条件极差。输入的微小变化会导致输出的巨大变化。针对正常曲率校准的优化器梯度步长开始过冲。 **阶段二:图表不一致性。** 路由器与主干网络同步更新,现在在一个已发生偏移的流形上运作。在步骤 t,主干参数 θₜ 定义了一个表征空间 Mₜ。但刚刚完成更新的路由器,仍在按照流形为 Mₜ₋₁ 时的方式做出路由决策。一个在 Mₜ 上处于位置 x 的词元,被路由时却仿佛它处于一个已不再存在的流形之上。这是一种图表不一致性:坐标图表(即路由分配)不再与被映射点的局部几何相匹配。词元被送往了错误的专家——错在于它在表征空间中实际所处的位置。 第三阶段:撕裂放大。被错误路由的令牌进入一个未经其所在流形区域训练的专家。该专家产生一个离群输出——一个远离令牌在下一层表示空间中应有位置的点。这个不连续的跳跃就是撕裂。如果残差映射矩阵是扩张性的(谱范数 > 1),撕裂会随着在后续层中的传播而增长。到第 L 层时,一个被轻微错误路由的令牌已被抛离其正确的流形区域。损失峰值是累积的几何损伤在训练目标中变得可见的体现。 这就是级联过程:高曲率 → 图表不一致 → 路由边界不连续 → 撕裂放大 → 损失峰值。 DeepSeek V4 的三项缓解措施各自在这一级联过程的不同阶段将其中断,详见 DeepSeek V4 的数学考量(https://open.substack.com/pub/deepmanifold/p/mathematical-considerations-for-deepseek) ## 论文留下的未解问题 作者写道: > "尽管对其底层机制的全面理论理解目前仍是一个开放性问题……" 此处提供的几何框架揭示了这一理论理解可能呈现的面貌:对路由边界不连续性如何在残差流中传播的形式化描述、残差映射上的谱范数界如何约束这一传播,以及离散选择器中的时间一致性条件如何作为平行移输规则加以执行。 这并非一个完整的理论,而是一套词汇——一组足够精确、能够提出正确问题的几何概念。在每一个 MoE 层中,流形在构造上就已经被撕裂。问题在于这种撕裂是否会灾难性地传播,还是保持有界。DeepSeek V4 的三项缓解措施是对这一问题的三个回答,各自在不同尺度上发挥作用。 单令牌几何学的研究旨在认真对待这样一个观念:一个令牌在一次前向传播中所经历的一切,在几何上已然足够丰富,可以解释我们目前归因于优化动态的现象。损失峰值就是其中一个例子。 ## 流形撕裂并非 DeepSeek 独有的问题 有必要精确界定其范围。流形撕裂并非 DeepSeek 或 MoE 架构所独有,尽管 MoE 确实使其加剧——原因在于引入了构造上本就不连续的路由边界。这一病理现象具有更普遍的性质。 我们在 2024 年的论文《深层流形第一部分:神经网络流形解剖》中注意到并讨论了这一现象,具体见第 3.6 节"学习变换": > "这解释了几乎所有基础模型训练中损失曲线在缓慢下降阶段所呈现的锯齿状模式,表明训练正在努力收敛——这是我们分析中发现的一个隐性瓶颈。当一个模型的损失值标准差稳定在 5 以下时,我们认为该模型已有效收敛。" 这种锯齿状模式并非噪声,也不是优化器或学习率调度的怪象。高损失偏差是流形撕裂的征兆——损失曲面并非光滑,而是不连续的,优化器是在穿越这些不连续点,而非顺势下降。在这一框架下,损失的标准差是表示流形粗糙度的度量。当其稳定时,流形已沉降至优化器可以导航的几何形态;当其峰值出现时,流形正在撕裂。 这意味着,流形撕裂现象几乎在每一个已发表的基础模型训练过程中都清晰可见。人们曾将其归因于许多因素——学习率预热、批量大小调度、数据课程设置、优化器超参数。这些归因并非错误,但它们只是近因,描述的是撕裂现象或多或少容易发生的条件,而非根本原因。 根本原因,超越模型架构层面,在于数据。 具体而言,是数据的复杂性。模型所学习的表征流形并非由架构师选定,而是由训练数据所诱导。一个具有不连续结构的数据集——域间存在尖锐的分布边界、相互冲突的标签几何关系,或极端的词元频率失衡——从第一次前向传播起,便会诱导出内嵌了不连续性的表征流形。模型并非在撕裂一个光滑的流形,而是试图学习一个从一开始就从未光滑过的流形。MoE 中的路由边界不过是二阶效应,数据边界才是根本。 这便是本系列下一篇文章的核心论点。 《单词元几何:数据复杂性》将探讨,从几何角度而言,数据参与流形撕裂意味着什么:为何某些数据组合使光滑表征流形成为不可能,以及这对我们思考数据集整理方式意味着什么——不应将其视为一种工程上的便利,而应视为一种几何上的必然。(https://x.com/BetaTomorrow/status/2050461737363951997) 流形撕裂将贯穿本系列始终。DeepSeek V4 为我们提供了一个精确、诚实且文献记录异常翔实的实例。他们找到的缓解措施是真实有效的。但这些措施终究只是针对一种病理的防御手段,而该病理的根源位于架构的上游——在于模型被要求学习的数据,以及数据在训练开始之前就已施加于表征空间的几何结构。 ## 结语 在经典微分几何中,"撕裂"意味着一个外力作用于一个预先存在、定义明确的曲面之上。在正向问题中,流形通常是预先给定的:几何结构首先确立,计算在其之上进行。由于坐标结构是固定的,流形撕裂通常并非核心议题。 学习则截然不同。学习是一个逆问题。流形并非给定的,而必须从数据中习得,而模型同时又在不断前进、穿越其上。这意味着几何结构、坐标系与传输映射,在训练过程中都处于持续变化之中。 此种意义上的"撕裂",是一种拓扑意义上的收敛失败。它发生于模型在局部同胚尚未实现之前,便将相互冲突的逻辑约束压入同一维度之时。其结果并非一个已知几何结构上的断裂,而是几何结构本身未能实现连续——由此导致我们在复杂模型中观察到的路由不稳定性与激活异常值。 因此,流形撕裂不仅仅是在一个已知流形上运动失当的失败,更是一种发生于流形自身形成过程之中的失败。这正是为何 MoE 路由、激活异常值与残差放大会变得如此不稳定:词元并非仅仅在穿越一条边界,那条边界本身仍在被学习之中。 有两个主要的认知盲区阻碍了我们对神经网络的全面理解,使其对许多人而言仍是一个"黑箱"。这两个盲区分别是:1)未能将学习视为一个反问题,以及 2)未能将神经网络视为数值计算的一种形式。 - 单词元几何 01:拓扑学 (https://x.com/BetaTomorrow/status/2045685439156437196) - 单词元几何 03:数据复杂性 (https://x.com/BetaTomorrow/status/2050461737363951997) - DeepSeek V4 的数学考量 (https://x.com/BetaTomorrow/status/2084846064201261375) 本文现已收录于《深度流形,两年后:2024–2026》中的单词元几何系列。(https://x.com/BetaTomorrow/status/2080057647160824276) - 什么是深度流形? (https://x.com/BetaTomorrow/status/2070113382347461038) - 神经不动点场 (https://x.com/BetaTomorrow/status/2075335417189257256) - 学习是一个反问题 (https://x.com/BetaTomorrow/status/2063266723336499444) - 深度流形模型缩放 (https://x.com/BetaTomorrow/status/2090563679666491438) - 深度流形的早期验证 (https://x.com/BetaTomorrow/status/2081606689506447748) - 现实世界中的深度流形 (https://x.com/BetaTomorrow/status/2072044191023329753)