アルゴリズムを使用してハイパーパラメータ調整ジョブを実行する - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

アルゴリズムを使用してハイパーパラメータ調整ジョブを実行する

次のセクションでは、アルゴリズムリソースを使用して Amazon でハイパーパラメータチューニングジョブを実行する方法について説明します SageMaker。ハイパーパラメータ調整ジョブは、指定したアルゴリズムとハイパーパラメータの範囲を使用して、データセットに対して多数のトレーニングジョブを実行することにより、モデルの最適なバージョンを見つけます。さらに、選択したメトリクスでの測定に基づいて、最もパフォーマンスの高いモデルになるハイパーパラメータ値を選択します。詳細については、「を使用した自動モデル調整 SageMaker」を参照してください。

は、Amazon SageMaker コンソール、低レベルの Amazon 、または Amazon SageMaker Python SDKを使用して SageMaker API、アルゴリズムリソースを使用してハイパーパラメータチューニングジョブを作成できます。

アルゴリズムを使用してハイパーパラメータ調整ジョブを実行する (コンソール)

アルゴリズムを使用してハイパーパラメータ調整ジョブを実行するには (コンソール)
  1. で SageMaker コンソールを開きますhttps://console.aws.amazon.com/sagemaker/

  2. [Algorithms (アルゴリズム)] を選択します。

  3. [My algorithms (マイアルゴリズム)] タブのリストから作成したアルゴリズムを選択するか、[AWS Marketplace subscriptions (AWS Marketplace サブスクリプション)] タブでサブスクライブしたアルゴリズムを選択します。

  4. [ハイパーパラメータ調整ジョブの作成] を選択します。

    選択したアルゴリズムが自動的に選択されます。

  5. [ハイパーパラメータ調整ジョブの作成] ページで、以下の情報を指定します。

    1. [Warm start (ブート)] では、以前のハイパーパラメータ調整ジョブの情報をこのハイパーパラメータ調整ジョブの開始点として使用する場合に [Enable warm start (ウォームスタートを有効にする)] を選択します。詳細については、「ウォームスタートのハイパーパラメータ調整ジョブを実行する」を参照してください。

      1. 入力データがこのハイパーパラメータ調整ジョブの親ジョブの入力データと同じである場合は、[Identical data and algorithm (同一データとアルゴリズム)] を選択します。また、このハイパーパラメータ調整ジョブに追加または異なる入力データを使用するには、[Transfer learning (転移学習)] を選択します。

      2. [Parent hyperparameter tuning job(s) (親ハイパーパラメータ調整ジョブ)] では、このハイパーパラメータ調整ジョブの親として使用するハイパーパラメータ調整ジョブを最大 5 つ選択します。

    2. [調整ジョブ名] には、調整ジョブの名前を入力します。

    3. IAM ロール では、 でハイパーパラメータチューニングジョブを実行するために必要なアクセス許可を持つIAMロールを選択するか SageMaker、 が AmazonSageMakerFullAccess マネージドポリシーがアタッチされたロール SageMaker を作成できるように新しいロールを作成するを選択します。詳細については、 SageMaker 実行ロールの使用方法 を参照してください。

    4. ではVPC、チューニングジョブVPCが起動するトレーニングジョブにアクセスを許可する Amazon を選択します。詳細については、「Amazon のリソースへのアクセスを SageMaker トレーニングジョブに許可する VPC」を参照してください。

    5. [Next (次へ)] を選択します。

    6. [Objective metric (メトリクス名)] では、ハイパーパラメータ調整ジョブがハイパーパラメータの最適な組み合わせを決定するために使用するメトリクスを選択し、このメトリクスを最小化するか最大化するかを選択します。詳細については、「最善のトレーニングジョブを確認する」を参照してください。

    7. [ハイパーパラメータ設定] では、調整ジョブの検索対象として調整可能なハイパーパラメータの範囲を選択し、ハイパーパラメータ調整ジョブが開始するすべてのトレーニングジョブで一定のままにする必要のあるハイパーパラメータの静的な値を設定します。詳細については、「ハイパーパラメータの範囲を定義する」を参照してください。

    8. [Next (次へ)] を選択します。

    9. [入力データ設定] では、ハイパーパラメータ調整ジョブに使用する入力データのチャネルごとに以下の値を指定します。アルゴリズムの [Algorithm summary] (アルゴリズムの概要) ページの [Channel specification] (チャネル仕様) セクションでは、ハイパーパラメータチューニングのサポートに使用しているアルゴリズムのチャネル、コンテンツタイプ、サポートされる圧縮タイプ、サポートされる入力モードを確認できます。

      1. [チャネル名] には、入力チャネルの名前を入力します。

      2. [コンテンツタイプ] には、アルゴリズムがチャネルに期待するデータのコンテンツタイプを入力します。

      3. [圧縮タイプ] では、使用するデータ圧縮タイプがあればそれを選択します。

      4. [レコードラッパー] では、アルゴリズムで RecordIO 形式のデータが必要な場合に [RecordIO] を選択します。

      5. [S3 データタイプ]、[S3 データディストリビューションタイプ]、および [S3 の場所] には、適切な値を指定します。これらの値の意味については、S3DataSourceを参照してください。

      6. [入力モード] では、プロビジョニングされた ML ストレージボリュームからデータをダウンロードし、ディレクトリを Docker ボリュームにマウントする場合に [ファイル] を選択します。Amazon S3 からコンテナに直接データをストリーミングする場合は [Pipe (パイプ)] を選択します。

      7. 別の入力チャネルを追加するには、[チャネルの追加] を選択します。入力チャネルの追加が完了したら、[完了] を選択します。

    10. [出力] 場所には、以下の値を指定します。

      1. [S3 出力パス] では、このハイパーパラメータ調整ジョブが起動するトレーニングジョブがモデルアーティファクトなどの出力を保存する S3 の場所を選択します。

        注記

        この場所に保存されているモデルアーティファクトを使用して、このハイパーパラメータ調整ジョブからモデルまたはモデルパッケージを作成します。

      2. 暗号化キー の場合、 AWS KMS キーを使用して S3 ロケーションに保存中の出力データを暗号化 SageMaker する場合。

    11. [リソース設定] では、以下の情報を指定します。

      1. [インスタンスタイプ] では、ハイパーパラメータ調整ジョブが起動する各トレーニングジョブに使用するインスタンスのタイプを選択します。

      2. [インスタンス数] には、ハイパーパラメータ調整ジョブが起動する各トレーニングジョブに使用する ML インスタンスの数を入力します。

      3. [インスタンスあたりのボリュームサイズ (GB)] には、ハイパーパラメータ調整ジョブが起動する各トレーニングジョブをプロビジョニングする ML ストレージボリュームのサイズを入力します。ML ストレージボリュームには、モデルアーティファクトと増分ステートが保存されます。

      4. 暗号化キー の場合、Amazon SageMaker で AWS Key Management Service キーを使用してトレーニングインスタンスにアタッチされた ML ストレージボリューム内のデータを暗号化する場合は、キーを指定します。

    12. [リソースの制限] では、以下の情報を指定します。

      1. [トレーニングジョブの最大数] では、ハイパーパラメータ調整ジョブで起動するトレーニングジョブの最大数を指定します。ハイパーパラメータ調整ジョブは、最大 500 個のトレーニングジョブを起動できます。

      2. [最大並行トレーニングジョブ] では、ハイパーパラメータ調整ジョブが同時に起動できるトレーニングジョブの最大数を指定します。ハイパーパラメータ調整ジョブは、最大 10 個のトレーニングジョブを同時に起動することができます。

      3. [停止条件] には、ハイパーパラメータ調整ジョブが起動する各トレーニングジョブの最大実行時間を秒数、分数、時間数、または日数で指定します。

    13. [タグ] には、ハイパーパラメータ調整ジョブを管理するためのタグを 1 つ以上指定します。各タグは、キー、および値 (オプション) で構成されます。タグキーはリソースごとに一意である必要があります。

    14. [ジョブの作成] を選択して、ハイパーパラメータ調整ジョブを実行します。

