[速報] モデルのデバッグをできる Amazon SageMaker Debugger が発表されました!! #reinvent

2019.12.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、中川です。

Keynote1日目でAmazon SageMaker Debuggerが発表されました。
Amazon SageMaker Debugger – Debug Your Machine Learning Models

Amazon SageMaker Debuggerとは

既存のTensorFlow、Keras、Apache MXNet、PyTorch、XGBoostの既存のトレーニングコードに対して、SageMaker Debugger SDKを使用して、定期的な間隔で内部モデルの状態をS3に保存します。

状態は以下で構成されています。

  • モデルによって学習されているパラメータ
    • ニューラルネットワークの重みやバイアス
  • オプティマイザーによって適用される変更(勾配)
  • 最適化パラメータ
  • 精度や損失時のスカラー値
  • 各レイヤーの出力 など

重み、勾配などのコレクションはテンソルに組織され、トレーニング中に使用するテンソルを決定します。SageMaker SDKとその見積もりツールを使用すると、通常と同じようにトレーニングジョブを構成し、SageMaker Debuggerに適用するルールを定義する追加のパラメーターを渡せます。ルールとは、トレーニング中モデルのテンソルを分析し、特定の不要な条件を探すPythonコードの一部で、勾配の爆発や消滅、変化しない損失などの一般的な問題に対して使用できます。 ルールごとにデバッグジョブが起動され、利用可能なテンソルの検査が開始され、問題を検出すると、デバッグジョブは停止し、追加情報を記録されます。また、CloudWatch Eventsにイベントも送信されるので、追加の自動化も可能です。

さいごに

Amazon SageMaker Debuggerは、TensorflowなどのFrameworkでの学習時にログに出てくるメトリクスを自動でSageMakerが収集してくれます。メトリクスの定義を正規表現で書く必要がなくなるので、勾配が消失する問題が改善されそうです!