在前两节中,我们已经掌握了提示词的基础结构和高级组件化技巧,也学会了用链式提示分解复杂任务。但面对真正需要逻辑推理的问题——比如数学应用题、多步规划、创意构思——AI仍然可能犯错。原因在于,大模型的默认生成方式(逐个词元预测)更像人类的“系统1思维”:快速、直觉、有时欠考虑。

那么,能否让AI像人类一样,在回答前先“想一想”,甚至像专家团队一样“讨论”出最佳答案?答案是肯定的。本节将介绍三种让AI实现复杂推理的高级技术:思维链(Chain-of-Thought)自洽性(Self-Consistency) 和 思维树(Tree-of-Thoughts)。掌握了它们,你的AI将不再是“快枪手”,而是“深思者”。


一、思维链:先推理,后回答

1.1 什么是思维链?

思维链的核心思想很简单:在提示词中引导模型展示推理过程,然后再给出最终答案。就像做数学题时,老师要求写出“解题步骤”一样,模型通过一步步推导,不仅答案更准,过程也清晰可查。

2022年,Google研究团队在论文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》中证明,这种方法能显著提升模型在算术、常识推理等任务上的表现。

1.2 少样本思维链:给示例,教推理

假设我们想让AI解决这样一个问题:

cafeteria有23个苹果。他们用20个做午餐,又买了6个,现在有多少个苹果?

如果直接问,模型可能凭直觉给出错误答案。但如果我们先在提示词里放一个带推理步骤的示例,模型就会模仿这种“思考过程”。

python

# 少样本思维链提示
cot_prompt = [
    {"role": "user", "content": "Roger有5个网球。他买了2罐网球,每罐3个。他现在有多少个网球?"},
    {"role": "assistant", "content": "Roger一开始有5个球。2罐各3个网球,一共6个。5 + 6 = 11。答案是11。"},
    {"role": "user", "content": "cafeteria有23个苹果。他们用20个做午餐,又买了6个,现在有多少个苹果?"}
]

outputs = pipe(cot_prompt)
print(outputs[0]["generated_text"])

模型输出:

cafeteria一开始有23个苹果。用了20个,剩下23 - 20 = 3个。又买了6个,现在有3 + 6 = 9个。答案是9。

你看,模型不仅给出了正确答案,还复用了示例中的推理句式。这就是“少样本思维链”——用示例教会模型“先思考再回答”。

1.3 零样本思维链:一句话开启推理

