微信扫码
与创始人交个朋友
我要投稿
Prompt是大模型的输入,用来指导生成式人工智能的输出。本文提出了33个词汇术语的全面词汇表,58种纯文本提示技术的分类法,以及其他模态的40种技术。
The Prompt Report: A Systematic Survey of Prompting Techniques
https://arxiv.org/pdf/2406.06608
大模型通常依赖用户提供的输入“提示”(prompt)来生成输出。提示可能是文本形式的——“写一首关于树的诗。” 或者采取其他形式:图像、音频、视频或它们的组合。自然语言提示的能力使得这些模型易于交互,并能在广泛的用例中灵活使用。
有效地构建、评估和执行与提示相关的其他任务对于使用这些模型至关重要。实证研究表明,更好的提示可以在广泛的任务中带来改进的结果。
提示是输入给生成式人工智能(Generative AI)模型的指令,用于指导模型的输出。提示可以由文本、图像、声音或其他媒体组成。一些提示的例子包括:“为会计公司的营销活动写一个三段式的电子邮件”,一张桌子上放着东西的照片,附带文本“描述桌子上的所有东西”,或者一段在线会议的录音,附带指示“总结这个会议”。
提示通常是通过提示模板构建的。提示模板是一个包含一个或多个变量的函数,这些变量将被某些媒体(通常是文本)替换,以创建一个提示。然后,这个提示可以被认为是模板的一个实例。
考虑将提示应用于推文的二元分类任务。这里有一个初始的提示模板,可以用来对输入进行分类。
将推文分类为积极或消极:{TWEET}
数据集中的每个推文都将被插入到模板的一个单独实例中,然后将产生的提示交给大型语言模型(LLM)进行推断。
写一首关于树的诗。
写一首关于以下主题的诗:{USER_INPUT}
提示中包含多种常见的组成部分。我们总结了最常用的组成部分,并讨论了它们如何适应提示。
提示领域的术语正在快速发展。目前,许多定义理解不足(例如提示、提示工程)和相互冲突的定义(例如角色提示与人物提示)。缺乏一致的词汇妨碍了社区清晰描述各种提示技术的能力。
提示(Prompting):提示是向GenAI提供提示的过程,然后GenAI生成响应。例如,发送一段文本或上传图像的行为构成了提示。
提示链(Prompt Chain):由两个或更多的提示模板连续使用组成。第一个提示模板生成的提示的输出用于参数化第二个模板,直到所有模板都耗尽为止。
提示技术(Prompting Technique):提示技术是一个蓝图,描述了如何构建一个提示、提示或多个提示的动态序列。提示技术可能包含条件或分支逻辑、并行性或跨越多个提示的其他架构考虑。
提示工程(Prompt Engineering):提示工程是通过修改或更改所使用的提示技术来开发提示的迭代过程。
提示工程技术(Prompt Engineering Technique):迭代改进提示的策略。通常是自动化技术,但在消费者设置中,用户通常手动执行提示工程。
范例(Exemplar):在提示中向模型展示的任务完成示例。
ICL指的是大模型通过在提示中提供范例和/或相关指令来学习技能和任务的能力,无需权重更新/重新训练。这些技能可以从范例和/或指令中学习。
与此相比,相比少样本提示(Few-Shot Prompting)仅用几个例子(范例)学习完成任务。为提示选择范例是一项困难的任务——性能在很大程度上取决于范例的各种因素,而且只有有限数量的范例适合典型的LLM的上下文窗口。这些决策对输出质量有重要影响:
思维链(Chain-of-Thought, CoT)提示利用少样本提示鼓励LLM在给出最终答案之前表达其思维过程。
最直接版本的CoT不包含范例。它涉及在提示中添加一个诱发思考的短语,
将复杂问题分解为更简单的子问题上。这是人类以及大模型的有效问题解决策略。
在创建大模型系统时,让LLM批评自己的输出可能是有用的。这可以是一个简单的判断(例如,这个输出正确吗),或者LLM可以被提示提供反馈,然后这些反馈被用来改进答案。已经开发了许多生成和整合自我批评的方法。
除了调查提示技术外,我们还回顾了用于自动优化提示的提示工程技术。我们讨论了一些使用梯度更新的技术,因为提示工程技术的集合比提示技术的集合要小得多。
随着LLMs的能力迅速提高,公司和研究人员探索了如何让它们利用外部系统。这主要是因为LLMs在数学计算、推理和事实性方面的不足。这推动了提示技术的显著创新;这些系统通常由提示和提示链驱动,这些提示和提示链经过精心设计,以允许类似代理的行为。
在GenAI的背景下,我们定义代理为通过与GenAI本身之外的系统交互来实现用户目标的GenAI系统。这个GenAI通常是LLM。作为一个简单的例子,考虑一个被赋予解决以下数学问题的任务的LLM:
如果Annie有4,939颗葡萄,并且把其中39%精确地给了Amy,她还剩下多少?
如果得到适当的提示,LLM可以输出字符串CALC(4,939*.39)。这个输出可以被提取并放入计算器中以获得最终答案。这是一个代理的例子:LLM输出文本,然后使用下游工具。
工具使用是GenAI代理的一个关键组成部分。符号工具(例如计算器、代码解释器)和神经工具(例如单独的LLM)通常被使用。工具有时被称为专家或模块。
程序辅助语言模型(Program-aided Language Model, PAL)直接将问题翻译成代码,这些代码被发送到Python解释器以生成答案。
工具集成推理代理(Tool-Integrated Reasoning Agent, ToRA)与PAL类似,但它不是单一的代码生成步骤,而是在解决问题所需的时间内交错代码和推理步骤。
TaskWeaver与PAL类似,将用户请求转换为代码,但也可以利用用户定义的插件。
一些代理被设计为通过与玩具环境交互来解决问题。这些基于观察的代理在其提示中接收插入的观察结果。
推理和行动(Reasoning and Acting, ReAct)在给定问题时生成一个想法,采取行动,并接收观察结果(并重复此过程)。所有这些信息都插入到提示中,因此它具有过去的想法、行动和观察的记忆。
Reflexion在ReAct的基础上增加了一层自省。它获得一系列行动和观察结果,然后给出成功/失败的评估。然后,它生成对其行为和出错原因的反思。这种反思被添加到其提示中作为工作记忆,然后重复该过程。
LLM集成的Minecraft代理的工作产生了令人印象深刻的结果,代理能够在这个世界开放的视频游戏中导航时获得新技能。我们不仅将这些代理视为将代理技术应用于Minecraft,而是将它们视为可以在需要终身学习的真实世界任务中探索的新型代理框架。
Voyager由三部分组成。首先,它为自己提出任务以更多地了解世界。其次,它生成代码来执行这些行动。最后,它将这些行动保存起来,以便在有用时检索,作为长期记忆系统的一部分。这个系统可以应用于需要代理探索和与工具或网站交互的真实世界任务(例如渗透测试、可用性测试)。
Ghost in the Minecraft(GITM)从任意目标开始,递归地将其分解为子目标,然后通过产生结构化文本(例如"equip(sword)")而不是编写代码来迭代规划和执行行动。GITM使用Minecraft项目的外部知识库来协助分解,并拥有过去经验的记忆。
RAG是一种从外部源检索信息并将其插入提示中的范式。这可以增强知识密集型任务的性能。当检索本身被用作外部工具时,RAG系统被视为代理。
验证和编辑(Verify-and-Edit)通过生成多个思维链,然后选择一些进行编辑来改进自一致性。他们通过检索相关(外部)信息来做到这一点。
我们使用相同的通用提示模板对六种不同的提示技术进行基准测试。这个模板显示了提示的不同组件的位置。每个提示中只有基础指令和问题。基础指令是一个短语,如“解决问题并返回(A),(B),(C)或(D)。
零样本作为基线,我们直接通过模型运行问题,不使用任何提示技术。对于这个基线,我们使用了两种格式以及三种措辞变化的基础指令。因此,在这个基准测试中,有六种方式通过2800个问题。这没有包括任何范例或思维引导器。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-22
如何写出高质量的 prompt
2024-11-22
微软发现不同prompt模版会导致最大40%性能差距!
2024-11-22
原理解析:17岁高中生「神级 Prompt,把 Claude 强化成满血 o1」
2024-11-22
10000块的提示词被破解了
2024-11-22
叙事Prompt也能提升LLM推理能力?用叙事框架SoT解决复杂问题 |波恩大学最新
2024-11-21
致继刚,感谢你继承乔哈里视窗和提示词心法
2024-11-20
郭美青 | 从Demo到商用—构建企业级提示词工程,加速AI应用商用落地
2024-11-20
云中江树 | 重塑自然语言编程,Agent 训练的核心探索
2024-06-29
2023-06-08
2024-08-20
2024-06-27
2024-06-14
2024-07-09
2024-07-12
2024-09-17
2024-06-26
2024-06-29