技术博客
LLM 大语言模型论文解读训练

论文解读:LongRoPE——大模型如何读完约200万 Token?

LSST2026-07-20 19:20
论文解读:LongRoPE——大模型如何读完约200万 Token?

大语言模型能够一次阅读多少内容,主要取决于它的上下文窗口

普通模型的上下文窗口可能只有几千或几万个 Token。当输入内容超过限制时,模型就无法同时看到全部信息。微软研究团队在论文 《LongRoPE: Extending LLM Context Window Beyond 2 Million Tokens》 中提出 LongRoPE,将预训练模型的上下文窗口扩展到了 2048K Token,也就是约200万 Token

一、论文基本信息

论文名称: LongRoPE: Extending LLM Context Window Beyond 2 Million Tokens
作者: Yiran Ding、Li Lyna Zhang、Chengruidong Zhang 等
发布时间: 2024年2月
论文原文: LongRoPE arXiv 页面

这篇论文主要研究如何在不重新训练整个大模型的情况下,让原本只能处理较短文本的模型阅读超长文档。

二、什么是上下文窗口?

上下文窗口可以理解为模型一次能够放进“工作记忆”的最大文本长度。

例如,一个上下文长度为8K Token的模型,可能只能同时阅读一篇中等长度的文章。如果输入整本书、大型代码仓库或大量历史对话,前面的内容就可能被截断。

上下文窗口越长,模型就越适合处理:

  • 长篇论文和书籍;

  • 大型项目代码;

  • 长时间聊天记录;

  • 法律和金融文档;

  • 多篇资料的综合分析。

不过,让模型直接处理更长文本并不容易,因为模型需要理解每个 Token 在序列中的位置。

三、RoPE 是什么?

许多大语言模型采用 RoPE,也就是旋转位置编码

模型本身并不知道文字的先后顺序,因此需要通过位置编码区分第一个 Token、第二个 Token和后面的 Token。

可以把 RoPE 想象成给每个 Token 配上一只不断旋转的指针。Token的位置越靠后,指针旋转的角度也会发生变化。

问题在于,模型在训练时只见过有限长度的位置。当文本远远超过训练长度后,模型会遇到没有学习过的位置,导致注意力混乱、困惑度升高和内容检索失败。

四、传统位置插值有什么问题?

一种常见方法是将新增长的上下文位置“压缩”到模型原来熟悉的范围内。

例如,模型原本支持4K上下文,现在希望扩展到32K,就可以把32K的位置按比例压缩到原来的4K范围。

这种方法虽然简单,但默认所有维度和位置都应该使用相同的缩放比例。

LongRoPE 的研究发现,RoPE中的不同频率维度并不完全相同,而且文本开头的一部分位置也具有特殊性。因此,对所有位置进行统一缩放并不是最优方案。

五、LongRoPE 的三个核心方法

1. 非均匀位置插值

LongRoPE 不再让所有RoPE维度使用相同的缩放比例,而是通过搜索,为不同频率维度寻找更加合适的缩放参数。

简单来说,传统方法像是把一张图片整体拉伸,而LongRoPE会根据不同区域的重要性,采用不同的拉伸程度。

论文还发现,序列开头的一部分 Token不一定需要插值。保留这些原始位置,有助于模型维持短文本处理能力。

依靠这种非均匀插值方法,LongRoPE在不进行额外微调的情况下,就可以实现约8倍的上下文扩展。

2. 渐进式上下文扩展

直接将上下文从几千 Token扩展到约200万 Token,跨度过大,模型很难一次适应。

因此,LongRoPE采用了渐进式策略:

原始上下文 → 扩展到256K并微调 → 再次进行位置插值 → 扩展到2048K

模型只需要在最长256K的训练序列上进行不超过约1000步的微调,就可以进一步外推到2048K上下文。

这种方式类似于训练长跑:不是第一天就跑完整场马拉松,而是先适应较长距离,再逐步提高上限。

3. 恢复短文本能力

扩展上下文后,模型可能更会处理长文本,却在普通短文本任务上出现性能下降。

LongRoPE为此增加了一个重新调整阶段,在8K长度附近重新搜索位置缩放参数,从而恢复原始短上下文中的表现。

因此,LongRoPE的目标不只是“看得更远”,还要尽量做到:

长文本能处理,短文本也不能退步。

六、LongRoPE 的整体流程

LongRoPE的处理过程可以概括为:

预训练模型 → 分析RoPE位置编码 → 搜索非均匀缩放参数 → 扩展至256K并少量微调 → 二次位置插值 → 扩展至2048K → 恢复短文本性能

值得注意的是,LongRoPE并没有大幅修改Transformer主体结构,主要调整的是位置编码。因此,扩展后的模型仍然可以复用大部分已有的训练和推理优化。

七、实验结果怎么样?

论文在LLaMA 2和Mistral模型上进行了实验。

结果显示,LongRoPE能够将模型上下文扩展到2048K,并在从4K到2048K的不同长度范围内保持相对稳定的语言建模表现。论文还通过“在超长文本中寻找隐藏信息”的检索任务,验证模型能否真正使用长上下文,而不只是接受更长输入。

这说明LongRoPE并不是简单修改一个“最大长度”数字,而是在尝试让模型真正适应从短文本到超长文本的不同位置。

八、它有哪些局限?

支持约200万 Token并不代表模型能够完美理解其中的全部内容。

首先,超长文本的注意力计算仍然会消耗大量显存和时间。LongRoPE主要解决位置编码和长度外推问题,并没有完全解决Transformer处理长序列时的计算成本。

其次,模型可能能够从长文档中找到某个明显信息,却不一定能够准确理解几百万Token之间复杂的逻辑关系。

此外,最长上下文能力是在特定模型和实验环境中验证的。不同模型、数据和部署框架下的实际效果可能存在差异。

九、这篇论文有什么意义?

LongRoPE展示了一种成本相对较低的长上下文扩展方法。

它不需要从头训练一个支持200万Token的新模型,而是通过修改位置编码、少量长文本微调和渐进式扩展,让已有模型获得更长的上下文能力。

这对很多实际应用很有价值,例如:

  • 一次分析整本书;

  • 阅读大型代码仓库;

  • 检索多年工作记录;

  • 分析大量科研论文;

  • 为长期运行的AI Agent保留更多历史信息。

十、总结

LongRoPE的核心思想可以概括为:

非均匀位置插值 + 渐进式上下文扩展 + 短文本性能恢复。

它证明了模型的上下文窗口不一定完全由预训练阶段决定。通过重新设计RoPE的缩放方式,并进行少量长文本微调,已有大模型也可以获得百万Token级别的上下文能力。

简单来说:

普通方法是把模型的“尺子”直接拉长,而LongRoPE会重新调整尺子上的刻度,让模型在更远的位置仍然能够辨认顺序。

点赞收藏
// 评论0
0 / 500
还没有评论,快来抢沙发