Amazon を使用してトレーニングジョブのモニタリングと分析を行う CloudWatchメトリクス - アマゾン SageMaker

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

Amazon を使用してトレーニングジョブのモニタリングと分析を行う CloudWatchメトリクス

アマゾン SageMaker トレーニングジョブは、トレーニングデータセットの例を提示することで、モデルに予測することを学習させる反復プロセスです。通常、トレーニングアルゴリズムは、トレーニングエラーや予測精度など、複数のメトリクスを計算します。これらのメトリクスは、モデルがうまく学習しているかどうかと、見えないデータについて予測を行うためにうまく一般化されるかどうかを診断するのに役立ちます。トレーニングアルゴリズムはこれらのメトリクスを、これらのメトリクスの値がログに書き込みます。 SageMaker 監視してAmazonに送信 CloudWatch リアルタイムで。トレーニングジョブのパフォーマンスを分析するため、 CloudWatch でこれらのメトリクスのグラフを表示できます。トレーニングジョブが完了すると、DescribeTrainingJob 演算子を呼び出すことで最終的な反復作業で計算されるメトリクス値のリストを取得することもできます。

注記

アマゾン CloudWatch サポートする高分解能カスタムメトリクス、その最高分解能は 1 秒です。ただし、分解能が細かいほど、寿命は短くなります CloudWatch メトリクス。1 秒の周波数分解能では、 CloudWatch メトリクスは 3 時間使用できます。分解能と寿命の詳細については CloudWatch メトリック、を参照してくださいGetMetricStatistics()アマゾン CloudWatch API リファレンス

ヒント

100 ミリ秒 (0.1 秒) の粒度まで細かい分解能でトレーニングジョブをプロファイリングし、トレーニングメトリクスをカスタム分析のためにいつでも無期限に Amazon S3 に保存する必要がある場合は、アマゾン SageMaker デバッガー。 SageMaker デバッガーには、一般的なトレーニングの問題を自動的に検出するルールが組み込まれており、ハードウェアリソース使用率の問題 (CPU、GPU、I/O のボトルネックなど) および非収束モデルの問題 (オーバーフィット、勾配消失、テンソルの爆発など) を検出します。 SageMaker デバッガーは、Studio とそのプロファイリングレポートを通じて可視化機能も提供します。デバッガーのビジュアライゼーションを確認するには、SageMaker デバッガーインサイトダッシュボードチュートリアル,デバッガープロファイリングレポートのチュートリアル、およびSMDebug クライアントライブラリを使ってデータを分析する

トレーニングメトリクスの定義

SageMaker トレーニングジョブログを自動的に解析し、トレーニングメトリクスを送信します CloudWatch。デフォルトでは、 SageMaker にリストされているシステムリソース使用率メトリックを送信しますSageMaker ジョブとエンドポイントメトリクス。目的 SageMaker ログを解析し、独自のアルゴリズムのトレーニングジョブからのカスタムメトリックを CloudWatch、を設定する際、メトリクス名と正規表現を渡すことでメトリクス定義を明確にする必要があります SageMaker トレーニングのお仕事依頼

追跡するメトリクスは、 SageMaker コンソールSageMaker Python、または低レベル SageMaker API。

独自のアルゴリズムを使用している場合は、次の手順に従います。

  • 取得するメトリクスがアルゴリズムによって必ずログに書き込まれるようにします。

  • 送信するメトリクスの値が取得されるよう正確にログを検索する正規表現を定義します。 CloudWatch。

例えば、アルゴリズムによって次のようなトレーニングエラーおよび検証エラーのメトリクスが発行されるとします。

Train_error=0.138318; Valid_error=0.324557;

これら両方の指標を以下で監視したい場合 CloudWatchでは、メトリクス定義のディクショナリは次の例のようになります。

[ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ]

上記例で定義されている train:error メトリクスの正規表現では、正規表現の最初の部分で「Train_error=」に一致するテキストを検索し、(.*?); で、最初のセミコロン文字が現れるまで、すべての文字を取得します。この正規表現では、括弧内のテキストを取得するよう指示します。. は任意の文字、* は 0 文字以上の文字、? は、; 文字の最初のインスタンスまでのみ取得されます。

を使用してメトリクスを定義する SageMaker Python

送信するメトリクスを定義する CloudWatch メトリックス名と正規表現のリストを次のように指定してmetric_definitions初期化するときの引数Estimatorオブジェクト。例えば、両方を監視する場合はtrain:errorそしてvalidation:errorのメトリクス CloudWatch、きみのEstimator初期化は以下の例のようになります。

import sagemaker from sagemaker.estimator import Estimator estimator = Estimator( image_uri="your-own-image-uri", role=sagemaker.get_execution_role(), sagemaker_session=sagemaker.Session(), instance_count=1, instance_type='ml.c4.xlarge', metric_definitions=[ {'Name': 'train:error', 'Regex': 'Train_error=(.*?);'}, {'Name': 'validation:error', 'Regex': 'Valid_error=(.*?);'} ] )

の使用によるトレーニングの詳細についてはアマゾン SageMaker Python推定者、見るSagemaker Python SDKオン GitHub。

を使用してメトリクスを定義する SageMakerコンソール

