意图识别/分类场景
意图识别/分类场景广泛应用于智能客服、业务路由等工作流场景。工作流的意图识别节点需要根据用户输入的自然语言,精准判断其所属的业务分类,并输出特定格式的文字标签,供下游任务使用。
典型应用示例:客服分类场景
- 用户输入:"我家的宽带突然断了,上不了网"
- 期望输出:故障报修
- 下游路由:根据标签分发到故障处理流程
该场景看似简单,但在实际应用中存在以下挑战:
- 表述模糊:用户问题意图不明显(如"我想问下宽带的事"),模型容易误判。
- 多意图问题:用户一句话包含多个意图(如"我想查账单顺便修改密码"),难以识别主意图。
- 模型输出包含多余内容(如好的,用户的意图是:),导致下游分支网关解析失败。
- 未在预设分类范围内的问题,模型倾向于强行归类而非拒识。
针对上述挑战,需要在模型优化训练中重点构造数据集和奖罚机制的配置。
数据集构造示例
构造数据集时,不需要刻意设计复杂的拒识案例或意图模糊的干扰项,只需提供指令清晰的正向用例即可。
| 用户输入 | 期望输出 |
|---|---|
| 宽带断了,光猫一直闪红灯,上不了网 | 故障报修 |
| 我想咨询下套餐价格 | 业务咨询 |
| 宽带有点问题 | 故障报修 |
| 查下话费,网速太慢的问题得先给解决下 | 故障报修 |
| 咨询套餐价格 | 业务咨询 |
| 更改套餐 | 业务办理 |
数据集中用户问题必须来源于真实用户输入或模拟真实表述,覆盖不同句式、语气、情绪。
奖罚机制配置示例
奖罚机制采用“规则奖励 > 精确匹配奖励”。
| 奖励规则 | 权重 | 正则表达式 | 说明 |
|---|---|---|---|
| 规则奖励 > 精确匹配奖励 | 1 | ^\s*(.*?)\s*$ 或不填写,对整个输出结果进行校验 | 由于是唯一的奖励规则,权重设为1。填写正则,会抓取模型的整句话并去除首尾的空格,然后与数据集的reference_output字段比对。如果模型输出的分类标签不对,将直接得负分。不填写正则,直接对整个输出进行全文比对。 |