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

Triton Inference Server とは?

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

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

📌 このページのポイント
共通の窓口から、対応するモデルへ Triton Inference Server 共通API HTTP/REST gRPC モデルごとに 要求を管理 設定でバッチ化 実行先:GPU / CPU(条件あり) アプリ1 アプリ2 アプリ3 PyTorch ONNX TensorRT 対応するバックエンドでモデルを実行
矢印はアプリの推論要求を、選んだモデルのバックエンドへ渡す経路。結果は逆に返る。青はアプリ、橙はサーバー内の要求管理、緑はモデル側と実行先。複数モデルを毎回すべて使う意味ではない。バッチ処理は設定による。対応モデル・GPU/CPU・機能はバックエンドとリリースごとに確認する。
ひよこ ひよこ
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の製品を指しているんだ

参考資料

← 用語集にもどる