AutoML は、PAI が提供する機械学習強化サービスであり、複数のアルゴリズムと分散コンピューティングリソースを統合します。コードを記述することなく、実験を作成してモデルのハイパーパラメーターチューニングを実装し、機械学習の効率とパフォーマンスを向上させることができます。
背景情報
AutoML の動作メカニズム:
実験では、アルゴリズム設定に基づいてハイパーパラメーターの組み合わせが自動的に生成されます。各ハイパーパラメーターの組み合わせは、1 つのトライアルに対応します。各トライアルは、実験の実行設定に応じて、1 つの DLC ジョブまたは 1 つ以上の MaxCompute ジョブに対応する場合があります。実験は、複数のトライアルをスケジュールして実行し、結果を比較して、最適なハイパーパラメーターの組み合わせを見つけます。動作メカニズムの詳細については、「AutoML の仕組み」をご参照ください。
前提条件
-
初めて AutoML を使用する前に、AutoML に必要な権限を付与しておく必要があります。
-
ワークスペースが作成されている必要があります。
-
DLC ジョブを作成するには、次の準備を完了しておく必要があります。
-
MaxCompute ジョブを作成するには、MaxCompute リソースを準備し、ワークスペースに関連付けておく必要があります。
手順
-
AutoML ページに移動します。
-
実験一覧ページで、[Create Experiment] をクリックします。
-
実験作成ページで、次のパラメーターを設定します。
-
[Submit] をクリックします。
実験が実験リストに表示されます。
基本情報
|
パラメーター |
説明 |
|
[名前] |
インラインプロンプトに基づいて実験名を設定します。 |
|
[説明] |
他の実験と区別するための実験の簡単な説明。 |
|
[可視性] |
実験の可視性。有効な値: [Visible to me]:ワークスペース内の自分と管理者のみに表示されます。[Public in workspace]:ワークスペース内のすべてのユーザーに表示されます。 |
実行設定
[ジョブタイプ] はトライアルの実行環境です。[DLC] または [MaxCompute] を選択できます。
-
[DLC]:ハイパーパラメーターチューニングのために DLC ジョブを実行します。DLC ジョブの詳細については、「トレーニングジョブの作成」 をご参照ください。
-
[MaxCompute]:MaxCompute コンピューティングリソース上で、Designer アルゴリズムコンポーネントから SQL コマンドまたは PAI コマンドを実行して、ハイパーパラメーターチューニングを行います。Designer アルゴリズムコンポーネントと各コンポーネントがサポートする PAI コマンドの詳細については、「Designer コンポーネントの概要」 をご参照ください。
DLC
|
パラメーター |
説明 |
|
[Resource Group] |
パブリックリソースグループまたは購入済みの専用リソースグループを選択します。リソースグループの準備方法の詳細については、「リソースグループの作成と汎用コンピューティングリソースの購入」 および 「リソースクォータの作成」 をご参照ください。 |
|
[Framework] |
フレームワークタイプ。有効な値: Tensorflow、PyTorch。 |
|
[Dataset] |
このパラメーターを、準備した データセット に設定します。 |
|
[Code] |
ジョブコードファイルの格納場所 (コードリポジトリ)。このパラメーターを準備した コード設定 に設定します。DLC は指定された作業ディレクトリにコードをダウンロードするため、コードリポジトリへのアクセス権が必要です。 |
|
[Image] |
ワーカーノードのランタイムイメージ。以下のランタイムイメージタイプがサポートされています。
|
|
[Instance Type] |
ジョブの実行に必要なインスタンスタイプを選択します。インスタンスの価格は仕様によって異なります。課金の詳細については、「DLC の課金」 をご参照ください。 |
|
[Number of Workers] |
DLC ジョブで使用される計算ノードの数。複数のノードを設定した場合、各ノードは同じインスタンスタイプを共有するのではなく、個別に課金されます。ノードを選択する際は、各ノードのコストを考慮し、コストとパフォーマンスのバランスを取ってください。 |
|
[CPU (cores)] |
[Resource Group] を購入済みの専用リソースグループに設定した場合、購入したリソース仕様に基づいてこれらのパラメーターを設定できます。 |
|
[Memory (GiB)] |
|
|
[Shared Memory (GiB)] |
|
|
[GPU] |
|
|
[Advanced Settings] |
詳細設定を使用して、トレーニングの柔軟性を向上させたり、特定のトレーニングシナリオに対応したりできます。PyTorch がフレームワークとして選択されている場合、詳細設定を構成できます。 |
|
[User Command] |
各ノードの開始コマンド。コマンド内でハイパーパラメーター変数
この例では、 |
|
[ハイパーパラメーター] |
開始コマンドで設定されたハイパーパラメーター変数に基づいて、ハイパーパラメーターリストが自動的に読み込まれます。各ハイパーパラメーターについて、制約タイプと検索範囲を設定する必要があります。
|
MaxCompute
|
パラメーター |
説明 |
|
[コマンド] |
このパラメーターを、Designer アルゴリズムコンポーネントを実行するための SQL コマンドまたは PAI コマンドに設定します。コマンド内でハイパーパラメーター変数
この例では、 |
|
[ハイパーパラメーター] |
コマンドで設定されたハイパーパラメーター変数に基づいて、ハイパーパラメーターリストが自動的に読み込まれます。各ハイパーパラメーターについて、制約タイプと検索範囲を設定する必要があります。 |
トライアル設定
|
パラメーター |
説明 |
|
[メトリクスタイプ] |
トライアルの評価に使用されるメトリクスの種類。有効な値:
|
|
[メソッド] |
ジョブ実行中に、複数の中間メトリクスが生成されます。このメソッドを使用して、最終メトリクスを決定します。有効な値:
|
|
[メトリクスの重み] |
複数のメトリクスが考慮される場合、メトリクス名と重みを設定します。システムは、加重和を最終評価メトリクスとして比較に用います。
|
|
[メトリクスソース] |
メトリクスのソース:
|
|
[最適化方向] |
トライアル結果を評価するための最適化方向。有効な値:
|
|
[モデルのストレージパス] |
モデルを格納するためのパス。パスには、異なるハイパーパラメーターの組み合わせで生成されたモデルを区別するために |
検索設定
|
パラメーター |
説明 |
|
[検索アルゴリズム] |
検索アルゴリズムは、ハイパーパラメーターの検索範囲と以前のトライアルの結果やパフォーマンスメトリクスに基づいて、次のトライアルのためにより良いハイパーパラメーターの組み合わせを見つける自動機械学習アルゴリズムです。サポートされているアルゴリズムの種類:
アルゴリズムの詳細については、「サポートされている検索アルゴリズム」をご参照ください。 |
|
[最大トライアル数] |
実験が実行できるトライアルの最大数。 |
|
[最大同時トライアル数] |
実験が並行して実行できるトライアルの最大数。 |
早期停止の有効化 |
早期停止を有効にすると、トライアルが特定のハイパーパラメーターの組み合わせを評価する際に結果が著しく悪いと判断した場合、完全な評価を完了することなく、トライアルの評価プロセスを早期に終了できます。 |
開始ステップ |
このパラメーターは、早期停止が有効な場合にのみ使用できます。早期停止がトリガーされる前にトライアルが完了する必要がある最小評価数を指定します。 |
次のステップ
付録:参考情報
以下は、MaxCompute ジョブのハイパーパラメーターチューニングの設定例です。
-
使用する Designer コンポーネント:k-means クラスタリング および クラスタリングモデル評価。
-
コマンドは次のように設定されます。cmd1 と cmd2 は 2 つのコンポーネントのコマンドに対応し、順に記述します。具体的なワークフローについては、「MaxCompute k-means クラスタリング」 をご参照ください。
-
cmd1
pai -name kmeans
-project algo_public
-DinputTableName=pai_kmeans_test_input
-DselectedColNames=f0,f1
-DappendColNames=f0,f1
-DcenterCount=${centerCount}
-Dloop=10
-Daccuracy=0.01
-DdistanceType=${distanceType}
-DinitCenterMethod=random
-Dseed=1
-DmodelName=pai_kmeans_test_output_model_${exp_id}_${trial_id}
-DidxTableName=pai_kmeans_test_output_idx_${exp_id}_${trial_id}
-DclusterCountTableName=pai_kmeans_test_output_couter_${exp_id}_${trial_id}
-DcenterTableName=pai_kmeans_test_output_center_${exp_id}_${trial_id};
-
cmd2
PAI -name cluster_evaluation
-project algo_public
-DinputTableName=pai_cluster_evaluation_test_input
-DselectedColNames=f0,f1
-DmodelName=pai_kmeans_test_output_model_${exp_id}_${trial_id}
-DoutputTableName=pai_ft_cluster_evaluation_out_${exp_id}_${trial_id};