triton-inference-server/python_backend

Triton backend that enables pre-process, post-processing and other logic to be implemented in Python.

何を解決するか

Pythonで書かれた機械学習モデルを、C++コードを書く必要なくTriton Inference Serverで配信できるようにします。これにより、カスタムのPythonベースのモデルロジック用に複雑なC++バックエンドを実装する必要がなくなります。

動作方法

開発者は TritonPythonModel という名前のPythonクラスを作成し、特定のライフサイクルメソッドを実装します。TritonサーバーはこのPythonスクリプトを読み込み、これらのメソッドを呼び出してモデルを管理します:

  • auto_complete_config: 設定ファイルが存在しない場合、モデルの入力、出力、バッチ設定をオプションで定義できます。
  • initialize: モデルの読み込み時に一度だけ実行されるセットアップと状態初期化を処理します。
  • execute: モデルが InferenceRequest オブジェクトのリストを処理し、対応する InferenceResponse オブジェクトのリストを返す、コアロジックです。
  • finalize: モデルのアンロード時にクリーンアップを実行します。
  • is_ready: モデルが健全でリクエストを処理できる状態かどうかを確認します。

対象ユーザー

PyTorch、TensorFlow、JAXなどのフレームワークを使ってPythonベースのモデルを本番環境の推論サーバーにデプロイしたいAIエンジニアやデータサイエンティスト。C++を学ぶ必要はありません。

特徴

  • C++不要: Pythonモデルを直接配信可能。
  • フレームワーク非依存: PyTorch、TensorFlow、JAX、NumPyをサポート。
  • 非同期モード: 異なる方法で応答を返すことが可能(非同期または分離モード)。
  • ビジネスロジックスクリプティング(BLS): Python内で複雑なモデルのチェーン化やオーケストレーションが可能。
  • GPUサポート: DLPackを介してGPUテンソルとの相互運用性を提供。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト