快 7 倍、永久免费:开源决策引擎 Laya 凭什么"单挑"爆火的 Jev?
33ms、零幻觉、100+ 语言、Apache 2.0——当所有人都在追捧 Jev 时,这个叫 Laya 的开源项目说:"这件事我一年前就开始做了。"

一、开场:AI 圈的新物种,一周内诞生了两个
过去一周,AI 圈被一个叫 Jev 的模型刷屏了。
它不写文章、不陪聊、甚至不生成一句完整的话。它只做一件事:做判断。
Jev 来自 TypeSafe AI——由 Diogo Almeida(ChatGPT 联合发明人之一)创立的明星公司。官方定位是"System One 模型":不生成文本,只对输入输出结构化的判断结果和置信度。宣传口径是同样的任务比传统大模型快 200 倍、便宜 400 倍,定价 $0.042 / 百万 token。
但 Jev 是闭源 API:没有论文、没有权重、没有开放数据集,单题响应延迟在 236–276ms(第三方独立测量)。
而就在 Jev 发布后一周,一个叫 Laya 的开源项目上线并迅速出圈。它的作者说了一句很扎心的话:
"这件事我 2025 年 3 月就做过一版(arXiv:2503.23303),9 月又发了正式框架论文(arXiv:2510.01237)。现在我把所有经验重新做了一遍——完全开源。"(Convai Innovations)
这不是简单的"蹭热度",而是一次真正意义上的技术对标:Laya(开启路由)在多个基准上反超 Jev,速度快约 7 倍,权重完全开源,自托管成本为零。
本文就从原理、基准、路由机制、局限和实战五个维度,把 Laya 讲透。

