把“模型为什么会错、为什么会编、为什么有资料也不一定可靠”拆成生成机制、知识来源、上下文边界和工程护栏
| 层级 | 它提供什么 | 它不保证什么 | 需要什么边界 |
|---|---|---|---|
| 模型参数 | 从训练数据中压缩出的语言、知识和模式 | 不保证最新、完整、可引用或事实精确 | 承认知识截止和任务边界,避免把流畅当事实 |
| 上下文材料 | 当前任务需要的指令、历史、文档和约束 | 不保证模型一定读到重点,也不保证材料自身正确 | 控制长度、来源、优先级、冲突处理和引用要求 |
| 外部检索 / 工具 | 最新资料、私有知识、实时状态和可执行动作 | 不保证检索命中正确、工具结果无误或权限安全 | 重排、权限校验、结果校验、人工确认和审计 |
| 生成采样 | 把条件概率转成自然语言输出 | 不保证“最像答案”的文本就是正确答案 | 评测集、结构校验、引用核验和安全护栏 |
多数通用大语言模型的生成过程可以简化为:给定已有 token 序列,计算词表中每个候选 token 作为“下一个 token”的概率,再按采样策略选出一个 token,追加到上下文里,继续下一轮。
模型优化的是在大量文本分布下生成高概率延续,而不是内置一个事实数据库、逻辑证明器或权限系统。它可能生成非常像专家答案的文本,但“像”不等于“真”。
| 机制事实 | 直觉解释 | 可靠性后果 |
|---|---|---|
| 逐 token 生成 | 答案不是一次完整写好,而是一步一步长出来 | 早期错误会进入后续上下文,形成自我强化 |
| 概率分布选择 | 模型在多个候选表达之间选择更像的延续 | 高概率文本可能只是常见说法,不一定对应真实事实 |
| 训练分布迁移 | 模型把训练中见过的模式迁移到新问题 | 遇到冷门、最新、私有或反常识任务时更容易补全错误 |
| 对齐后的表达能力 | 模型被训练得更有礼貌、更完整、更愿意回答 | “有帮助”的语气可能掩盖不确定性,形成过度自信 |
| 采样参数影响输出 | 温度、top-p、约束会改变候选 token 选择 | 低温也会错,高温更发散;参数不是事实校验器 |
如果答案来自参数记忆,要警惕过时和不可引用;如果来自上下文,要检查材料是否足够、是否冲突;如果来自外部系统,要检查检索片段、工具返回和权限链路。没有来源分层,就很难判断该相信哪一部分。
| 类型 | 表现 | 常见诱因 | 治理重点 |
|---|---|---|---|
| 事实幻觉 | 编造不存在的事件、数字、人物关系、产品能力或法规条款 | 训练记忆不完整、问题冷门、上下文缺证据、模型过度补全 | 要求证据、引用来源、事实核验和高风险人工复核 |
| 引用幻觉 | 给出看似真实但不存在、错配或无法支持结论的引用 | 模型学会了引用格式,但没有真实检索到对应来源 | 引用必须绑定检索片段或真实 URL,不能只让模型“写参考文献” |
| 推理幻觉 | 步骤看起来严密,但中间假设、计算或因果关系错误 | 复杂多步任务、隐含变量缺失、过度依赖自然语言推导 | 分步校验、外部计算器、单元测试、反例检查、任务拆分;因果关系可继续看 因果 / 反事实 |
| 格式幻觉 | 输出不符合 JSON、表格、字段枚举、工具参数或协议要求 | schema 太复杂、上下文冲突、采样发散、缺少解析反馈 | 结构化输出、schema 校验、失败重试和约束解码 |
| 权限 / 行动幻觉 | 声称已经发邮件、下单、删除、审批或读取了无权限数据 | 模型把语言承诺误当真实动作,或工具权限边界不清 | 动作必须由受控工具执行,关键操作需权限校验、确认和审计 |
把长上下文当成最后手段,而不是默认方案。优先做分块、摘要、目录、引用锚点、材料去重、冲突标注和任务相关性过滤,让模型读到“少而准”的上下文。
| RAG 环节 | 它能降低什么风险 | 它仍然可能失败在哪里 | 补救方式 |
|---|---|---|---|
| Query Rewrite | 把用户问题改写成更适合检索的查询 | 改写偏题、丢失限定条件、扩大或缩小问题范围 | 保留原问题、记录改写、对关键实体做约束 |
| 向量 / 关键词检索 | 减少模型凭参数记忆回答 | 语义相似不等于答案正确,关键词命中不等于上下文相关 | 混合检索、元数据过滤、Top-K 控制和负样本评测 |
| Rerank | 把更相关的片段排到前面 | 重排模型也会误判,尤其在细粒度事实和长表格中 | 按任务评测重排质量,保留来源和置信度 |
| Context Packing | 把外部材料放进模型可读上下文 | 片段截断、顺序错乱、引用编号错配、材料互相冲突 | 片段边界、来源标题、版本时间和引用锚点 |
| Answer Generation | 让模型基于材料组织答案 | 模型可能越过材料补全、误读材料或把多段内容拼错 | 只允许基于材料回答、逐条引用、无证据时明确拒答 |
RAG 是“给模型更好的证据”,不是“把模型变成事实机器”。它降低了无依据回答的概率,但可靠性还取决于知识库质量、检索召回、重排、上下文组织、引用核验和答案生成约束。
| 边界手段 | 解决什么问题 | 落地方式 | 注意点 |
|---|---|---|---|
| 离线评测 | 上线前知道模型、Prompt、RAG 和路由是否退化 | 任务评测集、回归测试、坏例集、LLM-as-Judge + 人工抽检 | 评测集必须贴近真实业务,不要只测通用问答 |
| 引用与证据 | 让事实性回答可追溯 | 答案句子绑定检索片段、文档标题、版本、时间和 URL | 引用要支持结论,不能只是格式上看起来有来源 |
| 结构校验 | 防止格式幻觉和工具参数错误 | JSON Schema、字段枚举、类型检查、解析失败重试 | 校验只能保证格式,不保证业务语义正确 |
| 外部校验器 | 处理计算、代码、数据库和规则判断 | 计算器、单元测试、SQL 查询、规则引擎、权限系统 | 把可确定问题交给确定性系统,不要让模型硬猜 |
| 人工复核 | 覆盖高风险、低容错和责任归属场景 | 审批流、置信度阈值、抽检、双人复核和异常升级 | 人工复核要有上下文和证据,不只是看最终回答 |
| 安全护栏 | 控制越权、危险建议、隐私泄露和注入攻击 | 输入预检、输出审核、工具权限、动作确认、审计日志 | 护栏要分层设置,不能只靠一句 System Prompt |
幻觉排查不能只看最终回答,要把任务类型、证据来源、校验结果和失败分型放在同一张账本里。
| 证据节点 | 必须记录字段 | 用来判断什么 |
|---|---|---|
| claim_source | claim_id、answer_span、source_type、citation_id、retrieval_case_id | 答案里的关键断言来自模型记忆、上下文证据还是工具结果 |
| verification | verifier_id、schema_check_result、fact_check_result、human_review_id | 哪些内容经过确定性校验或人工复核 |
| failure_label | hallucination_type、missing_evidence、conflict_source、overconfidence_signal | 失败是漏检索、误引用、过期知识、推理错误还是权限边界问题 |
| regression_gate | eval_case_id、bad_case_bucket、release_gate_id、rollback_trigger | 同类幻觉是否进入回归集并影响发布决策 |
先用 Token / Attention 理解模型如何生成,再用训练 / 推理 / Scaling 理解能力从哪里来,然后回到一次请求的一生,看上下文、RAG、网关、评测和护栏如何共同给模型划出可用边界。