翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
モデルトレーニング
機械学習 (ML) ライフサイクル全体のトレーニングステージは、トレーニングデータセットへのアクセスから最終モデルの生成、デプロイに最適なパフォーマンスを備えたモデルの選択まで多岐にわたります。以下のセクションでは、利用可能な SageMaker トレーニング機能とリソースの概要と、それぞれの詳細な技術情報について説明します。
SageMaker トレーニングの基本アーキテクチャ
SageMaker AI を初めて使用していて、データセットでモデルをトレーニングするためのクイック ML ソリューションを見つけたい場合は、JumpStart SageMaker Studio Classic や AI Autopilot 内で SageMaker Canvas などのノーコードまたはローコードソリューションを使用することを検討してください。 SageMaker
中間コーディングエクスペリエンスの場合は、SageMaker Studio Classic ノートブックまたはSageMaker ノートブックインスタンスの使用を検討してください。開始するには、 SageMaker AI 入門ガイドモデルをトレーニングしますの「」の指示に従ってください。 これは、機械学習フレームワークを使用して独自のモデルとトレーニングスクリプトを作成するユースケースに推奨されます。
SageMaker AI ジョブの中核となるのは、ML ワークロードのコンテナ化とコンピューティングリソースを管理する機能です。 SageMaker トレーニングプラットフォームは、ML トレーニングワークロードのインフラストラクチャのセットアップと管理に関連する手間のかかる作業を処理します。 SageMaker トレーニングを使用すると、モデルの開発、トレーニング、微調整に集中できます。
次のアーキテクチャ図は、 SageMaker AI が ML トレーニングジョブを管理し、 SageMaker AI ユーザーに代わって Amazon EC2インスタンスをプロビジョニングする方法を示しています。 SageMaker AI ユーザーは、独自のトレーニングデータセットを持ち込んで Amazon S3 に保存できます。利用可能な SageMaker AI 組み込みアルゴリズムから ML モデルトレーニングを選択するか、一般的な機械学習フレームワークで構築されたモデルを使用して独自のトレーニングスクリプトを導入できます。
SageMaker トレーニングワークフローと機能のフルビュー
機械学習トレーニングの全行程には、機械学習モデルへのデータインジェスト、コンピュートインスタンスでのモデルのトレーニング、モデルのアーティファクトと出力の取得以外のタスクも含まれます。トレーニング前、トレーニング中、トレーニング後のあらゆる段階を評価して、モデルが目標とする精度を満たすように適切なトレーニングが実行されていることを確認する必要があります。
次のフローチャートは、ML ライフサイクルのトレーニングフェーズ全体でのアクション (青いボックス) と使用可能な SageMaker トレーニング機能 (水色のボックス) の概要を示しています。
以下のセクションでは、前のフローチャートに示されているトレーニングの各フェーズと、ML トレーニングの 3 つのサブステージ全体で SageMaker AI が提供する便利な機能について説明します。
トレーニング前
データリソースとアクセスを設定するシナリオはいくつかあり、トレーニングの前に検討する必要があります。次の図とトレーニング前の各段階の詳細な説明を参照して、どのような決定を下す必要があるかを把握してください。
-
データの準備: トレーニングの前に、データ準備段階でデータクリーニングと特徴量エンジニアリングを完了しておく必要があります。 SageMaker AI には、役立つラベル付けツールと特徴量エンジニアリングツールがいくつか用意されています。詳細については、「データにラベルを付ける」、「データセットを準備して分析する」、「データを処理する」、「特徴を作成、保存、共有する」を参照してください。
-
アルゴリズムまたはフレームワークを選択する: 必要なカスタマイズの程度に応じて、アルゴリズムとフレームワークのオプションは異なります。
-
構築済みアルゴリズムのローコード実装を希望する場合は、 SageMaker AI が提供する組み込みアルゴリズムのいずれかを使用します。詳細については、「アルゴリズムを選択する」を参照してください。
-
モデルをより柔軟にカスタマイズする必要がある場合は、 SageMaker AI 内の任意のフレームワークとツールキットを使用してトレーニングスクリプトを実行します。詳細については、「機械学習フレームワークとツールキット」を参照してください。
-
構築済みの SageMaker AI Docker イメージを独自のコンテナのベースイメージとして拡張するには、「構築済みの SageMaker AI Docker イメージを使用する」を参照してください。
-
カスタム Docker コンテナを SageMaker AI に移行するには、 SageMaker 「AI と連携するように独自の Docker コンテナを適応させる」を参照してください。コンテナsagemaker-training-toolkit
に をインストールする必要があります。
-
-
データストレージの管理: データストレージ (Amazon S3、Amazon EFS、Amazon などFSx) と Amazon EC2コンピューティングインスタンスで実行されるトレーニングコンテナ間のマッピングを理解します。 SageMaker AI は、トレーニングコンテナ内のストレージパスとローカルパスのマッピングに役立ちます。手動で指定することもできます。マッピングが完了したら、ファイル、パイプ、モードのいずれかのデータ転送 FastFile モードを使用することを検討してください。 SageMaker AI がストレージパスをマッピングする方法については、「トレーニングストレージフォルダ」を参照してください。
-
トレーニングデータへのアクセスを設定する: Amazon SageMaker AI ドメイン、ドメインユーザープロファイル、、Amazon IAM、および AWS KMS を使用してVPC、セキュリティを最も重視する組織の要件を満たします。
-
アカウント管理については、「Amazon SageMaker AI ドメイン」を参照してください。
-
IAM ポリシーとセキュリティの詳細については、「Amazon SageMaker AI のセキュリティ」を参照してください。
-
-
入力データをストリーミングする: SageMaker AI には、ファイル、パイプ、 の 3 つのデータ入力モードがありますFastFile。デフォルトの入力モードはファイルモードで、トレーニングジョブの初期化中にデータセット全体が読み込まれます。データストレージからトレーニングコンテナにデータをストリーミングする一般的なベストプラクティスについては、「トレーニングデータにアクセスする」を参照してください。
パイプモードの場合は、拡張マニフェストファイルを使用して Amazon Simple Storage Service (Amazon S3) から直接データをストリーミングし、モデルをトレーニングすることもできます。パイプモードを使用すると、Amazon Elastic Block Store では最終的なモデルアーティファクトのみが保存され、トレーニングデータセット全体を保存する必要はないため、ディスク容量を削減できます。詳細については、「拡張マニフェストファイルを使用してトレーニングジョブにデータセットメタデータを提供する」を参照してください。
-
データをバイアスについて分析する: トレーニングの前に、不利なグループに対するデータセットとモデルのバイアスを分析して、モデルが SageMaker Clarify を使用してバイアスのないデータセットを学習していることを確認できます。
-
SDK 使用する SageMaker AI を選択します。 SageMaker AI でトレーニングジョブを起動するには、高レベルの SageMaker AI Python を使用するかSDK、 SDK for Python (Boto3) または に低レベルの SageMaker APIs を使用するという 2 つの方法があります AWS CLI。 SageMaker Python は低レベル SageMaker APIをSDK抽象化して便利なツールを提供します。で前述したように SageMaker トレーニングの基本アーキテクチャ、JumpStart SageMaker Studio Classic または AI Autopilot SageMaker SageMaker 内で Canvas を使用してノーコードまたは最小コードオプションを実行することもできます。
トレーニング中
トレーニング中は、コンピューティングリソース、コストの最適化、そして最も重要なモデルのパフォーマンスをスケーリングしながら、トレーニングの安定性、トレーニング速度、トレーニング効率を継続的に改善する必要があります。トレーニング中のステージと関連する SageMaker トレーニング機能の詳細については、「」を参照してください。
-
インフラストラクチャの設定: ユースケースに適したインスタンスタイプとインフラストラクチャ管理ツールを選択します。小規模なインスタンスから始めて、ワークロードに応じてスケールアップできます。表形式のデータセットでモデルをトレーニングするには、C4 または C5 CPUインスタンスファミリーの最小インスタンスから始めます。コンピュータビジョンまたは自然言語処理用の大規模なモデルをトレーニングするには、P2, P3, G4dnまたは G5 GPUインスタンスファミリーの最小インスタンスから始めます。AI が提供する次のインスタンス管理ツールを使用して、クラスター内のさまざまなインスタンスタイプを混在させたり、インスタンスをウォームプールに保持したりすることもできます SageMaker 。さらに、永続キャッシュを使用すると、ウォームプールのみによるレイテンシーの削減よりも、反復的なトレーニングジョブのレイテンシーと課金対象時間を削減できます。詳細については、以下のトピックを参照してください。
トレーニングジョブを実行するには十分なクォータが必要です。クォータが不足しているインスタンスでトレーニングジョブを実行すると、
ResourceLimitExceeded
エラーが表示されます。アカウントで現在利用可能なクォータを確認するには、Service Quotas コンソールを使用します。クォータの増加を要求する方法については、「サポートされているリージョンおよびクォータ」を参照してください。また、 に応じて料金情報と使用可能なインスタンスタイプを確認するには AWS リージョン、Amazon SageMaker AI 料金 ページでテーブルを検索します。 -
ローカルコードからトレーニングジョブを実行する: ローカルコードにリモートデコレータで注釈を付けて、Amazon SageMaker Studio Classic、Amazon SageMaker Notebook、またはローカル統合開発環境内から SageMaker トレーニングジョブとしてコードを実行できます。詳細については、「ローカルコードを SageMaker トレーニングジョブとして実行する」を参照してください。
-
トレーニングジョブを追跡する: SageMaker Experiments、 SageMaker Debugger、または Amazon を使用してトレーニングジョブをモニタリングおよび追跡します CloudWatch。 SageMaker AI Experiments を使用すると、モデルのパフォーマンスを精度と収束の観点から監視し、複数のトレーニングジョブ間のメトリクスの比較分析を実行できます。 SageMaker デバッガーのプロファイリングツールまたは Amazon を使用して、コンピューティングリソース使用率を監視できます CloudWatch。詳細については、以下のトピックを参照してください。
さらに、深層学習タスクでは、Amazon SageMaker Debugger モデルのデバッグツールと組み込みルールを使用して、モデルの収束と重みの更新プロセスにおけるより複雑な問題を特定します。
-
分散トレーニング: トレーニングインフラストラクチャの設定ミスや out-of-memory問題が原因でトレーニングジョブが中断することなく安定したステージになった場合は、ジョブをスケーリングし、数日、数か月にわたって長期間実行するオプションをさらに見つけることができます。スケールアップの準備ができたら、分散トレーニングを検討してください。 SageMaker AI には、軽量の ML ワークロードから重い深層学習ワークロードまで、分散計算のためのさまざまなオプションが用意されています。
非常に大規模なデータセットで非常に大規模なモデルをトレーニングする深層学習タスクでは、SageMaker AI 分散トレーニング戦略のいずれかを使用して、データ並列処理、モデル並列処理、またはこれら 2 つの組み合わせをスケールアップして達成することを検討してください。SageMaker Training Compiler を使用して、GPUインスタンスのモデルグラフをコンパイルおよび最適化することもできます。これらの SageMaker AI 機能は PyTorch、 TensorFlowや Hugging Face Transformers などの深層学習フレームワークをサポートします。
-
モデルのハイパーパラメータ調整: SageMaker AI.AI による自動モデル調整を使用してモデルハイパーパラメータを調整します。 SageMaker AI は、グリッド検索やベイズ検索などのハイパーパラメータ調整方法を提供し、ハイパーパラメータ調整ジョブを改善しないための早期停止機能を備えた並列ハイパーパラメータ調整ジョブを起動します。
-
スポットインスタンスによるチェックポイントとコスト削減: トレーニング時間がそれほど大きな懸念事項でない場合は、マネージドスポットインスタンスによるモデルトレーニングコストの最適化を検討します。スポットインスタンスの交換による断続的なジョブの休止からの復元を継続するには、スポットトレーニングのチェックポイントを有効にする必要があることに注意してください。また、トレーニングジョブが予期せず終了した場合に備えて、チェックポイント機能を使用してモデルをバックアップすることもできます。詳細については、以下のトピックを参照してください。
トレーニング後
トレーニング後は、最終的なモデルアーティファクトを取得して、モデルのデプロイと推論に使用します。次の図に示すように、トレーニング後のフェーズに関連する追加のアクションがあります。
-
ベースラインモデルを取得する: モデルアーティファクトを取得したら、それをベースラインモデルとして設定できます。モデルを本番環境にデプロイする前に、トレーニング後の以下のアクションと SageMaker AI 機能の使用を検討してください。
-
モデルのパフォーマンスを調べてバイアスをチェックする: トレーニング後のバイアスに Amazon CloudWatch Metrics と Clarify を使用して、ベースラインに対する受信データとモデルのバイアスを経時的に検出します。 SageMaker 新しいデータを評価し、定期的またはリアルタイムで新しいデータに対してモデル予測を評価する必要があります。これらの機能を使用すると、データやモデルの急激な変化や異常のほか、漸進的な変化またはドリフトに関するアラートを受け取ることができます。
-
SageMaker AI の増分トレーニング機能を使用して、拡張データセットでモデルをロードおよび更新 (または微調整) することもできます。
-
モデルトレーニングは、SageMaker AI パイプラインのステップとして、または SageMaker AI が提供する他のワークフロー機能の一部として登録して、ML ライフサイクル全体を調整できます。