Inference-time Technique for scaling token budget

o3 pretty impressive, why?

推理技巧对应 Agent 能力说明
🌀 多轮思考(CoT)🧭 规划能力(Plan)Agent 会自己拆解任务成步骤
🔁 多次采样 / 自洽性✅ 自我验证(Reflect)Agent 会尝试多个路径再选最优
🧠 Tool use🛠️ 工具调用(Act)Agent 会调用计算器、搜索、数据库等外部工具
📚 长上下文 / 示例🧠 记忆 / 上下文理解Agent 会调入长文档或知识,构建更好的语境
🧍 自我修正🧩 反思与修正(Reflect & Improve)Agent 能对自己输出做分析和改写

Trigger LLM to generate long chain-of-thoughts

Ways:

  • few-shot CoT prompting
  • Instruction prompting
  • Instruction tuning
  • Reinforcement learning

1. Introduction to basic prompting techniques

use more token budget to generate a single solution

关键词:用更多 token 来生成一个解答

👉 这是最基本的方式,也就是你给模型一个比较清晰、详细的 prompt(提示词),然后它直接一次性给出答案。

  • 比如说你问:“请帮我写一个关于人工智能对教育影响的短文。”

  • 模型会用它的“token预算”来理解问题 → 思考 → 输出答案,一次完成。

🪄 用法建议: 如果你希望它多思考一点,写得更全面,就可以:

  • 提高温度(temperature)调节创意程度

  • 或者加更多背景信息(prompt 越详细,token 越多)

🧠 什么是 Zero-shot CoT?

“Zero-shot”意思是:不给模型示范例子(examples),直接用一个提示语让它开始思考。

“CoT(Chain of Thought)”意思是:鼓励模型一步步思考,先推理,再给答案

所以 Zero-shot CoT 就是:

不给例子,只加一句话提示它“请逐步推理”,引导模型思考得更深入、更有逻辑。

Analogical prompt 类比提示

1. 模型输入(Model Input):

  • 问题是:“四个顶点坐标为 (-2, 2),(2, -2),(-2, -6),(-6, -2) 的正方形的面积是多少?”

  • 提示:要求模型首先回忆与此问题相关的示例,然后再解决当前问题。

