五十七:大模型推理链压缩¶
来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247484742&idx=1&sn=790e869a90b909d406485cdcd7cdba43&chksm=f01eb63fc7693f297bc9b52745117484f8f3a2b3ce9ff4db22a3c4ab765363b84496088e4c4b#rd
1. 学习范围¶
本日主题是推理链压缩,也就是在保持推理质量的前提下减少模型生成的中间思考 token。
本日覆盖: - Chain-of-Thought 为什么带来显著推理成本。
-
推理链压缩与 prompt compression、speculative decoding 的区别。
-
推理链压缩的目标、约束和评价指标。
-
Chain of Draft 的短草稿推理范式。
-
TokenSkip 的可控推理链 token 压缩思想。
-
LightThinker 的逐步压缩思想。
-
训练时压缩、推理时压缩和提示词压缩的差异。
-
生产系统中如何评估压缩收益、正确性风险和用户体验。
2. 问题定义¶
推理链压缩关注的是模型在解题过程中生成的中间 reasoning tokens,而不是用户输入 prompt 的长度。 典型长推理输出:
压缩后的目标: 它要解决的问题是:很多任务需要中间推理才能提升正确率,但长篇推理会增加延迟、费用、上下文占用和可读性负担。3. 推理链为什么会变贵¶
LLM 的生成是自回归的。每多生成一个中间 token,Decode 阶段就多一次 token 级计算。 长推理链的成本包括: - 更高的输出 token 费用。
-
更长的 end-to-end latency。
-
更多 KV cache 占用。
-
更低的 batch 调度效率。
-
流式输出中更长的等待。
-
在多轮 agent 中占用上下文窗口。
当模型使用 test-time scaling、self-consistency、tree search 或多轮反思时,reasoning token 会进一步放大。
4. 推理链压缩的核心目标¶
推理链压缩不是单纯让模型少说话,而是在准确性、可解释性和成本之间做可控折中。 核心目标: - 减少中间推理 token。
-
尽量保持最终答案正确率。
-
保留关键推理状态和约束。
-
支持按任务难度动态调整预算。
-
避免把必要步骤压缩掉。
一个常用指标是压缩率:
compression_ratio = compressed_reasoning_tokens / original_reasoning_tokens
token_saving = 1 - compression_ratio
5. 与相近技术的区别¶
推理链压缩容易和几类技术混淆。 Prompt compression 压缩的是输入上下文,例如删减检索文档、压缩历史对话、筛选上下文 token。 推理链压缩压缩的是模型输出过程中的中间思考。 Speculative decoding 通过 draft-verify 减少目标模型调用次数,不一定减少最终输出 token 数。 推理链压缩直接减少要生成的 reasoning token,因此能同时影响费用、延迟和上下文占用。 Knowledge distillation 可能把长推理教师的能力蒸馏到学生模型中,学生在推理时可以更短地回答。它是一种可能的训练路径,但不是所有推理链压缩都必须蒸馏。
6. 方法谱系¶
推理链压缩可以按介入位置分类。 第一类是 prompt-level 方法。代表是 Chain of Draft,直接通过提示词要求模型用极短草稿进行推理。 第二类是 decoding-time 方法。系统在生成过程中根据预算、置信度、任务难度或 token 重要性控制推理长度。 第三类是 token/step-level compression。代表包括 TokenSkip 和 LightThinker 这类显式识别冗余 token 或压缩推理步骤的方法。 第四类是 training-time 方法。用短推理数据、蒸馏数据、长度惩罚或预算条件训练模型,使模型学会在有限 token 内完成推理。 第五类是 routing 方法。简单问题直接短答,困难问题才启用长推理或多样本推理。
7. Chain of Draft¶
Chain of Draft 的直觉是:人类在草稿纸上解题时,经常只写关键中间量,而不会写完整自然语言解释。
例如普通 CoT:
草稿式推理: CoD 强调写得少,但不是不推理。它让模型保留必要的计算状态、约束和转移。 适合场景: - 算术题。-
逻辑题。
-
规划题中的关键状态追踪。
-
需要多步但中间解释冗余较多的任务。
不适合场景: - 用户需要完整教学解释。
-
合规或审计需要可读推理说明。
-
任务难点在细粒度文字辨析,过度压缩可能丢失条件。
8. TokenSkip 思想¶
TokenSkip 关注可控的 Chain-of-Thought token 压缩。核心问题是:推理链中哪些 token 对最终答案真正重要,哪些只是连接词、重复解释或低信息表达。
一种直观实现可以包含三步:
重要性可以来自模型置信度、梯度、注意力、teacher-student 差异、删除后答案变化或专门训练的选择器。TokenSkip 的关键价值在于可控性。系统可以设置不同预算,例如保留 30%、50% 或 70% 的 reasoning token,并观察准确率下降曲线。
9. LightThinker 思想¶
LightThinker 类方法的核心是逐步压缩,而不是把完整推理链一次性硬删短。
常见思路是: - 先让强模型生成完整 step-by-step 推理。
-
将每一步压缩成更短的表达。
-
保留步骤边界和关键变量。
-
用压缩推理训练或约束模型。
-
在推理时生成短步骤而不是长段落。
它比单纯提示“be concise”更结构化,因为压缩对象是 reasoning step,而不是整段文本长度。 逐步压缩的优势是可诊断。如果某一类步骤被压缩后错误率上升,可以回到对应步骤分析是条件丢失、变量丢失还是中间结论错误。
10. 训练时压缩¶
训练时压缩的目标是让模型内化短推理风格。 常见路径: - 用长 CoT 作为教师,生成短 CoT 作为学生监督数据。
-
对答案正确且推理更短的样本进行 SFT。
-
在 RL 阶段加入长度惩罚。
-
用预算 token 作为条件,让模型按预算输出。
-
混合长推理和短推理数据,避免模型在难题上过度省略。
一个简化目标可以写成:
其中lambda 控制长度惩罚强度。lambda 太小,模型不会变短;lambda 太大,模型会跳步骤甚至胡猜。
11. 推理时压缩¶
推理时压缩不一定改变模型参数。 常见做法: - 在 system prompt 中要求使用草稿式推理。
-
给出短推理示例。
-
设置 reasoning token budget。
-
根据任务类型选择短推理、长推理或直接回答。
-
生成一段短草稿后立刻输出答案。
-
当模型置信度低时自动升级为长推理。
推理时方法部署简单,但稳定性依赖模型本身是否听从压缩指令。
12. 关键评价指标¶
推理链压缩不能只看 token 减少。 应同时评估: - Accuracy:最终答案正确率。
-
Token saving:reasoning token 节省比例。
-
Latency:首 token、总时延和 TPOT。
-
Cost:输出 token 计费和推理资源消耗。
-
Robustness:不同题型、长度、语言下是否稳定。
-
Faithfulness:短推理是否仍能反映真实解题路径。
-
Readability:人是否能快速检查关键步骤。
-
Escalation rate:有多少请求需要回退到长推理。
理想曲线不是单点,而是准确率随压缩率变化的 Pareto frontier。
13. 正确性风险¶
过度压缩会带来几类错误。 第一类是条件丢失。例如题目中有“至少”“不超过”“除非”等约束,短草稿可能漏掉。 第二类是变量混淆。长题中有多个实体、时间或数值,压缩后变量名不清。 第三类是中间状态断裂。多步推理中某一步结论没有保留,后续生成只能猜。 第四类是看似合理的短解释掩盖错误答案。 第五类是模型学会用短格式输出,但没有真正学会短推理。
14. 任务难度与动态预算¶
不同任务不应该使用同一个压缩强度。 简单事实问答可以直接短答。 中等算术和逻辑题适合 CoD。 复杂证明、代码推理、长上下文合成可能需要较长中间状态。 一种实用策略:
1. 轻量分类器估计难度。
2. 简单任务用 short reasoning。
3. 中等任务用 compressed CoT。
4. 困难任务用 full CoT 或多样本推理。
5. 如果校验失败,再回退到长推理。
15. 与 test-time scaling 的关系¶
Test-time scaling 通常通过更多推理 token、更多采样、搜索或反思提升正确率。 推理链压缩看起来与它相反,但二者可以结合: - 对每条样本使用短草稿,节省单样本成本。
-
用省下的 token 预算生成更多候选。
-
对简单题压缩,对难题扩展。
-
在 verifier 之前压缩候选推理,降低排序成本。
核心不是永远变短,而是在固定计算预算下分配更有效。
16. 系统实现注意事项¶
上线推理链压缩时,需要同时改动模型调用策略和监控指标。 关键实现点: - 区分 final answer token 和 reasoning token。
-
记录不同任务类型的 token saving。
-
为高风险任务设置 fallback。
-
对短推理输出做格式约束。
-
保留可复现实验日志。
-
避免把压缩提示泄漏给用户或污染业务语气。
-
对多语言任务单独评估。
如果模型提供独立的 reasoning budget 参数,优先使用模型原生参数;否则使用 prompt、路由和输出格式约束组合实现。
17. 实验设计¶
一个基本实验应包含:
Baseline: normal CoT
Variant A: direct concise prompt
Variant B: Chain of Draft prompt
Variant C: compressed CoT training or TokenSkip
Variant D: dynamic budget routing
-
平均 reasoning token。
-
平均输出 token。
-
P50/P95 latency。
-
单题成本。
-
按题型分桶的错误样例。
需要注意,整体准确率可能掩盖长难题退化。应按难度、题型和上下文长度分桶。
18. 面试中的高频考点¶
面试中经常考察以下问题: - 推理链压缩和 prompt compression 的区别。
-
为什么 CoT 可以提升准确率但增加成本。
-
Chain of Draft 的本质是不是“不解释”。
-
TokenSkip 如何做到可控压缩。
-
如何评价压缩后的正确性。
-
如何设计动态 reasoning budget。
-
如果压缩后准确率下降,如何定位问题。
-
生产系统中如何做 fallback 和监控。
回答时要强调:推理链压缩是成本-正确性-可解释性的三方权衡,不是简单删 token。
19. 紧凑总结¶
推理链压缩的核心是减少模型中间思考 token,同时尽量保留解决问题所需的关键状态。 Chain of Draft 使用草稿式短推理,适合低冗余表达。 TokenSkip 强调可控跳过低价值 CoT token。 LightThinker 强调逐步压缩和短步骤学习。 训练时方法更稳定,但成本更高;推理时方法上线快,但依赖模型遵循指令。 好的工程方案通常是动态预算:简单题短答,中等题压缩推理,困难题保留长推理,并用校验和回退控制风险。
预览时标签不可点
<div class="