如果没有现成的示例怎么办?研究发现,只需在问题后加上一句 “让我们逐步思考”(Let's think step-by-step),就能激发模型的推理能力。这被称为“零样本思维链”。

python

zeroshot_cot_prompt = [
    {"role": "user", "content": "cafeteria有23个苹果。他们用20个做午餐,又买了6个,现在有多少个苹果?让我们逐步思考。"}
]

outputs = pipe(zeroshot_cot_prompt)
print(outputs[0]["generated_text"])

输出:

步骤1:初始苹果数23。
步骤2:减去午餐用的20,剩下23 - 20 = 3。
步骤3:加上新买的6,3 + 6 = 9。
现在cafeteria有9个苹果。

虽然没给示例,但“让我们逐步思考”这句提示成功让模型展开推理。你也可以尝试其他变体,如“深呼吸,然后一步步分析”、“我们一步一步来”。实验表明,这类短语能有效激活模型的逻辑链。

1.4 为什么思维链有效?

因为每生成一个推理步骤,模型就多一次“计算”机会。直接输出答案只依赖最后几个词元的概率,而推理过程让模型把中间结果作为上下文,逐步逼近正确答案。对于需要多步计算的数学题,这至关重要。


二、自洽性:多数投票战胜随机性

即使使用了思维链,模型的输出仍可能受随机性影响(尤其是当temperature > 0时)。同一个问题,两次回答可能不同,其中一次甚至可能出错。如何提高稳定性?

自洽性(Self-Consistency)应运而生。它的思想是:多次采样推理路径,取多数答案作为最终结果

2.1 工作原理

如下图所示,对于同一个问题,我们让模型生成多个不同的推理过程(通过调节temperature或top_p增加多样性),每个过程都会得出一个答案。然后,统计所有答案的出现频率,选择出现次数最多的那个。

例如,对于“Roger的网球”问题:

  • 路径1:推理 → 答案 11

  • 路径2:推理 → 答案 6(错误)

  • 路径3:推理 → 答案 11

多数投票后,正确答案11胜出。

2.2 代码实现思路

python

# 多次采样(这里示意,实际需循环)
answers = []
for _ in range(5):
    output = pipe(cot_prompt, do_sample=True, temperature=0.7)
    answers.append(extract_answer(output[0]["generated_text"]))

final_answer = max(set(answers), key=answers.count)  # 多数投票

2.3 优缺点

  • 优点:显著提高准确率,尤其适合开放式问题或需要判断的场合。

  • 缺点:速度慢(n次采样慢n倍),且需要设计答案提取逻辑。

自洽性可以视为“思维链的集成学习”,通过牺牲时间换取质量。


三、思维树:像专家团队一样“讨论”

思维链和自洽性虽然有效,但都是线性推理——一条路走到黑。人类解决复杂问题时,往往会在每个决策点考虑多种可能性,评估后选择最优路径继续。这启发了一种更强大的方法:思维树(Tree-of-Thoughts,ToT)。

3.1 什么是思维树?

思维树由普林斯顿大学和Google DeepMind的研究者提出(论文《Tree of Thoughts: Deliberate Problem Solving with Large Language Models》)。它将问题分解为多个思考步骤,每一步都生成多个候选想法,然后评估这些想法的优劣,保留有希望的,剪掉差的,如同在树上探索分支。

下图展示了这一过程:

  • 面对问题,模型先生成若干初始想法(树根的分支)。

  • 对每个想法进行评分(可由模型自评或外部打分)。

  • 保留高分想法,基于它们继续下一步推理。

  • 重复直到得出最终答案。

这种方法特别适合创意写作、策略规划、数学难题等需要多路径探索的场景。

3.2 零样本思维树:模拟专家讨论

完整实现思维树需要多次调用模型,复杂且慢。但社区发现,可以用一个巧妙的提示词模拟专家讨论,实现类似效果——称为“零样本思维树”。

提示词如下:

想象三位不同领域的专家在回答这个问题。每位专家写下自己的一步思考,然后分享给其他人。接着所有专家进行下一步,以此类推。如果有专家意识到自己错了,就退出讨论。问题是:“cafeteria有23个苹果,用了20个做午餐,又买了6个,现在有多少个苹果?”请确保讨论出结果。

将这个提示词输入模型:

python

zeroshot_tot_prompt = [
    {"role": "user", "content": "想象三位不同领域的专家在回答这个问题。每位专家写下自己的一步思考,然后分享给其他人。接着所有专家进行下一步,以此类推。如果有专家意识到自己错了,就退出讨论。问题是:“cafeteria有23个苹果,用了20个做午餐,又买了6个,现在有多少个苹果?”请确保讨论出结果。"}
]

outputs = pipe(zeroshot_tot_prompt)
print(outputs[0]["generated_text"])

模型可能会生成类似这样的对话:

专家1:第一步——初始苹果数是23。
专家2:第一步——用了20个做午餐,所以剩下23-20=3。
专家3:第一步——买了6个,所以最终是3+6=9。
专家1:第二步——我检查一下:23-20=3,没错。
专家2:第二步——3+6=9,计算正确。
专家3:第二步——三位专家一致同意,答案是9。

通过这种“角色扮演+讨论”,模型实际上在内部模拟了多条推理路径的交叉验证,最终得到可靠答案。

3.3 思维树的优势与局限

  • 优势:能处理需要分支探索的复杂问题,如写故事(先构思几个情节走向,选最优发展)、制定计划(考虑多种方案并评估风险)。

  • 局限:提示词较长,消耗更多token;且对模型的指令跟随能力要求较高。


四、总结:从“快思考”到“慢思考”的进化

本节我们学习了三种让AI实现复杂推理的高级技术:

技术 核心思想 适用场景 代价
思维链 展示推理步骤后再回答 数学题、逻辑推理 生成更长文本
自洽性 多次采样,多数投票 需稳定答案的场合 时间慢n倍
思维树 多路径探索,评估剪枝 创意写作、复杂规划 提示词复杂

这些技术本质上都在模拟人类“系统2思维”——有意识、缓慢、逻辑严密。通过提示工程,我们引导模型调用更多计算资源,从而提升输出的质量和可靠性。

在实际应用中,你可以根据任务复杂度选择合适的方法:

  • 简单推理:思维链足矣。

  • 追求准确率:自洽性+思维链。

  • 高度开放问题:尝试思维树。

记住,提示工程的魅力在于不断实验。试试在“让我们逐步思考”前加上“深呼吸”,或者让专家们互相辩论,你可能会发现意想不到的效果。AI的潜能,正等待你用创意提示去解锁。

本文参考:图解大模型:生成式AI原理与实战

书籍pdf免费下载地址:https://pan.baidu.com/s/1mTaUQ5czcfGpBM8KvJuS2g?pwd=un44

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