8

提示词工程(上)

Prompt设计的基本原则与技巧

⏱️ 90分钟📊 难度:基础🎯 模块:工程实践

📖课程概述

提示词工程(Prompt Engineering)是与大语言模型交互的核心技术。 通过精心设计的提示词,我们能够引导模型生成更准确、更有用的输出。 本讲将介绍提示词设计的基本原则,以及三种关键技巧:Zero-shot、Few-shot和Chain-of-Thought。 掌握这些技巧,你将能够更好地发挥大语言模型的潜力,在实际应用中获得更好的效果。

🎯学习目标

1.理解提示词工程的重要性和提示词的四大组成元素
2.掌握Zero-shot、Few-shot和Chain-of-Thought三种基本技巧
3.了解每种技巧的适用场景、优势和局限性
4.能够根据实际需求选择合适的提示词技巧解决问题

🔑核心知识点

Zero-shotFew-shotChain-of-Thought提示词四要素

💡什么是提示词工程

✍️

提示词工程的定义

提示词工程是设计和优化输入文本(提示词)以引导大语言模型产生期望输出的技术和实践。 它是连接用户意图与模型能力的桥梁,通过精心设计的提示词,我们能够:

  • 提高模型输出的准确性和相关性
  • 控制输出的格式和风格
  • 激发模型的推理和创造能力
  • 降低模型出错和产生幻觉的概率

🧩提示词的四大组成元素

一个完整、有效的提示词通常由四个核心元素组成。理解这些元素,能够帮助我们更系统地设计提示词。

📋

1. 指令(Instruction)

明确告诉模型你希望它执行的任务或操作。指令应该清晰、具体、可执行。

示例:

"请将下面的文本翻译成英文"
"总结这篇文章的核心观点"
"分析这段代码的时间复杂度"

🌍

2. 上下文(Context)

提供背景信息、约束条件或特殊要求,帮助模型更好地理解任务。

示例:

"你是一位专业的市场分析师"
"假设目标受众是高中生"
"使用正式的商务语言"

📥

3. 输入数据(Input Data)

需要模型处理的具体内容,可以是文本、问题、代码等。

示例:

"文本:机器学习是人工智能的一个分支..."
"问题:什么是深度学习?"
"代码:def bubble_sort(arr): ..."

📤

4. 输出指示(Output Indicator)

指定期望的输出格式、长度、结构或样式。

示例:

"请用JSON格式返回结果"
"限制在200字以内"
"用编号列表的形式呈现"

💡 提示:并非每个提示词都需要包含全部四个元素。 根据具体任务的复杂度和需求,可以灵活组合这些元素。 通常,任务越复杂,需要的元素越多。

🎯技巧一:Zero-shot Prompting

🚀

什么是Zero-shot

Zero-shot是指不提供任何示例,直接让模型完成任务。 这种方法依赖于模型在预训练阶段学到的知识和能力。 Zero-shot适用于模型已经熟悉的常见任务。

示例1:文本分类

提示词:

将下面的客户评论分类为"正面"或"负面":
"这个产品质量很好,物流也很快,非常满意!"

模型输出:

正面

示例2:信息提取

提示词:

从下面的文本中提取人名、地点和时间:
"张三将于2024年3月15日在北京参加会议。"

模型输出:

人名:张三
地点:北京
时间:2024年3月15日

优点

  • • 简单直接,无需准备示例
  • • 快速上手,节省时间
  • • 适用于常见任务

⚠️局限性

  • • 对复杂任务效果有限
  • • 输出格式可能不稳定
  • • 难以控制特定风格

📚技巧二:Few-shot Prompting

🎓

什么是Few-shot

Few-shot是指在提示词中提供少量示例(通常1-5个),让模型通过模仿学习来完成任务。 这种方法能够更精确地控制输出格式和风格,提高任务完成质量。 Few-shot特别适用于需要特定格式或风格的任务。

示例1:情感分析(提供2个示例)

提示词:

将下面的评论分类为"正面"、"负面"或"中性":

评论:这家餐厅的菜品很美味,环境也不错。
分类:正面

评论:服务态度太差了,等了半天都没人理。
分类:负面

评论:价格还算合理,菜品一般般。
分类:

模型输出:

中性

示例2:格式化输出(提供JSON格式示例)

提示词:

将下面的信息转换为JSON格式:

输入:张三,男,28岁,软件工程师
输出:{"name":"张三","gender":"男","age":28,"occupation":"软件工程师"}

输入:李四,女,25岁,数据分析师
输出:{"name":"李四","gender":"女","age":25,"occupation":"数据分析师"}

输入:王五,男,30岁,产品经理
输出:

模型输出:

{"name":"王五","gender":"男","age":30,"occupation":"产品经理"}

💡Few-shot设计要点

  • 1.示例数量:通常2-5个示例效果最好,太多会增加token消耗
  • 2.示例质量:选择有代表性、多样化的示例,覆盖不同情况
  • 3.示例顺序:最后一个示例通常影响最大,可以放置最重要的样本
  • 4.格式一致:确保所有示例的格式完全一致,模型会严格模仿

