SageMaker スマートふるいの仕組み - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SageMaker スマートふるいの仕組み

SageMaker スマートふるいの目標は、トレーニングプロセス中にトレーニングデータをふるい分け、より有益なサンプルのみをモデルにフィードすることです。PyTorch を使用した一般的なトレーニング中、データは PyTorch DataLoader によってトレーニングループとアクセラレータデバイス (GPU や Trainium チップなど) にバッチで繰り返し送信されます。SageMaker スマートふるいは、このデータロード段階で実装されるため、トレーニングパイプラインのアップストリームデータ前処理とは無関係です。SageMaker スマートふるいは、モデルとそのユーザー指定の損失関数を使用して、ロードされた各データサンプルの評価フォワードパスを実行します。低損失値を返すサンプルは、モデルの学習への影響が少ないため、トレーニングから除外されます。これは、モデルが高い信頼性で適切な予測を行うことが既に容易であるためです。一方、比較的損失の高いサンプルは、モデルが学習する必要があるため、トレーニング用に保持されます。SageMaker スマートふるい用に設定できる主な入力は、除外するデータの割合です。例えば、割合を 25% に設定すると、損失分布の下位四分位に分散されたサンプル (ユーザーが指定した数の以前のサンプルから取得) は、トレーニングから除外されます。高損失のサンプルは、精査されたデータバッチに蓄積されます。精査されたデータバッチはトレーニングループに送信され (フォワードパスとバックパス)、モデルは精査されたデータバッチを学習してトレーニングします。

次の図は、SageMaker スマートふるいアルゴリズムの設計方法の概要を示しています。

トレーニング中データがロードされる際に SageMaker スマートふるいがどのように動作するかを示すアーキテクチャ図。

つまり、SageMaker スマートふるいは、トレーニング中、データがロードされる際に動作します。SageMaker スマートふるいアルゴリズムは、バッチに対して損失計算を実行し、各イテレーションのフォワードパスとバックパスの前に、改善されていないデータをふるい分けます。その後、精査されたデータバッチが、フォワードパスとバックパスに使用されます。

注記

SageMaker AI のデータのスマートふるいでは、追加のフォワードパスを使用してトレーニングデータを分析およびフィルタリングします。対して、影響の少ないデータがトレーニングジョブから除外されるため、バックパスは少なくなります。このため、長いバックパスや高価なバックパスを持つモデルでは、スマートふるいを使用する場合に効率が最大になります。一方、モデルのフォワードパスがバックパスよりも長い場合、オーバーヘッドにより合計トレーニング時間が長くなる可能性があります。各パスで費やされた時間を測定するには、パイロットトレーニングジョブを実行し、プロセスにかかる時間を記録するログを収集します。また、プロファイリングツールと UI アプリケーションを提供する SageMaker Profiler の使用も検討してください。詳細については、「Amazon SageMaker Profiler」を参照してください。

SageMaker スマートふるいは、従来の分散データ並列処理を備えた PyTorch ベースのトレーニングジョブで機能します。これにより、GPU ワーカーごとにモデルレプリカが作成され、AllReduce が実行されます。PyTorch DDP と SageMaker AI 分散データ並列ライブラリで動作します。