Amazon SageMaker Training Compiler - Amazon SageMaker

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

Amazon SageMaker Training Compiler

重要

Amazon Web Services (AWS) は、 SageMaker Training Compiler の新しいリリースやバージョンがないことを発表しました。Training Compiler は、既存の SageMaker トレーニング用 AWS Deep Learning Containers (DLCs) を通じて引き続き利用できます SageMaker 。既存の DLCsは引き続きアクセス可能ですが、 AWS Deep Learning Containers Framework サポートポリシー に従って AWS、 からパッチや更新プログラムを受信しなくなることに注意してください。

Amazon SageMaker Training Compiler を使用して、 によって管理されるスケーラブルなGPUインスタンスで深層学習 (DL) モデルを迅速にトレーニングします SageMaker。

SageMaker Training Compiler とは

S 深tate-of-the-art 層学習 (DL) モデルは、何十億ものパラメータを持つ複雑な多層ニューラルネットワークで構成されており、トレーニングに何千GPU時間もかかる場合があります。このようなモデルをトレーニングインフラストラクチャで最適化するには、DL とシステムエンジニアリングに関する広範な知識が必要です。これは、ユースケースを絞ったとしても困難です。DL トレーニングプロセスを最適化するコンパイラのオープンソース実装はありますが、DL フレームワークをGPUインスタンスなどの一部のハードウェアと統合する柔軟性が欠けている可能性があります。

SageMaker Training Compiler は、GPUインスタンスのトレーニング時間を短縮するためにこれらの hard-to-implement 最適化 SageMaker を行う の一機能です。コンパイラは DL モデルを最適化して、 SageMaker 機械学習 (ML) GPUインスタンスをより効率的に使用してトレーニングを高速化します。 SageMaker Training Compiler は 内で追加料金なしで利用 SageMaker でき、トレーニングを高速化するにつれて請求対象時間全体を削減できます。

SageMaker Training Compiler と の連携方法の概念図 SageMaker。

SageMaker Training Compiler は AWS Deep Learning Containers () に統合されていますDLCs。 SageMaker Training Compiler が有効な を使用すると AWS DLCs、コードへの最小限の変更でGPU、インスタンスのトレーニングジョブをコンパイルして最適化できます。深層学習モデルを に SageMaker 取り込み、 SageMaker Training Compiler を有効にして、 SageMaker ML インスタンスでのトレーニングジョブの速度を高速化し、コンピューティングを高速化します。

仕組み

SageMaker Training Compiler は、DL モデルを高レベルの言語表現からハードウェア最適化命令に変換します。具体的には、 SageMaker Training Compiler はグラフレベルの最適化、データフローレベルの最適化、バックエンドの最適化を適用して、ハードウェアリソースを効率的に使用する最適化されたモデルを生成します。その結果、コンパイルせずにモデルをトレーニングする場合よりも速くモデルをトレーニングできます。

これは、トレーニングジョブの SageMaker Training Compiler をアクティブ化する 2 ステップのプロセスです。

  1. 独自の DL スクリプトを取り込んで、必要に応じて Training Compiler SageMaker でコンパイルとトレーニングに適応します。詳細については、「独自の深層学習モデルを持ち込む」を参照してください。

  2. SageMaker Python を使用して、コンパイラ設定パラメータを使用して SageMaker 推定器オブジェクトを作成しますSDK。

    1. 推定器クラスcompiler_config=TrainingCompilerConfig()に SageMaker を追加して SageMaker Training Compiler を有効にします。

    2. Training Compiler が提供する利点を最大化するために、ハイパーパラメータ (batch_sizelearning_rate) SageMaker を調整します。

      SageMaker Training Compiler によるコンパイルにより、モデルのメモリフットプリントが変更されます。最も一般的には、これはメモリ使用率の低下と、 に収まる最大バッチサイズの増加として表されますGPU。場合によっては、コンパイラがキャッシュをインテリジェントに昇格させ、 に収まる最大のバッチサイズが小さくなることがありますGPU。バッチサイズを変更する場合は、学習レートを適切に調整する必要があることに注意してください。

      人気モデルのテスト済み batch_size のリファレンスについては、「テスト済みモデル」を参照してください。

      バッチサイズを調整するときは、learning_rate も適切に調整する必要があります。バッチサイズの変更に伴う学習レートの調整に関するベストプラクティスについては、「SageMaker Training Compiler のベストプラクティスと考慮事項」を参照してください。

    3. estimator.fit() クラスメソッドを実行すると、 SageMaker はモデルをコンパイルし、トレーニングジョブを開始します。

    トレーニングジョブを開始する手順については、「 SageMaker Training Compiler を有効にする」を参照してください。

SageMaker Training Compiler は最終的なトレーニング済みモデルを変更しませんが、GPUメモリをより効率的に使用して反復ごとにより大きなバッチサイズを適合させることで、トレーニングジョブを高速化できます。コンパイラで高速化されたトレーニングジョブの最終トレーニングモデルは、通常のトレーニングジョブのモデルと同じです。

ヒント

SageMaker Training Compiler は、 によって管理されるサポートされているGPUインスタンスでトレーニングするための DL モデルのみをコンパイルします SageMaker。推論用にモデルをコンパイルし、クラウド内の任意の場所とエッジで実行するようにデプロイするには、SageMaker Neo コンパイラ を使用します。