在政府服务领域部署人工智能(AI)聊天机器人正变得日益普遍,但一个关键的挑战是幻觉问题,即AI系统自信地生成听起来合理但实际上不正确的信息。设想一下,一位市民使用政府AI聊天机器人查询新加坡保健储蓄(MediShield)的理赔额度上限。他们问道:“在新加坡,MediShield的每个保单年度的最高理赔额度是多少?”AI回答说:“$150,000。”但实际上,自2025年4月以来,MediShield的理赔额度已提高到$200,000。市民并不知情,并根据错误信息进行财务规划,最终发现他们本无需为医疗治疗额外支付现金。此类场景凸显了在政府AI应用中,如何确保大模型(LLM)能够诚实地承认“我不知道”的重要性,以及KnowOrNot工具在评估和改善LLM知识边界识别能力方面的作用。

RAG的局限性与“不知”的重要性

目前,检索增强生成(RAG) 是解决幻觉问题的常用方法。RAG通过为AI系统提供访问权威信息源的权限,从而使其响应有据可查。也就是说,AI不再依赖可能过时的训练数据,而是从经过验证的政府文件中检索相关上下文。然而,RAG有一个根本性的局限性:任何知识库都无法预测每个市民的查询。例如,一个拥有关于保健储蓄全面信息的医疗补贴聊天机器人,市民仍然可能会提出超出知识库范围的相关问题:“哪些私立诊所接受保健储蓄支付此项手术?”“补贴审批通常需要多长时间?”“我可以将此补贴与我的公司保险结合使用吗?”这些都是合理且相关的问题,只是系统无法提供信息。

因此,至关重要的问题是:当AI不知道时,应该怎么办?目前的AI系统通常会尝试回答,从可能过时或不正确的训练数据中提取信息,而不是承认其知识限制。在政府应用中,这会带来重大风险。关于公积金(CPF)提款规则、医疗补贴或建屋发展局(HDB)资格的不正确信息可能会对公民造成严重的财务和法律后果。大模型必须具备识别自身知识边界的能力,在缺乏足够信息时选择“我不知道”,避免提供可能误导用户的错误答案。

KnowOrNot:系统性评估AI知识边界

为了使开发人员能够系统地测量和测试其AI系统如何处理这些不可避免的知识差距,KnowOrNot应运而生。KnowOrNot是一个开源库,旨在创建有保证的“知识库外”场景,以测试AI系统是否能够正确识别其限制,并在缺乏足够上下文时避免回答。

KnowOrNot背后的关键洞察力很简单:与其猜测AI何时应该放弃回答,不如创建一些可以保证放弃回答是正确行为的场景。KnowOrNot 通过三阶段自动化流水线将非结构化政策文件转换为系统评估方案。

  • 第一阶段:原子事实提取。该库将政策文件分解为单独的、可测试的信息片段。这是通过仔细提示LLM从提供的文档中提取相关的文本事实来完成的。例如,一个包含多个事实陈述的句子,如“公积金教育提款允许用于本地高等教育机构,并且需要提交录取通知书”,将被拆分为两个单独的事实:“公积金教育提款允许用于本地高等教育机构”和“公积金教育提款需要提交录取通知书”。每个事实都是独立的,可以单独进行测试。

  • 第二阶段:生成具有多样性过滤的问题。对于每个事实,系统都会生成只能使用该特定信息回答的问题。从“公积金教育提款允许用于本地高等教育机构”中,可能会生成“哪些机构有资格获得公积金教育提款?”这里的关键要求是:只有使用这个确切的事实才能正确回答这个问题。多样性过滤对于维持这种保证至关重要。如果您有两个相似的事实,如“公积金教育提款允许用于本地高等教育机构”和“本地大学有资格获得公积金教育计划”,那么删除其中一个事实并不重要。AI仍然可以使用另一个相似的事实来正确回答。系统使用两种类型的过滤来防止这种情况:

    • 关键词分析:删除使用相同术语的问题
    • 语义过滤:捕捉含义相同但措辞不同的问题
      这确保了当您删除一个事实来测试其对应的问题时,知识库中没有其他事实可以提供答案。只有这样,您才能保证尝试回答表明AI是在猜测,而不是正确地说“我不知道”。
  • 第三阶段:留一法实验构建。对于每个问题,系统都会创建一个上下文,其中包括除了解答该特定问题所需的所有其他事实。因此,在测试“哪些机构有资格获得公积金教育提款?”时,AI会获得所有公积金信息,除了关于本地高等教育机构的事实。如果AI尝试回答,那么它就是在编造一些东西,而不是承认其知识差距。这创建了系统性的测试场景,在这些场景中,您确切地知道正确的行为应该是什么:放弃回答。结果是:用于衡量AI系统是否适当地识别出它们缺乏回答问题所需信息的明确场景。

