Debugger の詳細 - Amazon SageMaker

Debugger の詳細

Amazon SageMaker Debugger を使用すると、モデルのトレーニングを評価する際に、損失や精度などのスカラーを確認する以上のことを行えます。Debugger では、ジョブのライフサイクルの各時点でトレーニングプロセスの状態を定義するテンソルを収集するフックを使用して、トレーニングジョブを完全に可視化することができます。また、Debugger は収集したテンソルを検査するルールも提供します。

組み込みルールはトレーニングのフローをモニタリングし、トレーニングジョブを成功させるうえで重要な一般的な条件に関する問題についてアラートを表示します。また、カスタムルールを作成して、独自のモデルに固有の問題を監視することもできます。Amazon SageMaker ノートブックを使用して、または Amazon SageMaker Studio が提供する視覚化を使用して、ルールと Amazon CloudWatch のイベントを組み合わせて行った分析の結果をモニタリングすることができます。

次の図は、Amazon SageMaker Debugger を使用したモデルトレーニングプロセスのフローを示しています。


            Amazon SageMaker Debugger の仕組みの概要。

Amazon SageMaker Debugger のフックとルールを使用するには、推定器オブジェクトに数行のコードを追加してフックとルールを有効にします。Debugger とそのクライアントライブラリの smdebug を使用すると、フックとルールを設定してトレーニングジョブの可視性を実現することができます。Debugger と smdebug は、Amazon SageMaker 環境でのトレーニングジョブの実行だけでなく、TensorFlow、MXNet、PyTorch などの主要な機械学習フレームワークや Amazon SageMaker の事前作成済みアルゴリズムの XGBoost をサポートしています。

  • フレームワークの選択と Amazon SageMaker の事前作成済みのトレーニングコンテナの使用: Amazon SageMaker では、トレーニングジョブを実行するために Amazon の事前作成済みのトレーニングコンテナやカスタムコンテナを使用することができます。Debugger の機能や事前作成済みのトレーニングコンテナ (Amazon SageMaker のコンテナや Deep Learning Containers など) は、モデルのデバッグプロセスの予算を抑えるために役立ちます。また、トレーニングのアルゴリズムに合わせて Debugger をカスタマイズする場合は、独自のコンテナを使用することもできます。詳細については、「Debugger でサポートされているフレームワークでコンテナを使用する」を参照してください。

  • Debugger のフックを使用したテンソルの保存: トレーニングスクリプトに合わせてコンテナとフレームワークを選択したら、Debugger のフックを使用して、保存するテンソルと保存先のディレクトリ (Amazon S3 バケットなど) を設定します。Debugger のフックは、設定を作成して後続の分析で使用するためにアカウントで保持するために役立ちます。このフックは、プライバシーが非常に重要なアプリケーションで使用できるように保護されます。詳細については、「 Debugger Hook API を使用してテンソルデータを保存する」を参照してください。

  • Debugger のルールを使用したトレーニングジョブと並行でのテンソルの検査: Debugger には、テンソルを分析するために、トレーニングプロセスの異常な動作についての組み込みルールが数多く用意されています。たとえば、トレーニングプロセスでグラデーションの消失、テンソルの爆発、オーバーフィッティング、またはオーバートレーニングが発生している場合、Debugger ルールにより問題が検出されます。必要に応じて、Amazon SageMaker Debugger SDK を使用して、保存したテンソルを分析するカスタムルールを作成できます。その後、必要なテンソルを保存し、これらを監視するビルトインルールまたはカスタムルールがデプロイされるように、Amazon SageMaker Python SDK を使用して Debugger を設定できます。Debugger のルールの API の詳細については、「モデル解析にビルトインルールを使用する方法」と「Amazon SageMaker Debugger によって提供される組み込みルールのリスト」を参照してください。Debugger のルールのカスタマイズの詳細については、「カスタムルールの使用方法」を参照してください。また、Amazon CloudWatch Events を Debugger のルールと組み合わせて、Debugger のルールが "IssuesFound" ステータスをトリガーしたときにトレーニングジョブを自動的に停止する AWS Lambda 関数を呼び出すこともできます。

  • トライアルの作成によるテンソルの分析: smdebug のトライアルは、smdebug のアーティファクトが保存されるパスで指定した特定のトレーニングジョブから保存されたテンソルに対してクエリを実行できるオブジェクトです。トライアルでは、指定したパスで新しいテンソルが利用可能になったときにテンソルがロードされ、オフラインとリアルタイムの両方で分析を行うことができます。smdebug のトライアルの詳細については、smdebug のトライアル API を参照してください。

  • Amazon SageMaker Studio を使用した視覚化: Amazon SageMaker Studio の Debugger を使用して、収集したトライアルを Debugger で視覚化することができます。Amazon SageMaker Studio では、そのテンソルデータを分析するための視覚的なインターフェイスによって、トレーニングジョブの問題を検査しやすくなっています。詳細については、「Debugger を使用したモデル解析結果の Amazon SageMaker Studio 視覚化」を参照してください。