技术指南

SwiGLU 和门控激活

SwiGLU 是一种门控激活函数,它将输入的一个线性投影乘以 Swish 激活的第二个投影,充当变压器前馈层内的可学习、数据相关的门。

概述

SwiGLU 是一种门控激活函数,它将输入的一个线性投影乘以 Swish 激活的第二个投影,充当变压器前馈层内的可学习、数据相关的门。它不断提高语言模型的质量,这就是为什么几乎每个现代法学硕士都使用它的原因。

SwiGLU 和门控激活是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。

深入探讨

标准变压器前馈块是两个线性层,中间有一个 ReLU 或 GELU。门控线性单元,由 Dauphin 等人提出。 2016 年,将第一个投影分成两半,并使用一半通过元素乘法来门控另一半。 SwiGLU 由 Noam Shazeer 在 2020 年推广,该门使用 Swish (SiLU) 函数:输出 = (Swish(xW) * (xV)) W2,具有三个权重矩阵而不是两个。门控让网络有选择地传递或抑制每个维度的信息。由于添加第三个矩阵会增加参数,因此实现将隐藏维度缩小到大约三分之二,因此总计算量与 GELU MLP 相当。 Shazeer 的实验显示了可测量的困惑度增益,LLaMA、PaLM 和 Mistral 都采用了它。

技术洞察

Swish 是 x * sigmoid(beta*x),一个平滑的非单调函数,与 ReLU 不同,它允许小的负值通过。在 SwiGLU 中,“门”分支 Swish(xW) 生成接近 0 或 1 的值,这些值按元素乘以“值”分支 xV,因此每个隐藏单元的贡献都由学习的、依赖于输入的信号进行调制。第三个权重矩阵是成本;三分之二的隐藏大小技巧使 FLOP 预算与普通前馈层相匹配。

掌握 SwiGLU 和门控激活

SwiGLU 是一种门控激活函数,它将输入的一个线性投影乘以 Swish 激活的第二个投影,充当变压器前馈层内的可学习、数据相关的门。它不断提高语言模型的质量,这就是为什么几乎每个现代法学硕士都使用它的原因。 SwiGLU 和门控激活是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。为了建立深入的理解,请将 SwiGLU 和门控激活视为一种操作模型,而不是单一功能:定义所需的结果,澄清假设,并将系统可以可靠地执行的操作与仍需要专家判断的操作分开。

在实践中,使用 SwiGLU 和门控激活的强大团队可以根据可靠性和成本来优化架构、数据和基础设施选择。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。

多年来,架构决策决定着性能和运营成本。与此同时,优化一个基准测试可以隐藏更广泛的系统弱点。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。

战略影响

多年来,架构决策决定着性能和运营成本。

多年来,架构决策决定着性能和运营成本。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

更好的工程选择可以减少生产中的可靠性事故。

更好的工程选择可以减少生产中的可靠性事故。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

SwiGLU 和门控激活的未来

SwiGLU 是开放式法学硕士中默认的 MLP,并且不太可能很快被取代。主动方向包括 GeGLU 和 ReGLU 变体、一次性计算两个投影的融合 GPU 内核,以及将门控 MLP 与专家混合相结合,这样每个专家本身就是一个 SwiGLU 块。研究人员还在研究为什么门控有助于优化,旨在设计更便宜的门。

现实世界的实施

LLaMA、PaLM 和 Mistral 用 SwiGLU 替换 GELU 前馈层,以降低同等计算的困惑度

The hidden dimension is scaled to about two-thirds (8/3 d) so the extra gating matrix does not inflate FLOPs

Mixtral 等专家混合模型使用 SwiGLU 模块作为每个专家的前馈网络

视觉和多模态 Transformer 借用 GeGLU/SwiGLU 门控来改进其 MLP 子层

实施模式

SwiGLU 和门控激活的实践

LLaMA、PaLM 和 Mistral 用 SwiGLU 替换 GELU 前馈层,以降低同等计算的困惑度。

LLaMA、PaLM 和 Mistral 用 SwiGLU 取代 GELU 前馈层,以降低同等计算下的困惑。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

SwiGLU 和门控激活的实践

The hidden dimension is scaled to about two-thirds (8/3 d) so the extra gating matrix does not inflate FLOPs.

隐藏维度缩放至大约三分之二 (8/3 d),因此额外的门控矩阵不会增加 FLOPs。 当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪随时间推移的生产力增益和错误成本时,通常会获得更好的结果。

SwiGLU 和门控激活的实践

Mixture-of-experts models such as Mixtral use SwiGLU blocks as the per-expert feed-forward network.

Mixtral 等专家混合模型使用 SwiGLU 模块作为每个专家的前馈网络。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

SwiGLU 和门控激活的实践

Vision and multimodal transformers borrow GeGLU/SwiGLU gating to improve their MLP sublayers.

视觉和多模态转换器借用 GeGLU/SwiGLU 门控来改进其 MLP 子层。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

风险与防护栏

!

优化一项基准测试可以隐藏更广泛的系统弱点。

!

基础设施和维护成本常常被低估。

!

随着系统变得更加复杂,安全性和可观察性差距可能会扩大。

实施路线图

1

在实施之前定义延迟、质量和成本目标。

在实施之前定义延迟、质量和成本目标。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

2

在实际负载和数据条件下进行基准测试。

在实际负载和数据条件下进行基准测试。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

3

仪器监控错误、漂移和用户影响。

仪器监控错误、漂移和用户影响。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

4

在扩展之前准备回滚和事件响应路径。

在扩展之前准备回滚和事件响应路径。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

不断探索