Triton Inference Server 2021 年 11 月のリリース概要

Kazuhiro Yamasaki
NVIDIA Japan
Published in
5 min readJan 27, 2022

みなさま、こんにちは。NVIDIA の山崎です。毎月恒例となってきました、Triton Inference Server のリリース内容について、共有させてください。例によって、そもそも「Triton Inference Server って何?」という方は、以下の記事などをご確認ください。

What’s New in 2.16.0 (NGC 21.11)

リリース ノート本体は https://github.com/triton-inference-server/server/releases/tag/v2.16.0 です。今月のリリースには以下の機能や改善などが含まれています。

今月は小粒なアップデートという感じですが、Jetson 向けのサンプルでは、Jetson 上で Triton Inference Server をみなさんのアプリケーションに「組み込んで」使う方法が記述されていますし、AWS ユーザの方は Inferentia サポートに興味をお持ちいただけるかもしれません。なお今回のリリースで検証された Inferentia サポートは、Python バックエンドを用いて実施されています。

What’s New に言及されていないアップデート

今月は 2 つの小規模アップデートです。

  • Vertex AI との連携に向けた機能が追加されました
  • Sequence batcher 利用時に、中間状態の管理が暗黙的に行えるようになりました

すでに Amazon SageMaker とは連携可能になっているのですが (参考: Deploy fast and scalable AI with NVIDIA Triton Inference Server in Amazon SageMaker — AWS Machine Learning Blog) 、今回のリリースには Vertex AI との連携を見据えたものと思われる対応 (Add Vertex AI endpoint (#3466)) が含まれています。まだドキュメントなどに明記されていないため変更の可能性はありますが、より多くの環境で Triton を利用できるようになることが想定されます。

後者のアップデートは、たとえば音声認識のような、ストリーム的にデータが逐次与えられる状況で、中間状態 (例: RNN における隠れ状態など) を管理する必要がある場合に便利な機能です。これまでは、モデル側で中間状態を明示的に管理する必要があり、若干煩雑でした。今回のアップデートにより、中間状態を示すテンソルと、その入出力に関する対応関係を設定に記述しておくと、Triton Inference Server が中間状態を暗黙的に管理してくれるようになります。結果、系列データの推論を行う際、直前の要素から出力された中間状態が、次の要素の計算時に入力として扱われるようになります。詳細は、model_config.protomessage Staterepeated State state = 5; などをご確認ください。なお、現時点では一部のバックエンドでのみサポートされているようで、確認した範囲では ONNX では動作するものの、Python バックエンドでは動作しないようです。また、こちらもドキュメントに明記されていないため、将来的に変更される可能性がある点、ご注意ください。

まとめ

今月の更新は比較的小規模でしたが、利用可能な環境を増やすための対応や、ユーザビリティを上げるための改善などが含まれていました。引き続き、様々な環境、様々なモデルの推論を、より簡単に、より高速に実行できるようにするための取り組みが行われます。皆様のアプリケーションをデプロイする環境としてご検討いただければ幸いです。

ご意見ご質問など、お気軽にコメントいただければと思います!

--

--