论文:FUNCTION VECTORS IN LARGE LANGUAGE MODELS
作者:Eric Todd,∗ Millicent L. Li, Arnab Sen Sharma, Aaron Mueller, Byron C. Wallace, and David Bau
发表:ICLR2024
摘要
我们报告了一种简单的神经机制的存在,该机制将输入输出函数表示为自回归变压器语言模型(LM)中的向量。对各种上下文学习(ICL)任务进行因果中介分析,我们发现少量注意力头传输所演示任务的紧凑表示,我们将其称为函数向量(FV)。 FV 对上下文的变化具有鲁棒性,即它们会在零样本和自然文本设置等输入上触发任务执行,这些输入与收集它们的 ICL 上下文不同。我们在一系列任务、模型和层中测试 FV,并在中间层的设置中发现强烈的因果效应。我们研究了 FV 的内部结构,发现虽然它们通常包含对函数输出空间进行编码的信息,但仅此信息不足以重建 FV。最后,我们测试了 FV 中的语义向量组合,发现在某种程度上它们可以相加来创建触发新的复杂任务的向量。我们的研究结果表明,可以从LLM中明确提取函数抽象的紧凑、因果内部向量表示。
方法
作者发现了在大模型ICL过程中存在一个FV函数向量,让模型理解要执行的下游任务是什么。
在特定层添加FV(激活向量)可以诱导模型在新的上下文中执行相似的任务
作者首先用实验验证了,一些层的平均激活值可以记录模型的任务表征,通过将平均激活值添加到zero-shot模型层中,可以诱导模型生成相同的任务,准确率达到23%。
但是这一准确率较低,只能证明通过添加平均激活值可以使模型从zero-shot中理解ICL任务。
作者首先对注意力头进行平均值计算,将ICL的输入提示词与任务x随机化,让那个模型不能通过ICL正确推导出任务x的正确响应y,作者将输出目标替换为任务输出目标,使得模型不能理解ICL任务。
将替换前后的概率做差,成为因果间接效应CIE,对所有任务取均值,得到这一层在所有任务上的平均间接效应AIE。
通过AIE计算模型中最具有因果效应的注意力头,如GPT-J A=10,将注意力头计算平均值就可得到函数向量的表示形式:
实验
考虑两个问题:
1. 功能向量在不同的ICL任务中是否都能提取
2. 验证FV的可移植性:即在提示符的最后标记位置向特定层添加功能向量在多大程度上会导致语言模型在与提取功能向量的 ICL 上下文不同的语境中执行任务。
作者观察到:基本模型在zero-shot和无信息打乱的ICL提示词不能执行下游任务,但是添加FV后可以精准执行
作者选取了六个简单任务进行实验,以及一系列decoder-only的自回归编码模型,其中根据模型参数的大小选择注意力头数量不同,如Gpt-J A=10, llama-2-6b A=20等,上图展示了六个任务在两个条件下,添加FV前后的准确度变化。以反义任务为例,作者选取5个提示任务作为一组,计算准确度。
总结
功能向量是一个令人惊讶的发现。自2020 年以来,人们一直在研究 LLMs 的metalearning能力,这些能力似乎足够复杂,难以捉摸。然而,在本文中,我们在一系列Transformer-based LLMs 中发现了一种简单的机制,这种机制在各种任务中都很常见,而且对上下文的变化也很稳健:功能向量(FVs)代表了隐藏状态中的任务。功能矢量可以从一小部分固定的注意头中明确提取出来,这些注意头很容易识别,而且这些功能矢量就像单词矢量一样简单地代表了一系列任务--然而我们的发现也揭示了功能矢量一定是一种独特的现象。虽然 FVs 还不能完全说明 ICL 是如何工作的,但它们确实为 ICL 中的一个中介层次提供了新的清晰度,并为未来研究全面描述 LLM 中的功能执行开辟了一条新的道路。