Deep Learning Experiment Builder を使用したニューラルネットワークのトレーニング

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

データサイエンティストとして、ニューラルネットワークの性能を最適化するためには、ハイパーパラメータと組み合わせて適切なデータの組み合わせを特定するために、何千ものモデルを訓練する必要があります。 より多くの実験をより速く行いたい。 より深いニューラルネットワークを学習させ、より複雑なハイパーパラメータ空間を探索したい。 IBM Watson Machine Learning この反復サイクルを加速し、自動割り当てGPUコンピューティングコンテナによる並列モデルトレーニングプロセスを簡素化します。

ディープラーニング実験ビルダーを実際に試してみたい場合は、 この実験ビルダーのチュートリアルに記載されている手順に従って、手書きの数字を予測する実験を作成・実行してください。

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

必須のサービス

データ・フォーマット
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. 「ハードウェア仕様 (Hardware specification)」 ボックスから、エクスペリメントを実行するために割り振る CPU と GPU の数とサイズを選択します。
      • 事前定義ソフトウェア仕様のリストから選択します。
      • カスタム・ハードウェア仕様を作成します。 CPU トレーニングの場合は、CPU 単位の数とメモリー・サイズを設定します。 GPU トレーニングの場合は、ワーカーごとに GPU リソースの数を設定します。 ワーカーごとに 4 つを超える GPU リソースが必要な場合は、グローバル実行コマンドを使用します。 GPU リソース・タイプを「Slice」、「Generic」、「Full」のいずれかに設定します。 MIG タイプを選択します。 注:GPUノードにMIGが1つだけ設定されている場合は、リソースタイプとして「Slice」を選択し、MIGタイプとして「N/A」を選択してください。
    4. 「トレーニング・タイプ」 ボックスから、トレーニング・タイプを選択します。
      • CPU を選択すると、単一ノードとマルチノードが使用可能になります。
      • GPU を選択すると、単一ノード、マルチノード、および Elastic ノードが使用可能になります。
  5. 「作成」 をクリックして、モデル定義を作成します。

既存のモデル定義の選択

  1. 既存のモデル定義を選択し、エクスペリメント中に使用する属性を選択します。
  2. フレームワークボックスから、適切なフレームワークを選択してください。 これは、 Python ファイルで使用するコードと互換性がなければなりません。
  3. [ リソースの種類] ボックスから、CPU または GPU を選択します。
  4. 「ハードウェア仕様 (Hardware specification)」 ボックスから、エクスペリメントを実行するために割り振る CPU と GPU の数とサイズを選択します。
    • 事前定義ソフトウェア仕様のリストから選択します。
    • カスタム・ハードウェア仕様を作成します。 CPU トレーニングの場合は、CPU 単位の数とメモリー・サイズを設定します。 GPU トレーニングの場合は、ワーカーごとに GPU リソースの数を設定します。 ワーカーごとに 4 つを超える GPU リソースが必要な場合は、グローバル実行コマンドを使用します。 GPU リソース・タイプを「Slice」、「Generic」、「Full」のいずれかに設定します。 MIG タイプを選択します。
  5. 「トレーニング・タイプ」 ボックスから、トレーニング・タイプを選択します。
    • CPU を選択すると、単一ノードとマルチノードが使用可能になります。
    • GPU を選択すると、単一ノード、マルチノード、および Elastic ノードが使用可能になります。
  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にトレーニングデータがアップロードされた絶対パスです。