← blog 技术原理与实践 · 2026-08-08

意图识别系统建设指南:从支付宝618实战中提炼的设计哲学与进化SOP

深入拆解支付宝618大促中意图识别模块的5天进化实录,提炼出'翻译层'设计哲学、四类意图模型、五条选型约束,以及一套可复用的提示词自进化SOP(train/test切分+双门槛收敛+反过拟合防线)。

11 min read

本文脱胎于支付宝 618 大促中一个真实意图识别模块的 5 天进化实录。我们从中提炼出可复用的设计哲学、端到端构建链路,以及一套将 Prompt 当模型训练的自动化 SOP。如果你正在建设面向开放域场景的意图识别系统,这篇文章会提供一份务实的工程参考。

引言:意图识别不是分类,而是翻译

在大模型时代之前,意图识别通常被当作一个封闭的分类问题——预设几十个标签,训练一个分类器,将用户输入映射到其中一个桶里。这在”订机票""查天气”这类封闭场景中有效。

但当意图识别被放到开放域的电商消费场景时(例如用户说”想买个蓝牙耳机,200 以内”),传统范式就失效了。用户的表达无穷无尽,且真实意图具备跨品类、流动性、甚至用户自己都说不清的特点。

支付宝 618 大促中的 AI 找优惠二期项目,将意图识别模块定位为全链路的 “翻译层”——它不持有 SKU 数据、不做推荐算法,只负责把用户的”人话”翻译成下游可消费的结构化查询:【意图类型, 优先级, 关键词, 用户描述摘要】。

这个系统从选型到上线只用了 5 天。它的价值不在于模型多强,而在于如何用工程化的方法,在有限的资源和极短的时间内,构建一个效果可用、且能持续进化的系统。

一、设计哲学:先立规矩,再谈技术

1. 意图识别是”翻译层”,不是”导购”

模块职责被严格收敛。开发团队在项目启动时就立下了”五大约束”,其中第一条就是 “别越界”——意图识别模块不碰商品数据和推荐算法,只做语义到结构化查询的翻译。

这一定位带来了两个好处:

  • 职责单一,易于评测:模块的输入输出边界清晰,可以独立验证效果。
  • 系统解耦,易于演进:下游的召回、排序、权益匹配可以独立迭代,不受意图模块的制约。

2. 四类意图 + 优先级驱动

意图被划分为四种类型,优先级自然浮现:

类型含义优先级
ITEM明确商品(如”我要买蓝牙耳机”)L1(最高,直接推荐)
BENEFIT明确权益/优惠(如”有满减券吗”)L1(最高,直接推荐)
VAGUE有购物倾向但品类不明(如”想买个礼物”)L2~L4,引导澄清直至 L1
IRRELEVANT无关/闲聊(如”今天天气不错”)不推荐任何权益

优先级设计解决了”什么时候该推荐、什么时候该引导”的业务问题,也简化了下游系统的决策逻辑。

3. 五条选型约束(“快省准记得住别越界”)

模型选型不是追求”最好”,而是追求”最务实”。项目定义了五条硬约束:

  1. 快:首 token 1~2 秒内出结果(否则用户流失)。
  2. 省:618 大促流量巨大,按 token 计费的大模型预算扛不住。
  3. 准:四类意图的区分不是关键词匹配,模型必须理解语义。
  4. 记得住:上下文 32K 是底线(system ~5000 字 + 输入 50 + 输出 100 token)。
  5. 别越界:只做翻译,不碰商品/推荐。

在这五条约束下,团队在 4 小时内完成了模型选型:从 7 个候选模型中筛掉多模态模型(纯文本输入,视觉编码器闲置浪费显存)和嵌入模型(语义理解深度不足,且需维护向量库),最终锁定 Qwen3 纯文本系列的 4 个模型(8B/14B/两个 30B MoE)。

