编者按:欢迎阅读“科研上新”栏目!“科研上新”汇聚了微软亚洲研究院最新的创新成果与科研动态。在这里,你可以快速浏览研究院的亮点资讯,保持对前沿领域的敏锐嗅觉,同时也能找到先进实用的开源工具。
提示词的好坏决定了大语言模型产出内容质量的高低,而针对提示词设计和优化的研究能够提高人类与大语言模型之间的沟通体验。让我们通过今天“提示词专场”介绍的这些最新科研成果,与你一同探索更加智能化的人机交互的未来。
本期内容速览
01. 连接大语言模型与进化算法,打造高效的提示词优化器
02. 具有结构化语言知识的分层视觉语言模型提示学习
03. LLMLingua系列研究:通过提示压缩重排优化人与大语言模型的沟通
04. 基于大语言模型的工业控制优化
连接大语言模型与进化算法,打造高效的提示词优化器
论文链接:https://www.microsoft.com/en-us/research/publication/connecting-large-language-models-with-evolutionary-algorithms-yields-powerful-prompt-optimizers/
一个出色的提示词(prompt)能够有效地引导模型更准确地理解输入内容,进而生成更相关、更具价值的输出结果。然而,设计恰当的提示词往往需要耗费大量人力资源。因此,微软亚洲研究院的研究员们将大型语言模型卓越的语言处理能力与进化算法卓越的优化能力相结合,提出了一种自动化的提示词优化框架——EvoPrompt。
传统的进化算法是将解空间映射为基因序列集合,并通过对基因序列进行交叉和变异操作生成新的可行解,进而筛选出最优解。然而,传统的交叉变异操作常常忽略了基因片段之间的关联性。在自然语言处理中,提示词需要具备连贯性和可读性。所以研究员们采用了大语言模型来执行交叉和变异操作,以考虑序列中的上下文关系,从而生成可读性高的提示词。
EvoPrompt 是一种通用框架,可以通过设计不同的交叉变异策略与多种进化算法相结合。图1展示了将 EvoPrompt 应用于遗传算法的实例化过程中,大语言模型是如何执行交叉变异操作以生成新的提示词的示例。
Evoprompt 在多个自然语言理解和生成任务中获得了出色的提示词。表1展示了 EvoPrompt 在主题分类任务中获得的最佳提示词,其提示大模型决策前“仔细审查”待分类的文章,提高了准确率。表2展示了 EvoPrompt 在文本简化任务中所获得的最佳提示词,其在提示词中加入了对任务目的的描述,进一步提升了任务效果。
除了进化算法之外,许多传统优化算法在优化过程中也需要生成可行解。如模拟退火算法和粒子群优化算法,它们根据特定规则生成多个可行解并进行筛选。同时,还有一些算法(如回溯算法和动态规划算法)采用逐步生成最优解的策略。然而,在生成解的过程中,这些传统优化算法往往难以充分考虑序列中的上下文关系。但实际上,许多解空间确实需要考虑前后文关系,例如自然语言处理、基因序列分析和时间序列预测等领域。因此,在大模型与传统优化算法的融合中,仍存在许多有待挖掘的潜在结合点。
具有结构化语言知识的分层视觉语言模型提示学习
论文链接:https://www.microsoft.com/en-us/research/publication/learning-hierarchical-prompt-with-structured-linguistic-knowledge-for-vision-language-models/
项目链接:https://github.com/Vill-Lab/2024-AAAI-HPT
大语言模型(LLMs)的出现,使得利用视觉-语言模型(VLMs)进行少样本图像分类的方法探索了使用与类别相关的描述作为输入以增强提示效果的可能性。然而,传统的描述在有效表达与特定类别相关的实体或属性之间的相互关系方面存在不足。
研究员们观察发现,结构化的语言知识对于提示微调至关重要。具体而言,非结构化的类别描述包括定义该类别的关键实体和属性,而这些实体、属性以及它们之间的关联可以表示为一个图以实现语义理解。这种基于结构图的表示方式提供了一种更具组织性的信息表达方式,从而增强了模型对于类别语义知识的理解能力,有助于发现在原始描述中不易抽取的隐含关联。
具体来说,研究员们提出了分层提示微调(HPT)方法,将 LLMs 中的结构化语言知识和传统语言知识结合在一起,以分层学习提示的方式提高提示效果。为了模拟复杂的结构化信息,模型会学习具有不同语义层次的分层提示,具体包含了代表实体和属性的低层次提示、代表描述中类别相关信息的高层次提示以及代表跨类别共享的类别无关知识的全局提示。
为了捕捉由 LLMs 生成的实体和属性之间的对应关系,模型引入了关系引导注意模块,将可学习的基于注意的矩阵集成到文本编码器中。此外,为了处理语言中更复杂、更长期的关系,研究员们采用了跨层级自注意力来模拟不同提示之间的关系,有效克服了仅依赖低层次信息建模所带来的局限性,并能更全面地理解类别相关的语义。
实验结果表明,HPT 在不同的泛化任务中(基类到新类泛化、域泛化、跨数据集泛化)均显示了优于目前最先进方法的性能,而且与结构化相关的低层次提示对性能提升也起到了显著影响。这表明在描述中明确建模结构关系有利于提供与未见类别或未见域相关联的额外信息,从而辅助其他层次的提示整合整体语义以处理更复杂的关系并提升识别效果。
未来,研究员们将持续对相关问题进行更加深入的探索,并希望这项工作能让更多人关注自然语言中的结构化知识对提示微调的作用,从而将其应用到分类以外的各种任务中。
LLMLingua系列研究:通过提示压缩重排优化人与大语言模型的沟通
LLMLingua 论文链接:https://www.microsoft.com/en-us/research/publication/llmlingua-compressing-prompts-for-accelerated-inference-of-large-language-models/
LongLLMLingua 论文链接:https://www.microsoft.com/en-us/research/publication/longllmlingua-accelerating-and-enhancing-llms-in-long-context-scenarios-via-prompt-compression/
项目链接:https://llmlingua.com/
代码链接:https://github.com/microsoft/LLMLingua
Demo链接:https://huggingface.co/spaces/microsoft/LLMLingua
提示(Prompt)是人类与大语言模型(LLMs)之间沟通的桥梁,用户通过自然语言提示来向大语言模型表达需求,引导模型产生定制化的回答。然而,随着提示技巧的极大丰富,提示逐渐变得越发详尽和复杂,人与大模型之间的沟通也变得不再顺畅。为了解决这一问题,微软亚洲研究院的研究员们提出了名为 LLMLingua 与 LongLLMLingua 的系统,旨在通过调整提示来改善人类与 LLMs 之间的交流。
处理长而复杂的提示面临多重挑战。首先是高昂的成本:随着提示长度的增加,输入处理的计算复杂性成二次方增长,这使得长提示更加消耗资源。其次,提示中的冗余信息会降低 LLMs 的性能。用户在表达自己的需求时,往往会包含不必要的内容,如多余的例子和细节,这些内容容易分散 LLMs 的注意力,导致输出质量下降。最后,LLMs 还显示出位置偏差,更容易忽略放置在提示某些部分的信息。
受信息论和通信系统的启发,LLMLingua 采用了两个组件来克服这些挑战:压缩(compression)与重排(reorganization)。压缩是指从提示中去除多余和不相关的信息,使内容浓缩至其精髓。重排则是将提示内容根据相关性重新排列,以抵消 LLMs 的位置偏差,确保关键信息得到更多的关注。
在 LLMLingua 的架构中,研究员们先根据段落与问题或任务的相关性对提示中的段落进行粗粒度的重排和压缩比分配。随后再根据由相关性分配的压缩比,对每个段落进行迭代式的基于细粒度相关性的字符级压缩。
粗粒度和细粒度的相关性都是基于字符与给定上下文的困惑度(perplexity)来进行计算的。越低的困惑度在自然语言处理中预示着越好的预测效果。在 LLMLingua 中,通过计算提示中每个标记的困惑度,可以识别出与问题或任务最相关的那部分信息。
LLMLingua 系列研究能够显著提高“多文档问答”等任务的效果。例如 LongLLMLingua 可以有效缓解“中间丢失”(lost in the middle)问题,使用四分之一的提示字符,反而能获得高达21.4%的性能提升。
研究员们还进行了案例研究,发现使用 GPT-4 模型可以几乎完美地将压缩版本的提示恢复成原始提示。
在数学和推理任务中,LLMLingua/LongLLMLingua 也有亮眼的表现,更多细节请参考论文与项目主页。LLMLingua 的代码现已开源,未来研究员们也计划持续迭代,例如增加更灵活的接口,以支持用户轻松调用更多的模型进行压缩,从而适应更多样化的场景,欢迎关注!
基于大语言模型的工业控制优化
论文链接:https://www.microsoft.com/en-us/research/publication/pre-trained-large-language-models-for-industrial-control/
强化学习(RL)作为最受欢迎的决策方法之一,在实际应用中往往面临着样本效率低下和训练成本高昂等问题。对于工业场景中的控制任务,如库存管理、量化交易和 HVAC 控制等,开发低成本且具备更高泛化性和鲁棒性的控制器尤为重要。
鉴于大语言模型(LLMs)在各个领域取得的成果,微软亚洲研究院的研究员们尝试通过利用 LLMs 来解决这些挑战。如 GPT-4 和 Bard 等大语言模型经过大规模和多样化数据集的预训练,可以为各种工业控制任务提供丰富的先验知识。而且 LLMs 在不同应用中也展示出了一定的逻辑推理能力。这些能力在工业控制中不可或缺,但传统的控制方法却往往难以达成。
目前存在三类利用 LLMs 进行的决策方法:(1)针对特定下游任务对 LLMs 进行微调;(2)与可训练组件相结合;(3)直接使用预训练的 LLMs,通过提示词引导 LLMs 进行决策。然而,这些方法都存在某些方面的缺点,如微调过程成本高、设计复杂、数据需求大或无法持续改进等。
与以往在机器人操控、家庭助手或游戏环境等领域的研究不同,本研究专注于工业控制任务,具体流程如图所示。值得一提的是,微软亚洲研究院的研究员们提出的方法无需微调 LLMs,而是更针对性地优化提示词中的示例部分,通过使用少量示例(demonstrations)作为示范引导上下文学习(in-context learning),就能够充分发挥 LLMs 自身的能力。同时,研究员们还设计了一个独特的机制来动态选择专家示范和历史交互中的示例,并动态生成提示词以更好地适配当前的控制场景,最后由 LLMs 给出控制指令并通过环境来执行以完成一个完整的控制流程。通过示例的选择和相应的提示词优化来引导 LLMs 了解所控制的系统,并给出更符合当时情景的控制。
研究员们在公开的测试环境中测试了该方法的效果,对比了包括 PPO 在内的多种基线算法。大量的实验结果表明,在不需要训练和少量专家样本的情况下,相较于基线方法,该方法能够取得更好的性能。同时,在数据中存在噪声的情况下,基于 LLMs 的方法能够获取更好的鲁棒性。更重要的是,研究员们发现基于 LLMs 的控制策略相比基线算法有更强的泛化性,在一个全新的场景下也能够取得较好的效果。