开源项目 Jevstiller 给托管模型配一个本地小模型,并给出可验证的统计保证:本地模型直接作答时,与原模型的分歧率不会超出设定预算,解决 Agent 循环里每次 300 毫秒网络调用拖慢响应的问题。
"Show HN"社区本月出现一个开源项目 Jevstiller,作者给它的定位是一句话:"本地模型 98% 的时候会给出和 Jev 完全一样的答案,而且这句话是可以验证的"。
如果用 Jev(作者对某个托管分类模型的统称)做文本分类,每次调用都是一次网络请求,正常情况下大约 300 毫秒才能拿到结果。对批处理任务来说这不算事,但对一个"判断—行动—再判断"的 Agent 循环、或者需要按帧响应的场景来说,300 毫秒往往就是整个时间预算。
Jevstiller 的做法是在 Jev 前面加一层本地小模型:用一个冻结的句子编码器(bge-small,384 维,跑在 CPU 上的 ONNX Runtime)把每个请求转成向量,再在上面训练一个只有一层的逻辑回归"头"——用 Jev 给出的完整概率分布(不只是最终标签)做交叉熵训练,每收到 2000 条新的 Jev 回答就重新训练一次,上线前先做影子测试。整套模型只有几百 KB,CPU 上大约 15 毫秒就能给出答案。判断"这次该不该由本地模型回答"的,是另外两个小模块:一个最近邻"越界检测器",和一套置信度阈值。
Jevstiller 真正想说清楚的不是这个小模型多聪明,而是一份"合同":设定一个目标一致率(比如 98%),系统承诺——本地模型直接作答的那部分请求里,标签和 Jev 不一样的比例乘以覆盖率,要控制在预算(1 − 98% = 2%)之内。这句话刻意不涉及本地模型相对"客观事实"的准确率——如果 Jev 本身判断错了,本地模型会以同样方式错,跟着错也算"一致";它验证的是系统与 Jev 的一致程度,不是本地模型单独的对错。
作者测过最直接的思路:留一部分数据,从松到紧扫描置信度阈值,挑一个"测出来的分歧率没超预算、又最宽松"的阈值直接上线。在 5 个公开任务上各做 20 次随机数据切分后,这种"点估计"规则平均每个任务有 6 到 12 次(20 次里)实际分歧率超出了 2% 的预算,最多超出一个百分点。原因不难理解:在有限数据上专挑"看起来达标又最宽松"的阈值,等于专挑了噪声恰好偏低的那次测量,换一批流量噪声方向一变,原本测出 1.9% 的阈值可能实际交付 2.7%。
Jevstiller 换了一套流程:用只在校准阶段才碰、且从未参与训练的数据算出一个精确置信区间(不依赖大样本近似);候选阈值网格提前固定,从最严格开始测,一路测到第一次不达标就停,这样控制犯错概率仍是 5%,不需要为"测了很多次"做额外修正;校准数据只负责验证,不参与调整任何参数。作者称,在 100 次独立重复实验中,这套方法只有 1 次实际分歧率略微超出预算(2.10%),符合"95% 置信度"本该有的表现。
项目已开源,bash experiments/bench.sh --no-record 可以在不需要 API key 的情况下复现文中全部基准数据;作者没有在这篇文章里给出后续路线图。
免费获取企业 AI 成熟度诊断报告,发现转型机会
关注公众号

扫码关注,获取最新 AI 资讯
3 步完成企业诊断,获取专属转型建议
已有 200+ 企业完成诊断