可信大模型 Reliable LLM(四):利用不确定性估计强化大模型的事实性表达


可信大模型 Reliable LLM(四):利用不确定性估计强化大模型的事实性表达

仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接

知乎:BeyondHsueh链接:https ://zhuanlan.zhihu.com/p/16213981801
本系列blog是有关大模型幻觉、知识、不确定性等方向的学习笔记分享,我会持续更新相关基础工作和最新研究,相关文献也整理在以下GitHub项目中,欢迎关注~
https ://github.com/AmourWaltz/Reliable-LLM
在本系列第二章
https ://zhuanlan.zhihu.com/p/713737141
中我们已经探讨了大模型的“感知”和“表达”在消除幻觉,增强事实性中的相关知识点,“感知”固然重要,但将正确的事实知识准确无误的表达出来,才是降低幻觉的关键落地之处。也就是即使大模型对事实知识的感知并不强,我们也要让最终输出朝着事实性的方向移动,解决模型能感知但无法总是正确表达的缺陷。
大模型通常基于在预训练期间学习的知识分布生成回复(“表达”),而这些知识分布的感知(“感知”)往往具有模糊的边界,包含许多学习但不确定的知识片段。如图1(a)所示,例如,针对问题“WhatwasthepseudonymofauthorJohnGriffithChaney?”(作者约翰·格里菲斯·查尼的笔名是什么?),如果LLM拥有从预训练语料库中学习到的相关知识但不确信,对答对的信心仅约为30%(浅绿色部分),它可能会返回一个误导性的答案,比如“JulesVerne”(儒勒·凡尔纳)。对于另一个问题“WhatwasthecapitalofWestGermanyfrom1949to1990?”(1949年到1990年西德的首都是什么?),如果LLM没有学习相关知识,但根据先前的知识猜测“WestBerlin”(西柏林)可能正确,因此返回一个错误的答案。这个问题主要源于LLMs没有对齐知识边界与事实准确性之间的关系。因此,为了提高LLM的事实性,关键在于教会LLM精确感知知识边界,并准确在回复中表达事实知识,对于知道的事实知识(绿色部分),减少感知和表达之间的差距,而对于不知道的知识(灰色部分),则坚定地拒答。
如下图知识光谱所示,一个可信的大模型知识边界应当是清晰的(下),把知道的知识都能非常确信并准确的表达出,而对于不知道的知识则坚定拒答,不存在过多的模糊区域(上)。
增强大模型的事实性表达,在工程上可以像人类一样通过给定提示去回顾特定知识,使用思维链来一步步引导回忆,或是通过多次采样,然后通过一些聚合方法选择最可信的那个,亦或是采用一些监督微调或强化学习的训练方法。此前文章介绍了集中提高大模型事实表达的工作,本文将再介绍一篇我们利用不确定性估计来对齐大模型的事实性,提高大模型事实表达的文章,文章链接在此:UAlign:LeveragingUncertaintyEstimationsforFactualityAlignmentonLargeLanguageModels(https ://arxiv.org/abs/2412.11803)
基于上述分析,我们认为模型无法准确表达事实知识是由于其无法精确感知知识边界;因此我们的目标是引导大型模型识别其不确定但已知的事实,通过在对齐中明确利用知识边界信息,指导其自信地表达其已知但不确定的信息,并坚决拒绝超出其知识范围的问题,如图1(b)所示。基于“感知”的改进,大模型的表达更加真实可靠,从而最小化“感知”和“表达”之间的差异。因此我们提出了UAlign框架,该框架战略性地建模关于知识边界表示的不确定性,随后将这些估计与事实对齐。因此,UAlign框架关注两个关键问题:如何感知知识边界表征,以及如何与事实进行对齐。
首先,我们准备了一个数据集,该数据集包含用于UAlign框架中对齐的知识边界信息。知识边界通常指示事实知识的已知程度,通常通过对大模型使用不确定性估计方法来实现。为了准确捕捉给定知识问答数据集的知识边界表示的内在感知,我们分别采用基于准确度的置信分数(accuracy-basedconfidencescore)和语义熵(semanticentropy)这两种不确定性估计。
如下图2所示,给定一个包含个知识问答对的数据集,我们通过使用一个1-shotprompts集合中不同1-shot示例在温度下对一个问题进行多次采样以减轻上下文敏感性,从而计算每个问题的置信度和熵,近似实际的知识边界。更具体的,在对第个问题的第次采样过程中,我们将每个1-shotprompt与问题一起输入大模型,以生成第个回复。通过进行次采样过程,我们可以获得问题的采样回复集。我们通过将每个生成的答案与真实答案进行比较,得到标签集合来表示每个回复的正确性(,1表示正确,0表示错误)。我们将数据收集并格式化为,随后计算不确定性。至少有一个正确样本答案的问题被视为“已知”,而所有样本响应均为错误的问题被视为“未知”。此前工作表明大模型在未知知识上微调会容易生成幻觉,因此我们将未知问题的标签回复修改为拒答,以教导大模型拒绝超出其知识范围的问题,从而划分已知和未知事实知识的边界。
本研究将大模型的知识边界从两个方面进行定义。首先是对问题的先验判断,表明对的确信程度,我们采用基于准确度的置信度来度量;接着是对生成回复在中分布的离散程度,我们采用语义熵来衡量。这两种度量作为互补,从而精确拟合出真实的知识边界信息。
对于问题,通过与真实答案进行比较中回复的准确性作为置信分数,计算公式如下:
由于自然语言生成任务输出空间中生成序列的可变长度和存在不同语句的语义等价等问题,此前工作提出语义熵来度量语句不确定性,以捕捉语义层面的不确定性,量化生成序列的离散程度。给定和,语义熵计算如下:
其中表示语义等效空间中的句子集合。如图2所示,语义熵是通过聚类语义等价的回复来计算的。我们计算已知问题和未知问题的置信分数和语义熵,通过将第个样本格式化为来更新UAlign数据集。
如图3(a)所示,给定数据集,UAlignSFT的目的是训练不确定性估计模型,以明确学习针对特定问题的两个不确定性估计值。不确定性估计模型和分别用于预测置信分数和语义熵,这些估计值被持续用于训练奖励模型。在训练模型和时,我们只将问题输入模型,以生成两个不确定性估计。训练目标是最小化交叉熵损失和,如下所示:
随后引入奖励模型以确定生成的答案是否正确地基于问题、置信度和熵。和都被显示用作额外的输入特征,以提高奖励模型的准确性。奖励模型的二元交叉熵损失被最小化,如下所示:
如图3(b)所示,UAlignPPO目的是利用以上获得的模型,通过不确定性度量来引导大模型对问题的事实表达。受到人类反馈强化学习(RLHF)技术进展的启发,我们采用近端策略优化(PPO)来优化模型,结合奖励模型优化策略。在这一阶段,我们迭代地将问题、预测的置信度和熵输入到策略和参考模型中,奖励函数将促进策略模型生成可信回复。训练目标是最大化以下奖励函数:
奖励函数包含来自的奖励信号和KL惩罚,以确保策略生成的答案不会与原始策略过度偏离。超参数是KL惩罚的系数。
训练集:TriviaQA,NQ-Open,SciQ
测试集:In-domain-TriviaQA,NQ-Open,SciQ;Out-of-domain-LSQA。
为了评估生成回复的可靠性,我们采用了两个指标:精确度(Precision)和真实度(Truthfulness)。精确度定义为在所有已知问题中正确回答的问题所占的比例,代表大模型准确表达其已知事实知识的能力。真实度表示在所有问题中,正确回答的已知问题和拒绝的未知问题之和所占的比例,指示大模型的诚实程度,回复正确性使用字符串匹配方法来判断。精确度和真实度的计算公式如下
KC:已知且回答正确
KI:已知但回答错误
KR:已知但拒绝回答
UC:未知但回答正确
UI:未知但回答错误
UR:未知且拒绝回答
Llama-3-8B,Mistral-7B-v0.1
主实验结果表明我们的UAlign方法可以显著提高模型的可靠性,并且在OOD数据集上也有不错的泛化能力,相比此前一些baseline方法可能导致模型趋于保守,我们的方法则可以让模型自信表达出已知的知识并且坚定拒绝未知的问题。
我们也分析了两种不确定性估计的影响,结果表明置信度对性能提升起主导作用,熵起辅助作用。
通过与一系列不确定性估计的baseline相比,我们所使用的不确定性估计指标结合了基于采样和基于训练的方法的优点,因此实现AUROC分数更高,关于不确定性估计可参考
https ://zhuanlan.zhihu.com/p/696065154
最后我们也分析了采样次数的影响和时间消耗,由于本文均采用形式较简单的QA问答对,答案格式简单,很容易逼近真实分布,因此采样消耗少。每条问题大约采样10次就可以实现不错的效果。
最后简单回顾下此前一些相关研究:
[1]R-Tuning:InstructingLargeLanguageModelstoSay`IDon’tKnow’
https ://arxiv.org/abs/2311.09677
把大模型预训练阶段学到的知识称作参数化知识(parametricknowledge,下图蓝色区域),如果预训练大模型在指令微调阶段如果遇到新知识(即参数化知识以外的知识,下图橙色区域三角形所代表的事实知识点),那么模型就会更容易产生幻觉。原因是,大模型的指令微调对齐阶段,更像是一个复习过程,即学习怎么利用预训练阶段学到的知识,如果在指令微调时加入太多模型没见过的知识,相当于给模型传达一个信号,即鼓励模型生成预训练时没见到的知识,那模型就会更容易产生幻觉。
这篇文章就对模型知识和外部知识做了一个区分,方法非常直观易懂,在指令微调数据上,先通过采样的方法,判断模型对哪些知识已知,哪些未知,即对上图橙色区域的圆圈和三角作个区分,然后在训练时让模型对已知部分的知识直接生成回答,对未知部分则拒答,即在答案前加上Iamunsure之类的表述,如下图所示。
文章实验部分也分别为in-domain和out-of-domain上进行测试,验证了这种简单有效的方法具有良好的泛化能力,文章使用准确率和平均精度(AveragePrecision)两个指标来评估方法,在一系列数据集上均有明显提升。
[2]RejectionImprovesReliability:TrainingLLMstoRefuseUnknownQuestionsUsingRLfromKnowledgeFeedback
https ://arxiv.org/abs/2403.18349)
使用强化学习来增强模型识别知识以及拒答的能力,提出了一种对齐框架,称为来自知识反馈的强化学习(ReinforcementLearningfromKnowledgeFeedback),利用知识反馈来确定模型的知识边界,并训练可靠的奖励模型来鼓励拒绝知识外的问题。这篇文章的重点在强化学习数据集的构造,给定数据集,对于in-domain的部分,让大模型回答同一个问题N次,如果全对就构造偏好回答>拒答(A>IDK),如果一部分对就构造正确>错误(A>B),如果全错就构造拒答>错误(IDK>B),对于out-of-domain的数据,让大模型回答同一个问题N次,如果有t次的答案是一致就构造回答大于拒答(A>IDK),如果模型答案不一致,则让拒答大于回答(IDK>B)。
文章还引入一系列度量可靠性的指标,包括准确率(回答正确/问题总数),精度(回答正确/回答正确+回答错误),真实性(回答正确+拒答/问题总数),以及可靠性,即在准确率和真实性上取一个trade-off,同时兼顾模型的准确率和真实性,在一系列实验上,文中提出的方法都能拒答模型未知的问题,极大的减少了幻觉发生。
[3]SaySelf:TeachingLLMstoExpressConfidencewithSelf-ReflectiveRationales
https ://arxiv.org/abs/2405.20974
针对R-Tuning在划分标签时不够细粒度的问题,提出了一个SaySelf的训练框架,让模型以更准确和细粒度的方式输出置信度,并且结合了推理步骤,让模型能够在生成推理步骤时显式得到置信度,通过自我反思性理由来解释其答案和置信度。包含一个监督微调阶段和一个强化学习阶段,监督微调在知识问答数据上,采样多条大模型的回复,然后根据回复的不一致性,利用一个更强的模型生成包含问题、答案、思维链、自我反思理由及置信度的特定模型数据集;在强化学习阶段,设计了一种奖励函数,鼓励大模型输出准确且自信的回答,对过于自信的错误回答则给予惩罚。
实验也表明,在生成反思后,模型的置信度得到良好校准,同时也保持问答任务性能,使模型的可靠性得到很大提升。
[4]Inference-TimeIntervention:ElicitingTruthfulAnswersfromaLanguageModel
https ://arxiv.org/abs/2306.03341
通过内部状态改变事实性的经典之作,提出了Inference-TimeIntervention(ITI)的技术,通过在推理过程中改变模型激活状态,让激活朝着真实性的方向移动,在一系列真实性数据基准上,均得到了明显提升。这篇文章依然探究怎么提高模型表达的事实性,结合知识探针,用探针探测模型是否知道答案,然后通过定向改变激活状态,改变模型输出,提高模型生成准确度。如下图所示,利用模型在中间层的激活值作为探针的输入,以此激活值所激活所对应的输出答案作为输出,通过有监督微调训练出探针,然后在推理过程中将激活转移到该方向,以此提高模型可信度(可信输出)。
有时候大模型知识边界模糊,因此无法始终正确回答问题,本文中提出了一个UAlign框架,显式利用不确定性估计来引导大模型准确表达事实知识,。本文介绍了数据集准备过程和UAlign训练策略,通过将置信分数和语义熵的不确定性估计作为输入特征融入提示中,实现事实性对齐。在多个知识问答任务上的实验验证了UAlign可以有效提升大模型可靠性和泛化能力。详细内容可参考原文UAlign:LeveragingUncertaintyEstimationsforFactualityAlignmentonLargeLanguageModels。
https ://arxiv.org/abs/2412.11803
备注:昵称-学校/公司-方向/会议(eg.ACL),进入技术/投稿群
id:DLNLPer,记得备注呦


文章作者: ZejunCao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZejunCao !
  目录