幻觉防范 - Entity Enricher 文档

幻觉防范

LLM 在生成结构化数据时可能会编造看似可信的事实。Entity Enricher 采用 8 层防护机制,确保你获得准确的数据或不返回数据——绝不返回听起来自信却虚假的内容。

结构化幻觉的问题

在自由文本中,一句幻觉内容显然含糊其辞。而在结构化输出中,像 "founded_year": 1987 这样的幻觉字段看起来很权威,几乎无法与正确值区分开来。有三个因素使这尤其危险:

虚假精度

幻觉产生的 JSON 值看起来和真实值一模一样。没有含糊其辞,没有“大约”——只是一个干净、自信却恰好错误的数据点。

Schema 压力

必填字段会迫使 LLM 即使在没有相关知识时也生成一个值。模型会编造数据,而不是在结构中留下空缺。

静默传播

结构化数据可直接接入数据库、分析和自动化流程。错误的值会在管线中传播,而无需人工审核。

常见幻觉模式

模式示例原因
自信的虚构"ceo": "John Smith"LLM 用貌似合理的名称填充必填字段
时间混淆"revenue": "$2.3B"训练数据截止或时期混淆
实体混淆将公司 A 的属性应用于公司 B重叠训练数据中的相似名称
合理的默认值"employees": 500LLM 宁愿选一个“看似合理”的数字,也不肯承认自己不知道
虚构的关系"subsidiary_of": "Alphabet"LLM 推断出并不存在的关系

8 层防御

Entity Enricher 不依赖单一技术。它叠加了 8 个独立的防御层,每一层针对不同的失败模式。如果某一层漏掉了幻觉,下一层就会将其捕获。

1
预检 Classification

在丰富化开始前,一个快速的 LLM 会分类判断实体是否匹配模式类型。这可从源头阻止整个实体的幻觉。

示例:针对“Planet”schema 的“Titan”会被标记为卫星——扩充模型会收到该上下文,并对行星专属字段使用 null。

2
可为 Null 的字段与保守型 prompt

所有策略都会指示 LLM:“务必准确且保守 — 宁可返回 null 也不要猜测。”可为空的 schema 字段明确允许模型回答“我不知道”。

这直接缓解了 schema 压力——结构化幻觉的首要成因。

3
专家领域界定

Schema 属性按专业领域分组。每次 LLM 调用只看到其领域内的字段,并被指示专注于该领域。

范围越窄,产生幻觉的机会越少。金融专家从不臆测监管数据。

4
搜索键聚焦

键属性(标记为 is_key: true)会在提示词中突出显示,以便让 LLM 在填充其他字段之前先锚定识别信息。

这使 model 立足于已知事实,减少向虚构细节的漂移。

5
Schema 验证与自我纠正

8 条校验规则检查 LLM 输出中的类型不匹配、无效引用和结构错误。校验失败会触发 ModelRetry——错误会被送回 LLM 进行纠正。

在单次 agent 运行中最多可自动纠正 6 次。LLM 会自行修正错误。

6
保留逻辑

标记为 preserve: true 的字段(ID、SKU、时间戳)会在增强后恢复为其原始输入值。LLM 无法覆盖真实基准数据。

受保护字段:实体 ID、系统代码(EAN、SKU)、导入标识符、创建时间戳。

7
多模型共识

将同一实体通过 2 个以上独立模型运行,并逐字段对比输出。分歧会被标记为潜在幻觉。

如果 Claude 称营收为 23 亿美元,而 GPT-4 称为 18 亿美元——该冲突会被检测并呈现出来。

8
冲突解决与仲裁

检测到的冲突可通过基于规则的投票(多数、中位数、并集)来解决,也可由专门的 LLM 仲裁器来解决,该仲裁器会评估准确性、完整性和一致性。

每个仲裁决策都包含推理过程和置信度——完全透明地展现冲突是如何解决的。

防御流程

1预检 classification拦截错误的实体类型
2可为 Null + 保守型 prompt降低 schema 压力
3专家领域界定收窄 LLM 必须回答的范围
4搜索键聚焦锚定于标识符
5验证与自我纠正修复结构性错误
6保留逻辑保护基准真值
7多模型共识检测分歧
8冲突仲裁带推理解析
enrichment 前
增强期间
enrichment 后

设计理念

核心原则

数据缺失始终优于数据错误。每一层都强化了这一原则——系统在设计上宁可返回 null,也不会给出貌似合理的捏造结果。

Entity Enricher 的功能
  • 明确允许 LLM 返回 null
  • 使用多个独立模型进行交叉验证
  • 防止已知有效数据被覆盖
  • 完整透明地展示冲突解决过程
典型工具的功能
  • 强制 LLM 无论如何都填满每个字段
  • 依赖单一模型,无交叉验证
  • 允许 LLM 自由覆盖输入数据
  • 以黑盒方式返回结果,无审计记录