标题提到的Prompt工程在本文写作时(2022年7月)还不是一个广泛流行的概念(随着ChatGPT在2022年底发布才广为人知)。本文基于当时能接触到的大语言模型(如GPT-3),总结Prompt工程的最佳实践。
最近我在用大语言模型做一些项目,发现Prompt的质量直接决定了输出的质量。同样的模型,好的Prompt能得到专业级的输出,差的Prompt只能得到乱七八糟的结果。
经过几个月的实践,我总结了一些Prompt工程的最佳实践。本文分享这些经验,包括Prompt的基本结构、写作技巧、常见模式、调试方法,以及实际应用案例。
一、什么是Prompt工程
先说说什么是Prompt工程。
1. Prompt是什么
Prompt就是你给AI的输入指令。
比如,你对AI说:"帮我写一篇关于春天的文章",这就是一个Prompt。AI根据这个Prompt,生成对应的输出。
Prompt可以是一个问题、一段指令、一些示例,或者它们的组合。
2. 为什么Prompt工程重要
大语言模型(如GPT-3)的能力很强,但它不会读心术。你给它什么输入,它就给你什么输出。
- 模糊的Prompt → 模糊的输出
- 清晰的Prompt → 清晰的输出
- 结构化的Prompt → 结构化的输出
- 有示例的Prompt → 符合示例风格的输出
Prompt工程,就是研究如何写好Prompt,让AI输出你想要的结果。
3. Prompt工程的核心思想
Prompt工程的核心思想是:把AI当成一个聪明但需要明确指令的助手。
你不能只说"帮我写点东西",你要告诉它:
- 写什么主题
- 用什么风格
- 多长篇幅
- 什么结构
- 给谁看
指令越明确,输出越符合预期。
二、Prompt的基本结构
一个好的Prompt,通常包含以下几个部分。
1. 角色设定
给AI设定一个角色,让它以特定的身份回答。
你是一个资深的前端工程师,有10年的React开发经验。角色设定能让AI的输出更专业、更有针对性。如果你设定它是医生,它会用医学术语回答;如果你设定它是老师,它会用教学的方式回答。
2. 任务描述
明确告诉AI要做什么。
请帮我写一篇关于React 18并发特性的技术文章。任务描述要具体,不要模糊。不要说"帮我写点东西",要说"帮我写一篇关于XX的文章"。
3. 上下文和背景
提供必要的背景信息,让AI了解情况。
这篇文章是给有一定React基础的前端开发者看的,他们已经了解React的基本用法,但对并发特性不太熟悉。上下文能帮助AI更好地理解任务,输出更符合需求的内容。
4. 输出格式
指定输出的格式,比如长度、结构、风格等。
要求:
- 字数在2000字左右
- 分为引言、原理、用法、总结四个部分
- 语言通俗易懂,适合初学者
- 包含代码示例输出格式越明确,AI的输出越可控。
5. 示例(可选)
给AI一些示例,让它模仿示例的风格和格式。
示例输入:如何学习编程?
示例输出:学习编程需要以下步骤:1. 选择一门语言...示例是最强大的Prompt技术之一。通过示例,AI能准确理解你想要的输出格式和风格。
三、Prompt写作技巧
说说写Prompt的一些技巧。
1. 明确具体,不要模糊
这是最基本的技巧。
# 模糊的Prompt
写一篇关于健康的文章。
# 明确的Prompt
写一篇关于上班族如何保持健康的文章,字数800字,分为饮食、运动、睡眠三个部分,语言通俗易懂。明确的Prompt,输出的质量会高很多。
2. 用肯定句,不要用否定句
AI对否定句的理解有时候不太好。
# 不太好
不要写得太技术化。
# 更好
用通俗易懂的语言,适合非技术背景的读者。告诉AI要做什么,而不是不要做什么。
3. 分步指令
对于复杂的任务,把它拆分成多个步骤。
请按以下步骤写一篇产品评测:
1. 先介绍产品的基本信息(名称、价格、定位)
2. 然后描述外观和手感
3. 接着分析性能表现
4. 再说说优缺点
5. 最后给出购买建议分步指令能让AI的输出更有条理,不容易遗漏要点。
4. 指定受众
告诉AI这篇内容是给谁看的。
这篇文章是给完全不懂编程的人看的,请用最通俗的语言解释。不同的受众,需要不同的语言风格和深度。指定受众,AI就能调整输出。
5. 限制长度
指定输出的长度,避免AI写得太长或太短。
- 字数在500-800字之间
- 不超过3个段落
- 用3个要点概括长度限制能让输出更可控。
6. 提供上下文
如果任务需要背景信息,一定要提供。
我正在做一个电商网站,用户反馈购物车体验不好。请帮我分析可能的原因,并给出改进建议。
背景信息:
- 网站用React开发
- 购物车用Redux管理
- 主要问题是添加商品后更新慢上下文越充分,AI的回答越有针对性。
四、常见的Prompt模式
总结几种常见的Prompt模式。
1. 零样本(Zero-shot)
不给示例,直接给指令。
请把以下英文翻译成中文:
Hello, how are you?适合简单的任务,比如翻译、摘要、简单问答。
2. 单样本(One-shot)
给一个示例。
请模仿以下风格写一句话:
示例:今天天气真好,阳光明媚,适合出去走走。
主题:下雨天适合需要特定风格或格式的任务。
3. 少样本(Few-shot)
给多个示例。
请根据以下示例,对用户的情感进行分类(正面/负面/中性):
示例1:这个产品太棒了,我很喜欢!→ 正面
示例2:质量太差了,用了一天就坏了。→ 负面
示例3:收到了,还没用。→ 中性
用户评论:物流很快,但产品一般。→少样本是最常用的模式,适合分类、提取、格式转换等任务。示例越多,输出越准确。
4. 思维链(Chain-of-Thought)
让AI一步一步思考,而不是直接给答案。
请一步一步地思考,然后回答问题:
一个商店有10个苹果,卖出了3个,又进货了5个,现在有多少个苹果?思维链能提高AI在推理、数学、逻辑问题上的准确率。
5. 角色扮演
让AI扮演一个特定的角色。
你是一个有10年经验的产品经理。请帮我分析这个产品需求是否合理,并给出改进建议。
需求:做一个能自动写代码的AI工具。角色扮演能让AI的输出更专业、更有深度。
五、Prompt调试方法
写Prompt不是一次就能写好的,需要不断调试。
1. 从简单开始
先写一个简单的Prompt,看看输出效果。然后根据输出,逐步调整和完善。
不要一开始就写很复杂的Prompt,那样出了问题不知道是哪里的问题。
2. 一次只改一个变量
调试Prompt时,一次只改一个地方。
比如,先改角色设定,看看输出有没有变化。如果一次改多个地方,就不知道是哪个改动起了作用。
3. 对比测试
准备几个不同的Prompt,用同样的输入测试,对比输出效果。
Prompt A:写一篇关于XX的文章
Prompt B:你是一个资深记者,请写一篇关于XX的深度报道,字数1500字...对比之后,选择效果最好的那个。
4. 分析失败案例
当AI的输出不符合预期时,分析原因:
- 是指令不够明确?
- 是缺少上下文?
- 是示例不够好?
- 是任务太复杂?
找到原因,然后针对性地改进Prompt。
5. 迭代优化
Prompt工程是一个迭代的过程。
写Prompt → 测试 → 分析 → 改进 → 再测试,直到输出符合预期。
不要期望一次就能写出完美的Prompt。
六、实际应用案例
分享几个实际应用的案例。
案例一:文本摘要
你是一个专业的编辑。请把以下文章摘要成100字以内的内容,保留核心信息,语言简洁。
文章:
[长文章内容]效果:AI能生成简洁准确的摘要。
案例二:代码解释
你是一个资深的前端工程师。请解释以下React代码的作用和原理,用通俗易懂的语言,适合初学者理解。
代码:
useEffect(() => {
const subscription = props.source.subscribe();
return () => {
subscription.unsubscribe();
};
}, [props.source]);效果:AI能详细解释代码的作用,包括useEffect的用法、订阅和清理的机制。
案例三:邮件写作
你是一个专业的商务人士。请帮我写一封邮件,内容是:
- 感谢对方的合作
- 告知项目已经完成
- 询问是否需要后续支持
要求:语气礼貌专业,字数200字以内。效果:AI能生成一封格式规范、语气恰当的商务邮件。
案例四:数据提取
请从以下文本中提取人名、公司名和职位,用JSON格式输出。
文本:张三是阿里巴巴的高级工程师,李四是腾讯的产品经理。效果:
{
"people": [
{"name": "张三", "company": "阿里巴巴", "position": "高级工程师"},
{"name": "李四", "company": "腾讯", "position": "产品经理"}
]
}七、常见的错误
说说写Prompt时常见的错误。
错误一:指令太模糊
帮我写点东西。AI不知道写什么、写给谁、写多长,输出肯定不符合预期。
错误二:信息太多太杂
你是一个医生,也是一个老师,还是一个程序员。请帮我写一篇关于健康的文章,还要包含编程技巧,用诗歌的形式...信息太多,AI会混乱。一个Prompt只做一件事。
错误三:期望AI知道一切
不要假设AI知道你的具体情况。如果需要背景信息,一定要在Prompt中提供。
错误四:不测试就用
写好Prompt后,一定要测试。用不同的输入测试,看看输出是否稳定。不要写好就直接用在生产环境。
错误五:忽略安全问题
如果Prompt中包含敏感信息(用户数据、商业机密等),要注意安全。不要把敏感信息发给不可信的AI服务。
八、高级技巧
分享一些高级技巧。
1. 温度(Temperature)调整
大多数AI服务都有Temperature参数,控制输出的随机性。
- Temperature低(0-0.3):输出稳定、确定,适合分类、提取等任务
- Temperature中(0.3-0.7):平衡,适合一般的写作和问答
- Temperature高(0.7-1.0):输出多样、有创意,适合创意写作、头脑风暴
根据任务类型,选择合适的Temperature。
2. 系统提示(System Prompt)
用系统提示设定AI的整体行为。
系统:你是一个专业的技术作家,擅长用通俗易懂的语言解释复杂的技术概念。
用户:请解释什么是React的虚拟DOM。系统提示能让AI在整个对话中保持一致的角色和风格。
3. 自我检查
让AI检查自己的输出。
请先写一篇文章,然后检查文章中是否有以下问题:
1. 逻辑是否清晰
2. 是否有语法错误
3. 是否有遗漏的要点
如果有问题,请修改后再输出。自我检查能提高输出的质量。
4. 多轮对话
对于复杂的任务,用多轮对话逐步完善。
第一轮:让AI写初稿 第二轮:指出问题,让AI修改 第三轮:继续优化,直到满意
多轮对话比一次性写一个复杂的Prompt效果更好。
九、Prompt工程的未来
Prompt工程是一个快速发展的领域。
1. 会越来越重要
随着AI能力的增强,Prompt工程会越来越重要。好的Prompt能充分发挥AI的能力,差的Prompt会浪费AI的潜力。
2. 会出现专门的工具
已经出现了一些Prompt管理和优化的工具,未来会更多。这些工具能帮助你管理Prompt、测试效果、优化性能。
3. AI会越来越好理解自然语言
随着AI的发展,它会越来越理解自然语言,Prompt的门槛会降低。但即使AI更聪明了,清晰明确的指令依然重要。
4. 会成为一项基本技能
未来,Prompt工程可能会成为一项基本技能,就像今天的搜索技巧一样。每个人都需要知道如何和AI有效沟通。
十、写在最后
Prompt工程,是和AI沟通的艺术。
它不是什么高深的技术,而是一种清晰表达的能力。你能把需求说清楚,AI就能给你好的输出。
2022年7月,大语言模型还在快速发展中。Prompt工程也在不断演进,新的技巧和方法层出不穷。但核心原则是不变的:明确、具体、有结构、有示例。
最后,用一句话总结:"好的Prompt = 明确的角色 + 具体的任务 + 充分的上下文 + 清晰的格式 + 合适的示例。把这些做好,AI的输出就不会差。"
愿你在和AI沟通的过程中,越来越得心应手。
评论(0)
暂无评论,快来抢沙发~
评论功能仅对会员开放,请先登录
登录