40個のモデルのうち5個しか置けないと、要求の64.3%が載せ替えになりました。
20個まで置ければ23.2%です。全部を置かなくても大きく減ります。
置き場を作ることが運用の中心です。そこに並べた数と容量の差が、載せ替えになります。
Triton Inference Serverの運用は、置き場を中心に回ります。公式はTriton Inference Serverの立ち上げと維持は、モデルの置き場を作ることを中心に回ると述べています。
並べた数が容量を超えるとどうなるのか。実際に流して数えました。
置き場に 40 個のモデル(1個 1.6GB)。要求 40,000件
よく使われるモデルに偏らせる。容量を変えて、載せ替えの回数を数える
容量 同時に置ける数 載せ替えの回数 そのままの回数 載せ替えの割合 1件あたりの平均
8 GB 5個 25,737回 14,263回 64.3% 2223 ms
16 GB 10個 18,088回 21,912回 45.2% 1572 ms
32 GB 20個 9,275回 30,725回 23.2% 823 ms
64 GB 40個 40回 39,960回 0.1% 38 ms
5個しか置けないと、64.3%が載せ替えです。1件あたりの平均が2223msになります。
20個まで置ければ23.2%、823msです。容量4倍で、時間は2.7分の1になりました。
40個すべてを置けると、載せ替えは40回だけです。最初の1回ずつで済みます。
1件あたりは38msで、20個のときの21.7分の1です。半分から全部への一歩がいちばん大きく効きました。
この形は複数モデル提供の記事で扱っていて、偏りが強いほど少ない容量で足ります。
容量を増やすほど効くが、全部置けたときの一歩がいちばん大きい。
Launching and maintaining Triton Inference Server revolves around the use of building model repositories.原文NVIDIA 公式ドキュメント「Quickstart」 この内容の有効期限2027-02-18
置き場に入れたものが提供されます。読み込みの時間は、その大きさに比例します。
Triton Inference Serverは、置き場に入れたものを提供します。公式はモデルの置き場とは、Tritonに提供させたいモデルを置くディレクトリであると述べています。
置いたものは読み込まれます。どれだけかかるのか実際に計算して数えました。
重みを読み込む速さを 毎秒 900MB、それ以外の準備を 12秒として計算する
同じものを 6 本立てている場合の、入れ替え中に減る処理力を見る
重み 読み込み 起動まで 1本ずつ入れ替え 半分ずつ入れ替え 全部同時
0.5 GB 0.6秒 12.6秒 75秒 / 減 17% 25秒 / 減 50% 13秒 / 減 100%
2 GB 2.3秒 14.3秒 86秒 / 減 17% 29秒 / 減 50% 14秒 / 減 100%
8 GB 9.1秒 21.1秒 127秒 / 減 17% 42秒 / 減 50% 21秒 / 減 100%
30 GB 34.1秒 46.1秒 277秒 / 減 17% 92秒 / 減 50% 46秒 / 減 100%
0.5GBなら読み込みは0.6秒で、起動までの大半は準備の12秒です。
30GBでは読み込みが34.1秒になり、準備を追い越します。ここから先は大きさが効きます。
置き場に複数を並べると、この時間が並べた数だけかかります。前の節の載せ替えも同じ読み込みです。
だから置き場を作るときの判断は、何を置くかと同時に、いくつ置くかになります。
入れ替えのやり方による違いはモデル切り戻しの記事で扱いました。
The model repository is the directory where you place the models that you want Triton to serve.原文NVIDIA 公式ドキュメント「Quickstart」 この内容の有効期限2027-02-18
GPUを使う形に最適化されています。ただし少ない件数では、呼び出しの固定費が上回ります。
Triton Inference Serverは、GPUで最良になるよう作られています。公式はTritonはGPUを使って最良の推論性能を出すよう最適化されているが、CPUだけの機器でも動くと述べています。
どちらが速いかは件数で変わります。実際に計算して比べました。
同じ処理を2つの機材で行う。まとめて渡す件数を変えて、1件あたりの時間を見る
速い機材: 固定 3.6ms + 1件 0.08ms
普通の機材: 固定 0.2ms + 1件 2.4ms
まとめる件数 速い機材の合計 1件あたり 普通の機材の合計 1件あたり 速いのは
1件 3.7ms 3.680ms 2.6ms 2.600ms 普通の機材
4件 3.9ms 0.980ms 9.8ms 2.450ms 速い機材
16件 4.9ms 0.305ms 38.6ms 2.413ms 速い機材
64件 8.7ms 0.136ms 153.8ms 2.403ms 速い機材
256件 24.1ms 0.094ms 614.6ms 2.401ms 速い機材
1024件 85.5ms 0.084ms 2457.8ms 2.400ms 速い機材
入れ替わるのは 2 件。これより少なければ、普通の機材のほうが速く返せる。
1件だけなら、普通の機材が2.6ms、速い機材が3.7msです。逆転しています。
4件まとめると3.9msと9.8msで、速い機材が上回ります。分かれ目は2件でした。
1024件まとめると、1件あたりは0.084msと2.400msで28.6倍の差になります。
つまり効き方は、まとめて渡せる場面があるかどうかで決まります。1件ずつしか来ない用途では、この差が出ません。
3つの計測はいずれも手元で書いた模型で、実際のTriton Inference Serverを動かしたものではありません。載せ替え3.4秒・処理35ms、固定3.6ms・1件0.08msといった値はすべて置いたものです。使われ方の偏りも順位の逆数に比例する形で作っており、実際の分布とは違います。ここで見せているのは、全部を置けなくても偏りがあれば載せ替えが大きく減るという点と、少ない件数では速い機材の固定費が上回るという点の2つです。
Triton is optimized to provide the best inferencing performance by using GPUs, but it can also work on CPU-only systems.原文NVIDIA 公式ドキュメント「Quickstart」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る