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:複数ユーザーからの個別リクエストを 1 つのバッチに集約し、推論時のスループットを向上させます。
  • Pipelined Stages:CPU 上の前処理と GPU 上の推論など、マルチステージのワークフローを作成でき、各ステージは別プロセスで実行されハードウェア利用率を最大化します。
  • Flexible Serialization:デフォルトで JSON をサポートし、画像や埋め込みベクトルを効率的に扱うための msgpack などバイナリ形式のミックスインも提供します。

Who it’s for

Kubernetes やその他のコンテナオーケストレーションシステムを使用して、クラウド上でスケーラブルかつ高性能な API として ML モデルをデプロイしたい ML エンジニアやバックエンド開発者向けです。

Highlights

  • Rust-powered core: blazing speed と効率的なリソース管理。
  • Framework-agnostic:任意の ML フレームワーク(PyTorch、JAX など)に対応。
  • Cloud-native:組み込みの Prometheus 監視メトリクス、モデルのウォームアップ、優雅なシャットダウンを提供。
  • High throughput:dynamic batching とマルチプロセスパイプラインにより最適化。