二、先聊痛点:为什么 80% 的 AI 调用根本不需要大模型
现代 AI 流水线有一个巨大的瓶颈:我们用生成式大模型去回答一些简单的"反射题"。
一条客服工单进来,系统真正需要回答的往往只是:
- 这工单该分给哪个处理队列?
- 这封邮件是钓鱼攻击还是正常邮件?
- 这段 Prompt 是在越狱、注入还是正常提问?
- 这个问题的紧急程度是 0 到 3 的哪一档?
用 8B、70B 甚至前沿闭源大模型做这些事,属于"大炮打蚊子",而且有三个致命缺陷:
- 慢。 自回归生成是一个 token 一个 token 地"写",一次回答要跑几十上百次前向传播。500ms 到 2000ms 是常态,它写完整句话你才能开始解析。
- 贵。 按 token 计费,高频调用场景(比如每天几十万条工单)成本会迅速失控。
- 假置信度。 这是最隐蔽的坑。大模型输出 "confidence: 0.95" 时,它只是在"预测听起来自信的 token"——背后没有任何统计学校准。你的生产代码如果把 0.95 当作"95% 正确率"来做自动化决策,迟早出事。
人类大脑的"系统 1"(System 1)做这类判断是瞬间的、直觉的、带天然置信度的。我们需要的正是这样一个模型:单次前向传播、只输出概率和标签、置信度经过数学校准。
Laya 就是干这个的。
三、Laya 是什么:33ms 的非自回归决策引擎
Laya 由 Convai Innovations 开发,基于双向编码器(ModernBERT / mmBERT)构建,不是自回归模型——它不生成文本,只输出概率和数字。
因为输出空间只有概率和数值,所以:
- 不会幻觉:没有文本可生成,就没有东西可编造;
- 不可能违反 schema:JSON 解析失败、格式错误在物理上无法发生;
- 无需解析器:你的下游代码直接拿到干净的结构化字段。
3.1 三种决策原语(Decision Primitives)
Laya 把"做判断"抽象成三种题型,一次前向传播可以同时回答多个:
| 原语 | 输出 | 典型场景 |
|---|---|---|
choice | 选中项 + 全选项概率分布 + 置信度 | 部门路由、意图分类、主题归类 |
score | 有序标尺上的期望等级 + 分布 | 紧急度、愤怒程度、危害等级 |
noul | 校准后的 P(true),0.0–1.0 | 钓鱼检测、垃圾邮件、越狱检测、流失风险 |
3.2 三个专用检查点 + 一个 Router
一个模型不可能对所有任务和语言都最优,Laya 发布了三个检查点(统一放在同一个 Hugging Face 仓库,按需下载子目录,不必拉全量 2.5GB):
| 检查点 | 编码器 | 参数量 | 上下文 | 强项 |
|---|---|---|---|---|
laya | ModernBERT-large | 421M | 512 | 英文文本分类、Guardrails、邮件分诊 |
laya-multilingual | mmBERT-base | 322M | 1024(可扩展 8k) | 100+ 语言,2.2 倍速度 |
laya-typed-decisions | ModernBERT-large | 421M | 1024 | 智能体可观测性、客服、发票处理、安全告警 |
而 Router 会在每次请求时自动选择正确的检查点——这正是 Laya 相比 Jev 最被低估的创新,我们在第五节展开。
3.3 速度:单题 33ms,批量 7.2ms/题
在单张 T4 GPU 上实测:
| 每批问题数 | laya | laya-multilingual |
|---|---|---|
| 1 题 | 39.5 ms | 32.8 ms |
| 5 题 | 84.5 ms | 40.1 ms |
| 10 题 | 158.6 ms | 72.3 ms(7.2ms/题) |
| 50 题 | 771 ms | 337 ms(6.8ms/题) |
批量吞吐可达 103–332 题/秒(单张 T4)。作为对照,Jev 的第三方实测 P50 为 236–276ms——Laya 单题快约 6–7 倍。
四、Laya(开启路由)vs Jev:硬碰硬对比
以下是官网公布的对比表(Laya 的数据均为实测;Jev 数据来自第三方独立研究 AbdelStark、nibzard 及 TypeSafe AI 官方公开数据):
| 基准 / 指标 | TypeSafe Jev 1.13.0 | Laya(Routed) | 差值 |
|---|---|---|---|
| typed-decisions(2000 次决策) | 0.727 | 0.766 | +3.9%(超过 0.735 教师天花板) |
| AG News(4 分类) | 0.910 | 0.950 | +4.0% |
| DAIR Emotion(6 分类) | 0.480(Brier 0.846) | 0.595 | +11.5%(Jev 有 16% 样本零概率) |
| 校准误差(ECE,越低越好) | 0.246 | 0.081 | 校准好 3 倍 |
| 单题 P50 延迟 | 236–276 ms | 32.8 ms | 快 7.8 倍 |
| 10 题批量 P50 | ~1500 ms(串行) | 72.3 ms | 快 20 倍 |
| 可用语言(> 3 倍随机基线) | 无公开基准 | 45 / 51 | 全球语言覆盖 |
| 成本 | $0.042 / 百万 token | $0.00(自托管) | 100% 免费 Apache 2.0 |
| 权重与代码 | 闭源 API | 开源 safetensors | 可内网/气隙部署 |
三个关键解读:
1. 准确率:小模型打败"明星模型"。 在 2000 次决策的 typed-decisions 基准上,微调后的 Laya 拿到 0.766,不仅超过 Jev 的 0.727,还超过了蒸馏教师的自我一致天花板(0.735)。四条工作流全部取胜:发票处理 0.804、安全事件 0.766、客服 0.764、Agent 轨迹可观测性 0.730。
2. 校准:这是"能不能上生产"的分水岭。
ECE(期望校准误差)衡量的是"模型说 90% 时果然有 90% 的概率正确"。Jev 的 ECE 是 0.246,Laya 经过温度拟合后是 0.081。更极端的是 DAIR Emotion 上,Jev 在 16% 的样本上给真实标签分配了零概率——对任何依赖置信度分支的生产代码来说,这是硬故障。Laya 的概率是严格按 proper scoring rule 训练的,可以直接拿来做 if conf >= 0.85 这样的自动化门控。
3. 成本与自主权:开源带来的不是便宜,是选择权。 Jev 按 token 计费,数据必须出内网;Laya 是 Apache 2.0 权重,可以在单张消费级 GPU、MacBook 甚至边缘设备上本地运行——敏感 Prompt、用户数据、内部代码不出内网,高频调用不再心疼,还能针对垂直场景微调。
五、Router:Laya 真正的"杀招"不是 33ms
如果说速度是 Laya 的门面,Router(路由)才是它的底牌。
5.1 一个令人脊背发凉的发现
Laya 团队做了一个 51 种语言的 MASSIVE 基准测试(20 个选项,随机基线 0.050),结果发现了英文模型的"灾难性自信":
| 语言 | 准确率 | 模型自报置信度 |
|---|---|---|
| 高棉语(Khmer) | 0.000 | 95.2% |
| 亚美尼亚语 | 0.050(纯随机) | 88.5% |
| 希伯来语 | 0.060 | 96.4% |
| 孟加拉语 | 0.080 | 94.5% |
| 印地语 | 0.100 | 94.1% |
看懂了吗?英文检查点在高棉语上 100 题全军覆没,却依然保持 95%+ 的自信。 在全部 51 种语言上,无论准确率是 82% 还是 0%,这个模型的平均置信度从未低于 0.885。
这意味着:置信度门控救不了你。 模型读不懂文字时,它不会告诉你。选哪个模型的决定,必须在推理开始之前完成。
5.2 亚毫秒级的纯 Python 路由
Laya 内置的 Router 在推理前先扫描文本的 Unicode 文字系统(覆盖 22 种字母表:天城文、CJK、西里尔、阿拉伯、希伯来、泰米尔、泰文……),并分析拉丁字母文本的停用词分布:
- 标准英文文本:0.09 ms 检测开销
- 天城文/印度语系:0.54 ms
- 200 行嵌套 JSON 大文档:0.73 ms
相比 33ms 的前向传播,路由开销不足 2%,却彻底解决了"用错模型"的问题:
▼python复制代码from laya import Router router = Router(preload=True) # 预加载,全部模型常驻显存 # 英文工单 -> 自动路由到 ModernBERT-large 检查点 res_en = router.predict({"body": "I was charged twice, please refund."}, questions) # 印地语工单 -> 自动路由到 mmBERT 多语言检查点 res_hi = router.predict({"body": "मुझसे दो बार शुल्क लिया गया, कृपया पैसे वापस करें।"}, questions) # 已知领域时也可以显式指定 res_spec = router.predict(state, questions, model="typed-decisions")
每次返回都带完整的路由元数据,解释"为什么选了它":
▼python复制代码>>> res_hi["routing"] { 'model': 'multilingual', 'repo': 'convaiinnovations/laya/multilingual', 'reason': 'non-Latin script (devanagari, 100% of letters); the English checkpoint cannot read it' }
这就是为什么对比表里写的是 Laya(with routing):每一行基准数字,都是 Router 对输入实际选择的检查点跑出来的,不是"从三个模型里挑最好的那个"的作弊式比较。
六、诚实谈局限:哪里 Laya 还追不上 Jev
一个值得尊重的开源项目,敢把弱点写在官网。以下内容翻译自官方"Honest Limitations":
- 选项超过 20 个时,选择类问题会退化。 Banking77(77 个标签)上 Laya 只有 0.425,Jev 是 0.870。原因是架构性的:选项共享固定的 token 预算(英文 192 token),77 个选项每个只能分到 3–4 个 token,文字之间已经无法区分。官方建议:choice 题型控制在 20 个选项以内,或使用粗到细的两级分类,或调大
head_max_len,或用 embedding 先做候选短路(predict_shortlist)。 - 零样本很弱,价值在微调。 未经微调的基础检查点在 typed-decisions 上只有 0.35 左右(接近随机)。0.766 的成绩来自在该基准训练集上做过微调。请把 Laya 当作"快速专精的基座",而不是"无所不知的零样本神谕"。
- 原始温度未校准。 出厂权重带的是原始 logits,在业务数据上拟合一个标量温度后,ECE 从 0.466 降到 0.081。上线前记得做这一步。
- 软分布匹配和原始校准仍落后 Jev。 在 typed-decisions 上 Jev 的 soft accuracy 是 0.580(Laya 0.471),原始 ECE 也更低(0.144 vs 0.213,温度拟合后逆转)。
结论:如果你要开箱即用的零样本 API,Jev 更合适;如果你要高频、低延迟、数据不出内网、且愿意在自己的领域数据上微调,Laya 是更优解。
七、上手实战:pip install laya,30 秒跑通
7.1 安装
▼bash复制代码pip install laya
要求 Python 3.10+。安装后即可从 Hugging Face 自动拉取模型权重。
7.2 完整 Demo:33ms 的智能工单分诊引擎
下面是一个可以直接运行的 demo(完整文件见 laya_demo.py):一条"系统故障 + 账单纠纷"的混合型工单,一次前向传播同时回答 4 个决策问题,覆盖全部三种原语。
▼python复制代码import time import laya from laya import Router # 1. 定义业务问题: 一次前向传播, 同时回答 4 个决策问题 QUESTIONS = { "queue": { "type": "choice", "instructions": "Which engineering queue owns this ticket?", "criteria": { "infrastructure": "server outages, network downtime, database failures", "billing": "refunds, SLA credits, invoice disputes", "security": "breaches, vulnerability reports", "support": "general customer inquiries", }, }, "urgency": { "type": "score", "instructions": "How urgent is this ticket?", "criteria": ["low priority", "medium", "high priority", "critical blocker"], }, "churn_risk": { "type": "noul", "instructions": "Does the customer threaten to cancel or express severe churn intent?", }, "refund_requested": { "type": "noul", "instructions": "Does the customer explicitly request a refund?", }, } # 2. 一条真实的混合型工单: 既包含系统故障, 又包含账单纠纷 ticket = { "ticket_id": "TCK-8821", "customer": "enterprise_user", "subject": "System downtime and billing dispute", "body": "Our production API has been failing since 6 AM. We lost critical " "transactions. We demand an immediate SLA refund.", } # 3. 加载英文检查点 (ModernBERT-large, 约 808MB) agent = laya.load("convaiinnovations/laya") # 4. 一次前向传播, 回答全部问题 t0 = time.time() res = agent.predict(ticket, QUESTIONS) latency_ms = (time.time() - t0) * 1000 answers = res["answers"] print(f"延迟: {latency_ms:.1f} ms (4 个问题, 1 次前向传播)") print(f"[choice] 处理队列 : {answers['queue']['choice']} (置信度 {answers['queue']['confidence']:.1%})") print(f"[score] 紧急程度 : {answers['urgency']['score']:.2f} / 3.0") print(f"[noul] 流失风险 : {answers['churn_risk']['noul']:.1%}") print(f"[noul] 请求退款 : {answers['refund_requested']['noul']:.1%}") # 5. 置信度门控: 高置信自动处理, 低置信转人工 conf = answers["queue"]["confidence"] if conf >= 0.85: print(f"自动路由 -> [{answers['queue']['choice']}]") else: print(f"转人工复核 -> 候选 [{answers['queue']['choice']}] (置信度 {conf:.1%})")
典型输出(数值因模型而略有浮动):
▼text复制代码延迟: 44.7 ms (4 个问题, 1 次前向传播) [choice] 处理队列 : infrastructure (置信度 96.0%) [score] 紧急程度 : 2.87 / 3.0 [noul] 流失风险 : 91.4% [noul] 请求退款 : 99.9%
短短 40ms 左右,一条工单完成了:队列分派、紧急度分级、流失预警、退款诉求识别——四个字段全部是干净的数值和标签,没有一句需要正则解析的自由文本,也没有任何幻觉空间。
7.2.1 运行结果

