← 返回 PaperDaily 前沿研究

斯坦福大学大模型长推理/测试时扩展新作:Prefix Sliding 3倍加速

论文基本信息 原文标题: Prefix Sliding for efficient test-time scaling 首次公开: 2026 年 8 月 26 日 主要署名单位: 斯坦福大学、加州大学圣塔芭芭拉分校、Prime Intellect、华盛顿大学 研究领域: 大模型长推理、测试时扩展、注意力与推理系统 原论文: https://arxiv.org

斯坦福大学大模型长推理/测试时扩展新作:Prefix Sliding 3倍加速

论文基本信息

原文标题:Prefix Sliding for efficient test-time scaling
首次公开:2026 年 8 月 26 日
主要署名单位:斯坦福大学、加州大学圣塔芭芭拉分校、Prime Intellect、华盛顿大学
研究领域:大模型长推理、测试时扩展、注意力与推理系统
原论文:https://arxiv.org/abs/2608.26070
开源代码:GitHub 官方仓库
代码许可证:Apache-2.0

龙哥导读

让推理模型多想一会儿,为什么越到后面越贵?这篇论文给出一个极简答案:永久保留任务前缀,只让最近几千个推理token随生成向前滑动。它不要求先重训模型,在论文设置中可维持性能并实现最高约3倍加速;配合强化学习,还能把完整推理轨迹推进到十万token以上。真正值得看的不是“删上下文”四个字,而是它删了什么、为何没有立刻忘题,以及哪些任务会被删坏。

大模型长推理有一个反直觉矛盾:模型之所以能解决更难的问题,往往是因为生成了更长的思考过程;可它每生成一个新token,又要回看此前越来越长的上下文。于是“多想”带来的不只是更多token,还包括越来越重的注意力计算和越来越大的KV缓存。

Prefix Sliding抓住了一个很朴素的现象:解题过程中的许多中间草稿,完成阶段性计算后就不再重要;真正需要长期保留的,通常是最前面的任务、规则和工具说明,以及最靠近当前时刻的工作记忆。它不是让模型“少想”,而是让模型不必把每一步旧草稿都背在身上继续想。

论文Figure 1:Prefix Sliding与全注意力在三项推理基准上的时间准确率关系

图1|论文Figure 1。三块面板依次是AIME25竞赛数学、GPQA Diamond博士级科学问答和MATH500数学题。横轴是每个样本的平均思考时间,纵轴是准确率;蓝色倒三角代表Prefix Sliding,红色圆点代表全注意力。图中支持的核心结论是:在相近准确率附近,Prefix Sliding能用更短时间完成推理,MATH500示例标出了约3倍速度差。它不表示每一个生成token质量更高,而是相同时间内可以生成更多有效推理token。来源:官方arXiv HTML Figure 1。

01 测试时扩展真正贵在哪里

所谓测试时扩展,是在模型参数已经确定后,为更难的问题投入更多推理计算。可以让模型写更长的思维链,也可以采样多个答案、验证候选、搜索不同路线。本文聚焦第一条路线:让同一个模型持续生成更长的推理轨迹。

在标准因果全注意力中,第t个生成token需要读取前面大约t个token的键和值。若忽略常数、层数和隐藏维度,单步注意力成本随t线性增加;从第1步累加到第T步,总注意力工作量近似为1+2+…+T,也就是O(T²)。KV缓存则必须保存此前全部token,对长度T呈O(T)增长。

这意味着十万token并不是一万个token成本的简单十倍。越靠后的token越贵,吞吐持续下降,显存压力持续上升,批处理也越来越难组织。长任务还会带来旧信息干扰、循环重复、上下文污染等问题:保留更多历史并不自动等于使用历史更聪明。

论文要消除的是“单个新token随历史长度不断涨价”这件事。只要每一步真正参加注意力的token数量有上限,长推理才可能从越来越陡的成本曲线,变成大致稳定的持续生成。

02 注意力证据:模型真的还在看中间草稿吗

