Hacker News 中文摘要

RSS订阅

将 GLM-5.3-Flash 改造为 Jev 式决策模型 -- Turning GLM-5.3-Flash into a Jev-like decision model

在单次前向传播中,一个现成的大语言模型就能做出带类型的决策,为每个选项给出概率。作者在 Privatemode 上运行 GLM-5.3-Flash 来评估这一方法,并用公开数据集构建基准,结果显示其决策准确率和速度与 TypeSafe 的 Jev 相当。额外的好处是,GLM-5.3-Flash 还能对图像做带类型的决策,而 Jev 无法做到。

正文

主题图

Image 3: Johannes Hötter

简而言之: 我们展示现成LLM如何单次前向传递做出类型化决策,从而变成类Jev决策模型。在Privatemode运行GLM-5.3-Flash评估,基于公开数据集的基准显示其决策准确度和速度媲美TypeSafe的Jev。额外,GLM-5.3-Flash支持图像类型化决策,Jev做不到。

Image 4: Marko Rosenmüller

为什么需要类型化决策

软件让LLM做的很多是决策,如“哪个团队处理工单”或“合同条款是否属于责任部分”。通常要求回复为JSON等格式且来自预定义集合如“是/否”。给定指令LLM能可靠做到,但基本方法速度和成本成问题:每决策需写整个JSON,推理模型可能先想数百token;且不知模型置信度。专用于决策的“System One”模型如Jev和Laya解决此问题:输入状态和命名选项,返回选中选项及每个选项置信度(概率)。

将LLM变成决策模型

我们探究LLM能否变成具Jev特性的决策模型,答案是能。LLM不直接写文本,而是对全词表输出概率分布,文本生成时选最高概率下一token,若只为设JSON几个字段则慢且贵。核心洞察:无需LLM预测整个JSON,只需其类型化判断。可构造提示词在单次运行得类型化判断,无需微调。步骤:

  1. 编号选项。状态、问题和选项作为JSON放入提示词,每选项带索引。指令要求以 choice_index: 加索引回答。
  2. 预填答案。提示词以 choice_index: 结尾,模型首token即为选项索引。
  3. 评估输出。不读发出token,而读该位置所有选项索引的概率,归一化得各答案概率,取最可能者。

提示词给选项编号并以助手消息 choice_index: 起头,故下一token是索引。词表掩码仅允许选项索引,API返回对数概率,归一化得概率。示例:状态“订单被重复扣款”,问题“哪个团队”,选项0 payments、1 complaints、2 technical。模型给出概率约62.1%、37.7%、0.2%,回答payments,置信度0.39(1确定,0等可能)。

我们在Privatemode的vLLM上实现上述用于GLM-5.3-Flash。用 /chat/completions 端点设 continue_final_message 和 add_generation_prompt: false,让模型续写预填助手轮,并支持同传图像。

vLLM和GLM-5.3-Flash细节: 1. allowed_token_ids 可限输出词表仅允许选项,其他token置-inf,我们设为护栏非必需。 2. top_logprobs 不足,它报限制前分布,格式化token占顶,选项显零概率。logprob_token_ids 返回指定token ids对数概率解决。 3. 索引token ids依赖分词器,数字不总是单token,GLM-5.3-Flash中12为单token。库从服务器取token ids,适配任意模型。

