什么是COT:DeepSeek模型推理的“幕后英雄”,史上最详细易懂教程
一文讲清楚什么是COT
1.COT是什么:
COT(Chain of Thought)是一个用于自然语言理解(NLU)的模型,它通过推理过程来理解自然语言。它是一种模拟人类思考过程的技术,旨在通过逐步推理的方式提升模型解决复杂问题的能力
它旨在模仿人类的思维方式,通过推理过程来理解自然语言。就像是人类在解题目一样,分为第一步,第二步等等,下面是COT的例子。
假设有一个数学问题:
“一个班级有 12 个男生和 8 个女生。如果从班级中随机抽取 2 名学生,问至少有 1 名女生的概率是多少?”
首先,将问题分解为几个关键步骤:
计算总的学生人数。
计算所有可能的抽取组合。
计算没有女生的组合。
计算至少有 1 名女生的概率。
步骤 1:计算总人数
班级中男生和女生的总人数为:
总人数=12+8=20
步骤 2:计算所有可能的抽取组合
从 20 名学生中随机抽取 2 名学生的组合数为:
总组合数=10!/(2!×8!)=210
计算没有女生的组合
如果抽取的 2 名学生都是男生,那么组合数为:
全是男生的组合数= 66
步骤 4:计算至少有 1 名女生的概率
至少有 1 名女生的概率可以通过计算“全是男生”的概率,然后用 1 减去它来得到:
全是男生的概率=66/190
全是男生的概率=1−66/190 = 0.66
最终答案
因此,至少有 1 名女生的概率约为 65.26%。
2.如何将COT应用到大模型中?
3.1 Zero-Shot CoT(零样本思维链)
Zero-Shot CoT是一种COT方法,它不需要任何训练数据,直接在大模型上进行推理。Zero-Shot CoT通过推理过程来理解自然语言,而不需要预训练模型。Zero-Shot CoT的优点是简单,快速,通用,缺点是精度低。
通过在问题的结尾添加特定的提示词(如“Let’s think step by step”),激发大语言模型生成推理链条。这种方法不需要额外的示例,而是直接利用模型的生成能力来逐步推理问题的解决方案。例如,在 GPT-3 上,Zero-Shot CoT 能将模型的推理能力从 17% 提升到 78%。
下面举个例子:
输入:
一个班级有 12 个男生和 8 个女生,随机抽取 2 名学生,求至少有 1 名女生的概率。Let’s think step by step.
模型输出:
计算总人数:12 + 8 = 20。
计算总组合数:从 20 名学生中选 2 名的组合数为 190。
计算全是男生的组合数:从 12 名男生中选 2 名的组合数为 66。
计算至少有 1 名女生的概率:
P(至少 1 名女生)=0.653
最终答案:至少有 1 名女生的概率约为 65.3%。
3.2 Few-Shot CoT( few-shot CoT)(少样本思维链)
Few-Shot CoT 通过提供少量示例问题及其推理步骤,让模型学习如何逐步推理。这种方法结合了示例和推理链条,使模型能够更好地理解和模推理过程。示例通常包括问题、推理步骤和答案,模型通过这些示例学习如何生成自己的推理链条.
下面是例子:
输入:
示例 1:
问题:如果 A 比 B 重,B 比 C 重,那么谁最重?
推理:A > B > C,所以 A 最重。
答案:A
示例 2:
问题:如果 X 比 Y 快,Y 比 Z 快,那么谁最快?
推理:X > Y > Z,所以 X 最快。
答案:X
问题:如果 A 比 B 高,B 比 C 高,那么谁最高?
Let’s think step by step.
输出:
推理:A > B > C,所以 A 最高。
答案:A。
3.3Auto-CoT(自动构建思维链)
Auto-CoT 是一种自动化方法,通过聚类问题并为每个问题生成推理链条,从而减少人工标注的工作量。具体来说,系统会从每个聚类中抽取代表性问题,使用 Zero-Shot CoT 生成推理链条,然后将这些链条作为提示输入模型,帮助其完成推理
Auto-CoT 的实现主要分为以下两个步骤:
问题聚类:将问题集划分为多个聚类,确保每个聚类中的问题在语义和推理难度上具有相似性。
演示采样:从每个聚类中选择一个代表性问题,并使用零样本思维链(Zero-Shot-CoT)为其生成推理链。这些推理链作为提示输入模型,帮助其在回答新问题时生成类似的推理步骤。
例如,假设问题集包含多个数学问题,Auto-CoT 会先将这些问题按类型(如几何、代数等)聚类,然后为每个聚类生成一套推理链
3.4CoT-Tuning(COT微调)
COT 也可以与微调结合,通过在大规模任务上进行微调,进一步提升模型的泛化能力。例如,Flan-T5 在微调过程中引入了 COT 数据,显著提高了模型在推理任务上的表现。这种方法不仅适用于 COT 任务,还能提升模型在非 COT 任务上的性能。
在微调阶段,模型通过大量包含推理链条的数据学习如何逐步推理,即微调数据中带有推理链条的样本。最近大火的deepseek的模型就是采用这种方式。
总结
CoT 方法 | 优点 | 缺点 |
---|---|---|
Zero-Shot CoT | - 简单高效,仅需添加提示词 - 广泛适用,快速推理 - 无需额外训练 |
- 依赖提示词设计质量 - 可能生成误导性推理路径 - 适用范围有限 |
Few-Shot CoT | - 提供少量示例,增强推理能力 - 提升模型对复杂问题的理解 - 更好的泛化能力 |
- 需要人工设计示例 - 示例选择影响推理效果 - 计算资源需求较高 |
Auto-CoT | - 自动化生成推理链,减少人工干预 - 灵活适应多种任务 - 提升推理效率 |
- 聚类质量影响推理多样性 - 自动生成的推理链可能有误 - 计算成本较高 |
COT + Fine-tuning | - 结合微调,提升模型推理能力 - 更好的任务适应性 - 提高模型泛化能力 |
- 需要大量标注数据 - 微调过程计算资源需求高 - 可能过拟合 |
作者码字不易,如果觉得有用就点个赞吧,关注我,获取更多干货~
更多推荐
所有评论(0)