技术指南

YaRN 和上下文长度扩展

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

概述

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

YaRN 和上下文长度扩展是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。

深入探讨

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

技术洞察

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

掌握 YaRN 和上下文长度扩展

YaRN(另一种 RoPE 扩展)是一种有效的技术,可以将模型的可用上下文窗口扩展到远远超出其训练范围的范围。它巧妙地重新缩放旋转位置嵌入,因此在 4K 令牌上训练的模型可以通过最少的微调处理 32K 或更多。 YaRN 和上下文长度扩展是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。为了建立深入的理解,请将 YaRN 和上下文长度扩展视为一种操作模型,而不是单个功能:定义期望的结果,澄清假设,并将系统可以可靠地完成的任务与仍需要专家判断的任务分开。

在实践中,使用 YaRN 和上下文长度扩展的强大团队可以根据可靠性和成本来优化架构、数据和基础设施选择。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。

多年来,架构决策决定着性能和运营成本。与此同时,优化一个基准测试可以隐藏更广泛的系统弱点。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。

战略影响

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

多年来,架构决策决定着性能和运营成本。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

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

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

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

更好的工程选择可以减少生产中的可靠性事故。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

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

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

现实世界的实施

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

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

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

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

实施模式

YaRN 和上下文长度扩展的实践

将开放的 4K 上下文模型扩展到 32K 或 128K,通过简短的微调来回答长文档问题。

将开放的 4K 上下文模型扩展到 32K 或 128K,通过简短的微调来回答长文档问题 当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

YaRN 和上下文长度扩展的实践

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

使检索增强系统能够摄取许多串联的段落而不会被截断当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

YaRN 和上下文长度扩展的实践

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

为需要整个大型存储库文件或一次提示中的多个文件的代码助理提供支持 当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力提升和错误成本时,通常会获得更好的结果。

YaRN 和上下文长度扩展的实践

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

为积累大量聊天历史记录的长时间多轮对话调整基本模型当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

风险与防护栏

!

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

!

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

!

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

实施路线图

1

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

在实施之前定义延迟、质量和成本目标。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

2

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

在实际负载和数据条件下进行基准测试。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

3

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

仪器监控错误、漂移和用户影响。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

4

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

在扩展之前准备回滚和事件响应路径。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

不断探索