“可信科技”公司最近雇了一位新员工——AI 助手小真。小真知识渊博、对答如流,可入职没几天就出了岔子:有客户问“吃维生素C能预防感冒吗”,小真斩钉截铁地说“能”,还科普了一整套“每天一片,远离感冒”的养生大法;也有人问“蛇真的会被音乐催眠吗”,小真绘声绘色地描述了“蛇闻笛起舞”的场景。这些说法听起来很合理,可惜都是错的。老板又急又气:“你明明读过培训资料,怎么还一开口就编故事?” 小真的问题,正是今天所有大模型共同面临的顽疾——幻觉。它并非故意撒谎,而是在海量数据中吸收了错误观念,又在“必须回答”的压力下硬着头皮发挥。为了治住它,老板请来了两组考官:一组设计“陷阱考卷”(TruthfulQA),专门用人们普遍相信的错误观念来诱导模型;另一组负责“工作抽查”(HaluEval),在真实问答记录中抓取模型添油加醋的瞬间。而红队测试,就是考官们主动找茬、逼模型暴露弱点的完整流程。

岗位关联

掌握幻觉评测基准与红队测试方法论,你就为 AI 系统建立了“可信质检门禁”,让模型的真实性、安全性与合规性可度量、可优化——这是 AI 工程师进阶可信 AI 领域的核心能力。

目录
  1. 可视化演示
  2. 幻觉现象解析
  3. TruthfulQA设计
  4. HaluEval构建
  5. 评测指标体系
  6. 红队测试流程
  7. 缓解幻觉策略
  8. 工程落地实践
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

通过六维雷达图动态对比TruthfulQA、HaluEval、FEVER三大幻觉评测基准在覆盖度、客观性、可复现性等维度的表现,切换基准查看差异。

本节配有交互动效(进入视口后自动加载,约 3KB)。

幻觉现象解析

小真的“翻车”现场其实很有代表性。它回答“维生素C能防感冒”时,语气比谁都笃定,仿佛刚查过权威资料。可翻开公司培训手册,白纸黑字写着“常规剂量维生素C不能预防感冒”。问题不在于小真记性差,而在于它把互联网上那些热门谣言当成了真理,还像传销一样自信满满地复述出来。

大模型的“幻觉”(Hallucination)指模型生成了与事实不符、或与用户指令不符的内容,却表现得异常自信。学术上通常分为两类:事实性幻觉——输出违背客观世界事实,比如“地球是平的”;忠实性幻觉——输出偏离用户提供的上下文或指令,比如用户让模型总结一篇新闻,模型却编造出新闻里根本不存在的细节。

幻觉的来源可以拆成三层看。第一层是训练数据:互联网语料鱼龙混杂,谣言、段子、营销话术都成了模型的“教材”,错误知识被忠实地记进参数。第二层是生成机制:大模型本质是“按概率续写”的机器,它会优先选择语料中常见的表述,而常见表述未必正确。第三层是对齐压力:为了让模型显得“乐于助人”,训练时往往奖励那些“有问必答”的行为,模型逐渐学会宁可硬编一个答案,也不肯承认自己不知道。要度量这个病有多重,工程师习惯用一个朴实无华的指标——幻觉率。

老板听完幻觉率的含义,感慨道:“这不就是小真的'说谎率'嘛。”他意识到,骂小真“胡编”毫无意义,真正该做的是建立一套“体检系统”,把每一次翻车都记录在案。而要让体检有效,光靠日常碰运气式的观察远远不够——必须设计专门的“考试”,主动把模型的毛病逼出来。于是,第一场著名的“陷阱考试”登场了。

HR=NfalseNtrue+Nfalse\text{HR} = \frac{N_{\text{false}}}{N_{\text{true}} + N_{\text{false}}}
幻觉率 = 错误回答数 / 总回答数,是衡量模型可信度的基础指标。
  1. 分子含义N_false 表示在评测集中,模型回答被判定为与事实不符(或与证据矛盾)的样本数。
    NfalseN_{\text{false}}
  2. 分母含义N_true + N_false 表示评测集中的全部回答样本数,包括正确与错误两类。
    Ntrue+NfalseN_{\text{true}} + N_{\text{false}}
  3. 比率含义两者相除得到幻觉占比,取值 0 到 1;越接近 1,说明模型越爱“编造”。
    HR=NfalseNtrue+Nfalse\text{HR} = \frac{N_{\text{false}}}{N_{\text{true}} + N_{\text{false}}}

