Julia 1把Agent选择题放上CPU:144.3M参数能替代多少生成调用

Julia 1在CPU上处理智能体固定候选决策的示意图

“同一订单被扣了两次款”,Agent下一步需要先判断这条请求该进账单、物流还是账户队列。为了返回一个类别,每次都把规则和候选项交给通用生成模型,再等它输出一段文字,技术上当然可行,却未必划算。巴西研究团队Supersonic Labs公开的Julia 1把这个环节收窄为一个选择题:输入上下文、问题及2—20个备选答案,模型直接选择并按原顺序给出评分。它由多语言编码器mmBERT-small改造而来,参数量为144.3M,提供可在CPU上运行的Python接口。

它面向拆解后的低延迟分类、等级判定与路由选择,不承担对话生成或完整工作流。网站9月27日发表的CLM-8B文章讨论了另一种利用大型编码器分别编码状态与动作、复用候选向量的路线;本文不重复那套缓存机制。Julia 1值得单独看,是因为它让企业能更具体地比较:为了十几个固定动作,是否一定要常驻一套大型GPU编码服务?但模型小、能用CPU,并不自动等于成本最低或判断可靠。

一个窄接口,四种常见业务问题

Julia的接口始终是“背景是什么、要判断什么、有哪些答案”。工单分配可在“财务/技术/售后”中选队列;优先级可在“低/中/高”中选等级;内容审核可在“允许/转人工/拒绝”中选后续处理;销售线索也可在有限类别间分流。上述为产品落地示例,并非项目方逐项给出的部署案例。所有选项由调用方提供,模型不能凭空添加一个未列出的“暂缓并索取资料”。如果业务流程需要这一状态,工程团队必须先把它设计进候选表。

项目方说模型能处理2至20个选项。遇到更多类别,可以先由Router把候选缩小,再交给模型判断;但这增加一次会漏掉正确答案的前置决策。对于权限和财务动作尤其要注意:模型选出的标签只是语义判断,不等于系统已获得授权。企业应由规则层先筛掉不可执行动作,随后才让模型在合法候选中排序;“拒绝自动执行、交人工复核”还应保留为独立出口。

Julia使用mmBERT-small的多语言基础和分词器,针对备选答案评分任务训练决策组件。团队明确说它不是Qwen的微调版本。模型权重约550.5 MiB,CPU部署也要付出内存、加载时间、分词与请求排队成本。其评测配置把上下文、问题和选项合并限制在1024 token以内;真实客服对话或长工具日志可能超限。截断发生在哪个字段、是否会丢失否定词或最后一轮修正,实际影响可能比参数量更大。

成绩单里同时有强项和短板

在项目方9月24日的一组测试中,Julia在2000个Typed Decisions判断上答对1463个,准确率73.15%;协议中提供的Jev参考值为72.70%,两者只差0.45个百分点,不能写成压倒性优势。AG News四类新闻分类的100条试验中答对94条,情绪六类分类答对86条;对应参考值分别为91%和48%。这些是按相应协议给出的对照,不是本文对两款模型在统一生产环境中的独立复测。

一个更值得采购者注意的结果是Banking77:在72类银行意图经候选收窄之后的100条试验里,Julia答对64条,项目列出的Jev参考值是87%。银行业务里“查询转账状态”“撤销转账”“争议交易”语义紧邻,却可能通向截然不同的授权和合规流程。准确率大幅下滑不是可以用总体平均掩盖的边角问题;路由层一旦排错,后面的高性能Agent也会在错误流程里忙碌。

MASSIVE评测覆盖52个语言区域,每条在18个场景中择一:团队报告在154648条里答对110573条,即71.50%。葡萄牙语pt-PT为2565/2974、英语en-US为2580/2974。这个测试测的是场景选择,并不是巴西葡语准确率证明,更不是跨语言意图识别与槽位抽取的全套成绩。特别是企业在中国部署时,不能因“多语言模型”四个字推断其中文工单表现;需要用自己的中文混合术语、简写、错别字和跨轮上下文另做切片。

