最近大模型方面的进展真是让人耳目一新,从去年底的ChatGPT,到微软的New Bing,再到GPT4,直至Microsoft 365 Copilot,每一个产品的出现,都在冲击着全世界人类对于AI的想象力。
但是,对于大部分人目前能够体验到的产品,则是ChatGPT类的聊天机器人或者说是人工智能助理。
但是这种基于大模型的人工智能助理绝大部分的时间也是看人下菜碟,你给他更多更详细的指导,它就越可能直接给出你答案。
这种更多更详细的指导,有一个专业的名词,叫做prompt,翻译过来就是提示词。今天这篇文章就给出一些编写prompt的指导和样例,以辅助大模型生成更令人满意的内容。
Prompt是什么
Prompt是近年来出现的一个概念,直观上,可以理解为在我们向大模型进行提问时,在问题前后补充一些例子或者背景知识。
为什么需要Prompt
Prompt的主要目的是为了激发出大模型的上下文小样本学习、零样本学习、思维链方面的能力,指导大模型生成更令人满意的内容。
具体有下面的例子:
在上面的例子中,添加了足够多的背景知识(语言模型是物理学家,听众是六年级的小朋友,要求答案通俗易懂)之后,语言模型给出的回答更贴合上下文的要求。
更多的例子,可以参考prompts advanced usage。
怎样构造Prompt
Prompt的基本构成
一般情况下,Prompt可以分成以下4个部分:
- Instruction:指引,即要解决的问题类型
- Context:上下文,即问题的背景
- Input Data:输入数据,即具体的问题
- Output Indicator:输出指示,即对输出的一些约束
需要说明的是,上述4部份不一定都需要。
比如上面黑洞的那个例子,可以按照下面的分解对应到4个部分:
Instruction: 解释一下什么是黑洞
Context: 假设你是一个物理学家,我呢,是一个六年级小学生
InputData: 解释一下什么是黑洞
Output Indicator: 用尽量简单易懂的语言
Prompt构造的基本原则
Prompt的构造,有一些可以遵循的基本原则:
- prompt可以分步构造,根据得到的答案来调整构成prompt的4部分
- 根据不同的任务,给出不同的提示词(常见的任务类型,下文会给出)
- 背景描述要具体
- 尽量少使用模糊词
常见的任务类型如下:
- 摘要
- 信息抽取
- 问答
- 文本分类
- 对话
- 代码生成
- 推理
具体每种类型对应的常见prompt,详见prompts basic usage。
一些常见的Pompt的样例
目前这些内容网络上搜索后会有很多,这里摘录几个效果看上去还不错的:
最后,推荐一个专门做prompt产品的网站——promptperfect.jina.ai/。
本文正在参加人工智能创作者扶持计划