← 返回 2026-05-19

EndPrompt:通过末端锚定实现高效长上下文扩展 EndPrompt: Efficient Long-Context Extension via Terminal Anchoring

Han Tian, Luxuan Chen, Xinran Chen, Rui Kong, Fang Wang, Jiamin Chen, Jinman Zhao, Yuchen Li, Jiashu Zhao, Shuaiqiang Wang, Haoyi Xiong, Dawei Yin 📅 2026-05-14 👍 18 2026-07-13 08:36
LLM RoPE 位置编码 长上下文扩展 高效微调

用末端提示+位置索引操控,在短序列上训练即可把 LLaMA 上下文从 8K 扩到 64K

前置知识

RoPE 旋转位置编码

RoPE 是 LLaMA 等 LLM 采用的位置编码。把 query 和 key 拆成复数子空间, 乘以相位旋转 $e^{i p_m \theta_j}$, 使注意力分数仅依赖相对距离 $d = p_m - p_n$, 可写成关于 $d$ 的有限三角多项式。

本文方法的理论基础完全建立在 RoPE 上, 需要理解相对距离如何通过相位影响注意力分数, 才能看懂 EndPrompt 为何能让短序列学到长距离模式。

位置插值 (Position Interpolation, PI)

PI 是把 RoPE 的位置索引按比例 $s > 1$ 缩小为 $p/s$ 的技术, 用来把原本在短区间训练好的模型扩展到更长上下文。由于等效角频率从 $\theta_j$ 降为 $\theta_j/s$, 注意力随距离变化的最高频率被严格压低, 进而限制了高阶曲率, 对未观测距离形成平滑偏置。

EndPrompt 借助 PI 提供的平滑性, 把短序列中学到的稀疏位置信号外推到未观测区间, 是论文理论分析的核心数学工具。

长上下文扩展 (Long-context extension)

指把预训练 LLM 的可用上下文窗口 (例如 LLaMA-2 的 4K) 扩展到更大尺寸 (32K、64K、128K)。常见路线包括全长度微调、稀疏注意力、滑动窗口、位置插值、SimPO 等。代价通常很高, 64K 全长度微调对显存和算力要求都呈二次方增长。

读者需要先理解这一任务的痛点 (训练贵) 和现有方案的局限, 才能体会 EndPrompt 提出的'短序列+末端锚定'的实用价值。

位置跳跃嵌入 (Positional Skip-Embedding, PoSE)

PoSE 是一类 chunk-based 长上下文模拟方法: 把训练语料切成多块, 给每块重新分配一组跨越目标长度区间的位置索引, 让短序列也能看到长距离相对位置。和 EndPrompt 的关键区别是 PoSE 会切断原始文本, 而 EndPrompt 只切末端提示。

PoSE 是本文最重要的对比基线和消融对象。ET(PoSE) 把 PoSE 嫁接到 EndPrompt 框架上取得最高分, 体现两者互补, 必须清楚差异才能理解实验结论。

研究动机

把 LLM 的上下文窗口从 8K 扩到 64K, 主流做法是直接在目标长度上做全长度微调。然而注意力计算的显存和算力随序列长度 $L$ 二次方增长, 64K 全长度训练不仅对显卡数量、训练时长和电费都要求极高, 还要搜集大量高质量长文本语料。具体来说, FlashAttention 虽能降低常数项, 但 LLaMA-2 7B 跑 64K 单 batch 仍需上百 GB 显存, 一般实验室无法承担。Positional Interpolation 等方法把位置索引除以缩放因子 $s$, 配合少量长序列微调可缓解显存, 但仍依赖一定量的长数据。LongLoRA 用 shifted sparse attention + LoRA 降低算力, 但稀疏化改变了注意力结构, 容易在长程检索上掉点。LCEG 提供了评测协议, 但对训练成本改善有限。更糟的是, 一些 chunk-based 方案 (如 PoSE) 把原始语料切开重排位置, 这会破坏 next-token prediction 的局部依赖, 让短文本能力 (MMLU、GSM8K) 退化。

本文的目标是本文的目标是提出一种名为 EndPrompt (ET) 的训练机制, 让模型只在短训练序列 (远小于目标窗口) 上学习, 就能获得可靠的长上下文能力。具体而言, 默认配置是用 1B token 语料、8K 物理序列长度, 把 LLaMA-3 8B 的上下文从 8K 扩展到 64K, 同时在 RULER 和 LongBench 上超过 LCEG、LongLoRA 和全长度微调, 并尽量保住短文本能力。

