溯源生成 / 带引用生成 Grounded Generation

Grounded Generation / Citation-grounded Generation / Attributed QA

大模型在生成回答的同时,对每一个事实性断言都显式标注其「证据来源片段的编号/页号/原文链接」,读者可点击引用直接跳到支撑该结论的 RAG 检索证据块或外部权威来源,从机制上大幅降低幻觉率并提升企业对 AI 输出的信任度与可审核性

详细解释

溯源生成 Grounded Generation(又称 Citation-grounded Generation、带引用生成、归因问答 Attributed QA) 是 2024-2025 年企业 RAG 系统从「尝鲜」走向「生产可用」的核心分水岭技术。传统 RAG 的工作流是「检索 Top-K 证据块 → 把所有证据块塞进 Prompt → 让模型基于上下文写答案」——这种模式最大的缺陷就是「答案看起来很专业,但你完全不知道哪一句话来自哪一段证据,哪一句话是模型自己瞎编的」。业务方不敢直接拿给客户看、法务审不过、合规不敢签。Grounded Generation 补上了最后一公里的信任机制:它要求模型在生成答案的过程中,对任何一个非常识性的事实性断言(数字、日期、人名、条款、结论、价格等)都显式插入「引用标签 [1] [2] [3]」,并在答案末尾附上一份「引用索引表」——每一条引用编号对应具体的证据来源(哪一个文档、哪一页、哪一章节、原文片段是什么、甚至原文 PDF 的精准定位锚点或超链接),使用者点击引用编号即可定位到支撑这句话的原始证据,一秒判断真伪。

溯源生成的工业落地通常分四层工程能力:(1) 引用粒度——最差是「整段回答末尾统一给 3 个出处」(假引用),中等是「每句话一个 [n]」,最佳是「每个事实性断言粒度插引用」;(2) 证据一致性校验——生成完引用后立即跑一个「Claim-Verify 小型校验模型」,自动检查引用编号对应的证据块原文是否真的支撑该断言,如果不支撑(即挂羊头卖狗肉型伪引用)就自动标红或重写;(3) UI 交互体验——鼠标 hover 在引用编号上直接以浮层形式展示证据原文,点击跳转原文页/章/节;(4) 可审核审计——每次生成的回答都连同「答案正文 + 引用索引表 + 证据原文快照 + 引用一致性校验结果」一起落库保存,满足金融、法律、医疗等行业 7 至 30 年可追溯审计要求。

唯元智创 的企业多模态知识库旗舰版已将「全链路溯源生成 + 自动引用一致性校验」作为默认能力:在 RAG 生成阶段,基于检索召回的证据块强制模型按「断言-引用绑定」格式生成结构化 Markdown 引用;生成后立即跑内置的 Claim-Verify 二分类校验,对「引用号对应的证据原文与断言不一致」的假引用自动标红并触发二次重写;最终 UI 端支持 PDF 证据原文精准定位(点击 [3] 打开 PDF 跳到第 5 页并高亮对应段落)。在某全国性律所的「法条 + 司法解释 + 裁判文书」知识库项目中,开启溯源生成前后,律师对 AI 输出的信任率从 23% 提升到 89%,引用与证据不一致的假引用占比从 38% 降到 2.1% 以下,交付时间缩短到原方案的 1/3,是目前大模型进入强合规、强审核行业的唯一可接受的输出形式。

6 种主流溯源生成方案对比表

