想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符

我们知道在使用 GPT 和 LLaMA 等大型语言模型时,输入的 prompt 存在字符数限制,比如 ChatGPT 目前的输入字符限制是 4096 个字符 。这会限制上下文学习和思维链等技术的发挥空间,毕竟用户只能提供有限的示例数量 。近日,Nous Research、EleutherAI 和日内瓦大学的一个研究团队提出了一种扩展上下文窗口的方案 YaRN,并在实验中取得了优于其它所有方法的效果,而且他们还发布了使用 YaRN 微调过的 LLaMA 2 7B/13B 模型,其上下文窗口为 64k 和 128k 。

想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符

文章插图
图片来源:由无界 AI 生成
基于 Transformer 的大型语言模型(LLM)已经展现出执行上下文学习(ICL)的强大能力,并且几乎已经成为许多自然语言处理(NLP)任务的不二选择 。Transformer 的自注意力机制可让训练高度并行化,从而能以分布式的方式处理长序列 。LLM 训练所用的序列的长度被称为其上下文窗口 。
Transformer 的上下文窗口直接决定了可以提供示例的空间量,从而限制了其 ICL 能力 。
如果模型的上下文窗口有限,那么为模型提供稳健示例的空间就更少,而这些稳健示例正是执行 ICL 所用的 。此外,当模型的上下文窗口特别短时,摘要等其它任务也会受到严重妨碍 。
就语言本身的性质来说,token 的位置对有效建模来说至关重要,而自注意力由于其并行性,并不会直接编码位置信息 。Transformer 架构引入了位置编码来解决这个问题 。
原始的 Transformer 架构使用了一种绝对正弦位置编码,之后其被改进成了一种可学习的绝对位置编码 。自那以后,相对位置编码方案又进一步提升了 Transformer 的性能 。目前,最流行的相对位置编码是 T5 Relative Bias、RoPE、XPos 和 ALiBi 。
位置编码有一个反复出现的限制:无法泛化在训练期间看到的上下文窗口 。尽管 ALiBi 等一些方法有能力做一些有限的泛化,但还没有方法能泛化用于显著长于其预训练长度的序列 。
已经出现了一些试图克服这些限制的研究成果 。比如,有研究提出通过位置插值(PI)来稍微修改 RoPE 并在少量数据上微调来扩展上下文长度 。
两个月前,Nous Research 的 Bowen Peng 在 Reddit 分享了一种解决思路,即通过纳入高频损失来实现「NTK 感知型插值」 。这里的 NTK 是指 Neural Tangent Kernel(神经正切核) 。
想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符

文章插图
其声称经过 NTK 感知型扩展的 RoPE 能让 LLaMA 模型的上下文窗口大幅扩展(超过 8k),同时还无需任何微调,对困惑度造成的影响也极小 。
近日,他与另外三位合作者的相关论文出炉了!
想让大模型在prompt中学习更多示例,这种方法能让你输入更多字符

文章插图
  • 论文:https://arxiv.org/abs/2309.00071
  • 模型:https://Github.com/jquesnelle/yarn
在这篇论文中,他们对 NTK 感知型插值做出了两点改进,它们分别侧重于不同的方面:
  • 动态 NTK 插值法,无需微调就能用于预训练模型 。
  • 部分 NTK 插值法,当使用少量更长上下文的数据微调后,模型能取得最佳表现 。
研究者表示,在这篇论文诞生前,就已经有研究者将 NTK 感知型插值和动态 NTK 插值用于一些开源模型 。比如 Code Llama(使用 NTK 感知型插值)和 Qwen 7B(使用动态 NTK 插值) 。
在这篇论文中,基于之前有关 NTK 感知型插值、动态 NTK 插值和部分 NTK 插值的研究成果,研究者提出了 YaRN(Yet another RoPE extensioN method),一种可以高效扩展使用旋转位置嵌入(Rotary Position Embeddings / RoPE)的模型的上下文窗口的方法,可用于 LLaMA、GPT-NeoX 和 PaLM 系列模型 。研究发现,只需使用原模型预训练数据规模大约 0.1% 量的代表性样本进行微调,YaRN 就能实现当前最佳的上下文窗口扩展性能 。
方法
旋转位置嵌入(Rotary Position Embeddings / RoPE)最早由论文《RoFormer: Enhanced transformer with rotary position embedding》引入,也是 YaRN 的基础 。
简单来说,RoPE 可以写成如下形式:
对于使用固定上下文长度预训练的 LLM,如果使用位置插值(PI)来扩展上下文长度,则可以表示为:
可以看出 PI 对所有 RoPE 维度都会做同等延展 。研究者发现 PI 论文中描述的理论插值界限不足以预测 RoPE 和 LLM 内部嵌入之间的复杂动态 。下面将描述研究者发现并解决的 PI 的主要问题,以便读者了解 YaRN 中各种新方法的背景、起因和解决理由 。
高频信息丢失 ——NTK 感知型插值


推荐阅读