与已有工作不同的是,现有方法都隐含一个假设: 想要长上下文就必须给模型看到密集的 (dense) 长距离监督信号。EndPrompt 挑战这个假设, 主张稀疏但结构化的位置信号 + 一个稳定的末端锚点就足以把局部监督'外推'到全目标窗口。其独特切入角度是把 PoSE 等 chunk-based 方法的'切原始文本'换成'只切末端提示', 保留语义连续性, 再借助 RoPE+PI 的频谱平滑性让中间未观测区间自动被约束。从理论看, 这是第一次用 Bernstein 不等式形式化地说明: 共享 Transformer 参数 + PI 的频率抑制 = 长上下文稳定泛化的充分条件。

核心方法

EndPrompt 的核心直觉很简洁: 长上下文能力的本质是注意力分数要能处理大相对距离, 而相对距离的'幅度'由位置索引决定, 与物理 token 长度无关。于是作者把一段短的原始上下文 $x = (x_0, ..., x_{a-1})$ 保留为第一段, 在它后面追加一段很短的末端提示 $e = (e_0, ..., e_{b-1})$ 作为第二段; 在物理上整段长度只有 $a + b$ (远小于目标 $L$), 但在位置编码上把第二段分配到目标窗口的尾部, 也就是索引区间 $[L-b, L-1]$。这样模型在因果注意力下, 一边能看见完整的局部上下文 (相对距离 0 到 $a-1$), 一边能通过末端提示学到接近 $L$ 的长程相对距离, 中间未被直接监督的区间则交给 RoPE+PI 的平滑性来约束。

EndPrompt 和已有方法 (LongLoRA、PoSE、LCEG) 的本质区别在于'是否破坏原始文本的语义连续性'。LongLoRA 改变注意力结构, 只能在工程上省算力, 没法跳出全长度训练; LCEG 提供评测协议, 不直接解决训练成本; PoSE 把原始语料切成多块并重排位置, 损伤了 next-token 监督的局部依赖。EndPrompt 的核心创新是: 原始短上下文原封不动, 物理位置连续, 全部 token 仍然按照自然顺序进行 next-token 监督; 长距离信号全部由新追加的短末端提示承载, 并且赋予它目标窗口尾部的位置索引。这种'短物理长度 + 稀疏远端监督 + 不切原文本'的组合, 让模型在标准自回归目标下同时获得局部和长程约束。

方法步骤详情

方法分四步。1) 取长 $a$ 的短上下文 $x$ 与目标窗口 $L$, 准备长 $b$ 的末端提示 $e$ (从简单提示集合随机采样)。2) 拼成物理序列 $y = (x_0, ..., x_{a-1}, e_0, ..., e_{b-1})$, 长度 $a+b \ll L$。3) 位置映射: 前 $a$ 个 token 取 $[0, a-1]$ 常规索引, 后 $b$ 个取 $[L-b, L-1]$ 目标尾部索引, 物理连续、语义拼接。4) 配合 Position Interpolation 除以缩放因子 $s$, 训练自回归 cross-entropy $\mathcal{L}(\Theta) = -\sum_{\ell} w_\ell \log p_\Theta(y_{\ell+1} | y_{\le\ell}; p_{\le\ell})$, 末端 token 权重 $w_\ell$ 取较小但非零值, 既传长程梯度又避免模型记忆提示。理论上这一结构将可行动参数集合从'仅局部监督'收窄到'局部 + 长程同时满足', 形成隐式正则化。

技术新颖性

技术新颖性体现在三点。1) 视角上把长上下文扩展重新定义为'设计信息性位置监督', 而不是单纯增加物理长度, 这是认知上的转向。2) 实践上第一次系统性地把'末端锚定 + 不切原文本'作为通用训练配方, 并证明其对 RoPE 类模型普遍适用 (在 LLaMA-2 7B、LLaMA-3 8B、Mistral-7B-v0.3 三种架构上验证)。3) 理论上结合 RoPE 的有限三角多项式表示、PI 的频率上界 (方程 3: $\sup_d |\partial S_{PI}/\partial d| \le \theta_0 \sup |S_{PI}(d)|$ 等) 和共享 Transformer 参数, 用 Bernstein 不等式给出了稀疏监督下未观测距离的稳定性保证, 给出了端到端的形式化分析。

