近来与ChatGPT有关的大模型的话题仍然处于风口浪尖,但是大家讨论的方向已经逐渐向大语言模型的实际应用、安全、部署等方面靠近。虽然大模型展现出了非常惊艳的文本生成效果,甚至在一些现实场景中的测试基准上超过了人类的水平。但是目前大模型仍然存在一个非常致命的缺陷,那就是大模型的生成”幻觉“ (Hallucination)问题。生成幻觉通常是指模型按照流畅正确的语法规则产生的包含虚假信息甚至毫无意义的文本。这对于大模型的实际部署是一个非常具有挑战性的问题。
本文介绍一篇来自哈佛大学研究团队的最新研究工作,本文引入了一项名为推理时干预(Inference-Time Intervention,ITI)的技术,可以有效提升大模型生成内容的真实性。研究团队使用了目前已开源的LLaMA模型进行实验,他们发现Transformer模型中的某些注意力头对于模型生成内容的真实性至关重要,在推理阶段,通过在注意力头上使用一种特殊的指令干预激活方式,可以有效提升LLaMA模型在TruthfulQA基准上的推理性能。例如使用Alpaca进行指令微调后的LLaMA模型,经过ITI处理后,其真实性可以从32.5%提升至65.1%。这种方法相比需要大量标注样本的人类反馈强化学习(RLHF)而言,所需要的成本非常低。此外,作者发现,虽然大模型表面上可能会产生一些错误的输出,但它们内部可能存在一些关于事物真实性的隐藏表示。
https://arxiv.org/abs/2306.03341 代码仓库:
https://github.com/likenneth/honest_llama
大模型的生成幻觉问题并不仅仅出现在ChatGPT中,实际上,基于预训练Transformer架构的大模型均有类似的现象出现,这种现象一旦出现,就会严重影响用户对该模型的信任程度。如下图所示,作者对LLaMA模型进行了测试,其中红色头像和蓝色头像分别表示是否使用本文提出的ITI技术进行回答,研究者分别抛给LLaMA模型两个问题:
作者认为这两个问题的回答分别代表了现有大模型在事实错误和表述幻觉方面的问题。
本文作者认为,LLMs在大多数情况下是在"故意胡说",在模型内部其实含有针对当前问题的正确内容,只是使用标准常见的生成策略(Prompts)无法很好的引出这个回答。例如我们在询问ChatGPT如下问题时,ChatGPT第一次给出的答案是错误的。
但是当我们向模型发出了质疑的信号后,ChatGPT就会立马更正先前的说法,从而将正确的内容生成出来,这其实就表明了LLMs常见的生成幻觉现象并不完全是因为模型缺乏某些方面的知识导致的。
随后,作者开始探讨LLMs内部的生成准确性和预测准确性,前者主要衡量模型输出层的正确性能,而后者衡量模型中间层的激活值(将中间激活值输入到一个分类器得到输出)得到答案的正确性能,作者使用LLaMA-7B版本在TruthfulQA数据集上进行了实验,实验结果表明,LLMs的生成准确性和预测准确性之间存在着大约40%的差距。为了缩小这一差距,使LLMs尽可能的生成正确回答,本文提出的ITI方法首先通过确定一组具有高预测准确性的稀疏注意力头,随后在推理过程中,沿着这些与真实性相关的方向来干预调整模型的激活值,直到生成完整正确的答案。
2.1 模型架构选择
为了清晰的表述本文提出的ITI方法,作者首先定义了LLaMA模型中Transformer架构的一些关键组件,作者认为其中的多头注意力(MHA)本质上是一种以残差形式更新输入特征流的操作。在模型推理阶段,输入token首先转换到高维空间
中,然后分别经过每个transformer层的多头注意力模块(MHA)和多层感知机模块(MLP)执行计算,并将结果更新来产生下一个特征流
,标准的MHA模块可以形式化表示如下:
2.2 训练探针寻找LLMs中的"真实性"内容
为了探索LLMs内部隐含的真实内容,作者参考Bengio在2016年提出的探针技术[2]来寻找网络中间层的真实性内容向量和方向。探针本质上是一个逻辑回归预测器,其输入为网络的中间激活值(logits)。作者首先对TruthfulQA中的每个样本,将其问题和答案连接在一起,并保存网络中每个attention head的token作为中间激活值,来构成每个head的探测数据集
。随后训练探针来衡量每个head与基准数据性能之间的关系,探针采用 二分类的形式,下图(A)展示了网络中不同head对应的探针所获得的分类精度。
可以看到,不同attention head的中间激活值带来了较大的性能差异,例如最高精度由第14层中的第18个head得到,其精度达到了83.3%。随后作者开始寻找每个探针所对应head的真实性方向,并尝试对其激活空间的几何形状进行可视化。首先将每个探针的参数
视为第一个真实性方向(truthful direction),随后参考主成分分析(PCA)算法,在相同的训练集上训练了第二个线性探针
,使两个探针方向具有正交约束,以代表信息量最大的方向来进行可视化,可视化结果如上图(B)所示。可以观察到两个探针的真实性分布有很大的重叠,这表明LLMs内部的真实信息并不仅仅存在单一固定的方向上,而是存在与一个子空间范围中。
2.3 在推理时进行干预
在得到LLMs中间attention head所代表的真实性方向后,一个很自然的想法就是在推理时施加干预来将原有的激活转向更加真实的方向,使LLMs能够输出更加正确的答案,这就是本文提出的ITI方法背后的基本策略。作者提到,在进行ITI操作时,并不会对每个attention head都进行干预,根据上一节的实验表明,网络中只有一部分注意力头与真实性方向更加靠近。因此作者选取了前
个head来作为干预对象,来实现更细粒度的干预效果。在干预方向和程度的选择上,作者认为干预向量应该同时满足两个条件:(1)与探针学习到的超平面保持正交 (2)与真实激活分布和假激活分布的均值相同。
上图展示了本文提出的ITI操作流程,首先根据验证集上的探测准确性对所有注意力头的真实相关性进行排名,然后将前
个头作为目标集,并使用验证集上得到的激活值来估计沿真实方向上的标准差
,随后结合真实性方向对attention head的预测结果进行调整。为了方便理解,作者将ITI操作形式化表示为MHA的一种修改版本:
本文的实验在TruthfulQA基准上进行,该数据集包含了38个子类别中的817个问题,设置有两个评估任务:多项选择任务和生成任务。前者通过比较当前问题候选答案的条件概率来确定多项选择的准确率(MC值),如果真实的答案排在第一位,则视为回答正确。对于后者,模型通过自回归方式生成每个问题的答案,随后与人类标注员或者其他LLMs给出的答案进行对比。通过在TruthfulQA上进行测试,可以衡量出LLMs的回答真实性情况。为了更加突显ITI方法对LLMs的干预效果,作者还加入了两个额外的指标交叉熵(CE)和KL散度,分别用来衡量LLMs在经过ITI干预之后偏离其原始分布的程度。
作者选取了目前常用的几种提高模型回答真实性的baseline方法进行对比实验,对比结果如上表示,其中有监督微调(SFT)方法直接将问题作为提示,在鼓励模型生成真实答案的同时,阻止模型通过交叉熵损失进行优化,这种方法是人类反馈强化学习算法(RLHF)[3]中的第一阶段操作,小样本提示方法(FSP)是提高模型真实性的另一种方法。通过上表的对比,我们可以看到在原始模型和小样本提示方法中加入ITI操作后,模型的真实性都有不同程度的提升。
此外作者对两个控制ITI干预程度的超参数:(1)施加干预的attention head数量 K,(2)干预强度 α 进行了网格搜索验证,验证结果如上图所示,每个参数从TruthfulQA数据集中随机采样5%的问题进行训练和验证。可以看出,干预程度与LLMs最终得到的真实性效果整体上呈现倒置U型曲线关系,并不是干预强度越大,模型效果越好。
本文针对LLMs中经常出现的幻觉问题给出了一套解决方案,提出了一种称为“推理时干预(ITI)”的方法,旨在提高LLMs的输出文本真实性。ITI首先基于模型探针技术来学习与事实输出相关的潜在向量,随后再使用这些向量在模型推理阶段将原有激活值调整到正确的方向上。在标准数据集TruthfulQA上的多项实验结果表明,在施加ITI干预后的大模型准确性有了显著提高。此外本文作者还观察到,在目前以大型Transformer模型为基础的LLMs中,只有部分attention head发挥着更大的作用,如何有效的优化这些head并且利用它们应该会对模型效率和综合性能带来更大的提升。本文的下一步计划是将ITI方法推广到其他更加广泛的数据集中,特别是在更真实的聊天环境中,以改善LLMs的实际落地效果。
参考:
[1] Touvron, H., Lavril, T., Izacard, G., Martinet, X., Lachaux, M.A., Lacroix, T., Rozière, B., Goyal, N., Hambro, E., Azhar, F., et al. (2 23). Llama: Open and efficient foundation language models. arXiv preprint arXiv:2302.13971
[2] Alain, G. and Bengio, Y. (2016). Understanding intermediate layers using linear classifier probes. arXiv preprint arXiv:1610.01644.
[3] Ouyang, L., Wu, J., Jiang, X., Almeida, D., Wainwright, C., Mishkin, P., Zhang, C., Agarwal, S., Slama, K., Ray, A., et al. (2022). Training language models to follow instructions with human feedback. Advances in Neural Information Processing Systems, 35:27730–27744.