从ResNet到mHC:DeepSeek重构残差连接,额外开销仅6.7%,附复现代码
2015年由微软亚洲研究院的何恺明团队提出ResNetResNet引入残差连接的概念用以解决深层神经网络训练中的梯度消失/爆炸和网络退化问题使得训练极深的网络成为可能。1(,)xl1xlF(xl,Wl)在公式1中∈1×xl∈R1×d为 l层网络输入F为对 l层进行的非线性变换如卷积、Attention或MLP等1∈1×xl1∈R1×d为该层的输出传统的网络试图对每层的输入 x 直接学习目标映射 ()H(x)。而残差网络的设计思想是既然直接学习很难不如让网络去学习每层的残差()()−F(x)H(x)−x公式1和公式2本质是一样的公式2中的 ()F(x)即为公式1的 F公式2中的()H(x)即为公式1的1xl1公式2中的 x 即为公式1的xl这就像是把原始文件x复印了一份直接交给下一个人同时附上一张便利贴上面写着这一层所做的修改()F(x)。下一个人收到的是「原件 修改意见」该设计的关键特性是恒等映射Identity Mapping能力。在网络初始化的早期阶段权重通常很小()≈0F(x)≈0。此时1≈0xl1≈xl0xl这意味着信号像是在高速公路上一样毫无阻碍地从第一层直通最后一层。梯度也可以沿着这条高速公路无损地回传。正是这一特性使得训练成百上千层的网络如GPT-4, DeepSeek-V3成为可能。超连接Hyper-Connect标准的残差连接强制要求输入信号与经过变换的信号以 1:1 的比例叠加虽然保证了梯度的高速公路但也带来了两个问题信息流瓶颈原来只有一条残差通道所有信息不管是简单细节还是高层抽象都挤在同一条路上传。这就像所有车都走一条车道没法灵活分配路线模型没法根据需要把信息送到最合适的地方。表示坍塌网络特别深的时候为了不崩、训练稳定很多层其实学不到有用的新东西只能改一点点、几乎等于没改。结果就是白白浪费算力提取出来的特征都长得差不多没有多样性表达能力变弱。在上面的背景下 字节提出了Hyper-Connections的模型结构来改进传统的残差连接结构。通过扩展残差流宽度和多样化连接模式拓展了过去十年中广泛应用的残差连接范式。HC的核心思想是将原本单一维度的残差流扩展为4n4个并行的流然后乘以一个权重矩阵Hlres。这增加了信息的带宽可以更多地捕获输入不同维度之间的融合信息。在HC架构中信息不再是简单的标量加法而是通过矩阵运算进行复杂的混合数学表达为1 (,)xl1HlresxlHlpost TFl(Hlprexl,Wl)对于公式4Hpre预融合/汇聚将4n4个并行流的信息汇聚起来压缩成适合Transformer层Attention或MLP处理的输入维度。Hpost后融合/分发将Transformer层的计算结果重新分发回4n4个并行流中。Hres流内混合这是最激进也是最关键的组件。它允许4n4个并行流在不经过Transformer层计算的情况下直接进行内部的信息交换和混合。理论上HC允许模型学习出任意的连接模式① 模型认为某一层应该保持恒等映射可以学习将Hres变为单位矩阵 I② 如果模型认为需要剧烈改变信息流向可以学习复杂的非对角矩阵。这种灵活性极大地增强了模型的拓扑结构复杂度。mHCHC的问题根据公式1传统的残差连接结构模型第L层和第l层的关系表示如下Σ−1(,)xLxlΣilL−1Fi(xi,Wi)上式表明xl的梯度信息可以1比1传递给xL不会梯度爆炸或者梯度消失保证训练过程的稳定性。根据公式4可推导出HC结构下第L层和第l层的关系(∏1−1−) Σ−1(∏_1−1−−) (,)xL(i1∏L−1HL−ires) xlΣilL−1(∏_j1L−1−iHL−jres) Hipost TF(Hiprexi,Wi)这会导致 ∂∂(∏1−1−)∂∂...∂xL∂loss(∏i1L−1HL−ires)∂xl∂loss...。由于 ∏1−1−∏i1L−1HL−ires一个典型的连乘过程矩阵连乘的性质取决于矩阵的谱范数即矩阵最大特征值的模。我们来比较Resnet中残差连接和HC连乘的情况Resnet中的残差连接残差路径是恒等映射相当于乘以单位矩阵I。单位矩阵的谱范数严格为 1。无论乘多少次1100111001信号始终稳定。HC在HC中Hres是自由学习的参数矩阵不可控。如果Hres的平均谱范数略大于 1例如 1.05在 60 层的网络中信号会被放大 1.0560≈18.61.0560≈18.6倍。如果谱范数更大或者网络更深放大倍数会呈指数级爆炸破坏残差结构中梯度回传的稳定性从而导致训练不稳定具体可见下图。上图显示27B模型训练到12k step左右HC的loss突然飙升。与此同时梯度范数也开始疯狂震荡。另外由于 −HL−ires矩阵是无约束的可以往任意方向发散。论文测量了一个叫「Amax Gain Magnitude」的指标在残差流里被放大了3000倍。在大规模训练中这就是爆炸的前奏。mHC的诞生面对HC的问题DeepSeek提出了mHC即Manifold-Constrained Hyper-Connections流形约束超连接其核心思路为将不可控的Hres矩阵通过数学的手段转换为可控的双随机矩阵Doubly Stochastic Matrices。下面为大家解释mHC几个重要概念。双随机矩阵Doubly Stochastic Matrices双随机矩阵定义如下res(res):{res∈×∣res11,1_⊤ℎres1⊤, res≥0}PMres(Hlres):{Hlres∈Rn×n∣Hlres1n1n,1_n⊤mathcalHlres1n⊤, Hlres≥0}其中11n表示所有元素均为 1 的n维向量。从公式7中可看出双随机矩阵的元素都大于等于0每一行、每一列的值相加都等于1。双随机矩阵具备2个重要特性① 范数值为1②多个双随机矩阵的乘积还是双随机矩阵。从而可以推出 ∣∏_1−1−∣1∣∏_i1L−1HL−ires∣1 解决了上面提到的范数不可控的问题。那么怎么把_Hres_l矩阵变换成双随机矩阵呢DeepSeek团队采用的是Sinkhorn-Knopp算法。Sinkhorn-Knopp算法① 通过公式8计算变换前的Hlres其中输入∈×,pre,post∈×,∈,2xl∈Rn×C,φlpre,φlpost∈RnC×n,φlres∈RnC,n2先将 xl转换为 1×R1×nC的向量 ~x~l并通过mat(·)操作从1×2R1×n2空间转换到×Rn×n。② 通过(0)(~)M(0)exp(H~lres)得到元素值都大于0的矩阵作为迭代起始矩阵。③ 通过下面的公式迭代做normalization使其满足每行之和和每列之和接近1()(((−1)))M(t)Tr(Tc(M(t−1)))其中Tr 和Tc分别代表按行和按列做归一化根据Sinkhorn-Knopp算法原理 ()M(t)会收敛成双随机矩阵DeepSeek论文中一般迭代20步。Birkhoff多胞体流形论文标题中的Manifold流形指的就是由所有双随机矩阵构成的几何空间被称为Birkhoff多胞体Birkhoff Polytope, 记为Bn。多胞体Polytope想象一个多维空间中的多面体类似于3D空间中的钻石或立方体。这个多面体的每一个点都代表一个合法的双随机矩阵。顶点Vertices这个多面体的顶点是所有的置换矩阵Permutation Matrices。置换矩阵是只包含0和1的矩阵且每行每列只有一个1。它们的作用仅仅是交换信息的顺序比如把通道1的信息换到通道 2而不改变信息的大小。内部InteriorBirkhoff-von Neumann定理告诉我们这个多面体内部的任何一个点即任何一个双随机矩阵都可以表示为这些顶点的加权平均。DeepSeek的做法实际上是将神经网络原本在整个欧几里得空间中乱跑的参数强行拉回到了这个 Birkhoff多胞体的表面或内部。在这个几何体内游走无论怎么走都是安全的。关于mHC的更多知识可参考https://www.k-a.in/mHC-math.html、https://arxiv.org/pdf/2512.24880系统级实现与工程优化虽然Sinkhorn-Knopp迭代在理论上很美但在计算上却很昂贵。如果在每一层、每一步训练中都进行 20次矩阵迭代训练速度会大打折扣。DeepSeek为mHC量身定制了基础设施设计将额外开销仅增加6.7%。算子融合 (Kernel Fusion)DeepSeek利用了自研的TileLang编程语言开发了定制化的CUDA内核。融合操作将指数化、20次Sinkhorn迭代、以及后续的矩阵乘法全部融合进了一个单一的GPU Kernel中。SRAM驻留在这个Kernel执行期间中间数据如迭代过程中的矩阵一直保留在GPU的高速缓存SRAM/Register中而不需要反复写回慢速的全局显存。这大大减少了内存 I/O 次数使得 20 次迭代的计算时间几乎可以忽略不计。DualPipe通信重叠在大模型训练中由于模型太大往往需要跨多个GPU进行流水线并行Pipeline Parallelism。 DeepSeek设计了一种名为DualPipe的调度策略。打时间差当GPU的计算单元Tensor Cores正在全力计算mHC的Sinkhorn投影时GPU的通信单元NVLink并未闲着。重叠执行DualPipe巧妙地安排了任务利用mHC计算的时间窗口同时进行不同GPU之间的数据传输。结果Sinkhorn带来的额外计算延迟被通信时间完美掩盖了。对于整体训练流程来说mHC的计算几乎是免费的。选择性重计算Selective Recomputation由于mHC引入了 4n4 的扩展流中间激活值的显存占用会增加。如果全部存储会导致显存不足。DeepSeek 采用了选择性重计算策略在前向传播时不存储所有Sinkhorn迭代的中间结果。在反向传播时利用这一层极快的计算速度重新计算出所需的中间变量。这种以计算换显存的策略结合TileLang的高效率使得 mHC 在显存占用上也保持了高效。实验结果研究首先考察27B模型的训练稳定性与收敛性。如图5 (a) 所示mHC有效缓解了在HC中观察到的训练不稳定性与基线相比最终损失降低了0.021。图5 (b) 中的梯度范数分析进一步证实了这种稳定性的提升其中mHC表现出明显优于HC的行为其稳定的表现与基线相当。表 4展示了模型在多种下游基准测试中的性能表现。相比于基线模型mHC实现了全面的性能提升并在大多数任务上超过了HC。值得注意的是与HC相比mHC 进一步增强了模型的推理能力在 BBH上实现了2.1%的性能提升在 DROP上实现了2.3%的性能提升
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2462232.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!