RAG意图识别原理与检索协同
分类模型与提示工程方法,如何与检索组件协同
原题:在基于检索增强生成(RAG)的系统中,意图识别模块是如何实现的?请说明其在整个流程中的作用、常用方法(如分类模型或提示工程),以及如何与检索组件协同工作。
多模态 · 哔哩哔哩真题
回答与解析
作用
意图识别是可选的路由层,用于决定是否检索、访问哪个知识域、应用哪些元数据过滤、是否改写查询,以及选择问答、摘要、操作或拒答流程。简单单库 RAG 可以不单设该模块;多租户、多工具或多索引系统中,它能减少无关检索并执行路由策略。
实现方式
- 规则与结构化信号:关键词、实体、会话状态、产品入口,延迟低且可解释;
- 监督分类器:BERT 等编码器输出意图与置信度,适合稳定且有标注的类别体系;
- LLM 结构化路由:用 schema 约束输出 intent、index、filters、need_retrieval,适合开放表达,但要验证格式、成本和提示注入风险;
- 混合路由:高置信规则或分类器直达,低置信样本交给 LLM 或安全兜底。阈值应从校准曲线和误路由代价确定。
多标签、层级意图和未知类应显式建模,不能把低置信度强行归入已知类别。
与检索协同
路由结果生成检索计划,但检索必须再次执行租户和文档级授权,不能把模型输出当安全边界。检索后可根据命中数、证据质量或冲突触发查询改写、扩大范围、澄清或拒答。评估除意图 F1 和校准外,还要看端到端 Recall、回答正确率、越权率、P95 延迟和成本;固定延迟或置信阈值没有跨系统通用性。
口语版讲法(约90秒)
- 意图识别是按复杂度选用的路由层
- 规则、分类器、LLM与混合路由各有边界
- 低置信和未知意图需要澄清或兜底
- 授权在检索端再次执行并做端到端评估
RAG 里的意图识别主要负责制定检索计划:是否需要检索、去哪个知识域、带哪些过滤条件,以及走问答、摘要还是工具流程。它不是每套系统都必须独立存在;单一知识库可以直接检索,多索引、多租户或多工具场景才更需要路由。
实现可以从规则开始,类别稳定且有数据时训练分类器,开放表达较多时让 LLM 输出受 schema 约束的结构。生产中可做混合路由:高置信样本直接处理,低置信或未知意图触发澄清、扩大检索或安全兜底。置信阈值由校准曲线和误路由成本确定,不是固定数字。
路由输出不能被当成权限证明。检索服务仍要按真实身份执行租户、索引和文档级授权,并防止查询文本中的提示注入改变权限。检索后还可以根据证据数量与质量回馈路由。
验收既看意图 F1 和校准,也看端到端召回、回答正确率、越权率、尾延迟和成本。只有最终任务收益改善,路由模块才有价值。
关键一句:意图识别负责检索路由而非安全授权,低置信样本必须有澄清或兜底路径。
核验来源
面试官还可能这样问
- 问法 1 · 场景切入
比如你做一个智能客服,用户上来问“怎么退款”,你肯定要先判断他到底是要查政策、填表单还是骂人,然后才决定去搜知识库还是直接引导。那这个意图识别在RAG里具体怎么实现?
- 问法 2 · 层层追问
RAG系统收到一个query之后,你会先做什么?……是不是得先搞明白用户想干嘛?……那这个意图识别模块在RAG里本质是干啥的,跟检索和生成怎么配合?
- 问法 3 · 直球架构
RAG系统中的意图识别模块,请讲一下它的作用、常用方法(比如分类模型还是提示工程),以及它怎么和检索组件协同工作?