Laya:一个开源的系统1决策引擎
Laya 是一个非自回归决策引擎,旨在用简单的、结构化的反射决策替代生成式大语言模型(LLM)。通过使用双向编码器而非自回归的标记生成,Laya 在单个 GPU 上大约只需 32.8 毫秒即可对结构化模式输出校准的概率预测,相比生成式替代方案显著更快且成本更低。
AI 决策的系统1方法
现代 AI 流水线常常面临瓶颈:使用大型生成式 LLM(系统2)来处理仅需反射式响应(系统1)的任务。诸如工单路由、垃圾邮件检测和越狱识别等任务并不需要文本生成,而只需要特定的标签或概率。
使用生成式 LLM 来完成这些任务会引入多种低效问题:
- 延迟:需等待标记流式输出(500ms 到 2,000ms)。
- 成本:80 亿参数以上的模型推理成本高昂。
- 可靠性:需要使用正则表达式或 JSON 解析器从自由文本中提取标签。
- 校准性:LLM 常常会虚构置信度分数(例如输出 "confidence: 0.95",但缺乏数学依据)。
Laya 通过单次前向传播提供即时且校准的概率,彻底消除了幻觉或格式错误的 JSON 输出的可能性。
决策原语与架构
Laya 使用三种核心原语,对任意状态(文本、邮件或 JSON)进行类型化问题的评估:
- Choice:从一组标准字典中选择一个选项,返回所选键、概率分布以及校准后的置信度分数。
- Score:将状态置于有序量表上(例如 0 到 3),返回预期等级和分布。
- Noul:一个布尔问题,返回校准后的概率 $P(\text{true})$,范围为 0.0 到 1.0。
模型检查点
Laya 通过 Hugging Face 上的捆绑仓库分发,提供三个专用检查点:
| 检查点 | 主干编码器 | 参数量 | 上下文长度 | 主要优势 |
|---|---|---|---|---|
laya |
ModernBERT-large | 421M | 512 | 英文分类、护栏机制、邮件分类 |
laya-multilingual |
mmBERT-base | 322M | 1024 | 支持 100+ 种语言、跨语言自然语言推理 |
laya-typed-decisions |
ModernBERT-large | 421M | 1024 | 代理可观测性、发票处理、安全警报 |
多语言路由与脚本检测
Laya 开发过程中的一个关键发现是:以英语为中心的模型即使无法读取输入脚本(例如在高棉文文本上报告 95% 置信度,但准确率为 0%),仍会报告高置信度。由于对不支持脚本的置信度门控不可靠,Laya 实现了一个亚毫秒级的纯 Python Router。
该路由器通过检查 22 种字母表的 Unicode 脚本,并分析拉丁语停用词分布,可在前向传播之前将流量路由到合适的模型。检测开销可忽略不计,通常在 0.09ms(英文)到 0.73ms(大型 JSON 文档)之间。
性能对比:Laya 与 TypeSafe Jev
Laya 被定位为 TypeSafe Jev 的开源替代方案。基准测试表明其在速度和成本方面具有显著优势,尽管在零样本能力上存在一些权衡。
| 指标 | TypeSafe Jev 1.13.0 | Laya(已路由) | 差异 |
|---|---|---|---|
| 延迟 P50(1 个问题) | 236–276 ms | 32.8 ms | 快 7.8 倍 |
| 延迟 P50(10 个问题批量) | ~1,500 ms | 72.3 ms | 快 20 倍 |
| 校准误差(ECE) | 0.246 | 0.081 | 校准性提升 3 倍 |
| 每百万 token 成本 | $0.042 | $0.00 | 免费(Apache 2.0) |
| 权重与代码 | 封闭 API | 开源 | 可自托管 |
工程限制与要求
Laya 是一个用于专业化的基础模型,而非无所不知的零样本预言机。用户应了解以下限制:
- 微调必要性:开箱即用的基础模型在特定基准测试(如
typed-decisions)上得分可能接近随机(~0.35)。高准确率(0.766)需通过在训练集上微调实现。 - 选择预算:当选择模式超过 20 个选项时,性能会因头部长度的 token 预算限制而下降。
- 上下文窗口:检查点限制在 512–1024 个 token,远小于 Jev 报告的 32k 上下文窗口。
- 温度校准:为将预期校准误差从 0.466 降低至 0.081,应为每种问题类型拟合一个标量温度以匹配领域分布。
社区见解与反方观点
技术用户之间的讨论凸显了“模型”与“产品”之间的分歧。虽然 Laya 提供了权重和架构,但批评者认为 Jev 的价值在于其零样本性能以及通过 API 实现的部署便捷性。
"Jev 成功的关键在于它无需微调即可工作……能够在几分钟内解决任意分类问题,而不是需要一周时间,这意义重大。"
其他用户指出,Laya 的方法本质上是回归到‘传统机器学习’,即利用 BERT 风格架构并结合更新的训练方法(RLCD)来比生成式 LLM 更高效地解决分类任务。
快速入门实现
Laya 可通过 pip 安装(pip install laya>=0.3.3),并配合 Router 处理多模式决策:
from laya import Router
router = Router(preload=True)
questions = {
"queue": {
"type": "choice",
"instructions": "哪个工程队负责这个工单?",
"criteria": {
"infrastructure": "服务器宕机、网络中断",
"billing": "退款、SLA 信用"
}
},
"urgency": {
"type": "score",
"instructions": "这个工单有多紧急?",
"criteria": ["低", "中", "高", "严重"]
}
}
res = router.predict({"body": "API 已宕机!"}, questions)
Sources
相关
- Dispatch
- 项目
- Dispatch
- Dispatch
- Dispatch