Prompt Engineering 是一种人工智能(AI)技术,它通过设计和改进 AI 的 prompt 来提高 AI 的表现。Prompt Engineering 的目标是创建高度有效和可控的 AI 系统,使其能够准确、可靠地执行特定任务。简单的理解它是给 AI 模型的指令。
- 从用户的角度看, prompt 可以更好地使用 ChatGPT 等产品。
- 从产品的角度看,对于用户来说, prompt 会是个短期过度形态,未来肯定会有更友好的交互形式,或者理解能力更强的 AI 产品。
PE技巧或建议
- To do and Not To do:告知模型不能干什么,不妨告诉模型能干什么。如果想要的是明确的答案,加入更多限定词,告知模型能干什么,回答的效率会更高,且预期会更明确。
- 增加示例:给予具体的例子 (单就目前数据分析来说,数据样例难以给较好的示例 )
- 使用引导词,引导模型输出特定语内容
- 增加 Role(角色)或人物
- 使用特殊符号将指令和需要处理的文本分开:用”””—“””将指令和文本分开
- 通过格式词阐述需要输出的格式
Zero-shot 和 Few-shot prompt
类型 | Zero-shot prompt | Few-shot prompt |
定义 | 使用预训练模型无需特定任务微调的提示 | 使用预训练模型进行少量任务微调的提示 |
微调 | 不需要进行特定任务的微调 | 需要进行少量任务的微调 |
数据需求 | 仅需要提供简短的提示/问题,不需要特定数据 | 需要少量特定任务的数据 |
适用性 | 更广泛的适用性,可适用于多个任务 | 适用于有限数量的特定任务 |
灵活性 | 很高,无需针对不同任务单独进行微调 | 有一定灵活性,但需要为每个任务进行少量微调 |
使用便利性 | 更方便,用户只需简单的提示就能获得结果 | 需要进行少量的微调,可能稍显繁琐 |
性能表现 | 对于常见任务,性能可能不如Few-shot prompt好 | 对于特定微调过的任务,性能可能更好 |
需要注意的是,Zero-shot prompt和Few-shot prompt都是在预训练模型基础上使用的技术
常见的提问词框架
更多框架详见 https://mp.weixin.qq.com/s/QEWKheLYa4hzUQOxHihorg
Elavis Saravia的 ICIO 框架
ICIO框架是Elavis Saravia总结的一套框架,他认为一个prompt里需包含以下四个部分:
- Instruction (必须): 指令, 即你希望模型执行的具体任务
- Context (选填): 背景信息, 或者说是上下文信息, 这可以引导模型做出更好的反应
- Input Data (选填): 输入数据, 告知模型需要处理的数据
- Output Indicator (选填): 输出指示器, 告知模型我们要输出的类型或格式。
- Instruction (必须): 生成一段关于互联网历史的文本。
- Context (选填): 背景:互联网是一个全球互联的计算机网络系统,使用标准互联网协议套件(TCP/IP)为全球数十亿用户提供服务。它是一个由数以百万计的网络组成的网络,其中包括从本地到全球的私有、公共、学术、商业和政府网络,这些网络通过各种电子、无线和光纤网络技术连接。Internet承载着大量的信息资源和服务,例如相互链接的超文本文档和万维网(WWW)应用程序、电子邮件、电话和文件共享。
- 输入数据(Input Data) :无。
- 产出指标(Output Indicator):案文段落。
Matt Nigh的 CRISPE 框架
CRISPE框架是Matt Nigh提出的一个用于编写prompt输出复杂内容的框架,它是首字母的缩写,分别代表以下含义:
- CR:Capacity and Role(能力与角色):你希望 ChatGPT 扮演怎样的角色。
- I:Insight(洞察):背景信息和上下文。
- S:Statement(陈述):你希望 ChatGPT 做什么。
- P:Personality(个性):你希望 ChatGPT 以什么风格或方式回答你。
- E:Experiment(实验):要求 ChatGPT 为你提供多个答案。
- 能力和角色:作为机器学习框架主题的软件开发专家和博客撰写专家。 见解:本博客的读者是对机器学习领域的最新进展感兴趣的技术专业人士。
- 陈述:全面概述最流行的机器学习框架,包括其优势和劣势。包括现实生活中的示例和案例研究,以说明这些框架如何成功应用于各个行业。
- 个性:回答时,混合使用Andrej Karpathes、Francois Chollet、Jeremy Howard和Yann LeCun的写作风格。
- 实验:“给我多个不同的例子”。