当前位置: 首页 > news >正文

第四章:大模型(LLM)】07.Prompt工程-(4)思维链(CoT, Chain-of-Thought)Prompt

第四章:大模型(LLM)

第七部分:Prompt 工程

第四节:思维链(CoT, Chain-of-Thought)Prompt


1. 什么是思维链(CoT)Prompt

思维链提示(Chain-of-Thought Prompting, 简称 CoT) 是一种引导大模型在回答前,展示中间推理步骤 的提示方式。

  • 不同于 Zero-shot 或 Few-shot 直接产出答案,CoT 强调 逐步推理

  • 核心思想:让模型先思考,再回答

例如:

Prompt:

小明有 3 个苹果,送给小红 2 个,还剩几个?请一步一步推理并回答。

模型输出:

小明原本有 3 个苹果。  
送给小红 2 个后,剩下 1 个。  
答案:1

2. CoT 的工作原理

大模型在推理过程中,本质上是通过概率预测下一个词。当用户直接提问时,模型可能会“跳过思考”直接生成答案,导致错误。

CoT Prompt 会明确告诉模型:

  • 不要直接回答;

  • 要分步骤“解释推理过程”;

  • 最后得出结论。

这样能显著提升模型在 数学推理、逻辑推理、多步骤任务 中的正确率。


3. CoT 的常见应用场景
  1. 数学计算 / 应用题

    • Prompt:

      一个班有 40 个学生,其中 18 个是女生。男生有多少人?请一步一步推理。
      
    • 输出:

      学生总数是 40。  
      女生是 18。  
      男生 = 40 - 18 = 22。  
      答案:22
      
  2. 逻辑推理题

    • Prompt:

      如果所有的猫都会爬树,而小花是一只猫,那么小花会不会爬树?请逐步推理。
      
  3. 阅读理解

    • Prompt:

      根据以下文章,回答问题并给出推理过程。
      
  4. 多步骤规划

    • Prompt:

      请帮我规划一次北京三日游,先分解任务,再给出每日行程。
      

4. CoT 的优势
  1. 提升准确性

    • 特别是在复杂推理和数学题上效果显著。

  2. 增强可解释性

    • 通过中间步骤,用户可以理解模型的思考路径。

  3. 适合复杂任务

    • 需要多步才能完成的任务(规划、计算、逻辑分析)。


5. CoT 的局限性
  1. 输出冗长

    • 推理步骤会占用更多 Token。

  2. 可能出现“虚假推理”

    • 有时模型会编造逻辑,看似合理但实际错误。

  3. 推理链质量依赖模型能力

    • 小模型的推理链可能混乱或错误。


6. 设计 CoT Prompt 的技巧
  1. 显式要求逐步推理

    • 在指令中加入关键词:

      • “一步一步推理”

      • “请展示中间推理过程”

      • “请先分析,再回答”

  2. 结构化输出

    • 要求模型用编号、分行方式清晰展示思考链。

  3. 结合 Few-shot CoT

    • 给出几个带推理步骤的示例,让模型模仿。

  4. 限制长度

    • 避免推理过程过长,加入约束:

      • “请控制在 5 步以内”


7. 案例演示

任务:数学应用题

  • Prompt:

    一个果园有 120 棵树,其中 1/3 是苹果树,其余是梨树。请逐步推理并计算出梨树的数量。
    
  • 模型输出:

    总共有 120 棵树。  
    苹果树数量 = 120 × 1/3 = 40。  
    梨树数量 = 120 - 40 = 80。  
    答案:80
    

8. 小结
  • CoT Prompt 的核心是:让模型展示思维链,而不是直接给答案

  • 它特别适合需要逻辑、推理和多步骤计算的任务。

  • 优点:提高准确率、增强解释性;缺点:输出更长、可能虚假推理。

  • 最佳实践:显式要求分步骤,结构化输出,必要时配合 Few-shot 示例。

在下一节中,我们将学习 思维链的进阶应用——自洽(Self-Consistency)Prompt,进一步提升推理的稳定性。

http://www.dtcms.com/a/340911.html

相关文章:

  • python的物资管理系统
  • Java内功修炼(2)——线程安全三剑客:synchronized、volatile与wait/notify
  • MongoDB 分片集群修改管理员密码
  • 密码加密算法和JWT无状态认证
  • K距离间隔重排字符串 (LeetCode 358) — Swift解法 + 可运行Demo
  • 360T7刷OpenWRT笔记
  • 深入解析EventPoller:Disruptor的轮询式事件处理机制
  • Download:几款主流的全球范围的NDVI产品参数说明和下载
  • Spring Boot 发展史
  • 机器学习——数据清洗
  • JS对象与JSON转换全解析
  • C/C++嵌入式笔试核心考点精解
  • AI 与 OCR 识别:深度融合的智能信息提取技术
  • Elasticsearch 写入全链路:从单机到集群
  • 实验8.20
  • nvidia最新论文:小型语言模型是代理人工智能的未来
  • iOS App 上架实战 从内测到应用商店发布的全周期流程解析
  • Linux 文件系统权限管理(补充)
  • 管理项目服务器连接数据库
  • Linux 文本处理三剑客:awk、grep、sed 完全指南
  • 中小型企业是否需要使用高防服务器
  • Linux-文本搜索工具grep
  • C++进阶-----C++11
  • Hangfire定时部署(.NET 8 + SQL Server)
  • Android 资源替换:静态替换 vs 动态替换
  • PHP特有的安全漏洞及渗透测试利用方法(通俗易懂)
  • 项目1总结其一
  • 49 C++ STL模板库18-类模板-pair
  • ROS 2系统Callback Group概念笔记
  • 突发!DeepSeek刚刚开源V3.1-Base