返回博客列表

LLM 做决策又慢又贵?System One 模型 JEV、kev、laya 直接算概率

2026-09-21T21:30:00+08:00
System OneJEV决策模型LLMkevlayaRLCD

LLM 做决策又慢又贵?System One 模型 JEV、kev、laya 直接算概率

先别看热闹,这里有一条 Agent 基础设施的新分支。

你让 LLM 干的最多的事,可能不是写文章,而是做判断:这条消息该进哪个客服队列、这个请求该不该升级、这段文本是好评还是差评、这份工单属于哪个部门。这些任务不要求"生成",只要求"选一个",但主流 LLM 是为生成文本设计的——逐字逐 token 地写,慢、贵,还经常一边编一边错。

TypeSafe AI 最近提出了一类新模型,叫 System One(取自卡尼曼《思考,快与慢》):不做开放生成,只做快速、结构化的决策,软件可以直接使用结果。它的第一个公开模型 JEV 宣称 70ms 就能出结果、永远不会产生类型错误、每个答案自带置信度。更热闹的是,社区已经有两个开源项目在复刻这条路:kev(Jared Palmer 用 Devin 写的 JEV 开源复刻)和 laya(多语言非自回归决策引擎)。这篇文章把四条来源的信息串起来,讲清楚 System One 到底是什么、JEV 的内部架构怎么被逆向出来、以及 kev 和 laya 各走到哪一步。

本文提纲

  1. 为什么 LLM 不适合做"决策"
  2. System One:来自《思考,快与慢》的新模型类别
  3. JEV 是什么:70ms、类型安全、永不幻觉
  4. JEV 架构逆向:共享状态 + 并行问题分支
  5. kev:Qwen3.5 上的开源复刻
  6. laya:多语言非自回归决策引擎
  7. 横向对比与适用边界

为什么 LLM 不适合做"决策"

先把问题说清楚。

分类、路由、打分、抽取、护栏——这些是 AI 工作流里出现频率最高的"小决策"。它们的共同点是:输入是一段状态(工单、邮件、JSON、对话),输出是从一组预先定义的选项里选一个,附上概率。这类任务不需要模型创造新内容,只需要它做对选择题。

但主流 LLM 是自回归文本生成器:你要一个答案,它得先把答案逐字"写"出来,写到一半还可能改主意。三个代价随之而来:

  • 。一次决策要生成几百个 token,端到端几秒起步。
  • 。输出 token 按量计费,而决策任务里大部分 token 都是格式和铺垫。
  • 不可靠。它可能把 "payments" 写成 "pyaments",可能输出不在选项里的值,也可能对根本没有依据的问题给出一个自信满满的概率——也就是幻觉。

最后一个问题最要命。在 Agent 工作流里,下游代码要靠模型输出做分支判断,一个编造的结构或跑偏的答案会让整条链路静默出错。你需要的不是"会写字的模型",而是"会做选择题的模型",它得保证:答案一定在选项里,且概率是诚实的。

System One:来自《思考,快与慢》的新模型类别

TypeSafe AI 把这类模型命名为 System One,直接引用卡尼曼(Daniel Kahneman)《思考,快与慢》里的双系统理论:System 1 是快速、直觉、自动的判断,System 2 是缓慢、审慎的推理。用在这里很贴切——LLM 那种反复斟酌、逐字推敲的生成,是 System 2;而路由、分类、打分这些毫秒级直觉判断,是 System 1。

官方定义是"a new class of frontier models built to make fast, structured decisions that software can use directly"——为自动化而建、做快速结构化决策、软件可直接使用的模型。它不做聊天、不做开放文本生成,只做软件能直接消费的类型化概率决策

JEV 是 TypeSafe 的第一个 System One 模型,定位一句话:"unstructured state in, typed probabilistic decisions out"——非结构化状态进,类型化概率决策出。

这里的关键词是概率,不是文字。JEV 的每个答案都带置信度,而且它"cannot hallucinate"——官方说法是它不生成自由字符串,所以没有可幻觉的空间。它用一套不同的训练方法 RLCD(Reinforcement Learning for Calibrated Decisions,校准决策强化学习),区别于 LLM 的 RLHF/RLVR——优化目标不是"符合人类偏好"或"通过可验证奖励",而是"输出的预测分布足够诚实"。

JEV 是什么:70ms、类型安全、永不幻觉

