🟣 上下文窗口怎么扩到 1M:RoPE / YaRN / 长度外推
🟣 上下文窗口怎么扩到 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,回复「深度派」领取第二季合集。