mosecorg/mosec

A high-performance ML model serving framework, offers dynamic batching and CPU/GPU pipelines to fully exploit your compute machine

What it solves

Mosec 是一个高性能的模型服务框架,旨在弥合已训练的机器学习模型与高效在线服务 API 之间的差距。它简化了将模型转化为可投入生产的微服务的过程,同时针对云部署和高吞吐量进行优化。

How it works

它采用混合架构,Web 层和任务协调使用 Rust 实现,以异步 I/O 提供高速和高效的 CPU 利用率,而用户界面保持在 Python 中,以提升易用性。框架允许用户将服务定义为继承自 mosec.Worker 的 Python 类,并实现 forward 方法来编写模型逻辑。

关键技术机制包括:

  • Dynamic Batching:将多个用户的单个请求聚合成一个批次进行推理,以提升吞吐量。
  • Pipelined Stages:允许创建多阶段工作流(例如 CPU 上的预处理和 GPU 上的推理),每个阶段在独立的进程中运行,以最大化硬件利用率。
  • Flexible Serialization:默认支持 JSON,也提供如 msgpack 等二进制格式的 mixin,以更高效处理图像或嵌入向量。

Who it’s for

需要在云端将机器学习模型部署为可扩展、高性能 API 的 ML 工程师和后端开发者,尤其是使用 Kubernetes 或其他容器编排系统的用户。

Highlights

  • Rust-powered core: blazing speed 与高效资源管理。
  • Framework-agnostic:支持任何机器学习框架(PyTorch、JAX 等)。
  • Cloud-native:内置 Prometheus 监控指标、模型预热与优雅关闭。
  • High throughput:通过 dynamic batching 与多进程 pipeline 进行优化。