来自全球多所大学和科技公司的研究人员们共同完成了一项重要的工作,他们系统地整理了关于生成性人工智能(GenAI)如何通过“提示”技术与用户交互的所有知识。这个项目的名称为:“提示技术报告”(The Prompt Report)。
该项目由马里兰大学、OpenAI、斯坦福大学、微软、范德堡大学、普林斯顿大学、德州州立大学、伊坎医学院等共同完成。
简单来说,这个项目收集并分析了大量关于如何使用提示词更好地与AI系统互动的研究。AI系统需要通过特定的“提示”来完成任务,就像你给一个机器人下达指令一样。
研究团队从各种学术资源中筛选出超过1,500篇相关论文,整理出了不同类型的提示技术,并创建了一个易于理解和使用的目录。
解决了什么问题? 虽然提示技术已经被广泛研究和使用,但在不同的研究和应用中,人们使用的术语和方法并不统一,这让大家很困惑。通过这个项目,研究人员们整理出了一套标准术语和方法,使得不论是开发者还是普通用户,都能更清楚地知道如何给AI下达有效的指令。
要解决了以下几个问题:
- 提示技术定义不明确:在生成性人工智能(GenAI)领域,提示技术的术语和定义尚不统一,导致研究和应用中存在混淆和误解。论文通过建立一个结构化的提示技术分类法,明确了不同提示技术的定义和使用场景。
- 提示技术分类混乱:现有的提示技术分类不够系统,难以全面了解和应用。论文通过系统性地审查文献,分类并整理了各种提示技术,提供了一个详细的提示技术目录,包括基于文本的、多语言的和多模态的提示技术。
- 提示技术应用效果不明确:尽管提示技术被广泛研究和应用,但其实际效果和最佳实践尚不明确。论文通过案例研究展示了不同提示技术的应用效果,提供了实际操作中的经验和结果,帮助开发者和用户更好地理解和使用提示技术。
主要内容:
- 文献综述:研究团队系统性地审查了相关文献,采用了PRISMA方法,从三个主要学术数据库(arXiv、Semantic Scholar和ACL)中共处理了4797条记录,最终筛选出1565篇与提示技术相关的论文。
- 提示技术分类:论文中详细介绍了58种基于文本的提示技术。此外,还收集并整理了许多多模态(如图像、音频)和多语言的提示技术。
- 提示技术的扩展应用:除了基础的提示技术外,论文还审查了如何扩展这些技术来创建更复杂的系统,比如如何评估生成的内容,以及设计出更加安全和可靠的提示。
- 案例研究:论文通过两个实际案例研究展示了这些提示技术的应用:
- 案例研究1:使用MMLU基准测试,测试了六种不同的提示技术,并分析了格式对结果的影响。
- 案例研究2:在自杀危机综合症(SCS)标签任务中应用提示技术,展示了如何通过提示工程提升任务的准确性。
以下是详细内容
1. 引言
1.1 什么是提示?
提示是提供给生成式人工智能(GenAI)模型的输入,用于指导其输出。提示可以是文本、图像、声音或其他形式的媒体。通过自然语言进行提示使这些模型容易交互,并在各种使用场景中灵活应用。有效地构建、评估和执行提示对于使用这些模型至关重要。更好的提示在广泛的任务中可以带来更好的结果。
1.2 术语
1.2.1 提示的组成部分
提示通常包含以下几个常见组件:
- 指令(Directive):提示的核心意图,以指令或问题的形式出现。例如:“告诉我五本好书。”这是提示的主要目的,有时也称为“意图”。
- 示例(Examples):也被称为范例或样本,作为演示指导GenAI完成任务。例如单次示例提示中,指令是进行英语到西班牙语的翻译:“Night: Noche, Morning:”
- 输出格式(Output Formatting):希望GenAI输出信息的格式。例如,可以在提示中添加指令让其以CSV格式输出总结。
- 风格指令(Style Instructions):修改输出的风格而不是结构。例如:“用简洁的语言写一段关于羊驼的文章。”
- 角色(Role):赋予GenAI特定的角色或身份,以提高写作或输出的风格。例如:“假装你是一位牧羊人,写一首关于羊驼的打油诗。”
- 附加信息(Additional Information):提示中包含的额外信息,以便GenAI可以更好地完成任务。例如,如果指令是写一封邮件,可以包括发送者的名字和职位。
1.2.2 提示术语
术语在提示文献中迅速发展,存在许多定义不清或冲突的术语。本文提供了一个全面的术语表,覆盖了提示社区中常用的术语,并详细定义了每个术语。主要术语包括:
- 提示(Prompting):向GenAI提供提示,从而生成响应的过程。例如,发送一段文本或上传一张图片就是提示。
- 提示链(Prompt Chain):由两个或多个提示模板依次使用组成的提示序列。例如,第一个模板生成的输出用作第二个模板的输入,依此类推,直到所有模板都使用完为止。
- 提示工程(Prompt Engineering):通过修改或更改提示技术的迭代过程来开发提示。
- 提示工程技术(Prompt Engineering Technique):用于改进提示的策略,通常包括自动化技术,但在消费环境中用户通常手动执行提示工程。
图1.1展示了提示领域的主要类别及其相互关系,涵盖了基于文本、多语言和多模态的提示技术,以及代理和评估方法。
1.3 提示的简史
提示技术的概念在GPT-3和ChatGPT时代之前就已经存在。GPT-2(Radford et al., 2019a)已经使用了提示,首次在生成式AI中使用提示的概念由Fan等人(2018)提出。然而,提示的概念之前有相关概念,如控制码(Pfaff, 1979;Poplack, 1980;Keskar et al., 2019)和写作提示。
提示工程这一术语最近由Radford等人(2021)和Reynolds与McDonell(2021)提出。然而,各种论文在没有明确提出提示工程这个术语的情况下也进行了提示工程的研究(Wallace et al., 2019;Shin et al., 2020a),包括Schick和Schütze(2020a,b);Gao等人(2021)对非自回归语言模型的研究。
最早的提示研究将提示定义为一种不同于当前使用方式的方式。例如,Brown等人(2020)将“Translate English to French: llama”中的单词“llama”视为提示,而“Translate English to French:”则是“任务描述”。然而,最新的研究(包括本文)将传递给LLM的整个字符串视为提示。
2. A Meta-Analysis of Prompting (提示技术的元分析)
2.1 Systematic Review Process (系统审查过程)
2.1.1 The Pipeline (流程)
为了系统地收集本文的数据集,作者们进行了一个基于PRISMA(Preferred Reporting Items for Systematic Reviews and Meta-Analyses)过程的系统文献综述(Page et al., 2021)。主要数据来源包括arXiv、Semantic Scholar和ACL,使用一组44个与提示和提示工程密切相关的关键词进行检索。以下是数据采集和过滤的步骤:
- 初始样本:
- 从arXiv、Semantic Scholar和ACL数据库中根据关键词和布尔规则检索论文。
- 从arXiv检索的初始样本用于建立过滤标准。
- 人工标注:
- 两名标注者独立标注了来自arXiv的1661篇文章,标注标准包括:
- 论文是否提出了新的提示技术?(包含)
- 论文是否严格涵盖硬前缀提示?(包含)
- 论文是否专注于通过反向传播梯度进行训练?(排除)
- 对于非文本模态,是否使用掩码帧和/或窗口?(包含)
- 标注者之间的标注一致性为92%(Krippendorff’s α = Cohen’s κ = 81%)。
- 两名标注者独立标注了来自arXiv的1661篇文章,标注标准包括:
- 自动标注:
- 开发了一个使用GPT-4-1106-preview分类剩余文章的提示。
- 使用100个人工标注的真值样本进行验证,获得89%的准确率和75%的召回率(F1得分为81%)。
- 结合人工和自动标注,生成了最终的1565篇论文集。
2.1.2 文本提示技术
- 创建包含58种文本提示技术的分类法,这些技术分为6个主要类别。
2.2 Text-Based Techniques (文本提示技术)
2.2.1 In-Context Learning (ICL)(上下文学习)