[控场AI]
· 5 分钟阅读· 2,763 字

层级残差HiRes:解耦残差宽度与计算宽度,FLOPs效率提升1.3倍

层级残差HiRes:解耦残差宽度与计算宽度,FLOPs效率提升1.3倍

HiRes 解耦残差宽度与计算宽度,拟合缩放律显示约 1.30 倍 FLOPs 效率提升。

标准 Transformer 中残差流宽度与每层计算宽度被强制绑定为同一个 d,加宽残差就不得不同步加宽注意力和 FFN,带来线性计算增长。论文提出 Hierarchical Residuals(HiRes),将若干层划为一个 block,block 内部保持标准 d 维 PreNorm 层,block 之间用更宽的 D 维 PostNorm 外层残差连接传递状态,并在边界处用可学习的 read/write 投影在 d 与 D 之间桥接。整个机制仅由稠密投影和归一化构成,无需定制 kernel。实验显示其在多种规模和深度下稳定优于 vanilla 残差,拟合缩放律给出约 1.30 倍 FLOPs 效率提升;OLMoE-1B-7B 预训练 500B tokens 时训练损失降低 0.0208,下游准确率提升 1.14 个百分点。与 VWN、mHC、AttnRes 性能相当,但激活内存和 I/O 开销更低。

Transformer 的残差连接几乎无处不在,但它隐含着一个约束:贯穿模型深度的残差宽度必须与每层内部的计算宽度保持一致。一篇新论文提出 Hierarchical Residuals(HiRes),用极简的架构改动把这两个维度拆开——残差状态可以更宽,而每层的计算宽度保持不变。消融实验显示,这种解耦在不同模型规模和深度下都稳定带来收益,拟合出的缩放律指向 1.30 倍的 FLOPs 效率提升。

层级残差架构示意

问题:残差宽度被“绑死”在计算宽度上

标准 Transformer 中,每个子层的输入输出维度是同一个 d,残差加法也在这个 d 维空间里完成。这意味着如果你想加宽残差流以改善梯度传播和信息保留,就不得不把每层的注意力和 FFN 也一起加宽,计算量随之线性上升。

论文把这种隐式耦合视为一种设计上的浪费:残差流承担的职责是跨层传递状态,而计算宽度决定的是单层的表达能力,两者本可以有不同的最优取值。HiRes 的出发点就是把这个约束解开,同时不引入任何特殊 kernel 或基础设施改动。

PreNorm 与 PostNorm 是 Transformer 中残差连接与归一化层相对位置的两种排布方式。PreNorm 指归一化在子层(注意力或 FFN)之前、残差加法在归一化之后,即 x + Sublayer(Norm(x));PostNorm 则把归一化放在残差加法之后,即 Norm(x + Sublayer(x))。两者的关键差异在于残差通路上是否存在归一化:PreNorm 的残差流是一条无归一化的“高速公路”,梯度可以无损回传,训练更稳定,是现代大模型的主流选择;PostNorm 在残差加法后做归一化,表达力更强但深层训练时对初始化和学习率更敏感。HiRes 让 block 内部保持 PreNorm 以维持单层训练的稳定性,而在 block 之间的外层残差上采用 PostNorm,正是利用 PostNorm 在跨 block 传递时提供额外的归一化约束,从而在更宽的 D 维残差空间中保持数值稳定。

HiRes 怎么做:块内 PreNorm,块间 PostNorm

HiRes 的结构可以拆成三层理解:

  • 分组:把若干连续的 Transformer 层划为一个 block,block 内部仍是标准的 d 维 PreNorm 层,单层结构完全不变。
  • 外层加宽:block 与 block 之间用一条更宽的 D 维(D > d)PostNorm 外层残差连接,残差状态在这个更宽的空间里跨 block 传递。
  • 读写投影:在 block 边界处,用可学习的 read/write 投影在两个维度空间之间做桥接,把 d 维的层输出写进 D 维残差流,再读回 d 维供下一 block 使用。

整个机制只由稠密投影和归一化构成,没有花哨的算子。这一点对落地很关键:它意味着不需要定制 CUDA kernel,也不依赖任何基础设施层面的优化,现有训练栈就能直接跑。

read/write 投影 是 HiRes 在 block 边界处引入的两组可学习线性变换,作用是完成 d 维与 D 维两个空间之间的维度转换。具体来说,write 投影把上一个 block 输出的 d 维层结果映射到 D 维残差流中写回,read 投影则把 D 维残差状态投影回 d 维,作为下一个 block 的输入。由于 D > d,write 是升维、read 是降维,二者构成一对非对称的线性桥接。它们都是普通的稠密矩阵乘法,参数规模为 d×D 与 D×d,相对于每层注意力和 FFN 的参数可以忽略不计。这种设计的巧妙之处在于:残差流可以在 D 维空间里累积跨 block 的信息,而每个 block 内部仍然在熟悉的 d 维空间里做标准计算,两者的最优取值因此得以独立调节。

实验:缩放律指向 1.30 倍 FLOPs 效率

论文在不同模型规模和深度上对比了 HiRes 与 vanilla 残差加法,结论是一致性的优于基线,而不是某个配置下的偶然收益。通过对结果拟合缩放律,作者给出的估计是 1.30 倍的 FLOPs 效率提升——同样的算力预算下,HiRes 能走到更低的损失。

更大规模的语言模型预训练验证也支持这一点:在 OLMoE-1B-7B 上预训练 500B tokens,HiRes 取得了 0.0208 更低的训练损失,下游准确率高出 1.14 个百分点。对于预训练阶段而言,这两个数字都落在有实际意义的区间。

缩放律(scaling law) 描述模型损失随参数量、数据量和计算量(FLOPs)变化的幂律关系,通常形式为 L = a·N^(-α) + b·D^(-β) + c。在架构对比中,研究者常分别拟合两种架构的缩放律曲线,再求在某固定损失下两者所需 FLOPs 的比值,即为“FLOPs 效率提升倍数”。1.30 倍意味着达到相同损失时,HiRes 只需 vanilla 约 77% 的算力。需要注意的是,缩放律是对多个规模实验点的外推拟合,其系数受拟合区间、数据分布和超参配置影响,因此该数字应理解为趋势性估计而非精确保证。OLMoE-1B-7B 上的具体预训练结果则提供了单点实证支撑,两者结合才能较完整地评估收益的可信度。

与其他残差扩展方法的对比

残差加宽并非全新想法,VWN、mHC、AttnRes 都探索过类似方向。HiRes 的差异在于实现成本:论文称其与这些方法性能相当,但激活内存和 I/O 开销更低。这与它的设计哲学一致——用标准算子和稠密投影换取工程上的简洁性,而不是靠专门的内核优化来弥补开销。

换句话说,HiRes 把“残差宽度”变成了一个可以独立调节的缩放变量。在计算宽度受限于硬件或延迟预算时,这提供了一条额外的优化路径:加宽残差流来提升效率,而不必同步放大每层的计算量。

一点观察

HiRes 的价值可能不在于某个具体数字,而在于它重新审视了一个被默认接受的设计假设。残差连接从 ResNet 时代沿用至今,其宽度与层宽度的一致性很少被当作可调项对待。当缩放律逐渐逼近算力瓶颈,这类“解耦型”改动——用极小的架构代价换取一个新的可调维度——往往比单纯堆参数更有性价比。当然,1.30 倍效率提升来自拟合缩放律,实际收益会随模型规模、数据和训练配置变化,落地前仍需在自己的 workload 上验证。

#层级残差#HiRes#残差连接#Transformer架构#FLOPs效率#缩放律#PreNorm#模型预训练
分享:

相关推荐