3. 幻觉类型学
在金融RAG系统中,幻觉检测的第一步不是“判断真假”,而是“判断错在哪一类”。类型学决定了检测器的特征工程、评测指标与修复策略。若把“营收数字写错”和“引用了不存在的监管条款”都笼统归为“幻觉”,后续的阈值、召回与人工复核成本都会失控。本节建立一套面向金融场景的幻觉分类框架,并给出可落地的判定流程。
核心原理:两条正交轴决定幻觉类型
金融RAG的幻觉可以从两条正交轴理解:错误来源轴(是模型内部知识错误,还是对给定上下文的偏离)与错误对象轴(事实、数值、时间、引用、逻辑)。两条轴交叉,形成六类高频幻觉。事实性幻觉指模型生成了与客观世界不符的陈述,例如“某银行2023年净利润为500亿元”而实际为300亿元;忠实性幻觉指回答与检索到的上下文不一致,即使上下文本身正确,模型仍“自由发挥”;上下文冲突指检索片段之间互相矛盾,模型未识别冲突而强行给出单一结论;数值错误包括单位、量级、百分比、同比环比计算错误;时间错位指把旧数据当新数据、把预测当已发生事实;金融特有幻觉则包括虚构金融产品条款、混淆监管口径、错误归因市场事件、编造交易对手或评级。
方法流程:从回答到类型标签的四步判定
落地时建议采用“先抽取、再比对、后归类”的流水线,避免直接让大模型输出类型标签导致不稳定。第一步,结构化抽取:从回答中抽取实体、数值、时间、引用片段和结论句。第二步,证据对齐:将每个抽取单元与检索上下文及外部知识库对齐,计算支持度。第三步,冲突检测:若多个上下文片段对同一事实给出不同值,标记为上下文冲突;若回答与上下文不一致,标记为忠实性幻觉。第四步,类型归因:根据错误对象轴分配具体标签,并输出置信度。
# 幻觉类型判定伪代码
def classify_hallucination(answer, contexts, kb):
units = extract_units(answer) # 实体/数值/时间/引用
labels = []
for u in units:
support = align(u, contexts, kb)
if support.conflict:
labels.append(("上下文冲突", support.confidence))
elif not support.in_context and support.in_kb is False:
labels.append(("事实性幻觉", support.confidence))
elif not support.in_context and support.in_kb is True:
labels.append(("忠实性幻觉", support.confidence))
elif u.type == "number" and not support.value_match:
labels.append(("数值错误", support.confidence))
elif u.type == "time" and not support.time_match:
labels.append(("时间错位", support.confidence))
elif u.type in ("clause", "regulation", "rating"):
labels.append(("金融特有幻觉", support.confidence))
return aggregate(labels)
案例与场景:六类幻觉在金融问答中的真实表现
以下清单覆盖高频场景,便于在评测集中构造负样本。
| 类型 | 典型问法 | 幻觉表现 | 检测信号 |
|---|---|---|---|
| 事实性幻觉 | 某公司董事长是谁? | 编造人名或任职时间 | 实体库无此记录 |
| 忠实性幻觉 | 根据这份年报,营收多少? | 上下文写300亿,回答写500亿 | 回答与上下文数值不一致 |
| 上下文冲突 | 两家券商研报目标价? | 忽略分歧,只给单一目标价 | 多片段数值矛盾未标注 |
| 数值错误 | 同比增长多少? | 把绝对增量当增长率 | 单位/公式校验失败 |
| 时间错位 | 最新监管要求是什么? | 引用已废止的旧版办法 | 时间戳早于生效日 |
| 金融特有幻觉 | 该理财产品保本吗? | 虚构“保本条款” | 产品合同无此表述 |
误区与复盘:类型学落地中的三个常见坑
误区一:把类型标签交给生成模型直接输出。大模型倾向于把所有错误都标成“事实性幻觉”,因为该词最泛化。正确做法是用规则+小模型做初筛,再让大模型做归因复核。误区二:忽略金融术语的领域性。“评级下调”与“展望负面”在金融中是不同事件,若类型学不区分,评测会把正确回答判为幻觉。误区三:只统计总数不统计类型分布。事实性幻觉高说明知识库覆盖不足;忠实性幻觉高说明检索上下文利用能力弱;数值错误高说明后处理计算模块缺失。类型分布直接指向修复优先级。
掌握类型学后,下一阶段的检测器设计才能有的放矢:事实性幻觉靠知识库核验,忠实性幻觉靠上下文蕴含判断,数值错误靠计算校验,时间错位靠时间戳过滤,金融特有幻觉靠领域本体与规则引擎。类型学不是学术分类,而是金融RAG可信度工程的施工图。