アルゴリズムを使用してハイパーパラメータチューニングジョブを実行する (API)

アルゴリズムを使用してハイパーパラメータチューニングジョブを実行するには SageMaker API、 に渡されるAlgorithmSpecificationオブジェクトのAlgorithmNameフィールドとして、アルゴリズムの名前または Amazon リソースネーム (ARN) を指定しますCreateHyperParameterTuningJob。のハイパーパラメータ調整の詳細については SageMaker、「」を参照してくださいを使用した自動モデル調整 SageMaker

アルゴリズムを使用してハイパーパラメータチューニングジョブを実行する (Amazon SageMaker Python SDK

で作成またはサブスクライブしたアルゴリズムを使用して AWS Marketplace 、ハイパーパラメータチューニングジョブを作成し、AlgorithmEstimatorオブジェクトを作成し、Amazon リソースネーム (ARN) またはアルゴリズムの名前をalgorithm_arn引数の値として指定します。その後、estimator 引数の値として作成した AlgorithmEstimator を使用して、HyperparameterTuner オブジェクトを初期化します。最後に AlgorithmEstimatorfit メソッドを呼び出します。例:

from sagemaker import AlgorithmEstimator from sagemaker.tuner import HyperparameterTuner data_path = os.path.join(DATA_DIR, 'marketplace', 'training') algo = AlgorithmEstimator( algorithm_arn='arn:aws:sagemaker:us-east-2:764419575721:algorithm/scikit-decision-trees-1542410022', role='SageMakerRole', instance_count=1, instance_type='ml.c4.xlarge', sagemaker_session=sagemaker_session, base_job_name='test-marketplace') train_input = algo.sagemaker_session.upload_data( path=data_path, key_prefix='integ-test-data/marketplace/train') algo.set_hyperparameters(max_leaf_nodes=10) tuner = HyperparameterTuner(estimator=algo, base_tuning_job_name='some-name', objective_metric_name='validation:accuracy', hyperparameter_ranges=hyperparameter_ranges, max_jobs=2, max_parallel_jobs=2) tuner.fit({'training': train_input}, include_cls_metadata=False) tuner.wait()