Amazon SageMaker でトレーニング

Amazon SageMaker は、モデルの調整とデバッグ、トレーニング実験の実行に必要なすべてを提供することで、機械学習 (ML) モデルのトレーニングを容易にします。

特徴

実験管理と追跡

機械学習は、継続的な実験に基づく反復プロセスです。たとえば、新しい学習アルゴリズムを試したり、アルゴリズムのハイパーパラメータを調整したりしながら、モデルのパフォーマンスと精度に対するかかる増分変化の影響を観察します。このデータの爆発的な増加により、実験中に得られた最高のパフォーマンスのモデル、観察、教訓、そしてそもそもこれらのモデルの作成に使用された正確な材料とレシピを追跡することが難しくなります。

Amazon SageMaker Experiments は、トレーニング実験を簡単かつスケーラブルな方法で追跡、評価、整理するのに役立ちます。SageMaker Experiments は、Amazon SageMaker Studio と、Jupyter の深い統合を備えた Python SDK に含まれています。

Amazon SageMaker Experiments を使用すると、数千のトレーニング実験を整理し、データセット、ハイパーパラメータ、メトリックなどの実験成果物を記録し、実験を再現できます。SageMaker Experiments は SageMaker Studio と統合されているため、モデルを視覚化し、最適なモデルをすばやく簡単に評価できます。また、実験の進行に合わせてメモとコメントの実行ログを記録および維持し、チームメンバー間で簡単にクリックして共有することができます。SageMaker Experiments は実験の完全な系列を保持するため、モデルが意図した結果から逸脱し始めた場合、時間を遡ってそのアーティファクトを検査できます。

Experiments

完全な洞察による分析とデバッグ

ML トレーニングプロセスの完全な洞察と可視性を得ることは困難です。モデルがパラメータの正しい値を徐々に学習していることを簡単に確認する方法はありません。たとえば、畳み込みニューラルネットワークを使用してコンピュータビジョンモデルをトレーニングする場合、トレーニングジョブを何時間も実行しなければならない場合があります。この間、さまざまな ML モデルパラメータがモデルトレーニングにどのように影響しているか、トレーニングプロセスが目的の結果を生み出しているかどうかを確認することはできません。

Amazon SageMaker Debugger は、トレーニングプロセスの完全な可視性を提供します。SageMaker Debugger は、デベロッパーがデバッグデータを分析するための視覚的なインターフェイスを提供し、トレーニングプロセスの潜在的な異常に関する視覚的なインジケータを提供することにより、検査を容易にします。

SageMaker Debugger は、勾配値が大きすぎる、または小さすぎるなど、よく発生するエラーを自動的に検出して警告します。また、Debugger SDK を使用して、モデル固有エラーの新しいクラスを自動的に検出したり、SageMaker ノートブックでトレーニングの実行をインタラクティブに分析したりすることもできます。その結果、機械学習モデルのデバッグ作業を数日から数分に削減できます。SageMaker Debugger によって収集されたデータはお客様のアカウントに残り、プライバシーに最も敏感なアプリケーションで使用できるようになります。

SageMaker Debugger は、リアルタイムでモデルのパフォーマンスメトリックを生成します。これらには、トレーニングと検証における損失 (モデルの誤差を表し、できるだけ低くする必要がある)、混同行列 (分類モデルの場合、誤検知および検知漏れの予測とトレーニング中の変化を表す)、および学習勾配 (トレーニング中にモデルの学習曲線を確認することで、アンダーフィットまたはオーバーフィットモデルなどの学習の問題、およびトレーニングデータセットと検証データセットが代表として適切であるかどうかを診断するために使用される) が含まれます。 これらのメトリックは、Amazon SageMaker Studio 内のノートブックで表示および視覚化できます。

SageMaker Debugger は一般的なトレーニングの問題が検出されたときに、警告や修復のアドバイスを提供します。たとえば、モデルがデータからできる限りすべてを学習し、改善されていないけどまだトレーニングされている場合 (時間と費用がかかる)、SageMaker Debugger はトレーニングを終了できるように早期に特定するのに役立ちます。また、ネットワークの重みが常にゼロに設定されている場合など、一般的なデータ検証の問題を識別したり、モデルがデータを過剰適合し始めているかどうかを識別したりすることもできます。

Debugger

ワンクリックトレーニング

Amazon SageMaker を使用すると、モデルを簡単にトレーニングできます。SageMaker でトレーニングを開始するには、Amazon S3 中のデータの位置を指定し、必要とする SageMaker ML インスタンスのタイプと量を示したら、後は 1 回クリックをするだけです。SageMaker は分散型コンピュータクラスターをセットアップし、トレーニングを行い、結果を Amazon S3 に出力し、完了後クラスターを解体します。 

