ディープ・ラーニング・エクスペリメント・ビルダーを使用したニューラル・ネットワークのトレーニング

このトピックでは、Watson Studio の実験ビルダーを使用してニューラル・ネットワークをトレーニングする方法について説明します。

サービス デフォルトでは、Watson Machine Learning Watson StudioおよびIBM Software Hubのスケジューリング・サービスは使用できません。 管理者がサービスをインストールする必要があります。 サービスがインストールされているかどうかを判別するには、サービス・カタログを開きます。 サービスがインストールされて使用可能な状態になっている場合、カタログ内のタイルに「使用可能」と表示されます。

必要なサービス
Watson Machine Learning
Watson Studio
IBM Software Hub スケジューリング・サービス

データ・サイエンティストは、ニューラル・ネットワークのパフォーマンスを最適化する、データとハイパーパラメーターの正しい組み合わせを特定するため、数千のモデルのトレーニングを行う必要があります。 また、より多くの実験をより高速に実行する必要があります。 さらに、より深いニューラル・ネットワークをトレーニングし、より複雑なハイパーパラメーター・スペースを探索する必要があります。 IBM Watson Machine Learning は、自動割り振り GPU 計算コンテナーと並行してモデルをトレーニングするためのプロセスを単純化することで、この反復サイクルを高速化します。

Deep Learning Experiment Builder を自分で試す場合は、このExperiment Builder のチュートリアルのステップに従って、手書きの数字を予測する実験を作成して実行してください。

ディープ・ラーニング実験の概要

必要なサービス

データ・フォーマット
Watson Machine Learning、Watson Studio、IBM Software Hub スケジューリング・サービス
任意
データ・サイズ
任意のサイズ

ディープ・ラーニング実験を作成するための前提条件

実験を作成するには、以下が必要です。

  • 管理者が設定したストレージ・スペースにアクセスし、トレーニング・ファイルをアップロードできるパス、またはデータ資産または接続にアクセスできるパスを把握します。
  • モデル・ビルド・コードと、トレーニングの実行方法に関するメタデータを含むモデル定義。
  • デプロイメント・スペース は、ディープ・ラーニング・エクスペリメントを作成するために必要ではありませんが、モデルをデプロイするために必要です。

新規のディープ・ラーニング実験の作成

  1. プロジェクトを開きます。
  2. 新規 資産をクリックし、ディープ・ラーニング・エクスペリメントの作成を選択します。

ディープ・ラーニング・エクスペリメントの詳細の定義

  1. エクスペリメントの名前とオプションの説明を設定します。
  2. 以下のいずれかのオプションを使用して、トレーニング・データの場所を指定します。
    • ストレージ・ボリューム: マウントされたストレージ・ボリューム上でトレーニング・データが使用可能な場合に使用します。 既知の問題として、選択したストレージ・ボリュームをマウントするために、トレーニング・データ・ファイルの相対フォルダー・パス・フィールドを空のままにして、トレーニングに必要でない場合でも データ資産 または接続からデータを選択する必要があるという問題があります。
    • データの選択: データ資産 または接続からトレーニング・データを読み取るかダウンロードする場合に使用します。
  3. データ資産または接続を使用する場合、ファイル・タイプのデータ・ソースの場合は、複数のロケーションに事前にダウンロードすることを選択できます。
    • トレーニング・ワーカーのローカル・ストレージ
    • トレーニング・ワーカーの共有ストレージ
    • ストレージ・ボリューム (ストレージ・ボリュームを選択した場合)
  4. モデル定義を関連付けます。 詳しくは、モデル定義の関連付けを参照してください。
  5. 作成して実行 をクリックして、モデル定義を作成し、エクスペリメントを実行します。

モデル定義を関連付けます

1 つ以上のモデル定義をこのエクスペリメントに関連付ける必要があります。 エクスペリメントの実行の一環として、複数のモデル定義を関連付けることができます。 モデル定義は、既存のモデル定義またはプロセスの一環としてユーザーが作成したモデル定義を混用することができます。

  1. モデル定義の追加をクリックします。
  2. 新しいモデル定義を作成するか、既存のモデル定義を使用するかを選択します。
    • 新規モデル定義を作成するには、「モデル定義の作成」をクリックし、モデル定義のオプションを指定します。 詳しくは、『新規モデル定義の作成』を参照してください。
    • 既存のモデル定義を選択し、エクスペリメント属性を設定します。 詳しくは、以下を参照してください。 既存のモデル定義を選択します。
  3. オプションで、モデル定義値をオーバーライドするグローバル実行コマンドを使用することを選択します。 選択した場合、「グローバル実行コマンド」ボックスに、Python・コードの実行に使用できる実行コマンドを入力します。 実行コマンドは Python コードを参照する必要があり、オプションで、トレーニング・ファイルの名前を渡すことができます (実験がそのように構成されている場合)。 例:
    convolutional_network.py --trainImagesFile train-images-idx3-ubyte.gz --trainLabelsFile train-labels-idx1-ubyte.gz --testImagesFile t10k-images-idx3-ubyte.gz --testLabelsFile t10k-labels-idx1-ubyte.gz --learningRate 0.001 --trainingIters 6000
    

