目录
1. prompt典型构成
2. DST(通过对话逐渐获取核心信息)
2.1 定义
2.2 例子
2.3 与上下文的关系
2.4 用 Prompt 实现 DST 的极简核心代码
2.5 基于DST写prompt的方法
3. NLU(将人话转为大模型能看懂的话)
3.1 定义
3.2 例子
3.3 NLU(自然语言理解)的 Prompt 设计
4. 思维链(给模型给予推理过程)
4.1 定义
4.2 例子
4.3 思维链(CoT)的 Prompt 设计
5. 自洽性(根据生成多种答案的众数来确定末了答案)
5.1 定义
5.2 例子
5.3 如何写 prompt 利用自洽性
6. 思维树
6.1 定义
6.2 例子
6.3 如何写 prompt 利用思维树
1. prompt典型构成
- 一位小学老师”。就是角色:为 AI 定义与任务最匹配的角色,让 AI 能更好地代入身份进行任务处理,例如 “你是一位软件工程师”“你
- 指示:对需要 AI 搞定的任务进行具体描述。
- 上下文:提供与任务相关的其他背景信息,在多轮交互场景下尤为重要,能让 AI 更精准理解任务脉络。
- 例子:必要时给出示例,在学术中被称为 one - shot learning(单样本学习)、few - shot learning(少样本学习)或 in - context learning(上下文学习),实践表明这些示例对提升 AI 输出的正确性有很大帮助。
- 输入:明确任务的输入信息,在提示词里要清晰标识。
- 输出:对 AI 输出的格式进行描述,方便后续模块自动解析模型的输出结果,像 XML 格式就常被用于此。
注意:每个模型的提示词相同的项目都可能不一样,因为每个模型的训练数据不一样效果也不一样,具体怎么写才能更有效的提高准确率看官方提示词文档。 |
2. DST(凭借对话逐渐获取重要信息)
2.1 定义
DST(Dialog State Tracking,对话状态跟踪)是对话架构中的一项关键技术,用于记录和更新对话过程中用户的意图、需求以及对话的相关状态信息 。它能让对话系统在多轮交互中,清晰把握对话的进展情况,从而根据当前的对话状态,做出合适的回应和决策。
2.2 例子
在一个智能酒店预订对话体系中:
- 第一轮对话,用户说:“我想订一家在市中心的酒店。” 对话系统通过自然语言理解(NLU)模块识别出用户意图是 “预订酒店”,地点要求是 “市中心”,DST 会将这些信息记录下来,此时对话状态能够表示为 {意图:预订酒店,地点:市中心}。
- 第二轮对话,用户补充:“要能看到海景的。”DST 会更新对话状态,将用户对酒店景观的需求添加进去,此时对话状态变为 {意图:预订酒店,地点:市中心,景观要求:海景} 。
- …… 请问您想预订哪一家呢?” 。就是接着平台依据更新后的对话状态,向用户回复:“为您找到几家位于市中心且能看到海景的酒店,分别
2.3 与上下文的关系
- 通过联系:上下文是对话环境在交互过程中积累的所有历史信息,包含了对话的背景、用户之前说过的话等内容。DST 依赖上下文来获取关键信息,进而确定和更新对话状态。能够说,上下文是 DST 的信息来源,DST 是对上下文里关键信息的一种提取、整理和跟踪机制。
- 区别:上下文的范围更广,它包含了对话中所有提及的内容,可能是与核心需求相关的,也可能是一些闲聊、铺垫性的内容。而 DST 只关注与对话目标相关的关键信息,比如用户在订餐对话里提到的菜品、用餐时间等,更具有针对性和结构化,主要用于拥护对话系统做出合理的决策和回复 。
2.4 用 Prompt 实现 DST 的极简核心代码
import openai |
2.5 基于DST写prompt的方式
核心思路:明确当前状态、用户输入,并要求模型「增量更新」关键信息,输出结构化结果。关键技巧:
- 献出当前对话状态的结构化格式(如 JSON)
- 强调「只更新变化的字段,保留已有正确信息」
- 明确需要跟踪的核心实体(如订机票场景的时间、地点、人数等)
你需要跟踪用户的对话状态,格式为 JSON,含有字段:intent(意图)、departure(出发地)、destination(目的地)、date(日期)。 |
效果:模型会精准更新destination 和 date字段,避免覆盖已有正确的departure 信息。
3. NLU(将人话转为大模型能看懂的话)
3.1 定义
NLU(Natural Language Understanding,自然语言理解)是人工智能的一个分支,负责将人类的自然语言(如中文、英文)转换成机器能够理解和执行的结构化信息,比如意图和实体。它是对话系统、智能客服、语音助手等的核心模块。
3.2 例子
假设用户说:
“帮我订一张从北京到上海的高铁票,明天下午三点出发。” |
NLU 可能会解析成:
JSON |
3.3 NLU(自然语言理解)的 Prompt 设计
核心思路:明确要求模型提取「意图」和「实体」,并给出结构化输出格式,必要时提供示例。关键技巧:
- 定义清晰的意图类型(如「查询天气」「预订酒店」)
- 列出需要提取的实体类别(如时间、地点、数量)
- 用「少样本示例」引导模型理解格式(尤其对复杂场景)
任务:解析用户输入的意图和实体,输出 JSON。 |
效果:通过示例约束,模型能稳定识别意图和实体,减少格式错误。
4. 思维链(给模型提供推理过程)
4.1 定义
思维链是一种通过模拟人类逐步推理过程来提升模型困难问题解决能力的技术。它是一系列中间的推理步骤,通过让大模型逐步参与将一个麻烦问题分解为一步一步的子问题并依次进行求解的过程,其核心是让模型在输出最终答案前,显式生成中间的逻辑步骤,而非直接给出结论。
4.2 例子
- 零样本思维链:无需提供示例,直接通过指令引导模型生成推理步骤。例如问题 “小明有 12 个苹果,给了小红 5 个,之后又买了 3 个,现在他有多少个苹果?”,模型输出为 “小明原有 12 个苹果。送给小红 5 个后,剩余 12 - 5 =7 个。又买了 3 个后,总数为 7 + 3 = 10 个。答案:10 个苹果。” 这种方式适用于便捷任务,对于复杂问题可能因步骤缺失导致错误,但在该简单数学问题中,通过逐步推理,大模型能准确得出答案。
- 通过小样本思维链:通过给出少量带推理步骤的示例,引导模型模仿并生成答案。例如,先给出示例 1“问:小明有 5 个羽毛球,买了 2 管,每管 3 个,现在有多少个?答:5(原数量) + (2 × 3) = 11 个。” 和示例 2“问:自助餐厅有 23 个苹果,用掉 20 个后又买 6 个,现在有多少个?答:23 - 20 + 6 = 9 个。”,然后给出待解决问题 “问:商店上午卖出 8 杯咖啡,下午卖出的是上午的 2 倍,全天卖了多少杯?”,模型输出为 “上午卖出 8 杯。下午卖出 8 × 2 = 16 杯。全天共 8 + 16 = 24 杯。答案:24 杯。” 凭借这些示例,模型能够学习到推理的逻辑和步骤,从而在面对新困难时能更准确地进行推理和回答。
- 自一致性(Self - Consistency):该方法会为问题生成多条不同的推理路径,并对生成的答案进行众数投票。例如对于难题 “小明有 12 个苹果,给了小红 5 个,又买了 3 个,现在有多少个?”,模型生成多条推理路径如 “12 - 5 + 3 = 10个 -> (12 - 5) + 3 = 10 -> 12 + 3 - 5 = 10 -> 12 - (5 + 3) = 4(错误路径)”,投票结果为 “10”(3 票),“4”(1 票),最终答案为 10 个苹果。此种方式可能减少单一路径偏差,提高大模型在复杂推理任务中的准确性和鲁棒性。
4.3 思维链(CoT)的 Prompt 设计
核心思路:强制模型输出「分步推理过程」,再给出最终答案,尤其适合逻辑题、数学题等复杂任务。关键技巧:
- 用指令引导分步思考(如「请一步一步分析」「先理清楚条件」)
- 提供带推理步骤的示例(小样本 CoT)
- 明确区分「推理过程」和「最终答案」
请解决以下问题,先一步一步分析,最后用「答案:」开头给出结果。 |
用户问:"小明比小红大3岁,小红比小刚小5岁,谁最大?" |
效果:模型通过显式推理步骤减少跳跃性错误,尤其对多步骤难题准确率提升明显。
5. 自洽性(根据生成多种答案的众数来确定最后答案)
5.1 定义
自洽性是一种提升大模型推理准确性的手艺,通过对同一个问题生成多条不同的推理路径,然后对结果进行 "多数投票" 或综合分析,选择最一致的答案。
此种方法能有效减少单一路径可能产生的偏差或错误,特有适合数学推理、逻辑分析等复杂任务。
5.2 例子
难题:小明有 12 个苹果,送给小红 5 个,又买了 3 个,现在有多少个?
多条推理路径:
- 路径 1:12 - 5 = 7,7 + 3 = 10 → 答案:10
- 路径 2:12 + 3 = 15,15 - 5 = 10 → 答案:10
- 路径 3:5 - 3 = 2,12 - 2 = 10 → 答案:10
- 路径 4:12 - (5 + 3) = 4 → 答案:4(错误)
结果汇总:10(3 票),4(1 票)最终答案:10 个苹果
5.3 如何写 prompt 利用自洽性
import openai |
自洽性 prompt 关键技巧
- 多次采样:对同一问题生成多条独立推理路径
- 明确格式:要求模型用固定格式标记最终答案
- 结果汇总:借助投票或加权选择最一致的答案
- 提升多样性:可利用不同的 temperature 值或提示变体
6. 思维树
6.1 定义
一种让大模型在解决复杂挑战时,像树状结构一样并行探索多条推理路径的技术。不同于思维链(Chain of Thought)的线性推理,思维树允许模型:就是思维树
- 从一个问题出发,生成多个可能的思考方向
- 对每个方向进行深入探索
- 评估各路径的可行性,选择最优解
这种方法专门适合需要试错、回溯或多步规划的任务。
6.2 例子
问题:如何在 30 分钟内从公司回家,并准备一顿方便晚餐?
根节点:目标 - 30分钟内回家并准备晚餐 |
结论:选择路径 B(打车 + 三明治)最可靠,能在 30 分钟内完成任务。
6.3 如何写 prompt 利用思维树
import openai |
思维树 prompt 设计技巧
- 明确分支数量:控制探索的方向数量
- 设定深度限制:避免单个路径过于冗长
- 要求评估标准:让模型为每个路径提供可行性评分
- 使用对比语言:如 "比较"" 权衡 ""最佳选择" 等词汇
- 可视化输出:要求模型用列表或树状结构展示思考过程