文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

语言模型窗口外推技术综述

2024-11-29 17:58

关注

绝对位置编码与相对位置编码:介绍了绝对位置编码和相对位置编码的基本原理,包括三角函数编码和旋转位置编码(RoPE)的运作机制 。

窗口外推的概念与意义:详细阐述了什么是窗口外推,为什么窗口外推对于语言模型的重要性,以及当前的研究挑战 。

当前窗口外推技术的现状:分析了不同的窗口外推方法及其各自的优缺点,如限制注意力流派和调整旋转速度流派 。

未来展望:展望了未来窗口外推技术的发展方向,特别是对 RoPE 的进一步研究和模型架构优化的可能性 。

二、绝对位置编码

1. 三角位置编码介绍

三角函数式 (Sinusoidal) 位置编码是在原 Transformer 模型中使用的一种绝对位置编码,其函数形式是:

其中 $p_{k,2i},p_{k,2i+1}$ 分别是位置索引 $k$ 处的编码向量的第 $2i,2i+1$ 个分量。在一般实践中 n=10000。

2. 性质

对于每个 dimension 而言,有

因此对于每个横坐标而言,都是一个正弦波,且波长和 dimension 大小是指数关系。这里说明了低 dimension 存储了高频分量,而高 dimension 存储了低频分量。

对于每个 token 而言,每个奇数坐标的正弦值如下所示:

波动是随着 token 靠后变大的,最终波长趋于 2πn/k。

还有个性质就是对于每一对(cos 和 sin),平方和为 1。

计算 qkv 的时候,我们知道有:

于是点积形式:

我们实际需要:

即所有的 p_n,p_m 都转化为 delta 的形式,这样就不存在基坐标的表示形式,有利于我们建模(具有平移不变性)。

3. 推论

另一个有用的推论,对于 p_2=p_1+k,有:

可以看到绝对位置编码是可以分解的,系数和 k 有关。但这个分解的结构性质告诉我们如果需要外推则需要两个域内的特征表示。

三、相对位置编码

1. 静态位置编码

ALiBi 的做法是不添加 position embedding,然后添加一个静态的不学习的 bias。

具体而言:

其中 n 为 attention 头个数:

效果也挺好。

2. 旋转位置编码

(1)小背景

什么是旋转矩阵,将二维的点逆时针绕原点旋转 θ 的表示。

目标,每个词都在单位圆上的 unique 位置,每个词(或者任意间隔的词)的距离显然一致(在 L2 空间上)。

(2)推理

在二维空间,内积空间退化为点积形式(其中⟨x,y⟩=x^T My 且 M=I),我们首先让这个部分表示为相对位置编码:

因为我们在二维空间,则可以用复数推理,复数的内积有:

假设存在复数等于该式子,利用欧拉公式有:

假设初始辐角为 ϕ_0=0,幅值为 1,一些特解:

递推公式:

这里多少角度其实无所谓,因此有解:

高维偶数空间的表示(注意这里只表达了在每个子空间上 ϕ_0=0,幅值为 1 的形式)。

为什么这是对的,因为内积是线性的。

(3)远程衰减

当距离趋于无穷时,有:

如果使用三角位置编码的方式,即:

因此内积可以被写作:

最后一步假设位置编码向量长度趋于无穷。

这个编码确实有衰减趋势。

但不代表就这一种合理的衰减形式,只要单调递减且大于 0 基本都没有太大的问题。

(4)矩阵形式

于是对于任意的 qkv 而言,有这样一般的嵌入(这里只写了 q 向量,其他向量也是如此):

二维嵌入:

RoPE 中,将 hidden states 的每两维看做一个二维坐标系,位置编码从“加”的方式变为对 hidden states 做“旋转”的方式参与计算,这也符合上述内容。

不同的“二维坐标系”(一般为头大小 128/2=64 个)有不同的旋转单位角,因此表达了不同频率的信息。每个子空间的旋转角为:

在 llama 中设置:

这个矩阵为什么保证了相对位置,因为:

其中旋转矩阵的转置就是往相反的方向旋转,于是该式子自然成立,保证了相对位置的一致性。

因为该矩阵是稀疏的,因此有:

注意⊗是逐位乘法,也可以写成点积的形式,效果一样。

(5)N 进制编码

比如要编码更长的数字,在不损失数字精度的方案的情况下,有图示的几种解法:

这个例子中的数字在 RoPE 中就是旋转角度。

四、外推能力

1. 外推动机

外推:让语言模型能够以一定的性能理解并生成超过其预训练窗口长度的文本。

为什么需要外推?

补充一下知识:

这个是 LM 的对数似然:logP(x)=∑_(i=1)^n▒log P(x_i |x_1,x_2,…,x_(i-1) )。

这个是 perplexity,可以看到两者是一致的:最小化 perplexity 等于最大化 LM 的对数似然:"Perplexity" (x)=exp(-1/n ∑_(i=1)^n▒log P(x_i |x_1,x_2,…,x_(i-1) ))。

为什么当前的 RoPE based LLM 难以“无痛”外推?

我们发现高频分量是充分学习的,因此可以外推,而低频分量不行。

2. 实现外推的方式

目前常见的有这几种形式:

(1)限制注意力流派

既然直接外推时对远程信息建模会出现 OOD 问题,那最直接的方式是在“少看”甚至“不看”远程信息的情况下建模长序列(只要我的建模序列的一个 layer 上的感受野大小和训练时保持一致即可)。

