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

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

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

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

ブログ    
ブログ    

推薦する

...

Ctrip における Flutter マップのベスト プラクティス

著者についてCtrip のシニア モバイル開発エンジニアである Leo は、クロスエンド テクノロジ...

...

AI時代に向けてキャリアを再設計する時が来た

Pew Researchの分析によると、AI、特にAIGCの台頭は管理職や専門職に大きな影響を与える...

...

HipHop アルゴリズム: マイクロブログの相互作用関係を使用してソーシャル サークルをマイニングする

[[120924]] Weibo 環境において、Weibo ユーザーのソーシャル サークルや興味サー...

...

AIアラインメントを説明する4万語:北京大学と複数の大学チームがアラインメントの包括的なレビューを発表

論文(継続的に更新):arxiv.org/abs/2310.19852 AI アライメント概要ウェブ...

このガイドを理解することで、ニューラルネットワークの「ブラックボックス」をマスターすることができます。

「人間のニューラルネットワークはどのように機能するのか?」この質問は多くのデータ サイエンティスト...

世紀の奇跡!華中科技大学の師弟が世界で初めて韓国の常温超伝導磁気浮上を再現、アメリカン・スーパーコンダクターは取引セッション中に150%急騰

人類は物質とエネルギーの新しい時代を迎えようとしているのでしょうか?未来のテクノロジーへの扉が開かれ...

銀行の二重生体認証実験:二重のトラブルか二重のセキュリティか?

2つの生体認証技術は顔認証と指紋認証です。実験では、両方ともモバイルデバイスを通じて実装され、2つ...

Zipf 行列分解: 推奨システムにおけるマシュー効果を解決する強力なツール

[[407036]] [51CTO.com からのオリジナル記事]アルゴリズムの公平性は、近年、推奨...

LEACHプロトコルのアルゴリズムと特徴

LEACH プロトコルについてはあまり知られていないかもしれません。このプロトコルの説明は、低電力適...

ロボットは労働者を完全に置き換えるのでしょうか?心配しないでください。人間と機械の組み合わせだけが仕事の疲れを軽減できます

英国の著名な分析機関オックスフォード・エコノミクスが発表したデータによると、今から10年後の2030...

イアン・マッシンガム:AWSはモノのインターネットと人工知能への投資を継続

[51CTO.com からのオリジナル記事] 先進的なクラウドサービスプロバイダーとして、AWS は...