推理轨迹掐头去尾,SFT 反而更强:NAVER 重新拷问"完整思维链"这个默认假设

你有没有想过一个有点反直觉的问题:我们用 DeepSeek-R1 这类大推理模型生成的长思维链去 SFT 小模型时,那些动辄上万 token、中间充满"Wait, but maybe..."自我拉扯的推理过程,模型真的需要全部学完吗?

NAVER AI Lab 这篇被 EMNLP 2026 Findings 接收的论文(arXiv: 2609.07103)给出的答案挺扎心:不需要。他们用注意力分析、片段切除、答案困惑度三路证据指向同一个结论——推理轨迹的中间段落大多是冗余的,真正承载监督信号的是开头和结尾。基于这个发现,他们提出了一个简单到有点"粗暴"的方案:SFT 时直接把轨迹中段砍掉约 20%,只保留首尾两端(作者称之为 Endpoint-based SFT)。结果呢?在 s1K-1.1 上训 Qwen2.5-32B,平均分从 73.51 涨到 75.19,还顺手打败了 LLM 压缩、困惑度过滤、LS-Mixture 一票复杂得多的过滤方法。这个思路甚至能迁移到 GRPO 和 on-policy 蒸馏上。

核心摘要:这篇论文的价值不在于提出了什么精巧的新算法——恰恰相反,它的方法朴素到一句话能讲完。它真正值钱的地方在于用扎实的分析挑战了 reasoning SFT 领域一个没人认真追问过的默认设定:"完整轨迹是最好的监督信号"。如果你正在做推理模型的后训练数据工程,这篇值得细读;但它也有明显的适用边界,基座太弱的模型上它不但没用、还会掉点,这个我们后面细聊。


论文信息

  • 标题:Revisiting Complete Reasoning Traces for Post-Training
  • 作者:Jaehui Hwang、Sangdoo Yun、Byeongho Heo、Dongyoon Han(其中 Jaehui Hwang 与 Dongyoon Han 为通讯作者)
  • 机构:NAVER AI Lab
  • 链接:https://arxiv.org/abs/2609.07103
  • 代码:https://github.com/naver-ai/revisiting-trace
  • 录用:EMNLP 2026 Findings

🎯 问题动机: mentor text 的类比

作者用了一个我觉得很贴切的类比:人类学写作。初学者需要精心编排的范文(mentor text)打基础,但到了进阶阶段,学习者反而会开始甄别材料——那些冗余的、绕弯子的段落不再有帮助,他们更看重精华部分,甚至能靠自己的积累把缺失的环节脑补出来。

回到 LLM 推理训练。现在主流的 reasoning SFT 范式(s1K、OpenThoughts、Bespoke-Stratos、Sky-T1 都是这条路)是把强教师模型生成的完整推理轨迹当范文喂给学生模型:

\[\mathcal{L}_{\text{SFT}}(\theta) = - \sum_{i=1}^N \log p_\theta(y_i, r_i \mid x_i)\]

其中 \(r_i\) 是教师生成的推理轨迹。问题在于,这些轨迹动辄上万 token,中间夹杂大量重复检查、回退、自我否定。之前已经有一些工作注意到这一点——比如有研究发现 LLM 往往在生成完整推理过程之前就已经"知道"答案了,NoThinking 方向的工作也证明有些题不做显式推理也能解。但"轨迹里哪些部分是冗余的、训练时能不能直接跳过"这个问题,一直没人系统地回答过。

图1:SFT 训练数据中的两条真实推理轨迹示例,右侧的高层结构图揭示了中间大量存在的冗余推理段

图1:来自训练集的两条真实推理轨迹(左、中)与推理过程的高层结构(右)。注意轨迹中反复出现的 "Wait, but maybe..."、"Let me clarify..." 这类自我拉扯——它们构成了作者所说的冗余中段,夹在 Define Problem 和 Finalize Answer 之间。


🔬 Pilot Study:一个让人愣住的实验

作者先做了个快速的探针实验。用 s1K-1.1 训 Qwen2.5-32B-Instruct 和 Qwen3-8B-Base,在 AIME24、GPQA-Diamond、MATH 上评测,对比四种轨迹保留策略:完整轨迹(Full)、只留开头(Prefix-only)、只留结尾(Suffix-only)、掐头去尾留两端(Both)。推理步骤按双换行符 \n\n 切分,(2)-(4) 固定保留 200 步。

