渐变剪裁
一种简单且广泛使用的保护措施,可限制训练期间梯度更新的大小。
概述
它可以防止单个巨大更新破坏模型的稳定性或破坏模型,特别是在循环模型和语言模型中。
深入探讨
梯度裁剪在优化器应用梯度之前限制梯度的大小。最常见的形式是按范数剪辑:计算所有梯度的总 L2 范数,如果它超过选定的阈值,则将每个梯度缩小相同的因子,使范数等于阈值。这保留了更新的方向,同时缩小了其幅度。一个更简单的变体,按值剪辑,只是将每个单独的梯度分量限制在固定范围内,如 [-5, 5],但它可能会扭曲更新方向。剪裁在 RNN 和 LSTM 中至关重要,因为梯度爆炸很常见,而且它是训练大型语言模型中几乎通用的成分,在这些模型中,偶尔出现的不良批次或稀有标记可能会产生损失尖峰和 NaN。
技术洞察
在按范数剪辑中,您计算 g_norm,即级联梯度向量的 L2 范数。如果 g_norm 超过阈值 c,则将每个梯度乘以 c / g_norm;否则你就让它们保持不变。由于您按相同标量缩放所有分量,因此保留下降方向,并且仅限制步长。按值剪辑独立地夹紧每个元素,这可以改变方向但可靠地限制每个组件。
战略影响
成本与预算
多年来,架构决策决定着性能和运营成本。
更清晰的判决
技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
质量控制
更好的工程选择可以减少生产中的可靠性事故。
梯度裁剪的未来
裁剪仍然是几乎所有大规模训练方案中的默认设置,因为它便宜且强大。研究正在使用自适应方案对其进行改进,该方案根据最近的梯度统计数据自动设置阈值,而不是固定的手动调整值,并使用每层或坐标方式裁剪。梯度剪裁还支持差分隐私训练(DP-SGD),其中每个示例的剪裁限制了每个样本的影响,因此校准噪声可以保证隐私,而不需要任何一条记录主导模型。
现实世界的实施
训练 LSTM 进行文本生成时,工程师设置了 Clipnorm=1.0,因此罕见的爆炸批次不会破坏学习。
大型语言模型训练运行几乎普遍会削减全局梯度范数(通常为 1.0)以抑制损失峰值。
DP-SGD 在添加高斯噪声之前将每个示例的梯度限制为固定范数,从而强制执行正式的差分隐私保证。
观察 TensorBoard 中损失峰值的从业者会降低剪辑阈值,曲线变得平滑且稳定。
风险与防护栏
优化一项基准测试可以隐藏更广泛的系统弱点。
基础设施和维护成本常常被低估。
随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
实施路线图
在实施之前定义延迟、质量和成本目标。
在实际负载和数据条件下进行基准测试。
仪器监控错误、漂移和用户影响。
在扩展之前准备回滚和事件响应路径。
不断探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Gradient Clipping quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常见问题
什么是渐变裁剪?
一种简单且广泛使用的保护措施,可限制训练期间梯度更新的大小。它可以防止单个巨大更新破坏模型的稳定性或破坏模型,特别是在循环模型和语言模型中。
在限制更新的同时,按范数裁剪梯度裁剪主要保留什么?
按范数剪辑按相同标量缩放所有梯度,因此保留下降方向,而仅限制步长。
在阈值 c 的按范数剪辑中,当梯度范数 g_norm 超过 c 时会发生什么?
当范数太大时,每个梯度都会按 c / g_norm 重新缩放,因此所得范数等于阈值 c。
梯度裁剪是专门为了解决哪个问题而设计的?
裁剪限制了更新的幅度,直接防止了梯度爆炸导致的巨大且不稳定的步骤。
按值剪辑与按规范剪辑有何不同?
按值剪辑将每个元素限制在固定范围内,如 [-5,5];由于组件是独立剪切的,因此整体方向可能会发生变化。
为什么梯度裁剪在大型语言模型训练中几乎普遍存在?
在大规模上,稀有的输入可以产生巨大的梯度;限制全球正常水平可以防止这些峰值破坏运行的稳定性。