9月25日项目又记录了纯CPU评测:Typed Decisions为1451/2000,即72.55%;AG News和情绪小样本仍为94/100与86/100,Banking77降为60/100,其中三次弃答计入100条分母。这套运行使用PyTorch 2.14.0+cpu、严格编码及1024-token限制,记录了权重校验摘要和数据标识。CPU与之前的H200 BF16评测虽得分相近,样本流程和运行条件仍须按项目附件核对;不能由0.60个百分点差距推断硬件本身必然改变模型能力。

Julia 1项目方公布的任务成绩、CPU延迟与候选数量限制信息图

CPU快到什么程度,取决于问题长什么样

项目方另给出多设备测量。Apple M4上,每次约100个上下文词、4个选项的128次请求,单次p50约33.15毫秒、p95约44.23毫秒,吞吐约每秒28次;16个一批处理时每批p50约312.11毫秒、p95约313.44毫秒,吞吐约每秒51.20次。批处理提高总吞吐,但队列等待可能增加单个客户的端到端延迟,不适合拿“每批时间÷16”当实时请求承诺。该运行结束时进程占用约370.6 MiB内存,峰值和持续高并发下的资源需求仍需另测。

Intel Core i5-1235U上的记录提供了更直观的任务差异:2000条Typed Decisions的p50约294.81毫秒、p95约428.49毫秒;100条AG News的p50约107.83毫秒;而含72类收窄过程的Banking77,p50约3713.54毫秒、p95约5125.10毫秒。由此看,候选很多时不仅准确率可能下降,先筛选再决策还会增加时间。M4与i5的数据输入、运行路径不同,不能直接说某芯片比另一芯片快几倍。

项目还展示三星SM-X510平板上使用ONNX Runtime处理40个判断约8秒,单次约193—205毫秒,进程峰值RSS约393.1 MB;权重文件约550.1 MB,以内存映射方式加载。ONNX列出了NNAPI与CPU,但该次驱动对算子回退到CPU,不能据此宣称在平板NPU上跑出了相同速度。项目注明该计算图在XNNPACK路径有Reshape编译问题,因此测试没有启用它。这些注脚不太适合发布会口号,却正是工程落地需要的条件说明。

对于企业而言,测量应从真实“单位完成任务成本”开始,而不是只看模型一次推理的毫秒数。若每条请求还须通过大模型整理上下文、通过另一个模型生成候选,Julia的快只覆盖中间一步;若候选类别长期固定、输入较短,它才可能替掉高频生成调用。测p50之外要记录p95、CPU核数、内存上限、冷启动、并发和弃答率,再把人工复核与错误分单的成本算进去。

放进业务系统时,先处理选项而不是先调模型

一个可行的试点是让Julia在现有工单系统旁边以影子模式运行。每条工单保存当时用户可见的信息、所有合法候选、现有系统动作、人类最后修正结果。先按客户或时间段切开测试样本,避免同一问题的复述在测试集与调参集里互相泄漏。对每个类别画混淆矩阵,特别查“催促退款”被归为“普通查询”这类损失不对称的错误;整体73%的准确率并不说明高风险类别能否自动放行。

候选项的文字也要管理版本。客服部门重组时,旧版“财务”与新版“账单争议处理”不一定是同一个动作;中文标签后面混入英文产品名,评分可能变化。固定每个选项的定义、适用条件和下游权限,把正确答案缺席候选集的案例单列。若只有前置Router选错,重新微调最后一步模型也救不回来。对72类场景可以比较层级路由、检索候选与直接分类,并统计“正确类进入候选列表”的召回率,然后再比较最终准确率。

