NVIDIA TensorRT と Google Dataflow による機械学習推論のスケーリング
Google Cloud Japan Team
※この投稿は米国時間 2023 年 1 月 25 日に、Google Cloud blog に投稿されたものの抄訳です。
Google Cloud と NVIDIA の連携により、Apache Beam ユーザーは、新しい Apache Beam TensorRTEngineHandler とともに NVIDIA TensorRT や NVIDIA GPU を使用して、データ処理パイプライン内で ML モデルのパフォーマンスを最大化できるようになりました。
NVIDIA TensorRT SDK は高パフォーマンスのニューラル ネットワーク推論を提供します。これにより、開発者はモデルの予測精度を維持しながら、最高のスループットと最低のレイテンシでトレーニング済みの ML モデルを最適化し、NVIDIA GPU にデプロイできます。TensorRT は、畳み込みニューラル ネットワーク(CNN)、再帰型ニューラル ネットワーク(RNN)、Transformer ベースのモデルなど、複数のクラスのディープ ラーニング モデルをサポートするように特別に設計されています。
エンドツーエンドの ML 推論パイプラインをデプロイ、管理しながら、インフラストラクチャの使用率を最大化し、総費用を最小限に抑えることは容易ではありません。ML モデルを本番環境データ処理パイプラインに統合して分析情報を抽出するには、次の 3 つの主なワークフロー セグメントに関連した課題に対処する必要があります。
複数のデータソースで取得した大量の元データを前処理し、ML モデルをトレーニングして結果を「推測 / 予測」するための入力として使用し、ML モデルの出力をダウンストリームで活用してビジネス プロセスに組み込む。
バッチ、ストリーミング、アンサンブル モデル、リモート推論、ローカル推論など、さまざまな推論のユースケースをサポートしながら、データ処理パイプライン内で ML モデルを呼び出す。パイプラインは 1 つのモデルに限定されず、望ましいビジネス成果を生み出すうえで、複数のモデルの組み合わせが必要になることがよくあります。
ML モデルのパフォーマンスを最適化して、アプリケーションの精度、スループット、レイテンシの制約内で成果を上げる。NLP などのユースケースで複雑なコンピューティング集約型モデルを使用するパイプラインや、複数の ML モデルを一緒に使用する必要のあるパイプラインでは、こうしたモデルの応答時間がパフォーマンスのボトルネックになることが少なくありません。これにより、ハードウェアの使用率が低下し、パイプラインを本番環境にデプロイするために必要なコンピューティング リソースが増加し、運用費が高くなる可能性があります。
Google Cloud Dataflow は、Apache Beam を使用して作成されたストリームまたはバッチ処理パイプラインのためのフルマネージド ランナーです。開発者が ML モデルをデータ処理パイプラインに簡単に組み込めるようにするため、Apache Beam の汎用的な機械学習予測および推論変換である RunInference を Dataflow でサポートすることが最近発表されました。RunInference 変換では、ML パイプラインの作成プロセスを簡素化するために、開発者が本番環境パイプラインでモデルを使用できるようになっており、大量のボイラープレート コードが必要ありません。
Apache Beam で RunInference を使用した例については、次のコードサンプルをご覧ください。engine_handler は構成として RunInference 変換に渡されます。これにより、モデル実行の実装詳細からユーザーが抽出されます。
Dataflow ランナーや TensorRT エンジンとともに Apache Beam を使用すれば、ユーザーは上記の 3 つの主な課題に対処できます。Dataflow ランナーは大規模なデータの前処理を行い、モデル入力として使用するデータを用意します。バッチ パイプラインおよびストリーミング パイプライン向けに Apache Beam API が 1 つあれば、両方のユースケースで RunInference が自動的に利用できます。複雑なマルチパス パイプラインを定義する Apache Beam の機能により、複数のモデルを使用するパイプラインの作成もしやすくなります。TensorRT のサポートにより、NVIDIA GPU でモデルの推論パフォーマンスを最適化する機能も Dataflow に加わりました。
この機能を今すぐ使用するための詳細と例については、NVIDIA 技術ブログ「Simplifying and Accelerating Machine Learning Predictions in Apache Beam with NVIDIA TensorRT(NVIDIA TensorRT を使用した Apache Beam における機械学習予測の簡素化と高速化)」をご覧ください。RunInference に関するドキュメントは、Apache Beam ドキュメント サイトと Dataflow ドキュメントでご確認いただけます。
- ディープ ラーニング スペシャリスト Ruichao Ren