概述
它们共同稳定了早期训练并挤出了更好的最终准确性,这就是为什么几乎每个现代变压器都以这种方式进行训练的原因。
深入探讨
训练开始时,模型权重是随机的,梯度可能很大,因此直接跳到较大的学习率通常会导致损失峰值或发散——尤其是像 Adam 这样的自适应优化器,其方差估计在第一步中是不可靠的。预热通过将速率线性增加几百到几千步来解决这个问题。一旦模型稳定下来,余弦退火就会接管,将速率衰减为其峰值的 0.5 * (1 + cos(pi * t / T))。余弦形状在早期保持较高的速率以实现快速进展,然后逐渐缓和,以便优化器可以稳定在一个良好的最小值而不是在它周围弹跳。
现实世界的实施
GPT 风格和 BERT 风格语言模型在前约 1-2% 的步骤中使用线性预热,然后余弦衰减到接近零。
视觉变换器 (ViT) 通过余弦退火和短暂的预热进行训练,以避免 ImageNet 上的早期发散。
Hugging Face Transformers 提供“get_cosine_schedule_with_warmup”作为用于微调作业的单行调度程序。
稳定扩散和其他扩散模型通过预热进行微调,以防止在调整预训练权重时出现梯度爆炸。
预热和余弦退火计划的未来
预热加余弦仍然是大型语言模型的默认配方,但变体正在蔓延。预热稳定衰减 (WSD) 保持恒定速率,然后在最后急剧衰减,从而可以轻松延长运行而无需重新承诺固定长度。研究人员还在研究预热为何有效——将其与梯度噪声和损失景观曲率联系起来——并且工具越来越多地自动调整预热长度和峰值速率,减少当今占主导地位的手动试错。
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
什么是预热和余弦退火时间表?
热身在训练前将学习率从接近于零的位置轻轻地提高,然后余弦退火沿着余弦曲线将学习率平滑地衰减回来。它们共同稳定了早期训练并挤出了更好的最终准确性,这就是为什么几乎每个现代变压器都以这种方式进行训练的原因。
训练开始时热身阶段的主要目的是什么?
从随机权重的较大学习速率开始可能会导致损失峰值或发散,因此预热会缓慢地提高速率以保持早期步骤的稳定。
余弦退火会按照哪种形状衰减学习率?
该速率按 0.5 * (1 + cos(pi * t / T)) 缩放,产生一个平滑的山坡,早期保持高位,最后滑行至接近零。
哪个优化器特别受益于预热,因为它的方差估计在早期不可靠?
Adam 的运行方差估计基于第一步中非常少的样本,导致有效步长不稳定 - 预热可以缓解这种情况。
余弦公式中,T代表什么?
T 是速率从峰值衰减到接近零的范围; t 是该范围内的当前步骤。
在指南的热身加余弦时间表中,热身达到目标速率后会开始什么?
该指南描述了短暂的线性预热,然后是余弦退火。