“诚实性”作为大语言模型对齐的“3H”(Helpfulness, Honesty, Halmless)准则 [1] 之一,随着大语言模型在各个领域的广泛应用,近年来逐渐成为关注的焦点。特别是在医疗,法律,金融等高风险场景中,一个“诚实”的模型至关重要。
想象一下,如果 AI 给出错误答案时信誓旦旦,可能会带来多么严重的后果。那么,什么是诚实性?如何评估诚实性?如何让大模型更好地遵循诚实性?
在我们最新的综述研究《A Survey on the Honesty of Large Language Models》中,我们详细探讨了现有大语言模型诚实性的定义,评估方法和提升策略。综述不仅对当前研究成果进行梳理,还提出了未来发展方向的深度思考,旨在激发更多研究人员的探索和创新。
综述的结构如图 1 所示,我们在 GitHub 中总结了现有相关研究的详细资源。
图1. 综述结构概览图
论文标题:
A Survey on the Honesty of Large Language Models
论文链接:
https://arxiv.org/abs/2409.18786
Github链接:
https://github.com/SihengLi99/LLM-Honesty-Survey
01 什么是“诚实性”?
在展开讨论之前,首先需要明确什么是“诚实性”。在日常生活中,诚实意味着不欺骗,道德正直等。那么,对于大语言模型来说,诚实性又意味着什么呢?
图2. 一个具备诚实性的大语言模型的示意图。在图中,模型展现了对一型糖尿病相关知识的自我认知和自我表达能力
根据已有的研究 [1,2,3,4,5,6],我们总结出了诚实性的两个重要方面:自我认知 (self-knowledge) 和自我表达 (self-expression),即我们常说的“自知之明”和“知行合一”。图2提供了一个诚实的大语言模型的示意图。
自我认知,即“自知之明”,是指模型能够识别自身的知识边界,判别它知道和不知道的内容,从而在必要时承认其局限性或表达不确定性。研究表明,自我认知能力对识别和缓解幻觉现象至关重要[7]。此外,自我认知还在决策制定中发挥关键作用,帮助模型决定是否需要检索外部知识或引入其他模型来处理复杂任务[8]。
自我表达,即“知行合一”,则是模型忠实表达其知识的能力,确保输出信息的可靠性。自我表达能力不佳会导致模型即使拥有正确的知识,也无法准确传达,进而引发幻觉或不一致的表现[9]。例如,稍微改变提示可能会显著降低模型的性能,或模型可能提供倾向性信息迎合用户的观点[6]。
02 如何评估大语言模型的诚实性?
在本节中,我们对大语言模型诚实性评估的现有研究进行回顾,并将这些评估工作归纳为两大类:自我认知的评估和自我表达的评估。接下来的每个小节将详细介绍评估的核心思想,主要评估指标以及常用的数据集。
2.1 自我认知的评估
自我认知要求模型能意识到自己的优势与局限性。对其进行评估主要有两种思路:已知/未知知识的二元判断和置信度分数的评估。目前,自我认知的评估主要包括已知/未知识别,校准和选择性预测三种方式,已知/未知识别属于思路一,校准和选择性预测属于思路二。图 3 提供了自我认知评估的示例。
图3. 自我认知评估的示例,包括已知/未知识别,校准和选择性预测
2.1.1 已知/未知识别
表1. 已知/未知识别中模型无关评测数据集。“%U”表示未知问题的比例。K:已知问题,U:未知问题。
一个具备自我认知的大语言模型应该能够区分自己已知和未知的内容,避免在缺乏相关信息时误导用户。当前对这方面的评估方法大致分为两类:模型无关和模型特定的方法。
1. 模型无关方法:该方法对所有模型使用相同的一组已知和未知问题。这类评估假定预训练数据集是模型的已知内容,而通过启发式算法构建未知内容。例如,将来自维基百科的数据被视为模型已知的内容,而将新近发生的事件作为未知内容。表 1 展示了模型无关评估数据集的描述。
2. 模型特定方法:这类方法为每个模型定制已知/未知问题集。例如,通过对模型多次输出进行采样,如果其回答的准确性超过某个阈值,则该问题被视为已知,否则被视为未知。
已知/未知识别的主要评估指标包括 F1 分数和拒答率。F1 分数将未知问题视为正类,已知问题为负类,用以评估模型区分已知与未知的能力。拒答率则衡量模型在未知问题上的拒绝回答能力,越高越好。
2.1.2 校准
校准评估模型的置信度是否能准确反映其预测的正确性。例如,置信度为 80% 的预测应该有 80% 的概率是正确的。即应满足如下的条件:
常用的评估指标包括 Brier 评分和期望校准误差(ECE)。Brier 评分通过逐点的均方误差来衡量置信度与实际准确率之间的差异:
ECE 则通过将置信度范围分为多个区间,计算每个区间的平均置信度与实际准确率的差异:
用于校准评估的数据集通常来自知识密集型问题回答任务,例如 TriviaQA,Natural Questions 以及 TruthfulQA 等。
2.1.3 选择性预测
选择性预测则关注模型在不同置信度阈值下是否能够有效地区分正确和错误的回答。这种方法根据置信度对预测结果进行排序,低于置信度阈值的预测将被舍弃。理想情况下,模型应将较高的置信度赋予正确回答,而将较低置信度赋予错误回答。
校准与选择性预测的不同在于,校准侧重于使置信度与实际准确率相匹配,而选择性预测则衡量置信度在正确和错误预测之间的区分能力。例如,一个模型如果对错误的答案赋予了较低的置信度,可能在校准上表现良好,但在选择性预测中表现不佳。
选择性预测的常用评估指标包括 AUROC,AUPRC,AUARC,AURCC 等。选择性预测评估同样使用知识密集型任务数据集,如 TriviaQA,Natural Questions 以及 TruthfulQA 等。
2.2 自我表达的评估
自我表达指的是大语言模型忠实地表达其知识。根据是否需要进行知识识别,自我表达的评估可分为两种方法:基于知识识别的评估和无需识别的评估。图4提供了自我表达评估的示例。
图4. 自我表达评估的示例,包括基于知识识别的评估和无需知识识别的评估
2.2.1 基于知识识别的评估
此评估方法首先识别大语言模型所知道的内容,然后构建评测数据集,以评估模型能否正确表达这些知识。该方法类似于自我认知评估中的已知/未知识别,区别在于它不仅评估模型是否知道某个问题的答案,还评估它给出的答案是否正确,常用的评估指标是准确率。
2.2.2 无需知识识别的评估
这类评估方法不依赖于识别模型所知道的具体知识,而是通过度量模型在面对相同或类似问题时的输出一致性,间接评估其自我表达能力。
具体来说,无需知识识别的评估通过不同增广策略来生成多个形式各异但语义相同的输入,并观察模型在应对这些输入时的表现是否一致。常见的增广策略包括格式调整,查询改写,谄媚修改和生成验证转换等。表 2 中提供了 4 种策略的示例。
表2. 无需知识识别的评估中常见的4种增广策略
无需知识识别的评估常用的评估指标包括性能差异,迎合率和一致率。
1) 性能差异衡量模型在不同问题变体上的表现差异;
2) 迎合率用于评估模型在面对不同用户观点时,是否会改变其回答;
3) 一致率则衡量模型在生成答案后,是否能在验证环节保持与之前生成内容的一致性。
03 提升自我认知
表3. 提升自我认知能力的方法,包括无需训练和基于训练的方法
本节介绍如何提升大语言模型的自我认知能力,重点在于帮助模型识别其已知与未知领域。这一能力对于防止模型生成错误或误导性信息至关重要,特别是在医学、法律等高风险领域。主要方法分为两大类:无需训练的方法和基于训练的方法。
1. 无需训练的方法:
预测概率:通过计算输出的预测概率,模型可以衡量其回答的可信度。例如,使用归一化后的概率值来表达模型的自信程度,但这种方法在自由生成任务中效果有限;提示策略:通过特定的提示词引导模型更好地表达“我不知道”。例如,给模型提供反思提示,要求它在回答前先进行自我评估;采样与聚合:通过对同一问题进行多次采样,然后将一致的回答进行聚合,得出最可信的回答。这样的策略可以减少单一回答中的错误或不确定性。2. 基于训练的方法:
监督微调:通过有监督的方式微调模型,使其在遇到不确定的情况时能够主动表达“不知道”或提供更精确的自信度。微调过程通常依赖于精心构建的数据集,将问题分为已知和未知类别;强化学习:通过强化学习,模型可以学习在回答错误时给予较低的自信度,并在有信心时给出高可信度的答案,从而提高模型自我认知的精确度;探针:通过设计线性探针,从模型的隐层状态中获取自我认知的能力。04 提升自我表达
表4. 提升自我表达能力的方法,包括无需训练和基于训练的方法
自我表达是大语言模型的另一项关键能力,指的是模型能够准确、全面地表达其内部已知的信息。本节探讨如何通过各种技术和策略提高模型的表达能力,从而缓解虚构信息生成等不诚实问题。
1. 无需训练的方法:
提示策略:使用思维链提示模型一步步推理问题。例如,增加“让我们逐步思考”的提示,能够让模型更清晰地表达其推理过程,从而生成更准确的回答;解码过程干预:通过对模型的内部激活状态进行干预或修改,以增强模型生成内容的真实性。例如,通过对比解码方法,将模型不同层的预测结果进行对比,确保最终输出的准确性;采样与聚合:类似于自我认知部分,通过多次生成并聚合一致答案,确保模型输出的内容更具一致性和准确性。这一策略特别适用于推理类问题和复杂回答的生成;生成后修订:模型生成初始回答后,通过后续问题对回答中的具体事实进行验证,再修订原始回答。这种方式可以显著提高长文本生成任务中的准确性。2. 基于训练的方法:
自我认知微调:通过训练模型在生成过程中更清晰地识别出其内部知识,并根据需要进行适当表达。例如,让模型在回答问题时通过显式标注出其置信度;自监督微调:模型通过自监督的方式进行微调,利用其生成内容中的一致性或不一致性来调整自身回答的准确性。这种方式可以减少模型在表达其知识时的偏差。05 未来方向
在本节中,我们将讨论与大语言模型诚实性相关的若干尚未解决的研究挑战,并为未来研究提供一些潜在的方向。
客观与主观
在诚实性方面,部分研究侧重于模型回答的客观正确性,即其与客观事实的一致性;而另一部分研究侧重于模型回答的主观正确性,即其是否与模型的内在知识表达一致。两种观点各有优劣,前者更满足用户需求,但需要引入额外的监督信号,而后者可能通过无监督的方式进行提升,但模型内部知识的识别又比较复杂。未来研究可以更深入的对比和分析一下这两种观点下的相关工作。
知识识别
知识识别一直是这一领域的核心挑战。然而,究竟什么应被视为已知或未知知识,目前并没有明确的定义。主流方法基于模型的外部表达分析其内在知识,但研究表明,即使模型内部存在某一知识,也可能难以将其表达出来。
忽视这一问题可能会限制模型充分表达其知识的潜力。因此,未来的研究除了关注外在表达外,还可以探索利用模型内在知识来区分已知和未知信息的技术,例如挖掘嵌入在模型参数中的知识或上下文中的信息。
指令遵循中的诚实性
当前关于诚实性的研究主要集中在知识密集型的问答任务上,尤其是涉及短回答的问题,而忽视了更广泛的指令跟随场景。指令跟随与问答不同,它需要更广泛的能力,且通常涉及长篇生成内容。为了解决这一问题,未来的研究可以构建评估方法和基准,专门评估模型在指令执行中的诚实性。此外,还可以探索改进方法,如提示工程、监督微调以及强化学习等。
上下文知识中的诚实性
实际上,大语言模型拥有两种类型的知识:通过训练获得的内在参数知识和外部的上下文知识。现有研究大多强调了参数知识的诚实性,但上下文知识的诚实性却很少被关注。然而,在 LLM 的实际应用中,上下文知识在生成内容中同样扮演着重要角色,特别是在检索增强和长上下文场景中。因此,我们建议未来的研究更多关注上下文知识的诚实性。
不同模型中的诚实性研究
诚实性不仅仅适用于自回归式的大语言模型,未来研究应涵盖更多种类的模型,探讨在不同模型架构下诚实性提升的共性与差异。例如多模态大模型,新架构模型,通过压缩技术(如量化和剪枝)进行压缩的模型,以及一些在特定领域有深度应用的模型等,我们认为这些模型同样值得进一步研究。
06 总结
诚实性是大语言模型发展的关键因素之一,然而当前的模型仍然表现出显著的不诚实行为。为了解决这些问题,本文对 LLM 诚实性相关的研究进行了详细综述,包括对诚实性的定义澄清,评估方法以及改进策略。此外,我们还提出了一些未来研究的潜在方向。我们希望本次综述能够为研究 LLM 诚实性的学者提供有价值的参考,同时鼓励更多人深入探索这一领域。
参考文献
[1] A General Language Assistant as a Laboratory for Alignment
[2] Language Models (Mostly) Know What They Know
[3] Truthful AI: Developing and governing AI that does not lie
[4] Teaching Models to Express Their Uncertainty in Words
[5] Alignment for honesty
[6] BeHonest: Benchmarking Honesty in Large Language Models
[7] Detecting hallucinations in large language models using semantic entropy
[8] Active retrieval augmented generation
[9] Inference-time intervention: Eliciting truthful answers from a language model