意图识别在 RAG 中怎么用?
提升检索准确性与生成质量的关键模块
原题:在检索增强生成(RAG)系统中,意图识别模块承担什么关键作用?请阐述其在提升检索准确性和生成质量方面的重要性。
评估与监控 · OPPO真题
30 秒回答
- 意图识别决定检索策略选择(向量检索/关键词检索/混合检索)
- 通过查询改写和扩展提升召回率
- 识别多跳/复杂意图以触发Agent能力
- 过滤无关查询降低幻觉风险
回答与解析
答案要点
- 意图识别决定检索策略选择(向量检索/关键词检索/混合检索)
- 通过查询改写和扩展提升召回率
- 识别多跳/复杂意图以触发Agent能力
- 过滤无关查询降低幻觉风险
- 为生成阶段提供结构化上下文指导
意图识别的核心作用
意图识别是RAG系统的"路由中枢",解决**"用户到底想要什么"**的问题,直接决定后续检索和生成策略。
一、提升检索准确性
| 场景 | 意图识别的作用 |
|---|---|
| 检索方式选择 | 事实类→关键词/稀疏检索;语义类→向量检索;模糊需求→混合检索 |
| 查询改写 | 识别省略实体(如"这个产品的价格"→补全具体产品名) |
| 多跳拆解 | "A和B哪个更好"→拆分为两个子查询分别检索 |
| 时效判断 | 识别"最新""今年"等时间意图,触发实时数据源 |
关键价值:避免"一把梭"向量检索导致的语义漂移或关键词检索的语义丢失。
二、提升生成质量
- 上下文筛选:根据意图类型过滤检索结果(如"优缺点"意图优先保留对比性文本)
- Prompt路由:不同意图匹配不同System Prompt(闲聊 vs 专业问答 vs 拒答场景)
- 幻觉防控:识别超出知识库覆盖范围的意图,触发"我不知道"或联网搜索
三、典型工程实践
用户Query → 意图分类器 → 路由决策
↓
├─ 事实查询 → 精确检索 + 严格引用生成
├─ 开放讨论 → 宽松检索 + 创造性生成
├─ 多条件筛选 → 结构化查询 + SQL检索
└─ 无关/违规 → 直接拒答
实现建议:轻量模型(BERT级)做初分,复杂场景用大模型二次确认,兼顾速度和准确率。
口语版讲法(约4分钟)
- 一句话定位:意图识别是RAG的路由中枢
- 检索准确性:方式选择与查询改写
- 生成质量:上下文筛选与幻觉防控
- 落地风险:前提与常见失败场景
- 工程师取舍:倾向Agentic RAG和轻量级初分
这道题其实问的是,在RAG系统里,怎么让机器在动手检索之前先搞明白用户到底想要什么,而不是直接盲搜。我的理解是,意图识别扮演的是路由中枢的角色,它决定了后续用哪种检索方式、怎么改写查询,甚至影响生成阶段的策略。
具体说一下检索准确性这块。不同意图得匹配不同检索方式:事实类问价格、日期这种,用关键词或 BM25 最准,语义类像“帮我分析一下趋势”,向量检索更合适。真正落地的场景,比如电商客服里用户问“这个产品的退款周期是多久”,意图识别得先判断这是事实查询,然后自动补全产品名,避免向量检索搜到一堆相似但无关的文档。再一个,多跳意图比如“A和B哪个性价比更高”,系统得拆成两个子查询分别检索,再合并结果。如果只用一个向量检索,很容易语义漂移,召回一堆不相关的。
生成质量方面,意图识别能帮我过滤检索结果。比如用户问“有什么优缺点”,我优先保留带对比性的文本,而不是一堆基础介绍。Prompt路由也靠它:闲聊场景用宽松的System Prompt,专业问答得严格引用。还有幻觉防控,如果意图明显超出知识库范围,比如问“明年双十一满减政策”,系统得直接拒答或触发联网搜索,而不是瞎编。
这里有个坑,就是意图识别的精度和召回怎么平衡。如果分类太粗,比如所有问题都走向量检索,召回率可能高但精确度差,生成时容易引入噪音。如果分类太细,模型又可能过拟合,复杂意图识别不准。常见失败场景是用户用口语化表达,比如“这玩意儿咋退”,意图识别可能判成闲聊而不是退款咨询,导致检索错误。所以前提是训练数据要覆盖足够多的真实用户Query变体,不然上线后效果会崩。
所以我会更倾向用轻量级模型比如BERT做初分,快速过滤掉明显无关的查询,再对大模型拿不准的复杂意图做二次确认。这样既能保证速度,又能处理模糊场景。不过这里有个延伸点,就是当意图识别和外部工具联动时,比如识别到“查库存”意图后触发 Function Calling,怎么保证调用链路的可靠性和延迟,这个在实际工程里挺有挑战的。
总的来说,我把意图识别看成RAG系统的守门员,它做得好,检索和生成才能事半功倍。
关键一句:意图识别与外部工具联动时,如何保证调用链路的可靠性和延迟控制。
面试官还可能这样问
- 问法 1 · 场景切入
假设你在做电商客服RAG,用户问“这个手机和那个比哪个好”,但没说是哪两个手机。这时候意图识别要做什么?如果识别成比较意图,检索和生成会怎么调整?
- 问法 2 · 层层追问
RAG系统里,用户输入进来,你通常第一步做什么?……那意图识别具体起什么作用?……如果用户问“最新政策有什么变化”,意图识别要怎么影响检索策略和生成质量?
- 问法 3 · 直球架构
请阐述在RAG系统中意图识别模块的关键作用,重点说它如何提升检索准确性和生成质量,比如在检索方式选择、查询改写、上下文筛选等方面。