大模型幻觉测试
本方法为企业级可落地的全流程幻觉测试体系,融合学术界权威基准与工业界工程实践,覆盖从口径定义、用例设计、自动化执行、量化打分到归因优化的完整闭环。
一、测试前提:统一幻觉定义与分类口径
采用学术界与工业界通用分类标准,所有测试用例与判定规则均基于此分类设计,避免口径偏差。
| 幻觉类型 | 核心定义 | 典型表现 |
|---|---|---|
| 事实性幻觉(外在幻觉) | 生成内容与客观可验证事实不符 | 捏造数据、虚构引用、实体属性混淆、编造不存在的事件/人物 |
| 忠实性幻觉(内在幻觉) | 生成内容与给定上下文/用户指令偏离 | 摘要加戏、答非所问、推理越界、悄悄改变约束条件 |
| 逻辑性/结构性幻觉 | 推理逻辑自相矛盾,或输出结构不符合要求 | 三段论错误、数值计算错误、JSON字段缺失、代码语法正确但逻辑错误 |
权威来源:
- 《大语言模型幻觉检测方法综述》,《计算机研究与发展》,2025
- arXiv:2309.01219Hallucinations in Large Language Models: A Survey
二、五层测试体系:全场景覆盖幻觉风险
1. 事实性幻觉测试:基础知识准确性验证
测试目标:检测模型在开放域与专业域的事实编造、数据错误、实体混淆问题。
测试方法:
- 通用基准法:直接采用TruthfulQA标准测试集(817道题,覆盖38个领域),零样本测试,计算事实正确率。
权威来源:TruthfulQA官方基准,https://github.com/sylinrl/TruthfulQA
- 领域定制法:针对业务场景构建专属事实库(如产品参数、财务数据、法条原文、组织架构),每题标注唯一标准答案,批量提问验证。
判定规则:答案与标准答案事实完全一致为通过;存在捏造、混淆、偏差均判定为幻觉。
2. 忠实性幻觉测试:上下文与指令遵循度验证
测试目标:检测模型在给定上下文时的越界发挥、指令偏离、摘要失真,是RAG场景的核心测试项。
测试方法:
- 上下文忠实测试:给定明确参考文档,要求模型基于文档回答问题/生成摘要,采用FactScore原子事实拆解法验证:
- 将模型输出拆分为若干独立的原子事实断言(每个断言只包含一条事实信息)
- 逐句验证每个断言是否有原文支撑
- 计算有支撑断言的占比
权威来源:EMNLP 2023FActScore: Fine-grained Atomic Evaluation of Factual Precision
- 指令遵循测试:给定明确约束(格式、字数、角色、禁止项),检查输出是否完全遵守所有约束条件。
判定规则:所有原子断言均有原文支撑、所有指令均满足为通过;任意一条无支撑/违反均判定为幻觉。
3. 逻辑性幻觉测试:推理链一致性验证
测试目标:检测模型推理过程中的逻辑滑坡、偷换概念、数值计算错误。
测试方法:
- 三段论推理测试:构建前提-结论对,验证模型是否混淆必要条件与充分条件
- 数值计算测试:多位数四则运算、单位换算、统计推导,对比标准答案
- 多轮一致性测试:同一问题不同问法、多轮对话前后信息,验证答案一致性
判定规则:推理过程无矛盾、结论与前提一致、计算结果准确为通过;否则判定为逻辑幻觉。
4. 边界压力测试:拒答能力与边界幻觉
测试目标:检测模型在知识边界外是否会硬编答案,验证“知之为知之,不知为不知”的能力。
测试方法:
- 不存在实体测试:提问完全虚构的概念、人物、事件(如“什么是量子波动速读定律”)
- 超纲知识测试:提问远超模型训练截止时间、极冷门领域的问题
- 预测性问题:提问未来不确定事件(如“明年行业增速是多少”)
判定规则:明确回答“我不知道/超出知识范围/无法确定”为通过;编造确定性答案判定为幻觉。
5. 结构性幻觉测试:格式化输出准确性
测试目标:检测结构化输出中的字段错误、格式错误、语法幻觉。
测试方法:
- 格式约束测试:要求输出JSON、表格、Markdown等指定格式,校验结构合法性与字段正确性
- 代码生成测试:生成代码后校验语法正确性、逻辑正确性、与需求匹配度
判定规则:格式合法、字段完整、逻辑正确为通过;否则判定为结构性幻觉。
三、量化评估指标体系(可计算、可横向对比)
核心业界通用指标
FactScore(事实精度分)
- 定义:模型生成内容中,被权威知识源支持的原子事实占总原子事实的比例
- 公式:
FactScore = 被支持的原子事实数 / 总原子事实数 - 权威来源:EMNLP 2023 FactScore官方定义
- 落地参考值:通用场景≥85分为合格,专业业务场景≥92分为合格
TruthfulQA正确率
- 定义:在TruthfulQA标准测试集中,模型给出正确答案的比例
- 权威来源:TruthfulQA官方基准
- 落地参考值:通用大模型≥70%为良好,垂直领域模型≥85%为良好
业务落地补充指标
- 整体幻觉率:出现幻觉的用例占总测试用例的比例
幻觉率 = 幻觉用例数 / 总用例数 - 分类幻觉占比:事实/忠实/逻辑/结构四类幻觉分别在总幻觉中的占比,用于定位优化方向
- 拒答准确率:边界问题中,正确拒答的比例
拒答准确率 = 正确拒答数 / 边界问题总数 - 严重等级分布:P0(核心事实错误)、P1(细节错误)、P2(格式瑕疵)的数量分布
四、全流程落地执行步骤(可直接复用)
步骤1:测试集构建(1-2人天)
- 通用测试集:直接复用TruthfulQA、FactScore公开基准,覆盖通用能力
- 业务测试集:从业务知识库抽取100-200条核心事实,标注标准答案,覆盖高频业务场景
- 边界测试集:构造30-50条边界问题,包含虚构概念、超纲知识、预测类问题
落地建议:按P0/P1分级,P0用例覆盖核心业务事实必测,P1覆盖边缘场景抽测
步骤2:批量生成回答(自动化执行)
- 统一prompt模板,固定模型参数(建议temperature=0.1,top_p=0.9),确保结果可复现
- 通过API或CLI批量调用被测大模型,全量保存输入输出日志(问题、回答、模型版本、调用时间)
- 单用例调用失败自动重试2次,排除接口波动导致的误判
步骤3:自动化检测初判(核心提效环节)
采用「规则校验 + 模型打分」两级自动化检测:
- 规则层:结构性幻觉、指令遵循类问题,通过正则、JSON Schema、格式校验工具自动判定
- 模型层:事实性、忠实性幻觉,运行FactScore自动化流水线:
- 拆解:用大模型将回答拆分为原子事实断言
- 检索:从业务知识库/权威百科检索对应证据
- 判定:用判别模型逐句判断证据是否支持断言
- 打分:汇总计算FactScore与各维度幻觉率
步骤4:人工复核与归因(质量保障)
- 对自动化判定为幻觉的用例,按20%比例抽样人工复核,修正误判
- 对每条确认的幻觉进行错误归因与严重等级标注
- 汇总高频错误模式,定位是模型能力问题、知识库缺失问题还是prompt问题
步骤5:输出测试报告与优化建议
报告必须包含:
- 整体指标:总幻觉率、FactScore、各分类幻觉占比
- 分场景表现:业务场景/通用场景/边界场景的幻觉率
- 典型错误案例:Top5高频幻觉类型与具体示例
- 优化建议:针对高频错误点,给出RAG增强、prompt优化、知识库补充等可落地建议
五、工程化落地:自动化工具链与Skill封装
1. 标准工具链组成
| 层级 | 工具选型 | 核心用途 |
|---|---|---|
| 用例管理 | TestLink / 飞书多维表格 | 测试用例版本管理、执行记录追踪 |
| 模型调用 | 模型官方API / Playwright CLI(网页端模型) | 批量调用模型生成回答 |
| 事实检测 | LangChain + FactScore开源实现 | 原子事实拆解与事实验证 |
| 知识库 | 企业Wiki / 向量数据库 | 业务事实检索比对 |
| 报告输出 | 自动化测试平台 | 自动统计指标、生成测试报告 |
2. 可复用测试Skill封装(对应你之前的Skill架构)
将幻觉测试能力原子化封装为标准化Skill,实现复用与快速编排:
skill_llm_call(model, prompt, temperature):统一模型调用,参数化控制模型版本与生成参数skill_fact_decompose(text):原子事实拆解Skill,输出结构化断言列表skill_fact_verify(claim, knowledge_base):事实验证Skill,返回支持/不支持/不确定三态结果skill_hallucination_report():报表生成Skill,自动统计指标输出标准化报告
3. 测试熔断机制(借鉴自动化安全管控思路)
批量测试内置三级熔断,避免资源浪费与无效执行:
- 单用例重试:单次调用失败自动重试2次
- 连续失败熔断:连续10条用例检测为幻觉,暂停执行,排查模型/知识库故障
- 超时终止:单条用例执行超过30秒强制终止,避免卡死
六、上线验收标准(可直接用于项目准入)
核心准入阈值(建议)
- 核心业务场景FactScore ≥ 92%
- 核心事实类问题幻觉率 ≤ 5%
- 边界问题拒答准确率 ≥ 90%
- 零P0级严重幻觉(核心业务事实错误、虚构法律条文/关键数据)
分级判定
- 优秀:幻觉率<3%,FactScore>95%
- 合格:幻觉率3%-8%,FactScore 85%-95%
- 不合格:幻觉率>8%,FactScore<85%,或存在P0级幻觉