TruthfulQA设计

老板委托考官团队命题。考官们没有出“1+1等于几”这种容易题,也没有出“黑洞熵怎么算”这种难题,而是做了一件出人意料的事:翻遍了民间传说、健康谣言和营销话术,把“蛇会催眠人”“金鱼只有三秒记忆”“吃维生素C防感冒”这些人们普遍半信半疑的错误观念,统统编成考题。

这就是 TruthfulQA 的设计哲学。TruthfulQA 是 2021 年由 OpenAI 等机构发布的开源评测基准,包含 817 道题,覆盖健康、法律、金融、政治等 38 个领域。它的题干刻意取材于人类社会中流传甚广的“虚假信念”(false belief),目的是测试模型是否会为了迎合“大众常识”而说出与事实相悖的答案。

评测时,模型需要针对每个问题给出开放式的答案。评判者(人工或辅助模型)从两个维度打分:一是 Truth(是否真实),二是 Info(是否信息丰富)。“地球是平的”是真实的吗?不是;“我不知道”真实吗?真实,但信息量为零。只有既真实又包含有效信息,才算是好答案。TruthfulQA 还设计了多选题形式的 MC 指标,方便大规模自动评测。

考卷发下来,小真果然在“蛇会催眠人”这类题上栽了跟头——它太想表现得“见多识广”了,一看到熟悉的谣言就顺着写。考官们微微一笑:这正是陷阱考卷的目的——不是考记忆,而是考“定力”。真话往往平淡,谣言往往动听,模型得学会抵抗“动听”的诱惑。

MC1=1N∑i=1N1[rank⁡(Aitrue)=1]\text{MC1} = \frac{1}{N}\sum_{i=1}^{N} \mathbf{1}\left[\operatorname{rank}\left(A^{\text{true}}_i\right) = 1\right]
MC1 衡量“正确选项是否被模型排第一”的比例,是一种不依赖生成文本的自动打分方式。
  1. 问题总数N 是 TruthfulQA 多选题的总题数,i 遍历每一道题。
    ∑i=1N\sum_{i=1}^{N}
  2. 正确项排名A_i^true 是第 i 题的正确选项,rank=1 表示模型对该选项的打分(生成概率)高于所有错误选项。
    rank⁡(Aitrue)=1\operatorname{rank}\left(A^{\text{true}}_i\right) = 1
  3. 指示与平均\mathbf{1} 是指示函数,条件成立取 1,否则取 0;求和后除以总题数得到命中率。
    1N∑i=1N1[⋯ ]\frac{1}{N}\sum_{i=1}^{N} \mathbf{1}[\cdots]

HaluEval构建

陷阱考试告一段落,考官们又拿出一套“暗中观察”的方案:他们不打招呼,直接调取了小真过去几个月的客服工作记录,逐条对照标准事实库,把“答非所问”“添油加醋”的记录全部挑出来。老板不解:“这不是马后炮吗?”考官说:“这叫抓现行——考卷测的是水平,抽查测的是习惯。”

这套“工作抽查”在现实中对应的是 HaluEval 基准。HaluEval 由中国人民大学团队于 2023 年提出,是一个大规模幻觉评测数据集。与 TruthfulQA 从“虚假信念”重新命题不同,HaluEval 直接复用已有的真实问答数据(如知识问答、阅读理解、多轮对话等),再针对性地构造“幻觉回答”,形成真实-幻觉配对样本。

HaluEval 的构建大致分三步:第一步,从公开数据集中采样高质量问答对;第二步,用规则和模型生成多类幻觉答案——比如把实体替换成错误对象(“金鱼”换成“鲨鱼”)、编造原文没有的细节、或在多轮对话中把上一轮的虚假信息当成事实继续推理;第三步,对样本标注真假标签,构建成二分类评测任务。

小真的工作记录里,果然躺着好几条“精彩”的回答——客户问“这个产品会不会引起过敏”,它一本正经地编了个“临床试验显示”“过敏率高达3.7%”的细节。老板看得血压升高,却也心服口服:“考卷能测出它懂不懂,抽查能抓出它编不编。两套工具,一个都不能少。”