模型 Full Prefix-only Suffix-only Both(首尾)
Qwen2.5-32B 73.51 73.67 71.83 75.19
Qwen3-8B 63.91 60.99 56.98 64.48

看到 Both 那一列比 Full 还高的时候,说实话我愣了一下。通常我们默认"信息越多监督越强",但这里砍掉中段反而涨了 1.7 个点(32B)和 0.6 个点(8B)。而只留开头或只留结尾都不行——这说明首尾两端各自承载了关键信息,缺一边都伤。

当然,1K 数据的 pilot study 样本量小,AIME24 这种榜单方差也大,单看这个表下结论还太早。作者自己也清楚,所以后面跟了一整套分析来解释"为什么中段可以砍"。


🧠 三路分析:中段冗余的证据链

注意力分析:答案 token 根本不怎么看中段

作者借鉴 attention knockout 系列工作的思路,统计了答案生成阶段答案 token 对轨迹各位置的平均注意力权重。

图2a:答案生成时对整个推理轨迹的平均注意力分布——首尾出现明显的注意力尖峰,中段整体低迷

图2a:全部层平均后的注意力曲线。相对位置 0(轨迹开头)和 1(轨迹结尾)处各有一个明显尖峰,中段 0.2-0.9 区间几乎平躺。

更有意思的是分层看:

图2b:中间层(L25-35)的注意力分布

图2b:中间层(L25-35)同时参考前段的问题定义与后段的推理步骤,但注意力依然集中在两端附近。

作者的解读是信息流随层深递进:浅层先盯候选答案 token,中层在问题定义和推理步骤之间做平衡,深层(L60-64)则重新聚焦开头来格式化和整合最终答案。这个"答案先行、再回头对题"的模式挺耐人寻味的——它暗示模型生成答案时更多是在调用开头的问题理解和结尾的结论整合,中间那些反复试错的步骤被选择性地忽略了。

片段切除:砍中段,答案几乎不变

光看不练不够,作者接着做了因果验证:不微调,直接从输入里删掉轨迹的某一段(开头 0-10%、中间 45-55%、结尾 90-100%),重新生成答案,再用 ROUGE-L、Jaccard、BLEU 三个指标跟完整轨迹生成的答案比相似度。

图3:片段切除实验的 ROUGE-L 结果——删除中段后与完整轨迹的答案相似度最高,删开头或结尾则明显偏离

图3:不同切除比例下的 ROUGE-L 分数。三条曲线分别对应删除不同位置,删除中段的曲线始终在最上方——也就是说砍中段对最终答案的影响最小,删首尾则会让答案明显跑偏。Jaccard 和 BLEU 上结论一致。

这个实验比注意力分析更有说服力,因为它是因果性的:不是"模型不太看中段",而是"没有中段,模型照样给出几乎一样的答案"。

答案困惑度:换成自生成的中段,PPL 反而降了

第三路证据是我觉得最巧的一个。作者把轨迹的开头、中间、结尾分别替换成预训练模型(未做 SFT)自生成的内容,然后看原始答案 token 的困惑度怎么变。直觉是:如果被替换的段落对答案是关键的,PPL 应该上升;如果是冗余的,PPL 不变甚至下降。

替换位置 Begin Middle End 不替换
Answer PPL 1.56 1.52 1.58 1.54
ΔPPL(相对 Full) +0.02 -0.02 +0.04 -

只有替换中段时 PPL 降了。这个数字不大(-0.02),但方向非常一致:模型自己补出来的中段,比原始轨迹里那些绕弯子的中段更"顺",让答案更可预测。这直接支持了论文的核心主张——模型有能力用自己的内部知识把缺失的中间步骤脑补出来,只要首尾两个"锚点"还在。


🔧 方法:Endpoint-based SFT,朴素到一句话

分析做完了,方法几乎是自己长出来的:保留轨迹开头和结尾的推理步骤,砍掉中间约 20% 的 token。步骤按 \n\n 切分,保留的步数直接按比例定,不需要任何模型打分、LLM 压缩或相似度计算。

说实话,作为一个工程方案,这个简单程度让我第一反应是"这也能发?"——但看完后面的对比实验,我收回这句话。简单的方案如果比复杂方案效果好,那简单本身就是贡献。

主实验在三个模型×数据集组合上做:

