同一批问句,三种做法:关键词规则 0.833、词袋加感知机 0.833、大模型 1.000。 分数不是关键——关键是三者的成本结构完全不同:一个要人写,一个要数据,一个要钱。
上一节看了一个请求的时间线,这一节看能力的分层:同样是「分类意图」,为什么要分三层来做。
一、三层,三种成本
最底下是规则:看到「天气」「下雨」就判成查天气。它不需要数据、不需要训练,写完就能跑; 缺点是写规则的人得想到所有说法。 中间是机器学习:把句子切成字、数每个字出现几次(词袋),再用一个可训练的分类器学权重。 它要标注数据,但能自动覆盖没见过的说法。 最上面是大模型:给一段提示词,让它直接判断。 它不需要你训练,但每次调用都要付钱,而且延迟比前两层高一个数量级。 注意三层不是替代关系,是不同成本曲线:规则一次投入、边际成本零; 学习版一次投入数据、边际成本近零;大模型零投入、边际成本按次计。
二、实测:两个 0.833,一个 1.000
12 条训练句、6 条测试句、3 个意图(查天气/查订单/闲聊)。 词表从训练集里切出 56 个字,词袋就是 56 维向量,再乘 3 类权重加偏置,一共 171 个参数。 结果:规则版 0.833,词袋加感知机 0.833,大模型(模拟)1.000, 每次调用约 0.004 元(按 320 token、每百万 token 12 元算)。 两个 0.833 错的地方不一样:规则版错在「外面冷不冷」——句子里没有「天气」「下雨」这些词,落到闲聊; 学习版错在「我要退款」——「退款」这两字在训练集里只出现一次,权重学不够。 所以看准确率要看错在哪。同样是 0.833,一个错在覆盖面,一个错在样本量。
三、为什么真实系统三层都留着
因为高频问法是有限的。 真实客服系统里,前 50 个问法可能覆盖六成流量,用规则挡掉它们,成本几乎为零, 还能保证 100% 稳定(不会今天答对明天答错)。 剩下的长尾交给模型。大模型通常只用在最不确定的那一小部分,或者用来生成话术而不是做判断。 这也是训练师的日常判断之一:这一段该用规则还是用模型。 判断依据不是「哪个先进」,是「这段流量的稳定性要求多高、标注数据够不够、每次调用值不值这个钱」。
四、动手 Demo:三层做同一个意图分类
12 条训练句、6 条测试句、3 个意图。 先写一组关键词规则,再把句子切成字、数词频做词袋,手写 softmax 回归训练 1200 轮, 最后按 token 价格折算「大模型」那一层的每条成本。
def rule(s):
if any(k in s for k in (u'天气', u'下雨', u'气温')): return 0
if any(k in s for k in (u'订单', u'快递', u'退款')): return 1
return 2
for _ in range(1200):
p = H.softmax(X @ Wm + bs)
g = (p - Y1) / len(X)
Wm -= 0.5 * (X.T @ g)
bs -= 0.5 * g.sum(0)
实跑输出:
--------------------------------------------------------------------
同一个任务,三层做法:规则、学习、大模型
--------------------------------------------------------------------
做法 形态 测试准确率 要调的东西 每条成本(元)
--------------------------------------------------------------------------
关键词规则 8 条 if 0.833 0 0
词袋 + 感知机 56 维 × 3 类 0.833 171 个参数 0
大模型(模拟) 提示词 + 上下文 1.000 不训练 0.004
词表大小 56 个字(从 12 条训练句里切出来的)
规则版错在哪 「外面冷不冷」没有关键词,落到闲聊
学习版错在哪 「我要退款」只出现「退款」两字,特征太稀
三层不是替代关系,是成本关系:规则 0 元但要人写,学习版要数据,
大模型要钱。真实系统里三层常常同时在跑——先用规则挡掉 60% 的高频问法。
再让模型兜住长尾。(这里的 60% 只是示意,本 Demo 没测这个数。)
表里三行的准确率是 0.833、0.833、1.000。 大模型那一行是我用「背下训练集」模拟的,只为了把成本那一列摆出来——本机没有 API Key,调不到真模型, 这一点我不含糊。 词表 56 个字是从 12 条句子切出来的,所以特征很稀:「退款」在训练集里只出现一次, 对应权重几乎是随机的。 成本列最后一格 0.004 元是按 320 token、每百万 12 元算的。 这个价格是示例,实际计费随厂商和输入长度变。 把三行放在一起看,结论不是「大模型最好」,而是:规则层贵在人、学习层贵在数据、大模型贵在每次调用。 选哪层,看这三样里你缺哪样。
30 秒实验
- 给规则版加三条关键词,看准确率能到多少——很容易就追上学习版。
- 把训练句从 12 条减到 6 条,看学习版准确率掉到多少。
- 想一想:什么情况下你会自愿选最贵的那一层?
常见误区
- 「大模型准确率最高,所以都该用它」——每次调用都要钱,高频场景撑不住。
- 「规则版过时了」——高频问法用规则挡,稳定且零边际成本。
- 「准确率一样就是一样好」——要看错在哪:覆盖面不足还是样本不足。
自测三问(点开对答案)
1. 三层做法的成本结构分别是什么? —— 规则贵在人写,学习贵在标注数据,大模型贵在每次调用。 2. 两个 0.833 的差别在哪? —— 规则版错在没覆盖的说法,学习版错在训练样本太少的词。 3. 训练师在这一节的判断是什么? —— 「这段流量该用规则还是模型」,依据是稳定性、数据量、单次成本。分层讲完,下一节看这三十年里算力涨了多少——那是这个职业出现的背景。
- ☐ (本节完,下一节 1.1.3 技术革新:人工智能如何改变世界)