← 最新论文
🤖 machine learning

Enjoy Your Layer Normalization with the Computational Efficiency of RMSNorm

本文提出了一种框架,可在任意深度神经网络中识别并将层归一化(LN)层转换为更高效的 RMSNorm,其方法是将中心化操作数学地折叠至上游线性层中,从而在不损害模型性能的前提下实现 2% 至 12% 的精确或近似精确推理加速。

原作者: Yuxin Guo, Yihao Yue, Yunhao Ni, Yizhou Ruan, Jie Luo, Wenjun Wu, Lei Huang

发布于 2026-05-15
📖 1 分钟阅读☕ 轻松阅读

原作者: Yuxin Guo, Yihao Yue, Yunhao Ni, Yizhou Ruan, Jie Luo, Wenjun Wu, Lei Huang

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象你经营着一家非常繁忙的餐厅(深度神经网络),每一道菜(数据样本)在端给顾客之前都必须完美烹制。

在这家餐厅里,有一个特定的步骤叫做层归一化(Layer Normalization, LN)。把它想象成一位主厨,他品尝每一道菜,检查整批菜品的平均风味,然后调整每一种食材,确保“平均味道”恰好为零。这保证了食物的平衡与一致。然而,这个“品尝与调整”的步骤很慢。计算每一道菜的平均风味需要时间,这会拖慢整个厨房的运转,尤其是当有数千份订单涌入时。

为了加快速度,有人发明了一种更快的方法,称为RMSNorm。这就像一位副厨,他完全跳过了“品尝以获取平均风味”的步骤。他只需检查食材的“音量”或“强度”,并相应地放大或缩小它们。这种方法快得多,因为他不需要进行计算平均值的数学运算。但有一个陷阱:由于跳过了“将平均值归零”的步骤,食物有时可能会过咸或过淡(不稳定),最终的味道可能不如主厨烹制的那么好。

核心问题:
我们能否在获得快厨(RMSNorm)速度的同时,不失去主厨(LN)的完美平衡?

论文提出的解决方案:“可折叠”食谱
本文作者表示:可以,但前提是厨房必须按特定方式设置。

他们提出了一种巧妙的技巧,称为**“折叠”**。

  1. 问题所在: 通常,你不能简单地将主厨替换为副厨,因为主厨执行了一项特定工作(对数据进行中心化),而厨房的其他部分都依赖于此。
  2. 技巧所在: 作者意识到,如果进入厨师手中的食材已经完美平衡(平均值为零),那么厨师就不需要执行“品尝与调整”的部分。他们可以直接跳过这一步,转而执行缩放部分(RMSNorm)。
  3. 如何实现: 他们找到了一种方法,在食材到达厨师之前就对其进行“预平衡”。这是通过微调前一个烹饪站(线性层)的食谱来实现的。他们称之为基于列的权重中心化(Column-Based Weight Centering, CBWC)
    • 想象前一个站是一个搅拌机。作者微调了这个搅拌机,使其自动吐出已经完美平衡的食材。
    • 因为食材已经平衡,主厨(LN)可以被快速副厨(RMSNorm)取代,而不会改变菜肴的最终味道。

“地图”(零均值图)
并非每家厨房的布局都相同。有些厨房的路径很复杂,食材以奇怪的方式混合、拆分并重新组合。

  • 作者创建了一张地图(一种图算法)来查看厨房布局。
  • 如果地图显示,到达厨师的食材来自一条“直线”的搅拌机,且这些搅拌机可以被预微调,那么该厨师就是**“可折叠的”**。
  • 如果路径过于混乱(例如食材以破坏平衡的方式被粘合在一起),则无法进行折叠。

他们的发现:

  • 速度: 通过在流行的人工智能模型(如 GPT-2、BERT 等)上使用这种方法,他们发现可以在“服务”阶段(推理)将厨房运行速度提高2% 到 12%
  • 味道: 至关重要的是,食物的味道完全相同。顾客(用户)察觉不到任何质量差异。
  • 训练: 他们还在厨房学习(训练)期间测试了这种方法。尽管在厨房混乱且处于学习状态时,完美的“折叠”条件并不总是满足,但他们的方法仍然几乎像慢速主厨一样有效,但速度快得多。

总结:
该论文提供了一本规则手册和一种工具,用于识别人工智能模型的哪些部分可以通过将缓慢、细致的归一化步骤替换为快速、简单的步骤来加速。他们通过数学方法将缓慢的部分“隐藏”到前一步骤中,从而确保人工智能运行得更快,同时不损失任何智能或准确性。这就像在迷宫中找到一条捷径,通向同一个目的地,但步行所需的时间更少。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →