Laya 开源系统 1 决策模型超越 TypeSafe Jev
TL;DR
Laya 是一款开源的双向编码器决策模型,能在 30–35 毫秒内做出反射式预测,提供校准后的概率,支持 100 多种语言,且在延迟方面比 TypeSafe AI 的闭源 Jev 快 7–8 倍,并可免费自托管。
1. 系统 1 与系统 2 —— 为什么快速决策模型很重要
要点: 使用生成式 LLM 进行简单的分类或路由任务是一种浪费;专用的系统 1 模型无需幻觉即可提供即时、校准后的决策。
- 生成式 LLM 每次请求需要 500 毫秒至 2 秒,消耗基于 Token 的 API 费用,并且需要后处理来提取结构化标签。
- LLM 生成的置信度分数是未校准的 Token 预测,而非数学上严谨的概率。
- Laya 实现了类似人类的系统 1:在单个 GPU 上以约 33 毫秒的速度做出反射式决策,并输出真实的概率。
2. 决策原语 —— 核心 API
要点: Laya 暴露了三个确定性原语,仅返回数字,消除了格式错误的 JSON 或幻觉文本的任何可能性。
| 原语 | 用途 | 输出 | 保证 |
|---|---|---|---|
| choice | 从字典中选择一个选项 | selected_key,完整概率分布,校准后的置信度 |
概率之和为 1,置信度反映真实可能性 |
| score | 将输入置于序数准则 (0, 1, 2, …) 上 | 预期水平,等级分布,置信度 | 各等级间具有单调校准 |
| noul | 二元真/假查询 | P(true) 在 [0.0, 1.0] 之间;P(false)=1-P(true) |
精确互补,无矛盾输出 |
由于模型从不输出自由格式文本,因此不可能出现模式违规。
3. 模型检查点与 Hub 架构
要点: Laya 在同一个 Hugging Face 仓库中提供了三个专用检查点,SDK 可以仅下载所需的子文件夹以节省带宽。
| 检查点 | 编码器 | 参数 | 上下文 | 优势 |
|---|---|---|---|---|
convaiinnovations/laya |
ModernBERT-large | 421 M | 512 tokens | 英语分类、护栏、电子邮件分流 |
convaiinnovations/laya-multilingual |
mmBERT-base (256 k vocab) | 322 M | 1024 tokens (最高 8 k) | 100+ 语言,快 2.2 倍,跨语言 NLI |
convaiinnovations/laya-typed-decisions |
ModernBERT-large | 421 M | 1024 tokens | 代理可观测性、发票处理、安全警报 (0.766 acc) |
选择性子文件夹下载 (Python 示例):
import laya
# 仅英语 (≈808 MB)
agent_en = laya.load("convaiinnovations/laya")
# 仅多语言 (≈647 MB)
agent_ml = laya.load("convaiinnovations/laya", subfolder="multilingual")
4. 语言路由 —— 防止静默失败
要点: 置信度分数无法揭示脚本读取失败;路由必须在推理之前进行。
- 在 MASSIVE 基准测试(51 种语言,20 路分类)中,仅英语检查点在高棉语上达到了 0.000 准确率,同时报告了 0.952 的平均置信度。
- 在所有非拉丁脚本中,即使准确率降至随机猜测水平,平均置信度仍保持在 0.885 以上。
- Laya 内置的
Router可在 < 1 毫秒内检查 Unicode 脚本并分发到相应的检查点,无需事后置信度门控。
from laya import Router
router = Router(preload=True)
res_en = router.predict({"body": "I was charged twice, please refund."}, questions)
res_hi = router.predict({"body": "मुझसे दो बार शुल्क लिया गया..."}, questions)
- 路由开销小于总延迟的 2%(拉丁语为 0.09 毫秒,天城体为 0.54 毫秒,大型 JSON 为 0.73 毫秒)。
5. 与 TypeSafe Jev 的正面基准测试
要点: Laya 在准确性、校准和延迟方面始终优于 Jev,且免费开源。
| 指标 | TypeSafe Jev 1.13.0 | Laya (路由) | Δ |
|---|---|---|---|
| 类型化决策 (2 k 决策) | 0.727 | 0.766 | +3.9 % |
| AG News (4 标签) | 0.910 | 0.950 | +4.0 % |
| DAIR Emotion (6 标签) | 0.480 (Brier 0.846) | 0.595 | +11.5 % |
| 预期校准误差 (ECE) | 0.246 | 0.081 | 快 3 倍 |
| P50 延迟,单次查询 | 236–276 毫秒 | 32.8 毫秒 | 快 7.8 倍 |
| P50 延迟,10 次查询批处理 | ~1.5 秒 (串行) | 72.3 毫秒 (7.2 毫秒/q) | 快 20 倍 |
| >3 倍随机准确率的语言 | – (无公开数据) | 45 / 51 | 全球覆盖 |
| 每 1 M Token 成本 | $0.042 (计量 API) | $0.00 (自托管) | 免费 |
| 权重与代码 | 闭源,专有 | Apache 2.0 safetensors | 开源 |
实际工作流结果 (精选):
- 电子邮件垃圾邮件 (Enron) – 0.993 acc, 0.013 ECE
- 网络钓鱼检测 – 0.980 acc, 0.012 ECE
- LLM 护栏 / 越狱检测 – 0.755 acc;在 50% 选择性覆盖下准确率升至 0.931
- RAG 段落相关性 – 单次前向传递中 0.657 acc
- 10 路工单路由 – 0.522 acc
6. 诚实的局限性 —— Laya 的不足之处
要点: Laya 在中小型选择集和微调后表现出色;它不是通用的零样本分类器。
- 选择可扩展性: 超过约 20 个选项时准确率急剧下降(例如,在具有 77 个标签的 Banking77 上为 0.425,而 Jev 为 0.870)。模型的头部每个候选者只能分配约 3-4 个 Token,限制了辨别力。
- 零样本性能: 基础检查点在类型化决策基准测试中得分约为 0.35(接近随机)。报告的 0.766 数据需要在基准测试的训练集上进行微调。
- 温度校准: 原始 Logits 需要针对每种问题类型设置标量温度;应用此操作可将校准误差从 0.466 降低到 0.081。
建议: 将 Laya 用作快速基础模型,然后在特定领域数据上进行微调,并校准温度以供生产使用。
7. 快速入门 —— 30 秒内运行 Laya
要点: 安装 PyPI 包并调用路由器,即可在单次前向传递中获得多模式决策。
pip install laya>=0.3.3
import laya
from laya import Router
router = Router(preload=True)
ticket = {
"ticket_id": "TCK-8821",
"subject": "System downtime and billing dispute",
"body": "Our production API has been failing since 6 AM..."
}
questions = {
"queue": {
"type": "choice",
"instructions": "Which engineering queue owns this ticket?",
"criteria": {
"infrastructure": "server outages, network downtime",
"billing": "refunds, SLA credits",
"security": "breaches, vulnerabilities",
"support": "general inquiries"
}
},
"urgency": {
"type": "score",
"instructions": "How urgent is this ticket?",
"criteria": ["low", "medium", "high", "critical"]
},
"churn_risk": {
"type": "noul",
"instructions": "Does the customer threaten to cancel?"
}
}
res = router.predict(ticket, questions)
print("Model used:", res["routing"]["model"]) # → english
print("Queue:", res["answers"]["queue"]["choice"]) # → infrastructure (confidence 0.96)
print("Urgency score:", res["answers"]["urgency"]["score"]) # → 2.87/3.0
print("Churn risk:", f"{res['answers']['churn_risk']['noul']:.1%}") # → 91.4%
整个过程,包括模型下载(≈800 MB),在单个 GPU 上不到一分钟即可完成。
8. 社区资源
- 模型中心: https://huggingface.co/convaiinnovations/laya
- 在线演示空间: https://huggingface.co/spaces/convaiinnovations/laya-demo
- GitHub 仓库: https://github.com/NandhaKishorM/laya
- PyPI 包: https://pypi.org/project/laya/
- 微调笔记本 (Kaggle 上的 2× T4): https://github.com/NandhaKishorM/laya/blob/main/notebooks/laya_finetune_typed_decisions_2xT4_kaggle.ipynb
9. 社区见解 —— 他人评价
“它比 LLM 快一点,也便宜一点,但本质上它是带有更多数据的 BERT。它的价值在于一个可以同时处理多个问题的一次性分类器。” – @Oras
“Jev 的品牌推广让这个概念走红,但其背后的核心思想——非自回归决策模型——已经存在多年了。像 Laya 这样的开源版本证明了这项技术是可复现的。” – @kamranjon
“路由技巧是必要的,因为即使模型无法读取脚本,置信度分数也会保持很高。预加载模型消除了 7-10 秒的冷启动切换惩罚。” – @sandos
“微调对于获得良好的性能是必需的;基础模型在类型化决策上接近随机。将 Laya 视为快速基础,而不是即插即用的预言机。” – @cjalmeida
“在 CPU 上运行勉强可以;400 M 参数的检查点需要 GPU 才能达到宣传的 35 毫秒以下延迟,但代码兼容 CPU,可进行批大小为 1 的推理,速度约为 200 毫秒。” – @tarruda
结论
Laya 表明,许多高吞吐量的 AI 工作负载不需要大型自回归 LLM。通过将决策制定定义为一个校准的、非生成式的预测问题,Laya 实现了 6–8 倍的低延迟、零幻觉和全面的多语言覆盖——所有这些都在 Apache 2.0 许可下。其代价是需要在领域数据上进行微调,并且对选择集的大小有适度的限制。对于能够托管自己的 GPU 的组织,Laya 提供了一种生产就绪、免费的替代方案,以取代 TypeSafe AI 的 Jev 等专有“系统 1”服务。
Sources
相关
- Dispatch
- 项目
- Dispatch
- Dispatch