調整ジョブの追跡および完了基準の設定 - Amazon SageMaker

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

調整ジョブの追跡および完了基準の設定

完了基準を使用して、特定の条件が満たされた場合にチューニングジョブを停止するように自動モデルチューニング (AMT) に指示できます。これらの条件では、目標メトリクスに対して評価した際に改善されていないモデルパフォーマンスの最小値またはトレーニングジョブの最大数を設定できます。また、調整ジョブの進行状況を追跡して、継続させるか、手動で停止するかを決定することもできます。このガイドでは、調整ジョブの完了基準を設定する方法、進行状況を確認する方法、および調整ジョブを手動で停止する方法を説明します。

調整ジョブの完了基準を設定する

ハイパーパラメータ最適化中、調整ジョブによりループ内で複数のトレーニングジョブが起動されます。調整ジョブでは、以下のことが行われます。

  • トレーニングジョブの完了状況を確認し、それに応じて統計情報を更新する。

  • 次に評価するハイパーパラメータの組み合わせを決定する。

AMT は、チューニングジョブから起動されたトレーニングジョブを継続的にチェックして、統計を更新します。これらの統計情報には、調整ジョブの実行時間とベストトレーニングジョブが含まれます。次に、 は、完了基準に従ってジョブを停止するかどうかAMTを決定します。これらの統計情報を確認して、ジョブを手動で停止することもできます。ジョブを手動で停止する方法の詳細については、「調整ジョブを手動で停止する」セクションを参照してください。

たとえば、調整ジョブが目的を満たしていれば、リソースを節約したり、モデルの品質を確保したりするために、調整を早期に中止できます。AMT は、ジョブのパフォーマンスを完了基準に照らして確認し、チューニングジョブが満たされた場合に停止します。

次の種類の完了基準を指定できます。

  • MaxNumberOfTrainingJobs — 調整が停止される前に実行するトレーニングジョブの最大数。

  • MaxNumberOfTrainingJobsNotImproving — 現在のベストトレーニングジョブの目標メトリクスに対してパフォーマンスが向上しないトレーニングジョブの最大数。たとえば、最適なトレーニングジョブによって、精度が 90% で、MaxNumberOfTrainingJobsNotImproving10 に設定された目標メトリクスが返された場合です。この例では、10 トレーニングジョブが 90 % より高い精度を返さなかった場合、調整が停止します。

  • MaxRuntimeInSeconds — 調整ジョブを実行できる時間のウォールクロック時間の上限 (秒単位)。

  • TargetObjectiveMetricValue — 調整ジョブの評価基準となる目標メトリクスの値。この値が満たされると、 はチューニングジョブをAMT停止します。

  • CompleteOnConvergence — 内部アルゴリズムにより、調整ジョブが最適なトレーニングジョブの目標メトリクスより 1% 以上改善する可能性は低いと判断されたら、調整を停止するフラグ。

完了基準の選択

完了基準を 1 つまたは複数選択して、条件が満たされた後にハイパーパラメータの調整を停止できます。以下の手順では、完了基準を選択する方法と、どの基準がユースケースに最も適しているかを判断する方法を示しています。

  • MaxNumberOfTrainingJobs で を使用して、チューニングジョブが停止する前に実行できるトレーニングジョブの数の上限ResourceLimitsAPIを設定します。大きい数から始めて、調整ジョブの目標と照らし合わせながら、モデルのパフォーマンスに基づいて調整します。ほとんどのユーザーは、最適なハイパーパラメータ設定を見つけるために、50 個以上のトレーニングジョブの値を入力します。より高いレベルのモデルパフォーマンスを求めるユーザーは、200 個以上のトレーニングジョブを使用します。

  • 指定された数のジョブの後にモデルパフォーマンスが改善しない場合、 BestObjectiveNotImproving API フィールドMaxNumberOfTrainingJobsNotImprovingで を使用してトレーニングを停止します。モデルのパフォーマンスは、目的関数に対して評価されます。MaxNumberOfTrainingJobsNotImproving が満たされると、 AMTはチューニングジョブを停止します。調整ジョブは、ジョブの開始時に最も進捗が進む傾向があります。目的関数に対するモデルのパフォーマンスを改善するには、調整の終わりに近づくにつれ、より多くのトレーニングジョブが必要になります。類似のトレーニングジョブのパフォーマンスを目標メトリクスと照合して、MaxNumberOfTrainingJobsNotImproving の値を選択します。

  • MaxRuntimeInSeconds で を使用して、チューニングジョブにかかる可能性のある壁クロック時間の上限ResourceLimitsAPIを設定します。このフィールドを使用して、調整ジョブの完了期限を守ったり、コンピュートリソースを制限したりします。

    調整ジョブの推定合計計算時間を秒単位で求めるには、次の式を使用します。

    推定最大計算時間 (秒)= MaxRuntimeInSeconds * MaxParallelTrainingJobs * MaxInstancesPerTrainingJob

    注記

    調整ジョブの実際の時間は、このフィールドで指定された値と若干異なる場合があります。

  • TargetObjectiveMetricValue で を使用してチューニングジョブをTuningJobCompletionCriteriaAPI停止します。調整ジョブによって開始されたトレーニングジョブがこの目標メトリクスに達したら、調整ジョブを停止します。最適なモデルを見つけるために、ユースケースがコンピューティングリソースを費やすことではなく、特定のパフォーマンスレベルに達することに依存する場合は、このフィールドを使用してください。

  • CompleteOnConvergence で を使用してTuningJobCompletionCriteriaAPI、チューニングジョブが収束したことを AMT が検出した後、チューニングジョブを停止し、さらに大きな進展が生じる可能性は低いです。このフィールドは、他の完了基準のどの値を使用すべきかが明確でない場合に使用します。AMT は、さまざまなベンチマークに基づいて開発およびテストされたアルゴリズムに基づいて収束を決定します。調整ジョブは、どのトレーニングジョブでも大幅な改善 (1% 以下) がもたらされない場合に収束したと定義されます。改善は、これまでに最もパフォーマンスの高いジョブによって返された目標メトリクスに対して測定されます。

