24年4月东北大学的论文“Efficient Prompting Methods for Large Language Models: A Survey”。
提示已成为将大语言模型 (LLM) 应用于特定自然语言处理任务的主流范例。虽然这种方法为 LLM 的上下文学习ICL打开了大门,但它带来了模型推理的额外计算负担和手工设计提示的人力,特别是使用冗长而复杂的提示来指导和控制 LLM 的行为。本文对这些方法进行全面的概述。从高层次上讲,高效提示方法大致可分为两种方法:高效计算的提示和高效设计的提示。前者涉及各种压缩提示的方式,而后者采用自动化的提示优化技术。
大语言模型 (LLM) 在各种自然语言处理 (NLP) 任务上取得了显著的进步,例如聊天、机器翻译和摘要。提示是人机交互的重要媒介,可以明确地向 LLM 传递清晰的任务描述,然后 LLM 通过类比学习(analogical learning)生成用户想要的响应。提示的内容可以在不同的上下文中有所不同,具体包含指令、问题、具有特定输出格式的多个演示,以及复杂推理过程和角色扮演命令等其他要求。一般提示是指用户对 LLM 的输入。
然而,随着 LLM 的上下文学习 (ICL) (Dong,2022) 能力变得越来越强大,针对不同特定任务设计的提示趋于多样化和细节化。超长的自然语言提示逐渐引发了两个问题:1)对于 LLM 本身而言,上下文窗口有限,影响了其处理过长上下文的潜力;2)对于 LLM 用户而言,要么需要大量计算资源来训练开源模型,要么需要高昂的成本来调用闭源模型接口。从这个角度来看,无论在学术研究还是商业部署场景中,使用 LLM 的成本都相当巨大。性能优异的 LLM 不能得到广泛应用显然是一个遗憾。虽然有许多相关的模型结构改进,例如高效的注意机制可以有效地降低推理成本,但是需要更多地关注高效的提示方法,以节省不必要的资本开销。
从财力和人力的角度考虑,可以从三个方面提高效率:1)加速推理;2)降低内存开销;3)自动化的提示优化。前两个目标可以通过提示压缩实现,第三个目标可以通过基于提示工程而非人工设计的自动化提示优化实现。
NLP 的训练范式经历了两次关键转变(Liu et al., 2023b),从“全监督学习”发展到“预训练和微调”,最终发展到“预训练、提示和预测”(如图所示)。值得注意的是,GPT-3(Brown et al., 2020)在引入硬提示方面发挥了开创性作用,使人类能够使用自然语言与语言模型交互。这一突破得益于大规模参数,这些参数使 GPT-3 能够深入理解自然语言,从而使其能够利用复杂的硬提示进行少样本学习,而无需进行微调。
本质上,提示的主要目标是实现有效的少样本学习,取代全参数微调的不必要资源消耗。提示表达可以分为两大类,如图所示:离散的自然语言提示(称为硬提示)和连续可学习的向量(称为软提示)。
鉴于可学习向量可以与神经网络参数一起更新,软提示显然更有利于 LLM 有效理解提示。必须注意的是,这里软提示只是 LLM 硬提示的向量表示,而不是从头开发的抽象向量。一些努力涉及将较长的硬提示压缩为明显较短的软提示。
最初,硬提示包括简洁的任务说明,类似于为 Cloze 任务设计的模板。然而,随着 LLM 的理解能力不断提高,硬提示已经发展到包含更广泛的元素,最常见的包括演示和思维链,如图所示。当前 NLP 社区对硬提示的兴趣日益浓厚,甚至还有释放 LLM 全部潜力的教程,这表明人们渴望实现人机模型对齐,从而实现通用人工智能 (AGI)。
提示方法存在的两个挑战是:
- 提示内容过长。提示的长度一般根据具体任务而定,演示越多,表现越好。例如,思维链(CoT)提示大大增强了LLM的逻辑推理能力,导致各种基于CoT的方法出现。像Self-Ask(Press,2022)和Least-to-Most(Zhou,2022a)帮助LLM将复杂问题分解为更简单的子问题,以便逐步回答。Wang(2022)抽样了一组多样化的推理路径,Wang(2023b)指导LLM生成正确的PS(规划和解决方案),然后选择最终答案。然而,这种复杂提示的优势,伴随着更高的经济负担以及降低的LLM信息感知能力。
- 艰难的提示设计。由于自然语言的离散性,早期可用的硬提示通常都是手工设计并经过反复试错得到的。手工制作的提示模板严重依赖于经验知识,带有明显的人为主观性。但人类解决问题的手段与神经网络的手段存在差异,即LLM的可解释性还是一个不断探索的课题,目前尚无公认的理论指导。因此LLM的提示设计面临诸多挑战,包括LLM对自然语言提示格式的高敏感性、语义相似提示的性能差距较大、提示复杂度与任务难度的相关性、提示的模型和任务属性等。面对不同的模型、不同的任务,手工设计高质量的提示,比较费时费力。
关于高效提升方法的组织如下图所示:
高效计算的提示
- 知识蒸馏:知识蒸馏(KD)(Hinton et al.,2015)是一种经典的压缩方法,其核心思想是指导轻量级的学生模型“模仿”性能更好、更复杂的老师模型。
- 编码:当前的编码方法使用交叉熵目标对 LM 进行微调,有效地将硬提示的大量信息压缩为一组简洁且模型可访问的向量,从而缓解了与长文本相关的效率问题。
- 滤波:采用文本-到-文本级的压缩,即通过轻量级的语言模型评估提示中不同词汇结构的信息熵,然后最大程度地过滤掉冗余信息,最终简化用户提示。
为了实现提示的高效计算,主要研究提示压缩。它从文本-到-向量级的参数优化演变为文本-到-文本级的无参数优化。根据自然语言信息量,尽可能缩短LLM输入,从而实现以下三个方面的高效:1)将信息表示为向量以降低困惑度并提高任务准确性;2)大大减少内存使用,非常适合涉及预计算、缓存和重用的情形;3)扩大上下文窗口容量并加速长提示的推理,尤其有利于具有广泛上下文的场景。简而言之,提示压缩是未来高效提示LLM的有前途的研究途径。
高效设计的提示
“高效设计的提示”是为了应对提示内容的日益复杂。随着费时费力的手工设计提示方法逐渐淡出历史舞台,基于梯度的提示调优方法不再适用于闭源的LLM,基于提示工程(PE)的自动优化逐渐受到人们的关注。具体来说,“离散”提示优化涉及在给定的搜索空间内寻找最佳的“自然语言”提示,以最大化任务准确率。基于LLM强大的通才能力,自动提示优化取得了令人欣喜的进展,其工作流程大致如图所示。从传统的数学优化和智能的算法优化角度看,其研究分为基于梯度和基于进化的方法。
- 梯度下降是传统优化的核心算法,在神经网络的参数更新过程中,很多目标函数都是从梯度下降算法演化而来的。众所周知,在连续优化空间(即语言模型)中使用梯度下降算法的前提是目标函数可微。然而硬性提示是离散的,这导致优化目标与优化空间存在矛盾。因此,研究人员分别针对开源模型和闭源模型探索了合适的基于梯度优化框架。对于开源模型,可以根据真实的梯度进行微调;而对于闭源模型,只能模仿梯度进行提示。
- 因为黑箱子模型没有明确的优化方向,传统的数学优化算法很难解决这类NP-hard问题。进化算法模拟了自然界中“优胜劣汰”的生物进化过程,是一种通过采样目标函数进行的随机搜索。其实很多研究都是基于进化的思想,本质上就是挖掘搜索空间中样本的多样性,然后通过迭代探索优化方向。
为了避免人工设计提示语耗费大量人力资源,采用了自动化的提示优化方法框架。当前的研究借鉴了传统机器学习中优化算法的思想。主要目标是在自然语言空间中快速搜索最佳提示,从而促进最先进的 LLM。对基于梯度的优化的初步探索已经将轻量级神经网络作为补充优化工具纳入其中。后续方法已经发展到将离散提示语空间转换为连续提示语空间以进行优化,或者扩大离散搜索范围以实现直接优化。
开源的一些提示项目如下表所示:
未来方向
在更高的层次上,希望将高效的提示范式抽象为一个多目标优化问题,总体目标是压缩提示以降低计算复杂度(目标 1)同时优化 LLM 任务准确性(目标 2)。
LLM巨大的潜力还有待挖掘,而高效的提示方式作为人机交互的重要媒介,是实现对齐的关键手段。展望未来,LLM的不可及性已成为不可逆转的局面。因此,可以预见,未来提示的趋势也将围绕硬提示展开。
标签:高效,综述,提示,模型,LLM,自然语言,优化 From: https://blog.csdn.net/yorkhunter/article/details/139226291