Skip to main content

意图识别怎么做?三层漏斗架构的工程取舍

· 6 min read

意图识别不能全丢给大模型——面试这么答,基本就掉到「只会调 API」那一档了。

  1. 三大问题:全丢大模型 → 延迟 500ms-3s / 成本 / 稳定性全面崩盘。
  2. 规则层35% 高频走关键词 / 正则 / 状态机,规则数量严控
  3. 上下文层55% 走小模型或语义匹配,难点是 DST。
  4. 工具层:仅 10% 复杂请求兜底走 LLM,必须配超时降级
  5. 核心思想:能用规则解决的不走模型,能用小模型解决的不走大模型。
  6. 面试模板:先点三大问题 → 再讲三层漏斗 → 最后落观点。
  7. 关键数字90% 请求前两层解决掉,根本不需要惊动大模型。

面试官真正想听什么

面试官问"意图识别怎么做",期待的不是你背 NLU、BERT、Intent Classification 这些术语,而是看你 有没有工程取舍意识

张嘴就说"全丢给大模型让它们去判断",问题不在于大模型不行,而在于把所有请求都丢给大模型,等于把生产系统的命门交给一个不可控的外部服务。

现实里会有三个雷:

  1. 延迟:大模型响应一次普遍 500ms-3s,用户问查物流等两秒才有反应,体验直接崩。
  2. 成本:每次调用都要花钱,请求量一上来账单飞涨,老板看了血压也跟着涨。
  3. 稳定性:模型幻觉、接口超时、服务限流,任何一个发生核心业务都可能瘫痪。

这三个问题在 demo 阶段全看不出来——本地跑通了一切都好,上生产被流量一冲全是雷。

三层漏斗架构

答案是 三层漏斗分层路由,从上到下分别是规则层、上下文层、工具层。

层级技术手段流量占比响应时间核心价值
规则层关键词、正则、有限状态机35%< 5ms拼速度
上下文层微调小模型(DistilBERT)/ 语义向量55%50-200ms拼平衡
工具层LLM + function calling10%500ms-3s拼理解力

核心思想就一句话:能用规则解决的不走模型,能用小模型解决的不走大模型

第一层:规则层

技术手段最朴素——关键词匹配、正则表达式、有限状态机。听起来没什么技术含量,但有一个其他方案都比不了的优势:响应速度 < 5ms

它处理的是意图特别明确、表达基本固定的场景。比如用户说「查物流」「退换货」「我要投诉」,话术翻来变去就那么几十种,几十条规则就能覆盖住高频流量。

但这里有个 关键原则只保留高频、明确、不变的意图。什么都往里塞,规则越写越多,最后变成一个谁都不敢碰的规则屎山——维护成本会比想象中爆炸得快。

第二层:上下文层

这一层承接 55% 的日常请求,是流量主力。技术选型通常两条路:

  • 微调小模型:比如 DistilBERT、BERT-tiny 这类几十 MB 的模型,针对自己的意图分类数据微调一遍
  • 语义向量匹配:用 Embedding 模型把用户输入和标准意图模板都映射到向量空间,做相似度检索

这一层真正的难点不在选什么模型,而在 DST(Dialogue State Tracking)——对话状态追踪。

用户说一句「那个呢」「然后呢」——没有任何明确的意图词,你怎么知道他在说什么?必须维护一个结构化的对话状态:当前在哪个意图里、已经填了哪些槽位、上文提到了哪些实体。这样用户说省略句的时候你才接得住。

规则层能拼速度,这一层拼的是 速度与灵活性的平衡

第三层:工具层

剩下的 10%——意图模糊、多个意图混在一起、包含隐含意图的请求——才交给大模型。

典型场景:用户说「我上次买的那个不太行,你帮我看看怎么弄」。这句话里隐含了 售后意图,需要查订单 + 退换货判断。规则层和上下文层都搞不定,这才轮到 LLM + function calling 直接把意图识别和工具执行打通。

大模型这层不能裸奔

两个机制必须配:

  1. 超时降级:大模型半天不回来,得有兜底响应("我理解您的问题,请稍等"或转人工)
  2. 置信度校验:模型输出的意图置信度太低,直接转人工,不要硬猜

少了这两个机制,等于把所有风险都甩给一个可能 5 秒后才返回 500 错误的外部服务。

工程取舍的三条原则

回到面试题,面试官真正想看的是你的 工程取舍能力,不是「我知道 Intent Recognition 这个术语」。

这套架构解决了三个问题:

  1. 分层路由:每层只做自己最擅长的事。规则层拼速度,上下文层拼平衡,大模型层拼理解力。互不越界。
  2. 成本优先:越靠前的层成本越低。90% 的请求在前两层就解决掉,根本不需要惊动大模型。
  3. 兜底保障:那 10% 复杂场景依然有最终防线,用户不会觉得这个系统很笨。

所以面试时正确的回答方式:先点出全丢大模型的三大问题,再说三层漏斗架构的设计思想,最后落到——

工程取舍的本质是让大多数请求在成本最低的那一层被解决

这才是亮观点的地方,也是这套架构真正的价值。

References

  1. 面试官问:意图识别怎么做? —— AI大模型面试实战, Bilibili