你的推理链里有 40% 是水:TokenSkip 让 LLM 学会"跳着思考" 💨
> 核心判断:所有慢思考模型的推理链里,都有大量"水分"——连接词、废话、重复验证。香港理工大学的团队发现了一个残酷的真相:CoT 里不同 token 的重要性差异巨大,数学公式是关键,"so"和"since"可有可无。他们的 TokenSkip 让模型学会直接跳过这些水词,在 GSM8K 上砍掉 40% 的 token,准确率几乎不掉(<0.4%)。如果这是对的,我们过去在推理压缩上的很多努力,都走错了方向。
---
1. 一个反直觉的发现:不是所有 token 都生而平等 ⚖️
想象你读一篇推理文章:
> "Let's break it down step by step. 1. Deanna is 26 years old. 2. Marcus is five years younger than Deanna, so Marcus is 26 - 5 = 21 years old. 3. Marcus is half of Leo's age, so Leo's age is twice Marcus's age. 4. Since Marcus is 21, Leo's age is 2 x 21 = 42."
现在告诉我,哪些 token 是真正不可或缺的?
Xia 等人(2025)用 LLMLingua-2(一个双向语言模型)分析了 CoT 中每个 token 的语义重要性:
| Token 类型 | 例子 | 重要性 | 是否可跳过 |
|---|---|---|---|
| 数学公式 | 26 - 5 = 21, 2 x 21 = 42 | 🔴 极高 | ❌ 不可 |
| 关键实体 | Deanna, Marcus, Leo | 🟠 高 | ❌ 不可 |
| 数字 | 26, 5, 21, 42 | 🟡 中高 | ⚠️ 谨慎 |
| 连接词 | so, since, therefore | 🟢 低 | ✅ 可以 |
| 填充语 | Let's break it down step by step | 🔵 极低 | ✅ 完全可以 |
---
2. 现有压缩方法的愚蠢之处 🎯
在 TokenSkip 之前,人们怎么压缩 CoT?
方法一:Prompt-based Reduction
告诉模型:"请减少 50% 的字数。"
结果?
| 目标压缩比 | 实际压缩比 | 问题 |
|---|---|---|
| 0.5 | 0.89+ | 模型不听话,压缩不到位 |
| 0.7 | 0.98 | 几乎没压缩 |
方法二:Truncation(暴力截断)
直接限制最大输出长度。
结果?
| 压缩比 | GSM8K 准确率变化 | MATH-500 准确率变化 |
|---|---|---|
| 0.9 | -16.0% | -0.8% |
| 0.7 | -60.3% | -3.6% |
| 0.5 | -79.2% | -21.2% |
---
3. TokenSkip 的优雅方案:跳着思考 🦘
TokenSkip 的核心 insight 简单到让人嫉妒:
> 既然我们知道哪些 token 重要,为什么不让模型直接学会跳过不重要的?
3.1 三步走
Step 1:度量重要性
用 LLMLingua-2(双向 BERT-like 模型)计算每个 token 的重要性分数:
$$I_2(x_i) = P(x_i \mid \bm{x}_{\leq n}; \bm{\theta}_{\mathcal{M}_B})$$
> 为什么用双向模型? 因果语言模型(如 GPT)的自回归注意力有位置偏差——句子末尾的 token 天然有更高的置信度(因为前面信息更多)。双向模型没有这个偏见,能更公平地评估每个 token 的真实重要性。
Step 2:按重要性剪枝
给定压缩比 $\gamma$(如 0.5),保留重要性最高的 $\gamma$ 比例 token:
$$\widetilde{\bm{c}} = \{c_i \mid I(c_i) \geq I_\gamma\}$$
其中 $I_\gamma = \text{np.percentile}([I(c_1), \dots, I(c_m)], \gamma)$
Step 3:训练模型生成压缩 CoT
在问题后插入压缩比参数 $\gamma$,让模型学会生成对应压缩级别的推理链:
$$\mathcal{Q} \ [\text{EOS}] \ \gamma \ [\text{EOS}] \ \text{Compressed CoT} \ \mathcal{A}$$
训练时混合不同压缩比(0.5, 0.6, 0.7, 0.8, 0.9, 1.0),让模型掌握全谱系的压缩能力。
3.2 惊人的训练效率
| 配置 | 细节 |
|---|---|
| 微调方法 | LoRA (rank=8, α=16) |
| 训练参数量 | 仅 0.2% |
| 训练数据 | GSM8K 7,473 + MATH 7,500 |
| 7B 模型训练时间 | ~2 小时 (2x 3090) |
| 14B 模型训练时间 | ~2.5 小时 (2x 3090) |
---
4. 数据说话:TokenSkip 碾压基线 📊
GSM8K 上的表现
| 方法 | 压缩比 | 准确率 | Token 数 | 延迟 | 实际压缩比 |
|---|---|---|---|---|---|
| 原始 CoT | — | 86.2% | 213 | 5.96s | — |
| Prompt 0.5 | 0.5 | 83.7% | 189 | 4.97s | 0.89 ❌ |
| Truncation 0.5 | 0.5 | 7.0% 💀 | 104 | 2.95s | 0.49 ✅ |
| TokenSkip 0.5 | 0.5 | 78.2% ✅ | 113 | 3.40s | 0.53 ✅ |
| TokenSkip 0.7 | 0.7 | 82.5% ✅ | 150 | 4.36s | 0.70 ✅ |
Qwen2.5-14B 上的惊人结果
| 压缩比 | 准确率 | Token 数 | 性能变化 |
|---|---|---|---|
| 1.0 (原始) | 基线 | 313 | — |
| 0.6 | 几乎持平 | ~188 | < 0.4% 下降 |
| 0.5 | -2% | ~157 | 可接受 |
MATH-500 上的表现
| 方法 | 压缩比 | 准确率 | 性能变化 | 加速 |
|---|---|---|---|---|
| 原始 | — | 48.6% | — | 1.0x |
| TokenSkip | 0.7 | 46.7% | -1.9% | 1.4x |
| TokenSkip | 0.5 | 40.2% | -8.4% | 1.7x |
---
5. 最惊人的发现:压缩后的 CoT 可以被恢复 🔮
TokenSkip 不是 destructive compression(破坏性压缩)。研究者发现:
> 模型可以从极度压缩的 CoT 中恢复完整的推理过程。
示例:
- 压缩版:"break down Deanna 26 Marcus five younger 26 - 5 21 Marcus half Leo's age twice Marcus Marcus 21, Leo's age 2 x 21 = 42"
- 恢复版:"Let's break it down step by step. Deanna is 26 years old. Marcus is five years younger than Deanna: M = D - 5. Marcus's age: M = 26 - 5 = 21. Marcus is half of Leo's age: M = L / 2. Leo is twice Marcus's age: L = 2M. Leo's age: L = 2 x 21 = 42."
---
6. 我的押注 💰
我赌 500 美元:到 2025 年底,TokenSkip 或其变体会被集成到至少一个主流推理 API(OpenAI、DeepSeek、Anthropic)中,作为"推理效率模式"的默认选项。
为什么?
1. 效果太硬了:40% token 减少 + < 0.4% 性能下降。这不是渐进改进,是质的飞跃。
2. 实现成本太低了:LoRA 微调 0.2% 参数,2 小时训练,两张 3090。任何团队都能复现。
3. 商业价值明确:API 按 token 收费。40% 的 token 减少 = 40% 的成本节约。这是 CFO 最爱的数字。
4. 用户体验双升:响应更快(延迟↓)+ 答案一样好(准确率→)。产品经理梦寐以求的"免费午餐"。
敌人是谁?
- "每 token 都重要"的原教旨主义者——数据证明,连接词和填充语是可以牺牲的。
- 还在用 truncation 做推理压缩的工程团队——你在谋杀模型的推理能力。
- 认为"长推理 = 高质量"的用户——有时候, concise 的思考比冗长的独白更有价值。
7. 局限与未来 🔮
TokenSkip 不是完美的:
1. 依赖外部重要性模型:LLMLingua-2 是独立的双向 LM,增加了系统复杂度。能否训练模型自评估 token 重要性?
2. 压缩比的粒度:当前是全局压缩比。能否实现动态压缩——根据推理进程实时调整压缩强度?
3. 领域迁移:在数学上验证有效,但在代码推理、科学推理、多模态推理上是否同样有效?
4. 与训练时方法的结合:TokenSkip 是推理时/后训练压缩。如果与 DAST(难度自适应)或 MRT(元 RL)结合,能否实现更大收益?
但无论如何,TokenSkip 提出了一个无法回避的问题:我们到底需要多少 token 来思考? 答案可能是:比我们以为的少得多。
---
论文详情
| 项目 | 内容 |
|---|---|
| 标题 | TokenSkip: Controllable Chain-of-Thought Compression in LLMs |
| 作者 | Heming Xia, Yongqi Li, Chak Tou Leong, Wenjie Wang, Wenjie Li |
| 机构 | The Hong Kong Polytechnic University, University of Science and Technology of China |
| arXiv ID | 2502.12067 |
| 日期 | 2025-02-17 |
| 核心贡献 | Token 重要性分析;可控 CoT 压缩;跳着思考;压缩 CoT 可恢复 |
| 关键结果 | Qwen2.5-14B GSM8K: -40% token, < 0.4% 性能下降;LLaMA-3.1-8B MATH-500: -30% token, < 4% 下降, 1.4x 加速 |
| 训练成本 | LoRA 微调 0.2% 参数;7B ~2h, 14B ~2.5h (2x 3090) |
| 代码 | https://github.com/hemingkx/TokenSkip |