一个常见的内部问答场景是:员工问“设备借用规则改了吗”,系统很快给出一段流畅回答,还附了条款编号。同事点开来源,却发现引用的是旧版附件。模型没有说谎,它只是在依据不足时把语言补全了。检索增强生成要处理的,正是“答得像”和“答得有据”之间的缝隙。
把它理解成“给模型外接一个知识库”,只说对了一半。知识库不会自动变成可靠上下文。中间还要经过文档解析、切分、索引、召回、筛选和重排。任何一步粗糙,最后都可能把无关段落递给模型。模型拿到材料后,仍要判断哪些句子能支撑答案,哪些只是背景。检索增强生成更像一套“先查证、再动笔”的流程约束,而不是给模型装上一块永久记忆。
先找证据,再组织语言
实际落地时,这套流程通常包含几个动作:把文档拆成可检索的片段,为片段建立索引,根据问题召回一批候选内容,再从中筛出少量可用证据,最后让模型在给定材料内组织回答,并尽量标注来源。听上去像流水线,难点却在细节。片段太短,上下文断裂;片段太长,噪声混入。问题表述模糊,召回可能偏离;文档版本混杂,答案就可能互相打架。
我倾向于把检索层看作“证据编辑”,而不是简单的搜索框。它不是把所有相关文件都塞给模型,而是帮助模型在有限上下文里看到更合适的材料。这里需要工程判断:哪些字段参与检索,元数据如何保留,过期内容怎样隔离,引用粒度细到什么程度。把这些工作做扎实,回答的可靠性才有基础。
麻烦常常不在生成端
很多讨论把注意力放在模型生成上,但企业问答里另一类问题在知识侧。同一制度存在多个版本,附件散落在不同目录,表格和正文混排,权限边界又不一致。检索增强生成会把这些问题放大:模型可能引用了用户本无权查看的段落,也可能把已经失效的条款当成现行规则。要避免这些情况,权限过滤、时效标记和文档责任人需要在检索前后共同起作用,而不是事后补一句“仅供参考”。
- 文档治理:明确版本、生效时间和适用范围,避免把历史材料混入当前上下文。
- 权限控制:在召回和展示环节都做校验,不能只依赖前端隐藏。
- 评估机制:准备一批贴近真实提问的测试问题,观察召回材料是否支撑答案。
这些工作不显眼,却决定系统能不能被长期使用。一个只会生成漂亮句子的问答入口,如果没有可追溯的证据链,很难让人放心把判断交给它。
它适合解决“有据可查”的问题
检索增强生成适合那些答案藏在组织文档里、需要引用来源、知识又会持续变化的问题。它并不适合替代开放推理,也不能自动弥合互相矛盾的制度条款。当问题需要责任判断、跨部门协商或价值取舍时,检索只能提供材料,不能替人做决定。换句话说,它能降低“凭空作答”的概率,但不能保证每个答案都正确。
回到开头那个设备借用问题。一种做法,不是让模型直接给结论,而是先展示它找到的条款、生效日期和适用范围,再让提问者确认。这个动作看起来慢了半拍,却把信任建立在可核查的材料上。这套流程的价值,也许就在这里:它不承诺模型变得无所不知,而是让回答之前多一道查证的手续。