本地决策模型基准实测:d3-nano 与 Laya 的 66 题配对评测
这套系统的第一个版本跑在家里的飞牛 NAS 上。半个月前,我在它上面部署了 Laya:一个 322M 的判别式决策模型,INT8 量化后只有 320MB,装进 Docker 容器限两个 CPU 核和 4 GB 内存。它不做生成,只做判断:输入一段文本和一组预定义问题,一百毫秒左右返回选项、是否或分数,附带概率,数据全程不出内网。
选它的动机很实际。我的内容流水线每天有几十条文案和消息要做判断类处理:审核粗筛、优先级分级、消息分流、该走哪条处理路径。这些活原来要么靠规则写死,要么全量压给大模型:前者维护不动,后者按 token 计费又贵又慢。一个常驻本地、毫秒级响应的判断模型,正好补在中间这一层。
上线前我单独考过它一场:100 道带标注的中文题,67 分,并且发现两个隐患:自报置信度和真实正确率对不上,以及部分题型错得毫无告警(那次记录见文末相关阅读)。这两周的结论是能用,但必须加置信度门控。
最近,判断类服务多了一个新选项:d3-nano,2.21B 参数,是 Laya 的七倍,除了文本还认识图像和视频,跑在算力机的 GPU 上,吃的是和 Laya 完全相同的 System One 协议——请求格式一个字不用改,换个地址就能上岗。新方案和旧方案摆在同一张桌上,没有理由不直接对比一次。
同一个判断协议,参数差 7 倍,成绩到底能差多少?差的这些分,值不值得我多占 5 个 G 显存?小模型输,是输在分流不准,还是输在别的地方?
于是有了这篇。66 道题、3 次重复、逐题留档,测准确率也测延迟、并发和置信度校准。整理成文一是给自己留一份选型记录,二是希望给同样在家庭服务器上折腾本地判断模型的朋友省一点踩坑时间:数据都在下面,结论和建议可直接参考。
先说结论
本次评测共 66 道带标注题目,分属 7 个题型,每题重复 3 次,覆盖选择、是否、打分三种判断原语。结果:d3-nano 答对 61 题,总体准确率 92.4%(Wilson 95% 置信区间 83.5%–96.7%);Laya 答对 47 题,准确率 71.2%(59.4%–80.7%),两区间不重叠。配对 McNemar 精确检验 p=0.0026,差异在 0.05 水平显著。
准确率之外有两个对生产更重要的发现。其一,Laya 的置信度存在系统性失准:自报置信度 0.5–0.8 区间的回答实际准确率仅 45%,19 道错题中 7 道置信度在 0.8 以上;其二,其打分输出对"低分档"存在单向压缩,5 道“低”档题全部判高。所以我的建议很直接:生产上的门控线不要低于 0.8,而且这条线必须拿你自己的业务数据重新标一遍——模型自报的置信度,不能直接信。
两个选手
| 项目 | d3-nano | Laya typed-decisions |
|---|---|---|
| 部署位置 | 算力机 192.168.11.179:18320 | NAS(飞牛 fnOS)192.168.11.147:8100 |
| 模型与权重 | d3-nano(Apache-2.0 开源,基座 Qwen3.5-2B) | typed-decisions 检查点(mmBERT-base 底座,laya 0.4.2) |
| 参数规模 | 2.21B(含 0.33B 视觉编码器) | 322M,INT8 量化 |
| 推理硬件 | GPU,vLLM 服务,显存常驻约 5.2 GB | CPU 2 线程,Docker 容器限 4 GB 内存 |
| 输入模态 | 文本、图像、视频;上下文 8192 token | 文本 |
| 请求限制 | 单次 ≤16 问、4 图、2 视频;body ≤32 MiB;并发上限 4 | 文本 ≤ 约 2.5 KB 实测可用;串行服务 |
d3-nano 官方公布的数据:文本请求中位延迟 13.4 ms(单卡 AMD MI325X、逐请求模式),Jev Decision Index 0.3.2 文本榜 38.9 分、同级第一。该延迟为推理侧数字;本次实测含局域网 HTTP 往返,绝对值不可直接对照,见延迟一节。
怎么考的
先看题。66 道中文为主的题目分属七类:工单路由(15)、诈骗与紧急识别(14)、知识判断(11)、程度打分(10)、英文路由(7)、长上下文提炼(5)、情感倾向(4)。每题人工标注唯一标准答案。判分规则:选择题取最高概率选项是否命中标注;是否题以 0.5 为界;打分题与标注档位误差 ≤0.5 档记对。
评测于 2026-10-17 21:55–22:00 执行,两服务接收完全相同的请求体,串行发送。每题重复 3 次:两个模型的判定结果均 3 次完全一致(判别式模型无采样随机性),因此单次结果即代表该模型在固定输入下的确定行为。
统计上,总体准确率报告 Wilson 95% 置信区间;两模型差异采用配对 McNemar 精确检验(仅统计两模型结论不一致的题目对,双侧二项检验)。置信度校准按模型自报置信度分桶,统计每桶实际准确率。
POST /v1/systemone # 两服务同构,仅 base URL 不同
{"state": "待判断的文本",
"questions": {"spam": {"type": "noul",
"instructions": "这条消息是诈骗/钓鱼信息吗?"}}}
# choice 原语另附 criteria(选项说明表);score 原语的 criteria 为有序档位数组
成绩单
总分:92% 对 71%,差异是统计显著的
d3-nano 答对 61/66(92.4%,95% CI [83.5%, 96.7%]);Laya 答对 47/66(71.2%,95% CI [59.4%, 80.7%])。配对不一致题目共 20 道,其中 d3-nano 独对 17 道、Laya 独对 3 道,McNemar 精确检验 p=0.0026。在 66 题样本量下,该差异达到统计显著,不能归因于抽样波动。
分项成绩:差距不在分流,在理解
| 题型 | 题数 | d3-nano 正确 | Laya 正确 |
|---|---|---|---|
| 工单路由 | 15 | 14(93%) | 13(87%) |
| 诈骗/紧急识别 | 14 | 14(100%) | 12(86%) |
| 知识判断 | 11 | 10(91%) | 4(36%) |
| 程度打分 | 10 | 8(80%) | 5(50%) |
| 英文路由 | 7 | 7(100%) | 7(100%) |
| 长上下文提炼 | 5 | 5(100%) | 3(60%) |
| 情感倾向 | 4 | 3(75%) | 3(75%) |
| 合计 | 66 | 61(92.4%) | 47(71.2%) |
分项可见差距来源并非均匀分布。粗粒度路由与英文题两者表现接近(93%/87% 与 100%/100%);差距集中于需要语义细察的四类:知识判断(55 个百分点)、打分(30 个百分点)、长上下文(40 个百分点)、诈骗与紧急识别(14 个百分点)。Laya 在简单分流场景仍然可用,这一结论与半个月前对它的单独评测一致。
速度:串行都能打,并发见真章
| 场景 | d3-nano p50 / p95 / max(ms) | Laya p50 / p95 / max(ms) |
|---|---|---|
| 单问题 ×30(串行) | 35 / 37 / 38 | 102 / 112 / 113 |
| 三问题 ×20(串行) | 100 / 103 / 105 | 247 / 257 / 272 |
| 4 并发 ×5 轮,单请求口径 | 85 / 132 / 136 | 803 / 881 / 893 |
串行场景下两者均为毫秒级,Laya 的 CPU 推理可以接受。并发场景差距扩大到约 9 倍:4 路同时请求时 Laya 单请求中位延迟升至 803 ms,接近其 2 线程的串行上限;d3-nano 依靠 vLLM 批处理仅从 35 ms 升至 85 ms。需要说明的是,本次延迟测试时 NAS 处于低负载状态;在同日更早的试点轮中,NAS 承载后台任务时曾观测到 Laya 单请求 11.2 s 的尾延迟尖刺。CPU 部署的尾延迟与宿主机负载强相关,这是选型时需要计入的运行条件,而非模型本身的固定属性。
最要命的一项:模型自报的"把握"可信吗
| 自报置信度区间 | d3-nano n / 准确率 | Laya n / 准确率 |
|---|---|---|
| 0.00–0.50 | 27 / 56% | 48 / 69% |
| 0.50–0.80 | 21 / 100% | 33 / 45% |
| 0.80–0.95 | 54 / 94% | 51 / 76% |
| 0.95–1.00 | 96 / 100% | 66 / 82% |
d3-nano 的置信度是对得上账的:自报越高的桶实际越准,0.95 以上那档 96 次回答零错误,这种校准拿来做门控是放心的。Laya 的置信度在 0.5 以上就对不上账了:中高置信档的真实准确率(45%)反而低于低置信档(69%),模型越“有把握”,错得越多。拿它自报的置信度做自动执行的依据,等于看着一个坏掉的仪表盘开车。
按 conf≥0.8 门控模拟生产行为:d3-nano 可自动执行 150/198(76%)的判定,门内准确率 147/150(98%);Laya 可自动执行 117/198(59%),门内准确率 93/117(79%)。后者意味着每五次自动执行仍有一次错误且无告警信号。
错题都错在哪
错题最能看出两个模型的性格差别。
d3-nano 的 5 道错题,放回真实业务里都属于模糊地带。一条既抱怨扣款又抱怨闪退的工单,它分给了技术组——扣款 31% 对故障 69%,两个信号打架时选错了边,人工看也会犹豫两秒。两道“现在、马上、立刻”级别的紧急消息,它判了“要尽快”,没到“今天就办”的顶格档,方向对、火候差半档。一道“总体还行吧”的含糊评价被它读成了好评,这道说实话我自己标注时也犹豫过。真正需要警惕的只有那道法律题,下面单独说。5 道错题里有 4 道,模型自己的置信度都不到 0.8——它其实知道自己没把握,门控线设在那就能拦住。
Laya 的 19 道错题性质不同,问题不在分数低,在错法。最危险的一种是错得斩钉截铁:售前咨询被它以 97% 的把握分给技术组,一条正常的商务消息被判成诈骗(93%),一眼就能看穿的反讽被当成真诚表扬(96%),论文署名权那道更是错在 98%。19 道错题里有 7 道置信度在 0.8 以上,0.8 的门控拦不住,提到 0.9 也拦不住,线上表现就是错得无声无息。第二种是打分失真:5 道“完全不急”的消息全部被判了中间档,而真正火烧眉毛的 5 道倒是全对——合起来看,它的打分实际只剩“急/不急”两档,你想拿它做三档分流,中间那档全是噪声。第三种是读长文抓不住转折:两道千字场景题,答案都藏在最后一句(团队临时决定延期、客户先抱怨但真实诉求是退款),它都答反了,而且都是 97% 以上的把握。
两个模型唯一一起翻车的是同一道法律常识题:一个商业模式点子被人抢先做成了生意,算不算侵犯版权。正确答案是不算——版权保护的是表达,不保护点子本身。d3-nano 以 81% 的把握答了“侵权”,Laya 以 83% 跟着错。参数量翻了七倍,缺的知识一点没多出来。这类判断不属决策模型的能力范围,兜底路径要单独设计,结论一节里我把它列成了原则。
这次测试的短板,先交代清楚
把数据交给你之前,几个短板先交代清楚,免得用错地方。
最要紧的一条:66 道题的标注是我一个人做的,没有第二个人复核,我的判断口径会原样算进两边的成绩。影响最大的是情感倾向和知识判断这两类——"总体还行吧"那道题,两个模型都判了积极,都按错题计分,这个标注我自己都不敢说没有争议,换你来标,答案未必一样。反过来,工单路由、诈骗识别这类题答案没什么争议空间,那部分分数是硬的。
其次是样本量。66 题撑总体结论够用——差异靠配对检验站着,不靠百分比观感;但摊到长上下文、情感这两组,每组只有四五道题,错一道就是二十个百分点的起伏。这两行的分项数字看趋势就好,别拿去做横向排名。
环境层面还有三处没法完全对齐。两边硬件不同,GPU 对 CPU,这是真实选型里躲不开的成本差异,但也意味着这次测的是部署方案对部署方案,拆不出纯粹的模型能力差;延迟数字绑定我家内网和当时的机器负载,你那里跑不出一样的数;两边用的都是各自部署时的默认推理参数,温度、量化配置没有对齐。
我的三个决定
数据看完,我做了三个决定。第一,判断流量的主力换成 d3-nano:准确率高出 21 个百分点,并发下快将近 10 倍,还多了图像和视频判断,这三笔账加在一起没有悬念。第二,Laya 不下线,转成备援:粗粒度分流和英文场景它本来就在及格线以上(87% 和 100%),又不占一分钱显卡,算力机显存被大任务占走的时候它顶上。第三,门控线从 0.5 提到 0.8:Laya 这次 19 道错题里有 7 道置信度在 0.8 以上,这条线不提,这些错就无声无息地进了生产线——它不是拍脑袋定的,是拿真实错误换来的。
另有一条经验,跟选哪个模型无关,你拿走就能用:别指望决策模型懂知识。"点子不受版权保护"那道题,322M 和 2.21B 一起错,说明这类模型解决的是分不清,不是不知道。知识密集的判断,该走大模型走大模型,该留人工留人工,这条升级路径要一直留着。
整套题目、标注和评测脚本我都留着,你想复测自己家的模型,照着做就行;两台机器的实时状态在各自的 /health 端点能查到。评测时间 2026-10-17,d3-nano 版本以当日部署为准(HF v3.1.0)。你要是也测了自己家的模型,欢迎把成绩单发我,踩坑清单凑够了再写一篇。