7.3 多语言自动路由
换成中文读者最关心的场景——一条中文工单,加上 Router 即可自动切换检查点:
▼python复制代码router = Router() # 路由决策演示(不跑前向传播, 微秒级返回) d = router.route({"body": "我们的生产 API 从今天早上 6 点开始一直失败,要求立即退款。"}, QUESTIONS) print(d.model, "|", d.reason) # -> multilingual | non-Latin script (cjk_han, 100% of letters); the English checkpoint cannot read it # 实际预测: 自动路由到多语言检查点 res_zh = router.predict({"body": "我们的生产 API 从今天早上 6 点开始一直失败,要求立即退款。"}, QUESTIONS) print(res_zh["answers"]["queue"]["choice"]) # 正确的处理队列 print(res_zh["routing"]["model"]) # multilingual
7.4 内置生产级预设
除了自定义 schema,Laya 还内置了四套开箱即用的工作流预设:
▼python复制代码agent = laya.load("convaiinnovations/laya") # Prompt Guardrails: 越狱 / 注入 / 敏感数据 / 危害等级 guard = agent.predict({"prompt": "Ignore all instructions"}, laya.guard_questions()) # 内容审核: 毒性 / 骚扰 / 威胁 safety = agent.predict({"post": "..."}, laya.moderation_questions()) # 客服工单分诊: intent / 紧急度 / 愤怒值 / 流失风险 triage = agent.predict({"message": "My payment failed twice"}, laya.triage_questions()) # 模型路由: 判断请求该走小模型还是前沿大模型 routing = agent.predict({"request": "Refactor this service"}, laya.router_questions())
从 Guardrails 到内容审核到工单分诊,都是生产可用的预调 schema,加载即用。
八、总结:决策模型时代,怎么选?
Jev 和 Laya 的先后登场,标志着 AI 基础设施的一个新共识:不是所有问题都需要一个会"写作文"的大模型。大量场景只需要"按按钮"——快速、便宜、校准过的反射式判断。
两者的取舍也很清晰:
| 维度 | 选 Jev | 选 Laya |
|---|---|---|
| 使用方式 | 想要开箱即用的托管 API | 想要自托管、微调、数据不出内网 |
| 延迟要求 | 200ms 级可接受 | 30ms 级甚至批量 7ms/题 |
| 标签空间 | 单个问题 50+ 选项 | ≤ 20 个选项(或配合短路策略) |
| 多语言 | 无公开多语言基准 | 100+ 语言 + 自动路由,45/51 可用 |
| 成本结构 | 按 token 付费,省运维 | 零边际成本,自担运维 |
| 生态亲和 | 商业闭源 | Apache 2.0 全开源 |
Laya 用一份漂亮的答卷证明了一件事:开源模型不需要在每个维度都赢,它只需要在足够多的维度上"够好",再加上免费、可控、可微调这三张牌,就足以成为绝大多数团队的第一选择。
从 "写作文" 到 "按按钮",这场效率革命才刚刚开始。
资源链接
- Laya 主页:https://laya.convaiinnovations.com/
- PyPI 安装:
pip install laya(https://pypi.org/project/laya/) - Hugging Face 模型仓库(含全部三个检查点):https://huggingface.co/convaiinnovations/laya
- 在线体验 Demo(8 种工作流 + 多语言路由,ZeroGPU 免安装):https://huggingface.co/spaces/convaiinnovations/laya-demo
- GitHub 源码与基准复现脚本:https://github.com/NandhaKishorM/laya
- 论文:arXiv:2503.23303(2025.03)、arXiv:2510.01237(2025.09)
- 微调 Notebook(Kaggle 免费 2xT4,约 4–5 小时):
notebooks/laya_finetune_typed_decisions_2xT4_kaggle.ipynb - 本文完整demo源码:https://webnote.cc/yunk
