大语言模型提示词工程 — 学习笔记
来源:华为培训课件《03大语言模型提示词工程》(19页 PowerPoint)
特色:全程以 "9.11 和 9.8 哪个更大?" 为贯穿案例,演示各技巧效果
一、课程概览
前言
本章主要介绍 Prompt 基本概念以及 Prompt 工程技巧。
课程目标
学完本课程后,你将能够:
-
掌握 Prompt 的概念
-
掌握常见的 Prompt 工程技巧
两大章节
-
Prompt 基本概念
-
Prompt 工程技巧
二、Prompt 基本概念
1. 什么是 Prompt / 提示词工程
-
Prompt:传递给语言模型的指令和上下文,以完成所需任务。
-
Prompt 工程(Prompt Engineering):开发和优化提示,以高效利用语言模型进行各种应用的实践。
-
更完整定义:在 NLP 和 AI 领域中,设计和优化输入到模型中的提示的过程;目的是通过精心设计的提示,引导模型生成更准确、更有用、更符合预期的输出。
2. Prompt 的组成(四个组件)
| 组件 | 作用 |
|------|------|
| 指令(Instruction) | 告诉模型要做什么任务 |
| 上下文(Context) | 提供背景信息/规则 |
| 输入数据(Input Data) | 具体要处理的内容 |
| 格式化输出(Output Format) | 指定输出的形式 |
示例(情感分类):
指令: 将文本分为积极、消极、中性
输入数据: 文本:今天天气不错。
格式化输出: 情感倾向:
→ Model 输出:情感倾向:积极
3. Prompt 和采样参数的关系
- 采样参数能显著影响语言模型的输出——Prompt 决定"说什么",采样参数决定"怎么说(多随机)"。
对比实验(提取积极词汇+相似词):
任务: 提取文本中积极的词汇,并输出一个相似的词汇
文本: 快乐,开心,悲伤,忧愁
| 参数设置 | 模型输出 |
|----------|----------|
| Temperature=0.3, Top_p=0.3(保守) | 文本中相似词汇:快乐,开心;额外相似词汇:喜悦,愉快 |
| Temperature=0.7, Top_p=1(奔放) | 文本中相似词汇:快乐;额外相似词汇:愉悦,欢喜,喜悦 |
结论:低温度/低Top_p → 输出更集中稳定;高温度/高Top_p → 输出更多样发散。
4. Prompt 的作用(能指导模型做多种工作)
通过设计 Prompt,可让语言模型完成多种任务:
-
文本摘要
-
QA(问答)
-
文本分类
-
角色扮演
-
代码生成
-
逻辑推理
-
……
示例(角色扮演/翻译):
你是一个专业的翻译员,将文本进行翻译,源语言中文,目标语言英文
文本:今天天气不错。
翻译:
→ Model 输出:The weather is nice today.
课件提问:"如果在这里输入英文会怎样?" → 模型可能直接返回原文或困惑,因为指令设定了"中文→英文"方向,输入英文不符合预期(提示指令与输入要匹配)。
三、Prompt 工程技巧(核心章节)
Prompt 工程技巧用来提升复杂场景下语言模型输出效果。
贯穿案例:9.11 和 9.8 哪个数字更大?
裸问时模型常答错("9.11 比 9.8 更大"——把版本号逻辑误用到数值比较),以下技巧逐个修正。
技巧总览
| 技巧 | 英文 | 核心思想 |
|------|------|----------|
| 样本提示 | zero/few-shot | 给范例让模型模仿 |
| 思维链 | CoT (Chain-of-Thought) | 让模型逐步推理 |
| 链式提示 | Prompt Chaining | 拆子任务、串多步 |
| 检索增强生成 | RAG | 外挂知识库检索 |
| ReAct | Reasoning + Acting | 推理+工具调用协同 |
1. 样本提示(Zero-shot / Few-shot)
-
零样本提示(zero-shot):现今大模型经大量数据训练,已能直接执行零样本任务(不给范例直接问)。
-
少样本提示(few-shot):零样本无法满足时,在 Prompt 中构建范例引导模型。
对比(9.11 vs 9.8):
| 方式 | Prompt | 模型输出 |
|------|--------|----------|
| 零样本 | 9.11和9.8哪个数字更大? | ❌ 9.11 比 9.8 更大。 |
| 少样本 | 示例:提问:3.2和3.3哪个更大?答:3.3更大。提问:9.11和9.8哪个更大?答: | ✅ 9.8更大。 |
关键:范例教会模型"按数值比较"而非"按版本号比较",纠正了偏差。
2. 思维链(CoT)提示
-
定义:通过中间推理步骤实现复杂推理能力;可与少样本结合(构建思考样本)以获更好结果。
-
触发语:
让我们逐步思考(Let's think step by step)
示例:
9.11和9.8哪个数字更大?
让我们逐步思考
→ Model 输出:
1. 比较整数部分:9.11→9, 9.8→9,相同
2. 比较小数部分:0.11 vs 0.8
3. 0.11 < 0.8
4. 结论:9.11 < 9.8,9.8更大
✅ 正确!逐步拆解避免了直觉错误。
3. 链式提示(Prompt Chaining)
- 定义:将一个任务分解为多个子任务,根据子任务创建一系列提示操作,前一步输出作为后一步输入。
示例(两步链):
第一步(数字分割助手):
你是一个数字分割助手,将输入数据按指定方式分割。
上下文:9.11和9.8
分割方式:按照小数点
→ 输出:9.11→整数9,小数11;9.8→整数9,小数8
第二步(数字比较助手):
你是一个数字比较助手,按指定方式比较大小。
上下文:(上一步结果)
比较方式:先比整数部分,再比小数部分
→ 输出:9.11 < 9.8
关键:复杂任务拆成"分割→比较"两步,每步职责单一,降低出错率。
4. 检索增强生成(RAG)
-
定义:RAG 接受输入并检索出一组相关文档(附来源),这些文档作为上下文与原始提示组合,送给生成器得到最终输出。
-
结构:
System Prompt + User Prompt(含检索到的"已知信息") → Model
示例框架:
System Prompt: 9.11和9.8哪个更大?
User Prompt: 根据'已知信息'回答问题,已知信息为空则返回"根据已知信息无法回答"
已知信息:"…(检索到的知识文档)…"
问题:"…"
关键:模型基于检索到的外部知识回答,而非仅靠参数化记忆;知识可更新、可溯源。若知识库为空,模型会诚实回答"无法回答"而非胡编。
5. ReAct(Reasoning + Acting)
-
灵感:来自"行为(Acting)"和"推理(Reasoning)"的协同——正是这种协同让人类能学习新任务并做决策。
-
机制:提示 LLM 为任务生成口头推理轨迹(thought)和操作(act/工具调用)。
示例框架:
System Prompt: 请充分理解用户问题,选择合适的工具,一步步解决问题。
工具列表:"…"
回复格式:{"thought":"思考","tool_names":"工具名"}
User Prompt: 通过计算二者相减结果正负值判断9.11和9.8哪个更大?
→ Model 输出:
// 第1轮:推理+调用工具
{"thought1":"这是数值比较问题,可用计算器工具",
"tool_names":"计算器",
"act1":"9.11 - 9.8 = -0.69"}
// 第2轮:根据工具结果得出结论
{"thought2":"9.11-9.8=-0.69,说明9.11<9.8,9.8更大",
"tool_names":"",
"response":"因此9.8更大。"}
关键:ReAct = 思考→调用工具→观察结果→再思考→…,实现"推理"与"行动"交替循环,能利用外部工具(如计算器)纠正模型自身计算弱点。
技巧对比速记表
| 技巧 | 解决什么问题 | 9.11 vs 9.8 案例中如何生效 |
|------|--------------|---------------------------|
| 少样本 | 模型不懂任务格式/有偏差 | 给"3.2 vs 3.3"范例,教会数值比较 |
| CoT | 复杂推理一步到位易错 | "逐步思考"→拆整数/小数比较 |
| 链式提示 | 单 prompt 太复杂 | 拆成"分割"+"比较"两步链 |
| RAG | 模型参数知识不足/过时 | 检索数值比较规则作为已知信息 |
| ReAct | 模型自身能力(如计算)不足 | 调用计算器算 9.11-9.8=-0.69 |
四、本章小结
-
描述了 Prompt 的概念(指令+上下文+输入数据+格式化输出)
-
讲解了常见 Prompt 工程技巧(样本提示/CoT/链式提示/RAG/ReAct)
五、思考题
1. 以下哪些属于常见的 Prompt 工程技巧( )?
A. 思维链 B. 链式提示 C. 样本提示 D. RAG
答案:A、B、C、D(全选)
解析:
-
A. 思维链(CoT)—— ✅ 课件明确列为技巧
-
B. 链式提示(Prompt Chaining)—— ✅ 课件明确列为技巧
-
C. 样本提示(zero/few-shot)—— ✅ 课件明确列为技巧
-
D. RAG(检索增强生成)—— ✅ 课件明确列为技巧
-
(课件第10页列出的技巧清单:样本提示、思维链CoT、链式提示、RAG、ReAct、…,四项均在列)
六、学习推荐
-
华为云官网:www.huaweicloud.com/
-
华为云开发者学堂:edu.huaweicloud.com/
七、与前两章的知识串联
第01章《能力和局限》 第02章《盘古套件》 第03章《提示词工程》
│ │ │
├─ 采样参数 ├─ SFT(改模型权重) ├─ Prompt 组成(指令/上下文/输入/格式)
│ (Temperature/Top_p…) │ 成本最高,效果最彻底 │ (不改模型,成本最低)
│ │ │
├─ 指令微调LLM ├─ 三种调整方式对比: ├─ Prompt工程技巧:
│ (instruction-input- │ Prompt工程 < RAG < SFT │ 少样本/CoT/链式/RAG/ReAct
│ output) │ (成本↑) │ (在"Prompt工程"这一侧深化)
│ │ │
└─ Prompt: System+User └──────────────────┘ └─ RAG/ReAct 正是 Prompt工程的高级形态
一句话串联:
-
第01章引入了 Prompt(System/User)和采样参数的概念
-
第02章把"调整模型输出"分为 Prompt工程(低成本)/RAG(中)/SFT(高成本)三层
-
第03章深入展开Prompt工程这一层的具体技巧——从少样本到CoT到RAG到ReAct,层层递进解决越来越复杂的问题