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

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

[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により誰もが服をデザインできるようになる

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

ブログ    

推薦する

2020年のAIの7つの開発トレンド

[[320187]]追加の AI アプリケーションの需要が高まるにつれて、企業はデータ サイエンス ...

人工知能を活用して生物多様性を保護する

AIを生物多様性保全に活用することで、植物や動物の絶滅を防ぎ、安定した生態系を維持することができます...

ついに誰かが自動運転を明確にした

01 自動運転とは自動運転は無人運転とも呼ばれ、その名の通り、車両が人間の操作なしに周囲の環境を認...

Zhihuのホットトピック:最近AmazonのAIチームから大量の人材が去った?李牧自ら事実を明らかにした!

[[326634]]最近、「アマゾンAI李牧のチームから大量の人材が抜けたことについてどう思います...

...

...

画像からの「テキスト生成」の難しさを克服し、同レベルの拡散モデルを粉砕せよ! TextDiffuser アーキテクチャの 2 世代の詳細な分析

近年、テキスト生成画像、特に詳細レベルでリアルな効果を示す拡散ベースの画像生成モデルの分野で大きな進...

AIによりドローンは未知の環境でも高速で自律飛行できる

チューリッヒ大学の研究者らは、複雑で未知の環境でもドローンが高速で自律飛行できるようにする新たな人工...

...

...

AIを活用して都市の建物の特性を識別し、地震などの災害に対するリスクを予測する

人工知能は、ビジネスから工業デザイン、エンターテインメントまで、さまざまな分野で新たな機会を提供して...

AI予算は増加しているが、導入の課題は残る

企業の人工知能予算は急速に増加しているが、導入には依然として大きな課題が残っていることが、Algor...

AIブーム下のレイアウトトレンド

2016年3月にアルファ碁が囲碁の世界チャンピオン、イ・セドルを破って以来、人工知能は大きな注目を集...