対応する公開AIモデルのチェックポイントから実行用バンドルを作り、C++アプリケーションでTensorRT推論を動かす経路が用意された。構築にはPythonを使うが、配備先の実行時にはPyTorchもPythonインタープリターも必要としない。
モデル固有の処理を参照実装へまとめる
NVIDIAが公開したTensorRT Model Connectは、対応する公開AIモデルをネイティブC++アプリケーションで実行するための参照実装群だ。チェックポイントと実装の対応付けを担い、モデルごとに必要な前処理と後処理も扱う。
これらの処理はTensorRTエンジンの構築や実行制御につながる。モデルごとの統合作業を参照実装に収めることで、アプリケーションは構築済みのモデルを読み込むところから始められる。
チェックポイントを実行用バンドルに変える
対応モデルの構築では、Hugging FaceのモデルIDまたはローカルのチェックポイントをPythonのCLIに渡す。生成されるバンドルには、TensorRTエンジンと実行時に必要なモデル固有の資産が入る。
C++アプリケーションはそのバンドルを読み込み、タスク単位の入力を渡して推論結果を受け取る。Pythonを使う構築段階と配備先での実行段階が分かれているため、実行時にPyTorchやPythonインタープリターは必要ない。
二つのC++ APIで入力と制御の粒度を選ぶ
semantic APIでは、プロンプト、画像、音声などをタスク単位の入出力として扱う。モデル固有の前処理、実行、後処理はModel Connect側が引き受ける。
推論パイプラインを細かく調整する場合は、module-level APIから名前付きテンソルや個々のTensorRTコンポーネントを直接扱える。二つのAPIは同じ実装を利用するため、タスク単位の呼び出しから部品単位の制御へ移れる。
カスタムGPUカーネルを一部分に組み込む
既存の推論経路に独自のGPU処理を加える場合、TVM FFIを介してモデルの対象部分をカスタムGPUカーネルに置き換えられる。TVM FFIは、呼び出す側とカーネルの実装環境を密接に結び付けずに処理を呼び出すためのインターフェースだ。
置き換えた部分以外の推論パイプラインはTensorRTが引き続き実行する。カスタム処理を局所的に組み込みながら、バンドルからC++アプリケーションへ渡す実行経路を利用できる。