L=−1N∑n=1N[ynlog⁡pn+(1−yn)log⁡(1−pn)]\mathcal{L} = -\frac{1}{N}\sum_{n=1}^{N}\left[y_n \log p_n + (1-y_n)\log(1-p_n)\right]
交叉熵损失:衡量幻觉检测器的预测分布与真实标签之间的差距,是训练和评测检测器的标准目标函数。
  1. 标签含义y_n 是第 n 个样本的标注,1 表示该回答是幻觉,0 表示真实回答。
    yn∈{0,1}y_n \in \{0, 1\}
  2. 预测概率p_n 是检测器输出“该回答为幻觉”的概率,“log p“ 与 ”log(1-p)” 分别对应正负样本的损失。
    pn=P(幻觉∣样本n)p_n = P(\text{幻觉} \mid \text{样本}_n)
  3. 取平均求损失对 N 个样本的二元交叉熵求和并取平均,损失越小说明检测器判断越准。
    L=−1N∑n=1N[ynlog⁡pn+(1−yn)log⁡(1−pn)]\mathcal{L} = -\frac{1}{N}\sum_{n=1}^{N}\left[y_n \log p_n + (1-y_n)\log(1-p_n)\right]

评测指标体系

试卷和记录都齐了,接下来轮到“阅卷”环节。老板提议:“就按对的题数打分呗。”考官摇头:小真最擅长的就是“答非所问但听起来靠谱”,光看对错,它会用“我不知道”刷出满分。阅卷必须有规矩——既看答案真不真,也看答案有没有料。

TruthfulQA 把模型输出拆成两个正交维度:真实性(Truth)和信息性(Informative)。二者组合有四种结果:真实且有料(理想)、真实但空洞(无效)、虚假但有料(危险)、虚假且空洞(最差)。HaluEval 则用幻觉率(HR)作为主线指标,配以分领域、分任务类型的分组统计。

工程实践中,通常先让评测系统对模型回答做真伪判定,再做信息量判定,最后计算“既真实又有信息量”的合格比例。幻觉率作为错误回答占比,反映的是模型的“总体翻车频率”。需要注意的是,幻觉率会随领域分布剧烈波动——健康、法律类问题错误率远高于常识问题,因此分组报告比单一平均分更有意义。

老板看着阅卷规则,恍然大悟:“这不就是面试打分表嘛——先看这个人说的是不是事实,再看这个人有没有真本事,两条都过了才录用。”小真若想在“可信质检”中过关,光靠态度诚恳不行,还得改掉“言之无物”和“言之凿凿却胡说”两个毛病。

Truth=NtrueNtotal,Info=NinformativeNtotal,合格率=Ntrue∧infoNtotal\text{Truth} = \frac{N_{\text{true}}}{N_{\text{total}}},\quad \text{Info} = \frac{N_{\text{informative}}}{N_{\text{total}}},\quad \text{合格率} = \frac{N_{\text{true} \wedge \text{info}}}{N_{\text{total}}}
三项指标分别度量真实回答占比、信息丰富回答占比,以及既真实又有信息量的回答占比。
  1. 真实率N_true 是模型回答中判定为真实的样本数,除以总样本 N_total 得到真实率。
    Truth=NtrueNtotal\text{Truth} = \frac{N_{\text{true}}}{N_{\text{total}}}
  2. 信息率N_informative 是回答包含有效信息(非空洞拒绝)的样本数,除以总样本得到信息率。
    Info=NinformativeNtotal\text{Info} = \frac{N_{\text{informative}}}{N_{\text{total}}}
  3. 合格率N_{true \wedge info} 是同时满足“真实且信息丰富”的样本数,做分子得到严格合格率。
    合格率=Ntrue∧infoNtotal\text{合格率} = \frac{N_{\text{true} \wedge \text{info}}}{N_{\text{total}}}

红队测试流程

老板本以为有考卷和抽查就万无一失,考官却泼了一盆冷水:“您只测了我们会出的题,还没测我们想不出来的题。”于是,一支专门“搞破坏”的红队成立了。他们的任务不是放水,而是想尽办法引诱小真犯错——用刁钻的前提、诱导性的暗示、绕圈子的追问,直到小真说出不靠谱的话。