比如 SWA(在 Mistral 的报告中有)。

或者 Alibi 的将远处的 token 压低概率,使得其不出现在感受野中。

(2)调整旋转速度流派

既然对长距离的信息建模崩坏是因为“旋转”了“没见过”的角度,那么就让推理时的各token 间的相对旋转角度的区间映射回训练过的“熟悉”区间上去!

那么如何回到原来的训练分布上?

旋转角度=相对距离*单位角

①位置内插

第一种就是很朴素的位置内插(Extending Context Window of Large Language Models via Positional Interpolation),这样修改了相对距离。

也就是将原始训练长度 L 外推到 L^' 上,即加上一个线性变换:

然而,位置内插并不算长度外推方案,至少不是免训练的长度外推方案,因为位置内插之后同样会有 PPL 爆炸的问题。原因也不难理解,尽管位置内插避免了远处的位置越界问题,但这同时压缩了邻近 Token 的距离,严重扰乱了模型的局部分辨率,而众所周知语言模型本身就是一个非常依赖于局部关系的任务,所以扰乱了局部自然就没法预测准了。

不过,这也并非说位置内插就没有价值了。我们知道,需要长度外推的读者,无外乎是两种情况:一种是没有资源去做长文本微调,希望能够从短文本模型直接得到一个可用的长文本模型,这种需求对长度外推的效果要求会比较高,位置内插就不适合他们了;另一种是有资源去做长文本微调,研究长度外推纯粹是为了得到一个更好的初始化模型,这种情况对模型修改带来的初始损失容忍度比较高,只要能够通过微调快速弥补回损失掉的效果即可,位置内插正好是属于此类方法。Meta 的论文显示,经过 PI 之后,仅需 1000 步左右的长文本训练,就可以得到一个行之有效的长文本模型,这比不做任何修改直接微调的训练效率高出很多。

这种方案的一种修改则是 NTK-by-parts:

基于这个规则(高频的不插值,低频的插值,中间的线性过渡)对于长度为d 的第 i 维,比率为:

给出 ramp function:

对于 llama 而言,这里的超参数为:

缩放形式为:

其实就是位置内插的加权平均,超过 β 就不插值,低于 α 就纯插值。

②NTK(减小单位角)

第二种基于 YaRN: Efficient Context Window Extension of LargeLanguage Models 的 NTK-aware 方式。

就是缩小每个字空间的单位角(这是一种非线性变换)。

其中 α 为缩放系数,这实际上有以下的好处,首先:不是将 RoPE 的每个维度平均缩放一个因子,而是通过减少对高频区域的缩放和增加对低频区域的缩放(即高频不缩放,低频才缩放),从而将插值压力分散到多个维度,尤其是较低的维度。我们可以计算一下调节的比率。

当 i→1 时,比率趋近于 1;

当 i→d/2 时,比率趋近于 1/α。

③增大单位角

第三种是反而是在预训练的过程调小 base,让模型充分感知 at least 一个周期的频谱,这样是否在推理的阶段不需要做任何操作呢?

实际上不行,不行是因为效果差。

3. 外推能力评测

大海捞针测试是大语言模型信息检索能力的重要参考。通过在长文本中随机插入关键信息,形成大型语言模型(LLM)的Prompt。该测试旨在检测大型模型是否能从长文本中提取出这些关键信息,从而评估模型处理长文本信息提取的能力,这可以反映LLM对长文本的理解基础能力。

在给定文本块中插入一段信息之后检索该 needle。

4. 长文本信息依赖

我们发现如果把 base 变小,即使模型已经充分感知到了 rotation(因为在 context 长度上已经转过了至少一圈)但效果很差。我们在前面已经了解到了相对位置编码(这里特指旋转位置编码)是有远程衰减性质的。

如果 base 变大的话远距离的 token 压制变小,因此长文本的 attention 会比 base 小的要大一点,因此小 base 损失了很大一部分 attention 的能力。这也能从上面的实验中看出。这里我们可以更具体地表达这部分内容。定义:

其中前半部分为相似 token 间注意力的期望,后半部分是随机 token 间注意力的期望,假设 qk 是 i.i.d. 的,且各自的均值和方差为 μ,σ,且 k^*=q+ϵ,则有:

五、问答环节

Q1:位置编码(旋转位置编码)的物理意义与直观解释?

A1:单位角代表了旋转速度。旋转速度快的,那么建模了距离较近的信息,远的则建模较远信息。

Q2:外推的价值,是否需要建模长距离(可以讲前面的变成摘要)?

A2:这不矛盾。模型可以有能力阅读所有的文本,但毕竟这是二次复杂度的(attention operation),当然也可以对长文本去做一个切片,或者说去做一个分割,这是应用决定的。

Q3:BERT 可以做相对位置编码吗?

A3:没有不可以,但目前没人做。

Q4:9.11<9.9可以用 PE 解决吗?

A4:这个是 LLM 在理解和感知 token 上的问题,和 PE 没什么关系。

Q5:外推效果有损,衡量指标是什么?能到原来的多少?

A5:base 调小在前面说了虽然 ppl 还可以但效果很差,对位置感知很混沌,因为丧失了对长距离的感知。ppl 相对稳定,但比原来的有上移。衡量指标指标就是 ppl 和 needle seeking。base 变大的话对模型性能影响不大,完全可以接受。

来源:DataFunTalk内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