Q963评测与可观测真题解析评测AgentAlpha 社区真题库约 8 分钟更新 2026-09-29

如何度量幻觉

如何度量幻觉

1️⃣ 考察意图

面试官想考察你对“幻觉”这一LLM核心缺陷的评估体系是否系统化,而非只停留在概念层面。这属于系统设计+工程取舍类问题,刁钻点在于:你能否区分“事实性幻觉”和“忠实性幻觉”并给出不同度量方案,以及是否清楚自动指标与人工评估的局限性与互补性。答好了能展示你对评估方法论(如FactScore、SelfCheckGPT)的实战理解,以及设计评估Pipeline的工程思维。

2️⃣ 标准答

度量幻觉需要先明确类型:事实性幻觉(模型编造不符合世界知识的内容)和忠实性幻觉(模型输出与给定上下文矛盾)。评估方法分三大类:自动指标、人工评估、基准数据集。以下是具体方案:

  • 自动指标:基于事实性
  • FactScore:将生成拆解为原子事实(atomic facts),与知识库(如Wikipedia)逐条比对,计算精确率/召回率。例如,模型说“爱因斯坦1905年提出相对论”,FactScore会检查“爱因斯坦”“1905年”“相对论”三个事实是否成立。坑:知识库覆盖不全时,漏判率高,需结合多源验证(如Google Search API)。
  • TruthfulQA:用选择题形式评估模型是否避免常见误解(如“地球是平的”),但仅适用于特定测试集,不能泛化到开放域。
  • 工程取舍:FactScore粒度细但计算成本高(每句需多次检索),适合离线评估;TruthfulQA轻量但覆盖窄,适合快速筛选。
  • 自动指标:基于忠实性
  • Entailment-based:用NLI模型(如DeBERTa)判断生成是否蕴含上下文。例如,给定文档“公司Q3营收增长10%”,模型输出“营收下降”,NLI判定为矛盾。实战坑:NLI模型对长文本、否定句(如“不是增长”)敏感度低,需用RoBERTa-large微调版。
  • SelfCheckGPT:对同一输入多次采样(如temperature=0.7,采样5次),计算生成间的语义一致性(如BERTScore)。若某句与其他采样差异大,则可能幻觉。为什么这么做:无需外部知识库,适合评估模型内部知识冲突,但无法检测“一致但错误”的幻觉(如所有采样都编造同一事实)。
  • 人工评估:黄金标准
  • 标注员按粒度打分:句子级(每句是否事实错误)、段落级(逻辑连贯性)、文档级(整体可信度)。通常用Likert 5分制(1=完全幻觉,5=完全准确)。成本:每1000条需3-5人标注,耗时8-12小时,且标注员间一致性(Cohen’s Kappa)需≥0.7才有效。
  • 工程取舍:人工评估最可靠但不可扩展,适合作为自动指标的校准集(如计算Spearman相关系数)。
  • 基准数据集
  • HaluEval:包含3000+条对话,每条标注了幻觉类型(事实错误/上下文矛盾/逻辑错误),用于评估检测器。实战:在HaluEval上跑FactScore,发现其与人工标注的Spearman相关系数仅0.45,说明自动指标有偏差。
  • FELM:聚焦事实性幻觉,含5000条生成+知识库证据,适合评估检索增强(RAG)场景。
  • TruthfulQA:817道题,覆盖38个主题,但题目偏简单(如“太阳从哪升起?”),对复杂推理场景不够。
  • 评估流程设计
  • 第一步:用SelfCheckGPT做快速筛选(成本低,召回率约70%)。
  • 第二步:对疑似幻觉样本用FactScore+知识库验证(精确率提升至85%)。
  • 第三步:人工抽检10%样本,校准自动指标阈值(如FactScore<0.6判定为幻觉)。
  • 实际落地的坑:知识库更新滞后(如模型说“2024年奥运会”但知识库只到2023年),需加入时效性标记(如“知识截止日期:2023-12”)。

3️⃣ 答题模板(30 秒电梯版)

