トレーニングメトリクスの定義 - Amazon SageMaker AI

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

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

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

SageMaker AI コンソール、SageMaker AI SageMaker Python SDK、または低レベルの SageMaker AI 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 AI Python SDK を使用してメトリクスを定義する

Estimator オブジェクトを初期化するときに、metric_definitions 引数としてメトリクス名と正規表現のリストを指定することで、CloudWatch に送信するメトリクスを定義します。例えば、train:errorvalidation: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=(.*?);'} ] )

Amazon SageMaker Python SDK 推定器を使用したトレーニングの詳細については、GitHub の 「SageMaker Python SDK」を参照してください。

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

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

コンソールのアルゴリズムオプションフォームの例。

低レベルの SageMaker AI API を使用してメトリクスを定義する

CreateTrainingJob オペレーションに渡す AlgorithmSpecification 入力パラメータの MetricDefinitions フィールドでメトリクス名と正規表現のリストを指定することで、CloudWatch に送信するメトリクスを定義します。例えば、train:errorvalidation: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 AI API を使用したトレーニングジョブの定義と実行の詳細については、「」を参照してくださいCreateTrainingJob