方案名称引用粒度实现成本「引用-证据一致性」真实准确率幻觉率相对下降是否需要额外训练/微调典型落地场景企业可审计等级
无引用(裸 RAG)无极低0%(不可验证)baseline 100%否C 端轻量闲聊、内容创作无
整段末尾统一出处(伪引用)答案级低20% 至 40%(大量挂羊头卖狗肉)10% 至 20%否内容营销、SEO 文案极低(不合规)
Post-hoc 后处理引用匹配(生成完答案后再给每句话搜证据块)句级/断言级中50% 至 70%(答案先写好再强凑引用,一致性差)30% 至 50%否中小型企业知识库初版中(可接受但需复审)
Inline Citation 生成时强制插引用标签(提示词 + JSON Schema / Function Calling 绑定格式)断言级中70% 至 85%55% 至 70%少量 SFT 效果更佳通用企业 RAG 标准配置中高
Grounded Generation + 生成后 Claim-Verify 自动校验 + 假引用重写(双阶段)断言级 + 校验级中高92% 至 98%70% 至 85%可选(训小型 Claim-Verify)金融、法律、医疗、政企合规知识库极高(满足 10 年审计)
专门小模型微调 + 引用一致性 RLHF / DPO-PROC(训 Citation-Specific VLM)细粒度断言级高95% 至 99%80% 至 90%是(高成本 SFT + DPO)头部金融/法律/医疗专用系统最高(可出具合规报告)
唯元智创 旗舰版默认方案:Inline Citation + Claim-Verify 双阶段 + 证据 UI 精准定位断言级 + 原文页段级定位中高94% 至 99%75% 至 88%是(内置小型通用 Claim-Verify)全行业合规知识库通用极高

