记得给 “应用机器学习” 添加星标,收取最新干货
作者:香港城市大学、中国科学技术大学 许德容
今天和大家分享一篇由香港城市大学,中国科学技术大学,腾讯优图实验室,北京大学提出的一种新颖的面向医学模型编辑的逐层可扩展适配器策略(MedLaSA),其利用因果追踪来确定神经元中知识的精确位置,然后将可扩展适配器引入LLM的全连接层中,以实现大模型中的医疗幻觉知识的高效编辑。
论文: https://arxiv.org/abs/2402.18099
代码: https://github.com/quqxui/MedLaSA
大型语言模型(LLMs)有强大的文本生成和理解能力,但它们可能仍然提供过时的事实信息,甚至经历幻觉,这在实际医疗场景部署中尤为令人担忧。为了解决这个问题,考虑到重新训练一个LLM的巨大成本,研究员对于模型编辑(也称为知识编辑)的兴趣日益增长。它试图通过精确操作一部分知识来改变LLMs的行为,同时确保无关知识不受影响(不是编辑的目标)。同时研究表明,LLMs可以作为存储世界事实信息的知识库,并且可以通过理解transformer结构内的知识保留机制来编辑LLMs中的知识。
模型编辑方法主要可以分为两类:(i) 额外参数或记忆,旨在引入显式内存来存储编辑的知识,或者向网络中添加额外的神经元。(ii) 修改LLMs的参数,如定位-然后编辑的方法,它们识别出对应特定知识的参数,并通过直接更新目标参数来修改。然而,当前的模型编辑方法主要针对通用领域下的常识知识和百科知识,但在医疗领域利用模型编辑来修改专业(Specialized)和复杂(Complex)知识的潜力仍然很大程度上未被探索。
该论文提出新的医疗知识编辑思路:编辑大模型的事实性医疗知识与事实解释能力,并设计一种新颖的面向医学模型编辑的逐层可扩展适配器策略(MedLaSA),其利用因果追踪来确定神经元中知识的精确位置,然后将可扩展适配器引入LLM的全连接层中,以实现大模型中的医疗幻觉知识的高效编辑。
方法总体架构:
MedLaSA旨在结合基于神经元定位的方法和基于额外参数的方法这两者的优势,对医疗知识进行高效编辑以消除幻觉。MedLaSA首先整合了因果追踪这一知识定位工具,以建立医学知识与相应层之间的联系。然后,对于每一条知识(表示为问答对),构建了一个影响矩阵,该矩阵考虑了每个标记和层对该知识的影响。通过汇总层间的影响矩阵,为每条知识生成一个影响集。与微调参数不同,作者在密集权重中引入LoRA适配器。文章认为通过向高影响力层(例如,第i层)引入额外参数来编辑知识,可以在最小化对无关知识(如与第j层有更强关联的知识)影响的同时,实现更高的编辑成功率。需要注意的是,该方法并不是在某一层上添加适配器而排除其他层。相反,提出的方法采用软扩展,即我们从每个知识的影响集中生成相应的scaling集。这允许动态调整每一层适配器的权重和秩,确保模型编辑的可扩展性。每条知识都会有其自己的scaling集,并且对于相似内容,规模会更加一致。因此,它能够确保对同一知识进行精确编辑,同时避免影响到无关知识。
首先引入因果追踪的方法通过计算每个状态对事实预测的贡献来识别与特定神经元激活相关的事实关联。该过程涉及三次大模型的前向传播:
(1)正常前向传播:将一条事实知识x输入大模型中,记录网络结构中每一层l和每一个token i 的隐藏状态的值。
(2)加噪的前向传播:通过对x输入的表征添加均值为0、标准差为v 的高斯噪声,并同样进行前向传播,这样会得到与正常前向不同的输出,同时记录下这组受影响的隐藏状态激活值。
(3)加噪后恢复的前向传播:输入的噪声嵌入与损坏运行中保持一致,但是这里会遍历神经网络中的所有隐藏状态激活值并把他们替换成正常前向传播的值。如果替换某个神经元的激活值之后能使得模型输出与正常前向传播一致,那我们就认为该神经元与该条知识具有因果相关性。通过这种方式我们能为单条知识生成一个关于神经网络的影响力矩阵。
随后,该论文在大模型网络的全连接层中引入低秩适配器LoRA,以实现模型参数高效的编辑。该适配器通过考虑多个层之间L的关联和医学知识,并借助因果追踪得到的影响力矩阵M作为修改的权重编辑每个层的参数,同时确保在修改过程中不影响无关的知识。这种方式在于通过对知识所在的全连接层的适配器应用不同的模型尺寸参数,使模型能够区分输入知识是否需要编辑或不需要编辑。例如,当输入需要编辑的数据时,增加其在第i层的适配器参数大小,并减小其在第j层的影响,确保知识更新较多的发生在第i层。相反,当输入不需要编辑的数据时,激活适配器对第j层的影响,并减小适配器对第i层的影响。
Medical Model Editing Benchmarks
目前模型编辑缺乏用于编辑医学知识的标准基准。考虑到一方面,存储在医学大语言模型中的专业医学知识可能存在潜在问题(例如,信息过时和产生幻觉),这可能导致诊断或治疗建议出现错误。另一方面,现实世界的医疗情境涉及高度复杂的知识,这导致对大语言模型解释能力的重视增加,比如在决策过程中展示逻辑思维链的能力。因此,作者构建了一个医学反事实(MedCF)数据集,以(1)编辑大模型内部的事实性医学知识;以及一个医学事实解释(MedFE)数据集,以(2)编辑大模型关于事实的复杂解释能力。
评估指标建立
从四个角度评估模型编辑方法:
(a) 编辑效果(Efficacy):评估单条数据是否编辑成功;
(b) 普适性(Generality):评估对问题进行改写之后是否依旧能编辑成功;
(c) 局部性(Locality):评估编辑之后是否会影响到无关知识;
(d) 流畅性(Fluency):评估编辑后的模型能否依旧保持高质量的生成流畅度。
另一方面,考虑到真实的医学场景要求高度可靠,作者进一步强化了局部性的评估指标,确保模型编辑的方法不会影响到其他无关知识,包括:
(a) 目标分布:模型编辑是否改变了真实结果标记的概率分布?
(b) 实体映射:模型编辑是否只学习到了头实体和尾实体之间的映射关系?
(c) 结构相似性:模型编辑是否影响了具有相似结构的不相关知识?
(d) 文本相似性:模型编辑是否影响了具有相似文本的不相关知识?
(e) 一致的主题:模型编辑是否影响了具有相同主题的不相关知识?
通过这种方式,该论文拟建立一套完整的医疗模型编辑的评估数据和指标,确保医疗大模型的编辑高效且不影响无关知识。
MedCF 数据集构建
为了构建MedCF数据集,我们使用了DRKG的医学知识图谱。对于每一个三元组(h, r, t),我们将h和r转换为一个问题,将t转换为一个答案,从而创建一个问答对。为了评估在大语言模型未知预测结果的情况下编辑知识的能力,我们遵循ROME的方法引入了用于模型训练的反事实数据。我们从知识图谱中随机抽取一个负实体t∗并用它作为新的答案,尝试相应地编辑原始答案。例如,在表1中,原始三元组 ''(伯氨喹, 副作用, 恶心)''被转换成问题:''伯氨喹会引起什么副作用?'',以及原始答案 ''恶心''。但编辑的目标实际上是反事实的结果:''刺痛感''。关于Generality数据(表1中的 Rephrase文本),我们使用ChatGPT来重新表述问题。提示词的设计可以在表2中找到。
MedFE 数据集构建
我们通过利用MedMCQA构建了MedFE数据集,这是一个旨在回答医学入学考试问题的数据集。为了生成如表1所示的事实',我们将MedMCQA中的问题和正确选项结合起来形成一个事实性陈述,并使用MedMCQA中专家的解释作为解释/编辑目标'的来源。MedCF的Efficacy数据以及MedCF和MedFE的Generality数据都是通过查询ChatGPT生成的。查询所用的模板如表2所示。这个提示模板确保了生成的内容遵循医学术语的同时保持问题的原始含义。
主要的实验部分
如表4所示与基线的比较结果,MedLaSA在大多数指标上相对于以前的方法展现出了显著的提升。例如,在两个数据集和两种大语言模型上,MedLaSA表现出了更优的流畅性(Fluency),验证了方法保持生成能力的有效性。同时,FT实验结果显示,参数的过度重新训练可能导致模型崩溃,使得模型丧失其原有的生成能力(即,流畅性显著下降)。LoRA引入了额外的参数,但没有考虑到对无关知识的影响。它还忽略了知识在LLM中的特定位置以及知识对于不同层的依赖性。因此,相比于MedLaSA,LoRA在局部性(Locality)方面的表现较差。MEND对初始化条件有较高要求,导致在这些医学数据集上的平均性能较低。ROME专注于LLM单层知识编辑,没有考虑到多层存储的知识,从而性能有所下降。MEMIT在MedCF上的有效性(Efficacy)和泛化性(Generality)方面表现良好,因为这个方法特别设计用于基于三元组处理反事实数据。通过定位提示中的主体并优化值来选择客体,使得MEMIT能够编辑反事实数据。这种现象在ROME中也很明显,这使得ROME在某些情况下达到甚至超过了MedLaSA的表现。然而,与MedLaSA相比,MEMIT和ROME在局部性方面表现不佳,尤其是在实体映射(ChatDoctor上MEMIT的EM值下降了33.12%)。这是因为MEMIT和ROME仅学习了头尾实体之间的映射关系,当局部性提示中的主体与编辑提示中的主体相同时,会导致一样的预测结果。此外,由于MEMIT无法处理长文本输出和复杂的多重知识,它在MedFE数据集上的表现较差。由于依赖于主语到宾语的定位,MEMIT可能不适合涉及复杂知识和较长文本的情景。相比之下,我们提出的MedLaSA通过动态调整附加参数的规模,并确保插入复杂知识,解决了这个问题。
END