技术指南

YaRN 和上下文长度扩展

YaRN(另一种 RoPE 扩展)是一种有效的技术,可以将模型的可用上下文窗口扩展到远远超出其训练范围的范围。

阅读时间:2分钟最后更新

概述

It cleverly rescales rotary position embeddings so a model trained on, say, 4K tokens can handle 32K or more with minimal fine-tuning.

深入探讨

大多数现代法学硕士都使用 RoPE(旋转位置嵌入)对令牌位置进行编码,它按与位置相关的角度旋转查询和键向量。当您输入的序列比训练长度长时,这些旋转会进入看不见的范围,并且模型会崩溃。 YaRN 由 Bowen Peng 及其合作者于 2023 年推出,通过按频率应用 NTK 感知插值来修复此问题:它使高频维度(捕获本地、短程关系)基本保持不变,同时插值低频维度(跟踪远程位置)。 YaRN 还为注意力添加了温度调整,以应对来自较长上下文的熵变化。仅对朴素方法所需的一小部分数据和步骤进行微调后,结果是强大的长上下文性能。

技术洞察

RoPE 为每个嵌入维度分配一个旋转频率。朴素的线性插值同等地压缩所有频率,损害了编码精细局部细节的高频维度。 YaRN 使用斜坡函数仅对低频(长波长)维度进行插值,同时保留高频维度,再加上 1/sqrt(t) 注意力温度缩放,可随着序列长度的增长保持 softmax 锐度稳定。这种按部分 NTK 的方法扩展了上下文,并且降级少得多。

战略影响

成本与预算

多年来,架构决策决定着性能和运营成本。

更清晰的判决

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。

质量控制

更好的工程选择可以减少生产中的可靠性事故。

YaRN 和上下文长度扩展的未来

上下文扩展现在已成为标准做法:开放模型通常会提供达到 128K 令牌或更多的 YaRN 扩展变体。研究正在转向通过零或接近零微调来扩展上下文、将 RoPE 重新缩放与注意力模式技巧相结合、并在整个窗口(而不仅仅是两端)保持质量的方法。预计这些技术会更紧密地集成到预训练中,因为长上下文是原生的而不是改造的。

现实世界的实施

通过简单的微调将开放的 4K 上下文模型扩展到 32K 或 128K,以进行长文档问答

使检索增强系统能够摄取许多串联的段落而不被截断

为需要整个大型存储库文件或一次提示中的多个文件的代码助手提供支持

针对积累大量聊天历史的长时间多轮对话调整基本模型

风险与防护栏

优化一项基准测试可以隐藏更广泛的系统弱点。

基础设施和维护成本常常被低估。

随着系统变得更加复杂,安全性和可观察性差距可能会扩大。

实施路线图

1

在实施之前定义延迟、质量和成本目标。

2

在实际负载和数据条件下进行基准测试。

3

仪器监控错误、漂移和用户影响。

4

在扩展之前准备回滚和事件响应路径。

不断探索

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the YaRN and Context Length Extension quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

开始测验

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

下一个指南

用于上下文扩展的位置插值

常见问题

What is YaRN and Context Length Extension?

YaRN(另一种 RoPE 扩展)是一种有效的技术,可以将模型的可用上下文窗口扩展到远远超出其训练范围的范围。它巧妙地重新缩放旋转位置嵌入,因此在 4K 令牌上训练的模型可以通过最少的微调处理 32K 或更多。

YaRN 修改了什么位置编码方法来扩展上下文?

YaRN,其名字的意思是“又一个 RoPE 扩展”,它重新调整了大多数现代法学硕士中使用的旋转位置嵌入。

当 RoPE 模型看到的序列比其训练长度长时,会出现什么问题?

超出训练的位置会产生模型从未见过的旋转角度,因此注意力行为会急剧下降。

YaRN 如何处理不同的 RoPE 频率维度?

YaRN 使用 NTK 分段斜坡来插入长波长低频调光,并让短程高频调光基本保持不变。

除了重新调整频率之外,YaRN 还应用了哪些额外调整?

YaRN 为注意力逻辑添加了温度缩放,以抵消随着上下文增长而发生的熵变化。

与朴素插值相比,YaRN 的关键实际优势是什么?

在对一小部分原始方法所需的数据进行微调后,YaRN 实现了强大的长上下文质量。