Amazon S3 でデータの場所を指定すると、SageMaker は、ユーザーのニーズに応じて構成され、ソフトウェアで定義されたネットワーク上に分離されたトレーニングクラスター上でお使いのアルゴリズムを実行します。クラウドで最も強力な GPU ベースのインスタンスである Amazon EC2 P3dn を含むインスタンスタイプを選択すると、SageMaker は Auto Scaling グループにクラスターを作成します。SageMaker は EBS ボリュームを各ノードに接続し、データパイプラインを設定し、TensorFlow、MXNet、Pytorch、Chainer またはフレームワークスクリプト、組み込みやカスタムアルゴリズムでトレーニングを開始します。終了すると、結果は S3 に保存され、クラスターは自動的に破棄されます。

規模に合わせてトレーニングを行うため、Amazon S3 からトレーニングデータをストリームする方法を最適化しました。API を通して、クラスターの各ノードにすべてのデータを送るか、SageMaker にユーザーのアルゴリズムのニーズに応じて各ノードにどのようにデータを分配するか管理させるかどうかを指定できます。Amazon SageMaker で可能なトレーニングのスケーラビリティーは、組み込まれたアルゴリズムと相まって、トレーニング実行に要する時間とコストを劇的に削減します。

自動モデルチューニング

Amazon SageMaker は何千ものアルゴリズムパラメータを調節してモデルを自動的にチューニングし、モデルが出し得る最も正確な予測に到達します。

モデルをさらに正確にチューニングする場合は、モデルに与えるデータ入力を変更する (たとえば数のログを取るなど)、モデルの動作を定義するパラメータを調節するという 2 つの大きな手段を取ります。これらはハイパーパラメータと呼ばれ、適切な値を探し出すのは容易ではありません。通常はランダムなものから初めて、変更がどういう影響を与えるかを試行錯誤を重ねて調節します。モデルにいくつのハイパーパラメータがあるかによって、これには時間がかかることがあります。

この過程を容易にするため、SageMaker ではトレーニング中のオプションとして、自動モデルチューニングを提供します。自動モデルチューニングでは、機械学習を利用してできるだけ正確に素早くモデルを調整します。この機能を使用すると、手動でハイパーパラメータを調整する面倒な試行錯誤のプロセスを省くことができます。その代わりに、自動モデルチューニングは、さまざまなトレーニングを実行し、データの中から重要な機能を見つけ出してそうした機能がどのように相互作用して精度に影響するかを学習することで、ハイパーパラメータの最適化を行います。トレーニングされたモデルの品質を最大限に高めるために必要な所要時間を数日または数週間も短縮できます。

API またはコンソールを介してトレーニングジョブの数を指定するだけで、SageMaker は機械学習を使用してモデルを調整して残りを処理します。これはどのタイプのデータがどのようにモデルに影響を与えるかを学習し、この知識をモデルの多くのコピーに渡って適用して素早く最も良い結果を生み出します。デベロッパーやデータサイエンティストにとっては、このことはモデルに与えるデータの調節だけを考えておれば良く、トレーニング中に考慮すべき事項を大幅に減らせることを意味します。

マネージドスポットトレーニング

マネージドスポットトレーニングを使用すると、機械学習モデルのトレーニングコストを最大 90% 削減できます。マネージドスポットトレーニングでは、Amazon EC2 の空きキャパシティである EC2 スポットインスタンスを使用するため、Amazon EC2 オンデマンドインスタンスの場合と比較してトレーニングジョブを大幅に低いコストで実行できます。トレーニングジョブは Amazon SageMaker で管理され、コンピューティング性能に空きが出た時点で実行されます。このため、キャパシティに対して継続的に入札せずに済み、マネージドスポットトレーニングを使用することで、中断を管理するための追加のツールの構築も不要になります。マネージドスポットトレーニングは、自動モデルチューニング、Amazon SageMaker に付属のビルトインアルゴリズムとフレームワーク、およびカスタムアルゴリズムと連携しています。

Amazon SageMaker を使った正確な ML モデルのための自動モデルチューニング

GitHub にあるこれらの自動モデルチューニング演習で実践してみましょう。

Train and tune your machine learning models with Amazon SageMaker  

Amazon SageMaker を使って最高の正確性のために ML モデルを訓練するためのテックトークをお聞きください。

Accelerate your training jobs by enabling faster download of large datasets

Amazon SageMaker で Amazon FSx for Lustre の永続ファイルシステムを使って ML モデルをトレーニングするブログ記事をお読みください。