2. 相关示例(Relevant Exemplars):

  • 模型首先给出一个类似的例子,“一个正方形的面积是如何计算的?”

  • 示例中的答案是:正方形的面积通过平方边长来计算。(这里给出了一个有用的公式:面积 = 边长²

3. 解决问题(Solve the Initial Problem):

  • 然后,模型使用这个知识来计算当前问题的答案。

  • 通过计算四个顶点的距离来确定正方形的边长,进而算出面积。

4. 模型输出(Model Output):

  • 模型首先回顾了相关示例,然后通过步骤计算得出了面积的结果。

  • 这是一种引导模型逐步推理的方式,先让它理解相关知识,再进入具体计算。

Analogical prompting outperforms 0-shot Cot and Mannul few-shot CoT

如何找到好的prompt?

利用多个 LLM 分工合作(生成 + 打分 + 改写)来自动找到效果最好的 prompt!

适合用在:

  • 自动提示词优化(Auto Prompt Tuning)

  • 提高准确率的任务(如 QA、翻译、指令执行)

  • 系统性 prompt 工程(不靠人工猜)

🎯 什么是 Meta-Prompt?

Meta-prompt 就是用一个提示词(prompt)去生成新的提示词。
它的目标是:让模型自己学习历史上表现好的提示方式,并尝试写出一个更好的提示。

🌟 这类 Meta-Prompt 中的 “Score” 是怎么得出来的?

✅ 最常见的做法是:

用这个 prompt 去回答一批标准题目,看它答对多少题,答对的比例就是分数!

Least-to-Most Prompting

Least-to-Most Prompting:从简单到复杂的推理引导方式
——通过将复杂问题「分解」成简单步骤,让语言模型更容易解出难题!

  1. 问题拆解,识别子问题。
  2. 逐步解决子问题。

Dynamic Least-to-Most prompting

🪓 拆解复杂问题 ➕
📚 动态选例子来辅助 ➕
🪜 逐步求解子问题 ➕
🔧 组合成完整逻辑结构

非常适合用在:

  • 多步逻辑推理

  • SQL/SPARQL 查询生成

  • 多跳问答(multi-hop QA)

  • Agent 智能模块设计(例:动态记忆回调 + 示例学习)

🧠 What is CFQ?

CFQ 是一个由 Google 研究团队提出的数据集,用于测试大型语言模型(或结构化推理模型)是否真的“理解组合性”(compositional generalization)——也就是说:

🌈 模型能不能学会「新组合」,而不是只会记住旧例子。


📦 CFQ 的基本内容:

  • 它基于 Freebase 知识库(一个结构化的知识图谱)

  • 每一条数据包括:

    • 自然语言问题(比如:“Who directed a film that Tom Hanks acted in?”)

    • 目标逻辑查询(SPARQL / logical form)

🧠 Self-Discover Prompting(结构自发现式推理)

🌟 核心思想:

让语言模型(LLM)主动发现解题所需的推理结构(Reasoning Structure),然后基于该结构逐步解题


🧱 Stage 1:任务层级结构发现(Task-Level Structure Discovery)

  • 输入:任务类型(例如「推理彩色物体」)

  • 操作:让模型用自然语言或结构化方式,总结完成任务所需的各个推理步骤。

  • 输出:一个包含多个关键步骤的Key-Value 结构模板(推理结构)

📌 示例输出结构(Reasoning Structure):

json

{ "Type and color of each item": "", "Number of items of each color": "", "Number of items of each type": "", "Number of items of each color and type": "", "Final answer": "" }


🔁 Stage 2:实例层级解题(Instance-Level Decoding)

  • 输入:具体问题(task instance)+ 上面生成的结构模板

  • 操作:模型按照模板中的每个 Key,逐项推理、填充 Value

  • 输出:完整的答案(通过结构逐步生成)

🪄 解题就像「填空式推理」,更稳定更清晰。


💡 应用优势:

✅ 避免 LLM 推理过程跳步、乱序
✅ 强化可解释性,每一步都有结构对齐
✅ 非常适用于:

  • 数学题(如 GSM8K)

  • 多跳问答(Multi-hop QA)

  • 图像或表格数据结构化推理

  • Agent 系统规划与执行(模块解耦)


🧩 类比理解:

传统 prompting:

直接问:“你能算出答案吗?”

Self-Discover prompting:

先问:“你要算出答案,应该分几步?每步要做什么?”
然后再按结构一步步填空。

Variable Computation of CoT

LLM 会自动调整它“思考”的深度(步骤数量),根据问题的复杂度灵活生成短/长的推理链。

如何做到?

prompt 技术 + 模型本身的 token-by-token 自回归生成机制 + 训练语料中的多样推理模式

🧠 1. 模型天然支持「变长推理」

  • LLM 是基于 Transformer 的自回归语言模型,它本来就不是一步生成整段文本,而是:

    一步一步地“预测下一个 token”,直到结束符。

  • 所以它本身结构上就能支持任意长度的思考过程
    模型没有被强制输出固定步骤数量,它可以根据当前上下文决定继续思考还是停止。


✨ 2. Prompt 引导 “该思考多少步”

有些 prompt 会显式 or 隐式地告诉模型:

  • “Let's think step by step” → 🪜模型倾向走更长链

  • “Answer directly” → ✂️ 模型倾向快速跳结论

更关键的是:
通过 few-shot 示例,我们可以教会模型

如果问题复杂,就要多写几步
如果问题简单,就只需要1步就能结束

🔁 模型学会从问题的语言结构中「推测其复杂度」→ 动态决定“推理深度”。


📚 3. 模型在训练语料中已经学到“推理长度 ≈ 问题复杂度”的模式

  • LLM 在训练时,接触了成千上万条「问题 → 解答」的数据

  • 它已经学会:

    “数学题难 → 通常解答长”
    “常识题简单 → 答案短,甚至一步到位”

它其实是从语义和结构中学会了“该多想还是少想”。我们只需用 prompt 轻轻提醒它。

2. Search and Selection from multiple candidates

Increase the width to explore the solution space

关键词:增加宽度,探索更多解答空间

👉 这个技术是生成多个答案,然后再从中挑选最好的。
这叫做“宽度增加(Increase the width)”。

  • 比如说你让它写五个不同风格的广告文案。

  • 它会给出五种不同风格的方案。

  • 然后你可以手动选一个,或者让另一个模型帮你选最优的。

🪄 用法建议:

  • 让模型 generate N samples(多轮 sampling)

  • 再加入选择机制,比如:

    • 你手动 pick

    • 另一个 prompt 要它投票 / 评分 / 排序

🧠 Self-Consistency Decoding(自洽一致性推理)

下方:Self-Consistency 解法的流程

✅ 第一步:采样多条推理路径

使用 temperature > 0(非贪婪采样),让模型生成多个不同思考方式:

  • 路径 A:剩下 9 个蛋 → $18 ✅

  • 路径 B:误算 → $26 ❌

  • 路径 C:分两步思考,正确 → $18 ✅

✅ 第二步:统计每条路径的最终答案(不管中间怎么推的)

  • 出现最多的最终答案就是我们认为最“自洽”且最可靠的答案

所以最后选出:「The answer is $18」,因为它出现得最多!

Sampling diverse responses is crucial to self-consistency
中文:采样出多样化的推理路径,是提升“自洽一致性推理(Self-Consistency)”性能的关键!

在alphacode里面使用广泛

Limitation of self-consistency decoding: require an answer extractor
自洽一致性解码的限制:需要一个明确的“答案提取器”

也就是说,虽然 Self-Consistency 方法很强,但它有一个重要的局限性——你得知道怎么从每条推理链中准确提取出“最终答案”,否则投票就无效。

或者是自己在prompt里面说明 "select the most consistent response based on majority consensus"

Universal Self-Consistence.

缺点也很明显:context window size,

策略含义%Solved
PRM (Process-supervised Reward Model)看整个推理过程是否合理,更强78.2
ORM (Outcome-supervised Reward Model)只看最终输出是否看起来像对的72.4
Majority Voting(Self-consistency)多条推理路径 → 投票选最常见答案69.6 ❌

✅ 结论:

Self-consistency 投票方法虽简单好用,但 LLM-based Verifier 更强、更细腻,尤其在 process-supervised 情况下

如果你能训练 / 微调出一个能理解 reasoning chain 的 verifier,它能 大幅提升你系统的准确率

Tree of Thoughts (ToT)

🌲 将推理变成“树状结构”
每一步推理可以有多个分支,边生成边评估、边剪枝,探索更有希望的路径!

每一个节点 = 一个“思维片段(thought)”
绿色节点 = 评估为 promising(继续扩展)
红色节点 = 评估为低质量(剪枝)

💡 相当于:

模型不是一口气写完整答案,而是走一步看一步、评分筛选、扩展成多路径推理树!

🧠 Reflexion + Self-Refine:让大模型学会自己检查、反思、修正!

阶段描述
(a) Task给模型的任务(决策 / 编程 / 推理)
(b) Trajectory模型第一次执行的轨迹(行为/代码/推理过程)
(c) Evaluation使用规则 / 环境反馈 / 单元测试,对模型输出进行 内部或外部评估
(d) Reflection模型看着自己的输出 + 错误反馈,总结哪里错了,为什么错了
(e) Next Trajectory模型基于反思后的第二次尝试,行为更好、代码修正、推理更合理!

UseCase: IDE debug

  • ✅ 有 Oracle feedback → Self-correction 表现更好。(ground truth)

  • ❌ 没有 Oracle,模型会误判自己的答案是否正确,导致 performance 反而下降

**Multi-agent debate does not improve over self-consistency. **

  • With same budget, we can sample more responses from small models, improving final outcome via better selection.

  • Optimal model choice is task-dependent and budget-dependent:

    • If you have little budget → prefer smaller models with more sampling

    • If budget is large → go for larger model with fewer but more accurate responses

3. Iterative self-improvement

Increase the depth to reach the final solution

关键词:增加深度,逐步完善解答

👉 这不是一次性生成完答案,而是一轮一轮优化,让模型自己反思、修正、改进。

  • 比如第一步让它写初稿

  • 第二步你说“现在请检查有没有逻辑漏洞”

  • 第三步说“请改进这些漏洞并输出最终稿”

这种流程就是:每次都往“更好”走一步,不断加深推理,叫做“增加深度(depth)”。

🪄 用法建议:

  • Let’s think step by step(逐步思考)

  • Criticize and revise your previous answer

  • Now improve it with better logic and structure