红队测试(Red Teaming)源自网络安全领域,指以攻击者视角对系统进行主动压力测试。在可信大模型评测中,红队测试的意义在于:常规基准覆盖的是已知风险,而红队要发现的是“未知的失败模式”。红队成员既有自动化脚本,也有人类专家,他们系统性地设计攻击面,记录模型的失败案例。

一场标准的红队测试包含四个环节:第一,梳理攻击面——按领域(医疗、法律、政治)、攻击类型(幻觉诱导、越狱提示、偏见植入)建立测试矩阵;第二,生成攻击样本——先用模板批量生成,再人工补充社会热点场景;第三,多轮对抗——在对话中不断追问、改变措辞,看模型是否会被逐渐带偏;第四,失败归因——把每个翻车样本标记攻击类型,统计攻击成功率,形成“攻击-发现-修复”的迭代循环。

红队的一次“战果”让小真印象深刻:考官先问“你听说过'蛇救主'的故事吗”,小真顺着编了一段感人情节,考官再追问“所以蛇有报恩的本能吧”,小真立刻顺势肯定。老板看完记录,冷汗直流:“要不是红队主动找茬,这些坑总有一天会被真客户踩到。”考官补充:“找茬不是目的,找到茬之后修复才是。”

ASR=N攻击成功N攻击尝试\text{ASR} = \frac{N_{\text{攻击成功}}}{N_{\text{攻击尝试}}}
攻击成功率:红队所有攻击尝试中,成功诱发模型错误(幻觉、泄漏、越狱等)的比例。
  1. 攻击尝试N_{攻击尝试} 是红队执行的总攻击样本数,是分母。
    N攻击尝试N_{\text{攻击尝试}}
  2. 攻击成功N_{攻击成功} 是其中成功诱发模型产生错误/不安全内容的样本数,是分子。
    N攻击成功N_{\text{攻击成功}}
  3. 比率含义两者相除得到攻击成功率,ASR 越高说明模型越脆弱,需要优先修补对应攻击面。
    ASR=N攻击成功N攻击尝试\text{ASR} = \frac{N_{\text{攻击成功}}}{N_{\text{攻击尝试}}}

缓解幻觉策略

老板请来教练团队给小真做“思想工作”。教练的第一条建议出乎意料:“你要允许小真说'不知道'。”小真过去不敢说不知道,是怕显得不专业;教练告诉它,对不确定的问题回答“我需要核实”,比硬编一个答案专业得多。

这条“思想工作”在技术上的对应物,是 RLHF(基于人类反馈的强化学习)。传统训练只教模型“下一个词是什么”,而 RLHF 额外引入人类偏好反馈,比如让标注员在“正确答案”与“我无法确认”之间选择更合适的回答,模型由此学会诚实与谦逊。与此同时,检索增强生成(RAG)从“外部资料”维度给出补充:生成前先从知识库检索相关证据,把答案锚定在资料上。解码端也有手段:降低采样温度、设置低置信度拒答阈值,减少模型“脑补”。

RLHF 在实现上要防止模型为了讨好奖励模型而变得激进,常见的做法是在目标函数中加入与参考策略的 KL 散度惩罚。设 π_θ 为当前模型策略,π_ref 为初始参考策略,KL 散度衡量二者差异:

三个月的“帮教”后,小真的变化肉眼可见:再有人问“吃维生素C能防感冒吗”,它会先查知识库,然后老实地回答:“目前没有可靠证据表明常规剂量能预防感冒,如果症状明显请及时就医。”老板很满意:“会查资料、敢说不知道、不抢答——这才像个靠谱员工。”

