赞
踩
这是迄今为止最新最全面的一篇Prompt调查报告,毫不夸张地说:假如日后你看到Prompt培训教材、教科书或书籍里的观点丝毫没有引用这篇调查报告里提及的论文,那么你极有可能是被他自己给自己定义的身份权威遮蔽了,谁再打着提示词大师、专家的旗号蒙你,把这篇文章截个图甩给他,可以马上、立刻让他闭嘴。
这篇报告由马里兰大学的研究团队主要撰写,此外,报告的作者还包括来自OpenAI、斯坦福大学、微软、普林斯顿大学等知名机构的研究人员,共有38位作者。从作者的学术背景来看,这个研究团队由自然语言处理、机器学习等领域的专家和博士生组成,主要来自马里兰大学这一NLP研究的重镇,同时也有来自工业界巨头的成员。这样的团队组成应该能够在一定程度上保证报告的学术质量和权威性。
根据报告中的描述,本次Prompt技术全景综述共收录了1,565篇论文。研究团队首先从arXiv、Semantic Scholar和ACL三个数据库中检索出4,797篇相关文献。经过标题去重等初步筛选,剩余4,247篇独特记录。接着,他们检查每篇论文正文中是否出现"prompt"一词,剩余2,352篇。然后,研究人员人工审核了其中1,661篇,排除了316篇;并利用GPT-4辅助审核了另外1,071篇,排除了787篇。最终,共有1,565篇论文被纳入这份Prompt技术综述报告进行定量分析。此外,报告还定性梳理了约200篇关键论文,从中提炼出诸多prompting技术、范式和挑战等重要内容。
我是本文作者修猫,阅读我的文章有一点和别的作者不太一样,那就是:您可能要被迫接受用矛盾的、发展的观点看问题,这或许挑战了您固有的“[确认偏误]”,文章前后矛盾让您感到不适。但,我还是要在这里提醒您:由于Prompt工程是一个相对较新的研究方向,目前学术界对其的研究还处于起步阶段。这份报告虽然涵盖了大量文献,但其观点和结论可能仍有待进一步验证和讨论,不一定能应用于您的AI事业。因此,在充分肯定该报告价值的同时,也请您以开放、审慎的态度来看待其中的一些观点。接下来我按照报告的大致架构给大家汇报一下我的理解。
使用自然语言前缀(prefix)或提示(prompt)来引导语言模型行为和输出的想法早在GPT-3和ChatGPT时代之前就已出现。2018年,Fan等人首次在生成式AI的语境中使用了prompt。此后,Radford等人在2019年发布的GPT-2中也采用了prompt。
不过,prompt的概念可以追溯到更早的一些相关概念,如控制码(control code)和写作提示(writing prompt)。而"prompt engineering"这一术语则是在2021年前后由Radford等人和Reynolds & McDonell等人提出的。
有趣的是,早期对prompt的定义与当前普遍理解略有不同。比如在2020年的一项工作中,Brown等人给出了这样一个prompt示例:“Translate English to French:llama”,他们认为其中的"llama"才是真正的prompt,而"Translate English to French:“是一个"任务描述”。相比之下,包括本文在内的大多数近期工作都将输入给语言模型的整个字符串视为prompt。
利用prompt来驾驭语言模型完成各类任务的技术范式经历了从概念萌芽到逐步成熟的过程。随着GPT-3等大规模语言模型的问世,prompt engineering迅速成为了自然语言处理领域的研究热点,并衍生出诸多创新方法。
报告首先厘清了Prompt的定义。综合已有的表述,报告提出了一个简洁而全面的定义:Prompt是一段输入给生成式AI模型的文本,用于引导模型产生期望的输出。这个定义点明了Prompt的本质属性和功能定位。
1. 指令(Directive):这是Prompt的灵魂所在。通过精心设计的指令,我们可以向模型传达任务的核心诉求。举个例子,如果我们想要生成一篇关于春天的诗歌,可以使用"请写一首歌颂春天美好的诗"这样的指令。指令的表述要明确、具体,避免歧义。
2. 示例(Example):这是In-Context Learning的关键。通过在Prompt中提供几个精选的示例,我们可以让模型快速理解任务的输入输出格式和要求。比如,在情感分类任务中,我们可以提供几个样本文本及其情感标签(正面/负面),让模型学会判断情感倾向。示例要典型、多样,覆盖任务的主要场景。
3. 格式控制(Output Formatting):这是规范模型输出的利器。通过格式控制标记,我们可以让模型以特定的格式组织输出内容,如生成CSV格式的表格、Markdown格式的文档等。例如,在数据分析任务中,我们可以要求模型以表格形式输出统计结果,每一行对应一个指标,用逗号分隔。
4. 角色指定(Role):这是激发模型创造力的神奇钥匙。通过为模型赋予一个虚拟的身份,我们可以让它以特定的视角、风格生成内容。比如,我们可以让模型扮演一位历史学家,以严谨的笔调评述一段历史事件;也可以让它化身为一名诗人,用优美的语言描绘大自然的风光。
5. 风格指令(Style Instruction):这是调控模型语言风格的调色板。通过风格指令,我们可以要求模型以特定的语气、情感倾向、字数限制等生成内容。例如,我们可以指示模型用严肃的口吻撰写一份商业报告,或是用幽默风趣的笔调创作一个段子。
6. 补充信息(Additional Information):这是为模型提供背景知识的补给站。很多任务需要一定的领域知识作为辅助信息。比如,在撰写一篇医学论文时,我们可以为模型提供一些疾病的定义、治疗方案等背景资料,帮助模型更好地理解和表述主题。
这六大要素就像六种色彩,可以无限调配出缤纷的Prompt。每一种要素都蕴含着独特的功能与价值。对它们的深入理解和灵活运用,是掌握Prompt设计艺术的基础。如果引用链接我将可以把上面6个部分中的每一个部分都插入我的文章链接,但这样就破坏了调查报告的完整性,所以,如果有需要,您可以移步我的公众号试着找到这些文章阅读,接下来让我们继续探索更多Prompt设计的奥秘。
若深耕于生成式AI行业,这58种提示技巧,是你应该知道的,每一种提示方法都有具体的用法,篇幅原因这里仅作简要介绍。
图中最左侧的"Text-Base Prompt. Tech."(基于文本的prompting技术)作为根节点出发,表明这是一个专门针对文本领域的prompting技术分类。接下来,图中将文本领域的prompting技术分为了六大类:
1. Zero-Shot(零样本学习):无需示例即可完成任务的prompting技术。
2. Few-Shot(小样本学习):这是报告中的In-Context Learning (ICL)部分,通过少量示例来引导模型完成任务的prompting技术。这又可分为:
- Example Generation(示例生成):自动生成示例的技术,如SG-ICL。
- Example Ordering(示例排序):研究示例顺序对模型性能影响的技术。
- Exemplar Selection(示例选择):从数据集中选择最佳示例子集的技术,如KNN、Vote-K等。
3. Thought Generation(思维链生成):引导模型生成推理过程的prompting技术。其中最著名的是CoT(Chain-of-Thought),它又有零样本和小样本两种变体。此外还包括一些CoT的扩展方法,如AutoCoT、Faithful CoT等。
4. Ensembling(集成学习):生成并组合多个prompts及其输出的技术,如Self-Consistency、DiVeRSe等。
5. Self-Criticism(自我批评):生成对模型自身输出的评价和反馈的prompting技术,如Self-Refine、Self-Verification等。
6. Decomposition(问题分解):将复杂问题分解为子问题求解的prompting技术,如Least-to-Most、DECOMP等。
下图是研究中涉及Prompt方法20个提示技巧的引文数量统计,很有意义
下图是论文中提及的数据集分布,关于数据集以后专门写篇文章介绍一下
数据集中提及的模型计数分布
这58种方法为文本领域的prompting技术提供了一个全面、系统的分类框架。它不仅涵盖了目前主流的prompting技术,如CoT、Self-Consistency等,也包含了一些新近提出的创新方法,如Analogical Prompting、Faithful CoT等。通过对不同技术的归类和组织,这一框架有助于我们更好地理解prompting技术的全貌与发展脉络。我的公众号里有不少关于这张图中谈及的Prompt技术的详细文章,以后还会继续,这里不再赘述。
同时值得注意的是,随着新技术的不断涌现,这一分类框架本身也在不断扩展和完善。例如,最新提出的DSPy方法和昨天介绍的TextGrad都是基于PyTorch原理构建的程序类Prompt框架,是不是可以再添加一个新的类别?有意思的是,调查报告后面也用DSPy和一位专家级人类提示工程师连续20小时写出的提示在识别Suicide风险信号的研究上做了比较,DSPy的性能明显超越人类20小时手写Prompt的努力。
Prompt工程,正经历着从单一语言、单一模态到多语言、多模态的革命性跨越。语言模型已不再局限于英语这一方天地,而是开始涉猎汉语、西语、阿语等多种语言。与此同时,语音、图像、视频等非文本信息也被编入了Prompt的乐章。多语言、多模态Prompt犹如一曲交响乐,奏响了人机交互的新旋律。报告为我们呈现了这场Prompt革命的恢弘图景。
在多语言方面,跨语言迁移是一大看点。Zero-shot CoT、In-Context Learning等主流技术纷纷推出了面向多语言的升级版。研究人员发现,许多英语Prompt的设计思路可以无缝迁移到其他语言中。这就像不同语言之间的"通用语法",让Prompt技术跨越了语言的藩篱。但多语言Prompt也有其独特的挑战。我们是非英语国家,因此多语言Prompting技术对我们开发出自己的汉语大模型有着重要意义。
1. 语言差异:不同语言在词汇、语法、语用等方面存在差异。比如,英语中的代词"it"在许多语言中都有性别之分。因此,我们需要根据目标语言的特点,对Prompt进行本地化调整,以确保其自然、得体。
2. 语料缺乏:对于许多低资源语言而言,高质量的标注数据十分稀缺。这给Few-shot、CoT等依赖示例的技术带来了挑战。因此,迁移学习、数据增强等技术在多语言Prompt中显得尤为重要。通过借鉴高资源语言的数据和模型,我们可以实现"弯道超车",快速构建起低资源语言的Prompt能力。
3. 文化差异:语言不仅是信息的载体,也是文化的结晶。不同语言背后,往往蕴藏着不同的文化理念和价值取向。因此,多语言Prompt需要考虑文化适配性。通过融入文化背景知识,我们可以让Prompt更加贴近目标语言用户的认知习惯和交互期待。
作者将多语言prompting技术分为五大类:
1.Translation 3.1:图中进一步展开了几种翻译辅助的prompting方法:
1). External MT Systems 3.1:利用外部的机器翻译系统将非英语输入翻译为英语再进行prompting。
2). Standard LLMs 3.1:利用语言模型自身的翻译能力完成非英语到英语的转换。
3). Multilingual LLMs 3.1:直接利用多语言语言模型完成端到端的非英语prompting。
Chain-of-Thought 3.1.1:将Chain-of-Thought prompting扩展到多语言场景,代表技术有XLT(Cross-Lingual Thought)和CLSP(Cross-Lingual Self Consistent Prompting)。
2. In-Context Learning 3.1.2:将In-Context Learning应用于多语言任务,代表技术有X-InSTA(Cross-lingual Instance Alignment)和In-CLT(Cross-lingual Transfer)。
3. In-Context Ex. Selection 3.1.3:探讨在多语言ICL中如何选择示例,关键因素包括示例与目标样本的相似性(Semantically-Aligned/Distant)以及人工参与度(Human-in-the-Loop)等。代表技术有PARC(Prompts Augmented by Retrieval Cross-lingually)。
4.Prompt Language 3.1.4:讨论了Prompt Template的语言选择问题,即是应该使用英语还是目标任务的语言(Task Language)。这需要权衡任务、语言、模型等多种因素。
5. Translation 3.1.5:利用机器翻译来辅助构建多语言prompts,可以在prompt级别(Translate First Prompting)或词汇级别(Chain-of-Dictionary)进行。代表技术有CoD(Chain-of-Dictionary)、DiPMT(Dictionary-based Prompting for MT)等。
此外,Translation 3.1.5.1还包括一些注重人机交互的方法,如ICP(Interactive-Chain-Prompting)和Iterative Prompting,它们通过人工反馈来指导prompt的翻译和优化。
研究者从多个角度系统梳理了相关的prompting技术。其中既有主流技术如CoT、ICL在多语言任务上的拓展,也有针对多语言特点的专门方法,如翻译增强、示例选择等。此外,图中还强调了人机交互和语言选择等问题,体现了多语言prompting的复杂性和多样性。这一框架为我们理解和把握多语言prompting技术提供了重要参考。同时,面对多语言prompting的诸多挑战,如低资源语言的适配、语言间差异的桥接等,这一框架也提出了可能的技术方向。
研究者将多模态prompting技术分为四大类:
1. Image 3.2.1:图像领域的prompting技术,包括图像生成、编辑、分类等任务。
2. Video 3.2.3:视频领域的prompting技术,如视频生成(Video Gen. 3.2.3.1)等。
3. 3D Prompting 3.2.5:三维领域的prompting技术,如三维物体合成、三维场景生成等。
4. Segmentation Prompting 3.2.4:语义分割领域的prompting技术。
在多模态方面,Prompt正成为连接不同感官信息的纽带。以往,语言、视觉、听觉等信息往往各自为政,很少交叉融合。而多模态Prompt打破了这种壁垒,让文字与图像、声音相互映衬、交相辉映。研究者聚焦多模态场景,从图像、视频、三维、分割等不同任务角度梳理了相关的prompting技术。其中一些技术如Multi-modal CoT、ICL等是从纯文本任务迁移而来,体现了不同模态间的共性;而另一些技术如Negative Prompt、Video Generation等则针对特定模态的特点进行了专门设计,体现了不同模态的个性。可以说,这一框架既展现了多模态prompting技术的多样性,也揭示了其内在的一致性。
此外,值得注意的是,与纯文本prompting相比,多模态prompting还面临着一些独特的挑战,如视觉-语言对齐、跨模态推理等。这需要研究者在算法、模型、数据等层面进行更多的创新。图中列出的一系列方法,如MM-CoT、Image-as-Text Prompt等,正是在这些方向上的有益探索。
多语言、多模态Prompt代表了Prompt工程的崭新前沿。但它们不是简单的"拼盘",而是一场深度融合的革命。通过将不同语言、不同模态的信息编织在一起,Prompt正在构建一个更加立体、更加贴近人类认知的交互空间。这场革命不仅让人工智能走向了更广阔的世界,也让世界各个角落的用户走近了人工智能。
当Prompt遇见智能体,一场人机协同的革命正在兴起。传统的人工智能往往局限于狭隘的任务范围,难以应对复杂、多变的现实世界。而Prompt驱动的智能体,正在打破这一桎梏,让人工智能走向更加开放、灵活的应用场景。通过Prompt,我们可以赋予智能体知识、技能和策略,让其成为懂行的助手、善解人意的伙伴。研究者将智能体技术分为两大类:
1. 基于工具使用的智能体(Tool Use Agents):这类智能体的特点是能够使用外部工具(如计算器、代码解释器等符号化工具,或其他神经网络模型)来辅助任务完成。代表性的技术和系统有:
- MKRL(Modular Reasoning,Knowledge, and Language)系统:包含一个LLM路由器,可访问多个工具
- PAL(Program-aided Language Model):直接将问题翻译为代码并执行
- ToRA(Tool-Integrated Reasoning Agent):交替使用代码生成和推理步骤求解问题
- CRITIC(Self-Correcting with Tool-Interactive Critiquing):生成初始回答后使用工具批判并修正
- TaskWeaver:类似PAL,将用户请求转化为代码,但支持用户自定义插件
2. 基于观察的智能体(Observation-Based Agents):这类智能体通过与玩具环境交互并观察来解决问题。代表性技术包括:
- ReAct(Reasoning and Acting):在给定待解决问题时,循环生成思考、采取行动并观察结果的过程
- Reflexion:在ReAct基础上增加了内省反思层
- Retrieval Aug. Generation:通过从外部知识库检索相关信息来增强生成能力,如DSP、IRCoT等
- Verily-and-Edit:通过递归验证和编辑改进结果
研究者系统梳理了两大类智能体及其代表性技术,为读者提供了清晰的技术概览和内在联系。同时这些创新的智能体技术有望克服当前LLM在计算推理、事实性等方面的局限,实现更强大的通用人工智能。
研究者提到的评估技术,主要分为四大类:提示技术、输出格式、评估框架和其他方法。
1. 提示技术(Prompting Techniques, 4.2.1)
这部分介绍了几种常用的提示技术,包括:
- 链式思考(Chain-of-Thought, 4.2.1):通过生成推理链来提高问答和任务解决能力。
- 上下文学习(In-Context Learning, 4.2.1):通过在提示中提供示例来引导模型执行特定任务。
- 模型生成指南(Model Gen. Guidelines, 4.2.1):使用模型生成详细的评估指南,以提高评估的一致性。
- 基于角色的评估(Role-Based Evaluation, 4.2.1):通过为不同角色设置相同的评估指令,生成多样化的评估结果,还可用于多智能体辩论场景。
2. 输出格式(Output Format 4.2.2)
本节讨论了几种常见的评估输出格式:
- 二值评分(Binary Score, 4.2.2):输出结果是否正确的简单二分类。
- 线性量表(Linear Scale, 4.2.2):使用线性数值尺度(如1-5分)来评估输出质量。
- Likert量表(Likert Scale, 4.2.2):使用Likert量表收集主观评分,常用于人工评估。
- 样式(Styling, 4.2.2):使用特定的格式如XML、JSON等来格式化模型输出,可提高评估准确性。
3. 评估框架(Prompting Frameworks, 4.2.3)
本节介绍了几个代表性的评估框架:
- LM-EVAL(4.2.3):使用单一提示,包含评估变量模式、指令和待评估内容。
- G-EVAL(4.2.3):在LM-EVAL基础上加入AutoCoT步骤,根据评估指令生成详细步骤并插入最终提示。
- ChatEval(4.2.3):一个开源的聊天机器人评估平台。
4. 其他方法(Other Methodologies, 4.2.4)
本节讨论了一些其他的评估方法和考虑因素:
- 批量提示(Batch Prompting, 4.2.4):批量生成多个评估提示,以降低随机性影响,但可能降低性能。
- 成对评估(Pairwise Evaluation, 4.2.4):成对比较不同模型或配置的输出,输入顺序会显著影响结果。
- 隐式评分:通过模型预测置信度、生成似然性、解释错误数等间接推断质量,而非直接打分。
- 代理任务评估:利用一些代理任务如蕴含等来间接评估特定指标,如事实一致性。
这张图全面系统地总结了评估生成式AI系统的各种技术,覆盖了提示方法、输出设计、评估框架和抽样策略等关键考虑因素。这为构建更鲁棒、全面、可解释的评估器提供了重要参考,有助于科学评判和改进AI系统性能,推动其在实践中的应用。
07
Prompt自动化
调查报告还介绍了关于Prompt攻防方面的研究以及Benchmark(基准)(在此不做介绍)
研究者用一个心理健康领域SCS的一项Suicide风险研究,对20小时手写Prompt与自动化方法作了比较,研究结果显示了应用自动化工具DSPy在提高Suicide风险评估效率和准确性方面的潜力。结果上文已介绍。最后在讨论部分研究者强调了提示工程的重要性和复杂性,以及自动化方法在其中的作用。以下是对讨论部分的总结和概括:
1. 提示工程的复杂性:提示工程是一个不同于传统编程的过程,需要对大型语言模型(LLM)进行细致的引导,而不是直接编程。这个过程对模型的特定细节非常敏感,而这些细节的重要性往往并不明显。
2. 数据深入分析的重要性:在提示工程中,深入分析数据至关重要。这包括生成可能的解释来理解LLM的“推理”过程,以及为什么会导致错误的响应。
3. 跨领域合作的必要性:有效的提示工程需要提示工程师和领域专家之间的密切合作。提示工程师了解如何诱导LLM产生期望的行为,而领域专家则理解这些行为的具体内容和原因。
4. 自动化方法的潜力:自动化方法在提示空间的探索中显示出巨大的潜力,但结合人类工程师的参与和修订,可以取得更成功的结果。
5. 未来研究的期望:作者希望这项研究能够推动对提示工程方法的更深入和更稳健的考察,以进一步提高LLM的性能和应用效果。
讨论部分突出了提示工程的多维度挑战,并提出了自动化与人类专业知识相结合的解决策略,以期实现更高效和更精确的LLM应用。
Prompt已经大大降低人工智能开发的门槛,让每个人都能轻松驾驭AI的力量。传统的人工智能开发需要编程、调参等专业技能,而Prompt工程只需自然语言指令,就能实现复杂的功能。"Prompt即编程"的理念,将彻底改变人机交互的方式。未来,每个人都可以用Prompt定制专属的AI助手,为生活、工作、学习赋能。程序员也将从繁琐的coding中解放出来,以更高层次的Prompt组织调度AI的能力。
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
保证100%免费
】Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。