

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

# 推論パイプラインのログとメトリクス
<a name="inference-pipeline-logs-metrics"></a>

モニタリングは、Amazon SageMaker AI リソースの信頼性、可用性、パフォーマンスを維持する上で重要です。推論パイプラインのパフォーマンスをモニタリングし、トラブルシューティングするには、Amazon CloudWatch のログとエラーメッセージを使います。SageMaker AI が提供するモニタリングツールの詳細については、「[Amazon SageMaker AI での AWS リソースのモニタリング](monitoring-overview.md)」を参照してください。

## メトリクスを使用してマルチコンテナモデルをモニタリングする
<a name="inference-pipeline-metrics"></a>

推論パイプラインでマルチコンテナモデルをモニタリングするには、Amazon CloudWatch を使います。CloudWatch は、raw データを収集して、それを読み取り可能なほぼリアルタイムのメトリクスに変換します。SageMaker AI のトレーニングジョブとエンドポイントは CloudWatch のメトリクスとログを `AWS/SageMaker` 名前空間に書き込みます。

次の表に、以下のメトリクスとディメンションの一覧を示します。
+ エンドポイントの呼び出し
+ トレーニングジョブ、バッチ変換ジョブ、エンドポイントインスタンス

*ディメンション*は、メトリクスを一意に識別する名前と値のペアです。1 メトリクスあたり最大 10 ディメンションを割り当てることができます。CloudWatch を使ったモニタリングの詳細については、「[Amazon CloudWatch における Amazon SageMaker AI メトリクス](monitoring-cloudwatch.md)」を参照してください。

**エンドポイント呼び出しメトリクス**

`AWS/SageMaker` 名前空間には、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InvokeEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InvokeEndpoint.html) への呼び出しからの次のリクエストメトリクスが含まれます。

メトリクスは 1 分間隔でレポートされます。


| メトリクス | 説明 | 
| --- | --- | 
| Invocation4XXErrors | `4xx` HTTP レスポンスコードを返したモデルの `InvokeEndpoint` リクエスト数。各 `4xx` レスポンスに、SageMaker AI は `1` を送信します。<br />単位: なし<br />有効な統計: `Average`、`Sum` | 
| Invocation5XXErrors | `5xx` HTTP レスポンスコードを返したモデルの `InvokeEndpoint` リクエスト数。各 `5xx` レスポンスに、SageMaker AI は `1` を送信します。<br />単位: なし<br />有効な統計: `Average`、`Sum` | 
| Invocations | モデルエンドポイントに送信された `number of InvokeEndpoint` リクエスト。<br />モデルエンドポイントに送信されたリクエストの合計数を得るには、`Sum` 統計を使用します。<br />単位: なし<br />有効な統計: `Sum`、`Sample Count` | 
| InvocationsPerInstance | 各 `ProductionVariant` で `InstanceCount` によって正規化され、モデルに送信されたエンドポイント呼び出しの数。SageMaker AI は 1/`numberOfInstances` を値として各リクエストに送信します。ここで、`numberOfInstances` はリクエスト発生時のエンドポイントにある ProductionVariant のアクティブなインスタンスの数です。<br />単位: なし<br />有効な統計: `Sum` | 
| ModelLatency | モデルの応答にかかった時間。これには、リクエストを送信し、モデルのコンテナからレスポンスを取得するのにかかった時間と、コンテナ内で推論を完了するのにかかった時間が含まれます。ModelLatency は、推論パイプライン内のすべてのコンテナにかかった合計時間です。単位: マイクロ秒<br />有効な統計: `Average`、`Sum`、`Min`、`Max`、Sample Count | 
| OverheadLatency | オーバーヘッドのため、SageMaker AI によるクライアントリクエストへの応答にかかった時間に加算される時間。`OverheadLatency` は、SageMaker AI がリクエストを受信してからクライアントにレスポンスを返すまでの時間から `ModelLatency` を引いたものです。オーバーヘッドのレイテンシーは、リクエストとレスポンスのペイロードサイズ、リクエストの頻度、リクエストの認証、認可などの要因によって異なります。<br />単位: マイクロ秒<br />有効な統計: `Average`、`Sum`、`Min`、`Max`、`Sample Count` | 
| ContainerLatency | SageMaker AI から見たときに、推論パイプラインコンテナが応答にかかった時間。ContainerLatency には、リクエストを送信し、モデルのコンテナからレスポンスを取得するのにかかった時間と、コンテナ内で推論を完了するのにかかる時間が含まれます。単位: マイクロ秒<br />有効な統計: `Average`、`Sum`、`Min`、`Max`、`Sample Count` | 

**エンドポイント呼び出しメトリクスのディメンション**


