【DeepSeek-R1背后的技术】系列博文:
第1篇:混合专家模型(MoE)
第2篇:大模型知识蒸馏(Knowledge Distillation)
第3篇:强化学习(Reinforcement Learning, RL)
第4篇:本地部署DeepSeek,断网也能畅聊!
第5篇:DeepSeek-R1微调指南
第6篇:思维链(CoT)
第7篇:冷启动
第8篇:位置编码介绍(绝对位置编码、RoPE、ALiBi、YaRN)
第9篇:MLA(Multi-Head Latent Attention,多头潜在注意力)
第10篇:PEFT(参数高效微调——Adapter、Prefix Tuning、LoRA)
第11篇:RAG原理介绍和本地部署(DeepSeek+RAGFlow构建个人知识库)
第12篇:分词算法Tokenizer(WordPiece,Byte-Pair Encoding (BPE),Byte-level BPE(BBPE))
第13篇:归一化方式介绍(BatchNorm, LayerNorm, Instance Norm 和 GroupNorm)
第14篇:MoE源码分析(腾讯Hunyuan大模型介绍)
目录
1 CoT介绍
Chain-of-Thought (CoT) 是指模型在输出最后答案之前,会以自然语言的形式生成思路或推理链,使得结果对于人类更具可解释性。例如,在做一道数学题时,模型并不仅仅输出最后的数字,而是像人类自己做题一样,先写下计算或推导过程。早期在 GPT-3.5 等模型上,我们常用提示“Let’s break down the problem step by step”来引导CoT 出现。换句话说,CoT 基于将复杂问题分解为可管理的中间思想的认知策略,这些思想依次导致结论性的答案。
论文:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
1.1 提示链和思维链之间的区别
如果我们考虑提示链(prompt chaining),它是一种更基本的 CoT 提示形式,其中提示 AI 根据给定的上下文或问题生成响应。相比之下,CoT 提示不仅仅是生成连贯且相关的响应,还要求 AI 从头开始构建完整的逻辑论证,包括前提和结论。提示链侧重于改进个人响应,而 CoT 提示旨在创建一个全面且逻辑一致的论点,从而突破 AI 解决问题能力的界限。
1.2 工作原理
思维链提示利用大语言模型 (LLMs) 来阐明一系列推理步骤,指导模型为新任务生成类似的推理链。这是通过基于示例的提示来实现的,这些提示说明了推理过程,从而提高了模型应对复杂推理挑战的能力。
一个完整的包含 CoT 的 Prompt 往往由 指令(Instruction)、逻辑依据(Rationale) 和 示例(Exemplars) 三部分组成。
- 指令:用于描述问题并且告知大模型的输出格式;
- 逻辑依据:指 CoT 的中间推理过程,可以包含问题的解决方案、中间推理步骤以及与问题相关的任何外部知识;
- 示例:指以少样本的方式为大模型提供输入输出对的基本格式,每一个示例都包含:问题,推理过程与答案。
让我们通过解决经典的数学单词问题——求解多项式方程,来理解这种提示技术的流程。
输入提示:求解二次方程:x2 - 5x + 6 = 0
当我们向LLM提供此提示时,我们可以看到以下对话。
为了生成这种类型的输出,CoT 的工作原理如下图所示。思维链的最终答案将是“方程 x2 − 5x + 6 = 0 的解是 x = 3 和 x = 2"
1.3 CoT 变体
CoT 大幅度提高了 LLM 在复杂推理任务上的表现,并且输出的中间步骤方便使用者了解模型的思考过程,提高了大模型推理的可解释性。目前,思维链推理已经成为大模型处理复杂任务的一个常用手段。
1.3.1 Zero-shot CoT
论文:Large Language Models are Zero-Shot Reasoners
Zero-shot CoT引入了一种非常简单的零样本提示,研究者发现,通过在问题的结尾附加“Let’s think step by step”这几个词,大语言模型能够生成一个回答问题的思维链,从而能够提取更准确的答案。
其实 Zero-shot CoT 是一个 pipeline,也就是说“Let’s think step by step”这个 prompt 让LLM 尽可能生成一些思考过程,然后再将生成的 rationale(理由) 和 question 拼在一起,重新配合一个answer 指向的 prompt 如“The answer is ”来激励模型生成答案。
从技术上讲,完整的Zero-shot CoT过程涉及两个单独的提示 / 补全结果。在下图中,左侧生成一个思维链,而右侧接收来自第一个提示(包括第一个提示本身)的输出,并从思维链中提取答案。第二个提示是一个自我增强的提示。
1.3.2 Few-shot CoT
Few-Shot Cot 在示例中详细描述了“解题步骤”,让模型照猫画虎得到推理能力。
1.3.3 Auto-CoT
自动思维链 (auto-CoT) 旨在通过自动生成和选择有效的推理路径来最大限度地减少制作提示的手动工作。这种变体增强了 CoT 的可扩展性和可访问性,从而推动了更广泛的任务和用户。
例如,要解决诸如“如果您购买 5 个苹果并且已经有 3 个,您总共有多少个”之类的数学问题,自动 CoT 系统可以自动生成中间步骤,例如“从 3 个苹果开始”和“在现有的 3 个苹果中增加 5 个”,最终以“苹果总数 = 8”结束,无需人工干预即可简化推理过程。
1.3.4 多模态CoT
多模态思维链扩展了 CoT 框架,以整合来自各种模态(例如文本和图像)的输入,使模型能够处理和集成各种类型的信息,以完成复杂的推理任务。
例如,当看到一张拥挤的海滩场景的图片并询问“这个海滩在夏天可能很受欢迎吗”时,采用多模态 CoT 的模型可以分析视觉线索(包括海滩占用率、天气状况等)以及对季节性受欢迎程度的文本理解,以推理出详细的回答,例如“海滩很拥挤, 表明人气很高,夏季可能会进一步增加。
在 CoT 中,多模态可以分为两类:输入多模态与输出多模态。其中,MM-CoT 是输入多模态研究的第一篇工作,MM-CoT 侧重使用微调方法嵌入 CoT,通过将语言和图像合并在一个包含推理生成与答案推理的两阶段的框架中,使用微调大模型赋予输入多模态 CoT 的能力。基于 MM-CoT,GoT-Input 方法通过对 CoT 生成的思维图进行抽取构建三元组,并使用 GNN 将文本、图像与 CoT 统一,从而生成包含 CoT 信息的最终答案。而区别于输入多模型,VCoT 解决了一个输出多模态的问题,VCoT 通过以生成图片的“标题”以及识别核心关注点作为图像生成的启动过程,通过递归的方式填充图像信息,从而实现输出多模态。
除了多模态 CoT 以外,CoT 目前也已经用于如文本摘要(SumCoT),开放域问答(Self-Prompting LLMs),机器翻译(MAPS),化学(ChemCrow)、医学(Med-PaLM)等等领域。
1.4 优点和局限性
CoT 提示是一种强大的技术,可以提高大型语言模型 (LLM) 在复杂推理任务上的性能,在各个领域提供显着的好处,例如提高准确性、透明度和多步推理能力。但是,必须考虑其局限性,包括需要高质量的提示、增加的计算成本、对对抗性攻击的敏感性以及评估推理或理解的定性改进的挑战。通过解决这些限制,研究人员和从业者可以确保在不同的应用程序中负责任和有效地部署 CoT 提示。
1.4.1 优势
- 改进的提示输出:CoT 提示通过将 LLM 分解为更简单的逻辑步骤,提高了 LLM 在复杂推理任务上的表现。
- 透明度和理解:中间推理步骤的生成为模型如何得出结论提供了透明度,使用户更容易理解决策过程。
- 多步推理:通过系统地解决问题的每个组成部分,CoT 提示通常会带来更准确和可靠的答案,尤其是在需要多步骤推理的任务中。多步推理是指通过将复杂逻辑运算分解为更小的连续步骤来执行它们的能力。这种认知技能对于解决错综复杂的问题、做出决策和理解因果关系至关重要。
- 注重细节:循序渐进的解释模型类似于通过详细分解来鼓励理解的教学方法,这使得 CoT 提示在教育应用场景中很有用。
- 多样性:CoT 可以应用于广泛的任务,包括但不限于算术推理、常识推理和复杂问题的解决,展示了其灵活的实用性。
1.4.2 局限性
- 质量管理:CoT 的有效性在很大程度上取决于所提供提示的质量,因此需要精心制作的示例来准确指导模型。
- 高计算能力:与标准的单步提示相比,生成和处理多个推理步骤需要更多的计算能力和时间。因此,任何组织采用这种技术的成本都更高。
- 概念误导:存在生成合理但不正确的推理路径的风险,从而导致误导性或错误的结论。
- 昂贵:设计有效的 CoT 提示可能更加复杂和昂贵,需要对问题域和模型的功能有深入的了解。
- 模型过拟合:存在模型过度拟合提示中的推理风格或模式的潜在风险,这可能会降低它们在各种任务上的泛化能力。
- 评估和验证:虽然基于CoT的方法可以增强模型的可解释性和准确性,但衡量推理或理解方面的定性改进是具有挑战性的。这主要是由于人类认知的内在复杂性以及评估语言表达的主观性质。然而,可以采用几种方法来评估CoT提示的有效性。例如,通过将模型的响应与基准模型或人类专家的响应进行比较,可以深入了解相对性能的提升。此外,分析由大型语言模型(LLM)生成的中间推理步骤可以为决策过程提供宝贵见解,即使直接测量推理或理解上的改进可能很困难。
2 CoT在DeepSeek-R1中的作用
2.1 DeepSeek-R1 中的原生 CoT 机制
DeepSeek R1 与许多需要手动 Prompt 的大模型不同之处,在于它在训练阶段就内置了 CoT 的输出格式。
论文中描述,其 RL 过程有一条固定模板:
这样做的好处是:
- 无论用户是否在 Prompt 中要求,DeepSeek R1 都会在内部把推理思路写到 标签里。
- 在对问题进行自动化评估时,也能方便地把 与 分离,分别施加不同奖励(例如只在answer栏比对正确率)。
- 标签不一定被“隐藏”,这取决于具体对话接口如何渲染。DeepSeek R1 并没有强制隐藏它,但有些应用场景可能默认不把这部分显示给最终用户,以免“暴露内部思维。”
2.2 GPT-o1 与 DeepSeek-R1 中的 CoT 比较
论文中提及 DeepSeek-R1 与 GPT-o1 在多项推理基准上互有胜负,因此二者在 CoT 的支持上也有很多共同点与区别。需要注意的是:
- GPT o1 系列(OpenAI-o1-mini、OpenAI-o1-1217 等)本身就是在后续 RLHF 与相关机制里进一步加强了 CoT 的展现。它在内部实际上也是“原生地”就掌握了链接式推理,很多情况下不需要额外提示也能输出思维过程。
- DeepSeek R1 之所以强调 “原生 CoT”,主要想突出它在后期的 RL 策略和评估奖励都遭到了结构化的约束(使用 … + … 这样的格式),所以对推理过程的质量与一致性更可控,也更具可读性。
因此,两者并不存在“只有在 Prompt 强行请求才有 CoT”与“完全无 CoT Prompt 需求”这样的绝对划分,而是都具备 CoT 产生“原生化”的能力。但 DeepSeek-R1 在论文所述的训练流程中,确实更清晰地将思考过程与答案拆分为结构,让 RL 环节能够对两部分分别打分(格式奖励与正确性奖励),这也可能是它在某些推理数据集上表现优异的原因之一。