实战经验与避坑

  1. 溯源生成最大的陷阱是「挂羊头卖狗肉式假引用」——引用号确实写了 [2],但点进去对应的证据块原文根本不支持那个断言。必须加 Claim-Verify 二阶段校验,不要以为让模型生成了引用就万事大吉:很多团队做 Grounded Generation 第一步就踩这个坑——用 Prompt 加 System Message 强制模型输出 [n] 引用号,线上看起来花花绿绿全是引用很专业,实际人工抽查 100 条发现 30% 至 40% 的引用号和对应证据块完全驴唇不对马嘴(证据讲的是 A 条款,引用它的断言讲的是 B 条款的数值)。根因是:模型生成引用号时的注意力机制只是「大致挑一个看起来像相关的证据块号贴上」,并没有真正做「断言是否被证据蕴含 Entailment」的判定。工程上必须做双阶段:阶段一让模型按引用格式生成答案;阶段二 Claim-Verify:对每个「(断言 C_i, 证据 R_j) 对」,用 300M 至 7B 参数的小型自然语言推理(NLI / Entailment)模型做三分类:「蕴含 / 矛盾 / 无关」。只有分类为「蕴含」的引用才保留;「矛盾/无关」的引用标红并触发一次自动重写(把证据原文重新喂回模型、明确说「你上次贴的引用号不对应,请只根据证据 R_j 原文重新写断言并正确引用」),才能把假引用占比从 30% 降到 5% 以下。
  2. 引用格式在生成阶段就要用 Structured Output 或 Function Calling 锁死结构,不要靠自然语言 Prompt 要求「请尽量在句末加 [n]」——那会有一半模型根本不理你或格式乱成一团:2024 年以后主流大模型(GPT-4o、Claude 3.5、Qwen2 72B、DeepSeek V2+)都原生支持了 Structured Output / JSON Schema 输出。正确做法:不要让模型直接输出 Markdown 正文,而是要求它输出严格的 JSON 结构 {"answer_fragments": [{"claim": "...", "citation_ids": [1,3]}, {"claim": "...", "citation_ids":[2]}], "citations_map": {"1": {"doc_id":"..","page":5,"raw_text_span":"..."}}},生成时就保证每个断言和引用 ID 的绑定关系是机器可读的;渲染到 UI 层再把 JSON 还原为带引用的 Markdown。这一步做到位,之前纯 Prompt 无法解决的「引用号跳号、重复、漏掉末尾索引表」等格式问题 100% 消失。
  3. 溯源生成要和「RAG 检索 Top-K 的证据块排序」联合优化——证据块本身召错了,再强的生成模型也贴不出正确引用:很多团队只在生成层使劲,却忽略了 Grounded Generation 的上限其实是「检索召回的证据块里有没有这句话所需的原文」。统计显示:60% 以上的假引用/无引用可归因的根因是检索阶段根本没召回支撑断言的证据块,模型只能在已有的不相关块里乱贴一个号。必须将「引用-证据一致性校验的通过率」作为一个可回传给检索/精排阶段的优化指标:如果某一类问题的引用一致性持续低于 50%,就说明这个主题的 BM25 权重或 Embedding 召回质量差,要针对性在精排阶段加更多行业术语权重或直接追加该主题的领域训练样本做 微调 Embedding。检索召回 Top-5 的证据块包含了正确证据的比例(Recall@5)从 70% 提升到 95%,引用一致性会自动跟着从 70% 拉到 90% 以上。
  4. 对「常识性知识」和「高争议性话题」要设引用豁免规则,避免为了强制凑引用出现「用一篇完全无关的文章支撑 1+1=2」的笑话:很多团队在 System Prompt 里写死了「每一句话必须附一个引用号」,结果模型为了不违反规则,出现「地球是圆的 [3]」这种引用证据块里根本没讲地球形状的内容的荒谬情况。正确的豁免规则分两类:(a) 常识性豁免:先跑一个 100M 参数的轻量分类器或关键词规则,把「纯数学常识、基础科学常识、通用日期/节日、公共名人姓名」这类主题自动标记为可零引用;(b) 纯观点类/模型自身判断类豁免:用户问「你对这件事的建议是什么」「这个方案的风险你怎么评价」这类需要模型本身综合判断的段落,明确允许标注「本段为 AI 基于多份证据的综合建议,非单一证据原文事实」。规则清晰后,强凑引用的荒谬假引用比例会再下降 5 至 10 个百分点。
  5. UI 层的体验优化和生成层的引用质量同等重要——hover 浮层 + 精准定位 + 原文高亮三者缺一不可,否则即使引用全对用户也懒得点:企业客户真的用的时候,90% 的信任感来自「我点引用能立刻看到原文对不对」,而不是引用号本身存在。工程上三件套必须一起做:① 引用号 hover 浮层:鼠标移到 [2] 上不用点击就弹出一个 200×300 的小浮层显示证据原文对应段落 + 文档标题 + 页号;② 点击精准跳原文:点 [2] 直接打开 PDF 跳到第 X 页、自动滚动到对应段落并把那一段高亮黄色 3 秒(PDF.js 支持文本定位锚点、浏览器锚点支持 #page=5#search=xxx)、Word/HTML 文档要直接定位到对应 <span id="cite-2-raw">;③ 引用号和证据块的双向联动高亮:答案里 hover [2] 时右侧证据区对应的卡片边框高亮,反之点右侧证据卡片,正文里所有引用了该证据的 [n] 全部高亮圆形边框。三件套做足,用户对 AI 输出的信任度能在 2 周内从 30% 拉到 80% 以上,客服、销售、法务等角色就真正敢把 AI 生成的内容直接发给客户了。
  6. 审计落库不要只存答案和引用编号,必须存「当时的证据原文快照」:很多团队只存了 (question, answer, citation_ids, doc_id),以为文档 ID 就能还原引用,半年后发现原始 PDF 被更新了第 5 页的条款内容、或该文件被删除,之前生成的引用全部变成了无法验证的死链,合规审计直接穿底。正确的审计落库表至少包含 6 个字段:问题 Q、答案 A(含引用标记)、引用映射(引用号→doc_id+页号+原文字符偏移 span)、引用证据原文快照 JSON(当时检索回来的 Top-K 证据块原文全文快照)、Claim-Verify 一致性校验结果、生成时间 + 模型版本 + 检索版本。即使半年后原始知识库被删改重写,你也能从快照里还原当时支撑回答的证据原文,满足金融 7 年、医疗 30 年的可追溯审计要求。

常见问题

有了 Grounded Generation 是不是就彻底解决 RAG 幻觉了?还有哪些幻觉类型是引用机制解决不了的?
Grounded Generation 确实是目前针对「事实性幻觉」最有效的工程手段,但不是银弹——它解决的是「断言可验证性」问题,还有至少 4 类重要幻觉类型是引用机制解决不了的,需要和其他技术组合使用才能覆盖。先讲它能解决什么:第一类(可被 Grounded Generation 解决或显著缓解的,占 RAG 事实幻觉的 70% 至 80%)——① 模型瞎编的事实(证据里根本没有→Claim-Verify 会被判为「无引用/引用无关」而被打回重写);② 数值/日期/人名被模型篡改(引用到原文 span 后数字对不上会立即被读者发现);③ 「挂羊头卖狗肉」型引用(有引用但不对应→Claim-Verify 自动抓出);④ 跨文档拼接错误(A 文档的条款被安在 B 文档头上→引用号一对原文就露馅)。这四类解决后,大多数企业能感受到「幻觉率下降 70% 至 85%、客服/法务敢直接用 AI 输出」的质变效果。但仍有 4 类幻觉,引用机制无能为力:第二类——「证据本身就是错的」(Garbage In Garbage Out)。如果你的 RAG 知识库 PDF 本身写错了一个数字(把营收 1.3 亿写成了 3.1 亿)或上传了谣言/过时版本文档,模型引用了这个错误原文做断言,引用号完全正确但结论就是错的。这类「源头证据错误」属于数据质量问题而非模型幻觉问题,必须在知识入库前做「文档版本管理 + 双人审核 + 变更日志」流程来治理,引用机制救不了。第三类——「多证据综合推理型幻觉」。用户问:「根据第 1 条和第 5 条,综合判断我方是否违约?」,这需要把两个独立的证据条款结合法律逻辑做推理,即使模型对第 1 条和第 5 条各自都贴了正确的引用号,综合推理得出的结论本身可能仍然是错误的(比如应该是「违约」被推成了「不违约」)。这类「推理本身的幻觉」必须靠 过程奖励模型 PRM 对每一步推理单独打分 + 自一致性多路径验证来解决,不是引用机制能覆盖的。第四类——「选择性引用偏差」。证据库里有 10 份文档,6 份支持 A 观点、4 份支持 B 观点,模型只引用了支持 A 的 6 份,刻意没提 B 的存在,导致读者误以为行业共识是 A,实际上争议很大。这类「引用偏见」需要在检索阶段引入「反事实证据召回」——检索 Top-K 时强制召回一部分和 Top-K 观点相反或不同角度的证据块放进去,再在 System Prompt 里要求「若存在争议性观点必须在回答中分别列出双方引用」,才能平衡。第五类——「长链数值计算/单位换算错误」。引用的原文是「单价 120 元、数量 5000 个」,模型自己算总价算成了 50 万(正确是 60 万),引用号正确但计算结果错。这类必须把计算部分交给 函数调用的代码解释器(Python / Code Interpreter)执行,结果再贴引用,不要让大模型自己做算术。综上,完整的「RAG 幻觉最小化工程方案」是:Grounded Generation(事实断言引用 70%)+ 源头文档质量治理(20%)+ PRM / 自一致性推理验证(5%)+ 函数调用计算器 + 反事实证据召回(5%),五者组合才能把整体幻觉率压到企业可接受的 0.1% 至 1% 区间,任何单独一项都做不到。唯元智创 的旗舰 RAG 方案就是这五项组合拳打包交付,最终在多个金融法律客户项目上把输出错误率稳定控制在 0.8% 以下,是目前业内可落地性最高的做法。
我的 RAG 已经上线了,引用体验差、假引用多,能不能做最小改造升级成 Grounded Generation?能不能不重训模型就搞定?
完全可以,而且 95% 的企业 RAG 都不需要重训任何模型就能在 1 至 2 周内完成「最小可用版」升级,假引用占比从 40% 降到 10% 以下;想再拉到 5% 以下,再叠加一个开源小模型做 Claim-Verify 就够了。给一份「最小改造 5 步走」,不需要微调,只要改你的 Prompt 模板、结构化输出配置、前端渲染和检索回传管道:第一步,30 分钟改 System Prompt 为「引用强制规则 + 少量正反例」。在原 RAG System Prompt 末尾追加一段引用规则:(a) 定义什么需要引用:「回答中所有事实性内容(数字、日期、人名职位、条款原文、产品规格、价格表)必须在对应断言后插入引用标签 [1]、[2] …;常识性内容(通用节日、基础数学、公众名人)不强制引用;纯主观建议类内容可标注为综合建议」;(b) 引用格式细则:「引用编号对应下方你会收到的证据块编号 1 至 N;一个断言可同时引用多个证据块写成 [1][3];断言插引用后再写逗号句号,不要写反」;(c) 反例对比:「反例:直接写 A 条款适用于这种情况却没标引用——不合格;正例:A 条款第 3 款明确规定了此种情形的适用范围 [2][5]——合格」。仅这一步很多团队假引用占比就能从 40% 降到 20% 左右,成本为零。第二步,切换到 Structured Output 严格绑定断言和引用。把原来要求生成 Markdown 的请求改成要求生成 JSON Schema:{"passages": [{"text": "...", "citations": [1,2]}], "citations": [{"id": 1, "doc_title": "...", "raw_excerpt": "..."}]}(GPT-4o 用 response_format=json_schema、Claude 用 tool_use、开源模型用 Function Calling 或 Regex + 语法约束),生成后再还原为带 [n] 的正文。这一步把引用格式错误、跳号、重复号等问题直接归零,一致性再提升 10% 至 15%。第三步,前端三件套 1 天上线(hover 浮层+跳转+双向高亮)。正文渲染时用正则把 [(\d+)] 替换为带 data-cite-id 属性的 span 标签;浮层读 citation map 里的原文;点击用 PDF.js 的 scrollPageIntoView + scrollMatch 做精准跳页高亮。这一步不涉及模型,纯前端 1 个工程师 1 天就能搞定,是信任体感提升最大的投入。第四步,加 Claim-Verify 二阶段校验(再花 2 至 3 天,把假引用从 10% 压到 2% 至 5%)。找个 Hugging Face 上的开源 NLI/Entailment 模型(BGE-Reranker 附带的 entailment 头、Qwen2-1.5B-Instruct 打 prompt 判定、BERT-base-MNLI-finetuned 都可以,准确率都够),对每个 (断言, 证据原文) 对做一次三分类:蕴含 / 矛盾 / 无关。「矛盾/无关」标红 + 触发重写:把原断言 + 对应证据原文重新给模型说「请严格仅根据下面的证据原文重写该断言,并确保引用一致」,一次重写后一致性通常能再翻倍。第五步,召回与引用一致性闭环(一周做一次,持续优化)。统计每周通过率低于 50% 的主题,把该主题的 Query 和正确答案拿出来重新调 Embedding 权重、精排策略、Chunking 策略,Recall@5 从 80% 拉到 95% 以上,引用一致性的上限就会越来越高。总结:前四步加起来 1 至 2 周、零模型重训成本,假引用从 40% 降到 3% 至 5%;第五步是持续优化,长期再压到 1% 至 2%。绝大多数中大型企业 RAG 项目这套最小改造就够了,完全不需要投入几个月重训基座或 Citation 专用模型。只有当你是头部金融/法律/医疗的最高合规要求,需要引用一致性做到 99% 以上且稳定,才值得做 Citation 专用的 SFT/DPO。唯元智创 的多模态知识库 SaaS 版用户勾选「开启溯源生成」开关就自动完成以上 4 步,无需任何编码,10 分钟即可从裸 RAG 升级成符合合规要求的引用版生产环境。
同一个断言要引用多个证据块、或证据块之间互相矛盾时,溯源生成应该怎么处理才合规?要不要做「冲突显式标注」?
必须显式处理和标注——「多个证据互相支持」和「证据之间互相矛盾」是两种完全不同的引用语义,混为一谈会造成严重的合规误导;工程上要区分「并列引用」「交叉引用」「冲突标注」三种标准格式强制模型输出,并在 UI 层用不同视觉样式区分。三种格式的处理规范和示例逐一讲清楚,直接可以作为企业知识库的引用标准写入 Prompt 规则:规则 1 — 并列引用(多个证据表达同一事实或互相补充)→ 写成 [1][3][5],统一用圆形数字徽标。例如:「本产品额定工作温度范围为 -10℃ 至 55℃ [2][4]」——表示产品规格书第 2 页和安全检测报告第 4 页都写了这个温度范围,两者互相印证。UI 层渲染为三个连排的圆形 [2][4],hover 浮层时同时展示两份证据原文,读者一眼就能看到这个事实有双份证据背书,可信度更高。规则 2 — 交叉引用(一个长断言的前半句来自 [1]、后半句来自 [3]、中间推理部分是模型综合 [1] 和 [3] 得出的)→ 用断言拆分 + 分项引用 + 明确「综合推理」标签。绝对禁止写成「因为 A 条款 [1] 和 B 条款 [3],所以我们应该做 X [1][3]」——X 是推理结果不是证据原文能直接支持的,这种贴法本质就是假引用。正确格式要把断言拆成三段:「合同 A 条款第 2 款约定预付款比例不得低于 30% [1];合同 B 条款第 5 款约定逾期付款违约金按日 0.05% 计 [3];(综合两项条款的推理)据此计算贵方 2024 年 7 月逾期 15 天的违约金约为 XXX 元(本数值计算由代码解释器执行验证,引用条款依据为 [1] 与 [3])」。把「纯证据原文事实」和「模型基于证据做出的推理/计算」显式分开标注,法务和合规一看就懂哪些是证据、哪些是 AI 自己的判断,不会混淆。规则 3 — 冲突标注(证据之间相互矛盾,如旧版合同写 XX,新版补充协议写 YY)→ 绝对不能只挑一方引用,必须显式在回答中用专用的「⚠️ 存在冲突」段落块分别列双方观点和对应引用,并注明冲突解决建议。反例(严重不合规,会吃官司):「XX 事项约定的违约金为日 0.1% [2]」——实际上这是旧版合同第 2 页,而双方后来签的《补充协议三》第 5 页已经改成 0.05%,模型故意只引用了旧版。正确格式(合规标准写法):⚠️ 证据库中存在互相矛盾的约定,请人工复核并按最新效力等级处理:观点 1:违约金日 0.1%,来源为 2023 年 1 月版主合同第 2 页 [2];观点 2:违约金日 0.05%,来源为 2024 年 3 月签署的《补充协议三》第 5 页 [5];建议:补充协议签署时间更晚,效力优先于主合同,在未接到法务进一步通知前,建议以 0.05% 为准并请人工二次确认。在 UI 层,冲突标注块的背景色用浅橙色、开头带 ⚠️ 图标,hover 时两个证据块分别标蓝(观点 1)和标橙(观点 2),让读者第一眼就注意到这里有矛盾必须人工复核,避免模型单方面挑证据造成合规事故。最后一条强制工程要求:在生成阶段,如果检测到 Top-K 证据块对同一个断言有冲突观点,必须在 System Prompt 中把「冲突观点必须分别列出并标 ⚠️」提升为最高优先级规则,否则哪怕模型生成的引用一致性再高也会直接 Reject 触发重写。统计表明,企业知识库场景里约 8% 至 15% 的问题会遇到证据冲突(不同版本、不同部门文档、历史与新规、双方合同),这些问题如果被模型「挑一边站」是最高风险的输出;按以上三项标准引用格式处理后,这类高风险输出会被用户和审核团队一眼识别,输出事故率会下降 70% 以上,是 唯元智创 在交付金融、法律、政企项目时必开的强约束。