TypeSafe 在发布博客里给了一组关键事实:

  • :端到端响应 70ms-500ms,而前沿 LLM 做同样的事要几秒。
  • 便宜:输入 token 极便宜,输出 token 近乎免费——因为输出不是生成出来的,是算出来的。
  • 类型安全:所有可能输出预先定义,模型"绝不产生类型错误",且每个答案带置信度分数。
  • 架构:新模型架构加并行采样器(parallel sampler),一次查询把全部输出一次给出,而不是逐个 token 吐。

适用场景是 AI 工作流里那些高频决策:classification(分类)、routing(路由)、scoring(打分)、extraction(抽取)、guardrails(护栏)、实时应用。

证据方面,TypeSafe 给了跟 GPT-5.6 Terra 在简化结构化查询上的对比,以及 workflow eval(拿 Jev 和 Astra、Fable 对比作为参考概率,声称 Jev 在 Pareto 前沿领先)。还有两个 demo:一个 Doom bot 用实时结构化状态玩游戏,一个 Wikipedia racing agent 在链接之间做选择。JEV 支持最高 255 个候选(cardinality up to 255),高基数场景用两阶段流程处理。

命名细节很有意思:JEV 取自 19 世纪经济学家 William Stanley Jevons,他研究过"生产成本下降"的问题,TypeSafe 用它暗指"智能成本下降会催生更多使用场景"。

JEV 架构逆向:共享状态 + 并行问题分支

TypeSafe 没有公开 JEV 的技术细节,但 Archer Hume 写了一篇很扎实的逆向工程文章,基于约 1 万次 API 调用、延迟测量和 token 计费分析,把 JEV 的架构黑盒还原了出来。核心主张:

JEV 不是一个"陈述置信度的文本生成器",而是一个被改造成决策引擎的 transformer——它直接从内部表征里读概率。

一幅图看懂

graph TB
    subgraph "Shared State Prefix"
        A[Ticket Text] --> B[Transformer Layers]
        B --> KV[(Key-Value State)]
    end
    subgraph "Question Branch 1"
        C["Q1 Queue + Options"] --> D[Attend to Shared State]
        D --> E[Readout Head: Probabilities]
    end
    subgraph "Question Branch 2"
        F["Q2 Escalation + Options"] --> G[Attend to Shared State]
        G --> H[Readout Head: Probabilities]
    end
    subgraph "Question Branch 3"
        I["Q3 Urgency + Options"] --> J[Attend to Shared State]
        J --> K[Readout Head: Probabilities]
    end
    KV -.-> D
    KV -.-> G
    KV -.-> J

整个设计一句话:一段共享的状态前缀 + 许多互相隔离的并行问题分支。输入文本(比如工单)只被编码一次,产生 key-value 表征;每个问题(它的指令、允许的答案、评判标准)并行构建自己的表征,只去 attention 那段共享状态,互不干扰;最后每个分支用一个 readout head 把隐向量投影成对允许答案的概率分布(z = Wh + b 再过 softmax)。全程没有自回归 token 生成,JSON 格式化发生在应用代码里。

七个设计组件

文章给出七个组件,可信度从高到低:

  1. 用 readout 结束推理,而不是解码。 output_tokens 字段是按序列化响应计算的计费产物,不是生成记录——它随选项数量和问题 ID 长度增长,但不随返回值增长,延迟也不随它变化。

  2. 共享状态、隔离问题。 token 数可加:一个问题 268 input tokens,两个 276。每个分支上限约 32k token,整个请求约 65k——符合"状态存一份、问题并排"的打包序列。一个 2.3 万 token 的状态带 5000 个问题,如果每个问题都复制一份状态,会超过 1 亿 token,所以状态必须只存一份。可见性实验更直接:放在"兄弟问题"里的信息完全不可见(概率 0.00),同样的内容放进共享状态则拿到 0.90-0.92。

  3. 因果骨干(推断)。 作者承认实验分不清 causal decoder 和 bidirectional encoder,假设基于"前沿预训练基本都是 causal decoder"加上共享前缀服务的效率考虑(Hydragen/DeFT 这类技术)。

  4. 选项在选择前会互相影响。 决定性实验:在四选项的"付款失败"任务里追加一句"坏天气导致的",现有选项之间的 log-odds 从 +0.38 移到 +0.11(十组随机块,95% 区间 -0.36 到 -0.19)。如果每个选项的 logit 独立且 softmax 不变,这个比值应该不变——所以这是 listwise(列表级)处理的证据。参考卡测试也证明模型能用到选项描述之后的信息,且改一个值会改变更早选项的排名。

  5. 训练分布,再算置信度。 TypeSafe 的方法 RLCD 用 proper scoring rule(对数损失或 Brier 损失)做优化目标。MMLU 校准:ECE 0.0313,1200 个样本里 990 个落在 0.9-1.0 置信区间。API 的 confidence 字段不是学出来的,是算术:c = (p_max − 1/K) / (1 − 1/K),K>1。

  6. 稀疏容量(推测)。 因为 prefill-only 推理是计算密集型的,而 MoE 在不解码时服务成本几乎消失,且延迟数据(约 30k token 约 160ms)指向约 10B 活跃参数——推测稀疏 MoE 骨干。作者自己说"重建的其它部分都不依赖这个假设"。

  7. 批调度。 问题分支是独立的可批处理工作项,模型不会写完一个答案才开始下一个。重复请求之间的小概率差异说明不要假设确定性