“这个问题我从三个层面回答:第一,按幻觉类型区分,事实性用FactScore,忠实性用SelfCheckGPT;第二,自动指标有成本-精度取舍,比如FactScore细但慢,SelfCheckGPT快但漏检一致幻觉;第三,人工评估是黄金标准但不可扩展,需用HaluEval等基准做校准。总结一句:度量幻觉没有银弹,必须组合自动+人工,并针对业务场景调阈值。”

4️⃣ 高频追问 & 应对

追问 1:你提到FactScore,具体怎么实现原子事实拆解?有没有开源工具?

原子事实拆解通常用LLM(如GPT-4)做句子分割,提示词类似“将以下句子拆成独立事实,每个事实只含一个断言”。开源工具如FactScore的官方代码(GitHub)用GPT-3.5做分割,但准确率约80%;更可靠的是用DecomP(论文“Decomposed Prompting”),它通过递归分解提高召回率。实战中,我建议先用GPT-4做分割,再用规则过滤(如去除长度<5字符的碎片),避免噪声。

追问 2:如果业务场景是实时对话(如客服),如何低延迟度量幻觉?

实时场景不能跑FactScore(太慢)。方案是:用SelfCheckGPT的变体,只采样2次(而非5次),计算余弦相似度(用Sentence-BERT),阈值设为0.8。延迟约50ms/句。另一个技巧是缓存:对高频问题(如“退款流程”)预计算知识库证据,用NLI模型做实时比对,延迟可降到20ms。取舍是:召回率会从70%降到55%,但可接受。

追问 3:自动指标和人工评估的相关性低,你怎么优化?

核心是校准。我会在HaluEval上跑多个指标(FactScore、SelfCheckGPT、Entailment),计算每个指标与人工标注的Spearman相关系数,然后做加权融合(如FactScore权重0.5,SelfCheckGPT权重0.3,Entailment权重0.2)。另一个方法是主动学习:对自动指标不确定的样本(如分数在0.4-0.6之间),优先送人工标注,再用标注结果微调指标阈值。这样能在不增加太多人工成本下提升相关性。

5️⃣ 避坑 · 常见错误答法

  • ❌ 只提“用BLEU/ROUGE评估幻觉” → ✅ BLEU/ROUGE衡量词重叠,与事实性无关,必须用基于事实的指标(如FactScore)或基于一致性的指标(如SelfCheckGPT)。
  • ❌ 说“人工评估最准,所以只用人工” → ✅ 人工成本高且不可扩展,正确做法是自动指标做初筛,人工做校准,并量化相关性(如Spearman系数)。
  • ❌ 混淆“幻觉”和“错误输出”,认为所有错误都是幻觉 → ✅ 幻觉特指“无根据的编造”,而错误输出可能来自上下文理解偏差(如指令误解),需区分评估。

6️⃣ 简历呼应

  • 如果你有RAG项目:从“检索质量影响幻觉”切入,展示你如何用FactScore评估检索结果(如Top-5文档的召回率),并对比不同检索器(BM25 vs DPR)的幻觉率。
  • 如果你只做过传统NLP:用“文本蕴含任务”类比,说明NLI模型(如DeBERTa)如何迁移到忠实性评估,并强调从“分类”到“生成”的评估思维转变。
  • 如果你是校招无项目:聚焦HaluEval或TruthfulQA的论文复现,展示你跑过指标(如FactScore的精确率/召回率),并讨论自动指标与人工的相关性(如Spearman系数0.45)。
  • “FactScore: Fine-grained Atomic Evaluation of Factual Precision in Long-form Text Generation” (Min et al., 2023)
  • “SelfCheckGPT: Zero-Resource Black-Box Hallucination Detection for Generative Large Language Models” (Manakul et al., 2023)
  • “HaluEval: A Large-Scale Hallucination Evaluation Benchmark for Large Language Models” (Li et al., 2023)
  • “TruthfulQA: Measuring How Models Mimic Human Falsehoods” (Lin et al., 2022)
  • “DecomP: Decomposed Prompting for Factual Consistency Evaluation” (Chen et al., 2023)

—— 本场面试完 ——

我们不做玩具级 Demo 教学。训练营的作业是开源项目和论文——我们想陪伴你,做出能改变生活、最后改变世界的项目。