| ディメンション | 説明 | 
| --- | --- | 
| EndpointName, VariantName, ContainerName | 指定のエンドポイントおよび指定のバリアントの `ProductionVariant` のエンドポイント呼び出しメトリクスをフィルタリングします。 | 

推論パイプラインエンドポイントの場合、CloudWatch は **[SageMaker AI]** 名前空間の下に **[エンドポイントのコンテナのメトリクス]** および **[エンドポイントのバリアントのメトリクス]** として、アカウント内のコンテナ単位のレイテンシーメトリクスを表示します。`ContainerLatency` メトリクスは、推定パイプラインに対してのみ表示されます。

![推論パイプラインの CloudWatch ダッシュボード。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/pipeline-endpoint-metrics.png)


レイテンシーメトリクスは、エンドポイントおよびコンテナごとに、コンテナ、エンドポイント、バリアント、メトリクスの名前を表示します。

![エンドポイントのレイテンシーメトリクス。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/pipeline-endpoint-metrics-details.png)


**トレーニングジョブ、バッチ変換ジョブ、およびエンドポイントインスタンスメトリクス**

`/aws/sagemaker/TrainingJobs`、`/aws/sagemaker/TransformJobs`、`/aws/sagemaker/Endpoints` 名前空間には、トレーニングジョブおよびエンドポイントインスタンスに関する以下のメトリクスが含まれています。

メトリクスは 1 分間隔でレポートされます。


| メトリクス | 説明 | 
| --- | --- | 
| CPUUtilization | インスタンスで実行中のコンテナによって使用されている CPU ユニットの割合。値の範囲は 0%～100% で、CPU の数で乗算されます。例えば、CPU が 4 つの場合、`CPUUtilization` は 0%～400% になります。<br />トレーニングジョブの場合、`CPUUtilization` はインスタンスで実行中のアルゴリズムコンテナの CPU 使用率です。<br />バッチ変換ジョブの場合、`CPUUtilization` はインスタンスで実行中の変換コンテナの CPU 使用率です。<br />マルチコンテナモデルの場合、`CPUUtilization` は、インスタンスで実行中のすべてのコンテナによる CPU 使用率の合計です。<br />エンドポイントのバリアントの場合、`CPUUtilization` は、インスタンスで実行中のすべてのコンテナの CPU 使用率の合計です。<br />単位: パーセント | 
| MemoryUtilization | インスタンスで実行中のコンテナによって使用されているメモリの割合。この値は 0%～100% です。<br />トレーニングジョブの場合、`MemoryUtilization` は、インスタンスで実行中のアルゴリズムコンテナによって使用されているメモリです。<br />バッチ変換ジョブの変換の場合、`MemoryUtilization` は、インスタンスで実行中の変換コンテナによって使用されているメモリです。マルチコンテナモデルの場合、MemoryUtilization は、インスタンスで実行中のすべてのコンテナによって使用されているメモリの合計です。<br />エンドポイントのバリアントの場合、`MemoryUtilization` は、インスタンスで実行中のすべてのコンテナによって使用されているメモリの合計です。<br />単位: パーセント | 
| GPUUtilization | インスタンスで実行中のコンテナによって使用されている GPU ユニットの割合です。`GPUUtilization` の範囲は 0%～100% で、GPU の数によって乗算されます。例えば、GPU が 4 つの場合、`GPUUtilization` は 0%～400% になります。<br />トレーニングジョブの場合、`GPUUtilization` は、インスタンスで実行中のアルゴリズムによって使用されている GPU です。<br />バッチ変換ジョブの場合、`GPUUtilization` は、インスタンスで実行中の変換コンテナによって使用されている GPU です。<br />マルチコンテナモデルの場合、`GPUUtilization` は、インスタンスで実行中のすべてのコンテナによって使用されている GPU の合計です。<br />エンドポイントのバリアントの場合、`GPUUtilization` は、インスタンスで実行中のすべてのコンテナによって使用されている GPU の合計です。<br />単位: パーセント | 
| GPUMemoryUtilization | インスタンスで実行中のコンテナによって使用されている GPU メモリの割合。GPUMemoryUtilization 範囲は 0%～100% で、GPU の数によって乗算されます。例えば、GPU が 4 つの場合、`GPUMemoryUtilization` は 0%～400% になります。<br />トレーニングジョブの場合、`GPUMemoryUtilization` は、インスタンスで実行中のアルゴリズムコンテナで使用されている GPU メモリです。<br />バッチ変換ジョブの場合、`GPUMemoryUtilization` は、インスタンスで実行中の変換コンテナによって使用されている GPU メモリです。<br />マルチコンテナモデルの場合、`GPUMemoryUtilization` は、インスタンスで実行中のすべてのコンテナによって使用されている GPU の合計です。<br />エンドポイントのバリアントの場合、`GPUMemoryUtilization` は、インスタンスで実行中のすべてのコンテナによって使用されている GPU メモリの合計です。<br />単位: パーセント | 
| DiskUtilization | インスタンスで実行中のコンテナによって使用されているディスク容量の割合。DiskUtilization の範囲は、0%～100% です。このメトリクスは、バッチ変換ジョブではサポートされていません。<br />トレーニングジョブの場合、`DiskUtilization` は、インスタンスで実行中のアルゴリズムコンテナで使用されているディスク容量です。<br />エンドポイントバリアントの場合、`DiskUtilization` は、インスタンスで実行中の提供されたすべてのコンテナによって使用されているディスク容量の合計です。<br />単位: パーセント | 

