【トライトンインファレンスサーバー】

Triton Inference Server とは?

最終更新:
💡 複数のモデルを、共通の窓口から呼び出す推論サーバー

NVIDIAのオープンソースの推論提供ソフトウェア。学習済みモデルをバックエンドで実行し、HTTP/RESTやgRPCなどで受けた要求へ結果を返す。対応するモデル形式やGPU・CPU環境を確認して利用する。

📌 このページのポイント
共通の窓口から、対応するモデルへ アプリ1アプリ2アプリ3Triton:共通APIHTTP/REST・gRPCなどPyTorchONNXTensorRT実行先:GPU/CPU(条件あり)対応するバックエンドでモデルを実行
Tritonは推論を提供するソフトウェアです。矢印は要求を渡す経路で、結果は戻ります。毎回すべてのモデルを使う意味ではありません。モデルごとのバッチ設定や実行環境を確認します。
ひよこ ひよこ
Triton Inference Serverって、AIモデルを動かすための専用サーバーなの?
ペンギン先生 ペンギン先生
学習済みモデルへ入力を渡し、推論結果を返すためのソフトウェアだよ。NVIDIAのオープンソースの製品で、専用の物理サーバーそのものという意味ではない。対応バックエンドやモデル設定を用意して使うんだ。
ひよこ ひよこ
普通のWebサーバーじゃダメなの?
ペンギン先生 ペンギン先生
Webアプリでモデルを呼ぶ構成も作れるよ。Tritonは推論のスケジュール、バッチ処理、複数モデルの実行などを管理する仕組みを提供する。PyTorch、ONNX、TensorRTなどのバックエンドがあるけど、対応形式・演算・実行環境はリリースやバックエンドによるんだ。
ひよこ ひよこ
「動的バッチング」って何なの?
ペンギン先生 ペンギン先生
同じモデルへの複数の要求をまとめる機能だよ。状態を持たないモデル向けに設定し、まとめるための最大待ち時間などを選ぶ。待たずに送る設定もあるし、いつもまとめれば最速になるわけではない。処理量と応答の待ち時間を測って調整するんだ。
ひよこ ひよこ
モデルアンサンブルって機能も聞いたけど、それはどういう意味なの?
ペンギン先生 ペンギン先生
Tritonのensembleは、モデル間の入力と出力のデータの流れを定義する仕組みだよ。たとえば前処理→推論→後処理を一つの入口で呼び出せる。モデルの予測を平均して精度を上げることだけを指す言葉ではなく、各段階の入力や出力を対応づける必要があるんだ。
ひよこ ひよこ
利用するときは何を確かめるの?
ペンギン先生 ペンギン先生
モデル形式、演算、入出力、バックエンドとGPU・CPU環境の対応を確認しよう。GPUが必須とは限らないけど、すべてのバックエンドがすべての環境で動くわけでもない。要求の量、処理時間、メモリなどを測ることが大切。Kubernetesへ組み込む機能もあるが、サーバーを増やすだけで性能が比例する保証はないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Triton Inference Server」って出てきたら「複数のモデルの推論を共通のAPIで提供するサーバー」と思えばだいたいOK!
📖 おまけ:英語の意味
「Triton Inference Server」 = トライトン推論サーバー
💬 Inferenceは推論、Serverは要求を受けて結果を提供する側のソフトウェアだよ。ここではNVIDIAの製品を指しているんだ

参考資料

← 用語集にもどる