選択内容ECR 内の独自のアルゴリズムコンテナオプションをアルゴリズムソースとして SageMaker コンソールトレーニングジョブを作成したら、メトリックの定義をメトリクスセクション。次のスクリーンショットは、サンプルメトリクス名とその対応する正規表現を追加した後の状態を示しています。

低レベルを使用してメトリクスを定義する SageMakerAPI

送信するメトリクスを定義する CloudWatch メトリクス名と正規表現のリストをMetricDefinitionsフィールドのAlgorithmSpecificationに渡す入力パラメータCreateTrainingJob操作。例えば、両方を監視する場合はtrain:errorそしてvalidation:errorのメトリクス CloudWatch、きみのAlgorithmSpecification次の例のようになります。

"AlgorithmSpecification": { "TrainingImage": your-own-image-uri, "TrainingInputMode": "File", "MetricDefinitions" : [ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ] }

低レベルの使用によるトレーニングジョブの定義と実行の詳細については SageMaker API、「」を参照してくださいCreateTrainingJob

トレーニングJob メトリクスのモニタリング (CloudWatch コンソール)

トレーニングジョブがリアルタイムに発行するメトリクスは、 CloudWatch コンソールでモニタリングできます。

トレーニングジョブメトリクスをモニタリングするには (CloudWatch コンソール)

  1. を開きます CloudWatch コンソールhttps://console.aws.amazon.com/cloudwatch

  2. 選択してくださいメトリクスを選択し、/aws/sagemaker/TrainingJobs

  3. 選択してくださいTrainingJobName

  4. [すべてのメトリクス] タブで、監視するトレーニングメトリクスの名前を選択します。

  5. [グラフ化したメトリクス] タブで、グラフのオプションを設定します。の使用方法の詳細については CloudWatch グラフ、「」を参照してくださいグラフメトリクス()アマゾン CloudWatch ユーザーガイド

トレーニングジョブメトリクスのモニタリング (SageMaker コンソール)

トレーニングジョブでリアルタイムに発行されるメトリクスをモニタリングするには、 SageMaker コンソールを使用します。

トレーニングジョブメトリクスをモニタリングするには (SageMaker コンソール)

  1. を開きます SageMaker コンソールhttps://console.aws.amazon.com/sagemaker

  2. [トレーニングジョブ] を選択後、メトリクスを表示するトレーニングジョブを選択します。

  3. 選択してくださいTrainingJobName

  4. [モニタリング] セクションで、インスタンスの使用状況とアルゴリズムのメトリクスをグラフを確認できます。

例: トレーニングカーブと検証カーブの表示

一般的には、モデルのトレーニングに使うデータをトレーニングデータセットと検証データセットに分割します。パラメータを使用して、モデルのトレーニングに設定されているトレーニングを予測するために使用されるトレーニングデータセットを選択します。次に、検証セットの予測を計算して、モデルでどの程度予測できるかをテストします。トレーニングジョブのパフォーマンスを分析するには通常、検証の曲線に対してトレーニング曲線をプロットします。

継続したトレーニングおよび検証セット両方の精度を示すグラフを表示することによって、モデルのパフォーマンス向上につながります。例えば、トレーニングの精度が時間の経過とともに継続して高まっているが、ある時点で検証精度が下がり始める場合、モデルを過剰適合している可能性が高くなります。このような状況に対応するには、正規化の向上など、モデルの調整を行います。

この例では、I.mage-classification-full-trainingの例サンプルノートブックあなたのセクション SageMaker ノートブックインスタンス。[] プラグインが無い場合 SageMaker ノートブックインスタンス、「」にある手順に従って作成できますステップ 1: Amazon を作成する SageMaker ノートブックインスタンス。必要に応じて、以下も行えます。エンドツーエンドマルチクラス画像分類の例上のノートブックの例で GitHub。トレーニングデータを保存するため、またモデル出力用にも Amazon S3 バケットが必要です。

トレーニングおよび検証エラー曲線を表示するには

  1. を開きます SageMaker コンソールhttps://console.aws.amazon.com/sagemaker

  2. [ノートブック] を選択し、次に [ノートブックインスタンス] を選択します。

  3. 使用するノートブックインスタンスを選択し、[Open (開く)] を選択します。

  4. ノートブックインスタンスのダッシュボードで、SageMaker例

  5. 拡張Amazon アルゴリズムの紹介セクションを選択し、使用アイテムの隣にI.mage-classification-fulltrainingipynb

  6. 選択してくださいコピーを作成。 SageMaker の編集可能なコピーを作成しますI.mage-classification-fulltrainingipynbノートブックインスタンスのノートブック。

  7. ノートブックのすべてのセルを Inference セクションまで実行します。エンドポイントをデプロイしたり、この例の推論を取得したりする必要はありません。

  8. トレーニングジョブが開始したら、 CloudWatch コンソールhttps://console.aws.amazon.com/cloudwatch

  9. 選択してくださいメトリクスを選択し、/aws/sagemaker/TrainingJobs

  10. 選択してくださいTrainingJobName

  11. [すべてのメトリクス] タブで、ノートブックで作成したトレーニングジョブ用に、train:accuracyvalidation:accuracy のメトリクスを選択します。

  12. グラフで、メトリクスの値によって拡大するエリアを選択します。次のような例が表示されます。