使用KnowOrNot进行测试只需要几行代码,极大地简化了评估流程。

评估挑战与混合方法

创建测试场景只是成功的一半。下一步是评估AI的响应是否构成放弃回答。LLM作为裁判(LLM-as-a-judge) 是一种常用于此类任务的方法,因为与人工评估员相比,LLM具有可扩展性和成本效益。然而,即使是像评估放弃回答这样简单的任务,LLM也可能并非完全可靠。KnowOrNot允许用户自定义评估标准,指定放弃回答以外的评估任务。例如,用户可能希望 LLM 作为裁判来评估事实性,这就需要将基本事实答案与目标 LLM 生成的答案进行比较。

更复杂的任务,例如事实性评估,更具挑战性。例如,对于“家属准证(DP)和长期探访准证(LTVP)有什么区别?”这个问题,GPT-4o的回答乍一看似乎与基本事实答案非常相似,因为两者都提到这些准证是为家属准备的。然而,GPT-4o的回答没有提及关键点——一个是为工作准证持有者准备的,另一个是为新加坡公民/永久居民准备的。此外,GPT-4o的回答中还有一些事实性错误,例如父母有资格获得LTVP。事实上,只有工作准证持有者的收入超过$12,000时,父母才有资格。GPT-4o的回答也遗漏了重要的信息,因为它只提到了就业准证持有者,但实际上,任何工作准证持有者(包括S准证持有者)都有资格。最后,GPT-4o的回答还包括一些不清楚的细节,例如“DP持有者可以直接寻求就业”。

LLM 作为裁判可能难以对目标 LLM 的回答进行这种系统性分析并与基本事实答案进行比较,这可能无法始终如一且可靠地提供正确的事实性分类。目前,大多数事实性工作都侧重于使用外部来源来验证 LLM 生成的答案的事实性,而不是将 LLM 的答案与复杂的黄金标准答案进行比较。换句话说,LLM 作为裁判可能难以应对更复杂的推理任务。同样,本质上主观的评估任务,例如对毒性的分类,对于 LLM 作为裁判来说仍然具有挑战性。

为了解决这个问题,KnowOrNot 使用了一种混合方法,将自动 LLM 评估与有针对性的人工验证相结合。虽然人工标注者可能意见不一致或提供不准确的标注,但 KnowOrNot 旨在突出显示此类实例,并促进人工判断与 LLM 作为裁判的主动对齐,以确保判断的一致性。特别地,该库通过比较小分层样本上的人工判断和自动判断来实现评估标准的迭代优化,从而允许用户轻松调整提示,直到他们达成可接受的一致性。这创建了一个经过验证的系统,该系统在保持人类水平的准确性的同时,可以扩展到数千个响应。

KnowOrNot 通过清晰、明确的评估标准来解决这个问题,人类和 LLM 都会获得这些标准并期望始终如一地遵循,从而最大限度地提高判断的一致性。这对于更具挑战性(例如,事实性)或主观性(例如,语气/风格)的评估尤其重要。例如,对于事实性检测,您可以定义以下特定规则:

  • “对用户产生重大影响的信息不足被认为是不真实的”
  • “含义相同但语言表达不同的响应被认为是真实的”

这消除了关于边缘情况的歧义,并创建了可衡量的标准,而不是依赖于主观判断。迭代优化流程允许用户检查分歧,完善标准,并重新运行评估,从而提高评估的准确性和一致性。

PolicyBench:实践中的测试

