ChatGPT高效提问—prompt基础
设计一个好的prompt对于获取理想的生成结果至关重要。通过选择合适的关键词、提供明确的上下文、设置特定的约束条件,可以引导模型生成符合预期的回复。例如,在对话中,可以使用明确的问题或陈述引导模型生成相关、具体的回答;在摘要生成中,可以提供需要摘要的文章段落作为prompt,以确保生成的摘要准确而精炼。
1.1 prompt基本原则
- 简明清晰
切忌表述复杂或含有歧义,尽可能简洁地表达主题,避免不必要的描述,以便ChatGPT准确理解我们的意图。使用简单易懂的语言,避免使用复杂的术语或语法结构。如果有术语,应该定义清楚。
不合格的prompt示例:
合格prompt的示例:
- 具体化
提供尽可能具体和详细的信息,以便ChatGPT更好地理解我们的意图。应提供相关的关键词、时间、地点和其他必要的细节。
不合格的prompt的示例:
合格的prompt的示例:
- 聚焦
prompt一定要一针见血、关键点明确,避免问题太宽泛或太开放。
不合格prompt的示例:
合格prompt的示例:
- 要有上下文
在prompt中给出上下文信息,以便ChatGPT更好地理解我们的需求。
不合格的prompt的示例:
合格prompt的示例:
- 确定生成目标
在prompt中明确指定生成目标。这可以帮助ChatGPT更好地理解我们的意图,生成更精确的回复。
不合格prompt的示例:
合格prompt的示例:
- 使用正确的语法、拼写以及标点符号
在编写prompt时,一定要注意语法、拼写以及标点符号的正确性,尤其是在使用英文prompt的时候,否则可能会造成ChatGPT生成的内容与你的预期相去甚远。
不合格prompt的示例:
合格prompt的示例:
- 验证准确性
编写完prompt后,须仔细检查以确保它准确表达了你的意图。尽可能想象不同的回复和场景,并确保prompt在这些情况下仍然准确和相关。
1.2 prompt组成元素
一个基础的prompt需要包含几个元素,如表所示。
基础prompt组成要素
中文名称 | 英文名称 | 是否必填 | 含义 |
指令 | instruction | 必填 | 希望模型执行的具体任务 |
语境 | context | 选填 | 也称上下文,可以引导模型输出更好的回复 |
输入数据 | input data | 选填 | 向模型提供需要处理的数据 |
输出指标 | output indicator | 选填 | 告知模型输出的类型或格式 |
按照这个格式写prompt,模型返回的结果一般不会差。当然,prompt不一定要包含所有4个元素,而可以根据自己的需求排列组合。下面就以“策划年会流程”为例,看看如何使用这4个元素,如表所示。
基础prompt组成要素示例
中文名称 | prompt中的描述 |
指令 | 策划年会流程 |
语境 | 公司举办年会 |
输入数据 | 领导发言、奖品发放、才艺表演等环节 |
输出指标 | Markdown格式 |
输入prompt:
ChatGPT输出:
从输出结果来看,ChatGPT按照要求策划了公司年会流程,包括必要的几个环节,并以Markdown格式输出。下面介绍稍微复杂一些的prompt组成元素,其完备性更高,比较适用于编写prompt模板,如表所示。
高级prompt组成要素
中文名称 | 英文名称 | 是否必填 | 含义 |
能力与角色 | capacity and role | 选填 | 希望模型扮演什么角色 |
洞察力 | Insight | 选填 | 背景信息或上下文 |
指令 | statement | 必填 | 希望模型做什么 |
个性 | personality | 选填 | 希望模型以什么风格或方式回答 |
尝试 | experiment | 选填 | 要求模型提供多个答案 |
将以上元素组合在一起,就形成了一个更详细、更明确的prompt,我们称之为高级prompt。对比基础prompt,使用高级prompt生成的结果会更加精确,相关性也更强。以“用鲁迅的风格进行创作”为例,高级prompt的组成要素如表所示。
中文名称 | prompt中的描述 |
能力与角色 | 文学家鲁迅 |
洞察力 | 指定年代背景、1980年 |
指令 | 写日记 |
个性 | 文言文的形式 |
尝试 | 三篇 |
输入prompt:
ChatGPT输出:
从输出结果来看,ChatGPT比较成功地以鲁迅的风格撰写了三篇日记,语言生动,符合预期。因此,对于更复杂的任务,大家可以参考高级prompt组成元素进行输入。