Overview of the proposed method.
Figure 1: Overview of the proposed method.

实验结果

RULER 4K-64K (Table 1) 上 EndPrompt 平均 76.03, 高于 LCEG (72.24)、LongLoRA (72.95) 和 Full FT (69.23)。复杂检索优势最大: Vt 82.00 (vs LongLoRA 65.70), Fwe 83.53 (vs 58.17), Niah_MV/MQ 81.67/82.06。LongBench (Table 2) 上 ET 拿到 38.30 最高平均, 超 Full FT 2.67 分, Code Completion 66.48 远超 LongLoRA 45.86。消融 (Tables 3、4) 显示 ET-32K 78.36、ET-96K 76.11、ET-128K 72.82 长度可扩展; 0.5B→2.0B token 时 RULER 从 74.72 升到 75.61。ET(PoSE) (Figure 3) 在 LongBench 39.65、RULER 79.44 双榜最高。短文本 (Table 5) sft_ET(PoSE) 平均 53.56, 验证'不切原文本'对保住短文本能力至关重要。

Results on the RULER synthetic benchmark (4K-64K).
Table 1: Results on the RULER synthetic benchmark (4K-64K).
Results on various downstream tasks.
Table 2: Results on various downstream tasks.
Ablation study on the RULER synthetic benchmark across different configurations.
Table 3: Ablation study on the RULER synthetic benchmark across different configurations.
Ablation study on LongBench across different configurations.
Table 4: Ablation study on LongBench across different configurations.
Results on short-text evaluation tasks after supervised fine-tuning.
Table 5: Results on short-text evaluation tasks after supervised fine-tuning.
Ablation study on different end prompts.
Figure 2: Ablation study on different end prompts.
Performance comparison among the standard ET, Positional Skip-Embedding, and ET(PoSE) across the benchmarks of LongBench and RULER.
Figure 3: Performance comparison among the standard ET, Positional Skip-Embedding, and ET(PoSE) across the benchmarks of LongBench and RULER.
查看结构化数据
任务指标本文基线提升
RULER 4K-64K 平均分 13 个子任务加权平均 (NIAH、VT、CWE、FWE、QA 等) 76.03 69.23 (Full FT) / 72.24 (LCEG) / 72.95 (LongLoRA) 相对 Full FT +6.80, 相对 LCEG +3.79, 相对 LongLoRA +3.08
RULER Variable Tracking (Vt) 变量追踪准确率 (%) 82.00 65.70 (LongLoRA) / 68.18 (LCEG) / 68.56 (Full FT) 相对 LongLoRA +16.30 分, 提升 24.8%
RULER Frequency Word Extraction (Fwe) 频次词抽取准确率 (%) 83.53 58.10 (Full FT) / 58.17 (LongLoRA) / 63.01 (LCEG) 相对 LongLoRA +25.36 分, 提升 43.6%
LongBench 平均分 六类任务平均 (Single/Multi-Doc QA、Summary、Few-Shot、Synthetic、Code) 38.30 35.63 (Full FT) / 36.61 (LCEG) / 36.84 (LongLoRA) 相对 Full FT +2.67, 相对 LongLoRA +1.46
LongBench Code Completion 代码补全子任务平均分 66.48 45.86 (LongLoRA) / 46.86 (LCEG) / 47.86 (Full FT) 相对 Full FT +18.62 分, 提升 38.9%
短文本综合 (MMLU+GSM8K+HellaSwag+HumanEval) 四基准平均 (%) 53.56 (sft_ET(PoSE)) / 52.41 (sft_ET) 50.98 (sft_Full FT) / 48.64 (sft_LongLoRA) / 49.74 (sft_LCEG) sft_ET(PoSE) 相对 sft_Full FT +2.58, sft_ET 仍 +1.43
极端长度扩展 128K (RULER) RULER 平均分 (%) 72.82 76.11 (96K) / 78.36 (32K) / 76.03 (64K 默认) 可扩展到 8 倍默认长度, 平均分仅下降约 3-5 分, 无灾难性遗忘
训练数据量扩展 (RULER) RULER 平均分 (%) 75.61 (2.0B) / 74.72 (0.5B) 76.03 (1B 默认) 2.0B 相对 0.5B 提升 0.89 分, 显示数据缩放依然有效

