关注者推荐:当模型在胡说的时候知道自己在胡说吗?

文摘   科技   2024-05-16 13:12   英国  

Learning to Trust Your Feelings: Leveraging Self-awareness in LLMs for Hallucination Mitigation

当模型在胡说的时候知道自己在胡说吗?

‍‍‍‍‍





编者按:这篇论文是一位本号的关注者在看到上一篇文章微调真的导致了模型幻象吗?后在后台推荐我阅读的,其实类似这种“模型知道自己不知道然后去调整回复”的思想是显学了,但是确实这个号发这个方向的不多,恰好来看一篇8!本人非常推荐大家向我投稿,不论是宣传自己的工作或作为一种练习,受益其实会很多~本号会坚持保持朴素和开源,只专注内容不做夸大宣传,欢迎一起来传播优质内容!

TLDR:

对于LLM幻觉问题,这篇论文从模型内部知识状态的角度给出了分析和缓解的方法。

  • 通过分析LLM内部状态,发现LLM能够判断自己是否知道某个特定的知识点。利用这种判断能力,可以将知识类问题分成已知,未知和不确定三种状态。

  • 据此设计一种奖励机制,在已知问题上,直接回答优于回答“我不知道”,在未知问题上则是回答“我不知道”优于直接回答;

  • 根据这种奖励来进行强化学习,可以缓解LLM幻觉问题

这篇论文在幻觉问题分析部分比较有趣,下面也重点分享这部分。

首先作者从模型诚实性和内部知识两个角度把模型的生成分成了四个象限。

这里诚实性指的是模型生成的内容是否真实反应了模型内部的知识,比如对某个问题(“达拉崩吧国的首都在哪里?”),模型明明不具备对应的内部知识,却生成了一个似是而非的回答(“达拉崩吧国的首都在昆图库塔”),这显然是一种不诚实的回答(图中的state 4)。还存在另外一种常被忽略的不诚实的形式,即模型明明具备对应的内部知识,但是却没有准确地生成出对应的回答(图中的state 2)。比如问模型十次同一个问题,其中多数模型回答对了,证明它具备对应的内部知识,但有时候却回答错了。这可能是各种原因导致的,比如生成过程的随机性[1],比如受上文已经生成的错误内容影响[2]等等。

对模型幻觉的缓解,在这张状态图中表现为一个向上的箭头,即对于已知的问题能准确回答,对未知的问题诚实地说不知道。那么怎样才能达到这样完美的境界呢?

接下来作者提出了另外一个问题:当模型胡说八道的时候,它知道自己在瞎说吗?正式一点来说,就是模型的内部状态是否能够反映出它是否具备特定知识?

直觉上来说,模型的知识存储在参数中,所以某种内部状态(hidden state,activation等)能够反映出知识状态也是很合理的。有很多之前的研究也暗示了这种可能,比如有些研究表明模型内部具有“事实性”方向[3,4,5].

作者通过线性探测的方式来证明,模型的hidden state是能够反映它是否具有对应的特定知识的。首先需要一些模型已知/未知的问题,对这些问题提取最后一个token的hidden state,训练一个线性分类器判断这个问题是否为已知类别。在<1k的数据量下,线性分类器能达到超过85%的准确率,并且在多个LLM上都有类似的结果。这说明模型对于自己是否具备特定内部知识是有比较好的判断能力的

那下一个很自然的问题就是,既然模型知道自己知不知道,为什么不能诚实地表达出来呢?

但是仔细想想的话,就会发现常规的训练并没有教过模型根据内部状态来表达知不知道。在预训练阶段模型一直在预测下一个token;在finetune阶段,模型可能会在很多知识性问题上被训练,但并没有根据模型的内部知识状态做区分,模型学到的是:知道的时候输出内部知识,不知道的时候也给出一个看起来合理的回答;RLHF阶段是模型最有可能学到诚实性的时候,但是此时它会同时优化很多人类的偏好,并不是针对知识性和幻觉做优化。

因此作者提出了RLKF(Reinforcement Learning from Knowledge Feedback)训练框架来针对性地提升模型的知识性和诚实性。
做强化学习,首先需要一个reward。这里需要的奖励模式是:对模型已知的问题,直接回答优于说不知道;对于模型未知的问题,说不知道优于直接回答;也存在一些问题在模型已知的边界上,模型在多次回答中有时候会输出正确答案,有时候会输出幻觉(state 2),这种奖励排序就是正确回答优于不知道优于幻觉回答。

这个奖励模式听起来很合理,但是怎么训练这样一个奖励模型呢?

这里作者首先构建了一个幻觉自动标注工具Dreamcatcher,通过几种与幻觉高度相关的指标,来判断模型生成的是否是幻觉。这些指标包括:
  • 和正确答案的相似度,这个很直接也很有效,但是有时候正确答案并不容易得到,或者相似度计算也存在一些问题,因此还需要其他指标的补充。
  • 答案之间的相似度。之前的研究表明,多次生成之间的相似度是很好的幻觉指标。直觉上也容易理解:如果模型多次生成的是正确回答,那正确答案之间的相似度肯定是很高的;而模型如果生成的是幻觉,那每次生成的幻觉可是各有各的幻想方式,相似度就会低一些。
  • 上面的“模型知不知道”线性探测也得到了一个可以判断问题是否属于已知问题的分类器,对于未知问题,模型生成是幻觉的概率是很大的。
有了Dreamcatcher标注工具,就可以按照上述的奖励模式对模型生成的回答排序,得到训练奖励模型的数据。

接下来训练奖励模型和强化学习的部分和RLHF没有什么区别,就不多赘述了。实际上在获得幻觉标注后可以利用的方法很多,也并不是一定要用强化学习来优化模型,也是可以后续研究的方向。

最后看一眼实验结果:

在事实性和诚实性相关的benchmark上取得了一定提升。事实性的提升可能来源于在模型已知的边界上的那部分数据(图1 中state 2)的训练,提升了模型提取和表达内部知识的能力,这一点和之前提升模型诚实性的方法有一定区别

论文地址:https://arxiv.org/abs/2401.15449
[1] Dola: Decoding by contrasting layers improves factuality in large language models.
[2] How language model hallucinations can snowball.
[3] Inference time intervention: Eliciting truthful answers from a language model.
[4] Discovering latent knowledge in language models without supervision.
[5] Language models (mostly) know what they know.


撰文:匹河;编辑:戴剑波

未经本公众号授权不得转载,欢迎转发。

SparksofAGI
人工智能前沿论文分享(注意!未关注的朋友我是回复不了您的私信的)