删上下文最危险的问题当然是:万一删掉的正是关键线索呢?论文先用Qwen3-1.7B的一条AIME25推理轨迹观察全注意力分布,并把各层、各注意力头的softmax后概率做平均和平滑。

论文Figure 2:完整推理轨迹中的平均注意力概率分布

图2|论文Figure 2。横轴是序列位置,纵轴是平均注意力概率。最左端蓝色高峰对应前缀和最早token,最右端蓝色抬升对应最近约一千个token;中间大段红色区域的平均注意力接近零。曲线说明在这条样本中,模型主要依赖开头的任务锚点和眼前的推理状态,但它只是代表性注意力分析,不能证明所有任务、所有层和所有时刻都可以安全删除中间内容。来源:官方arXiv HTML Figure 2。

图的左端为什么重要?前缀里通常包含系统指令、用户问题、可用工具、输出格式和任务约束。最前几个token还可能承担“注意力汇点”的作用:模型会把一部分概率质量稳定放在那里。把这块丢掉,模型可能不只是忘记一道题的数字,而是忘记自己在做什么。

图的右端为什么重要?最近token承载当前子问题、刚得到的中间结果、下一步计划和尚未闭合的表达式。它更像人的工作记忆:不必保存整本草稿,但正在操作的几行必须留在桌面上。

中间区域低注意力给了淘汰旧token的依据,却不是无条件安全证书。平均值会掩盖少量但关键的头,也会掩盖某个旧变量在特定时刻突然被重新调用。因此Prefix Sliding成立的前提不是“中间token都没用”,而是多数长推理任务能把重要状态不断传递到最近窗口中。

03 核心方法:前缀钉住,窗口向前滑

设整个输入前缀长度为P,滑动窗口长度为W,当前生成到位置t。全注意力允许当前查询访问从1到t的全部键值;Prefix Sliding只允许它访问两段:固定前缀[1,P],以及最近窗口[max(P+1,t−W+1),t]。两段取并集,就是当步有效上下文。

关键公式一:第t步可见位置集合

A(t)={1,…,P} ∪ {max(P+1,t−W+1),…,t}

A(t)表示第t步真正参与注意力的token位置。P决定永久记忆区有多大,W决定工作记忆区有多大。若系统指令与题目共100个token,W取4096,那么模型无论已经推理四万、四十万还是更多token,理论上只需让大约4196个位置参加当前注意力。

论文Figure 3:全注意力和Prefix Sliding逐步生成成本对比

图3|论文Figure 3逐区解释。左侧红色区域是全注意力:每一行代表新的生成步,粉色历史区域不断变长,所以每步成本持续增加。右侧灰色前缀始终固定,蓝色最近窗口向右移动,淡出的中间token不再参与注意力;达到窗口长度后,每步读取的键值数量基本固定。箭头所说的“constant cost”指极限下每个新增token的注意力范围有界,不代表模型全部算子、数据搬运和系统开销严格为零增长。来源:官方arXiv HTML Figure 3。