评测显示 14B 效果最好,但资源交付有风险(部署成本、推理时延),最终线上选择了 8B。作者总结:“不是因为 8B 完美,而是在所有约束条件下,它是最务实的选择。”

4. 用户体验至上(业务兜底原则)

当权益召回与用户输入不相关时,系统宁可识别为”无关意图”(IRRELEVANT),也不做”无关联商品兜底推荐”,以避免交互的割裂感。

“如果实在解决不了,上线后再解决也不大。”

这体现了项目对用户体验的极端重视,也降低了系统的容错压力。

二、构建链路:端到端 Pipeline

用户输入自然语言
   ↓
[意图识别模块 = 翻译层]
   ↓ 输出结构化: intentType + level + keywords + intentSummary
下游召回/匹配(权益 or 商品)
   ↓
推荐结果返回

具体的构建步骤(从 0 到上线,5 天完成):

  1. 问题定义:明确四类意图与优先级规则。
  2. 模型选型(4 小时):请教 3 个踩坑团队 → 收敛到 Qwen3 系列 → 排除多模态/嵌入 → 锁定 4 个纯文本候选。
  3. 先造高质量评测集,而不是先跑模型(“垃圾进、垃圾出”):
    • 基于业务规则定向构造用例(覆盖边界、贴近真实口语、省略、错别字),而非线上随机采样。
    • 歧义 case 直接剔除。
    • 人工审查锁定”黄金用例集”(52 条)——标注可信度 > 数量。
  4. 候选模型评测:4 个模型各跑全部 case,统一调用脚本、统一 system prompt 与输入,唯一变量是模型本身。
  5. 四维评测:效果 / 时延 / 成本 / 上下文,一张表汇总对比。
  6. 系统提示词自进化(详见下文 SOP)。
  7. 上线前 badcase 处理:同步调整训练集 → 人工确认方向写粗版本 → Loop → 评测(评测标准同步修改)。
  8. 效果实验与收益验证(A/B 分组)。

三、SOP:提示词自进化的标准流程(最核心方法论)

手动调参的痛点在于:没有反馈回路,只有会疲劳的眼睛和会自我欺骗的大脑。某个 case 修好了,另两个又坏了。首版 prompt 加权得分 80.8,手动调参三四轮即崩溃。

系统的解决方案是:把 Prompt 当成模型来训练。

阶段 1:搭自动化闭环

将”跑评测 → 看分数 → 改 prompt → 再跑评测”交给程序自动循环:

  • 框架自动扫描 reports/round_N/ 决定当前轮次,从 prompts/system_prompt.md 的 symlink 反推版本号。
  • 进入评测 → 打分 → 收敛判断 → 改写四阶段循环。

阶段 2:引入 train/test 切分(治”背题”)

所有评测/打分/改写如果都在同一批数据上,Prompt 会慢慢”背答案”过拟合。解法是引入训练集与测试集:

  • 训练集:用于发现 badcase、驱动改写。
  • 测试集:不参与改写,每轮结束后独立评测,验证泛化。
  • 收敛双门槛:train ≥ 90 且 test ≥ 92,同时达标才算收敛;train 涨 test 跌则标注”疑似过拟合”。

阶段 3:反过拟合的多层防线

改写器(由 GLM-5.1 / DeepSeek-V4-Pro 等聪明模型承担)收到”当前 prompt + 评分反馈 + badcase + 意图混淆模式”,生成改进版。四条硬规则:

  1. 案例服务于规则:多个 badcase 必须先抽象共同判定规则写进 Rules,严禁批量堆 few-shot 刷指标。
  2. 新增案例硬上限:每个失分维度/规则本轮最多新增 1 条示意性案例(只用于说明边界/反例,不穷举)。
  3. 区分 train/test 信号:
    • 两端共现(train+test 都有)= 真实规则缺口 → 优先抽象成规则修复。
    • 仅测试集 = 泛化不足 → 往”判定原理”上改。
    • 仅训练集 = 大概率噪声/长尾 → 禁止为它单独加规则。
  4. 已达标维度原样不动:只改不满足的维度。

