小模型到底够不够用,这两个月被问了很多遍。
十月中的一篇实验,作者拿一块 170 美元的树莓派 4 跑了一遍。他问的不是"哪个模型最强",是"这件活最少要多大的算力"。
这两个问题不一样。前一个你去排行榜找答案,后一个得先把自己的活拆开看。
测试集是 95 道关于一家虚构酒庄的题。虚构是有意的,答案联网搜不到,对错只能靠读。
这期收了七条。
他把"要多大的模型"拆成了四层
确定性代码,能跑在自己机器上的小模型,要 GPU 的大一点的本地模型,别人的卡按量计费。
他的观察是多数项目直接从最高一层起步,下面几层从来不问。
值得抄的不是这个阶梯,是"从下往上问一遍"这个动作。先问正则能不能干,比先问哪个模型强,省下的不只是钱。
他在装 Ollama 之前就把 22 条预测写死了
每条标 confident、leaning 还是 coin flip,提交完再跑。跑完对答案:10 对 11 错。
拆开看,confident 组 5 对 2 错,leaning 组 2 对 7 错,coin flip 组 3 对 2 错。
抛硬币那组比"有依据的倾向"那组准。这个结果我觉得比整篇实验数据都值得看。凭直觉的模式匹配,在有依据的错觉下最容易错。评论区有人说这是最该抄的一条,我同意。
订单号提取:正则 30 对 30,1.5B 对 28,360M 对 8
8 这个数字是假的。
360M 那 14 个错答案,全是正确的六位数字,只是丢了 ORD- 前缀。它 22 次都找对了地方,8 次拼对了格式。三个干扰项,一个会员号、一个 UPS 单号、一个电话号码,它原样全吐回来。它根本不知道"格式"是个什么东西,只是在返回这段里最像标识符的那一截。
另一头,1.5B 那两次错比 8 和 28 的差距严重得多。有一次它把内容几乎只有 ORD-111222 的退款消息判成"没有订单号"。放在流水线上,这就是把一个真订单的退款请求判成无单可退。
正则不会犯这种错。不是因为它聪明,是它在结构上没这个可能。
分类 50 条消息,1.5B 对了 23 条
46%。听着像"还凑合",拆开看不是。
complaint 6/6,question 9/10,escalate 0/12,billing 1/7。
作者的解释我认:complaint 和 question 是主题,从措辞能判。escalate 不是主题,是路由,它取决于"接下来该发生什么",而这句话不在消息里。
billing 表现中等同理。一封重复扣款的信,从文本看就是投诉,但它该进哪个部门,不是句子的属性。50 条里有 16 条是刻意做模糊的,理由是真收件箱大多如此。
这条我单独拎出来,是因为它比"小模型行不行"有用。你要丢给模型的东西,是"这段文字在说什么",还是"接下来该谁接手"。后者别丢。
问答的失败方式比失败率有意思
1.5B 单段落 8/8,要合并两段的是 1/3。四道材料里根本没有答案的题,它弃答两道、编了两道。360M 四道全编。
有一个例子我看了两遍。问 2024 年份黑皮诺的酒精度,它答"采摘时 23.1 到 24.6 的 Brix"。数字是真的,Brix 是含糖量,跟瓶中酒精度没关系。这不是幻觉,是它找到了相关段落,但没看懂问的是什么。
还有一道问 Cellar 层级多少钱,两个模型都答"每季度 12 瓶",拿数量顶价格。
360M 更离谱。问狗能不能进品鉴室,它答"可以",语料写的是露台可携犬、室内不可。作者不带语料又跑了一次,拿到的答案逐字节相同。
第一次跑的延迟数据全作废了
他一开始只装了散热片,没上风扇。跑 30 次 360M 调用之后,Pi 4 触发软温度限制开始降频。
作废不是因为数据难看,是因为数据好看。
降频不会被 Ollama 报出来,不会被评分脚本发现,结果文件里每个数字都自洽。你只能主动去问固件,vcgencmd get_throttled 返回 0xe0000,才知道那批数不能要。
顺带一句,延迟那部分我本来是冲着它去看的,结果反而没太多可说的。提示从 97 token 涨到 708 token,首 token 延迟只多了约 15%,因为提示能并行处理。真正拉长的是答案长度。中间那段推理我只看懂一半,先放在这里。
他自己给了四条"用之前先查"的条件
答案得已经在输入里而不是要推断,答案唯一,输出简短,对错由模型之外的机制来判。缺一条就别上小模型。
这张单子可以直接抄。我拿自己手上两个活对了一遍,一个符合一个不符合。不符合那个我原本打算硬上,现在改成先写规则。
作者把夹具、运行器、评分器和预测记录都放出来了,还专门写了份 LIMITATIONS,说这不是 benchmark,是两个模型、一块开发板、一种量化、95 个案例的方法演示。这个自觉现在不多见。
本周就这些。上面有哪条你试过、或者觉得我讲错了,欢迎告诉我。
下周见。