SageMaker Training Compiler FAQ - Amazon SageMaker

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

SageMaker Training Compiler FAQ

重要

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

SageMaker Training Compiler に関するよくある質問への回答を見つけるには、以下のFAQ項目を使用します。

Q: SageMaker Training Compiler が機能していることを知るにはどうすればよいですか?

SageMaker Training Compiler でトレーニングジョブを正常に起動すると、次のログメッセージが表示されます。

  • TrainingCompilerConfig(debug=False) の場合

    Found configuration for Training Compiler Configuring SM Training Compiler...
  • TrainingCompilerConfig(debug=True) の場合

    Found configuration for Training Compiler Configuring SM Training Compiler... Training Compiler set to debug mode

Q: SageMaker Training Compiler はどのモデルを高速化しますか?

SageMaker Training Compiler は、Hugging Face トランスフォーマーライブラリから最も人気のある深層学習モデルをサポートしています。コンパイラがサポートするほとんどの演算子を使用すると、これらのモデルは SageMaker Training Compiler でより迅速にトレーニングできます。コンパイル可能なモデルには、次のものが含まれますが、これらに限定されません。bert-base-casedbert-base-chinesebert-base-uncaseddistilbert-base-uncaseddistilbert-base-uncased-finetuned-sst-2-englishgpt2roberta-baseroberta-larget5-basexlm-roberta-base。コンパイラは、ほとんどの DL 演算子とデータ構造で動作し、テスト済みのモデル以外にも多くの DL モデルを高速化できます。

Q: テストされていないモデルで SageMaker Training Compiler を有効にするとどうなりますか?

テストされていないモデルの場合、まずトレーニングスクリプトを変更して SageMaker Training Compiler と互換性を持たせる必要がある場合があります。詳細については、「独自の深層学習モデルを持ち込む」を参照のうえ、トレーニングスクリプトの準備方法の手順に従ってください。

トレーニングスクリプトを更新したら、トレーニングジョブを開始できます。コンパイラはモデルのコンパイルに進みます。ただし、テストされていないモデルでは、トレーニング速度は増加せず、ベースラインと比較して減少する場合さえあります。スピードアップの利点を得るには、batch_size および learning_rate などのトレーニングパラメータの再調整が必要な場合があります。

テストされていないモデルのコンパイルに失敗すると、コンパイラはエラーを返します。失敗の種類とエラーメッセージの詳細については、「SageMaker Training Compiler のトラブルシューティング」を参照してください。

Q: SageMaker Training Compiler を使用すると、常にトレーニングジョブが速くなりますか?

必ずしもそうとは言えません。まず、 SageMaker トレーニングコンパイラは、進行中のトレーニングプロセスを高速化する前に、コンパイルオーバーヘッドを追加します。最適化されたトレーニングジョブは、トレーニングジョブの開始時に、この増分のコンパイルオーバーヘッドをならして埋め合わせるのに十分な長さ実行する必要があります。

さらに、他のモデルトレーニングプロセスと同様に、最適ではないパラメータを使用したトレーニングはトレーニング時間を増やす可能性があります。 SageMaker Training Compiler は、ジョブのメモリフットプリントを変更するなどして、トレーニングジョブの特性を変更できます。これらの違いにより、トレーニングをスピードアップするためにトレーニングジョブのパラメータを再調整する必要がある場合があります。さまざまなインスタンスタイプおよびモデルを使用するトレーニングジョブに最適なパフォーマンスパラメータを示すリファレンステーブルが、「テスト済みモデル」に記載されています。

最後に、トレーニングスクリプトのコードによっては、オーバーヘッドが追加されたり、コンパイルされた計算グラフが壊されたりして、トレーニングが遅くなることがあります。カスタマイズされたモデルまたはテストされていないモデルで作業する場合は、「/XLA SageMaker とトレーニングコンパイラーを併用する場合のベストプラクティス PyTorch」にある手順を参照してください。

Q: SageMaker Training Compiler では、常により大きなバッチサイズを使用できますか?

バッチサイズは、すべてのケースではありませんが、ほとんどのケースで増加します。 SageMaker Training Compiler による最適化により、メモリフットプリントなどのトレーニングジョブの特性が変わる可能性があります。通常、Training Compiler のジョブは、ネイティブフレームワークを使用したコンパイルされていないトレーニングジョブよりも少ないメモリを占有します。これにより、トレーニング中のバッチサイズを大きくできます。バッチサイズが大きくなり、それに応じて学習レートが調整されると、トレーニングのスループットが向上し、総トレーニング時間が短縮されます。

ただし、 SageMaker Training Compiler が最適化スキームに基づいてメモリフットプリントを実際に増やす場合があります。コンパイラは、解析コストモデルを使用して、計算負荷の高い演算子にとって実行コストが最も低い実行スケジュールを予測します。このモデルにより、メモリ使用量を増加させる最適なスケジュールを見つけることが可能です。この場合、バッチサイズを大きくすることはできませんが、サンプルのスループットは依然として高くなります。

Q: SageMaker Training Compiler は、 SageMaker 分散 SageMaker トレーニングライブラリや SageMaker デバッガーなどの他のトレーニング機能と連携しますか?

SageMaker Training Compiler は現在、 SageMakerの分散トレーニングライブラリと互換性がありません。

SageMaker Training Compiler は SageMaker デバッガーと互換性がありますが、デバッガーはオーバーヘッドを追加することで計算パフォーマンスを低下させる可能性があります。

Q: SageMaker Training Compiler はカスタムコンテナ (独自のコンテナを使用) をサポートしていますか?

SageMaker Training Compiler は AWS Deep Learning Containers を通じて提供され、コンテナのサブセットを拡張してユースケースに合わせてカスタマイズできます。から AWS DLCs拡張されたコンテナは、 SageMaker Training Compiler でサポートされています。詳細については、「Supported Frameworks」および「 SageMaker Python SDK の使用と SageMaker フレームワーク深層学習コンテナの拡張」を参照してください。さらにサポートが必要な場合は、Amazon AWS の サポートまたはデベロッパーフォーラムを通じて SageMaker チームに連絡してください。 AWS SageMaker