TYPESAFE AI · 2026-09-15 · EARLY ACCESS ● SYSTEM ONE MODELS
一个「不说话」的 AI:Jev 与 System One 模型
前 OpenAI 研究员 Diogo Almeida 创办的 TypeSafe AI,把 AI 变成函数调用:非结构化状态进,类型安全决策出 。不生成任何文字,只返回带校准概率的结构化答案——70 毫秒级延迟,输出免费。卡尼曼的「系统一」第一次成了代码里的 if 语句。
70–500ms
端到端响应(LLM 的 40–200×)
POST /v1/systemone · PARALLEL QUERY
Δ — ms
noul · is_urgent 是/否 → P(是)
答案 —
choice · department 三选一 + 全分布
billing 0.88 · technical 0.12 · sales 0.00
score · frustration 三级打分 → 概率加权
score 1.90 · 平静 0.00 / 不满 0.10 / 非常生气 0.90
↻ 重播并行采样
三个问题一次查询、并行输出 ,而非逐 token 生成——这就是「System One」的速度来源(上为示意输出,非真实 API 结果)。
01 · What
它不吐一个字,只做判断
传统 LLM 的产出是字符串——聊天、代码、还有幻觉。要用在代码里,得解析、校验、处理跑偏风险。Jev 把「生成」整个砍掉了:你预先定义好所有可能答案(选项、打分档位、是否),它读一段状态,直接返回类型安全的结构化值 + 校准概率 。
造它的路线是「把 AI 当函数调用」:unstructured state in, typed probabilistic decisions out 。— TypeSafe AI 发布博客
背后的训练方法叫 RLCD (Reinforcement Learning for Calibrated Decisions,详见第 03 节):优化目标不是「人觉得好听」,而是「概率与真实结果一致」——它说 0.95,就真的 95% 会中,不会张嘴就自信。
官方数字:与顶尖 LLM 对比评测中,快 193.6×、便宜 444.6× (workflow 级评测口径)。
02 · Name
名字从哪来:卡尼曼 + 一个经济学家
System One 取自丹尼尔·卡尼曼《思考,快与慢》:系统一是快速、直觉、自动化的判断(看到 2+2 秒答 4);系统二是缓慢、深思熟虑的推理(心算 37×24)。传统 LLM 是系统二,Jev 是系统一。
Jev 致敬经济学家 威廉·斯坦利·杰文斯 (William Stanley Jevons)。杰文斯悖论:蒸汽机效率提升,煤炭消耗不降反升——因为更便宜的能量解锁了更多用途。TypeSafe 赌的正是这个:智能成本每降一个数量级,就解锁一个数量级的用例 。
03 · RLCD
RLCD:训出一个「老实的仪器」
RLHF(人类反馈)和 RLVR(可验证奖励)都是在教模型「说得对」;RLCD (Reinforcement Learning for Calibrated Decisions,校准决策强化学习)换了目标:判断得准,而且知道自己有多没把握 。这是 TypeSafe 自创的第三种后训练路线。
RLHF
人类反馈强化学习
让输出「人喜欢」。副作用:谄媚、自信幻觉、模式坍缩(mode dropping)。主创 Diogo Almeida 在 OpenAI 参与发明了它,算是自己挖坑自己填。
RLVR
可验证奖励
以有标准答案的任务(如数学题)为奖励,催生了一批推理模型——但更慢、更贵。
RLCD
校准决策强化学习
不生成文本,只输出决策 + 概率;概率与真实结果一致。TypeSafe 的第三条路。
RLCD 的三个硬约束:
不生成文本 ——只输出决策与概率,没有废话可掺水;
概率必须校准 ——它说 0.2,长期约 20% 的时候对;说 0.8 约 80%;说 1.0 就该 100% 对;
高置信 = 高准确 ——低置信时代码可以安全地升级给人或慢模型,而不是被它硬撑着。
类比:普通模型是口才很好的专家,问什么都敢拍胸脯(还经常拍错);RLCD 训出来的是老实仪器——读数就是它真实的把握程度 。0.95 直接自动化,0.55 拉人来审核。注意校准是群体层面的:100 次说 0.95 的答案里约 95 次对,不保证单次正确
04 · Primitives
只有三种问题(够了)
noul
是 / 否
返回「是」的概率,0–1 连续值。{"noul": 0.95}
choice
多选一(最多 255 项)
返回选中项 + 全部选项的概率分布 + 置信度。
score
按档位打分(2–10 级)
返回概率加权的分值 + 各档位概率,分数可以落在档位之间。
请求 = state(要判断的内容,字符串或 JSON)+ 一组 questions。一次调用可以同时问多个互不依赖的问题,并行计算 ,互不干扰。
请求 · POST https://api.typesafe.ai/v1/systemone {
"state" : "Help! My payouts have been failing for 3 days." ,
"model" : "jev-latest" ,
"questions" : {
"is_urgent" : { "type" : "noul" , "instructions" : "Does this convey urgency?" }
}
}
响应 {
"model" : "jev-1.13.0" ,
"answers" : {
"is_urgent" : { "type" : "noul" , "noul" : 0.95 }
}
}
05 · Usage
一次调用,三个问题:客服工单分拣
请求 · 一条 state + 三个并行问题 {
"state" : {
"message" : "救命!我的提现已经失败三天了,钱一直没到账,我很生气!" ,
"account" : { "tier" : "pro" , "age_days" : 400 }
},
"model" : "jev-latest" ,
"questions" : {
"is_urgent" : { "type" : "noul" , "instructions" : "用户是否急需处理?" },
"department" : { "type" : "choice" , "instructions" : "该转给哪个团队?" ,
"criteria" : { "billing" : "支付、发票、退款" , "technical" : "系统故障、Bug" , "sales" : "销售咨询" } },
"frustration" : { "type" : "score" , "instructions" : "用户愤怒程度?" ,
"criteria" : ["平静" , "不满" , "非常生气" ] }
}
}
返回后,在代码里写「智能 if」——这就是 System One 的典型用法:代码掌控流程,模型只做窄判断 。
python · 组合三个答案 # ans 为上面请求的返回,类型安全,无需解析字符串
if ans["is_urgent" ]["noul" ] > 0.9 and ans["frustration" ]["score" ] > 1.5 :
escalate_to_human("high" ) # 又急又怒 → 直接转人工
elif ans["department" ]["choice" ] == "billing" :
route_to("billing_team" ) # 否则按部门路由
elif ans["department" ]["confidence" ] < 0.6 :
ask_human() # 拿不准 → 升级给人,而不是瞎猜
官方推荐的做法,精髓是三句话:
能用代码就用代码 ——确定性规则留在代码里,别让模型做能写死的判断;
把大问题拆成原子问题 ——「这是垃圾邮件吗?」拆成「要密码吗?」「有意外奖励吗?」「制造紧迫感吗?」三个窄问题,可检视、可调参、可组合;
用概率和置信度决策 ——高置信才自动执行,低置信升级给人或慢速推理模型,而不是硬猜。
06 · Compare
和 LLM 不是替代关系,是分工
传统 LLM(系统二) System One + Jev(系统一)
训练目标 RLHF / RLVR:人喜欢、程序可验证 RLCD:校准的决策概率,概率与结果一致
输出 字符串——灵活但需解析,会幻觉 类型安全结构化值,模式匹配数学上不会错
采样 串行逐 token 生成 一次查询并行输出所有答案
速度 端到端 3–329 秒 70–500 毫秒(约 40–200× 快)
成本 输出约 5× 输入价 输入 $0.042/MTok,输出免费
置信度 普遍过度自信、不稳定 每个答案都带校准概率,高置信=高准确
适合 对话、写作、代码生成、开放任务 分类、路由、打分、抽取、if 判断、护栏
典型组合:Jev 做高频窄判断(实时请求路径),LLM 处理开放长任务;Jev 甚至可以当 LLM 输出的校验护栏 ——打分、判分、检测越狱提示。
07 · Caveats
别指望它什么
不说话、不写代码、不解释推理 ——答案必须落在你定义的选项/档位里;
目前只收文本 ——字符串、JSON、文本数组,图片音频视频暂不支持;
校准是群体层面的 ——100 次说 0.95 的答案里大约 95 次对,不保证单次正确;
知识不来自权重 ——需要当前信息时,把资料放进 state 给它,别指望它背书;
还在 early access ——官网排队等邀请,生产使用需谨慎评估。
08 · Transparency
它没告诉你的
官方公开的只有「架构原则」,没有「架构规格」:
已披露 ——全新模型架构(具体是什么没说)、并行采样器(非自回归,一次查询并行输出全部答案)、RLCD 训练法、仅文本输入、choice 上限 255 个选项;
未公开 ——参数量、层数与注意力结构、训练 token 量、训练数据、硬件与算力。
社区猜测(Latent.space AINews):按官方速度口径(比 LLM 快近 200×),参数量应该不大;但非自回归架构的 KV cache 可能反而很贵 ——像是一条拿显存换速度的路线。
一句话总结:产品接口全透明,模型内部完全闭源 。想验证「没有幻觉」「概率真校准」这类说法,目前只能当黑盒 API 用自己的数据测。
09 · Remake
有人已经手搓了一个「Jev」
官方没开源、没给技术细节,挡不住民间动手派:公众号「我世界的源代码」(dongxudongxu)发文《记录一下手搓 Jev 的过程》,用一张 3090 在家搓出了效果接近的版本(作者声明与官方 Jev 无关联)。
核心洞察与官方口径不谋而合:判定不是生成 ——答案空间是有限的(枚举/布尔),没必要逐 token 生成 JSON,只需要给候选答案打分;JSON 由服务端拼装,天然类型安全。
一次 prefill ——系统提示 + 待判定文本 + JSON 开头「{」跑一次前向,拿到 KV cache;
KV cache 广播 ——复制 N 份(N = 字段数),所有字段共享同一次 prefill,代价是显存 × N;
批式并行打分 ——把所有字段的所有候选值展开成一个 batch,一次前向算每条候选序列的链式概率连乘(teacher forcing),同字段内比总分;
Softmax 归一化 ——同字段候选内部归一化成概率,直接当置信度用。
全程 2 次前向传播 ,百毫秒级判定——和他文章里「Qwen-14B 生成一个小 JSON 都可能超 1 秒」形成鲜明对比。
微调也讲究:LoRA 只训练「最后一个决策 token」,prompt 全部 mask 掉;训练数据靠模板自问自答批量生成(规则:模板怎么填、答案不许变),情绪分类用 Claude Code 造了 72 条留言 × 4 语言 × 3 情绪 = 4152 道题。
「模型会不会写漂亮的 JSON?不重要,JSON 最后是程序拼出来的 。在非常窄的决策接口上,把模型训练成一个更好的分类器。」— dongxudongxu《记录一下手搓 Jev 的过程》
顺带一提:这正好侧面印证了上一节的猜测——KV cache 的显存开销(N × 前缀 KV)是实打实的代价。