为什么需要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正确的理解了我们的要求,对大数据相关的问题进行了提问 并且对我们的答案进行了评分, 以及其他的一些问题说明