库见 edgelesssys/privatemode-decisions (https://github.com/edgelesssys/privatemode-decisions)。

试一试

下方playground运行Privatemode上GLM-5.3-Flash,可直接选例(含扫描发票、依赖本地时间的问题)或自写加图。每回答以选项分布返回,通常几百毫秒。分布有助判断是否人工介入。模型解多数经典陷阱题但不全。

基准结果

用自定义基准比较三系统:Privatemode上GLM-5.3-Flash、TypeSafe的Jev、Convai的Laya。29个公开标注数据集,选项数2至151,涵盖意图路由、情感、主题分类、审核、蕴含、问答、法律文本、扫描文档,含英德文。三系统收相同状态、选项名顺序和指令。每数据集跑两次,温度0下GLM和Jev最多3.5%答案变,因批处理和浮点算术,小差异视噪声。Jev和Laya默认设置,未调prompt。

准确度

28个文本数据集上GLM与Jev持平:各在10集更准,8集差1%内。中位差距0.7百分点Jev优,不显著(p=0.64)。Laya(4.21亿参数本地)多数低,中位差13-15百分点显著(p<0.001)。选项数比选模型更影响准确度。

同题标两次粗细粒度数据集:TREC从6到42选项,Jev 92.1%降至85.6%,GLM 91.2%至79.6%,Laya 88.4%至51.2%。MASSIVE从18到59意图,Jev和GLM双语分数升,Laya降。选项数不单独定难度。

延迟与成本

单请求测延迟。Privatemode在欧,Jev在美,从德美同时测4集。德国:Privatemode 180ms,Jev 264ms;美国:Jev 164ms,Privatemode 299ms。成本Jev低:百万决策GLM约62欧,Jev约16欧。

差异主因输入token单价和打包。Jev加约270固定token加每选项10;GLM加55固定加每选项20。少于21选项GLM发token少,多于则多。Laya本地无可比延迟成本。

多模态决策

状态不必文本。GLM-5.3-Flash视觉模型可带图如扫描发票、损件照。图入同提示词,答案仍单token带概率。Jev和Laya皆文本输入不能图。RVL-CDIP的1600扫描业务文档16类,GLM准确度70.2%唯一能答。图加约1350输入token,百万文档决策约270欧。

能力

多选项时各有限。Laya选项名共享192 token预算,够banking77的77意图不够CLINC150的151。Privatemode的GLM最多报128条 logprob_token_ids,掩码收全选项。库将151选项问题发两次,读128和23概率,合并分布。CLINC150上GLM 87.5% vs Jev 78.4%,但决策719ms vs Jev 249ms。上限为GLM单token拼191选项索引。

| | Privatemode上的GLM-5.3-Flash | Jev | Laya | | --- | --- | --- | --- | | 扫描文档 RVL-CDIP,1600业务文档,16类 | 70.2% | 仅文本 | 仅文本 | | 模型选择 同代码换模型 | API上任意模型 | 固定 | 固定 |

其他发现

部分剩余错误在标签。 多数系统同答而标签异时,标签常属两种合理答案之一。banking77约17%属此,故最高分约85%非100%。

推理有帮助但有代价。 控制实验让同GLM先推理后答,各选项数段更准(2选项89.9% vs 85.5%,21-80间82.0% vs 79.2%),但每决策写数百token,百万成本约350欧 vs 62欧。纯嵌入相似无决策模型达45.9%-72.8%。

重命名选项影响不同。 各选项换同义,boolq中true/false变correct/wrong,GLM掉20点,另俩掉不足3。因改名也改问题意,未隔离记忆。

自己构建

Python库适用任意vLLM端点,依赖其OpenAI API扩展如 allowed_token_ids。README说明Privatemode设置。基准仓库 https://github.com/edgelesssys/privatemode-decisions-benchmark 含方法、数据集规范、测试架等可复现。Privatemode决策受机密计算保护:数据内存加密,客户端验证明报告。

在Privatemode上构建

创建账户,将本文给Claude Code等编码工具,配合GitHub仓库即可构建受机密计算保护的类型化决策。

评论

社区对“类Jev”方案反应两极,多数人指出用大语言模型做分类决策并非新鲜事且本地运行更便宜,少数人强调Jev的极速推理在机密场景有真实价值。

认为用LLM做分类决策早已普遍,“Jev-like”提法无意义

  • 多名用户指出将模型转为是/否判断或提取结构化字段是既有做法,小型本地模型即可胜任,所谓“类Jev特性”像是重新发明轮子(较多人) > 人们早就用大语言模型当分类器或排序器了,现在提“类Jev特性”简直让人怀疑是不是疯了。(@Jabrov)

认为本地运行比Jev更便宜且更快

  • 有用户反驳Jev更便宜的说法,表示本地部署可实现极低延迟与极高缓存命中,成本近乎为零(较多人) > 若我能本地运行,延迟低于20毫秒且几乎全缓存,Jev怎会更便宜?(@prjkt)

认为非Jev架构的模仿丢失了速度核心

  • 技术派提醒,若底层是自回归解码器(如GLM),便无法获得Jev特有的极速预填充,不能算真正类Jev(少数人)

认为Jev的极速响应在特定场景不可替代

  • 实测显示Jev处理三万词上下文仍保持亚秒级延迟,速度远超常规方案,对机密低延迟需求是关键赋能(较多人) > 我用三万词上下文测试,Jev仍能八百毫秒内回复,这种预填充速度常规模型连专用硬件都做不到。(@ricardobeat)

有价值的补充

  • 可将任意足够聪明的模型通过详细提示约束为只返回少量JSON对象,其中二元选项即可完成内容判断,本地小参数模型(如Qwen变种)便能运行。
  • Jev的预填充吞吐达到每秒两万至五万词元,违背已知大模型推理物理限制,暗示其并非标准自回归架构。