Appearance
Prompt 工程:与大模型高效交互
Prompt工程是设计和优化与大语言模型交互的提示词的艺术,本章节介绍如何创建有效的提示词以获得期望的输出。
1. Prompt 基本结构
1.1 核心组成部分
一个有效的Prompt通常包含以下要素:
- 角色设定:为模型指定角色,如"你是一名资深程序员"、"你是专业英语教师"
- 任务描述:明确要求模型完成的任务,如"请解释这个概念"、"分析这篇文章"
- 上下文信息:提供相关背景信息或输入数据
- 输出格式:指定期望的输出形式,如"用JSON格式输出"、"分三点回答"
- 约束条件:设定限制条件,如"回答不超过300字"、"使用通俗易懂的语言"
1.2 基础Prompt示例
角色:数据分析师
任务:分析以下销售数据并给出三个改进建议
数据:今年第一季度销售额同比下降15%,其中线上销售下降20%,线下销售下降5%
输出格式:每个建议用bullet point列出,包含具体可行的措施
约束:建议要具体,不超过200字2. 提示词设计技巧
2.1 清晰明确的指令
- 使用明确的动词(解释、总结、分析、生成等)
- 避免模糊表述
- 设定清晰的输出边界
示例对比:
不好的Prompt:
讲一下人工智能好的Prompt:
用不超过300字,向小学生解释什么是人工智能,使用两个生活中的例子2.2 提供示例
通过包含输入-输出示例,引导模型生成更准确的结果,这种方法称为"few-shot learning"。
任务:将产品描述转换为产品标签
示例1:
描述:这是一款超薄笔记本电脑,续航10小时,适合商务办公
标签:轻薄本、商务、长续航
示例2:
描述:这是一款游戏笔记本,配备RTX4080显卡,165Hz屏幕
标签:游戏本、高性能、高刷新率
现在,请将以下描述转换为标签:
描述:这款平板电脑适合阅读和记笔记,配备触控笔,电池续航长达12小时2.3 逐步推理
对于复杂问题,引导模型逐步思考,提高答案准确性。
请解决这个数学问题:一个商店以300元的价格卖出一件商品,利润率为20%,求这件商品的成本价。
步骤:
1. 明确已知条件
2. 设定变量
3. 列出方程
4. 解方程
5. 得出答案3. 高级Prompt技术
3.1 Chain-of-Thought (CoT)
引导模型生成思考过程,适合复杂推理任务。
问题:一个仓库有850个箱子,运走了150个后,又运来了300个,现在仓库有多少个箱子?
请先思考,再给出答案。
思考过程:3.2 自我纠正
要求模型检查自己的输出并改进。
请写一篇关于气候变化的200字短文。写完后,请检查是否有科学错误或不准确的地方,并修正。3.3 思维框架
为复杂任务提供结构化的思考框架。
使用SWOT分析框架,评估在小县城开一家精品咖啡店的商业前景:
Strengths:
Weaknesses:
Opportunities:
Threats:4. 常见任务的Prompt模板
4.1 文本摘要
请总结以下文章,要点包括:1)主要论点;2)关键数据;3)核心结论。摘要不超过原文长度的三分之一,语言简明扼要。
[文章内容]4.2 代码生成
请用Python编写一个函数,实现以下功能:
1. 输入:一个字符串列表
2. 输出:每个字符串出现的次数(字典格式)
3. 要求:考虑性能,使用高效算法
4. 包含详细注释4.3 翻译
请将以下英文文章翻译成中文,要求:
1. 保持原文意思准确
2. 使用流畅的中文表达
3. 保留专业术语的准确翻译
4. 保持段落结构不变
[英文文章]5. 不同模型的Prompt差异
5.1 OpenAI模型
- 支持复杂指令和少样本学习
- 对格式要求相对宽松
- 支持system prompt设置系统级行为
5.2 开源模型
- 某些模型可能需要更具体的指令
- 可能需要更多示例来引导
- 性能可能随模型大小和训练数据变化
6. Prompt评估与优化
6.1 评估指标
- 准确性:回答是否符合事实
- 相关性:输出是否切题
- 完整性:是否覆盖所有要求
- 一致性:多次调用结果是否一致
6.2 A/B测试
尝试不同版本的Prompt,比较结果质量。
版本A:
请解释量子计算
版本B:
请用通俗易懂的语言,通过类比解释量子计算的基本原理,适合对物理学了解不多的读者7. 最佳实践
- 简洁明了:避免冗余,保持指令清晰
- 迭代优化:不断测试和改进Prompt
- 结构化输入:使用明确的分隔符和格式
- 设置期望:明确告诉模型你想要什么
- 使用限定词:精确描述要求(如"准确"、"详细"、"简洁")
8. 工具与资源
Prompt共享平台:
- PromptBase
- FlowGPT
- Awesome ChatGPT Prompts
开发工具:
- LangChain
- Promptflow
- LangSmith
Prompt工程是一项需要实践和经验的技能,随着模型的发展,最佳实践也在不断演变。持续学习和实验是掌握这一技能的关键。