为什么需要Prompt模板
- 基于前文我们具备了Prompt构建的基础能力,但是我们在实际编写Prompt的过程当中,可能还会存在一些的问题
- 比如对于背景和细节的描述还是不够
- 或者为了描述的清楚堆砌了大量的文字, 导致整个Prompt的结构化和可读性是比较差的
- 从而GPT没有正确理解需求,导致输出的结果不及预期
- 所以需要我们去总结Prompt工程相关知识,为我们自己去构建Prompt的一个相对来说比较标准化的模板
- 帮助我们更灵活可扩展的去套用Prompt,实现不同领域不同问题的提问
如何设计Prompt模板
- 第一步是需要结合前文理清好的Prompt,应该怎样去进行设计?
- 那我们的 Prompt 模板都需要包含哪些内容呢?
- 需要去整合Prompt的提示以及提问的要素,使其能够覆盖大部分的场景
- 我们在不同的领域,可以通过去套用这个模板的结构,然后进行解决,生成我们的Prompt
- 可以回顾一下 Prompt 它的核心的内容,就可以梳理出常用的模板,都有哪些模块了
- 这样在不同的领域,我们就可以去复用模板的基础的结构
- 然后通过模板去套用其他的问题来进行解决,这也是我们设计Prompt模板的一个初衷
- 回顾一下Prompt的核心内容, 梳理出promot模板都含有哪些模块
- 当我们有一个问题期望得到GPT帮助的时候,我们需要去明确我们的需求和目标,对需求和目标进行拆分
- 为了让GPT能够对我们的问题有一个大局观,我们还需要去提示必要的背景或者事例。
- 如果我们有更加详细的约束要求,比如实现步骤输出格式等等,也可以一并去提出这些要求。
- 经过我们的梳理之后,最终会得到一个相对简化的Prompt模板的一个示例
- 简化的 Prompt 模板示例
- 整个Prompt共包含五个部分,分别是:
- 1 )设立角色
- 属于选填项
- 目的是为GPT设定一个工作角色,能够帮助GPT划定输出的领域,让其回答更加精确
- 2 )需求概述和目标
- 是必填的字段
- 是我们让GPT输出的核心的输入
- 在这部分需要明确的描述我们的需求和想要达到的目标, 为GPT下达任务指令
- 3 )背景
- 是选填的字段
- 为GPT补充必要的背景信息,协助完善生成所需的上下文信息
- 为GPT构建它的大局观
- 4 )要求
- 是选填字段
- 是对我们的需求以及输出的一个细化
- 要有条例性的描述,具体的需求和输出的格式补充我们所需要的这些细节
- 5 )示例
- 是选填项
- 通过真实具体的事例,能够帮助GPT更好的认识我们的需求和输出的模式
- 协助GPT按照我们的思路去进行规划
基于上述模板去构建一个Prompt
- 比如我们很多人都会在网上去找一些面试题
- 可以让GPT充当我们的面试官,向我们出题,我们进行回答
- 回答完毕之后,再让GPT对我们的回答进行一下评价
- 我们可以通过Prompt的模板对这个场景去进行一下设计
- 让GPT通过面试的形式,对我们去进行一个测试
关于设定角色和需求目标
- 根据模板,我们的提示公式是: 你是什么角色,我需要你做什么,达到什么目标。
- 示例:你是一位大数据领域的面试官,你的任务是提出3个大数据行业的常见面试问题,我将会作为候选人进行回答
- 通过我们的输入,我们指定了GPT它的角色
- 明确了GPT的任务是提出三个大数据行业的面试题
- 在这里,对于面试题,我们增加了限定范围,这里是提问要素的一个体现
关于背景
- 我们遵循Prompt模板来看,下一步是背景的描述
- 背景描述的意义有助于GPT可以更好的去掌握全貌
- 对于它不了解的内容去进行补充。那么这里其实就存在一个问题
- 我们怎样去判断GPT是不是对于某一个背景有所了解
- 最常用的方法可以通过试探GPT的方式
- 比如试探GPT是否了解大数据行业,我们可以试着去询问的GPT, 你了解大数据行业吗?
- 如果GPT能够给出相对准确的答案,则说明这个背景对于GPT是了解的,我们不需要进行额外的补充
- 如果GPT不清楚这个概念, 则需要我们对GPT去进行背景的描述
- 如果我们在回答的过程当中,可能会用到了公司内部的系统或者组件。
- 为了让GPT能够理解我们回答的内容。我们可能就需要对于相关的这些专有的名词进行介绍
- 比如在公司有一个内部系统叫做xx平台(xx是这个平台的名称举例), 该平台是一个调度平台
- 为了让GPT能了解什么是xx平台, 我们可以通过名词介绍,通过背景去将xx平台的含义告诉GPT
- 比如我们告诉GPTxx平台是支持时间依赖等触发模式的调度系统和yy系统是比较类似的。(备注: yy系统是其他类比系统)
- 这样, 我们在提到xx平台的时候,GPT其实对yy平台是有所了解的,是符合我们预期的,这是对于背景。
关于要求
- 然后是要求, 对于要求, 我们需要保证结构和条理的清晰
- 我们可以通过1,2,3的这种形式去进行描述
- 比如对于我们的GPT面试官,我们提出几个具体的要求
- 1 )首先我们想要GPT, 一个一个的对我们进行提问
- 2 )不要对我的答案去进行过多的解释
- 3 )当问题全部回答完成之后,需要对我们的答案去进行评分
- 4 )评分的分值区间为0 ~ 100分, 其中 100 分为满分
关于示例
- 为了让GPT更好的理解我们的想法, 我们也可以给出一个简单的示例
- 通过少样本对GPT进行引导,便于GPT输出符合我们预期的答案。
- 比如我们可以告诉GPT, 你可以参照以下的示例进行,比如:
- 你问: Hadoop都具备哪些服务
- 我答: NameNode, DataNode, ResourceManager等等的这些服务
- 结合Prompt模板以及我们刚才所提到的GPT作为一个面试官,他的角色需求目标以及背景要求和示例
- 最终我们设计出了一段Prompt的文字
- 接下来,我们就可以针对这里的Prompt去进行一个实际的测试了
- 从整个模拟的测试中,可以现在看到
- 基于我们的模板构建了我们提问的Prompt
- GPT正确的理解了我们的要求,对大数据相关的问题进行了提问
- 并且对我们的答案进行了评分, 以及其他的一些问题说明