この記事は公開されてから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が収集してくれます。メトリクスの定義を正規表現で書く必要がなくなるので、勾配が消失する問題が改善されそうです!