ディープラーニングモデルを本番環境に簡単に導入

ディープラーニングモデルを本番環境に簡単に導入

[51CTO.com クイック翻訳] データから学習し、パターンを識別し、人間の介入を最小限に抑えて意思決定を行うことができるシステムは魅力的です。ニューラル ネットワークを使用する機械学習の一種であるディープラーニングは、オブジェクト分類からレコメンデーション システムまで、さまざまなコンピューティング問題を解決するための効果的なツールとして急速に普及しつつあります。ただし、トレーニング済みのニューラル ネットワークをアプリケーションやサービスに導入することは、インフラストラクチャ管理者にとって課題となる可能性があります。複数のフレームワーク、十分に活用されていないインフラストラクチャ、標準的な実装の欠如などの課題は、AI プロジェクトの失敗につながる可能性もあります。この記事では、これらの課題に対処し、データセンターまたはクラウドの運用環境にディープラーニング モデルを展開する方法について説明します。

一般的に、私たちアプリケーション開発者は、データ サイエンティストや IT 部門と協力して、AI モデルを本番環境に展開します。データ サイエンティストは、特定のフレームワークを使用して、さまざまなユース ケース向けに機械学習/ディープラーニング モデルをトレーニングします。トレーニング済みのモデルを、ビジネス上の問題を解決するために開発されたアプリケーションに統合します。 IT 運用チームは、データ センターまたはクラウドで展開されたアプリケーションを実行および管理します。

図1.

ディープラーニング モデルを本番環境に導入する場合、大きな課題が 2 つあります。

  1. 複数の異なるフレームワークとモデルをサポートする必要があり、開発の複雑さとワークフローの問題が発生しました。データ サイエンティストは新しいアルゴリズムと新しいデータに基づいて新しいモデルを開発し、運用環境を継続的に更新する必要があります。
  2. 優れた推論パフォーマンスを提供するために NVIDIA GPU を使用する場合、留意すべき点がいくつかあります。まず、GPU は強力なコンピューティング リソースであり、GPU ごとに 1 つのモデルを実行するのは非効率的である可能性があります。単一の GPU で複数のモデルを実行しても、GPU の使用率を最大化するためにモデルが自動的に同時に実行されるわけではありません。

