“给它加个AI”——这个想法只有在AI是达成目标最便宜的方式时才成立。很多时候并不是。有三类任务,一段普通脚本、一个正则表达式或者一张查找表就是更好的答案。还有一个快速测试,能判断你的任务属于哪一边。
![]()
测试:三个问题
规则是否稳定且可写?如果你能用十行话向新同事解释清楚这个决策,你就能用十行代码把它写出来。
数据量是否很小?一周只做20次的任务,不值得去构建、评估和监控一个模型。
出错的代价是否很高?如果一个错误答案的代价超过一个月的人工工作,你需要的是可以完整测试的确定性行为。
如果三个答案都是“是”“是”“是”,那就跳过模型。
1. 固定格式提取
订单号、已知模板里的日期、IBAN、物流追踪码。一个正则表达式加一个校验和,就能以100%的可重复性完成这件事,而且每次调用零成本:
import re
ORDER = re.compile(r"\bORD-(\d{6})\b")
def order_ids(text: str) -> list[str]:
return ORDER.findall(text)
模型在同样的输入上也许能做到98%,而你会花上几周时间去追那2%。
2. 按明确信号路由
如果工单本身就带着一个表单字段、发件人域名或者决定队列的关键词,那就按它来路由。查找表是可审计的:当有人问“这个为什么进了账单队列”,答案是一行规则,而不是一个概率。
3. 量小、很少变化的数据
一个月来自五个供应商的三十张发票?每个供应商一个模板,胜过任何通用模型。盈亏平衡点取决于数据量和格式变化的频率,所以决定之前两个都要数一数。
模型什么时候才配得上它的位置
措辞多样的自由文本、不断变化的格式,以及能容忍一定错误率、由人工兜住可疑案例的场景。在一个工单分类演示中(公开的Banking77数据,测试集数字),一个普通的TF-IDF模型以97.7%的准确率自动处理了约76%的工单,因为77种用自由文本表述的意图,不是靠写规则能覆盖的。
这个演示同样没有用大语言模型:阶梯是规则优先,然后是经典机器学习,最后才是大语言模型,只有下一级达不到你测定的目标时才往上爬。
要点
把目标写成一个数字,先试能满足它的最便宜的工具,在测量结果显示更便宜的工具不够用的地方,才加上AI。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.