マルチフレームワークの深層学習プラットフォームを Kubernetes にデプロイして使用する

ソースノード: 1580762

Description

深層学習の実践者として、トレーニング ジョブを調整する際に信頼性とスケーラビリティが必要です。 さらに、複数のライブラリ間で一貫した方法でこれを行う必要があります。 Kubernetes の Fabric for Deep Learning (FfDL) を使用すると、クラウドで Caffe、Torch、TensorFlow などのディープ ラーニング ライブラリを最小限の労力で回復力のある方法で利用できるようにすることで、これを実現できます。 このプラットフォームは、分散およびオーケストレーション レイヤーを使用して、コンピューティング ノード全体で妥当な時間内に大量のデータからの学習を容易にします。 リソース プロビジョニング レイヤーにより、サービスとしてのインフラストラクチャ (IaaS) クラウドで、グラフィックス処理装置 (GPU) や中央処理装置 (CPU) などの異種リソースでの柔軟なジョブ管理が可能になります。

概要

ディープ ラーニング (機械学習手法の一部) として知られるディープ ニューラル ネットワークのトレーニングは、非常に複雑で計算量が多くなります。 ディープ ラーニングの一般的なユーザーは、基盤となるハードウェアおよびソフトウェア インフラストラクチャの詳細に不必要にさらされています。これには、高価な GPU マシンの構成、ディープ ラーニング ライブラリのインストール、実行中のジョブの管理による障害と回復の処理が含まれます。 IaaS クラウドからハードウェアを入手し、時間単位で支払うことは容易ですが、それでもユーザーはそれらのマシンを管理し、必要なライブラリをインストールし、ディープ ラーニング トレーニング ジョブの回復力を確保する必要があります。

ここに、サービスとしてのディープ ラーニングの可能性があります。 このコード パターンでは、ディープ ラーニング ファブリックを Kubernetes にデプロイする方法を示します。 Kubernetes、マイクロサービス、Helm チャート、オブジェクト ストレージなどのクラウド ネイティブ アーキテクチャ アーティファクトを使用して、ディープ ラーニング ファブリックをデプロイして使用する方法を示します。 このファブリックは、TensorFlow、Caffe、PyTorch などの複数のディープ ラーニング エンジンにまたがっています。 クラウド サービスの柔軟性、使いやすさ、経済性をディープ ラーニングの力と組み合わせます。 使いやすく、REST API を使用することで、ユーザーの要件や予算ごとにさまざまなリソースでトレーニングをカスタマイズできます。 ユーザーが障害に集中するのではなく、深層学習とアプリケーションに集中できるようにします。

Flow

フロー

  1. FfDL デプロイヤーは、FfDL コード ベースを Kubernetes クラスターにデプロイします。 Kubernetes クラスターは、GPU、CPU、またはその両方を使用するように構成されており、S3 互換のオブジェクト ストレージにアクセスできます。 指定しない場合、ローカルでシミュレートされた S3 ポッドが作成されます。
  2. デプロイが完了すると、データ サイエンティストはモデル トレーニング データを S3 互換のオブジェクト ストアにアップロードします。 FfDL は、さまざまな深層学習フレームワークで規定されているように、データが既に必要な形式になっていることを前提としています。
  3. ユーザーは FfDL モデル マニフェスト ファイルを作成します。 マニフェスト ファイルには、FfDL のモデル、そのオブジェクト ストア情報、そのリソース要件、およびトレーニングとテスト中のモデルの実行に必要ないくつかの引数 (ハイパーパラメーターを含む) を記述するさまざまなフィールドが含まれています。 次に、ユーザーは CLI/SDK または UI を使用して FfDL と対話し、FfDL モデル マニフェスト ファイルをモデル定義ファイルと共にデプロイします。 ユーザーはトレーニング ジョブを起動し、その進行状況を監視します。
  4. トレーニング ジョブが完了すると、ユーザーはトレーニング済みのモデルと関連するログをダウンロードします。

説明書

このパターンの詳細な手順については、README を参照してください。 手順では、次の方法を示します。

  1. Docker イメージをコンパイルしてコーディングし、ビルドします。
  2. helm install で FfDL コンポーネントをインストールします。
  3. スクリプトを実行して、FfDL を監視するために Grafana を構成します。
  4. Grafana、FfDL Web UI、および FfDL REST API エンドポイントを取得します。
  5. TensorFlow と Caffe を使用して、いくつかの単純なジョブを実行して、畳み込みネットワーク モデルをトレーニングします。

ソース: https://developer.ibm.com/patterns/deploy-and-use-a-multi-framework-deep-learning-platform-on-kubernetes/

タイムスタンプ:

より多くの IBM 開発者