Prompt
Prompt 是什么?
Prompt 是一种人为构造的输入序列,用于引导 GPT 模型根据先前输入的内容生成相关的输出。简单来说,就是你向模型提供的 “提示词”。
在 ChatGpt 中,我们可以通过设计不同的 prompt,让模型生成与之相关的文本。例如,假设我们想让 ChatGpt 担任英语翻译。我们可以给模型提供以下 prompt:
我希望你能担任英语翻译、拼写校对和修辞改进的角色。
我会用任何语言和你交流,你会识别语言,将其翻译并用更为优美和精炼的英语回答我。
请将我简单的词汇和句子替换成更为优美和高雅的表达方式,确保意思不变,但使其更具文学性。
请仅回答更正和改进的部分,不要写解释。我的第一句话是“how are you ?,请翻译它。
这样,我们就可以期待模型生成一段文本了。
Prompt 如何生成?
prompt 如此重要,我们应该怎么去写一个好的 prompt 呢?github 上有位大佬 Matt Nigh。
https://github.com/mattnigh/ChatGPT3-Free-Prompt-List
CRISPE Prompt Framework,CRISPE 是首字母的缩写,分别代表以下含义:
CR:Capacity and Role(能力与角色),你希望 ChatGPT 扮演怎样的角色。
I:Insight(洞察),背景信息和上下文。
S:Statement(陈述),你希望 ChatGPT 做什么。
P:Personality(个性),你希望 ChatGPT 以什么风格或方式回答你。
E:Experiment(实验),要求 ChatGPT 为你提供多个答案。
github 上的那 prompt 角色大全基本都是 CRISPE 框架。
先定角色,后说背景,再提要求,最后定风格。是否生成多个例子可以看自己喜好。
Prompt 的重要性
合理使用 prompt 可以为 ChatGpt 带来很多好处。以下是一些例子:
- 提高生成准确性:通过正确的 prompt 引导,模型能够更好地理解用户的意图,从而生成更加准确的文本。
- 增强自由度:通过多种不同的 prompt,我们可以让模型生成各种各样的文本,增强了模型的表现力和自由度。
- 提高效率:如果我们已经知道要生成的文本大致内容,通过正确的 prompt 可以让模型更快地生成出我们想要的结果。
Prompt Engineering定义
定义:Prompt Engineering 是设计和优化输入提示(prompt)以获得预期输出的过程。在与大型语言模型(如 GPT-4)交互时,如何构造提示会显著影响模型的回答质量。
例子:
- 简单提示:
"告诉我关于猫的事情。"
- 优化提示:
"请详细描述猫的生物学特征、行为习惯以及它们在不同文化中的象征意义。"
通过优化提示,用户可以引导模型生成更详细和有用的回答。
Prompt Engineering 是设计和优化输入提示以获得预期输出的过程。为了在使用大型语言模型(如 GPT-4)时获得最佳结果,以下是一些最佳实践:
Prompt Engineering最佳实践
1. 明确目标
最佳实践:明确你希望模型完成的任务或回答的问题。
示例:
- 目标不明确:
"告诉我关于气候变化的事情。"
- 目标明确:
"请简要描述气候变化的主要原因及其对农业的影响。"
2. 提供上下文
最佳实践:为模型提供必要的背景信息或上下文,以帮助其理解任务。
示例:
- 无上下文:
"解释一下微积分。"
- 有上下文:
"作为一名高中生,我正在学习微积分。请用简单的语言解释一下微积分的基本概念。"
3. 使用具体的指示
最佳实践:使用明确的指示和要求,避免模糊不清的提示。
示例:
- 模糊指示:
"写一篇关于技术的文章。"
- 具体指示:
"请写一篇关于人工智能在医疗领域应用的文章,包含以下几点:应用场景、优势和挑战。"
4. 提供示例
最佳实践:通过提供示例来展示你期望的输出格式或内容。
示例:
- 无示例:
"生成一个关于产品的报告。"
- 有示例:
"生成一个关于产品的报告,格式如下:\n\n- 产品名称:\n- 价格:\n- 特点:\n- 优点:\n- 缺点:"
5. 使用分步指示
最佳实践:对于复杂任务,分解为多个步骤,逐步引导模型完成。
示例:
- 一步完成:
"解释并解决这个数学问题:2x + 3 = 7。"
- 分步指示:
"首先,解释如何解方程。然后,解方程2x + 3 = 7。"
6. 控制输出长度
最佳实践:通过提示控制输出的长度,确保内容简洁或详细。
示例:
- 无长度控制:
"解释一下量子力学。"
- 有长度控制:
"用不超过100字解释量子力学的基本概念。"
7. 使用占位符和模板
最佳实践:使用占位符和模板来指示需要填充的内容或格式。
示例:
- 无模板:
"生成一个用户注册表单。"
- 有模板:
"生成一个用户注册表单,包含以下字段:用户名、密码、邮箱、电话号码。"
8. 反复试验和调整
最佳实践:不断试验和调整提示,观察模型的输出,并根据需要进行优化。
示例:
- 初始提示:
"描述一下Python编程语言。"
- 调整提示:
"描述一下Python编程语言的主要特点和常见应用场景。"
9. 指定输出格式
最佳实践:明确指定输出格式,确保生成内容符合预期。
示例:
- 无格式指定:
"生成一个关于公司财务状况的报告。"
- 有格式指定