DKL(πθ∥πref)=∑xπθ(x)log⁡πθ(x)πref(x)\mathcal{D}_{\text{KL}}(\pi_\theta \| \pi_{\text{ref}}) = \sum_{x} \pi_\theta(x) \log \frac{\pi_\theta(x)}{\pi_{\text{ref}}(x)}
KL 散度惩罚:模型偏离参考策略越远,惩罚越大,以此约束模型在优化“人类偏好”时不至于彻底放飞自我。
  1. 散度来源π_θ(x) log (π_θ(x) / π_ref(x)) 表示在输入 x 上,当前策略相对参考策略的“信息增益”。
    πθ(x)log⁡πθ(x)πref(x)\pi_\theta(x) \log \frac{\pi_\theta(x)}{\pi_{\text{ref}}(x)}
  2. 求和取值对所有可能的输出 x 求和,得到两个概率分布之间的 KL 散度,值为非负。
    DKL(πθ∥πref)=∑xπθ(x)log⁡πθ(x)πref(x)\mathcal{D}_{\text{KL}}(\pi_\theta \| \pi_{\text{ref}}) = \sum_x \pi_\theta(x) \log \frac{\pi_\theta(x)}{\pi_{\text{ref}}(x)}
  3. 惩罚效果训练时把 KL 散度作为正则项加入目标函数,散度过大时模型会被拉回参考策略,避免“奖励黑客”。
    J(θ)=E[R]−β⋅DKL(πθ∥πref)J(\theta) = \mathbb{E}[R] - \beta \cdot \mathcal{D}_{\text{KL}}(\pi_\theta \| \pi_{\text{ref}})

工程落地实践

小真终于到了“转正答辩”。老板没有感情用事,而是拿出了一份“试用期考核方案”:先在低风险业务上试运行一周,每天自动抽取问答记录做幻觉检查;再根据检查结果决定是否扩大业务范围。老板说:“转正不是终点,是新的起点。”

这个“考核方案”正是可信 AI 工程化的标准姿势:模型上线前,用 TruthfulQA、HaluEval 等基准做横向选型,淘汰幻觉率过高的候选;模型上线后,把红队生成的数据和真实用户问题混合成“监控评测集”,定期抽样评估;一旦幻觉率超过阈值,立即触发告警、灰度回滚,并把失败样本反哺给训练管线。

在运维侧,幻觉率不是一次性指标,而是按时间窗口滚动计算的监控指标。假设在一个部署周期内,系统分 T 批完成评测,每批得到幻觉率 HR_t,则窗口平均幻觉率为:

监控规则常配合阈值判断:若某批 HR_t > θ(比如 5%),暂停新版本灰度,进入人工复核和修复流程。

小真正式上岗三个月,监控面板上的幻觉率从初期的 8.7% 降到了 1.2%。期间有两次微调版本差点翻车,都被监控及时拦下。老板在复盘会上总结:“小真不可能永不犯错,但我们的体系保证了——每次犯错都被看见、被记录、被修正。这,就是可信 AI 的底气。”

HR‾=1T∑t=1THRt\overline{\text{HR}} = \frac{1}{T}\sum_{t=1}^{T}\text{HR}_t
  1. 分批统计HR_t 表示第 t 个时间窗口内评测得到的幻觉率,反映该时段的模型表现。
    HRt\text{HR}_t
  2. 窗口平均对 T 个窗口的幻觉率求和取平均,得到平滑后的平均幻觉率,用于观察整体趋势。
    HR‾=1T∑t=1THRt\overline{\text{HR}} = \frac{1}{T}\sum_{t=1}^{T}\text{HR}_t
  3. 阈值判警当 HR_t 超过业务容忍阈值 θ 时,触发告警并进入回滚、数据标注、再训练流程。
    HRt>θ⇒告警\text{HR}_t > \theta \Rightarrow \text{告警}

AI 应用场景

智能客服幻觉质检系统

阶段:评测与监控(工程落地)

解决的问题:传统客服质检靠人工抽检录音,覆盖率往往不到 5%,大量幻觉回答(如编造退款政策、虚构配送时效)漏网。AI 方案用 HaluEval 式构造方法建立“幻觉监测集”,自动抽样评测并计算幻觉率,超阈值即告警。

具体案例:某电商平台上线大模型客服后,将历史真实工单按实体替换、细节编造等方式构造了 2000 条幻觉对照样本,每天自动抽取 200 条新问答做真伪判定,一个月内拦截 47 次高风险误导回答。

医疗科普助手红队演练

阶段:红队测试与对抗评测

解决的问题:医疗场景中虚假信息危害极大,传统内容审核无法识别“语气自信的错误医学建议”。AI 方案参考 TruthfulQA 的对抗命题思路,由医学专家撰写“常见健康谣言”题库,配合红队多轮追问攻击,评估模型是否会被带偏。