では、何ができるでしょうか? NVIDIA の TensorRT 推論サーバーなどのアプリケーションを使用して、これらの課題に対処する方法を見てみましょう。 TensorRT Inference Server は、NVIDIA NGC リポジトリ (https://ngc.nvidia.com/catalog/containers/nvidia:tensorrtserver) からコンテナーとしてダウンロードすることも、GitHub (https://github.com/NVIDIA/tensorrt-inference-server) からオープン ソース コードとしてダウンロードすることもできます。

TensorRT 推論サーバー: 導入が簡単になります

TensorRT 推論サーバーは、次の機能の組み合わせにより、トレーニング済みのニューラル ネットワークの展開を簡素化します。

  • 複数のフレームワーク モデルのサポート: TensorRT 推論サーバーのモデル リポジトリを使用することで、最初の課題を克服できます。これは、任意のフレームワーク (TensorFlow、TensorRT、ONNX、PyTorch、Caffe、Chainer、MXNet、さらにはカスタム フレームワーク) で開発されたモデルを保存できるストレージ場所です。 TensorRT 推論サーバーは、これらすべてのフレームワークで構築されたモデルをデプロイできます。推論サーバー コンテナーが GPU または CPU サーバー上で起動されると、モデル リポジトリからすべてのモデルがメモリに読み込まれます。次に、アプリケーションは API を使用して推論サーバーを呼び出し、モデルに対して推論を実行します。メモリに収まらないモデルが多数ある場合は、単一のライブラリを複数のライブラリに分割し、それぞれが異なるライブラリを指す TensorRT 推論サーバーの異なるインスタンスを実行できます。推論サーバーとアプリケーションの実行中でも、モデル リポジトリを変更することで、モデルを簡単に更新、追加、削除できます。

図2

  • GPU 使用率の最大化: アプリケーションと推論サーバーを正常に実行できたので、2 番目の課題に対処できます。 GPU の使用率は、多くの場合、インフラストラクチャ管理者にとっての主要業績評価指標 (KPI) となります。 TensorRT 推論サーバーは、GPU 上で複数の同一または異なるモデルを同時にスケジュールすることができ、GPU の使用率を自動的に最大化します。その結果、私たち開発者は特別な対策を講じる必要がなくなり、IT運用上の要件も満たされます。各サーバーにモデルを展開する代わりに、IT 運用チームはすべてのサーバーで同じ TensorRT 推論サーバー コンテナを実行します。複数のモデルをサポートしているため、サーバーごとに 1 つのモデルを使用する場合と比較して、GPU が最大限に活用され、サーバー負荷がより均等に分散されます。このデモ ビデオでは、サーバーの負荷分散と使用率について説明します。
  • リアルタイム推論とバッチ推論を有効にする: 推論には 2 種類あります。アプリケーションがユーザーにリアルタイムで応答する必要がある場合、推論もリアルタイムで実行する必要があります。レイテンシが問題となるため、リクエストをキューに入れて他のリクエストとバッチ処理することはできません。一方、リアルタイム要件がない場合は、リクエストを他のリクエストとバッチ処理して、GPU の使用率とスループットを向上させることができます。

アプリケーションを開発する際には、リアルタイムの要件を理解する必要があります。 TensorRT 推論サーバーには、リアルタイム アプリケーションのレイテンシしきい値を設定するためのパラメーターがあり、バッチ処理を実装するためにゼロ以外の数値に設定できる動的バッチ処理もサポートしています。当社は、IT 運用チームと緊密に連携して、これらのパラメータが正しく設定されていることを確認します。

  • CPU、GPU、異種クラスターでの推論: 多くの企業では、GPU は主にトレーニングに使用されます。推論は通常の CPU サーバー上で実行されます。 GPU で推論を実行すると大幅に高速化されますが、任意のプロセッサでモデルを実行できる柔軟性も必要です。

CPU 推論から GPU 推論に移行する方法を見てみましょう。

  1. 現在のクラスターは純粋な CPU サーバーのセットであり、そのすべてが TensorRT 推論サーバー アプリケーションを実行します。
  2. クラスターに GPU サーバーを導入し、これらのサーバー上で TensorRT 推論サーバー ソフトウェアを実行しました。
  3. モデル ライブラリに GPU アクセラレーション モデルを追加しました。
  4. 構成ファイルを使用して、これらのサーバー上の TensorRT 推論サーバーに推論に GPU を使用するように指示します。
  5. クラスター内の CPU のみのサーバーを非アクティブ化するか、異種モードで使用することができます。
  6. TensorRT 推論サーバーを呼び出すアプリケーションでは、コードを変更する必要はありません。
  • DevOps インフラストラクチャとの統合: 最後のポイントは、IT チームに密接に関連しています。あなたの会社は DevOps プラクティスに従っていますか? DevOps は、ソフトウェアの開発と展開のサイクル全体を短縮するために設計された一連のプロセスとプラクティスです。 DevOps を実践している企業では、展開用にアプリケーションをパッケージ化するためにコンテナを使用することが多いです。 TensorRT 推論サーバーは、IT 部門が Kubernetes を使用して管理および拡張できる Docker コンテナです。また、エンドツーエンドの AI ワークフローの Kubeflow パイプラインの一部として推論サーバーを使用することもできます。推論サーバーからの GPU/CPU 使用率メト​​リックは、スケールアウトするために新しいサーバーで新しいインスタンスをいつ起動するかを Kubernetes に伝えます。

モデル構成ファイルを設定し、クライアント ライブラリを統合すると、TensorRT 推論サーバーをアプリケーション コードに簡単に統合できます。

トレーニング済みのニューラル ネットワークを展開するのは難しい場合がありますが、この記事ではそれを簡単にするいくつかの手法について説明します。コミュニケーションのためにメッセージを残していただければ幸いです。

原題: ディープラーニング モデルを本番環境に簡単に導入、著者: Shankar Chandrasekaran

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください]

<<:  MIT の新しい研究: ゼロから設計? AIにより誰もが服をデザインできるようになる

>>:  サービスロボットは驚異的なユニコーンを生み出すことができるか?

ブログ    
ブログ    
ブログ    

推薦する

GPT-5 も 4.5 もなく、2 か月後の OpenAI の最初の開発者会議では何がリリースされるのでしょうか?

朗報です。開発者が待ち望んでいた GPT-5 がついに登場しました。本日、OpenAIは初の開発者会...

データが増えるほど、AIの意思決定モデルは脆弱になる

データは人工知能システムを構築するために必要な重要なインフラストラクチャです。データは、AI システ...

...

...

ディープラーニングの仕組み: 今日の AI を支えるニューラル ネットワークの内部を覗いてみよう

[[428985]] [51CTO.com クイック翻訳]今日の人工知能の繁栄は、人工ニューラルネッ...

...

...

AIが世界中の産業に及ぼす影響

人工知能は、すでに私たちの世界を微妙かつ広範囲に変化させている、画期的な技術です。クラウド コンピュ...

Python はとても使いやすいです! AI初心者でもすぐに顔検出を体験

[[423040]] Pythonを使用してAI認識テストを実行します。具体的な方法は、リアルタイム...

人工知能の未来は人類にとって何を意味するのでしょうか?

人工知能(AI)について多くの人が最初に尋ねる質問は、「それは良いものか、悪いものか?」です。答えは...

...

...

製造業における人工知能の8つの応用シナリオ

人工知能の概念は、60年以上前の1950年代に初めて提案されました。しかし、モノのインターネット、ビ...

...