AutoML は、PAI が提供する拡張機械学習サービスで、さまざまなアルゴリズムと分散コンピューティングリソースを統合しています。コードを記述することなく実験を作成してモデルのハイパーパラメーターをチューニングできるため、機械学習の効率とパフォーマンスが向上します。このトピックでは、実験の作成方法について説明します。
背景情報
AutoML の仕組みは次のとおりです:
実験は、アルゴリズムの設定に基づいてハイパーパラメーターの組み合わせを自動的に生成します。各組み合わせに対して、実験はトライアルを作成します。各トライアルは、実行設定に応じて 1 つの Deep Learning Containers (DLC) ジョブまたは 1 つ以上の MaxCompute ジョブに対応できます。設定されたジョブがトライアルを実行します。実験は複数のトライアルをスケジュールし、その結果を比較して最適なハイパーパラメーターの組み合わせを見つけ出します。詳細については、「AutoML の仕組み」をご参照ください。
前提条件
初めて AutoML を使用する前に、AutoML に必要な権限を付与する必要があります。
ワークスペースを作成済みであること。
DLC ジョブを作成する場合は、次の準備を完了してください:
DLC に必要な権限を付与済みであること。
汎用コンピューティングリソース用のパブリックリソースグループまたは専用リソースグループを準備済みであるか、Lingjun リソース用の専用リソースグループを準備済みであること。
MaxCompute ジョブを作成する場合は、MaxCompute リソースを準備し、ワークスペースに関連付ける必要があります。
操作手順
AutoML ページに移動します。
-
PAI コンソールにログインします。
-
左側のナビゲーションウィンドウで [ワークスペース] をクリックします。[ワークスペース] ページで、管理するワークスペースの名前をクリックします。
-
左側のナビゲーションウィンドウで、 を選択します。
-
[実験] ページで、新しい実験 をクリックします。
[新規実験] ページで、次のパラメーターを設定します。
基本情報
パラメーター
説明
名前
プロンプトに従って実験の名前を入力します。
説明
他の実験と区別するために、実験の簡単な説明を入力します。
可視性
実験の可視性。次の値がサポートされています:
Only to Me:実験は、あなたとワークスペースの管理者のみに表示されます。
Visible to the Current Workspace:実験は、ワークスペース内の全員に表示されます。
実行設定
[タスクタイプ] は、トライアルの実行環境を定義します。サポートされている環境は DLC と MaxCompute です。
DLC:このオプションを選択して、ハイパーパラメーターチューニングのために DLC ジョブを実行します。DLC ジョブの詳細については、「トレーニングタスクの作成」をご参照ください。
MaxCompute:このオプションを選択して、MaxCompute コンピューティングリソース上で Designer コンポーネントの SQL コマンドまたは PAI コマンドを実行し、ハイパーパラメーターチューニングを行います。Designer コンポーネントと各コンポーネントがサポートする PAI コマンドの詳細については、「Designer コンポーネントの概要」をご参照ください。
DLC
タスクタイプとして DLC を選択した場合は、次の表に従ってパラメーターを設定します:
パラメーター
説明
Resource Group
パブリックリソースグループまたは購入済みの専用リソースグループを選択します。リソースグループの準備方法については、「リソースグループの作成と汎用コンピューティングリソースの購入」および「リソースクォータの作成」をご参照ください。
Framework
次のフレームワークタイプがサポートされています:
TensorFlow
PyTorch
Datasets
準備したデータセットを選択します。
Code
ジョブコードファイルのストレージ場所 (コードリポジトリ情報) を指定します。準備したコード設定を選択します。
説明DLC は指定された作業パスにコードをダウンロードするため、コードリポジトリへのアクセス権限が必要です。
Node Image
ワーカーノードのイメージ。次のいずれかのイメージタイプを選択できます:
Alibaba Cloud Image:PAI は、さまざまなリソースタイプ、Python バージョン、および TensorFlow と PyTorch の深層学習フレームワークをサポートするさまざまな公式イメージを提供しています。イメージのリストについては、「(オプション) イメージの準備」をご参照ください。
Custom Image:PAI に追加したカスタムイメージを選択します。このオプションを選択する前に、PAI にカスタムイメージを追加する必要があります。
Image Address:カスタムイメージ、コミュニティイメージ、または PAI プラットフォームイメージの URL を指定します。Docker Registry イメージの URL は、パブリックネットワーク経由でアクセス可能である必要があります。
Instace Type
ジョブの実行に必要なインスタンスタイプを選択します。インスタンスタイプによって価格が異なります。課金の詳細については、「Deep Learning Containers (DLC) の課金」をご参照ください。
Nodes
DLC ジョブで使用される計算ノードの数。
重要複数のノードを設定した場合、各ノードは個別に課金されます。同じインスタンスタイプを共有しません。したがって、ノードを選択する際には、各ノードのコストを理解し、コストとパフォーマンスのバランスを取る必要があります。
vCPUs
Resource Group として購入済みの専用リソースグループを選択すると、その仕様に基づいてこれらのパラメーターを設定できます。
Memory (GiB)
Shared Memory (GiB)
GPUs
Advanced Settings
詳細設定を使用して、トレーニングの柔軟性を向上させたり、特定のトレーニングシナリオの要件を満たしたりします。フレームワークとして PyTorch を選択した場合は、詳細パラメーターを設定できます。
Startup Command
各ノードの起動コマンド。コマンドには、
${custom_hyperparameter_variable}のようなハイパーパラメーター変数を設定する必要があります。例:python /mnt/data/examples/search/dlc_mnist/mnist.py --data_dir=/mnt/data/examples/search/data --save_model=/mnt/data/exmaples/search/model/model_${exp_id}_${trial_id} --batch_size=${batch_size} --lr=${lr} --metric_filepath=/mnt/data/examples/search/metric/metric_${exp_id}_${trial_id}この例では、
${batch_size}と${lr}が定義されたハイパーパラメーター変数です。ハイパーパラメーター
起動コマンドで設定されたハイパーパラメーター変数に基づいて、ハイパーパラメーターのリストが自動的に読み込まれます。各ハイパーパラメーターについて、制約タイプと検索空間を設定します:
制約タイプ:ハイパーパラメーターに追加される条件。制約タイプの横にある
アイコンにカーソルを合わせると、サポートされているタイプとその説明が表示されます。検索空間:ハイパーパラメーターの値の範囲。検索空間の設定方法は、制約タイプによって異なります。
アイコンをクリックし、プロンプトに従って値を追加します。
MaxCompute
タスクタイプを [MaxCompute] に設定した場合は、次の表に従ってパラメーターを設定します:
パラメーター
説明
コマンド
Designer コンポーネントを実行するための SQL コマンドまたは PAI コマンドを設定します。コマンドには、
${custom_hyperparameter_variable}のようなハイパーパラメーター変数を設定する必要があります。例: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};この例では、
${centerCount}と${distanceType}が定義されたハイパーパラメーター変数です。その他の設定例については、「付録:リファレンス」をご参照ください。
ハイパーパラメーター
コマンドで設定されたハイパーパラメーター変数に基づいて、ハイパーパラメーターのリストが自動的に読み込まれます。各ハイパーパラメーターについて、制約タイプと検索空間を設定します:
制約タイプ:ハイパーパラメーターに追加される条件。制約タイプの横にある
アイコンにカーソルを合わせると、サポートされているタイプとその説明が表示されます。検索空間:ハイパーパラメーターの値の範囲。検索空間の設定方法は、制約タイプによって異なります。
アイコンをクリックし、プロンプトに従って値を追加します。
トライアル設定
特定のハイパーパラメーターの組み合わせでジョブを実行するために、次のパラメーターを設定します:
パラメーター
説明
メトリックタイプ
トライアルを評価するために使用されるメトリックのタイプ。有効な値:
summary:最終的なメトリックは、OSS の TensorFlow サマリーファイルからフェッチされます。
table:最終的なメトリックは、MaxCompute テーブルからフェッチされます。
stdout:最終的なメトリックは、実行時の標準出力 (stdout) からフェッチされます。
json:最終的なメトリックは、OSS に JSON ファイルとして保存されます。
計算方法
ジョブの実行中に、複数の中間メトリックが順次出力されます。最終的なメトリックを決定するために計算方法が必要です。有効な値:
final:最後のメトリックをトライアル全体の最終メトリックとして使用します。
best:ジョブ実行中に得られた最良のメトリックをトライアル全体の最終メトリックとして使用します。
avg:ジョブ実行中に得られたすべての中間メトリックの平均値をトライアルの最終メトリックとして使用します。
メトリックの重み
複数のメトリックを同時に考慮するために、メトリック名とそれに対応する重みを設定します。システムは、加重和を最終的な評価メトリックとして比較に使用します。
key:メトリックの名前。正規表現がサポートされています。
value:対応する重み。
説明重みは負の値にすることもできます。重みの合計は 1 である必要はなく、カスタマイズ可能です。
メトリックソース
メトリックのソース:
[メトリックタイプ] を summary または json に設定した場合は、ファイルパスを設定する必要があります。例:
oss://examplebucket/examples/search/pai/model/model_${exp_id}_${trial_id}。[メトリックタイプ] を [table] に設定した場合は、特定の結果を取得できる SQL 文を設定する必要があります。例:
select GET_JSON_OBJECT(summary, '$.calinhara') as vrc from pai_ft_cluster_evaluation_out_${exp_id}_${trial_id}。[メトリックタイプ] を [stdout] に設定した場合は、コマンドのキーワードを設定する必要があります。
cmdxまたはcmdx;xxx,such as cmd1;workerのみがサポートされています。
最適化方向
トライアル結果を評価するための最適化方向。有効な値:
大きいほど良い
最小化
モデルストレージパス
モデルが保存されるパス。異なるハイパーパラメーターの組み合わせで生成されたモデルを区別するために、パスには
${exp_id}_${trial_id}を含める必要があります。例:oss://examplebucket/examples/search/pai/model/model_${exp_id}_${trial_id}。検索設定
パラメーター
説明
検索アルゴリズム
次のトライアルを実行するために、より良いハイパーパラメーターの組み合わせを見つける自動機械学習アルゴリズムです。ハイパーパラメーターの検索空間、および以前のトライアルの結果とパフォーマンスメトリックに基づいて検索を行います。次のアルゴリズムタイプがサポートされています:
TPE
Random
GridSearch
Evolution
GP
PBT
アルゴリズムの詳細については、「サポートされている検索アルゴリズム」をご参照ください。
最大検索回数
実験が実行できるトライアルの最大数。
最大同時実行数
実験が並行して実行できるトライアルの最大数。
Submit をクリックします。
作成した実験は、実験リストで確認できます。
次のステップ
付録:リファレンス
次のセクションでは、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};