不聊天、只判断:Laya 如何用 421M 参数让 Jev 的“决策模型”走进每一台笔记本
不聊天、只判断:Laya 如何用 421M 参数让 Jev 的“决策模型”走进每一台笔记本
结论先行
Laya 是当前开源社区对 Jev 这一“System One 决策模型”概念最完整的工程化复现。它的核心价值不在于“打败 Jev”——公开数据显示,Laya 在硬标签准确率上略占优势(0.766 vs 0.727),但软准确率和校准误差仍落后于 Jev。Laya 真正的意义是:把“决策模型”从闭源 API 变成了一件你可以下载、微调、离线运行的本地组件。对于需要数据不出本机、高频调用、成本敏感的场景,这是一个质的变化。
1. 先说清楚 Laya 是什么
如果你不关心技术细节,只需要理解一件事:
Laya 是一个不生成文字的模型。你给它一段文本和几个问题,它直接返回数字——概率、选项编号、评分。没有分析,没有解释,没有 JSON 解析失败的风险。
这和 ChatGPT 的交互方式完全不同。你问 ChatGPT“这封邮件紧急吗”,它会写一段分析,然后你从里面抠答案。Laya 直接告诉你:{"is_urgent": 0.95}。
这种设计借鉴了 Jev 提出的“System One 模型”概念——灵感来自卡尼曼《思考,快与慢》中的“系统一”(快速直觉判断)。Jev 由前 OpenAI 研究员 Diogo Almeida 于 2026 年 9 月发布,定位为“非结构化状态进,类型化概率决策出”,不写一个字,只输出代码可直接消费的结构化答案。
Jev 的问题在于:闭源、托管、尚未向中国大陆开放。Laya 是社区对这条技术路线的开源回应,Apache 2.0 协议,权重和代码全部公开。
2. Laya 的架构:ModernBERT 加一个决策头
技术背景读者可精读本节,非技术读者可跳过至第 3 节。
2.1 底层基座:ModernBERT-large
Laya 不是一个从零训练的模型。它的骨干编码器是 ModernBERT-large,参数量 421M(英文版)。
选择 ModernBERT 是有道理的:它是双向编码器,不同于 GPT 系列的自回归解码器。双向编码器天然适合分类和判断任务——它一次性看到全部输入,不需要逐 token 生成,因此推理速度极快。
三个官方 checkpoint:
| Checkpoint | 编码器 | 参数量 | 上下文窗口 | 语言 |
|---|---|---|---|---|
convaiinnovations/laya |
ModernBERT-large | 421M | 512 | 英文 |
convaiinnovations/laya-multilingual |
mmBERT-base | 322M | 1,024 | 多语言 |
convaiinnovations/laya-typed-decisions |
ModernBERT-large | 421M | 1,024 | 英文,微调版 |
2.2 决策头与输出范式
编码器之上,Laya 加了一个决策头(readout head),把编码后的隐状态直接映射到概率空间。没有文本生成,没有自回归解码,所有问题在一次前向传播中并行算完。
Laya 输出三种类型的答案,与 Jev 的原语对齐:
Noul(是/否):返回一个 0 到 1 之间的概率值。比如 is_urgent: 0.95 表示“紧急的概率是 95%”。
Choice(选择):从预定义选项中选一个,返回每个选项的概率。比如 ["billing", "technical", "account"] 对应的概率分布。
Score(评分):返回一个预期评分值,通常基于 0 到 N 的等级制。
关键设计约束:选项数不宜超过 20 个。Laya 的文档明确警告,过大的标签空间会显著降低性能,建议使用层级路由策略——先做粗分类,再做细分类。
2.3 训练方法:PPO,而非 Jev 的 RLCD
Jev 使用 TypeSafe 自研的 RLCD(Reinforcement Learning for Calibrated Decisions)训练,优化目标是“诚实的概率分布”。
Laya 走的是另一条路:PPO(Proximal Policy Optimization),一个在强化学习领域经过充分验证的标准算法。这是一个务实的选择——不追求复制 Jev 的训练方法论,而是用现成的、可靠的工具达到相近的行为效果。
从 Laya 作者的技术脉络看,这一选择有迹可循:其 2025 年的前序工作 SalesRLAgent 就使用 PPO 在序列表示上训练,输出销售转化概率,延迟 85ms,比 GPT-4 快约 40 倍。Laya 是这条技术路线的产品化延伸。
3. Laya 与 Jev 的正面交锋:数字说了什么
Laya 常被描述为“Jev 的开源替代”,但两者的可比性需要谨慎看待。
3.1 基准对比(来自 Laya 作者公布的数据)
| 指标 | Laya 专用检查点 | Jev 1.13.0 |
|---|---|---|
| 硬标签准确率 | 0.766 | 0.727 |
| 软准确率 | 0.471 | 0.580 |
| 期望校准误差(越低越好) | 0.213 | 0.144 |
如何解读这组数字:
Laya 在“选对答案”这件事上略占优势,但 Jev 在“知道自己有多确定”这件事上明显更强。校准误差更低意味着 Jev 说“90% 确定”时,真的有约 90% 的概率是对的;Laya 的置信度则更“粗放”。
这对生产部署至关重要。如果你的系统依赖置信度做路由——比如“置信度 > 0.9 自动处理,0.7-0.9 转人工,< 0.7 拒绝”——那么校准质量比准确率更重要。一个准确率高但校准差的模型,会在它“自信”的时候犯更多错误。
3.2 这不是一场干净的竞赛
需要指出几个关键警告:
测试条件不同。Laya 的准确率数据来自其作者自评,Jev 的数字来自 TypeSafe 官方发布,两者没有在同一测试集上对比过。
微调的影响。Laya 的 0.766 准确率来自 laya-typed-decisions 检查点,该检查点在基准测试的训练集上进行了微调。而基础版 Laya 在零样本场景下的硬标签准确率只有约 36%——仅略高于随机基线(约 31.8%)。
这意味着:Laya 的强项是微调后的专用决策,而非开箱即用的通用判断。你不能下载 Laya 就直接用它处理任意决策任务。
第三方实测的差距。有开发者在 Mac 上部署 Laya,跑了 100 条紧急程度判断:Jev 100 条全对,Laya 对了 53 条。延迟上 Laya 中位 116ms(纯本地),Jev 293ms(含网络往返)。准确率换速度,是当前开源复现的共同状态。
4. 如何调用 Laya:从安装到生产
本节面向开发者,给出可运行的代码。
4.1 快速开始
Laya 的安装极为简单:
pip install laya
权重会自动从 Hugging Face 下载。首次调用会触发约 30-60 秒的编译和加载,之后推理就很快了。
4.2 Python API 调用
import laya
# 加载模型(默认 FP16)
agent = laya.load("aac6fef/laya-mlx", dtype="float16")
# 构造请求
state = "客户邮件:我的 Stripe 账号已经三天连不上了,集成一直失败,正在损失订单,请尽快处理。"
questions = {
"which_team": {
"type": "choice",
"options": ["billing", "technical", "account"],
"instructions": "哪个团队应该处理这个请求?"
},
"is_urgent": {
"type": "noul",
"instructions": "客户是否在请求紧急处理?"
}
}
# 推理
result = agent.predict(state=state, questions=questions)
print(result["answers"])
返回值保持上游的四位小数舍入,包含 action.act_probability 和 token 用量字段。
4.3 性能调优选项
agent = laya.load(
"./models/laya",
dtype="float32", # 更高数值精度
batch_size=32, # 每次前向的问题上限
compile=True, # 启用 MLX 编译优化(有首次开销)
cache_prompts=True # 前缀缓存(上限 128 问题)
)
batch_size 控制单次前向处理的问题数,超出部分分块处理。compile=True 有首次编译成本,适合稳定负载。cache_prompts=True 复用状态编码,适合同一 state 多问题的场景。
4.4 多语言支持
multi = laya.load("convaiinnovations/laya", subfolder="multilingual")
多语言检查点使用 mmBERT-base 编码器,支持超过 100 种语言,上下文扩展到 1,024 tokens。
但有一个重要警告:Laya 的英文编码器在非拉丁文字上的表现极差。在高棉语上,ModernBERT-large 的准确率是 0.000,但平均置信度高达 0.952——全错,且完全自信。这是为什么必须使用 multilingual 检查点处理非英文输入,也是为什么模型的置信度不能盲目信任。
5. 校准问题:一个比准确率更重要的维度
无论你用 Laya 还是 Jev,有一个事实需要清醒认识:
类型化输出消除了格式错误,但不消除判断错误。
Laya 的文档明确承认这一点:模型可以返回 billing: 0.92,而正确答案是 technical。格式是对的,概率是高的,判断是错的。
校准质量在 Jev 上经过温度拟合(temperature fitting)后显著改善,但官方仍然建议在部署域上重新校准。这意味着:你在公开基准上看到的校准数字,在你自己的数据上可能不成立。
一个实用的生产策略是使用置信度做三档路由:
| 置信度 | 动作 |
|---|---|
| 极高(> 0.9) | 自动处理低风险决策 |
| 中等(0.7-0.9) | 升级到更大模型复核 |
| 低(< 0.7) | 人工审核 |
但这个阈值不能照搬——必须在你的数据上重新测量。
6. Laya 的真实定位:不是 Jev 杀手,是 Jev 的另一种选择
Laya 和 Jev 解决的是同一类问题,但提供了不同的部署契约:
| 维度 | Laya | Jev |
|---|---|---|
| 权重 | 开源(Apache 2.0) | 闭源 |
| 部署 | 本地 / 自托管 | 托管 API |
| 微调 | 可用 | 无公开工作流 |
| 数据路径 | 可完全不出本机 | 请求发送到托管服务 |
| 运维负担 | 用户承担 | 供应商承担 |
选择取决于你的约束条件:
如果你需要数据不出本机——金融、医疗、政企场景——Laya 是当前最实际的选择。APUS 的复现工作也验证了这条路径:在 Apple M2 Pro 上纯离线完成维基百科检索任务,中位耗时约 18 秒,全程零云端调用。
如果你需要最高校准质量且可以接受数据出网,Jev 的托管服务仍然领先。
如果你需要微调——在特定决策边界上达到生产级准确率——Laya 的开放权重是唯一可行的路径。基础 Laya 在零样本下几乎不可用(准确率约 36%),但微调后的专用检查点可以达到 0.766。微调不是可选项,是必需品。
7. 趋势:决策模型正在从“产品”变成“组件”
Jev 发布后的四天内,开源社区出现了至少 7 个复现方案:Laya、SimpleJev、jeff、NanoJev、Kev、Decider-2B、System-One 4B。其中 Laya 的参数规模最大(421M),技术路径最完整。
这个速度本身就是一个信号:决策模型的技术门槛比想象中低。一位有 NLP 背景的开发者在 Hacker News 上评论:“这就是 BERT 加更多数据。我不认为这是突破,很多实验室都能很快复现。”
更准确的说法是:Jev 的产品形态是新的,技术内核并不神秘。双向编码器 + 决策头 + 强化学习校准,这套组合在学术界早有先例。Jev 的贡献在于把它包装成了一个干净的产品接口和清晰的叙事。
对开发者的启示是:
不要再把 LLM 当作万能判断器。对于高频、原子化的分类、路由、评分任务,一个 400M 参数的决策模型可以在毫秒级完成,成本近乎为零,且格式零错误。
“快慢分工”正在成为 Agent 架构的标准模式。昂贵的大模型负责规划、推理、工具调用;轻量决策模型负责每一步的“往哪走”“选哪个”“是否继续”。
微调能力比模型本身更重要。Laya 的开放权重意味着你可以把决策边界“教”给它。通用模型在通用任务上表现平庸,但在你的特定决策面上,一个微调过的 400M 模型可以超过一个未微调的 100B 模型。
Laya 不是终点。它是这条技术路线走向成熟的一个中间态——证明了“决策模型”可以被复现、被本地运行、被微调。接下来值得关注的是:Laya 团队是否会发布更多专用检查点、校准工具链是否完善、以及社区是否会出现类似“决策模型的 Hugging Face”这样的共享平台。