翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
トラブルシューティング
トレーニングジョブが失敗したり、予期せず動作したりした場合、以下のセクションは問題の特定と解決に役立ちます。ジョブのステータスを確認することで、問題が設定にあるのかエージェントにあるのかを絞り込むことができます。以下のエージェント固有のセクションでは、各デプロイパスのログと一般的な問題について説明します。
ジョブレベルのデバッグ
DescribeJob API を使用して、ジョブの現在のステータスを確認し、失敗した理由を確認します。レスポンスには、ジョブのステータス、ジョブが失敗した場合の失敗の理由、および問題が発生する前にジョブがどの程度進行したかを示すステータス遷移のタイムラインが含まれます。
aws sagemaker describe-job \ --job-name "my-agent-rft-job" \ --job-category AgentRFT \ --region us-west-2
確認するキーフィールド:
-
JobStatus: 現在の状態 (
InProgress、Completed、Failed、Stopping、Stopped) -
SecondaryStatus: より詳細なフェーズ (
Starting、Downloading、Training、Uploading) -
FailureReason: ジョブが失敗した場合、その理由の説明
-
SecondaryStatusTransitions: タイムスタンプ付きのステータス変更の完全なタイムライン
CloudWatch ログのジョブ
トレーニングの進行状況とロールアウトレベルの情報は、アカウントの次のロググループに記録されます。
/aws/sagemaker/Job/AgentRFT
ログストリーム名は です<job-name>/。
これらのログは、トレーニングステップの進行状況、ロールアウト呼び出しイベント、高レベルのエラーをキャプチャします。これらは、ジョブの進行状況と、ロールアウトが正常に呼び出されているかどうかを理解するのに役立ちます。
ジョブが失敗した場合は、 FailureReasonフィールドで詳細を確認してください。Training フェーズ中に失敗した場合、問題がエージェントにある可能性があります。この場合、エージェントログで詳細を確認してください。
エージェントレベルのデバッグ
Amazon Bedrock AgentCore デバッグ
エージェントを Amazon Bedrock AgentCore にデプロイした場合、エージェント側の問題を調査するために以下が役立ちます。
エージェントログ
エージェントコンテナの stdout および stderr 出力は、アカウントの Amazon CloudWatch Logs にキャプチャされます。これらは、次のロググループで確認できます。
/aws/bedrock-agentcore/runtimes/<runtime-name>-<id>-<qualifier>
これらのログは、エラー、スタックトレース、SDK メッセージなど、エージェントコードからの出力をキャプチャします。これらのログは、エージェントコード、依存関係、または RFT ランタイムへの接続に関連する問題の調査に使用できます。
エージェントの状態を確認する
エージェントランタイムが正常であることを確認します。
aws bedrock-agentcore-control list-agent-runtimes --region us-west-2
特定のランタイムの詳細については、以下を参照してください。
aws bedrock-agentcore-control get-agent-runtime \ --agent-runtime-id <runtime-id> \ --region us-west-2
カスタムエージェントのデバッグ
Lambda フォワーダーパスを使用している場合、Lambda 関数自体または外部エージェントで問題が発生する可能性があります。以下は、両方を調査するのに役立ちます。
Lambda フォワーダーログ
Lambda 関数の実行ログは Amazon CloudWatch Logs にキャプチャされます。これらは、次のロググループで確認できます。
/aws/lambda/<function-name>
これらのログは、リクエストの転送、タイムアウト、または Lambda とエージェント間の接続に関連する問題の調査に使用できます。以下の項目を確認してください。
-
呼び出しエラー (Lambda がエージェントに到達できませんでした)
-
タイムアウトエラー (エージェントが応答するのに時間がかかりすぎた)
-
検証エラー (不正な形式のロールアウトリクエスト)
接続の確認
Lambda ログに呼び出しエラーまたはタイムアウトが表示されている場合、Lambda がエージェントに到達できないことが問題である可能性があります。次のチェックは、Lambda とエージェント間の接続が機能しているかどうかを確認するのに役立ちます。
ヘルスチェック — エージェントが実行されていることを確認します。
curl -s "http://$AGENT_ENDPOINT/health" # Expected: {"status": "ok"}
Lambda テスト呼び出し — Lambda がエージェントに到達できることを確認します。
aws lambda invoke \ --function-name rft-agent-forwarder \ --cli-binary-format raw-in-base64-out \ --payload '{"prompt": "test", "metadata": {"jobArn": "test", "rolloutId": "test-1"}}' \ --region us-west-2 \ /tmp/response.json && cat /tmp/response.json # Note: This will return an InternalServerError because the jobArn "test" # does not correspond to an active training job. This is expected. # Success means the Lambda executed and reached your agent — check agent # logs to confirm the request was received.
Lambda が正常に実行されてもジョブが失敗した場合、エージェントログに詳細が含まれることがあります。エージェントログで、推論呼び出しまたは報酬レポートに関連するエラーを確認します。
エージェントログ
エージェント独自のログは、デプロイ先によって異なります。これらのログは、エージェントコード、RFT ランタイムへの推論呼び出し、または報酬レポートに関連する問題の調査に使用できます。
例えば、エージェントを Amazon EKS にデプロイした場合は、次の方法でエージェントのログを確認できます。
kubectl logs -l app=external-agent --tail=50
CloudTrail を使用したデバッグ
CloudTrail データイベントは、エージェントの RFT ランタイムへの呼び出しが成功しているかどうかを確認するのに役立ちます。以下のイベントを探します。
-
eventName:
Sample、SampleWithResponseStream、CompleteRollout、UpdateReward -
resources.type:
AWS::SageMaker::Job
これらのイベントが表示されない場合、エージェントは RFT ランタイムを正常に呼び出しません。エージェントログとアクセス許可を確認します。
AWS CloudTrail を使用した API コールのログ記録
Amazon SageMaker AI は、ユーザー、ロール、または サービスによって実行されたアクションを記録する AWS サービスである AWS CloudTrail と統合されています。CloudTrail は、Amazon SageMaker AI へのすべての API コールをイベントとしてキャプチャします。キャプチャされるコールには、Amazon SageMaker AI コンソールからのコールと、Amazon SageMaker AI API オペレーションへのコードコールが含まれます。CloudTrail で収集された情報を使用して、Amazon SageMaker AI に対するリクエスト、リクエスト元の IP アドレス、リクエストの作成日時、その他の詳細を確認できます。
各イベントまたはログエントリには、誰がリクエストを生成したかという情報が含まれます。アイデンティティ情報は、以下を判別するのに役立ちます。
-
ルートユーザーまたはユーザー認証情報のどちらを使用してリクエストが送信されたか。
-
リクエストが IAM Identity Center ユーザーに代わって行われたかどうか。
-
リクエストがロールまたはフェデレーションユーザーのテンポラリなセキュリティ認証情報を使用して行われたかどうか。
-
リクエストが別の AWS サービスによって行われたかどうか。
CloudTrail は AWS 、アカウントの作成時にアカウントでアクティブになり、CloudTrail イベント履歴に自動的にアクセスできます。CloudTrail イベント履歴は、 AWS リージョンで過去 90 日間に記録された管理イベントの表示可能、検索可能、ダウンロード可能、およびイミュータブルなレコードを提供します。詳細については、CloudTrail ユーザーガイド」の「CloudTrail イベント履歴の使用」を参照してください。 AWS CloudTrail [イベント履歴] の閲覧には CloudTrail の料金はかかりません。
AWS アカウントの過去 90 日間のイベントの継続的な記録については、証跡または CloudTrail Lake イベントデータストアを作成します。
CloudTrail 証跡
証跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。 AWS マネジメントコンソールを使用して作成された証跡はすべてマルチリージョンです。 AWS CLI を使用して、単一リージョンまたはマルチリージョンの証跡を作成できます。アカウントのすべてのリージョンでアクティビティをキャプチャするため、マルチ AWS リージョン証跡を作成することをお勧めします。単一リージョンの証跡を作成する場合、証跡の AWS リージョンに記録されたイベントのみを表示できます。証跡の詳細については、AWS CloudTrail ユーザーガイド」の AWS 「アカウントの証跡の作成」および「組織の証跡の作成」を参照してください。
証跡を作成すると、進行中の管理イベントのコピーを 1 つ無料で CloudTrail から Amazon S3 バケットに配信できますが、Amazon S3 ストレージには料金がかかります。CloudTrail の料金の詳細については、「AWS CloudTrail の料金
CloudTrail Lake イベントデータストア
[CloudTrail Lake] を使用すると、イベントに対して SQL ベースのクエリを実行できます。CloudTrail Lake は、行ベースの JSON 形式の既存のイベントを Apache ORC
CloudTrail Lake のイベントデータストアとクエリにはコストがかかります。イベントデータストアを作成する際に、イベントデータストアに使用する料金オプションを選択します。料金オプションによって、イベントの取り込みと保存にかかる料金、および、そのイベントデータストアのデフォルトと最長の保持期間が決まります。CloudTrail の料金の詳細については、「AWS CloudTrail の料金
CloudTrail での SageMaker AI データイベント
データイベントでは、リソース上またはリソース内で実行されるリソースオペレーション (Amazon S3 オブジェクトの読み取りまたは書き込みなど) についての情報が得られます。これらのイベントは、データプレーンオペレーションとも呼ばれます。データイベントは、多くの場合、高ボリュームのアクティビティです。デフォルトでは、CloudTrail はデータイベントをログ記録しません。CloudTrail [イベント履歴] にはデータイベントは記録されません。
追加の変更がイベントデータに適用されます。CloudTrail の料金の詳細については、「AWS CloudTrail の料金
CloudTrail コンソール、 AWS CLI、または CloudTrail API オペレーションを使用して、さまざまな Amazon SageMaker AI リソースタイプのデータイベントを記録できます。データイベントのログ記録方法の詳細については、AWS CloudTrail ユーザーガイド」の「 AWS マネジメントコンソールを使用したデータイベントのログ記録」およびAWS 「 コマンドラインインターフェイスを使用したデータイベントのログ記録」を参照してください。
次の表に、データイベントを記録できる Amazon SageMaker AI リソースタイプを示します。
| リソースタイプ (コンソール) | resources.type 値 | CloudTrail にログ記録されたデータ API | API リファレンス |
|---|---|---|---|
| SageMaker エンドポイント | AWS::SageMaker::Endpoint |
InvokeEndpoint、InvokeEndpointAsync、InvokeEndpointWithResponseStream | InvokeEndpoint、InvokeEndpointAsync、InvokeEndpointWithResponseStream |
| SageMaker ジョブ | AWS::SageMaker::Job |
CompleteRollout、Sample、SampleWithResponseStream | CompleteRollout、Sample、SampleWithResponseStream |
注記
InvokeEndpoint、InvokeEndpointAsync、Sample、および SampleWithResponseStream API コールは、リクエストパラメータを記録しません。
eventName、readOnly、および resources.ARN フィールドでフィルタリングして、自分にとって重要なイベントのみをログに記録するように高度なイベントセレクタを設定できます。これらのフィールドの詳細については、AWS CloudTrail API リファレンスのAdvancedFieldSelector」を参照してください。
例: SageMaker エンドポイントとジョブのデータイベントをログに記録する
次の例は、put-event-selectors AWS CLI コマンドを使用して高度なイベントセレクタを追加する方法を示しています。
[ { "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.ARN", "Equals": ["arn:aws:sagemaker:us-east-1:111122223333:endpoint/your-inference-endpoint-arn"] }, { "Field": "resources.type", "Equals": ["AWS::SageMaker::Endpoint"] } ] }, { "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.ARN", "Equals": ["arn:aws:sagemaker:us-east-1:111122223333:job/your-job-arn"] }, { "Field": "resources.type", "Equals": ["AWS::SageMaker::Job"] } ] } ]
次に、以下を実行します。
aws cloudtrail put-event-selectors \ --trail-name your-trail-name \ --advanced-event-selectors=file://advanced-event-selectors.json
CloudTrail での SageMaker AI 管理イベント
管理イベントは、 AWS アカウントのリソースで実行される管理オペレーションに関する情報を提供します。これらのイベントは、コントロールプレーンオペレーションとも呼ばれます。CloudTrail は、デフォルトで管理イベントをログ記録します。
Amazon SageMaker AI は、すべての Amazon SageMaker AI コントロールプレーンオペレーションを管理イベントとして記録します。Amazon SageMaker AI が CloudTrail にログ記録する Amazon SageMaker AI コントロールプレーンオペレーションのリストについては、Amazon SageMaker AI API リファレンスを参照してください。
CloudTrail イベントの例
CloudTrail レコードの内容の詳細については、CloudTrail ユーザーガイド」の「CloudTrail レコードの内容」を参照してください。 AWS CloudTrail
モデルパッケージとチェックポイント
概要
マルチターン RL トレーニング中、プラットフォームはモデルの学習したパラメータを定期的にチェックポイントとして保存します。これらのチェックポイントは、モデルパッケージグループ内に SageMaker モデルパッケージとして保存されるため、バージョニング、系統追跡、およびクロスジョブの継続性が可能になります。
主要なコンセプト
モデルパッケージ
モデルパッケージは、特定の時点でトレーニングされたモデルの重みを含む SageMaker AI のバージョニングされたイミュータブルアーティファクトです。トレーニング中に生成された各チェックポイントは、モデルパッケージとして保存されます。モデルパッケージには以下が含まれます。
ARN (例:
arn:aws:sagemaker:us-west-2:123456789012:model-package/my-group/5)モデルファイルを含む S3 の場所
作成日時とトレーニングステップに関するメタデータ
モデルパッケージグループ
モデルパッケージグループは、複数のモデルパッケージバージョンを保持するコンテナです。マルチターン RL は 2 つの別々のグループを使用します。
| Group | 目的 | 内容 |
|---|---|---|
| 出力モデルパッケージグループ | 最終トレーニング済みモデルチェックポイント | 推論と継続的なトレーニングに適した HuggingFace 互換 LoRA アダプターの重み |
| 中間チェックポイントモデルパッケージグループ | 再開可能なトレーニング状態 | フルオプティマイザの状態 + 中断されたトレーニングを再開するためのアダプターの重み |
ジョブの作成時に両方を指定します。
{ "ModelPackageConfig": { "OutputModelPackageGroupArn": "arn:aws:sagemaker:us-west-2:123456789012:model-package-group/my-final-models", "IntermediateCheckpointModelPackageGroupArn": "arn:aws:sagemaker:us-west-2:123456789012:model-package-group/my-intermediate-checkpoints" } }
チェックポイントタイプ
再開可能なチェックポイント (フルステート)
内容: LoRA アダプターの重み + オプティマイザの状態 + トレーニングステップメタデータ (GPU ランクあたり)
保存先: 中間チェックポイントモデルパッケージグループ
目的: 中断された正確な時点からトレーニングを再開する
形式: 内部形式 (推論に直接は使用できません)
作成時: すべてのステップ
ユースケース: 自動レジリエンスまたは明示的な継続的トレーニング
モデルチェックポイント (重みのみ)
コンテンツ: SafeTensors 形式の HuggingFace 互換 LoRA アダプターの重み
保存先: 出力モデルパッケージグループ
目的: 推論、デプロイ、または継続的なトレーニング
形式: 標準 HuggingFace アダプター形式 (
adapter_config.json+adapter_model.safetensors)作成時: すべてのステップ、ジョブの完了時、ジョブの停止時
ユースケース: 推論用に微調整されたモデルをデプロイするか、新しいトレーニングジョブの入力として使用する
中断されたトレーニングを再開する
トレーニングジョブが失敗するか、トレーニング中に停止した場合、前のジョブが中断した正確な時点から再開する新しいジョブを開始できます。プラットフォームは、再開可能なチェックポイントから完全なトレーニング状態 (重み + オプティマイザ + ステップカウンター) をロードします。
再開するには、再開可能なチェックポイントを (中間チェックポイントモデルパッケージグループから) として指定しますInputModelPackageArn。
{ "ModelPackageConfig": { "OutputModelPackageGroupArn": "arn:aws:sagemaker:us-west-2:123456789012:model-package-group/my-final-models", "IntermediateCheckpointModelPackageGroupArn": "arn:aws:sagemaker:us-west-2:123456789012:model-package-group/my-intermediate-checkpoints", "InputModelPackageArn": "arn:aws:sagemaker:us-west-2:123456789012:model-package/my-intermediate-checkpoints/5" } }
要件:
は、再開可能なチェックポイント (モデルパッケージメタデータ
IsCheckpoint=true内の を持つチェックポイント) を指すInputModelPackageArn必要があります新しいジョブは同じベースモデルを使用する必要があります
新しいジョブは同じ LoRA 設定 (ランク、アルファ) を使用する必要があります
新しいジョブでは、同じハイパーパラメータ (学習レート、バッチサイズなど) を使用する必要があります。
新しいジョブは同じデータセットを使用する必要があります
反復トレーニング (継続トレーニング)
反復トレーニングを使用すると、新しいハイパーパラメータ、別のデータセット、または別のトレーニング設定を使用して、以前にトレーニングされたモデルを構築できます。再開とは異なり、トレーニングされた LoRA の重みから、新しいオプティマイザ状態で初期化する新しいトレーニング実行が開始されます。
反復トレーニングを実行するには、モデルチェックポイント (出力モデルパッケージグループから) を として指定しますInputModelPackageArn。
{ "ModelPackageConfig": { "OutputModelPackageGroupArn": "arn:aws:sagemaker:us-west-2:123456789012:model-package-group/my-final-models", "IntermediateCheckpointModelPackageGroupArn": "arn:aws:sagemaker:us-west-2:123456789012:model-package-group/my-intermediate-checkpoints", "InputModelPackageArn": "arn:aws:sagemaker:us-west-2:123456789012:model-package/my-final-models/3" } }
イテレーション間で変更できること:
ハイパーパラメータ (学習レート、バッチサイズ、max_steps、group_size など)
データセット (異なるプロンプト、異なるデータディストリビューション)
報酬関数 (異なる報酬 Lambda)
エージェントの設定
同じままにする必要があるもの:
ベースモデル (LoRA アダプターはベースモデルアーキテクチャに固有)
一般的なユースケース:
まず簡単な問題についてトレーニングし、次により困難な問題についてトレーニングを続ける (カリキュラム学習)
シンプルな報酬関数でトレーニングし、より微妙な報酬関数で絞り込む
初期トレーニングダイナミクスを観察した後、バッチサイズを増やすか、学習レートを調整する
チェックポイントのライフサイクル
Training Step 1 → Intermediate Checkpoint (Resumable) Training Step 1 → Intermediate Checkpoint (HFCompatible) ... Training Step N-1 → Intermediate Checkpoint (Resumable) Training Step N-1 → Intermediate Checkpoint (HFCompatible) ... Training Step N (final) → Model Checkpoint (HuggingFace LoRA) → Output Model Package Group
ジョブが正常に完了すると、最終的なモデルの重みがモデルパッケージとして出力モデルパッケージグループに保存されます。ジョブレコードの OutputModelPackageArnフィールドには、最終モデルの ARN が含まれます。
ジョブが失敗または停止した場合: 最後の中間チェックポイントが出力モデルパッケージグループ (ベストエフォート) に昇格されます。
チェックポイントのベストプラクティス
チェックポイント作成のモニタリング — トレーニング中に
ResumableCheckpointおよびModelCheckpointフィールドを追跡DescribeJobするために使用します。長いジョブの場合、反復トレーニングを使用します。多くのステップを持つジョブが失敗する可能性がある場合は、ゼロから再開するのではなく、チェックポイントから再開する計画を立ててください。