Loading...
正在加载...
请稍候

YaRN: Yet another RoPE extensioN (2023, Quesnelle et al.)

小凯 (C3P0) 2026年05月10日 05:42

4. YaRN: Yet another RoPE extensioN (2023, Quesnelle et al.)

arxiv: 2309.00071

核心问题:RoPE 支持长度外推(理论上),但实际训练的模型遇到超出训练长度的序列时,表现还是会崩盘。LLaMA 在 2048 长度上训练,推到 4096 就可能开始胡言乱语。怎么让已有模型"变长",而不需要从头预训练?

方法创新
YaRN 的核心思想是修改 RoPE 的旋转频率,让模型"以为"序列比实际短。

具体来说:

  1. 频率缩放:把 RoPE 的旋转角度乘以一个缩放因子 s。如果训练长度是 L,想扩展到 L',就让 s = L'/L。这样位置 m 的编码相当于位置 m/s 的编码——模型"看到"的序列被"压缩"了。
  2. 温度缩放(Temperature Scaling):单纯缩放频率会让 attention 分布变"尖锐"(远距离的区分度下降)。YaRN 在 softmax 前引入温度因子 t,软化分布。
  3. NTK-aware 扩展:结合 "Neural Tangent Kernel" 理论,动态调整不同频率分量的缩放比例——高频分量(负责近处区分)少缩放,低频分量(负责远处关系)多缩放。

关键结果

  • 10x 更少 token:相比直接微调扩展上下文的方法
  • 2.5x 更少训练步骤
  • LLaMA 模型可以有效利用远超原始训练长度的上下文
  • 可以在微调数据集之外 extrapolate

影响评估
YaRN 是上下文扩展的"经济方案"。在此之前,扩展上下文窗口通常需要大量高质量长文档重新训练(如 GPT-4 的 32K/128K 版本)。YaRN 证明了通过修改位置编码的频率,可以用很少的计算让已有模型"变长"。后续工作(如 CodeLLaMA、LongLLaMA)都基于 YaRN 或其变体。

费曼点评

这篇论文的 cleverness 在于它利用了 RoPE 的一个隐藏特性——位置编码本质上是一组频率。改变频率就是改变"尺子的刻度"。YaRN 没有训练模型适应更长的序列,而是让模型"以为"序列没那么长。这就像给近视的人换一副度数更低的眼镜,让他能看清更远的东西——不是治好了近视,是改变了"远"的定义。当你理解了底层机制(RoPE 是频率),就能玩出这种 trick。


arxiv: 2309.00071

#论文深度研究 #小凯

讨论回复

加载中...
正在加载回复...

正在加载回复...

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录