次の方法で共有


Azure Machine Learning を使用してモデルをトレーニングする (v1)

適用対象: Python SDK azureml v1

Azure Machine Learning には、SDK を使用したコード ファースト ソリューションから、自動機械学習やビジュアル デザイナーなどのコーディングの少ないソリューションまで、モデルをトレーニングするためのいくつかの方法が用意されています。 次の一覧を使用して、ご自身にどのトレーニング方法が適しているかを判断してください。

  • Azure Machine Learning SDK for Python:Python SDK には、モデルをトレーニングするためのいくつかの方法が用意されており、それぞれに異なる機能があります。

    トレーニング方法 説明
    実行構成 モデルをトレーニングするための一般的な方法は、トレーニング スクリプトとジョブ構成を使用することです。 ジョブ構成では、モデルのトレーニングに使用されるトレーニング環境を構成するために必要な情報が提供されます。 ジョブ構成にトレーニング スクリプト、コンピューティング先、Azure Machine Learning 環境を指定し、トレーニング ジョブを実行できます。
    自動機械学習 自動機械学習を使用すると、データ サイエンスやプログラミングに関する豊富な知識がなくてもモデルをトレーニングすることができます。 データ サイエンスとプログラミングの経験がある人に対しては、アルゴリズムの選択とハイパーパラメーターのチューニングを自動化することによって時間とリソースを節約する手段が提供されます。 自動機械学習を使用する場合、ジョブ構成の定義について心配する必要はありません。
    機械学習パイプライン パイプラインは別のトレーニング方法ではなく、モジュール型の再利用可能な手順を使用してワークフローを定義する方法であり、トレーニングをワークフローの一部として含めることができます。 機械学習パイプラインでは、自動機械学習と実行構成を使用したモデルのトレーニングがサポートされています。 パイプラインはトレーニングに明示的に重点を置いていないため、パイプラインを使用する理由は、他のトレーニング方法と大きく異なります。 一般に、以下の場合にパイプラインを使用できます。
    * 実行時間の長いトレーニング ジョブやデータ準備など、無人プロセスをスケジュール設定する
    * 異種コンピューティング リソースとストレージの場所全体で調整された複数の手順を使用する。
    * 再トレーニングやバッチ スコアリングなどの特定のシナリオ向けにパイプラインを再利用可能なテンプレートとして使用する。
    * ワークフローのデータソース、入力、出力を追跡してバージョン管理する
    * ワークフローが、特定の手順で個別に作業するさまざまなチームによって実装される。 その後、手順をパイプラインに結合して、ワークフローを実装できます。
  • デザイナー: Azure Machine Learning デザイナーでは、概念実証を構築するため、またはコーディングの経験がほとんどないないユーザーのために、機械学習への簡単なエントリポイントが用意されています。 これにより、ドラッグ アンド ドロップ Web ベース UI を使用してモデルをトレーニングできます。 Python コードを設計の一部として使用したり、コードを記述せずにモデルをトレーニングしたりすることができます。

  • Azure CLI: 機械学習 CLI には Azure Machine Learning を使用した一般的なタスク用のコマンドが用意されており、多くの場合、スクリプト作成とタスクの自動化に使用されます。 たとえば、トレーニング スクリプトまたはパイプラインを作成した後、スケジュールに基づいて、またはトレーニングに使用するデータ ファイルが更新されたときに、Azure CLI を使用してトレーニングのジョブを開始することができます。 トレーニング モデルの場合は、トレーニング ジョブを送信するコマンドが用意されています。 実行構成またはパイプラインを使用してジョブを送信できます。

これらの各トレーニング方法では、トレーニング用にさまざまな種類のコンピューティング リソースを使用できます。 これらのリソースをまとめて、コンピューティング先と呼びます。 コンピューティング先は、ローカル マシンでも、Azure Machine Learning コンピューティング、Azure HDInsight、リモート仮想マシンなどのクラウド リソースでもかまいません。

Python SDK

Python 用 Azure Machine Learning SDK では、Azure Machine Learning を使用して、機械学習のワークフローをビルドして実行できます。 対話型の Python セッション、Jupyter Notebook、Visual Studio Code、またはその他の IDE からサービスと対話できます。

実行構成

Azure Machine Learning の汎用トレーニング ジョブは、ScriptRunConfig を使用して定義できます。 次に、スクリプト実行構成がトレーニング スクリプトと共に使用されて、コンピューティング先でモデルがトレーニングされます。

ローカル コンピューター用の実行構成から開始し、必要に応じてクラウドベースのコンピューティング先に切り替えることができます。 コンピューティング先を変更する場合は、使用する実行構成のみ変更します。 実行によって、入力、出力、ログなどのトレーニング ジョブに関する情報もログに記録されます。

自動化された機械学習

イテレーション、ハイパーパラメーターの設定、特徴付け、その他の設定を定義します。 トレーニング中、Azure Machine Learning では、さまざまなアルゴリズムとパラメーターが並列に試行されます。 トレーニングは、定義した終了基準が満たされると終了します。

ヒント

Python SDK に加えて、Azure Machine Learning Studio を通じて自動 ML を使用することもできます。

機械学習パイプライン

機械学習パイプラインでは、前述のトレーニング方法を使用できます。 パイプラインは、ワークフローの作成だけに関するものではないため、モデルのトレーニング以外のものも含まれます。 パイプラインでは、自動機械学習または実行構成を使用してモデルをトレーニングできます。

トレーニング ジョブを送信したときの動作を理解する

Azure トレーニング ライフサイクルは次の要素で構成されています。

  1. プロジェクト フォルダー内のファイルの解凍。 .amlignore または .gitignore で指定されたファイルは無視されます
  2. コンピューティング クラスターのスケール アップ
  3. Dockerfile のビルドまたは計算ノードへのダウンロード
    1. システムにより、次のハッシュが計算されます。
    2. システムでは、ワークスペース Azure Container Registry (ACR) の検索で、このハッシュがキーとして使用されます
    3. 見つからない場合、グローバル ACR で一致するものが検索されます
    4. 見つからない場合、システムでは新しいイメージがビルドされます (これはキャッシュされ、ワークスペース ACR に登録されます)
  4. 計算ノード上の一時記憶域への圧縮されたプロジェクト ファイルのダウンロード
  5. プロジェクト ファイルの解凍
  6. python <entry script> <arguments> を実行する計算ノード
  7. ログ、モデル ファイル、./outputs に書き込まれたその他のファイルの、ワークスペースに関連付けられているストレージ アカウントへの保存
  8. 一時記憶域の削除など、コンピューティングのスケールダウン

ローカル コンピューターでのトレーニングを選択した場合 ("ローカル実行として構成")、Docker を使用する必要はありません。 必要に応じて、Docker をローカルで使用できます (例については、ML パイプラインの構成に関するセクションを参照)。

Azure Machine Learning デザイナー

デザイナーを使用すると、Web ブラウザーでドラッグ アンド ドロップ インターフェイスを使用してモデルをトレーニングできます。

Azure CLI

機械学習 CLI は、Azure CLI 用の拡張機能です。 Azure Machine Learning を操作するためのクロスプラットフォーム CLI コマンドが提供されます。 通常は、CLI を使用して、機械学習モデルのトレーニングなどのタスクを自動化します。

次のステップ

トレーニングの実行を構成する方法を確認します。