すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:実験を作成するCreate an experiment

最終更新日:Jul 22, 2024

AutoMLは、Platform for AI (PAI) によって提供される強化された機械学習サービスです。 複数のアルゴリズムと分散コンピューティングリソースを統合します。 AutoMLを使用する場合は、コードを記述する必要はありません。 モデルのハイパーパラメータを微調整し、機械学習の効率とパフォーマンスを向上させるための実験を作成できます。 このトピックでは、実験を作成する方法について説明します。

背景情報

AutoMLのしくみ:

実験は、設定されたアルゴリズムに基づいて複数のハイパーパラメータの組み合わせを生成します。 実験では、ハイパーパラメータの組み合わせごとに試行を作成します。 各トライアルは、1つのDLC (Deep Learning Containers) タスクまたは1つ以上のMaxComputeタスクに対応することができます。 タスクの種類は、実験の実行設定によって異なります。 システムは、設定されたタスクに基づいてトライアルを実行します。 実験は、複数の試行をスケジュールし、実行し、これらの試行の結果を比較して、最適なハイパーパラメータの組み合わせを見つける。 AutoMLの仕組みの詳細については、「AutoMLの仕組み」をご参照ください。

前提条件

手順

  1. AutoMLページに移動します。

    1. PAIコンソールにログインします。

    2. 左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。 [ワークスペース] ページで、管理するワークスペースの名前をクリックします。

    3. 左側のナビゲーションウィンドウで、[モデルの開発とトレーニング] > [AutoML] を選択します。

  2. AutoMLページで、[実験の作成] をクリックします。

  3. [実験の作成] ページで、パラメーターを設定します。

    • 基本情報セクションのパラメータ

      パラメーター

      説明

      名前

      実験の名前。 このパラメーターは、プロンプトに従って指定できます。

      説明

      作成する実験の簡単な説明。 説明は、異なる実験を区別するために使用される。

      可視性

      実験の可視性。 有効な値:

      • Visible to Me: この実験は、現在のワークスペースのアカウントと管理者に表示されます。

      • 現在のワークスペースに表示: ワークスペース内のすべてのユーザーに実験が表示されます。

    • [実行設定] セクションimage.pngのパラメータ

      ジョブタイプ: トライアルの実行環境。 [DLC] または [MaxCompute] を選択できます。

      • DLC: DLCタスクは、ハイパーパラメータの微調整のために実行される。 DLCタスクの詳細については、「トレーニングジョブの送信」をご参照ください。

      • MaxCompute: Machine Learning DesignerコンポーネントのSQLコマンドまたはPAIコマンドは、MaxComputeコンピューティングリソースを使用してハイパーパラメータの微調整を実行することによって実行されます。 Machine Learning Designerコンポーネントと各コンポーネントでサポートされているPAIコマンドの詳細については、「コンポーネントリファレンス: すべてのコンポーネントの概要」をご参照ください。

      DLC

      ジョブタイプにDLCを選択した場合、次のパラメーターを設定します。

      パラメーター

      説明

      フレームワーク

      サポートされているフレームワーク。 有効な値:

      • Tensorflow

      • PyTorch

      データセット

      準備したデータセット。 データセットの設定方法の詳細については、「データセットの作成と管理」をご参照ください。

      コード

      タスクのコードファイルが格納されるリポジトリ。 この例では、準備したコードファイルのリポジトリを指定する必要があります。 設定方法の詳細については、「コードビルド」をご参照ください。

      説明

      DLCは、指定された作業ディレクトリにコードをダウンロードします。 したがって、コードリポジトリにアクセスするための権限が必要です。

      リソースグループ

      購入したパブリックリソースグループまたは専用リソースグループ。 リソースグループの準備方法の詳細については、「専用リソースグループの作成と一般的なコンピューティングリソースの購入」および「Lingjun resource quotas」をご参照ください。

      [インスタンスタイプ]

      タスクの実行に必要なインスタンスタイプ。 インスタンスの価格は、インスタンスのタイプによって異なります。 各インスタンスタイプの課金の詳細については、「DLCの課金」をご参照ください。

      ノードイメージ

      ワーカーノードによって使用されるイメージ。 有効な値:

      • コミュニティイメージ: コミュニティによって提供される標準イメージ。 さまざまなコミュニティイメージの詳細については、「パブリックイメージ」の「コミュニティイメージ (オープンソースの標準イメージ) 」セクションを参照してください。

      • PAIイメージ: Alibaba Cloud PAIが提供するイメージ。 PAIイメージは、さまざまな種類のリソース、Pythonバージョン、および深層学習フレームワーク (TensorFlowおよびPyTorch) をサポートしています。 PAIイメージの詳細については、「パブリックイメージ」をご参照ください。

      • カスタムイメージ: PAIに追加するカスタムイメージ。 カスタムイメージを選択する前に、カスタムイメージをPAIに追加する必要があります。 詳細については、「カスタムイメージ」をご参照ください。

      • 画像アドレス: カスタム、コミュニティ、またはPAI画像のアドレス。 イメージアドレスを選択した場合は、インターネット経由でアクセスするDockerレジストリイメージのURLも指定する必要があります。

      ノード数

      DLCタスクで使用される計算ノードの数。

      重要

      複数のノードを設定する場合、各ノードは同じインスタンスタイプに基づいて課金されるのではなく、個別に課金されます。 このパラメーターを指定するときは、各ノードのコストを決定し、コストとパフォーマンスの妥協点を考慮する必要があります。

      vCPU

      [リソースグループ] ドロップダウンリストから購入した専用リソースグループを選択した場合、購入したリソースの仕様に基づいてこれらのパラメーターを指定できます。

      メモリ (GiB)

      共有メモリ (GiB)

      GPU

      詳細設定

      高度な設定により、トレーニングの柔軟性を高めたり、特定のトレーニングシナリオに適応したりできます。 [フレームワーク] ドロップダウンリストからPyTorchを選択すると、詳細設定を構成できます。 サポートされている高度なパラメーターとその有効な値の詳細については、「トレーニングジョブの送信」の「付録1: 高度なパラメーター」セクションを参照してください。

      Node Startupコマンド

      ノードを開始するために実行されるコマンド。 ハイパーパラメーター変数を設定するには、コマンドで ${Custom hyperparameter variables} を指定する必要があります。 例:

      python /mnt/data/examples/search/dlc_mnist/mnist.py

      -- data_dir=/mnt/data/examples/search/data -- save_model=/mnt/data /search/model=${exp_id} {trial_id /filemer} -- batch_search}

      上記のコマンドでは、${batch_size}${lr} は、定義するハイパーパラメーター変数です。

      ハイパーパラメータ

      ハイパーパラメータリストは、起動コマンドで設定されたハイパーパラメータ変数に基づいて自動的にロードされます。 ハイパーパラメータごとに制約タイプと検索スペースを指定する必要があります。

      • 制約タイプ: ハイパーパラメータに課される制約。 制約タイプの横にあるimage.pngアイコンの上にポインターを移動して、サポートされている制約タイプと関連する説明を表示できます。

      • Search Space: ハイパーパラメータの値の範囲。 探索空間の設定方法は、ハイパーパラメータの制約タイプに基づいて異なる。 アイコンをクリックしimage.png、プロンプトに従って値を追加できます。

      MaxCompute

      ジョブタイプに [MaxCompute] を選択した場合、次のパラメーターを設定します。

      パラメーター

      説明

      コマンド

      特定のMachine Learning DesignerコンポーネントのSQLコマンドまたはPAIコマンド。 ハイパーパラメーター変数を設定するには、コマンドで ${Custom hyperparameter variables} を指定する必要があります。 例:

      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} は、定義するハイパーパラメーター変数です。

      その他の構成例については、このトピックの「付録: 参照」をご参照ください。

      ハイパーパラメータ

      ハイパーパラメータリストは、コマンドで設定されたハイパーパラメータ変数に基づいて自動的にロードされます。 ハイパーパラメータごとに制約タイプと検索スペースを指定する必要があります。

      • 制約タイプ: ハイパーパラメータに課される制約。 制約タイプの横にあるimage.pngアイコンの上にポインターを移動して、サポートされている制約タイプと関連する説明を表示できます。

      • Search Space: ハイパーパラメータの値の範囲。 探索空間の設定方法は、ハイパーパラメータの制約タイプに基づいて異なる。 アイコンをクリックしimage.png、プロンプトに従って値を追加できます。

    • トライアル设定セクションのパラメータ

      特定のハイパーパラメーターの組み合わせを使用してタスクを実行する必要がある場合は、次のパラメーターを設定します。image.png

      パラメーター

      説明

      メトリックタイプ

      トライアルの評価に使用されるメトリックのタイプ。 有効な値:

      • summary: 最終的なメトリック値は、Object Storage Service (OSS) から取得したTensorflowサマリーファイルから抽出されます。

      • table: 最終的なメトリック値は、MaxComputeテーブルから抽出されます。

      • stdout: 実行中のプロセスでstdoutから最終的なメトリック値が抽出されます。

      • json: 最終的なメトリック値はJSONファイルとしてOSSに保存されます。

      移動方法

      複数の中間メトリック値がタスク実行プロセス中に徐々に生成された後に最終メトリック値を決定するために使用される計算方法。 有効な値:

      • final: 最後のメトリック値は、トライアル全体の最終メトリック値として使用されます。

      • best: タスク実行プロセス中に取得された最適なメトリック値は、トライアル全体の最終メトリック値として使用されます。

      • avg: タスク実行プロセス中に取得されたすべての中間メトリック値の平均値が、試行全体の最終メトリック値として使用されます。

      メトリック重量

      複数のメトリックを同時に考慮する必要がある場合は、メトリックの名前と重みを設定できます。 次いで、システムは、重み付けされた合計値を最終メトリック値として使用する。

      • key: メトリックの名前。 正規表現に対応しています。

      • value: メトリックの重み。

      説明

      重みは負の値とすることができ、重みの和は1以外の値とすることができる。 カスタム値を設定できます。

      メトリックソース

      メトリックソース。

      • [Metric Type] ドロップダウンリストから [summary] または [json] を選択した場合、ファイルパスを設定する必要があります。 例: oss:// examplebucket/examples/search/pai/model/model _${ exp_id }_${ trial_id}

      • [メトリックの種類] ドロップダウンリストからテーブルを選択した場合、特定の結果を返すことができるSQL文を構成する必要があります。 例: pai_ft_cluster_evaluation_out _${ exp_id }_${ trial_id} からvrcとしてGET_JSON_OBJECT(summary, '$.calinhara') を選択します

      • [メトリックタイプ] ドロップダウンリストから [stdout] を選択した場合、コマンドキーワードを設定する必要があります。 このパラメーターは、cmdxまたはcmdx;xxx (cmd1;workerなど) に設定する必要があります。

      最適化

      試行結果を評価するために使用される最適化ゴール。 有効な値:

      • 最大化

      • 最小化

      モデルストレージパス

      モデルが保存されるパス。 ハイパーパラメータのさまざまな組み合わせを使用して生成されるモデルを区別するには、パスに ${exp_id }_${ trial_id} を含める必要があります。 例: oss:// examplebucket/examples/search/pai/model/model _${ exp_id }_${ trial_id}

    • [Search Configurations] セクションimage.pngのパラメータ

      パラメーター

      説明

      検索アルゴリズム

      自動機械学習アルゴリズム。 アルゴリズムに基づいて、システムは、ハイパーパラメータ探索空間と、完了した試行の実行結果およびメトリックとに基づいて、次の試行を実行するための最適なハイパーパラメータの組み合わせを見つける。 有効な値:

      • TPE

      • ランダム

      • GridSearch

      • 進化

      • GP

      • PBT

      検索アルゴリズムの詳細については、「AutoMLの制限と使用法の注意事項」の「サポートされている検索アルゴリズム」をご参照ください。

      最大トライアル

      実験で実行できるトライアルの最大数。

      最大同時試行

      実験で同時に実行できる試行の最大数。

  4. [送信] をクリックします。

    作成した実験を実験リストで表示できます。

次に何をすべきか

  • いつでも実験の詳細を表示して、実験の進行状況を取得できます。 各トライアルの実行結果を表示して、最適なハイパーパラメータの組み合わせを取得できます。 詳細については、「実験の詳細の表示」をご参照ください。

  • 実験を管理できます。 詳細については、「実験の管理」をご参照ください。

付録: 参照

次の設定例は、MaxComputeタスクを使用してハイパーパラメータの微調整を実行する場合の参照用に提供されています。

  • Machine Learning Designerコンポーネント: K-means ClusteringおよびClustering Model Evaluation

  • 次のコードは、2つのコンポーネントで使用されるcmd1コマンドとcmd2コマンドの設定を示しています。 2つのコマンドは、実行シーケンスに基づいてリストされます。 詳細な手順については、「K-means Clusteringコンポーネントの実行のベストプラクティス」をご参照ください。

    • 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};