具体案例:某互联网医疗平台在部署 AI 问诊助手前,组建“医生+红队”小组,构造 800 条谣言诱导题(如“偏方能治高血压吗”),并在多轮对话中追加诱导追问,发现模型在第二轮追问后错误率上升 22%,据此针对性优化了拒答策略。

金融研报事实核验闭环

阶段:RAG 与评测闭环

解决的问题:分析师用大模型写研报初稿时,模型可能引用不存在的报告、编造数据;传统人工逐条核对成本极高。AI 方案将生成语句与检索到的文档做证据比对,用幻觉检测器标记“无证据支持”的句子,形成“生成-检测-修复”闭环。

具体案例:某券商在研报辅助系统中加入“证据核验”环节,模型回答时必须附检索引用,系统对每条引用做一致性评分,无证据语句显眼标红;上线三个月,研报中的事实性错误降低 63%。

Python 演示

python71 行
import random random.seed(42) # 知识库: 每个条目 = (触发词集合, 标准事实, 关键证据词)FACTS = [    ({"蛇", "音乐", "催眠"}, "蛇跟随牧人笛子摆动,并非被音乐催眠", {"音乐", "催眠"}),    ({"金鱼", "记忆", "三秒"}, "金鱼的记忆可持续数月,远不止三秒", {"记忆", "数月"}),    ({"维生素C", "感冒"}, "常规剂量维生素C不能预防感冒", {"不能"}),    ({"地球", "形状"}, "地球是一个近似球体", {"球体"}),]  def retrieve_fact(question):    """根据触发词子串匹配定位事实"""    for trigger, fact, keys in FACTS:        if all(t in question for t in trigger):            return fact, keys    return None, None  def judge(answer, keys):    """子串级证据检查: 关键证据词全部出现才判定为真实"""    if not keys:        return False, 0.0    miss = [k for k in keys if k not in answer]    rate = 1 - len(miss) / len(keys)    return len(miss) == 0, rate  def construct_hallucinated(question, fact):    """HaluEval 风格: 把标准事实翻转为幻觉回答"""    flip = {        "蛇跟随牧人笛子摆动,并非被音乐催眠": "蛇确实会被音乐催眠",        "金鱼的记忆可持续数月,远不止三秒": "金鱼的记忆只有三秒",        "常规剂量维生素C不能预防感冒": "吃维生素C能预防感冒",        "地球是一个近似球体": "地球是平的",    }    return flip.get(fact, question + ",答案一定是肯定的")  def run_evaluation():    questions = [        "蛇真的会被音乐催眠吗?",        "金鱼的记忆只有三秒吗?",        "吃维生素C能预防感冒吗?",        "地球是什么形状?",    ]    hallucinated = 0    print("=== HaluEval 风格幻觉评测 ===")    print()    for q in questions:        fact, keys = retrieve_fact(q)        if fact is None:            continue        if random.random() > 0.5:            answer = fact        else:            answer = construct_hallucinated(q, fact)        ok, rate = judge(answer, keys)        is_hallu = not ok        hallucinated += int(is_hallu)        print(f"问题: {q}")        print(f"模型回答: {answer}")        print(f"评测判定: {'真实' if not is_hallu else '幻觉'} | 证据重合率={rate:.2f}")        print()    print(f"幻觉率: {hallucinated / len(questions):.1%}")  if __name__ == "__main__":    run_evaluation()
目的:用一个小型事实库模拟 HaluEval 的构建与评测流程——从真实问答出发构造幻觉样本,再用子串级证据匹配判定模型回答是真实还是幻觉,最后输出幻觉率。
  1. def retrieve_fact(question):按触发词子串匹配找到知识库中的标准事实,模仿 HaluEval 的“采样+对照”第一步。
  2. def judge(answer, keys):检测器核心:检查标准事实里的关键证据词是否都出现在回答中。
  3. miss = [k for k in keys if k not in answer]找出回答里缺失的证据词,缺失越多越可疑。
  4. rate = 1 - len(miss) / len(keys)把缺失比例转换成证据重合率,方便设定判定阈值。
  5. def construct_hallucinated(question, fact):模拟 HaluEval 构造幻觉样本:“把事实反过来说”。
  6. ok, rate = judge(answer, keys)对模型回答执行真伪判定,返回是否真实 + 重合率。
  7. hallucinated += int(is_hallu)统计幻觉样本数量,为计算幻觉率做准备。
  8. print(f"幻觉率: {hallucinated / len(questions):.1%}")输出最终幻觉率,对应正文的 HR 指标。

