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 とマルチプロセスパイプラインにより最適化。