专栏名称: 计算机视觉深度学习和自动驾驶
讨论计算机视觉、深度学习和自动驾驶的技术发展和挑战
目录
相关文章推荐
OFweek维科网  ·  净利激增106%!联想追平荣耀 ·  昨天  
半导体行业联盟  ·  芯片首富,火了! ·  4 天前  
OFweek维科网  ·  利润暴涨396%!这一激光厂商连斩巨头订单 ·  4 天前  
OFweek维科网  ·  获赔260万元!OPPO法务出手 ·  3 天前  
51好读  ›  专栏  ›  计算机视觉深度学习和自动驾驶

LLM的系统提示技术

计算机视觉深度学习和自动驾驶  · 公众号  ·  · 2024-06-17 00:19

正文

24年6月来自马里兰大学的论文“The Prompt Report: A Systematic Survey of Prompting Techniques”。


生成式人工智能 (GenAI) 系统正越来越多地应用于工业和研究环境的各个领域。开发人员和最终用户通过使用提示或提示工程与这些系统进行交互。虽然提示是一个广泛且研究程度很高的概念,但由于该领域较新,存在着术语上的矛盾以及对提示构成理解不足。本文汇总提示技术分类并分析其使用情况,建立了对提示的结构化理解。提供包含 33 个词汇术语的综合词汇表、58 种纯文本提示技术的分类法和 40 种其他模态技术。还对自然语言前缀提示的全部文献进行元分析。


如图所示:提示领域内的类别是相互关联的。讨论 7 个核心类别。


提示 是生成式AI模型的输入,用于指导其输出(Meskó, 2023; White et al., 2023; Heston & Khun, 2023; Hadi et al., 2023; Brown et al., 2020)。提示可以由文本、图像、声音或其他媒体组成。提示的一些示例包括:“为一家会计事务所的营销活动写一个三段落电子邮件”,一张桌子的照片,附有文字“描述桌子上的所有东西”,或者一段在线会议的录音,指示“总结这个”。

提示模板 。提示通常通过提示模板构建(Shin et al., 2020b)。提示模板是一个函数,其中包含一个或多个变量,这些变量被一些媒体(通常是文本)替换创建一个提示。然后,这个提示可以被视为模板的一个实例。

提示的组成部分。 最常用的组成部分,包括:

  • 指令(directive)。这是提示的核心意图,有时简单地称为“意图”。指令也可以是隐含的。

  • 示例(example)。也称为范例或样本,作为演示指导GenAI完成任务。

  • 输出格式。通常希望GenAI以某种特定格式输出信息,例如CSV或Markdown格式(Xia et al., 2024)。

  • 风格指令。是一种输出格式化,用于在样式上而不是结构上修改输出。

  • 角色,也称为人格(Schmidt et al., 2023; Wang et al., 2023l),可以改善写作和文本风格。

  • 附加信息。附加信息有时被称为“上下文”。

提示论文中的术语正在快速发展。目前,存在许多未被充分理解的定义(例如提示、提示工程)和相互冲突的定义(例如角色提示与人格提示)。缺乏一致的词汇表妨碍了社区清晰描述所使用的各种提示技术的能力。如图所示是本文的提示术语:提示、提示模版、提示工程和微调等。


提示 。提示是向生成式人工智能提供提示,从而生成响应的过程。例如,发送一段文本或上传一张图片的操作即构成提示。

提示链 。提示链(活动:提示链)由两个或多个提示模板依次使用所组成。第一个提示模板生成的提示输出用于参数化第二个模板,依此类推,直到所有模板用完(Wu et al., 2022)。

提示技术 。提示技术描述如何构建提示、提示链或多个提示动态序列。提示技术可能包括条件或分支逻辑、并行性或跨多个提示的其他架构选项。

提示工程 。提示工程修改或更改所使用的提示技术来开发提示的迭代过程。


如图所示:提示工程流程包括三个重复步骤:1) 对数据集进行推理 2) 评估性能和 3) 修改提示模板。提取器用于从 LLM 输出中提取最终响应(例如“这个短语是积极的”→“积极的”)。


提示工程技术 。提示工程技术是一种迭代提示改进提示的策略。

范例 。范例是任务完成的示例,在提示中展示给模型(Brown et al., 2020)。


如图是本文数据采取的基于文本的提示技术:上下文学习(ICL)、零样本、少样本、思维生成(思维链)、集成、自我批评和分解。


存在许多基于文本的提示技术。 然而,只有一小部分在研究和工业中被广泛使用。

