YARN

波长的引入

  • #card 在某个维度i下,波长被定义为:λi=2πθi=2πb2i/d=2πb2i/d\lambda_i=\frac{2 \pi}{\theta_i}=\frac{2 \pi}{b^{-2 i / d}}=2 \pi b^{2 i / d} ,因此,有如下结论:

    • 波长可描述为:在维度处嵌入的旋转位置执行全旋转 2π2 \pi 所需的token长度。

    • 维度越高波长越长。

  • 波长描述了维度i处执行全旋转2π所需的token长度 #card
    image.png

  • YaRN 和 PI和NTK这种类型的插值方案区别 #card

    • 像PI和NTK这种类型的插值方案不关心波长的维数,可以将其称为“盲”插值方法(blind interpolation),因为它们面对所有RoPE隐藏维度没有做任何针对性的处理。

    • YaRN,可将其归类为“有针对性的”插值方法,即对RoPE的不同维度做出不同处理。

[[NTK-by-parts]](局部NTK)

YARN

  • YARN 在实际使用过程中,为了实现该公式,只需要将m位置和 nn 位置的旋转位置嵌入各自缩放为原来的 1/t1 / \sqrt{t} 即可。 #card
    image.png
作者

Ryen Xiang

发布于

2025-04-20

更新于

2025-04-20

许可协议


网络回响

评论