设置 方法 AIME24 GPQA-D MATH 平均
Qwen2.5-32B + s1K-1.1 Full 64.44 61.95 94.13 73.51
Prefix 62.22 63.80 95.00 73.67
Suffix 60.00 61.28 94.20 71.83
Both(本文) 68.89 62.29 94.40 75.19
Qwen3-8B + OpenThoughts3-100K Full 50.00 53.87 93.47 65.78
Both(本文) 52.22 56.40 93.87 67.50
Qwen3-4B + OpenThoughts3-100K Full 36.67 48.65 91.60 58.97
Both(本文) 40.00 48.99 91.13 60.04

三个组合全部超过 Full 基线,AIME24 上的提升最猛:32B 涨了 4.4 个点,4B 涨了 3.3 个点。

跟过滤方法正面刚

更狠的是跟现有轨迹压缩/过滤方法的对比。作者分了两组:

无需额外算力(s1K-1.1) 32B 8B
Standard SFT 73.51 63.91
Random(随机留步) 70.92 58.20
Similarity(相似度过滤) 73.92 59.94
本文方法 75.19 64.48
需额外算力(32B) 平均
Standard SFT 73.51
LLM 压缩(Claude Sonnet 4) 60.08
PPL-extreme 过滤 72.80
PPL-high 过滤 74.43
LS-Mixture SFT 71.90
本文方法 75.19

几个值得说的点:

  1. LLM 压缩翻车最狠,60.08 比基线掉了 13 个点。作者的解释是外部 LLM 改写会破坏原有的用词习惯和推理结构,而且压缩比例不可控。说实话这跟我的直觉一致——让 Claude 去改写 R1 的思维链,风格迁移的代价可能比想象中大。
  2. Similarity 过滤在 8B 上翻车,因为它会把词汇重叠度高的早期步骤误判为冗余,把关键定义删掉。位置先验反而比内容相似度更靠谱,这个结论挺反常识的。
  3. perplexity 过滤是唯一能打的 baseline(74.43),但作者提到光跑这一步在单节点 H100 上就要两个多小时——而本文方法是零额外算力的字符串切分。

通用能力不掉队

一个合理的担心是:砍了训练数据,通用能力会不会退化?作者用 Qwen3-4B + OpenThoughts3-100K 测了 TruthfulQA、MMLU、HellaSwag、WinoGrande 和代码榜:

Benchmark Baseline(未训) Standard SFT 本文方法
TruthfulQA-MC1 37.09 32.56 33.17
MMLU 73.19 72.53 72.90
HellaSwag 55.82 54.77 54.86
WinoGrande 71.43 70.40 70.64
LiveCodeBench 4.30 38.40 38.47
CodeElo 3.32 11.97 11.59

领域 SFT 本来就会拉低通用能力( baseline 73.19 的 MMLU 训完都掉到 72 附近),但本文方法在每个通用榜上都持平或略优于标准 SFT。代码榜上两者基本打平。也就是说砍中段没有带来隐性代价。


🚀 不止 SFT:GRPO 和蒸馏也能用

这部分是我觉得全文最有延展性的。既然中段冗余是轨迹本身的性质,那在 RL 和蒸馏里应该也成立。作者把思路改成了 mask:中段 token 保留在上下文里、照样参与 reward 计算,但不贡献梯度。

GRPO(DAPO-17k,mask 中段 20%):

模型 方法 AIME24 MATH500 GPQA-D 平均
Qwen3-1.7B-Base Baseline 7.8 39.3 30.3 25.8
本文 8.9 60.7 33.8 34.5
Qwen3-1.7B Baseline 26.7 80.8 46.0 51.2
本文 27.8 82.4 47.0 52.4

Base 模型上平均涨了 8.7 个点(主要来自 MATH500 的 21 个点暴涨),instruct 版也稳涨 1.2 个点。

On-policy 蒸馏(学生 Qwen3-1.7B,教师 Qwen3-8B,OpenThoughts3):

方法 AIME24 MATH500 GPQA-D 平均
Baseline 47.3 87.0 49.2 61.2
本文(token 级 mask) 49.8 86.7 49.3 61.9
本文(step 级 mask) 52.2 86.4 51.7 63.4

step 级 mask 比 token 级好(63.4 vs 61.9),说明"推理步"是比 token 更自然的冗余去除单位——这跟前面按 \n\n 切步的设计呼应上了。


📊 为什么有效:行为变化与训练动态

作者从三个角度解释了方法生效的机制。

生成行为变化:训练后模型的推理轨迹明显变干净了。

图4:本文方法训练后生成的推理轨迹对比标准 SFT——冗余的自我拉扯减少,更容易走到正确答案

