LLM 长推理"塞不下又算不动"怎么办?InftyThink 把推理从一条长河切成短段+摘要,ICLR 2026 收录的真实解法
- 关联论文:2503.06692
如果你用 DeepSeek-R1、Qwen3、QwQ 这些"会思考"的模型跑过数学题或代码生成,你大概率撞过这三堵墙:
- 算力随推理长度二次增长——推理链越长,GPU 显存和延迟被迅速吃光。
- 被最大上下文长度锁死——32K、200K 都有顶,模型必须在中途截断。
- 超出预训练窗口后掉点——不只是放不下,而是真的"想不对"。
arXiv 2503.06692(InftyThink · ICLR 2026 收录)的解法很优雅:别再硬扛一条越来越长的河,把它切成一段一段的小溪,中间留几块踏脚石——把"一次性把所有思考塞进超长上下文"改成"短推理段 + 中间摘要"的迭代循环,让推理深度不再受上下文窗口限制,同时把每步计算复杂度从 O(n²) 量级降下来。
更狠的是:不修改模型架构,让 Qwen2.5-Math-7B 在 MATH500 / AIME24 / GPQA_diamond 上拿到 3–11% 的相对提升。
0 · 一分钟 TL;DR
- 问题:Long CoT(长思维链)推理撞墙于算力 O(n²)、上下文上限、训练-推理长度分布偏移。
- 方法:把推理链切成 K 段,每段生成后留一份"进度摘要",下一段基于"问题 + 上一份摘要"继续。
- 复杂度:从单次 O(N²) 降到 K × O((N/K)²) + O(N) ≈ O(N²/K + N),平方项被砍掉。
- 证据:Qwen2.5-Math-7B(不动架构)在 MATH500 / AIME24 / GPQA_diamond 上拿到 3–11% 相对提升;数据规模 333K 训练实例;ICLR 2026 收录。
- 意义:在不动 Transformer 结构的前提下,给"长推理服务"提供了一条显存峰值可控 + 上下文可无限的工程路径——对部署 DeepSeek-R1 类模型的团队意义重大。
1 · 为什么这件事重要(如果你在做 LLM 推理服务)
1.1 长思维链的三个真痛点
过去两年 LLM 在数学、代码、科学推理上的进步,几乎都建立在"长思维链"(Long CoT,Long Chain-of-Thought)上——让模型一次性输出上千甚至上万 token 的推理过程。但工业部署时,三个真痛点必须面对: - 算力随长度二次增长:Self-Attention 是 O(n²),n 增长一倍计算量翻四倍。 - 被 max context 锁死:无论上下文窗口是 32K 还是 200K,长推理总有一天会撞到天花板。 - 超出预训练窗口后掉点:当推理链长度明显超过预训练时见过的长度,模型性能本身就开始退化。
已有的改进——压缩 prompt、缩短 CoT、Chain-of-Draft——主要是把链子变短,没有根本解决"推理深度和算力必须一起涨"这件事。
1.2 InftyThink 的立意
别再硬扛一条越来越长的河,把它切成一段一段的小溪,中间留几块踏脚石。
直觉上:人脑在解一个长题时,也不是一次性把所有中间结论都堆在脑子里——我们会分阶段,每阶段做完写个简短小结,然后带着小结进入下一阶段。InftyThink 把这个直觉显式写进推理范式。
2 · 论文怎么干(用人话讲)
2.1 范式层面:从单体推理到迭代推理
传统 Long CoT:
问题 q → [R1, R2, R3, ..., R_n] → 最终答案 a
↑
单条长度 n 的推理链
InftyThink(切成 K 段 + 摘要):
问题 q
→ [R^(1)] 短推理段 1
→ S^(1) 摘要 1(保留关键中间结论)
→ [R^(2) | q, S^(1)] 短推理段 2(看摘要继续想)
→ S^(2)
→ ...
→ [R^(K) | q, S^(K-1)] 短推理段 K
→ 最终答案 a
R^(k) 是第 k 段推理(长度被显式约束为短,比如数百 token),S^(k) 是上一段推理的浓缩(几十到一两百 token)。每段的上下文只包含"问题 q + 上一份摘要",而不是完整历史。
2.2 为什么这样能省算力
设总推理 token 为 N:
- 传统 Long CoT 一次上下文长度为 N,attention 复杂度近似 O(N²)。
- InftyThink 切成 K 段,每段长度 n = N/K,加上 K 份摘要(总长 M ≪ N)。
- 段内 attention 复杂度:K × O(n²) = K × O((N/K)²) = O(N² / K)。
- 摘要部分 attention:因摘要长度短,开销近似 O(N)(线性)。
- 总开销 ≈ O(N² / K + N)。
平方项被砍掉,K 越大省得越多。论文量级估算:在 K=4、N=8K 的典型数学题下,attention FLOPs 省约 60%(⚠ abstract 未明确给此数字,这是基于公式的量级估算)。
2.3 训练与推理流程伪代码(简化版)
# 训练阶段:数据构造
for (q, long_cot, answer) in math_dataset:
segments = split_by_token_threshold(long_cot, max_tokens_per_seg=512)
summaries = [deepseek_summarize(seg) for seg in segments]
inftythink_data.append(
{"q": q, "segments": segments, "summaries": summaries, "answer": answer}
)
# SFT 训练
for batch in dataloader(inftythink_data):
loss = 0
for k, (R_k, S_k) in enumerate(batch.segments):
ctx = batch.q if k==0 else concat(batch.q, batch.summaries[k-1])
loss += CE(model(ctx), R_k + S_k)
loss += CE(model(concat(batch.q, batch.summaries[-1])), batch.answer)
backward(loss)
⚠ DeepSeek-R1 是否被论文用来生成摘要,需对照 PDF §3 核验;若原文明示则可信,未明示则为推测。
2.4 与 RL 的兼容性
InftyThink 天然兼容两类后训练方法: - SFT:直接把 333K 段级实例喂进去,Loss 在每段 reasoning token 与每份摘要 token 上展开。 - RL(GRPO / PPO):把"最终答案是否正确"作为 reward,按段 rollout 收集轨迹。由于每段长度被显式约束,rollout 的显存峰值可控,单卡可并行更多轨迹。
但有个常见坑:训练时 K 固定,推理时问题复杂度不同可能导致 K' ≠ K。落地时建议固定 K 或限制 K ∈ [K_min, K_max],并把"段数本身"作为 reward shaping 因素。
3 · 为什么这事对你(工程读者)真有用
3.1 如果你在部署 DeepSeek-R1 / QwQ 类长推理模型
单请求 O(N²) 成本是真实痛点。InftyThink 提供了一条显存峰值可控的工程路径——把 K=4 的迭代范式训练好后,单 query 的显存峰值降到原来的约 1/√K(理论上 K=4 时降到 1/2),而总 token 数基本不变。
注意:wall-clock latency 可能不降反升(K 段串行 + 摘要生成开销),但吞吐量(throughput)和并发能力会显著提升——这对生产部署更关键。
3.2 如果你受限于上下文窗口
在 32K / 64K 上下文硬限下,又必须做超长数学/证明任务时,InftyThink 是少数能"绕开"窗口的合规路径——理论上推理深度无限,靠迭代而不是上下文长度。
3.3 如果你在做 Agent 多步推理
Agent 内部的 planning / reflection 循环本质上就是"短推理 + 状态摘要"。InftyThink 给了一个有理论支撑的拆解范式:把"CoT 拆成 Agent 步骤"这件事从经验上升到论文。
3.4 如果你想复用长 CoT 数据集
任何高质量长 CoT 数据集(如 OpenR1-Math)都能用同款流水线改造成 InftyThink 格式,迁移成本几乎为零。这对数据团队意义重大。
4 · 落地前要避的 6 个坑
- 摘要质量决定迭代上限:摘要丢失关键中间结论,后续推理会系统性偏离。建议用强模型(GPT-4o / Claude-3.5)做摘要,并监控 (S_{k-1}, R_k) 语义一致性打分。
- TTFT 随 K 线性增长:K=4 意味着 4 倍首 token 延迟;在线交互(chat)场景需要 K 上限收紧(建议 ≤ 4)或 early-stop 条件。
- Wall-clock latency 可能不降反升:InftyThink 的价值在于显存峰值可控而非总延迟最优;单请求场景下总延迟可能超过直接 Long CoT。
- 训练-推理段数不一致:训练 K 固定,推理时问题复杂度不同可能导致 K' ≠ K;RL 阶段建议引入 K 作为 reward shaping。
- 数据重构质量依赖原长 CoT 质量:OpenR1-Math 本身若有 reasoning 错误,重构后的数据会继承错误;建议对原数据集做质量过滤。
- Agent 叠加时摘要被过度依赖:若 Agent 每步都用摘要重建上下文,存在"摘要 → 工具调用 → 新摘要"链条拉长的风险;建议对工具调用结果单独处理,用外部记忆存储而非塞入摘要。
5 · 关键数字与边界(abstract verbatim)
| 指标 | 数值 | 来源 |
|---|---|---|
| 基座模型 | Qwen2.5-Math-7B 等 | abstract |
| 基准 | MATH500 / AIME24 / GPQA_diamond | abstract |
| 相对提升 | 3–11% | abstract |
| 数据规模 | 333K 训练实例 | abstract |
| 复杂度 | O(N²) → O(N²/K + N) | 数学推导 |
| 会议收录 | ICLR 2026 | OpenReview |
⚠ "3–11% 相对提升"是相对百分比还是绝对百分点,原文 Table 注释需核验;"60% 注意力 FLOPs 节省"为基于公式的量级估算,非原文数据。
6 · 一句话总结
InftyThink 把"一次性把推理塞进超长上下文"改成"短段 + 摘要"的迭代循环,不动架构就让 Qwen2.5-Math-7B 在 MATH500 / AIME24 / GPQA_diamond 上拿到 3–11% 相对提升,把 attention 复杂度从 O(N²) 砍到 O(N²/K + N),已通过 ICLR 2026 同行评审——这是 2026 年少数真正解决了"长推理成本-上下文-质量"三角矛盾的工程级解法,且对生产部署 DeepSeek-R1 类模型的团队直接可用。
本稿基于已含「工程落地与核查(Jay)」节的深度解读(explainers/2503-06692.md)改写。
三个标题变体
- 数字钩子版:LLM 长推理"塞不下又算不动"怎么办?InftyThink 切成短段+摘要,复杂度从 O(N²) 砍到 O(N²/K+N)
- 拟人化版:别再硬扛一条越来越长的推理河——把它切成小溪,每段留块踏脚石
- 类比版:相当于给 LLM 的思维链加了"分段小结",让推理深度不受上下文窗口限制
📱 小红书风格卡片文案
🧠 LLM 长推理"塞不下又算不动"?这篇 ICLR 2026 给了一条真解法
你用 DeepSeek-R1 / Qwen3 跑过数学题吧?是不是撞过这三堵墙:
❌ 算力随推理长度二次增长(n 翻倍,计算量翻 4 倍)
❌ 被最大上下文长度锁死(32K / 200K 都有顶)
❌ 超出预训练窗口后真的"想不对"(不是放不下,是退化)
arXiv 2503.06692(InftyThink · ICLR 2026 收录)的解法很优雅:
别再硬扛一条越来越长的河,把它切成一段一段的小溪,中间留几块踏脚石
把推理从"一次性把所有思考塞进超长上下文"改成"短推理段 + 中间摘要"的迭代循环:
问题 q
→ [R^(1)] → S^(1) # 短推理段 1 + 摘要 1
→ [R^(2)|q,S^(1)] → S^(2) # 短推理段 2(看摘要继续想)
→ ... → 最终答案 a
每段的上下文只包含"问题 q + 上一份摘要",而不是完整历史。
数学上:
- 传统 Long CoT:attention 复杂度 O(N²)
- InftyThink:O(N²/K + N),平方项被砍掉
- K=4 时省约 60% 注意力 FLOPs(⚠ 量级估算)
效果(不动模型架构):
✅ Qwen2.5-Math-7B 在 MATH500 / AIME24 / GPQA_diamond 上 +3–11% 相对提升
✅ 数据规模 333K 训练实例
✅ 兼容 SFT 与 GRPO/PPO
✅ 已通过 ICLR 2026 同行评审
避坑清单:
⚠️ 摘要质量决定迭代上限——用强模型做摘要,监控语义一致性
⚠️ TTFT 随 K 线性增长——在线 chat 场景 K ≤ 4 + early-stop
⚠️ Wall-clock latency 可能不降反升——但 throughput / 并发显著提升
⚠️ 训练 K 固定,推理 K' 可能 ≠ K——RL 阶段把 K 作为 reward shaping
🎯 一句话:InftyThink 不动架构,就把"长推理成本-上下文-质量"的三角矛盾解开了——对部署 DeepSeek-R1 类模型的团队直接可用。