根据论文方法整理的伪代码

    输入:固定前缀 prefix,窗口大小 W,最大生成长度 T
    初始化:window = 空,KV_prefix = encode(prefix)
    
    对 t = 1 ... T:
      visible_KV = concatenate(KV_prefix, KV(window))
      next_token = model.attend_and_sample(visible_KV)
      window.append(next_token)
      如果 length(window) > W:
          window.evict_oldest()
      如果模型产生最终答案:
          停止
    
    输出:完整生成轨迹与最终答案
    注意:被淘汰token可从注意力/KV工作集移除,但最终文本仍可单独记录

    伪代码里最关键的是KV_prefix从不被淘汰,而window只保留最近W个token。工程实现并不需要每一步真的拼接一遍文本;高效内核会直接让查询块只遍历前缀块和窗口块。淘汰的是注意力工作集,不等于必须删除日志或对用户隐藏完整推理轨迹。

    04 复杂度为什么从越想越贵,变成近似匀速

    对第t步,全注意力的有效历史长度约为t,单步注意力成本可写成O(t·d),d代表每个头的特征维度等常数因素。Prefix Sliding的有效历史长度上界是P+W,因此单步变为O((P+W)·d)。只要P和W固定,它就不再随总推理长度t增长。

    关键公式二:生成T个token的注意力工作量

    Full ≈ O(T²·d)  Prefix Sliding ≈ O(T(P+W)·d)

    第二个式子在P、W固定时对T近似线性。KV缓存的活动工作集也从O(T·d)收敛到O((P+W)·d)。这正是长时域测试时扩展需要的形态:总推理越长,累计成本仍会上升,但每多想一步的边际成本不再越来越大。

    不过“线性”不能被理解成端到端速度一定按理论比例提升。采样、前馈网络、通信、调度、kernel启动和输出处理仍有成本;窗口未填满前还处于预热阶段,与全注意力差别较小。论文速度实验使用定制FlashAttention内核、vLLM和NVIDIA H100,部署到其他GPU或软件栈时需要重新测量。

    3倍加速是论文特定模型、任务、窗口和时间预算下的实测亮点,不是对所有大模型请求的统一倍率承诺。短回答、窗口很大或系统瓶颈不在注意力时,收益会明显缩小。

    05 位置编码怎么处理:继续编号,而不是反复重置

    滑动窗口移走旧token后,还有一个容易踩坑的问题:剩余token的位置编号要不要重新从头算?论文讨论Reset PE与Continue PE两种选择。Reset PE把窗口中的token重新映射到较小位置,直觉上更贴近模型训练过的局部位置范围,却需要重复计算已有token的位置表示。

    Continue PE则让绝对生成位置继续增长。窗口滑动后,留下来的token保持原位置编码,已经生成的KV缓存可直接复用。论文在附录比较中观察到两者性能差异不显著,因此采用Continue PE,把方法保持在“只改变可见键值集合”的简单路径上。

    这项选择的工程价值很大:如果每次滑动都要重算整个窗口,省下的注意力成本可能又被重复预填充吃掉。Prefix Sliding追求的不只是理论上少看token,还要让旧KV真的可复用。

    06 内核层怎么做到既正确又不白算

    论文的Prefix Sliding注意力内核采用两级过滤。第一层是tile内部掩码:当一个计算块只部分落在允许区域时,对块里的查询—键对逐元素遮罩,只让属于前缀或最近窗口的位置进入softmax。

    第二层是tile之间跳过:如果一个键块完全位于“已被淘汰的中间区域”,生产者—消费者流水线根本不加载它。实现上分别遍历前缀块范围和窗口块范围,中间大段直接跨过去。前者保证数学正确,后者才真正省下带宽和计算。

    论文报告,定制内核速度接近普通滑动窗口内核,只因额外保留前缀而略慢。仓库也明确提醒,当前复现依赖较旧的torch、vLLM、prime-rl和flash-attn分支,完整构建路径可能耗时约十小时。所以方法概念很轻,生产级移植并不等于改一行mask就结束。

    07 不训练也能用:图1应该怎样严谨解读

    论文默认使用Qwen3-1.7B,在AIME25、GPQA Diamond和MATH500上评估。每项结果平均64次运行,采样温度0.6、top-p 0.95,并使用budget forcing控制思考预算。作者以每个样本的平均思考秒数作为横轴,因为用户实际感受到的是等待时间,而不只是理论FLOPs。

    图1中,蓝色点形成的准确率—时间前沿普遍位于红色点左上侧。关键机制不是Prefix Sliding生成的每个token更聪明,而是它在相同时间里能推进更长的推理。全注意力在后段越来越慢,有限时间预算下可能还没走到答案;Prefix Sliding维持更稳定的吞吐,因此有机会完成更多步骤。

    这一区分非常重要。若把结论写成“删掉历史让推理质量提高”,就说过头了。更准确的说法是:当任务允许模型用最近状态承接旧步骤时,节省下来的系统成本可以转化为更多思考长度,并在固定时间预算下改善最终准确率。

    08 配合强化学习:十万token轨迹怎样训得动

    推理时只保留有限窗口,解决了采样端的显存和吞吐;训练时还要反向传播,十万token完整轨迹依然可能把训练器撑爆。论文利用滑动窗口的有限感受野,提出分块反传与截断反传两条路线。

    分块反传把长轨迹切成多块,逐块计算并累积梯度,目标是接近完整反传。截断反传更激进:只对最后一个窗口的token计算RL损失,同时多传入若干倍窗口长度的先行上下文,让最后窗口的隐藏状态尽量接近完整生成时的状态。

    论文给出的十万token示例

    滑动窗口W=2048;完整推理轨迹约100,000 token;训练器只接收最后8192 token。其中前6144 token仅作为上下文,损失掩码设为0;只在最后2048 token上计算token级强化学习损失。

    为什么是4W而不是只传W?如果只把最后2048 token交给训练器,它们的概率会因缺少前置上下文而与生成器明显不一致。论文用生成器与训练器最后2048个token的逐token对数概率KL散度做诊断:传2W显著降低偏差,4W通常更稳,并与8W接近。

    这种训练仍然是近似。窗口经过多层后的理论感受野可写成W×L,但信息瓶颈使有效依赖通常更短;论文引用的经验量级接近1.5W,并选择4W提供余量。它换来的核心能力,是不再因为轨迹过长就直接截断并丢弃整条已完成样本。

    09 消融:为什么Last-k、摘要和普通滑窗都差一口气

    能把上下文限制在固定大小的方法并不少。论文在AIME25上把Prefix Sliding与Last-k、摘要、普通滑动窗口和全注意力放到同一准确率—时间坐标中,最大生成长度设为262,144,局部窗口通常为4096;Last-k保留256 token,摘要最大长度也设为256 token。

    论文Figure 9:Prefix Sliding与Last-k、摘要、普通滑窗和全注意力消融比较

    图4|论文Figure 9。左上是Last-k:每隔n步清空历史,只保留最后k个token,紫色说明强调重复处理与状态突变;右上是摘要:周期性把一段推理压成短摘要,再从摘要继续,黄色说明强调额外总结步骤;左下是普通滑窗:最近窗口不断移动,但题目指令也会被推出窗口;右下是AIME25结果,蓝色Prefix Sliding在时间—准确率前沿上明显领先,普通滑窗很早停在低准确率,摘要与Last-k虽继续提高却有额外开销。来源:官方arXiv HTML Figure 9。

    Last-k的问题是“断崖式遗忘”。到阈值后,它一次删除大量历史,再把最后k个token放进新上下文。k太小会丢掉仍有用的近期状态,k太大又要重复预填充;显存使用还会周期性暴跌再上升,不利于稳定调度。

    摘要的问题是“用一次新的生成,替代一次记忆选择”。它理论上能从整段上下文提炼关键状态,但摘要本身要耗时,也会引入摘要提示词、摘要模型、摘要长度和放置位置等超参数。多轮摘要还可能逐渐遗失细节,错误也可能被压缩后固化。

    普通滑动窗口的问题是“连题目一起忘”。当最初的任务、格式和工具说明滑出窗口,模型可能只记得自己刚才写了什么,却忘记最终目标。图4中绿色三角很快趋平,正对应长推理时任务锚点丢失。

    Prefix Sliding的取舍更稳定:前缀永远保留,最近窗口连续移动,不需要周期性重启,也不需要额外总结模型。它新增的主要超参数只有W。但这种简单性也意味着它不会主动识别“中间某条非常重要、应该永久保存”的事实;若关键状态没有被重新写进最近窗口,仍会被淘汰。

    10 与两篇相似工作的关系:同样删历史,学习方式不同

    候选记录中的第一篇相似工作是《The Markovian Thinker》。它同样质疑“思考越长,状态就必须无限增长”的默认设定,并用Delethink把推理切成固定大小的块;块边界会重置上下文,只携带上一块末尾的一小段文本。模型通过强化学习学会在块末写出可承接的文本状态。

    两者共同点是把长思考改造成有界状态过程,使总成本随思考长度近似线性、活动内存保持有界。差别在于,Delethink强调训练出“会在重置前整理状态”的Markov式推理行为;Prefix Sliding首先是一种注意力可见性和系统内核方案,不训练也能套到已有模型,而且永久保留完整任务前缀。

    第二篇相似记录是《A Survey on Self-Improving Test-Time Intelligence》。它把测试时智能分成适应、学习与扩展等更广阔路线:模型可以利用反馈更新策略、在推理阶段搜索、验证、反思或分配更多计算。Prefix Sliding不是这套全景图的替代品,而是其中“如何让单条长轨迹继续扩展”的基础设施答案。

    如果把三者串成一条演进线:综述回答测试时还能从哪些维度变聪明,Markovian Thinker回答模型怎样学会用短状态跨块思考,Prefix Sliding回答现有Transformer怎样以更低注意力成本持续生成。未来更强的方案很可能把三者结合:系统提供有界窗口,模型学会主动整理状态,验证器再决定计算该花在哪里。

    11 哪些任务适合,哪些任务容易翻车

    数学推理往往适合这种机制,因为完成一个局部变换后,模型可以把结果写进后续文本,而不必反复查看全部推导细节。科学问答若能把假设、排除项和当前结论持续复述,也有类似性质。长时间自主Agent若任务前缀稳定、工具输出可控,也可能从固定成本中受益。

    代码任务更危险。论文在LiveCodeBench上观察到,较小窗口难以匹配全注意力,需要至少16,384窗口。原因之一是模型可能先写函数开头,再用很长注释思考,回到代码时早先函数结构已经滑出窗口。这里丢失的不是冗余草稿,而是尚未完成的程序状态。

    Agent工具调用也有“窗口洪水”问题。网页全文、文件内容或长日志一次塞入上下文,可能瞬间占满窗口,把模型真正需要的近期计划挤出去。多轮对话还会遇到新用户指令放哪里的问题:永久追加到前缀,会让前缀不断增长;留在窗口里,又可能最终被淘汰。

    短任务收益同样有限。论文用平均约2086个token的HealthBench说明,当窗口为2048时,许多样本刚进入滑动阶段就已经结束,Prefix Sliding大部分时间与全注意力等价。没有足够长的“后半程”,自然也没有大量成本可以省。

    判断是否适合Prefix Sliding,可以问一句:任务的关键状态能否被不断压进最近W个token,而不是必须随机回看很久以前的原始细节?答案越肯定,窗口越有机会缩小;答案越不确定,就越需要更大窗口、可写长期记忆或按重要性保留token。

    12 开源与复现:看似简单,门槛主要在系统栈

    官方仓库以Apache-2.0许可证开放,包含推理、评估、强化学习、数据与绘图入口。README给出的推理示例使用Qwen3-1.7B、窗口4096,并通过自定义vLLM与FlashAttention分支启用滑动窗口;AIME、GPQA、MATH500、HealthBench和LiveCodeBench也给出对应评估路径。

    但仓库明确说明依赖较旧的软件版本,构建定制FlashAttention与vLLM可能耗时约十小时;强化学习路径还涉及CUDA、H100级环境、多个分支仓库和训练数据。基于当前公开材料,可以确认代码、结果文件和配置入口存在,却不能把“仓库可读”写成“任何团队都能一键复现全部速度与训练结果”。

    对工程团队,最小验证不应从十万token强化学习开始,而应先做三件事:确认内核真的跳过中间tile;比较相同答案质量下的端到端延迟与显存;检查业务任务在不同W下是否出现状态遗失。只有这三关过了,理论复杂度才转化为产品收益。

    13 龙哥点评:这是“记忆管理”比“堆上下文”更重要的一步

    这篇工作的漂亮之处,是它没有先发明更复杂的记忆模块,而是先问:全量历史真的值得每一步都付费吗?从注意力分布、系统内核到强化学习反传,论文把同一个判断贯穿到底——任务锚点要稳,当前状态要近,中间草稿可以有条件地放下。

    龙哥更看重它的工程方向,而不只是3倍这个数字。未来模型如果要连续工作数小时甚至数天,单纯把上下文窗口做大并不够;系统必须学会分层管理状态:哪些永久保留,哪些留在工作记忆,哪些写入外部存储,哪些可以淘汰。Prefix Sliding给出了最小、清晰、可测量的一层。

    它的局限也同样清晰。固定窗口不理解语义重要性;任务状态若没有自然向后传递,就会被机械删除。当前实验主要扩展到7B模型和数十万思考token,距离超大模型、多轮真实Agent、长代码仓库和复杂工具链还有明显距离。论文比较也刻意限定在可直接用于预训练Transformer、且单步成本有界的方案,并未覆盖所有线性注意力、循环架构或混合全局层路线。

    所以这不是“长上下文终结者”,而是一个重要提醒:长推理的核心竞争,正在从谁能塞进更多token,转向谁能用更少活动记忆维持更长、不断线的计算过程。

    14 龙迷三问

    第一,前缀应该固定到什么粒度?只保留系统提示和题目,还是把关键工具结果、用户后续约束、阶段性结论也提升为前缀?一旦允许动态写入,系统就从简单滑窗走向了可学习记忆管理。

    第二,窗口大小能否动态变化?数学计算阶段可能只需较短窗口,代码整合或证据回查阶段却需要更长窗口。若模型能预测下一阶段依赖跨度,就可能在正确率和成本之间做更细的实时调度。

    第三,模型会不会学会“为遗忘而写作”?若强化学习知道旧token即将被淘汰,它可能主动把必要变量、计划和结论重写到窗口尾部,形成机器自己的工作笔记习惯。那时Prefix Sliding就不只是推理加速器,也可能改变模型组织思考的方式。

    总结

    Prefix Sliding的核心可以压缩成一句话:固定保留任务前缀,只让最近推理窗口向前滑动。这个设计把每个新token可见的历史限制在P+W,使长生成的注意力总成本从近似二次增长转为固定窗口下的近似线性增长。

    论文用注意力分布解释为什么“前缀+最近状态”值得优先保留,用定制内核把掩码真正变成计算跳过,用三项推理基准展示训练外应用的效率,用强化学习与截断反传把完整轨迹推进到十万token以上,再通过Last-k、摘要和普通滑窗消融说明为什么简单删除仍需保住任务锚点。

    最值得带走的不是某个固定窗口数字,而是一种系统观:真正可持续的测试时扩展,不能要求模型对所有过去一视同仁;它必须在不忘目标的前提下,主动控制正在付费的记忆。

    主要参考资料

    论文与官方HTML
    https://arxiv.org/abs/2608.26070

    官方代码仓库
    GitHub:Prefix Sliding 项目主页

    相似工作:The Markovian Thinker
    https://arxiv.org/abs/2510.06557

    测试时智能综述
    https://arxiv.org/abs/2609.01679

    本文基于龙哥读论文PaperDaily数据库及PaperMiner的MCP进行汇总整理。

    本文仅代表对论文公开材料的技术解读。性能数字受模型、硬件、软件栈、窗口大小和任务长度影响,请以原论文与官方代码为准。

    end

    转发文章 微博 X LinkedIn Facebook
    龙哥读论文 · PaperDaily

    本文基于龙哥读论文 PaperDaily 数据库整理,结合论文原文与工程视角进行解读。

    LONGGE AI COMMUNITY

    把每天读到的论文,变成长期积累

    加入「龙哥读论文」知识星球,持续获取 AI 论文、资讯、开源项目、招聘与研究思路。

    加入龙哥读论文微信群:添加微信 kangjinlonghelper,备注“研究方向 + 地点 + 学校/公司 + 昵称”。

    龙哥读论文知识星球二维码 微信扫码加入知识星球