图4:两个 case 对比。上面一例中标准 SFT 模型陷入反复 "Wait" 的循环最终答错,本文方法直奔结论答对;下面一例两者走到相同的中间等式,但标准 SFT 卡住,本文方法成功补全了缺失步骤。

LLM-as-judge(GPT-OSS-120B)定量评估显示:本文方法生成的轨迹有 22% 被判定优于原始数据(原始数据只赢 8%),70% 打平;标准 SFT 则是 19% vs 9%。优势不大但方向稳定。

token 长度的自适应调节

图5:相比标准 SFT 的输出 token 长度变化——原始轨迹超长时输出变短,短时反而变长

图5:横轴是基线模型的输出长度,纵轴是本文方法相对基线的 token 削减量。基线输出超过约 15k token 时,本文方法明显压缩输出(32k 处削减近 6k token);基线输出较短时,反而会增加 token 去补全推理。

这个图挺漂亮的——它说明模型学到的不是"一味变短",而是"按需分配":冗余时抑制,缺步骤时补全。

训练动力学

图6:训练过程中的困惑度曲线——本文方法用更少 token 达到持续更低的 PPL

图6:OpenThoughts3 上的训练 PPL 曲线。本文方法(橙线)全程低于标准 SFT(蓝线)。冗余中段会抬高训练 loss、让优化变难,砍掉之后模型容量集中到了更有信息量的监督信号上。


⚠️ 冷静一下:适用边界在哪

这篇论文不是万能药,作者自己也很坦诚地讨论了失效场景。

基座能力门槛

图7:基座模型能力(MMLU-Pro/MMLU-redux)与方法收益的关系

图7:横轴是基座模型未经训练的通用能力,纵轴是本文方法相对标准 SFT 的收益。s1K-1.1 上基座能力低于约 60-65 时收益为负;OpenThoughts3-100K 因为数据量大 100 倍且更多样,门槛明显下移,弱模型也能受益。

这个发现其实跟开篇的"mentor text"类比完美闭环:新手需要完整指导,高手才能从精简材料中自己脑补缺失环节。模型太弱时没有能力推断被砍掉的中段,砍了反而伤。如果你手里是个能力较弱的基座,别急着抄这个方案,先把数据量堆上去。

砍多少不那么敏感,但有个甜区

图8:不同保留步数比例下的性能

图8:以默认设置(保留约 80% 步数)为 100% 基准,上下浮动 60%-140% 时性能变化不大。砍太狠(保留 60%)稳定掉点,留太多又吃不到收益。作者的实用建议:砍 20% 是个跨数据集、跨切分粒度(步数或 token 数)都 work 的"准通用"超参。


💡 我的判断

这篇论文的定位要说清楚:它不是方法创新,是一次有价值的"默认设定审计"。Reasoning SFT 这两年卷得厉害,大家都在比谁的教师模型强、谁的数据筛选精巧,但"完整轨迹是否必要"这个最基础的假设反而没人系统验证过。这篇论文用三路互补证据(注意力相关性、切除因果性、PPL 方向性)把答案钉死了,这个论证结构本身就值得学习。

亮点: 1. 证据链设计完整,从相关性到因果性层层递进,不是单点观察就下结论 2. 方法零成本,一行字符串切分就能复现,工程上几乎免费 3. 从 SFT 推广到 GRPO 和 OPD 的实验,说明"中段冗余"是轨迹的固有性质而非 SFT 特有现象,这个泛化性提升了结论的分量

但也要泼几盆冷水: 1. 提升幅度谈不上惊人。主实验平均涨 1-2 个点,考虑到 AIME24 只有 30 题、评测方差大,个别数字(比如 4B 上 AIME 涨 3.3 个点)可能有一定运气成分。不过多个模型×数据集组合方向一致,方向上可信。 2. "20% 一刀切"的超参有点粗糙。不同题目的冗余程度差异很大,按固定比例砍必然会误伤一些中段其实很关键的难题。论文也承认缺乏原则性的 cutoff 规则。 3. 基座门槛是个实打实的限制。弱模型上负收益意味着这不是普适的免费午餐,用之前得先评估自己基座的位置。 4. 所有实验都在 32B 及以下、数学/科学推理为主。代码、多轮 Agent 轨迹这类结构不同的推理数据上是否成立,还是问号。

对工程的启发倒是立竿见影的:如果你在做 reasoning SFT 的数据管线,长度截断策略值得立刻从"砍头"或"砍尾"改成"砍中段"——这是零成本的改进。做 RL 的同学可以试试把中段 mask 加进 GRPO 的实现,反正也就几行代码的事。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我