🟣 上下文窗口怎么扩到 1M:RoPE / YaRN / 长度外推

2023 年 4K 上下文还是”豪华”。 2026 年 1M 已经是”标配”。 但模型不是”硬训”上去的—— 背后是一整套位置编码 + 外推技术。

🟣 AI 深度派专栏 · 第 S2-09 期 📅 2026年10月3日 ✍️ 小敏说 AI

💡 本文要点:本文讲清”位置编码”是什么、RoPE 为什么成为标配、YaRN / NTK / LongRoPE 怎么把短上下文模型”外推”到 1M,以及它们的局限。


🎯 本文导读

  • 🔹 为什么 LLM 需要位置编码
  • 🔹 RoPE(旋转位置编码)原理
  • 🔹 三大外推技术
  • 🔹 1M 上下文是真的吗
  • 🔹 工程上的天花板

一、❓ 为什么需要位置编码

Attention 本身是 无序的——它把 Token 当一个集合处理,不知道谁前谁后。

💬 关键观点:Transformer 必须通过”位置编码”显式告诉模型 Token 的顺序。

早期方案:

  • 绝对位置编码(Sinusoidal、Learned)—— 不能外推

二、🔄 RoPE:现代标配

Rotary Position Embedding 由苏剑林 2021 年提出,现在 90%+ 主流模型在用。

核心思想

把 Q、K 向量按 Token 位置旋转一个角度。

位置 m 的 Token:Q_m = R_m · Q
位置 n 的 Token:K_n = R_n · K
Q_m · K_n^T = Q · R_{m-n} · K^T

✅ 关键性质:内积结果只依赖相对位置 (m-n)——天然支持”相对位置”。

为什么火

| 优点 | 描述 | |—|—| | 相对位置 | 天然平移不变 | | 不增参数 | 纯几何变换 | | 可外推 | 比绝对编码强 | | 易实现 | 几行代码 |


三、🚀 三大外推技术

RoPE 直接外推到 4 倍以上会崩。怎么办?

技术 1:Position Interpolation(PI,Meta)

把所有位置压缩到训练范围:

新位置 = 原位置 × (训练长度 / 目标长度)

✅ 简单 ❌ 高频信息丢失

技术 2:NTK-aware(动捷思 / 苏神圈)

不均匀缩放:低频压缩多、高频压缩少。 更好保留细粒度信息。

技术 3:YaRN(Yet another RoPE extensioN)

NTK 升级版:

  • 对不同维度采用不同缩放策略
  • 加 Attention Scale 校正
  • 配合少量长文本微调

✅ 目前主流方案,Qwen / DeepSeek / 多个开源模型用它扩到 128K~1M。

技术 4:LongRoPE(Microsoft,2024)

用搜索找最优非均匀缩放,实测能到 2M。


四、🤔 1M 上下文是真的吗

维度 真相
输入能塞 1M Token ✅ 是
模型”看见”所有内容 ✅ 是
模型”理解”所有内容 ⚠️ 打个折
检索精度 中段大约掉 30-50%
推理一致性 越长越掉

⚠️ 重要提醒:“训练长度”和”声称长度”是两回事。多数 1M 模型只在 32K-64K 真实训练过。


五、🪜 工程上的天花板

长上下文不只是位置编码问题,还要解决:

维度 瓶颈
显存 KV Cache 线性增长
速度 Attention 仍 O(N²)
训练成本 真实训练 1M 极贵
评测 没有公认的”长上下文”标准

配套技术

  • Flash Attention —— 解决 IO
  • MLA / GQA —— 压缩 KV
  • Ring Attention —— 多卡切分序列
  • Streaming LLM —— 滑动窗口 + 锚点

六、🧪 评测:Needle In A Haystack

经典长上下文测试:

往 1M Token 文本里偷偷塞一句话
让模型回答:"那句话是什么?"

可视化结果通常是一张热力图——横轴是上下文长度,纵轴是隐藏位置。 绿色 = 找到,红色 = 漏掉。

💬 关键观点:Needle 测试只测”召回”,不测推理。所以模型容易”刷分”。


七、❌ 常见误区

误区 真相
❌ 1M 上下文 = 真能理解 1M ✅ 中段大概率漏
❌ RoPE 是唯一选择 ✅ ALiBi、xPos 也有
❌ 外推就能任意延长 ✅ 越外推越掉
❌ 微调 1000 步就能 1M ✅ 大模型仍要数十亿 Token 训

八、🎁 给非工程读者的”长上下文心法”

🔑 1M 是"理论上限",不是"稳定能力"
🔑 最准的还是 32-64K
🔑 真正要长召回 → RAG 永远更稳
🔑 选模型看真实训练长度,不看营销长度

📮 今日话题:你愿意为 1M 上下文多付 10 倍价格吗?

🔮 下一篇预告:s2ep10《Tokenizer 深挖:BPE / Tiktoken / 中文分词》


🟣 本系列是「小敏说 AI · AI 深度派专栏」第 S2-09 期。 关注公众号 小敏说 AI,回复「深度派」领取第二季合集。