大语言模型提示词工程 — 学习笔记

3 阅读8分钟

大语言模型提示词工程 — 学习笔记

来源:华为培训课件《03大语言模型提示词工程》(19页 PowerPoint)

特色:全程以 "9.11 和 9.8 哪个更大?" 为贯穿案例,演示各技巧效果


一、课程概览

前言

本章主要介绍 Prompt 基本概念以及 Prompt 工程技巧。

课程目标

学完本课程后,你将能够:

  1. 掌握 Prompt 的概念

  2. 掌握常见的 Prompt 工程技巧

两大章节

  1. Prompt 基本概念

  2. 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 |


四、本章小结

  1. 描述了 Prompt 的概念(指令+上下文+输入数据+格式化输出)

  2. 讲解了常见 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、…,四项均在列)


六、学习推荐


七、与前两章的知识串联


第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,层层递进解决越来越复杂的问题