さまざまな完了基準を組み合わせる

同じ調整ジョブで、さまざまな完了基準を組み合わせることもできます。AMT は、完了基準のいずれかが満たされると、チューニングジョブを停止します。たとえば、目標メトリクスを満たすまではモデルを調整したいが、ジョブが収束したら調整を続けたくない場合は、次のガイダンスを使用します。

  • TargetObjectiveMetricValue で を指定TuningJobCompletionCriteriaAPIして、到達するターゲット目標メトリクス値を設定します。

  • AMT モデルのパフォーマンスが向上する可能性が低いと判断した場合は、チューニングジョブを停止Enabledするように CompleteOnConvergenceを設定します。

調整ジョブの進行状況を追跡する

を使用して、チューニングジョブの実行中にいつでも進行状況DescribeHyperParameterTuningJobAPIを追跡できます。調整ジョブの追跡情報を取得するために完了基準を指定する必要はありません。以下のフィールドを使用して、調整ジョブに関する統計情報を取得します。

  • BestTrainingJob – これまでに取得した最適なトレーニングジョブを記述し、目標メトリクスに対して評価されるオブジェクト。このフィールドを使用して、現在のモデルパフォーマンスと、このベストトレーニングジョブの目標メトリクスの値を確認します。

  • ObjectiveStatusCounters – チューニングジョブで完了したトレーニングジョブの合計数を指定するオブジェクト。調整ジョブの平均時間を推定するには、ObjectiveStatusCounters と調整ジョブの合計ランタイムを推定します。平均時間を使用すると、調整ジョブの実行時間を推定できます。

  • ConsumedResources — 調整ジョブで消費される RunTimeInSeconds などのリソースの総消費量です。にある DescribeHyperParameterTuningJob ConsumedResources同じ BestTrainingJobの APIと比較しますAPI。また、 からのレスポンスConsumedResourcesと比較してListTrainingJobsForHyperParameterTuningJobAPI、消費されているリソースを考慮して、チューニングジョブが満足のいく進歩を遂げているかどうかを評価することもできます。

  • TuningJobCompletionDetails – 以下を含むジョブ完了情報の調整:

    • ジョブが収束した場合、収束が検出された時点を示すタイムスタンプ。

    • モデルのパフォーマンスが改善していないトレーニングジョブの数。モデルのパフォーマンスは、最適なトレーニングジョブの目標メトリクスに対して評価されます。

    調整ジョブの完了基準を使用して、調整ジョブによってモデルのパフォーマンスがどの程度向上するかを評価します。モデルのパフォーマンスは、完了まで実行された場合、最善の目標メトリクスに対して評価されます。

調整ジョブを手動で停止する

完了まで調整ジョブを実行するか、調整ジョブを手動で停止するかを決定できます。これを決定するには、前のトラッキング調整ジョブの進行状況セクションに示すようにAPI、 DescribeHyperParameterTuningJob のパラメータによって返される情報を使用します。例として、複数のトレーニングジョブが完了してもモデルのパフォーマンスが改善されない場合は、調整ジョブを停止できます。モデルのパフォーマンスは、最善の目標メトリクスに対して評価されます。

チューニングジョブを手動で停止するには、 StopHyperParameterTuningJob API を使用し、停止するチューニングジョブの名前を指定します。