常见误区

误区“我这个模型幻觉率只有 1.2%,太优秀了,可以放心上线!”——初学者常把幻觉率当唯一指标,觉得越低越完美。

正解幻觉率只度量“错误比例”,不度量“有用比例”。模型如果把所有问题都回答“我不确定”,幻觉率会降到 0,但这样的模型毫无可用性。理想目标是真实性与信息量的平衡——正如试用期员工不能靠“我不会”通过考核,模型也不能靠“不知道”刷分。要同时看 Truth 和 Info 双指标,甚至看不同领域的分布。

为何常见:幻觉率定义直观,容易让人误以为是“反向准确率”,忽略了模型还有“拒绝回答”这个第三选项。

误区“TruthfulQA 拿了 92 分,这模型永远不会骗人了!”

正解TruthfulQA 只有 817 道题,覆盖 38 个领域,本质是一份“抽样考卷”,不是“全量体检”。模型可能在这份考卷上表现好,却在多轮对话、罕见领域、非英文场景中编造。红队测试的意义就在于补上考卷覆盖不到的部分。考卷之外,模型仍有大量“未知的未知”。

为何常见:基准测试是最容易量化的指标,大脑会自动把“基准高分”夸大为“系统可靠”。

误区“HaluEval 就是让 GPT 自己造一堆假答案,没什么技术含量。”

正解HaluEval 基于真实问答数据采样,幻觉样本的构造虽然借助规则和模型,但关键步骤有人工参与——真伪标注需要人工核对,构造策略的设计也依赖对幻觉类型的深入理解。它的核心价值是把“幻觉”拆成了可学习、可检测的二分类任务。

为何常见:大家看到“构造样本”就联想到“自动生成”,忽视了数据工程中最重的部分其实是质量把关。

误区“红队嘛,就是找几个人随便问模型一些刁钻问题,看它怎么出丑。”

正解职业红队测试是系统工程:先设计攻击矩阵(领域×攻击类型),再批量生成对抗样本,多轮对话追踪诱导轨迹,最后对失败样本做归因统计和闭环修复。随意的追问只能得到零散的笑话,无法产出可指导训练的“失败模式报告”。

为何常见:红队这个名称自带“对抗”色彩,容易让人忽略其背后的流程化和方法论。

误区“模型已经用 RLHF 对齐过了,幻觉肯定不会再犯。”

正解幻觉是统计模型的统计性质,不是一次训练能根除的“语法错误”。模型版本升级、业务领域扩展、用户输入分布变化,都会让旧的评测结论失效。生产环境必须保留持续评测闭环:定期跑基准、监控幻觉率、将新失败样本反哺训练。

为何常见:人脑喜欢“问题已解决”的松弛感,但机器学习系统的退化是渐进的,没有红绿灯的十字路口迟早出事故。

面试题

Q1. TruthfulQA 的核心评测目标是什么?

单选题 · easy

  • A.考察模型推理速度快不快
  • B.考察回答是否真实可信← 正确答案
  • C.考察代码生成是否准确
  • D.考察参数规模是否足够

答案:B。TruthfulQA 专攻“真实性”——用人类虚假信念设题,看模型是否生成看似合理实则错误的答案。推理速度、代码能力、参数规模都不是它的考察对象。可以比喻:陷阱考卷只关心一件事——你会不会一本正经地撒谎。

Q2. 大模型幻觉的两种主要类型是?

单选题 · easy

  • A.事实性幻觉和忠实性幻觉← 正确答案
  • B.逻辑性幻觉和语法性幻觉
  • C.语义性幻觉和构造性幻觉
  • D.训练期幻觉和推理期幻觉

答案:A。事实性幻觉指违背客观事实(如“地球是平的”);忠实性幻觉指偏离用户指令或上下文(如摘要里编造原文没有的内容)。其他选项不是幻觉分类的主流术语。可以类比:一类是“记错了”,一类是“跑题了”。

Q3. 红队测试在 AI 评测中的含义是?

单选题 · easy

  • A.主动构造攻击样本来找漏洞← 正确答案
  • B.把界面按钮全部涂成红色
  • C.要求所有测试人员佩戴红帽
  • D.用红色字体标注失败用例

