[レポート] 新機能「Amazon SageMaker Debugger」の紹介(MLモデルの内容を理解しよう) Intro to Amazon SageMaker Debugger: Get insights into ML model training #AIM216-R #reinvent

2019.12.06

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

最初に

こんにちはデータアナリティクス事業本部のyoshimです。
re:Invent2019にて行われた「Intro to Amazon SageMaker Debugger: Get insights into ML model training」という「Session」の内容についてご紹介します。

ワークショップ概要

本ワークショップの概要は下記の通りです。

During ML model training, it’s challenging to ensure that models are progressively learning the correct values for different parameters and to analyze and debug model characteristics without building additional tools, making the process time-consuming and cumbersome. Come learn about Amazon SageMaker Debugger, a new capability that provides complete insights into the training process by automating data capture and analysis from training runs without code changes. Learn how you can analyze data using the Amazon SageMaker Studio visual interface and be alerted when anomalies and errors are detected, reducing the time needed to debug models from days to minutes. Amazon SageMaker Debugger helps you solve problems quickly, reduce troubleshooting time during training, and build high-quality models.

Google翻訳したものも載せておきます。

MLモデルのトレーニング中、モデルがさまざまなパラメーターの正しい値を段階的に学習し、追加のツールを作成せずにモデルの特性を分析およびデバッグすることは困難であり、プロセスに時間がかかり面倒です。 Amazon SageMaker Debuggerについて学びましょう。これは、コードを変更せずにトレーニング実行からのデータキャプチャと分析を自動化することにより、トレーニングプロセスに関する完全な洞察を提供する新しい機能です。 Amazon SageMaker Studioのビジュアルインターフェイスを使用してデータを分析し、異常やエラーが検出されたときにアラートを受け取り、モデルのデバッグに必要な時間を数日から数分に短縮する方法を学びます。 Amazon SageMaker Debuggerは、問題を迅速に解決し、トレーニング中のトラブルシューティング時間を短縮し、高品質のモデルを構築するのに役立ちます。

機械学習システムをプロダクションとして運用する際にかなり便利そうな「Amazon SageMaker Debugger」について理解を深めるために参加してきました。

目次

1.アジェンダ

2.内容

Review Amazon SageMaker

「全ての開発者が機械学習を利用できるようにする」というミッションに対して、「Amazon SageMaker」は「簡単、迅速でスケールしやすい」機能を提供することで貢献しています。
具体的には、下記のように開発の様々な作業に付随するサービスを提供することで、機械学習の開発の負担を小さくすることに貢献しています。

SageMakerでアルゴリズムを学習させる方法は「AWSが事前に用意しているアルゴリズムを使う」、「カスタムのスクリプトを使う」、「カスタムのコンテナイメージを使う」といった3種類の方法があったり、学習を分散させたり、推論エンドポイントをオートスケーリングさせたりと、柔軟な開発が可能となります。

Machine Learning Training Challenges

しかしながら、モデルの学習の中身を理解するためにはどうしたらいいでしょう?
機械学習のデバッグはとても重要な要素であるにも関わらず、大変でありブラックボックス化してしまいがちであり、これは大きな課題と言えます。

Introducing Amazon SageMaker Debugger

「Amazon SageMaker Debugger」を使うことで、デバッグの辛さを軽減することができます。
「Amazon SageMaker Debugger」では、「自動でデータを分析し、不具合があればアラートをあげる」、「既存コードの修正が不要で、複数のルールを指定しても分散処理してくれる」、「Amazon SageMaker Studioと統合されているので開発とデバッグを1つの環境でできる」等の機能が提供されています。

「Amazon SageMaker Debugger」は、トレーニング中に出力されたテンソルを定期的に確認し、指定されたルールが違反されていないかを確認します。
「このルールのモニタリング」はそれぞれルールごとに異なるコンテナが利用されます。
そして、このモニタリングの結果は、「ルール違反があったらCloudWatch Eventでアラートをあげる(リアルタイムな推論でも可能)」、「ノートブックインスタンス上でDebuggerSDKを使って、分析する」、「Amazon SageMaker Studioを使って可視化する」等の使い方ができます。

Sample Notebooks

実際に使ってみた時のサンプルの紹介もありました。
例えば、下記の画像の右下部分では「ロス」の下がり方を確認しているのですが、とても使いやすそうです。

また、テンソルをNumpyで受けてカスタムで確認していくことも可能なので、柔軟性も高いです。

Customer Story

最後に「Autodesk社」における事例の紹介でした。
Autodesk社は様々な課題に対して機械学習を利用しており、「Amazon SageMaker Debugger」は「コードの変更なし」で「モデルの学習に要する時間とコストの低減」、「モデルの複雑さの低減と精度向上」、「モデルのサイズ低減」に寄与しているとのことでした。
(左から「Training」、「Model Architecture」、「Model Deployment」です。見辛くてすいません)

3.まとめ

「Amazon SageMaker Debugger」について理解を深めたかったので参加したのですが、だいぶ理解を深めることができました。
皆さんも、もしよかったら「Amazon SageMaker Debugger」を使ってみてください。