工单自动分流应按误派成本设置拒答
文章讨论LLM工单分类中的成本不对称:正确分流、转人工和错误分流的示例成本分别为0、1和5。其主张通过校准拒答策略决定何时交给人工,避免单纯追求自动化覆盖率。
AI 深度解读
工单自动分派最容易被低估的,不是模型会不会答错,而是答错一次要付出多少代价。作者的核心主张是:当误派成本明显高于人工分诊时,系统必须允许模型放弃判断,并用成本和校准后的概率决定是否自动执行。
这篇值得读的地方,是把「模型准确率」变成了「自动化到底省不省钱」。但文中引用的实验结果、置信度的含义,以及不同阈值的适用条件,需要分开看。
准确率多高,自动分派才划算?
企业 IT 工单派错队列后,往往还要跨团队转交、重新分诊,拖长平均解决时间(MTTR),甚至违反服务等级协议(SLA)。因此,正确、转人工、派错,不能按相同代价计算。
作者设定了一个成本模型:
- 正确自动分派:
c_ok = 0。 - 交给人工分诊:
c_triage = 1。 - 错误自动分派:
c_wrong = 5。
这些是相对成本单位,不是实际报价。设判断正确的概率为 p,自动处理至少要满足:
p × c_ok + (1 - p) × c_wrong ≤ c_triage
代入后得到 (1 - p) × 5 ≤ 1,也就是 p ≥ 0.80。低于这个门槛,自动分派的期望成本高于人工处理。
允许模型放弃判断,是控制自动化成本的一部分。
不过,0.80 不是通用标准。一般形式是:
p* = (c_wrong - c_triage) / (c_wrong - c_ok)
这里隐含了错误成本高于正确处理成本等条件。更关键的是,p 必须能代表真实正确率。模型随口报出的「我有 90% 把握」,不能直接代入。
为什么模型的自信可能筛不出正确答案?
原文引用研究 arXiv:2610.31657:在 47,837 张工单上,对比了四个非 LLM 分类器与四个 LLM,其中包括 GPT-4o-mini 和 Claude Haiku。
文中最关键的发现,是零样本和少样本提示配置的「正确性 AUROC」约为 0.500。这里衡量的不是分类准确率,而是置信度能否把正确答案排在错误答案前面。接近 0.500,说明它几乎没有这种区分能力。
作者还称,这些端点给出的置信度集中在近乎恒定的数值附近,等距回归(isotonic recalibration)也未能解决问题。校准可以修正分数与正确率的对应关系,却很难从几乎没有差异的分数里恢复有效排序。
应用 p* = 0.80 后,七种提示配置把 100% 的工单转给人工;Haiku 的少样本配置在 1,000 张工单中只自动分派了 19 张。安全门槛保住了成本,却也暴露出自动化覆盖率很低。
相比之下,微调 DistilBERT 在留出评估集上的准确率为 0.879,最佳提示式 LLM 为 0.477。TF-IDF 配合 Logistic Regression,在校准数据上确定并冻结 0.60 的决策边界后,测试成本下降 38.1%,误派比例从 15.3% 降至 3.5%。
这些数字支持的是:在文中这组任务和实验配置下,专用分类器更合适。原文没有展开完整评估协议,也没交代后两项降幅的具体比较基线,不能据此断言所有工单系统都会得到相同结果。
自动执行前,应该加一道什么判断?
作者提出的结构是「选择性拒答路由器」:分类器负责预测队列,确定性的成本规则负责决定是否执行;不满足条件就转人工。
下面这段原始代码展示了执行入口的判断:
def route(self, ticket_body: str) -> RoutingDecision:
probabilities = self.classifier.predict_proba(ticket_body)
max_idx = int(np.argmax(probabilities))
max_prob = float(probabilities[max_idx])
predicted_queue = self.classes[max_idx]
if max_prob < self.break_even_threshold:
return RoutingDecision(
assigned_queue=None,
confidence=max_prob,
abstained=True,
reason=f"Confidence {max_prob:.3f} below break-even {self.break_even_threshold:.2f}"
)
return RoutingDecision(
assigned_queue=predicted_queue,
confidence=max_prob,
abstained=False,
reason="Confidence cleared break-even barrier"
)
要盯住的是 max_prob < self.break_even_threshold。它能成立,依赖前面的 predict_proba 输出已经校准;接口名里带 proba,并不等于数值天然可信。
完整示例通过 CalibratedClassifier 协议约定 predict_proba 和 classes_,由 CostAwareTicketRouter 读取概率,并返回 RoutingDecision。assigned_queue=None 与 abstained=True 明确表示转人工,避免下游把拒答当成一个普通分类结果。
作者进一步建议,在历史留出数据上离线校准并冻结阈值,再部署到运行环境。混合方案中,轻量线性分类器或微调 Transformer 承担分派,LLM 用于补充上下文或生成草稿。
我的判断
我赞同把分类与执行拆开。错误会触发跨团队交接时,单看准确率不足以决定是否上线,还要同时看误派成本、自动处理比例和人工承接量。
但作者使用「证明」和「必然负收益」的语气偏强。成本公式给出的是特定假设下的期望结果,并不表示每次低于门槛的分派都会亏损。实验结论也应限制在给定数据、模型和提示配置内。
0.60 与 0.80 尤其不能混用。前者是文中 Logistic Regression 在校准数据上选出的决策边界,后者是成本模型推导出的概率门槛;原文没解释两者如何衔接。
相较于关键词规则,专用分类器有机会覆盖更多表达,但需要标注数据与校准;相较于直接让 LLM 分派,它的优势需要在本团队数据上验证。文中没有给出关键词规则的对照结果,混合级联的生产收益也只是架构建议,不能当成已经证实的结论。
能拿来做什么
- 给 Node 工单分派服务接入自动执行前,先估算正确处理、人工分诊和误派三类成本,再计算门槛,不要直接照搬
0.80。 - 用历史工单分别准备训练、校准和测试数据,对比现有方案、TF-IDF 加 Logistic Regression,以及微调分类器,同时记录成本和自动处理比例。
- 在分派接口中明确返回目标队列、置信度、是否转人工及原因,让前端能展示处理状态,让执行端能识别拒答。
- 如果 LLM 已经用于工单处理,可以先让它补充上下文或起草内容,再由经过验证的分类器和成本规则决定队列。