上下文学习思维链COTPrompt工程
一、上下文学习
上下文学习强调在学习过程中考虑问题所处的上下文环境。
1.1 上下文学习的分类
- 零样本(Zero-Shot)上下文学习
- 单样本(One-Shot)上下文学习
- 少样本(Few-Shot)上下文学习
1.2 示例选择方法
两个主要依据是相似性和多样性。
- 直接检索:然后选取排名靠前的K个示例。
- 聚类检索:把所有示例划分为K个簇,从每个簇中选取最为相似的示例,获取K个示例。
- 迭代检索:下一个示例的选择依赖于当前的问题和已选择的示例。
1.3 性能影响因素
- 预训练数据:领域丰富度、任务多样性、训练数据的分布
- 预训练规模:模型参数规模
- 演示示例:示例的数量和顺序
二、思维链
2.1 两种任务类型
(1)System-1任务
- 依靠直觉和经验进行瞬间判断。
- 随着规模(参数量、训练数据、算力)变大,模型性能显著提升。
(2)System-2任务
- 运用逻辑分析、计算和有意识的思考来解决。
- 模型会出现“Flat Scaling Curves”现象——即模型规模增长未带来预期性能提升。
2.2 思维链的定义
在提示中嵌入一系列中间推理步骤,引导大模型模拟人类解决问题时的思考过程,以提升模型处理System-2任务的能力。
2.3 思维链的分类
在标准COT方法上,出现了许多扩展方法,这些方法按照其推理方式的不同,可以归纳为三种模式:按部就班、三思而行、集思广益。
按部就班模式
强调逻辑的连贯性和步骤的顺序性。
代表方法:
- COT:手工构造(费时费力)例子,作为示例放入Prompt,引导模型一步一步推理。
- Zero-Shot COT:无需手工标注,只需提供简单的提示,如“Let's think step by step”,引导模型自行生成一条推理链。
魔法咒语:Let's think step by step.
- Auto COT:聚类算法自动筛选相关样本,Zero-Shot生成思维链内容作为示例,引导大语言模型生成针对用户问题的推理链和答案。
不足:
- 局部:在思维过程中不会探索不同的后续内容,即树的分支。
- 全局:顺序链式输出,不存在回溯的过程。
三思后行模式
强调审慎和灵活。
代表方法:
- Tree of Thoughts(TOT):将推理过程构造为一棵思维树,允许模型在不确定时进行回溯和重新选择。TOT从拆解、衍生、评估、搜索四个角度构造思维树。
- Graph of Thoughts(GOT)
集思广益模式
强调观点和方法的多样性。
代表方法:
- Self-Consistency:引入多样性的推理路径,从中提取并选择最一致的答案。
- Universal Self-Consistency:利用LLMs自身选择最一致答案,支持更多种任务,无需答案提取过程。
三、Prompt工程
3.1 Prompt规范
编写规范的Prompt是与大语言模型进行有效沟通的基础。一个标准规范的Prompt通常由任务说明、上下文、问题、输出格式这几个部分中的一个或几个来组成。
3.2 Prompt技巧
- 复杂问题拆解
- 追问
- 适时使用COT
- 善用心理暗示:角色扮演or情景代入
3.3 Prompt工程应用
可以通过精心设计的Prompt激活大语言模型的内在潜力,而不需要对模型进行微调。Prompt已经在垂域任务、数据增强、智能代理等多个领域发挥出卓越性能。
(1)自然语言接口
- Text to SQL
- 代码生成
(2)大模型支撑的数据合成
- Self-Instruct
(3)大模型增强的搜索引擎
(4)大模型赋能智能体
经典的智能体通常由大语言模型和四大模块组成,分别是:配置模块(Profile)、记忆模块(Memory)、计划模块(Planning)、行动模块(Action)。
单智能体仅包含一个智能体,交互相对简单,适用于简单任务。Prompt设计主要用于引导模型执行特定任务,且围绕单个上下文。
多智能体包含多个智能体,每个智能体都设定有角色和任务,交互复杂度高。他们协调、合作、竞争,以实现共同或各自目标。
(5)大模型驱动的具身智能
大语言模型是AGI的智慧引擎,机器人是大语言模型走向真实世界的物理载体。
四、参考
bilibili:浙江大学-大模型原理与技术