上游

Laya Python / PyTorch

上游参考实现和 Router。适合作为 canonical API、checkpoint、微调和跨平台推理的起点。

参考实现Python 服务CUDA / CPU微调
快速开始
pip install laya
Source
NandhaKishorM/laya

热/冷启动、batch 与线程配置都会明显影响延迟。

环境要求

  • Python 3.10 或更高版本。这个下限来自依赖:huggingface_hub 1.x、transformers 5.x 和 torch 2.14。
  • PyTorch 支持 CPU、NVIDIA CUDA、Apple MPS 和 Intel XPU。如果需要纯 CPU 或特定 CUDA 版本,先装好对应的 PyTorch。
  • 磁盘:英文 checkpoint 约 808 MB,多语言 checkpoint 约 647 MB,只下载你用到的那个。

建议装在虚拟环境里,并在不加载模型的情况下先验证安装:

python3 -m venv .venv
.venv/bin/python -m pip install laya
.venv/bin/python -I -c "import laya; print(laya.__version__)"

两种调用方式

Router(推荐):在一毫秒内识别每个 state 的文字和语言,自动交给合适的 checkpoint。中文会被送到多语言 checkpoint。

from laya import Router

router = Router(preload=True)            # checkpoint 常驻内存
result = router.predict(state, questions)
print(result["routing"])                 # 由哪个 checkpoint 回答、为什么

单个 checkpoint:适合专用流水线:

import laya

agent = laya.load("convaiinnovations/laya")                              # 英文
agent_ml = laya.load("convaiinnovations/laya", subfolder="multilingual")  # 100+ 语言
result = agent.predict(state, questions)

实测速度(上游,Tesla T4)

每次调用的问题数layalaya-multilingual
139.5 ms32.8 ms
10158.6 ms72.3 ms
50771 ms337 ms

在 CPU 上使用 Router(preload=True) 时,上游报告每次请求 193–464 ms。

生产环境要注意的设置

  • 服务端要预加载。 Router() 默认常驻两个 checkpoint;max_loaded=1 会在每次语言切换时重新加载(CPU 上中位数 7.4 秒)。
  • 能批量就批量。 agent.predict_batch(states, questions) 共享前向计算。上游在 GPU 上测得每个决策从约 10 ms 降到约 1 ms;CPU 上单纯加大 batch 未必更快,sort_by_length=True 可以减少 padding。
  • 可选加速: laya.load(..., fast=True)(TileLang GPU 路径)、Agent(compile=True)(torch.compile),以及基于 ONNX Runtime 的 ONNXAgent。
  • 基于 schema 的调用: agent.decide(state, schema=...) 接受 JSON schema 或 pydantic 模型(0.3.12 起)。
  • 钩子(hooks): 在 Agent、Router、ONNXAgent 上做审计日志、敏感信息脱敏、缓存和监控。
  • 如果 laya.load() 卡住,可能是装了 TensorFlow,用 USE_TF=0 运行。

这个运行时适合谁

它是参考实现:本站其他运行时都是对它的移植或封装,而且微调只能在这里做。除非你明确需要 Node.js、MLX 或独立的 HTTP 服务,否则从这里开始。想通过 HTTP 调用,见 自托管 Laya。

来源:NandhaKishorM/laya · Apache 2.0。

最后对照项目 README 核实:2026 年 9 月 24 日。