作者也交代了 tokenizer 和 192 个公开 tokenizer 都匹配不上(最接近 Qwen,348/415 probes),说明词汇表被改过或做了继续预训练。

最佳重建:一个有共享状态前缀、隔离问题后缀、列表级选项处理、类型化数值读出、面向预测分布训练的 causal transformer,稀疏 MoE 作为可能的骨干。文章结尾还给了几个可证伪的实验,包括一个用约 200 个选项区分"固定 slot head"和"pointer-style scorer"的实验。

kev:Qwen3.5 上的开源复刻

kev 是 Jared Palmer 用 Devin 写的开源项目,自称"a family of small decision models built on Qwen3.5",目标就是在本地复刻 JEV 背后的架构——README 直接引用了上面那篇逆向文章作为设计依据。Apache-2.0,1.7k stars。

一个请求支持三种问题类型:

类型 说明
noul yes/no,返回"是"的概率
choice 1-255 个选项里选,每个选项给概率
score 2-255 级评分量表,返回均值级别索引和概率

API 镜像 TypeSafe 的 System One,所以官方 TypeSafe Python SDK 可以直接指向本地 kev server。

模型有三个尺寸:Kev-0.8B / Kev-4B / Kev-9B,都基于 Qwen3.5。每个 checkpoint 是"一个 rank-16 LoRA adapter + 一个小 pointer head",Qwen base 冻结。head 用问题里的 "decide" token 对每个选项的 hidden state 打分,softmax 成概率。问题共享输入文本但互相隔离:attention-only 的 base 上,问题放在一个序列里用 attention mask 隔开;Qwen3.5 的 DeltaNet 层上,每个问题跑自己独立的一行。

精度数据(hold-out 新来源):Kev-9B 约 0.822(dev)/ 0.852(test),Jev 托管 dev 0.857——但作者明确说这不是受控对比,因为 Jev 的训练数据未知。已知差距:知识类问题(MMLU-Pro 0.52 vs Jev 0.84)和新来源上过度自信(用 KEV_TEMPERATURE=2.0 缓解,confident errors 从 8.7% 降到 4.4%)。

快速开始:

git clone https://github.com/jaredpalmer/kev.git && cd kev
uv sync --extra serve
KEV_DTYPE=bf16 uv run --extra serve python -m kev.serve --run jaredpalmer/kev-4b --port 8009

然后 POST 到 localhost:8009/v1/systemone,body 是一段 state 文本加一个 questions 对象。有个 web playground(cd playground && npm install && npm run dev -- -p 3001),可以自己输入、对比"打包 vs 分开跑问题"、打乱选项顺序看答案怎么变。还有个 chess demo——棋盘是 state,合法走法是选项。

训练方面:发布模型在 decision-v7 上训练(1 万个示例,来自 10 个公开数据集加生成的策略/规则结构示例,两轮,LoRA rank 16)。可以拿自己的 JSONL fine-tune(形状跟 API 请求一致,每个问题加一个 "label"),用 --init_from 从发布 checkpoint 起步保留已有知识——社区测试从 base 起步只有 0.33,用 --init_from 能到 0.84。服务性能:CUDA H100 上 5 个问题的请求几十毫秒;Apple Silicon 上慢(Qwen3.5 模型没有快速 DeltaNet kernel,Kev-9B 在 M5 上约 2 秒,旧 Qwen3 模型在 Mac 上约快 6 倍),MLX 后端在计划里。

README 自己列的局限很实在:新来源上概率过度自信;选项顺序会影响答案;训练时最多 384 state tokens(serving 支持 8192);server 一次只处理一个请求;知识密集型 benchmark 上落后 Jev。