局限与改进

作者明确指出的局限有: 1) 方法依赖一个显式的末端 segment, 对没有明显终止边界 (例如纯连续流的场景) 还需进一步设计。2) 当前假设底层模型使用 RoPE 族位置编码, 推广到 ALiBi 等其他编码方案未验证。3) RULER 上 4K-64K 的强结果并未直接告知 64K 以上的极端长度 (论文补充到 128K, 但 128K 时 Multi-needle 类的 Niah_Multivalue 掉到 53.21, 显示越远端检索仍会衰减)。4) 训练时仍有可调超参 (末端提示长度 $b$、损失权重 $w_\ell$、PI 缩放因子 $s$、总 token 数), 跨模型迁移未必'开箱即用'。5) 评测集中在 RULER 与 LongBench, 对真实业务长文档场景 (例如多轮长对话、跨页法律文档) 的鲁棒性未给出完整覆盖。个人观察: PoSE 切的是原始文本, ET 切的是末端提示, 两者合并 ET(PoSE) 反而拿到最佳, 暗示'不切原文本'并非绝对最优, 真正决定效果的是位置监督的稀疏结构而非切不切文本。

独立分析的弱点

从工程和实验设计角度看, 论文有四点可改进之处。第一, 末端提示的具体采样空间 $\mathcal{E}$ 没有给出完整列表, 也未公开 prompt 长度分布, 复现时若挑选的提示与作者差异较大, 数值可能漂移; 改进方向是公开 prompt 集合并加 sensitivity table。第二, 训练脚本、超参与缩放因子 $s$ 跨 LLaMA-2/3 和 Mistral 不完全一致, 论文未给出统一 recipe, 改进方向是提供超参 transfer rule (例如 $s$ 与原始窗口的简单比例)。第三, 对长上下文'端到端'延迟与吞吐没有给完整 profile, 只在文中一笔带过'显著减少显存和加速', 改进方向是补充 8K 物理 vs 64K 全长训练的 GPU-hour、tokens/sec 和峰值显存曲线。第四, 128K 评测只跑了 ET 一个变体, 没有跑 ET(PoSE) 和基线, 难以判断该长度下稀疏监督是否仍然最优, 改进方向是补齐扩展长度 × 训练方法的二维对比。

未来方向

作者在结论中明确提出三条未来方向: 1) 把末端锚定思想推广到 streaming、hierarchical、multimodal 长上下文架构; 2) 研究无需显式末端 segment 的隐式锚定机制, 例如通过 attention sink 或虚拟 token 实现; 3) 把'设计信息性位置监督'这一思路用到更长上下文 (256K+) 和持续学习场景。基于成果可延伸的方向还包括: 与 FlashAttention-2/3、Ring Attention 等高效注意力结合, 进一步压缩显存; 探索与 LoRA、DoRA 等参数高效方法的兼容性, 验证能否在更小参数量下保持 76+ 的 RULER 分数; 把末端锚定用于推理时的 KV cache 压缩 (例如仅在 cache 尾部位置触发 attention 修正), 实现训练和推理协同。

复现评估

复现可行性整体较高: 作者在 abstract 和文末明确给出代码链接 https://github.com/clx1415926/EndPrompt。数据方面, 训练使用 1B token 的通用语料 (具体来源未在正文展开, 推测沿用 RedPajama 或 Pile 子集, 复现时需要自行确认); 评测直接采用 RULER 和 LongBench 公开脚本, 门槛低。算力方面, 主实验基于 LLaMA-3 8B, 在 1B token、约 8K 物理长度上训练, 配合 PI 与末端提示, 显存需求应远低于 64K 全长度微调; 论文称'显著降低显存和加速', 但未给绝对数字, 实测时建议先用单卡 8xA100-80G 或 8xH100 复现主表 1/2, 再考虑 128K 消融。难度上, 难点主要在 PI 缩放因子 $s$、末端 prompt 长度 $b$ 和损失权重的调参, 这三项未提供统一 recipe, 复现时需做小规模 sweep。整体而言, 算力门槛中等, 代码开源降低了工程门槛, 真正的不确定性在于超参选择和 prompt 集合。