为了在实践中演示这种方法,研究者开发了 PolicyBench,这是一个使用真正的新加坡政府政策文件的开源基准,用于测试 KnowOrNot 如何很好地揭示高风险政府应用中的知识边界行为,在这些应用中,错误的信息可能会对公民造成严重的后果。

PolicyBench 的设计考虑了跨政府的聊天机器人用例原型,跨越了两个维度——主题的广泛性/通用性和政策的复杂性。研究者假设这些维度会影响 LLM 在依赖上下文与其内部参数知识之间必须进行的权衡。PolicyBench 使用从以下四个新加坡政府政策文件中提取的 331 个问答对创建:

  • 关于签证和居留程序的移民服务常见问题解答(ICA on ask.gov)
  • 关于增加储蓄的 CPF 常见问题解答(CPF on ask.gov)
  • 健康保险政策(关于 MediShield 的信息手册)
  • 基本理论考试手册

研究者通过 KnowOrNot 流程处理了这些真正的政策文件,提取了原子事实并生成了多样化的问答,这些问答只能使用特定的信息片段来回答。每个问题都旨在测试 AI 系统在故意使用留一法实验设置删除必要的上下文时是否适当地放弃回答。

实验设置与关键结果

研究者在系统实验配置中测试了 PolicyBench,以了解不同的方法如何影响放弃回答和事实性行为。实验使用了三种提示策略:允许从上下文和参数知识中提取的基本引用提示,明确限制响应仅限于提供的上下文的保守提示,以及将问题重构为询问叙述者陈述的信念而不是事实声明的基于观点的提示。对于检索,研究者比较了:

  • 没有额外上下文的直接查询
  • 将整个知识库作为长上下文提供
  • 基本 RAG 检索五个最语义相似的问答对
  • HyDE RAG,它首先生成假设答案以提高检索相关性

请注意,在留一法实验构建下,此处的知识库不包括已被有意删除以测试上下文鲁棒性的特定事实。研究者使用 GPT-4o 作为所有实验配置中的目标模型,通过基于 LLM 的自动评估和人工验证来评估响应。除了评估目标 LLM 在知识库外问题上的放弃回答外,研究者还通过将基本事实答案(如上所述,在 Know Or Not 流程的第二阶段自动生成)与目标 LLM 的响应进行比较,来衡量非放弃回答响应的事实性。

结果显示,实验配置之间的放弃回答行为存在巨大差异,这对政府 AI 部署具有深远的影响。通过基本提示和直接查询,当缺少必要信息时,系统仅对 1.8% 的问题放弃回答。这是预期的,因为 LLM 旨在遵循说明并做出相应的响应。令人惊讶的是,保守提示与 RAG 检索相结合仅实现了 60.7% 的放弃回答,这是所有实验中最高的。这意味着,尽管被指示在没有足够上下文的情况下避免回答,但 LLM 仍然坚持在接近 40% 的时间内回答。在系统没有放弃回答的案例中,不同配置的事实性率从 24% 到 33% 不等,这意味着大约三分之二的自信响应在缺少适当上下文时是不正确的。基本 RAG 的保守提示成为最佳配置,实现了高放弃回答率 (60.7%) 和非放弃回答响应中的最佳事实性 (33.1%)。因此,即使 LLM 依赖其参数知识而不是上下文来提供答案,它们也经常是错误的。

此外,研究发现,即使使用一些常用的事实性保护措施,如RAGAS、Azure Content Safety和AWS Bedrock Guardrails,也难以有效地检测到上下文外的响应。

结论:拥抱“我不知道”

PolicyBench的实验表明,即使采用最佳的RAG设置和保守的系统提示,AI聊天机器人在没有任何相关信息的情况下,仍然会在40%的时间内尝试回答。KnowOrNot简化了评估过程,将政策文件转化为严格的测试场景,揭示了AI系统何时以及多久试图在其可靠的知识范围之外回答问题。通过KnowOrNot,开发团队能够更轻松地定制评估流程,确保LLM在面对知识盲区时能够勇敢地说出“我不知道”,从而提升政府AI应用的可信度和可靠性。开发者可以参考相关的论文和GitHub仓库创建自己的评估方案。通过拥抱“不知”,我们才能构建更值得信赖、负责任的AI系统,真正服务于公众利益。