laya:多语言非自回归决策引擎

laya 走的是同一条路线但技术路线不同。官方定位:"Multilingual, non-autoregressive System 1 decision engine"——多语言、非自回归的 System 1 决策引擎,来自 Convai Innovations,Apache 2.0。

它不生成文本,对文本/邮件/工单/JSON 做类型化问答(choice、score、noul),single forward pass 一次前向出结果:单问题约 33ms,批处理每问题 7.2ms(T4 GPU 上)。训练也用 RLCD(对 proper scoring rules 做强化学习)。

三个 checkpoint 加一个 Router:

Checkpoint Base 参数量 上下文 覆盖
laya ModernBERT-large 421M 512 英文
laya-multilingual mmBERT-base 322M 1024 100+ 语言
laya-typed-decisions - - - 结构化工作流

Router 亚毫秒级自动检测 script/语言,按请求选 checkpoint——官方明确说这是因为英文模型在非拉丁文字上会挂:"confidence gating cannot save you"。

from laya import Router

router = Router(preload=True)
res = router.predict(state, questions)

或者直接加载某个 checkpoint:

import laya
model = laya.load("convaiinnovations/laya", subfolder="multilingual")

还有自动化置信度门控(高/低置信动作分流)、内置工作流预设(router/guardrails/moderation/triage)、preload 模式避免语言切换时 7-10 秒重载、attach() 跟已有 agent 共享 VRAM。

性能对照(对 Jev 1.13.0 的公开数字):routed 模式 p50 32.8ms,Jev 236-276ms,约 7.8× 快;typed-decisions 上 argmax 准确率 0.766 vs 0.727;温度拟合后校准 ECE 0.081 vs 0.246,约 3× 更好

但作者对局限非常坦白:base checkpoint 在 typed-decisions 上零样本接近随机(0.362 vs majority-class 基线 0.461)——能力来自 fine-tune 而不是 base 模型。Jev 在高基数标签集上仍然领先(Banking77:0.870 vs 0.425),soft distribution 匹配也是 Jev 更强。

横向对比与适用边界

把三者放一起:

维度 JEV (TypeSafe) kev laya
形态 托管 API 本地开源 本地开源
骨干 未公开(推测稀疏 MoE ~10B active) Qwen3.5 + LoRA + pointer head ModernBERT / mmBERT
训练 RLCD RLCD 风格 + decision-v7 RLCD
延迟 70-500ms H100 上几十 ms 33ms / 每问题 7.2ms (T4)
最大基数 255 255 取决于 checkpoint
语言 英文为主 英文为主 100+ 语言(Router)
许可证 商业 Apache-2.0 Apache-2.0

几点实在的判断:

这条路真的成立吗? 从两个独立开源复刻都做出了能用的精度看,System One 不是一个营销概念——它的核心洞察(决策不需要生成、概率直接读出)已经被社区独立验证了两遍。JEV 的逆向文章和 kev 的实现互相印证了"共享状态 + 隔离问题 + 直接读出"这个架构轮廓。

别神话它。 三个来源共同指向的边界很清楚:知识密集型任务(MMLU 类)还是 LLM 的地盘,JEV 领先也是靠类型化结构而非知识量;高基数、需要 soft distribution 的任务 JEV 仍领先开源复刻;选项顺序敏感、新来源过度自信,是当前所有实现(包括 JEV)的共同弱点。

什么时候值得用? 你的工作流里如果有大量"给定一段状态,从固定选项里做判断"的调用——客服路由、内容审核、意图分类、打分、护栏——把这些从 LLM 换成 System One 模型,延迟和成本会掉一个数量级,还能拿到诚实的置信度做门控。TypeSafe 官方 SDK 直接支持指向本地 kev,意味着你可以先在本地把流程跑通,再决定要不要上托管 API。

什么时候别用? 需要生成内容、需要开放性推理、需要世界知识的时候,别用。它是选择题模型,不是答题模型。

参考链接

你会在哪个场景把这类"决策模型"接进工作流?评论区聊聊你的选择。觉得有用点个赞,让更多人看到 System One 这条新分支。


作者: itech001 来源: 公众号:AI人工智能时代(the-ai-era) 网站: https://www.theaiera.top/ 关注每日最新AI新闻和技术博客,主页有更多的文章的AI 技术参考:https://www.theaiera.top

本文首发于 AI人工智能时代,转载请注明出处。

分享给朋友