新規モデル定義の作成

  1. 固有の名前と説明を入力します。
  2. メトリック を示すためにセットアップしたPython・コードを含むモデル・トレーニング .zip ファイルをアップロードします。 トレーニング・スクリプトでトレーニング・データにアクセスする方法について詳しくは、環境変数を使用したモデル・スクリプト内のデータへのアクセスを参照してください。
  3. 実行コマンドを設定します。 このコマンドは、モデルの作成時に実行されます。
  4. 実験中に使用する属性を指定します。
    1. フレームワーク ボックスから、適切なフレームワークを選択します。 これは、Python ファイルで使用するコードと互換性がある必要があります。
    2. リソース・タイプ ボックスから、CPU または GPU のいずれかを選択します。
    3. ハードウェア仕様 ボックスから、エクスペリメントの実行に割り振る CPU と GPU の数とサイズを選択します。
      • 事前定義ソフトウェア仕様のリストから選択します。
      • カスタム・ハードウェア仕様を作成します。 CPU トレーニングの場合は、CPU 単位数とメモリー・サイズを設定します。 GPU トレーニングの場合は、ワーカーごとの GPU リソースの数を設定します。 ワーカーごとに 4 つを超える GPU リソースが必要な場合は、グローバル実行コマンドを使用します。 GPU リソース・タイプを以下のいずれかに設定します。 「スライス」、「汎用」、「フル」。 MIG タイプを選択します。 注: GPU ノードに単一の MIG が構成されている場合は、リソース・タイプとしてスライスを選択し、MIG タイプとして N/A を選択します。
    4. トレーニング・タイプ ボックスから、トレーニング・タイプを選択します。
      • CPU を選択した場合は、単一ノードとマルチノードが使用可能です。
      • GPU を選択した場合は、シングルノード、マルチノード、および弾力性のあるノードが使用可能です。
  5. 作成 をクリックして、モデル定義を作成します。

既存のモデル定義を選択する

  1. 既存のモデル定義を選択し、実験中に使用される属性を選択します。
  2. フレームワーク ボックスから、適切なフレームワークを選択します。 これは、Python ファイルで使用するコードと互換性がある必要があります。
  3. リソース・タイプ ボックスから、CPU または GPU のいずれかを選択します。
  4. ハードウェア仕様 ボックスから、エクスペリメントの実行に割り振る CPU と GPU の数とサイズを選択します。
    • 事前定義ソフトウェア仕様のリストから選択します。
    • カスタム・ハードウェア仕様を作成します。 CPU トレーニングの場合は、CPU 単位数とメモリー・サイズを設定します。 GPU トレーニングの場合は、ワーカーごとの GPU リソースの数を設定します。 ワーカーごとに 4 つを超える GPU リソースが必要な場合は、グローバル実行コマンドを使用します。 GPU リソース・タイプを以下のいずれかに設定します。 「スライス」、「汎用」、「フル」。 MIG タイプを選択します。
  5. トレーニング・タイプ ボックスから、トレーニング・タイプを選択します。
    • CPU を選択した場合は、単一ノードとマルチノードが使用可能です。
    • GPU を選択した場合は、シングルノード、マルチノード、および弾力性のあるノードが使用可能です。
  6. 選択 をクリックして、モデル定義を作成し、エクスペリメントを実行します。

環境変数を使用したモデル・スクリプト内のデータへのアクセス

  • データ接続からトレーニング・データをダウンロードすることを選択した場合、環境変数 WMLA_USER_DATA_FILES は、トレーニング・データ・ファイルがダウンロードされる場所を指すか、または以下のコードをモデル・ファイルに追加することによってデータ接続から直接読み取ることを指します。
    from ibm_wmla_lib.data.data_manager import WMLADataManager
    pandas_data_frames = WMLADataManager.create_from_data_source().read_pandas()
    
  • 環境変数 DATA_DIR は、Watson Machine Learning PVC でトレーニング・データがアップロードされた絶対パスです。