用于自动优化提示的提示工程技术包括以下:

  • 元提示是提示 LLM 生成或改进提示或提示模板的过程(Reynolds & McDonell,2021;Zhou,2022b;Ye,2023)。

  • AutoPrompt(Shin,2020b)使用冻结的 LLM 以及包含一些“触发token”的提示模板,其值在训练时通过反向传播更新。这是软提示的一个版本。

  • 自动提示工程师 (APE)(Zhou,2022b)使用一组示例来生成零样本指令提示。它生成多个可能的提示,对它们进行评分,然后创建最佳提示的变型(例如通过使用提示释义)。它会重复这个过程,直到达到一些期望值。

  • 无梯度指令提示搜索 (GrIPS) (Prasad,2023) 与 APE 类似,但使用一组更复杂的操作,包括删除、添加、交换和释义,以创建起始提示的变型。

  • 文本梯度的提示优化 (ProTeGi) (Pryzant,2023) 是一种独特的提示工程方法,可通过多步过程改进提示模板。首先,它将一批输入传递通过模板,然后将输出、基本事实和提示传递到另一个批评原提示的提示中。它根据这些批评生成新提示,然后使用强盗算法 (Gabillon,2011) 选择一个。ProTeGi 展示了对 APE 和 GRIPS 等方法的改进。

  • RLPrompt (Deng,2022) 使用冻结的 LLM 并添加未冻结的模块。它使用此 LLM 生成提示模板,在数据集上对模板进行评分,并用 Soft Q-Learning 更新未冻结的模块(Guo,2022)。有趣的是,该方法经常选择语法混乱的文本作为最佳提示模板。

  • 对话-包含的基于-策略-梯度离散提示优化 (DP2O)(Li ,2023b)可能是最复杂的提示工程技术,涉及强化学习、自定义提示评分函数和 LLM 对话以构建提示。

答案工程 是一个迭代过程,即开发或选择从 LLM 输出中提取精确答案的算法。答案工程有三个设计决策,即答案空间的选择、答案形状和答案提取器,如图所示。(Liu 2023b)将前两个定义为答案工程的必要组成部分,这里附加了第三个。答案工程不同于提示工程,但关系极为密切;这些过程通常是同时进行的。


目前,使用英语文本提示 GenAI 是主要的交互方法。 使用其他语言或通过不同模态进行提示通常需要特殊技术才能实现相当的性能。

最先进的 GenAI 通常主要使用英语数据集进行训练,导致除英语以外的其他语言(尤其是资源匮乏的语言)的输出质量存在明显差异(Bang,2023;Jiao,2023;Hendy,2023;Shi,2022)。因此,出现了各种多语言提示技术,试图提高非英语环境中的模型性能。包括COT,ICL,上下文范例选择,提示模版语言选择和机器翻译的提示。如图是多语言提示技术类别:


随着 GenAI 模型的发展超越基于文本的领域,新的提示技术应运而生。 这些多模态提示技术通常不仅仅是基于文本提示技术的应用,而是由不同模态实现的全新想法。 如图所示是多模态提示技术类别: 图像、语音、分割、视频和3D等。


添加对外部工具(智体)的访问以及复杂的评估算法来判断 LLM 输出的有效性。

随着 LLM 能力的快速提升(Zhang,2023c),公司(Adept,2023)和研究人员(Karpas,2022)探索了如何让它们利用外部系统。这是由于 LLM 在数学计算、推理和事实性等领域的缺陷所致。这推动了提示技术的重大创新;这些系统通常由提示和提示链驱动,这些提示和提示链经过精心设计,允许类似智体的行为。


工具使用是 GenAI 智体的一个关键组件。符号(例如计算器、代码解释器)和神经(例如单独的 LLM)外部工具都是常用的。工具有时可能被称为专家(Karpas,2022)或模块。


编写和执行代码是智体的一个重要能力。比如TaskWeaver(Qiao,2023),将用户请求转换为代码,但也可以使用用户定义的插件。

一些智体被设计为通过与玩具环境交互来解决问题(Brockman,2016;Towers,2023)。这些基于观察的智体会接收插入到其提示中的观察结果,比如ReAct。


在 GenAI 智体的背景下,RAG 是一种从外部源检索信息并将其插入提示的范例。这可以提高知识密集型任务的性能(Lewis,2021)。当检索本身用作外部工具时,RAG 系统被视为智体。比如Verify-and-Edit (Zhao et al., 2023a) 通过生成多个思维链,选择一些进行编辑,提高自洽性。


总结一下,提到的智体技术分类如下:







请到「今天看啥」查看全文