备注好友: 方向-学校/公司-姓名/昵称
【AIGC 先锋科技】交流群
尽管大型语言模型(LLMs)取得了显著的成功,但它们在将输出与用户指令对齐方面仍表现出有限的 capability。
在本工作中,作者提出了一种简单而有效的方法,作者称之为 GUIDE,该方法可以通过机制性地增加指令 Token 上的注意力分数来实现这一操作。
为了支持这一操作,作者提出了一种新颖的度量标准,即 _Influence_,它突出了用户指令如何通过 Transformer 层传播并影响 LLM 输出。
作者的结果表明,GUIDE 将后续指令的准确性提高了 29.4% 到 60.4%,超过了自然 Prompt 的替代方案和监督微调(Supervised Fine-Tuning)在 1M 个 Token 上的效果。
1 Introduction
大型语言模型(LLMs)是目前大多数自然语言处理(NLP)任务的最新技术。尽管取得了成功,但预训练的LLM有时难以准确理解不同用户指令,可能生成与人类预期不符的输出。此外,LLM可能产生偏见或虚构的事实,这可能限制其实际应用价值。
过去的研究[23, 13]表明,随着上下文长度的增加, Transformer [23]与指令对齐的可能性较低[13]。在这种情况下,模型通常会生成无意义的文本或重复 Prompt 中的部分内容,而不是满足用户的需求。
一种常见的解决方案是监督微调(SFT)和强化学习(RL)。然而,这些方法是资源密集的,耗时的,并且对特定数据和任务敏感。理想情况下,更有效的方法应该是实施后不需要额外训练的方法。
因此,由于其低成本和广泛可用性,快速调整工程广泛用于将LLM的输出与用户偏好对齐。然而,这种方法并不总是产生一致的结果,而且可能非常不稳定,正如在[20]中展示的那样。
在这项工作中,作者提出了GUIDE(G uided U nderstanding with I nstruction-D riven E nhancements),一种新颖且系统的技术,可让用户在 Prompt 中强调关键指令。
作者的实现是开源的,并设计为无缝集成。作者的实验表明,GUIDE显著增加了模型遵循关键指令和检索用户指定的重要信息的可能性,超越了自然 Prompt 技术。
虽然GUIDE不需要额外的训练,但它确实需要仔细选择如何增加注意力权重。在作者的研究中,作者为某些任务提出了默认值,但也认识到需要对这些调整进行量化。为了应对这个问题,作者引入了一种名为_Influence_的新指标。这个指标衡量了文本中特定 Token 与指令 Token 之间的关系的重要性,作者使用它来确定合理的通知权重增加值。
在高层次上,Influence 的计算是通过将注意力图层的贡献传播到每一层,并按相应 Token Embedding 的范数进行加权。作者证明了这个指标与模型遵循特定指令的概率相关。
2 Related work
对齐和后续指令 对齐技术旨在将LLM的输出与人类偏好进行对齐。通常,作者指的是具有帮助性、无害性和诚实性。模型微调通常使用强化学习与人类反馈(RLHF)[20]、强化学习与人工智能反馈(RLAIF)[14]或直接偏好优化(DPO)[23]将LLM的输出与人类意图对齐。
然而,这些方法存在三个主要限制:它们需要专门的 dataset,通常需要人类标注,从而降低效率;由于需要额外的训练,涉及大量的计算复杂性和成本;并且需要专业的技能,因为成功地实现该过程可能具有挑战性。
鉴于这些限制,这种微调通常仅用于通用对齐,以确保模型具有帮助性、无害性和诚实性,并且不适合解决终端用户的具体需求。使用低秩 Adapter (LoRA [15])等技术的监督微调(SFT)提供了更易于定制模型以满足单个用户需求的方法。然而,这些技术仍然面临相同的三个限制,尽管程度较小。因此,如果使用,SFT通常仅用于非常针对性的用例。
利用LLM进行自动 Prompt 工程已经取得了显著的性能。黑盒 Prompt 优化(BPO)是一个复杂的框架,它能够自动改进人类编写的 Prompt ,这些 Prompt 通常是无结构的或模糊的[17]。类似地,PE2框架[22]通过一个全面的搜索过程来改进人类编写的 Prompt ,从而提高 Prompt 性能。尽管PE2避免了额外的模型训练,但它的复杂性、延迟和成本增加了,限制了其可扩展性。BPO和PE2通常都是针对 Prompt 写作的广泛改进设计的,而不是针对个人用户的特定意图或需求进行定制的。
由于其低成本和广泛可用性,快速工程被广泛用于将LLM的输出与用户偏好对齐。这显然体现在流行的LLM框架如[20]中,该系统使LM Agent 能够应对软件工程任务。这个系统通过大写字母和感叹号强调关键指令,例如“请勿这样做!”或“编辑命令需要正确的缩进。”类似地,AI科学家[16]是一个领先的自动化科学发现系统,使用强烈的指令如“绝对不要再添加了!!!”来引导模型的行为。
这些来自广泛使用的具有影响力的框架的示例,强调了需要让终端用户表明他们对最重要的事情的信号,以便指导LLM更好地与他们的目标对齐。目前,用户依靠 Prompt 工程和强制性语言来实现这种对齐。然而,这种方法并未 consistently 产生积极的结果,如[21]所示。
相比之下,作者提出的GUIDE方法提供了一种可靠和系统的途径,使用户能够在 Prompt 内机械地突出关键指令。
解释性对 Transformer : 这是一个特别活跃的研究领域,有许多有前途的研究方向。在本研究中,作者主要关注试图量化感兴趣的一个 Token (或一组 Token )的重要性。
梯度度量如 Relevance 和 GradCAM[18]; [19] 在计算机视觉、自然语言处理和文本到图像任务中取得了有前途的结果。然而,在大模型(特别是参数超过70亿)中计算梯度需要大量的计算资源。
激活修补(Activation Patching)方法 [24]; [25] 关注于扰动输入并检查这种扰动会产生多大的影响,基于它是如何应用的。他们提出了两种类型的扰动:在词嵌入中添加高斯噪声,或在语义方法(改变短语中的重要单词)进行扰动,并通过与扰动相关的logits分布差异来评估每个词的重要性。
Abnar和Zuidema(2020)提出了_Attention Rollout_方法,该方法使用注意力权重来衡量一个 Token 对另一个 Token 的影响。这种技术通过层传播注意力权重,确定从任何一层到第一层每个 Token 的重要性。然而,这种方法主要适用于仅包含编码器的架构,如BERT。相比之下,生成模型通常使用仅包含解码器的架构,使注意力滚出效果较差。
在这项工作中,作者提出了Influence,这是一个简单且计算高效的指标,专门用于解码器仅有的模型。
3 GUIDE: (Guided Understanding with Instruction-Driven Enhancements)
在本节中,作者提出了GUIDE,这是一种新颖且系统的方法,可以协助用户在向LLM提供的文本输入中突出显示关键指令。为了理解GUIDE如何运作,首先必须回顾驱动LLM运行的核心机制——自注意力机制。
Description of the method
每一条输入文本中的 Token 最初都由一个嵌入表示,用表示,并通过堆叠的注意力层进行逐步优化。当它到达最后一层时,这个嵌入应包含预测下一个 Token 所需的所有语义信息。
该过程如下:在每一个注意力层 中, Token 的嵌入通过过去 Token () 和自身的语义信息进行增强。这种增强通过残差连接实现,其中 嵌入由注意力层的输出(即过去 Token 的值 的加权平均值)更新。称为值向量的 向量是从 Token 的 嵌入的简单线性变换导出的,负责传递过去 Token 的语义信息。
先前 Token 对 Token 的语义更新影响的程度由注意力对数()确定。这些对数表示一个感兴趣的 Token (称为键)与每个先前的 Token (称为 Query )之间的原始、未归一化的相关性得分。对数经过softmax函数处理后,被归一化以和为1。所得归一化的权重被称为注意力分数()并衡量了过去 Token 对当前 Token 在给定层上的语义表示的影响程度。Token 在第层的操作可以总结如下:
因此,模型自动计算logits和相应的注意力分数。作者认为,最终用户应该能够通过明确表示哪些指令或信息是关键来影响每个 Token 所受到的注意程度。通过这样做,用户可以有效地引导模型更好地与他的/她的意图对齐。作者提出通过在重要 Token 的注意力logits上简单添加一个偏差来实现这一目标,即 ,对于所有由用户指示的 Token 。尽管这种方法是直接的,但它证明是非常有效的,如实验结果部分所示。
Calibrating GUIDE
使用GUIDE,直接添加可以增加模型对感兴趣 Token 的关注度,从而增强它们对生成输出的影响。然而,由于注意力分数必须和为1,这种调整会减少对其他 Token 的注意力。如果设置过高,模型可能会过度关注高亮的 Token ,这可能会破坏生成过程。因此,选择一个适当的以平衡这些效果至关重要。
作者的实验表明,对于Mistral和Gemma-2模型,值为2可以很好地强调指令,而值为1则可以有效地突出文本中的特定信息。此外,使用大于5的值往往会导致无意义的输出(参见附录B和F)。
尽管这些默认值可以提高性能,但最优的选择取决于各种因素,包括模型和任务性质等。确定一个合适的的最精确方法是通过在验证集上的超参数调优来实现。
在这项工作中,作者还提出了一种启发式方法来仅通过几次前向传播来校准Δ。该方法的想法是将Δ的影响增加至可以通过传统 Prompt (例如使用大写字母,参见图3)实现的“自然”水平。这种校准需要一个度量,评估所选 Token 的影响,并跟踪这种影响如何在堆叠的层之间垂直传播,以及如何在连续的 Token 之间水平传播。
Influence
让作者用表示与用户 Query 相关的整体 Token 序列,以及表示用户希望突出显示的指令相关的 Token 序列。
为了保持简单并最小化计算成本,作者避免使用基于梯度的指标来评估子集 Token 对整体序列的影响(例如,参见(Chefer等人,2021年),(Chefer等人,2021年),以及(Selvaraju等人,2019年))。相反,一个更合适的选择似乎是(Abnar和Zuidema,2020年)提出的_Attention Rollout_方法。这个指标可以在前向传播过程中轻松计算,与作者的需求相匹配。
《Attention Rollout》方法基于对注意力分数的自然解释。它假设过去一个 Token 对当前 Token 的更新影响可以用注意力分数来量化。该方法通过假设更新后的嵌入中,前一个嵌入和更新向量各占一半的影响,来解决残差连接问题。因此,一个特定关注的 Token 在嵌入上的垂直和水平 Stream 可以用以下递归关系来描述:
作者认为,Attention Rollout不准确地代表了注意力的 Stream ,特别是在处理残差连接时。过去嵌入的范数通常比更新向量的范数大约大100倍(参见图2(a))。
随着上下文长度的增加,人们预期一个子序列的 Token 的重要性会降低,因为模型需要处理更多的信息。然而,通过假设和具有相等的贡献,Attention Rollout显著高估了过去 Token 的重要性。
随着上下文长度的增加,这种错误会加剧,导致一个随上下文增加而膨胀的影响估计,因此与模型遵循感兴趣的 Token (如遵循特定指令)的概率呈现负相关(如图2(b))。
为了应对这个问题,作者提出了一种新的度量方法 _Influence_,用于量化感兴趣的 Token 或一组 Token 的影响传播程度 。这种度量方法通过按向量的范数对贡献进行加权来纠正注意力展开:
更精确地说,Influence (其中是注意力头维度,是注意力头的数量), 是一个基于 Transformer 的解释性度量,用于量化用户 Query 中的 Token 序列如何相互影响以及与LLM输出的关系。它是基于以下原则设计的:
初始化:作者将指令内的 Token 值设为1,其余 Token 值设为0。令表示 Token 的嵌入。那么,影响力初始化可以形式化地定义为:
传播规则:给定 个嵌入向量 ,指令 Token 的联合影响力计算如下:
其中, 表示第 个嵌入向量, 表示指令 Token 的嵌入向量, 表示向量的乘法, 表示向量的标量乘法, 表示 维实数向量, 表示正实数集。
此外,作者保持影响力对函数组合的不变性,即
通过影响,作者可以通过选择一个模仿自然注意增强的来校准GUIDE,例如使用大写字母(图3)。这可以通过两次前向传播轻松实现,一次是带有大写字母的文本,另一次是不带大写字母的文本。然后被定义为两种版本之间的对数影响力差异。需要注意的是,作者的实验表明,使用GUIDE突出显示的指令通常对文本生成的影响大于使用自然 Prompt 突出显示的指令,例如使用大写字母,即使它们的影响力得分相似。
此外,在缺乏GUIDE的情况下,作者的实验表明Influence与一组 Token 对模型输出产生影响的可能性呈正相关,例如遵循指令(例如,用法语总结)或检索特定信息(例如,在麦堆中找到针)。因此,尽管并非完美无缺,Influence提供了一个可以用于比较和预测不同自然 Prompt 技术的影响的独立工具。
4 Experiments
在本节中,作者使用Mistral-7b指令(江等人,2023)评估GUIDE和Influence在遵循用户指定的关键指令和检索用户指定的关键信息方面的益处。
Description
为了评估GUIDE在支持LLMs产生与用户 Query 对齐输出方面的能力,作者进行了与文本翻译和总结相关的实验。在这些实验中,作者使用了来自OpenWebText [2]的文本,因为其上下文长度的多样性。作者将数据集根据上下文长度分为组,包括来自500个 Token 窗口的文本,例如(0,500)、(500,1000)等。从每组中,作者随机选择了20个文本,并使用多元采样[21]为每个文本生成10个摘要。
一根针在干草堆中。为了评估作者的方法对模型保留信息能力的影响,作者进行了“一根针在干草堆中”的测试。这个测试涉及在文本中的特定位置嵌入特定信息,并在文本结束时提出与嵌入信息相关的问题。作者的假设是,通过增加对这段文本的额外关注,模型的输出将改善,因为最终表示应该更紧密地与信息 Token 对齐。作者采用了[17]中概述的方法。具体而言,作者在给定文本的变量位置中插入特定信息,称为“针”。插入后,作者对嵌入的信息向LLM提出问题(见附录E中的完整 Prompt )。
为了进行这个实验,作者从OpenWebText [2]数据集[2]中随机选择了200篇文本,每个上下文窗口大小为500,从0到6000个 Token 。对于每篇文本,作者在10个不同的分位数(10%,20%,...,100%)中插入针头。作者将针头直接放在一个段落符号('·')后面,以保持文本的语义完整性。
为评估GUIDE在指定格式下生成输出的效率,作者进行了关于JSON生成的实验。对于输入,作者使用了1510年至1699年间编写的作品中的文本,来源于[14] BL Books数据集。作者 Prompt 模型从预定的JSON格式中提取并生成每本书的关键信息,详细内容见E。作者从BL Books数据集中随机选取了300本书,并将每篇文本划分为长度为500个 Token 的上下文窗口,范围从0到4000个 Token 。这些文本段落被纳入模板中,其中Mistral模型预计应生成一个遵循指定格式的JSON输出。
作者特别关注了您回复中的 Token ,确保您的回复完全遵循此模板,然后作者评估了生成的JSON文件中的键与模式之间的Jaccard指数。
对于上述实验中的每个实验,作者评估了_Influence_指标与获得正确输出概率之间的关系。为了实现这一目标,作者计算了ROC AUC分数以及指令 Token 词与序列最后 Token 词的重要性之间的相关性。然后,作者通过非梯度度量(如注意力展开和原始注意力得分)对这些结果进行了比较。作者的假设是,Influence与正确输出概率之间存在强烈的正相关关系。
由于ROC AUC是一种分类指标,作者需要将其转换为二进制得分。在法语摘要实验中,作者通过将法语文本的分数设为1,而将其他语言的文本的分数设为0来完成这一转换。在“针进麦堆”实验中,作者将成功识别针头信息的 Prompt 的分数设为1,而那些没有识别到的 Prompt 的分数设为0。同样,在JSON生成实验中,遵循JSON格式的输出的分数设为1,而那些不符合JSON格式的输出的分数设为0。
Results
法语摘要作者在GUIDE的实验中进行了实验,使注意力得分倾向于“法语摘要”。图4(a)显示了在GUIDE中使用法语时观察到的LLM摘要的概率,并比较了与 Baseline 模型,即大写和正常 Prompt 的结果,以及包括在 Prompt 指令前“重要。”的结果。作者的发现表明,与原始模型相比,GUIDE在性能上提高了29.4%,最佳结果为Δ=2。此外,为了确认GUIDE不会导致生成输出质量的恶化,作者将使用原始 Prompt 和GUIDE生成的法语摘要进行比较。作者观察到没有明显的降级。有关更多详细信息,请参阅附录B。
作为 Baseline ,作者将GUIDE与 Prompt 工程和监督微调(SFT)使用LORA(超参数可在附录C中找到)进行比较。图4(a)显示,使用大写字母或在指令上添加'重要'并不能显著提高性能,始终低于GUIDE。图4(b)显示,在1M训练 Token 之前,GUIDE优于SFT。这些结果证实,作者的方法是针对不需要额外训练的遵循LLM的指令的有效解决方案。
图5展示了在不同的上下文长度和针头位置下,正确输出短语的概率。Mistral模型在窗口内表现出在不同上下文长度和针头位置上的稳定性能。
正如预期,将添加到针头 Token 符中,始终可以提高性能,从87.0%提高到92.1%,而的最佳值约为1。作者还可以观察到,平均而言,当LLM位于文本的开头或结尾时,它更有效地检索信息。这与先前的结果相符(Kuratov等人,2024;Kamradt,2023)。作者测量生成的 JSON 文件中的键与 schema 中的键之间的 Jaccard 指数。作者观察到 Δ 的最优值约为 3,这导致与原始模型相比平均分数提高了 30%(如图6)。
作者还注意到,在几乎每一代中,分数都是0或100%。这表明在大多数情况下,生成的输出要么完美匹配请求的schema,要么根本不是JSON格式。
表格1展示了每个指标与正确输出之间的相关性和ROC AUC值。作者注意到,注意力滚筒在三个实验中有两个显示出负相关性和ROC AUC值低于0.5。这一观察结果支持作者最初提出的假设,即注意力滚筒可能无法准确反映模型的关注点。正如预期那样,作者也看到在三个设置中,原始注意力具有随机行为,ROC AUC得分约为0.5。
作者的指标在Transformer中的注意力流量的量化效果优于其他现有非梯度指标,这一假设得到了支持。Influence 与遵循指令的可能性之间的更强正相关和ROC AUC。
结论
虽然 Transformer 在几乎所有NLP任务上都代表了最先进的技术,但它们往往表现出意外的行为,特别是在上下文长度增加时,这种幻觉更为明显。
本工作探索了这些模型与特定指令对齐的能力,并引入了GUIDE,这是一种机械式的指令对齐方法,不需要进一步优化。作者证明,GUIDE在不需要明显牺牲输出质量的情况下,有效地减轻了在遵循指令的场景中的幻觉。
为了评估GUIDE在不同上下文长度下的影响,作者提出了一个名为Influence的新度量标准,用于量化上下文内的 Token 子序列的重要性。
此外,作者在基于Hugging Face的 Pipeline 中实现了GUIDE和Influence,使其对社区公开。