上线灰度应设置自动执行的门槛和拒答路径。可先自动处理可逆的低风险分单,把支付、删库、关闭安全告警留给规则与人工;用本地数据校准各类别阈值,不直接把项目测试的评分视为已校准的真实概率。错误追溯时保存输入版本、完整候选列表、模型权重标识、分数及最终执行结果,但敏感原文应遵守最小留存与访问控制。模型升级或重新定义标签之后,回放这些样本,避免准确率表面上升却损失对少数重要类的召回。

项目公开了权重、Python接口、测试数据记录及Apache 2.0许可,这降低了企业独立复验的门槛;但“开源可运行”和“适合直接接管生产决策”之间还隔着数据分布、错误后果与维护能力。团队披露其训练和实验云GPU支出约540巴西雷亚尔,约104.08美元。这证明本次实验投入的量级,不包括组织、标注、运行、评估及企业持续服务的全部成本。团队计划中的Julia 2自有基础架构及API价格也只是后续设想,不应与Julia 1当前自托管性能混为一谈。

做一个能否替换生成路由的算账实验

可以选择一个每天几万次、目前由生成模型判断类别的内部流程,保留两周真实请求作离线回放。比较对象至少有原生成式路由、业务规则和Julia三个,而不能只用最贵的模型作基线。按同一批输入计算正确路由、错路由、弃答和超时的数量;让人工标注者不知道候选系统的身份。再给每个错误一个业务代价:普通工单错分可能只是延误,风控告警错分为低风险可能需要补查与用户通知。由此计算每千次完成且未返工的决策成本,而不是单次token价格。

离线分数达到要求后仍需要线上影子实验。Julia可以先记录选择,不触发下游动作;比较真实用户后续的退单、转人工和处理时长。特别观察晚上流量高峰、系统冷启动、频繁新增标签以及超长上下文。候选项顺序也应做扰动测试:接口虽然按原顺序给出评分,部署方仍须确认同一语义在不同排列下结果是否稳定。若含个人信息的文本需在本地CPU环境处理,自托管可减少向外部生成API发送原文的次数,但并不免除本地访问控制、日志脱敏与保留期限要求。

还有一种常见误用,是把分类“正确率”当成对行动的“安全率”。假设模型在100个支付相关问题里选对90次,也不足以让它自动批准款项;需要先看那10次错误分布在哪里,再核对法律和审批制度对每一笔交易的要求。相反,如果模型在内部知识库的主题分流上答对90次,剩下10次可被下一层搜索或人类纠正,它可能已经带来实际收益。技术指标没有脱离工作流的固定及格线,业务可逆性才决定灰度顺序。

对长尾类别,试点还可以把弃答看成可设计的功能,而非一律算失败。项目方Banking77 CPU测试的三次弃答确实计入总体准确率的错误;在生产中,若弃答让困难请求进入人工队列,其经济后果与自信地错分到付款流程不同。评测表应同时列出覆盖率、已回答样本的准确率和人工接管成本,并固定拒答阈值后再比较不同模型。不能事后随意调整阈值,只挑一组最好看的数字对外宣传。

如果系统部署在门店边缘设备,还需单独核查升级与回滚。模型文件、分词器和候选配置必须成套发布,不能只替换权重而保留旧标签映射;断网时是否能继续服务,取决于整条调用链是否本地化,不取决于模型自身支持CPU。边缘节点可能只有少量内存,还要与收银、监控等业务争抢资源。上线前在最差的设备型号上做长时间压力测试,并留出可一键退回规则路由的开关,比展示一次顺畅的平板推理更有说服力。

Julia 1最有价值的地方,是把“让Agent想一想”拆成了一次可计量的有限选择。它在短输入、少量候选的CPU测试里表现出可用速度,也在相似类别密集的银行任务上交出难看的分数。企业不必站队“大模型还是小模型”:先找出已经有明确候选、错误可回退且调用频繁的步骤,用自己的数据、自己的机器算成功任务的总账。其他需要外部知识、长链推理或新动作生成的工作,仍交给更合适的模型与人。

参考资料

分享到