优点

  • • 精确控制输出格式和风格
  • • 提高复杂任务的准确性
  • • 适用于特定领域任务

⚠️局限性

  • • 需要准备高质量示例
  • • 增加token消耗和成本
  • • 示例选择会影响结果

🧠技巧三:Chain-of-Thought (CoT)

🔗

什么是Chain-of-Thought

Chain-of-Thought(思维链)是一种引导模型进行分步推理的技术。 通过展示或要求模型展示中间推理步骤,CoT能够显著提升模型在复杂推理任务上的表现。 特别适用于数学问题、逻辑推理和需要多步骤思考的任务。

CoT的两种形式

1. Manual-CoT(手动)

在Few-shot示例中展示推理步骤

示例包含详细的思考过程

2. Zero-shot-CoT(自动)

添加"Let's think step by step"

模型自动展示推理过程

示例1:Manual-CoT(手动提供推理步骤)

提示词:

问题:一个班级有30名学生,其中60%是女生。如果新增5名男生,男生占比是多少?

思考过程:
1. 女生人数 = 30 × 60% = 18人
2. 原来男生人数 = 30 - 18 = 12人
3. 新增后男生人数 = 12 + 5 = 17人
4. 总人数 = 30 + 5 = 35人
5. 男生占比 = 17 / 35 ≈ 48.6%

问题:一辆车以60公里/小时的速度行驶了2.5小时,然后以80公里/小时的速度行驶了1.5小时。平均速度是多少?

思考过程:

模型输出:

1. 第一段路程 = 60 × 2.5 = 150公里
2. 第二段路程 = 80 × 1.5 = 120公里
3. 总路程 = 150 + 120 = 270公里
4. 总时间 = 2.5 + 1.5 = 4小时
5. 平均速度 = 270 / 4 = 67.5公里/小时

示例2:Zero-shot-CoT(使用魔法提示词)

提示词:

问题:如果5个机器需要5分钟来制造5个零件,那么100个机器制造100个零件需要多长时间?

Let's think step by step.

模型输出:

好的,让我们一步步思考:

第一步:理解题目信息
- 5个机器需要5分钟制造5个零件

第二步:计算单个机器的效率
- 每个机器5分钟制造1个零件
- 因此,每个机器制造1个零件需要5分钟

第三步:应用到新问题
- 100个机器同时工作
- 每个机器制造1个零件需要5分钟
- 所以100个机器制造100个零件需要5分钟

答案:5分钟

CoT魔法提示词

只需在问题末尾添加这些短语,就能激发模型的推理能力:

英文版:

• "Let's think step by step."

• "Let's work this out step by step."

中文版:

• "让我们一步步思考。"

• "请详细说明推理过程。"

优点

  • • 显著提升复杂推理任务准确性
  • • 推理过程可解释、可验证
  • • 帮助发现模型错误
  • • Zero-shot-CoT简单易用

⚠️局限性

  • • 增加输出长度和token消耗
  • • 可能产生错误的推理链
  • • 对简单任务可能过度复杂

⚖️三种技巧对比

了解每种技巧的特点后,我们可以根据具体任务需求选择最合适的方法。 下表总结了三种技巧的主要特征和适用场景:

维度Zero-shotFew-shotChain-of-Thought
定义不提供示例,直接执行任务提供少量示例供模型模仿要求展示推理步骤
难度⭐ 最简单⭐⭐ 中等⭐⭐⭐ 较复杂
Token消耗最少中等最多
适用任务常见、简单任务
(分类、翻译、总结)
需要特定格式或风格
(结构化输出、领域任务)
复杂推理任务
(数学、逻辑、多步骤)
准确性基准水平显著提升大幅提升(推理任务)
可控性较低中等
典型场景• 文本分类
• 语言翻译
• 内容总结
• 问答系统
• JSON格式化
• 特定风格写作
• 领域分类
• 模板填充
• 数学应用题
• 逻辑推理
• 复杂分析
• 决策制定

💡选择建议

  • 从简单开始:先尝试Zero-shot,如果效果不理想再升级到Few-shot或CoT
  • 组合使用:可以将Few-shot与CoT结合(Few-shot-CoT),效果更佳
  • 成本考虑:在满足需求的前提下,优先选择token消耗少的方法
  • 场景匹配:根据任务复杂度和输出要求选择最合适的技巧

🎯 核心要点总结

提示词四要素

指令、上下文、输入数据、输出指示——构建有效提示词的基础框架

  • • 明确的任务指令
  • • 必要的背景信息
  • • 待处理的数据
  • • 期望的输出格式

三种核心技巧

Zero-shot、Few-shot、CoT——从简单到复杂的进阶路径

  • • Zero-shot:快速直接
  • • Few-shot:精确控制
  • • CoT:深度推理
  • • 根据需求灵活选择

实践建议

持续实验和优化,积累经验形成自己的提示词库

  • • 从简单开始迭代
  • • 记录有效的模板
  • • 考虑成本和效果
  • • 关注输出质量

📚学习资源

📄

课程Slides

完整的讲义PDF,包含所有图表和详细内容

本讲测评

检验你对本讲知识点的掌握程度

开始测评 →