**トレーニングジョブ、バッチ変換ジョブ、およびエンドポイントインスタンスメトリクスのディメンション**


| ディメンション | 説明 | 
| --- | --- | 
| Host | トレーニングジョブの場合、`Host` の形式は `[training-job-name]/algo-[instance-number-in-cluster]` になります。このディメンションを使用して、指定されたトレーニングジョブとインスタンスのインスタンスメトリクスをフィルタリングします。このディメンション形式は、`/aws/sagemaker/TrainingJobs` 名前空間にのみ存在します。<br />バッチ変換ジョブの場合、`Host` の形式は `[transform-job-name]/[instance-id]` になります。このディメンションを使用して、指定されたバッチ変換ジョブとインスタンスのインスタンスメトリクスをフィルタリングします。このディメンション形式は、`/aws/sagemaker/TransformJobs` 名前空間にのみ存在します。<br />エンドポイントの場合、`Host` の形式は `[endpoint-name]/[ production-variant-name ]/[instance-id]`なります。このディメンションを使用して、指定されたエンドポイント、バリアント、インスタンスのインスタンスメトリクスをフィルタリングします。このディメンション形式は、`/aws/sagemaker/Endpoints` 名前空間にのみ存在します。 | 

トレーニングジョブ、エンドポイント、ノートブックインスタンスのライフサイクル設定のデバッグを支援するため、SageMaker AI はアルゴリズムコンテナ、モデルコンテナ、ノートブックインスタンスのライフサイクル設定が `stdout` や `stderr` に送信するすべての内容を Amazon CloudWatch Logs にも送信します。この情報を使用して、進行状況をデバッグおよび分析できます。

## ログを使用して推論パイプラインをモニタリングする
<a name="inference-pipeline-logs"></a>

以下の表は、SageMaker AI が Amazon CloudWatch に送信するロググループとログストリームを示しています。

*ログストリーム*は、同じソースを共有する一連のログイベントです。CloudWatch に記録される個別のログソースは、個別にログストリーミングを構成します。*ロググループ*は、保持、モニタリング、アクセス制御について同じ設定を共有するログストリームのグループです。

**ログ**



- **`/aws/sagemaker/TrainingJobs`**
  - `[training-job-name]/algo-[instance-number-in-cluster]-[epoch_timestamp]`

- **`/aws/sagemaker/Endpoints/[EndpointName]`**
  - `[production-variant-name]/[instance-id]`
  - `[production-variant-name]/[instance-id]`
  - `[production-variant-name]/[instance-id]/[container-name provided in the SageMaker AI model] (For Inference Pipelines)` 推論パイプラインログの場合、コンテナ名を指定しないと、CloudWatch はモデルでコンテナが提供される順序に対応して \*\* container-1、container-2 \*\* などを使います。

- **`/aws/sagemaker/NotebookInstances`**
  - `[notebook-instance-name]/[LifecycleConfigHook]`

- **`/aws/sagemaker/TransformJobs`**
  - `[transform-job-name]/[instance-id]-[epoch_timestamp]`
  - `[transform-job-name]/[instance-id]-[epoch_timestamp]/data-log`
  - `[transform-job-name]/[instance-id]-[epoch_timestamp]/[container-name provided in the SageMaker AI model] (For Inference Pipelines)` 推論パイプラインログの場合、コンテナ名を指定しないと、CloudWatch はモデルでコンテナが提供される順序に対応して \*\* container-1、container-2 \*\* などを使います。



**注記**  
SageMaker AI は、ライフサイクル設定を使ってノートブックインスタンスを作成すると、`/aws/sagemaker/NotebookInstances` ロググループを作成します。詳細については、「[LCC スクリプトを使用した SageMaker ノートブックインスタンスのカスタマイズ](notebook-lifecycle-config.md)」を参照してください。

SageMaker AI のログ記録の詳細については、「[Amazon SageMaker AI 用 CloudWatch Logs](logging-cloudwatch.md)」を参照してください。