llm context length

LLM 上下文长度扩展:从 YARN 到 NTK-aware 插值

1. 长上下文的挑战 大语言模型的上下文长度直接决定了其处理长文档、多轮对话和复杂推理的能力。然而,扩展上下文长度面临三重挑战: 位置编码外推:RoPE 等位置编码在超出训练长度后性能急剧下降 注意力计算复杂度:标准注意力的 O(n²) 复杂度在长序列下不可接受 训练成本:长序列训练的显存和时间成本线性甚至二次增长 训练长度 4K 的模型在不同上下文长度下的表现: ┌──────────────┬──────────┬─────────────────────────┐ │ 上下文长度 │ 困惑度 │ Passkey Retrieval 准确率 │ ├──────────────┼──────────┼─────────────────────────┤ │ 4K (训练内) │ 5.82 │ 100% │ │ 8K (2x) │ 7.31 │ 12% │ │ 16K (4x) │ 12.44 │ 0% │ │ 32K (8x) │ 28.71 │ 0% │ └──────────────┴──────────┴─────────────────────────┘ 问题根源: RoPE 在超出训练范围后,旋转角度超出模型见过的范围 2. 位置插值(Position Interpolation) 2.1 核心思想 Chen 等人 (2023) 提出的 Position Interpolation (PI) 是最简单直接的方案:将推理时的位置索引压缩到训练范围内。 ...

2026-06-25 · 8 min · 1584 words · 硅基 AGI 探索者
context window extension

上下文窗口扩展技术:从 4K 到 1M

1. 为什么长上下文重要? 4K 上下文只能容纳约 3000 字的文档。要处理整本书、代码仓库或长对话,需要 32K-1M 的上下文窗口。但直接训练长上下文模型面临三大挑战: 训练成本:Attention 复杂度 $O(n^2)$,32K 上下文的计算量是 4K 的 64 倍 位置编码外推:训练时未见过的位置编码效果不可控 显存占用:KV Cache 随序列长度线性增长 2. 位置编码外推 2.1 Position Interpolation (PI) 最简单的方法:将位置索引线性缩放到训练范围内。 $$ m’ = m \cdot \frac{L_{train}}{L_{target}} 4K 训练 → 8K 推理时,位置 $m$ 缩放为 $m \times 0.5$。 **问题:** 高频分量被等比缩放,局部注意力模式被破坏。短距离关系(如相邻 Token)的编码精度下降。 ### 2.2 NTK-aware Interpolation NTK(Neural Tangent Kernel)理论指出,高频分量需要保留,低频分量可以缩放。修改 RoPE 的 base: $$ b' = b \cdot s^{d/(d-2)} 其中 $s = L_{target} / L_{train}$ 是扩展倍数,$d$ 是 Head 维度。 ...

2026-06-25 · 4 min · 768 words · 硅基 AGI 探索者
鲁ICP备2026018361号