🤖
有问题?问 AI Ask AI
BLOG

大模型缩放老翻车?你可能根本没调对嵌入层的学习率

#Papers

那些年我们踩过的 Scaling 巨坑

回头看我读博的前两年,最痛苦的莫过于调参。那时候炼丹全凭感觉和微弱的直觉,最怕遇到的情况就是:明明在几百兆的小模型上跑得好好的,各种指标美如画,一搬到百亿参数的大模型上,Loss 直接起飞,要么梯度爆炸,要么不收敛。当时我们天真地以为,大模型就是需要更小的学习率,于是像无头苍蝇一样在十倍、百倍的区间里盲目摸索,浪费了无数昂贵的算力。

直到最近,微软等机构的研究者在 arXiv 上发表了名为《Quantifying Hyperparameter Transfer and the Importance of Embedding Layer Learning Rate》的论文,才算把这个困扰了无数炼丹师的底层逻辑给说明白了。今天我们就用过来人的反思视角,聊聊为什么你的大模型缩放(Scaling)总是翻车,以及如何通过精准调控嵌入层学习率来打通这条通往大模型的通天路。

阶段一:小模型上的灵感萌芽与超参基准确立

在训练大模型的早期准备阶段,我们通常会采用最大参数传输(Maximal Update Parametrization,简称 μP)框架。这个框架理论上允许我们直接从小模型外推(Extrapolate)出大模型的最佳超参数,比如学习率和权重衰减。然而,在实际操作中,大家会发现这个迁移过程往往在嵌入层(Embedding Layer)上掉链子。

这篇关于嵌入层学习率的研究一针见血地指出,嵌入层在整个神经网络中扮演着极其特殊的角色。在 Transformer 结构中,普通的注意力层和前馈网络层的参数随着模型宽度的增加而急剧膨胀,但嵌入层的参数量却主要由词表大小和特征维度决定。如果我们对嵌入层和普通层使用完全相同的学习率缩放规则,就会导致一个严重的后果:当模型变宽时,嵌入层的梯度更新尺度会与其它层严重失调,进而破坏了 μP 框架的理论假设。

论文通过详尽的定量实验证明,要想让超参迁移完美生效,必须将嵌入层的学习率独立出来。具体来说,当模型规模从小变大时,普通层的学习率需要按照特定的缩放比例下降,而嵌入层的学习率则应该保持相对独立,甚至需要使用一个常数级别的更大学习率。这一发现直接推翻了过去将所有层一视同仁的粗暴做法。

阶段二:中等规模过渡期的方差控制与蒸馏优化

当我们迈过了最初的超参确立阶段,进入中等规模模型的微调和蒸馏期时,另一个幽灵往往会悄然出现,那就是高方差导致的训练不稳定。这不仅存在于语言模型中,在生成式扩散模型的下游应用和单步蒸馏中尤为明显。

为了解决这个痛点,另一篇值得深入研读的最新论文《Variance Reduction for Expectations with Diffusion Teachers》给出了非常漂亮的解法。在将大模型(如 Diffusion 教师模型)的知识迁移到轻量化学生模型的过程中,传统的估计方法会引入极大的样本方差,导致学生模型在训练中后期出现性能震荡甚至崩盘。

该研究提出了一种全新的减方差(Variance Reduction)技术。通过引入控制变量和更精准的期望估计器,他们成功在不增加计算开销的前提下,将蒸馏过程中的方差降低了几个数量级。这与嵌入层学习率调优的逻辑本质上是相通的:大模型训练的本质,就是在高维参数空间中寻找一条低方差、高确定性的收敛路径。无论是优化嵌入层的学习率,还是在蒸馏时引入方差缩减,都是在为模型搭建更加平稳的梯度阶梯。

顺便提一句,如果你正在为自己的研究寻找合适的发表契机,或者想紧跟最新的前沿学术动态,本站的 CCF/EI/Scopus 会议时间表 会每日自动更新,适合设为日常巡查页面,方便大家提前规划 NeurIPS、ICLR 或 CVPR 等顶级会议的投稿节奏。

阶段三:百亿级模型冲刺前的系统协同与实操演练

现在,我们终于要将模型推向百亿参数的终极规模。在这个冲刺阶段,你不能再有任何侥幸心理。结合上述两篇论文的方法论,我们可以梳理出一套标准且具有高度可执行性的实操流程线。

独立隔离嵌入层的参数组

在编写 PyTorch 训练脚本时,千万不要图省事直接把 model.parameters() 一股脑丢给 AdamW 优化器。你需要显式地将 embedding 层的参数过滤出来,作为一个独立的 parameter group。在这个组里,你需要冻结或者采用与 Transformer 骨干网络完全不同的学习率缩放策略。通常的做法是,让骨干网络的学习率随维度增加而衰减,而嵌入层学习率保持在一个相对较高且恒定的水平。

在极小尺度上进行网格搜索

利用 μP 框架,在参数量仅为几千万的小模型上,对骨干网络学习率和嵌入层学习率进行二维网格搜索。因为小模型训练成本极低,你可以尽情尝试各种组合。一旦找到那条最优的超参对角线,就可以信心满满地直接外推到百亿甚至千亿模型,而不需要在大模型上浪费一次试验机会。

引入方差平滑机制稳定长程训练

在训练的中后期,随着步数的增加,累计方差会逐渐侵蚀模型的泛化能力。此时,可以借鉴减方差论文中的思想,在梯度聚合阶段引入指数移动平均(EMA)或者在损失函数中加入方差惩罚项。这能够有效避免大模型在训练到几十万个 step 时突然发生的 loss spike 现象。

回头看:给后来者的避坑建议

现在回想起来,很多时候我们在炼丹时遇到的玄学问题,其实底层都有着极其严谨的数学机理。以前我们总觉得大模型缩放是个拼资源、拼运气的体力活,但随着《Quantifying Hyperparameter Transfer and the Importance of Embedding Layer Learning Rate》这类优秀工作的涌现,这个领域正在变得越来越科学、越发可预测。

如果你正准备跟进这个方向,我的建议是不要盲目迷信各种开源大模型的默认配置。那些配置往往是各大厂用无数算力生生堆出来的局部最优解,一旦你的数据分布、微调任务或者模型架构发生微调,这些默认参数就会瞬间失效。多花时间去理解参数更新的动态平衡,在动手跑大实验之前,先在小模型上把超参迁移的曲线画漂亮。只有这样,你才能在学术研究或工程落地中,少走弯路,一击必中。

返回博客列表Back to Blog