训练/推理/外部知识怎么选?
从训练、推理到外部知识集成,3 个方向的方法总结
原题:大模型在生成过程中常出现‘幻觉’现象,即生成不符合事实的内容。请从模型训练、推理机制和外部知识集成等方面阐述缓解幻觉的主要方法。
知识图谱 · 海尔真题
30 秒回答
- 从预训练、SFT、RLHF三阶段分析训练侧优化方法
- 阐述解码策略如约束解码、自我验证、多采样投票等推理机制优化
- 说明RAG检索增强和知识图谱等外部知识集成方案
- 体现系统性思维,覆盖训练-推理-外部知识全链路
回答与解析
答案要点
- 从预训练、SFT、RLHF三阶段分析训练侧优化方法
- 阐述解码策略如约束解码、自我验证、多采样投票等推理机制优化
- 说明RAG检索增强和知识图谱等外部知识集成方案
- 体现系统性思维,覆盖训练-推理-外部知识全链路
一、训练阶段优化
预训练阶段
- 提升数据质量:去重、过滤低质网页、增加权威来源(书籍、论文、百科)比例
- 知识边界感知:在数据中显式标注"不确定"表述,让模型学会表达未知
SFT阶段
- 构造高质量事实性指令数据,答案需带引用来源
- 引入"拒绝回答"样本:对超出知识范围的问题训练模型坦诚表示不确定
RLHF阶段
- 奖励模型加入事实性维度,惩罚编造内容
- 使用RAG或工具调用结果作为参考答案进行强化学习
二、推理机制优化
解码策略
- 约束解码:强制要求关键事实必须来自输入上下文
- 自我验证:生成后让模型自我检查"这个陈述是否有依据",可迭代多轮
- 多采样投票:多次采样取一致答案,降低随机性带来的幻觉
推理时增强
- Chain-of-Thought:显式推理过程便于追溯错误来源
- 动态置信度估计:输出时附带不确定性分数,低置信度触发人工审核
三、外部知识集成(RAG为核心)
检索增强生成
- 检索相关文档作为上下文,将生成约束在检索内容范围内
- 关键:检索召回率+重排序精度,需处理检索失败时的优雅降级
知识图谱增强
- 将结构化知识(KG)与非结构化文本联合检索
- 复杂推理场景用KG进行多跳验证
工具调用
- 对时效性、精确性要求高的信息,调用搜索引擎、数据库API实时获取
四、系统层兜底
- 事实性校验模块:NER提取实体,与知识库比对
- 人机协同:高风险场景设置置信度阈值,低于阈值转人工
- 持续反馈闭环:线上幻觉案例回流训练数据
核心思路:幻觉无法完全消除,需构建"预防-检测-缓解"的多层防御体系,根据业务风险等级选择技术组合。
口语版讲法(约4分钟)
- 一句话定位:幻觉是生成与事实的偏差
- 训练侧:数据质量和标注是关键
- 推理侧:解码策略和自我验证
- 外部知识:RAG和工具调用
- 落地取舍:多层防御,预防为主
面试官你好,这道题问的是大模型幻觉怎么缓解,其实本质是模型在生成时没有和事实对齐。我从训练、推理、外部知识三个方向讲,但落地时很少单用一招,都是组合拳。
先说训练侧,这里有个常见误区:很多人一上来就搞 RLHF,但基础不牢后面很难补。我自己的经验是,数据质量是地基。预训练阶段,不能光堆数据量,要清洗掉低质网页,增加权威来源比如论文、百科的比例。还可以在数据里显式标注“不确定”的表述,让模型学会说“我不知道”。这个在客服场景特别有用,比如用户问“这个订单为什么还没发货”,模型如果没检索到具体信息,直接编一个理由就出事了。
SFT 阶段,我会构造带引用来源的指令数据,答案必须说“根据文档第几段”,同时加入“拒绝回答”样本:超出知识范围的问题,模型要坦诚说“我不确定”。RLHF 阶段,奖励模型不能只优化流畅度,要加事实性维度,对编造内容扣分。这里有个前提:事实性标注成本很高,否则奖励模型本身会学歪。
推理侧优化是性价比最高的。先说解码策略,约束解码强制关键事实来自输入上下文,适合摘要、问答这种输入里就有答案的场景。自我验证是生成后让模型自己检查“这个陈述有依据吗”,可以迭代几轮,但要注意别死循环。多采样投票就是多次采样取一致答案,能降低随机性带来的幻觉,但成本翻倍。
举个例子,企业 SOP 查询场景,员工问“报销流程是什么”,我会用 Chain-of-Thought 让模型一步步推理,每步都引用文档。如果置信度低,就触发人工审核。这里有个坑:自我验证如果模型本身知识不足,会越检查越错,所以要结合外部知识。
外部知识集成,RAG 是核心。检索相关文档作为上下文,把生成约束在检索内容里。但 RAG 不是万能的,检索失败时生成会崩。所以我会做两件事:一是提升检索质量,用 Hybrid Search 结合 BM25 和 Embedding,再加 Rerank 精排;二是优雅降级,检索不到就明确说“没有相关信息”,而不是瞎编。
Knowledge Graph 适合复杂推理,比如“这个客户和哪个供应商有纠纷”,需要多跳验证。Function Calling 对时效性信息很有效,比如查实时库存、天气,直接调 API。
说到这,有个有意思的点:很多人觉得 RAG 和微调是二选一,但我实际做下来,两者结合效果更好。微调让模型学会正确使用检索结果,RAG 提供实时知识,但怎么平衡两者权重是个开放问题。比如微调后模型可能太依赖参数知识,忽略检索结果,这个现象叫“知识冲突”。
最后总结一下,幻觉无法完全消除,我倾向于构建“预防-检测-缓解”的多层防御。预防靠训练数据质量,检测靠推理时自我验证,缓解靠外部知识兜底。上线前一定要用 RAGAS 或类似工具评估事实性,否则风险很大。所以我会把幻觉缓解看成系统工程,根据业务风险等级选技术组合,而不是迷信某一个方法。
关键一句:RAG和微调结合时存在知识冲突,模型可能忽略检索结果
面试官还可能这样问
- 问法 1 · 场景切入
假设你在做一个智能客服,用户问‘今天上海气温多少’,模型答‘28度’,但实际只有22度。这种胡说八道你会怎么治?
- 问法 2 · 层层追问
大模型生成内容不靠谱,一般有哪些原因?……那从训练层面能做什么?……除了训练,推理时有没有办法实时纠正?
- 问法 3 · 直球架构
大模型幻觉问题,从训练、推理、外部知识集成三个维度,你分别会用什么方法来缓解?说具体方案。