阶段 4:双轨评分体系(正确性 + 质量)

6 个打分维度,双轨并行:

  • 规则打分(毫秒级):intent_accuracy 字符串比对、format_compliance JSON schema 校验——管”对不对”。
  • LLM 打分(4 并发 100 条约 2-3 分钟):关键词提取、追问自然度、摘要准确度等需语义理解的维度——管”好不好”。

权重分配:业务最在意”意图别判错(30%)“和”关键词别提取歪(30%)“,合计近 60%(因为下游搜索/推荐完全依赖这两个字段)。

阶段 5:方向纠偏

当评估发现模型大方向走偏时(例如想在 Workflows 里新增”无关性初筛”Step,而非改整体 prompt),及时打断正在进行的 Loop,用 PromptOptimizer 优化器先写一版大方向正确的粗版本,纠偏后再继续执行 Loop。

四、效果实验与业务启示

实验设计:普通版为 baseline,按互动深度分三组——自动首推组 / 预设按钮交互组 / 自定义对话组,观测 CTR 与人均价值贡献的相对变化。

核心发现:

  1. 自动首推 alone 无正向转化:商品点击率较 baseline 降约 11.8%,人均价值贡献降约 8.3%。
  2. 用户主动互动是转化核心驱动力:从被动接收转为主动交互,两项指标显著正增长。
  3. 互动深度与转化效率正相关:自定义对话组(最深交互)商品点击率达普通版 3.7 倍,人均价值贡献达 2.1 倍。

业务启示:

  • 不建议单独依赖自动首推承接转化。
  • 应重点引导用户进入主动交互(预设按钮、自定义对话降低表达门槛)。
  • 自定义对话是效率最高的转化场景,资源有限时优先建设。

五、踩坑方法论(可迁移经验)

  1. 重复 3 遍就要造轮子:AI 时代造轮子成本大幅降低(对 coding agent 说一句话 30 秒出脚本)。例如,跑增量单元测试的脚本(diff 分支后只跑改动的 Java 类);评测结果可视化脚本(把 JSON 报告生成趋势图/雷达图,避免每次手翻对比)。
  2. Switch Context 累但值得:5 天里长期多窗口并行(Java 开发 / 调优框架 / 跑评测)。AI 时代角色从”执行者”变”调度者”,吞吐量取决于能同时让多少个 AI 在正确方向运转。
  3. 保持热情 + 动手能力是 AI 时代最难能可贵的技能;保持谦逊、务实、专注。

六、对意图识别系统建设的可借鉴要点

  1. 职责边界先行:明确意图识别只做”翻译”,越界即失败。
  2. 评测集比模型更重要:先造可信度高的”黄金用例集”(定向构造 + 人工精标 + 边界优先),再选模型。
  3. 以约束筛选模型(快/省/准/上下文/不越界),选”最务实”而非”最佳”。
  4. 把 prompt 当模型训练:train/test 切分 + 双门槛收敛 + 反过拟合规则,彻底解决”手动调参无反馈”。
  5. 双轨评分:规则打分管”对不对”,LLM 打分管”好不好”,按业务权重加权。
  6. 上线前处理 badcase 的 SOP:调训练集 → 人工确认大方向 → Loop → 评测(同步改标准)。
  7. 用实验验证产品价值:以互动深度分组做 A/B,用数据证明”用户主动表达 > 被动推荐”。

结语

这个 5 天进化实录最有价值的地方,不在于它用了多么强的大模型,而在于它展示了一种工程化的 AI 系统构建方法论:明确边界、以评测集为核心驱动选择、将 Promot 优化流程化且反过拟合、并用实验验证业务假设。

对于正在建设意图识别系统(或类似 LLM 应用系统)的团队,这套方法和纪律,远比某个具体模型的选择更具复用价值。

Sources

No external sources for this entry.

Related