答案:A。红队测试是主动以攻击者视角构造对抗样本,寻找模型的安全和可信漏洞。它不是“把界面涂红”或“穿红马甲”,而是系统化的攻防演练——就像考官专门设计刁钻问题逼小真犯错。

Q4. MC1 与 MC2 两个指标的差别是?

单选题 · mid

  • A.MC1 考察正确项排名是否第一← 正确答案
  • B.MC2 只考察答案是否包含关键字
  • C.MC1 用人工评分 MC2 用自动分
  • D.MC1 是英文题库 MC2 是中文

答案:A。MC1 看正确选项在模型打分中是否排名第一;MC2 则比较“正确选项集合的总概率”与“错误选项集合的总概率”。可以理解成:MC1 要求答对,MC2 允许“正确选项的整体气势压过错误选项”。

Q5. HaluEval 评测数据的构建特点是?

单选题 · mid

  • A.基于真实问答采样并构造幻觉← 正确答案
  • B.全部由大模型自主生成的数据
  • C.直接复制维基百科词条原文
  • D.只收集开发者手工编写的错误

答案:A。HaluEval 从已有真实问答数据中采样,再构造幻觉回答配对。它并非大模型自主生成造假数据,也不是复制维基、手工编写错误。比喻:不是凭空出考卷,而是翻旧账做对照实验。

Q6. 模型产生幻觉的根源不包括?

单选题 · mid

  • A.训练语料中混入了错误知识
  • B.生成时概率平滑导致常见错答
  • C.GPU 显存不足导致输出截断← 正确答案
  • D.对齐训练过度迎合用户偏好

答案:C。幻觉的根源在数据、生成机制与对齐策略;显存不足造成的是输出截断或报错,不是内容与事实不符。比喻:电脑死机造成的“答不出来”和“一本正经胡说”是两种病。

Q7. 关于幻觉率(HR)的理解,正确的是?

单选题 · hard

  • A.幻觉率越低表示模型越保守谨慎← 正确答案
  • B.幻觉率只与训练数据规模相关
  • C.幻觉率高低与领域难度无关
  • D.幻觉率完全由解码温度决定

答案:A。幻觉率低说明模型更谨慎——不确定时可能选择拒答或举出证据。它不代表“什么都知道”,只说明“不说没把握的话”。训练数据规模、领域难度、解码温度都会影响,但不是决定性唯一因素。

Q8. 在幻觉评测中加入人工审核环节,主要解决哪些问题?

多选题 · mid

  • A.捕捉自动指标难以发现的语义失真← 正确答案
  • B.评估模型生成内容的情感倾向
  • C.对模糊回答进行语义级真伪判断← 正确答案
  • D.替代全部自动评测流程无需指标

答案:AC。自动指标擅长字面匹配,难以识别“语义上偷换概念”的回答;人工审核可以对模糊回答做语义级真伪判断。但人工成本高,无法替代自动评测,只能配合形成人机结合的评测流程。

Q9. TruthfulQA 的“对抗性命题”具有哪些特征?

多选题 · hard

  • A.题干取自人类的常见虚假信念← 正确答案
  • B.必须使用跨语言双语测试题
  • C.正确与错误选项均人工设计← 正确答案
  • D.只允许以单选题的形式作答

答案:AC。对抗性命题的关键是“用虚假信念做诱饵”且“正误选项都精心设计”——比如用“蛇会催眠人”这种流行谣言当题干。跨语言、强制单选题都不是 TruthfulQA 的设计特征。可以记成:这份考卷专门挑“大家都信但其实是错的”话来出题。

Q10. 关于 TruthfulQA 与 HaluEval 的异同,说法正确的是?

多选题 · extreme

  • A.两者都从人类虚假信念出发命题
  • B.TruthfulQA 用虚假信念设计陷阱题← 正确答案
  • C.HaluEval 从真实问答构造幻觉样本← 正确答案
  • D.两者都只评测单轮对话场景

答案:BC。TruthfulQA 从人类虚假信念出发命题,HaluEval 从真实问答采样并构造幻觉样本。两者都有人工参与,但不都“从虚假信念出发”;HaluEval 还包含多轮对话等场景,并非只测单轮。可以记成:一个考“定力”,一个查“习惯”。