连续分解与一次性拆分的差别
连续分解(Successive Prompting,Dua et al., EMNLP 2022)逐轮推进:先问一个子问题、拿到答案、并入上下文、再决定下一个问题,直到信息足够回答原问题。与 least-to-most 的差别在于子问题是在上一轮答案基础上动态生成的,而不是预先全部拆好。这更接近真实的检索推理流程,代价是轮数多、延迟叠加,适合批处理而非实时场景。
基本信息
| 推进方式 | 每轮基于上一轮答案生成下一个子问题 |
|---|---|
| 与 least-to-most 差别 | 子问题动态生成,而非预先全部拆好 |
| 适用 | 答案依赖外部信息、需要多轮查询的问答 |
| 成本 | 轮数多、延迟叠加,适合批处理 |
典型使用场景
- 多跳检索问答:每一跳的结果决定下一跳查什么
- 指标归因:先查总量,再查分项,逐步定位到具体环节
- 排查类任务:根据上一轮发现决定下一步检查项
- 调研汇总:先确认口径,再逐项取数,最后汇总
- 离线批处理:对时效要求不高但需要严谨结论的分析任务
轮次结构
轮次结构
轮 1:当前还需要什么信息?→ 子问题 1 → 答案 1
轮 2:结合答案 1,还需要什么?→ 子问题 2 → 答案 2
……重复直至可回答原问题,最后综合所有答案给出结论。
# 必须给出终止条件:信息足够或轮数到达上限(如 5 轮)
# 每轮结束判断“是否已足够回答”,避免无意义地继续拆
# 旧轮次要压缩成结论句,防止上下文持续膨胀轮次的产物与检查点
| 环节 | 产物 | 检查点 |
|---|---|---|
| 子问题生成 | 本轮要查什么 | 是否必要、是否有明确答案形态 |
| 取答案 | 本轮结论 | 是否有来源、是否被下一轮采用 |
| 终止判断 | 是否已足够回答 | 是否设了轮数上限 |
| 综合 | 最终结论 | 是否引用各轮答案、有无跳跃 |
不检测「已足够回答」会一直拆下去;给出终止条件(信息足够或到达轮数上限)是必需的。
每轮上下文持续增长,长对话要把旧轮次压缩成结论句,否则后面的轮次成本与噪声同步上升。