Amazon Web Services ブログ

新機能 — Amazon SageMaker Training Compiler のご紹介

Amazon SageMaker トレーニングコンパイラを使用する利点を説明する画像2021 年 12 月 1 日(米国時間)、新しいAmazon SageMaker の機能である Amazon SageMaker Training Compiler を発表できることを嬉しく思います。これにより、深層学習 (DL) モデルのトレーニングを最大 50% 高速化できます。

DL モデルが複雑化するにつれて、DL モデルの最適化とトレーニングにかかる時間も増加します。例えば、一般的な自然言語処理 (NLP) モデル「RoBERTa」のトレーニングには 25,000 GPU 時間かかることがあります。モデルのトレーニングにかかる時間を短縮するために顧客が適用できる手法や最適化はありますが、実装には時間がかかり、特別なスキルセットが必要です。これは、人工知能 (AI) の幅広い採用におけるイノベーションと進歩を妨げる可能性があります。

これは今日までどのように行われてきましたか?
通常、トレーニングを高速化するには、次の 3 つの方法があります。

  1. よりパワフルな個別のマシンを使用して計算を処理する
  2. GPU インスタンスのクラスター全体にコンピューティングを分散して、モデルを並列にトレーニングする
  3. メモリとコンピューティングの使用量を減らし、GPU でより効率的に実行できるようにモデルコードを最適化する。

実際には、機械学習 (ML) コードの最適化は難しく、時間がかかり、特別なスキルセットを習得する必要があります。データサイエンティストは通常、TensorFlowPyTorch などの Python ベースの機械学習フレームワークでトレーニングコードを記述し、機械学習フレームワークを使用して Python コードを GPU で実行できる数学関数 (一般的にはカーネル) に変換します。ただし、ユーザーの Python コードからのこの変換は、機械学習フレームワークがユーザーのコードとモデルに固有のカーネルを作成する代わりに、事前に構築された汎用 GPU カーネルを使用するため、非効率的です。

最も熟練した GPU プログラマーでさえ、新しいモデルごとにカスタムカーネルを作成して最適化するには数か月かかることがあります。私たちは、この問題を解決するために Amazon SageMaker Training Compiler を構築しました。

本日のリリースでは、Amazon SageMaker Training Compiler が Python トレーニングコードを自動的にコンパイルして、モデル専用の GPU カーネルを生成できるようになります。その結果、トレーニングコードの使用メモリと計算量が少なくなり、トレーニング速度が速くなります。例えば、Hugging Face の GPT-2 モデルを微調整すると、Amazon SageMaker Training Compiler はトレーニング時間を 3 時間近くから 90 分に短縮しました。

深層学習モデルの自動最適化
それでは、どのようにしてこの高速化を達成したのでしょうか? Amazon SageMaker Training Compiler は、DL モデルを高レベルの言語表現から、既製のフレームワークを用いたジョブよりも速くトレーニングするハードウェアの最適化命令に変換することで、トレーニングジョブを高速化します。内部では、Amazon SageMaker Training Compiler は、SageMaker GPU インスタンスでのコンピューティングとメモリの使用量を最大化するために、ネイティブの PyTorch および TensorFlow フレームワークが提供する以上に段階的な最適化を行います。

具体的には、Amazon SageMaker Training Compiler は、グラフレベルの最適化 (演算子の融合、メモリ計画、代数的単純化)、データフローレベルの最適化 (レイアウト変換、共通のサブ式の除去) およびバックエンドの最適化 (メモリレイテンシ隠蔽、ループ指向の最適化) を使用して、ハードウェアリソースを効率的に使用する最適化モデルを作成します。その結果、トレーニングは最大 50% 高速化され、返されるモデルは Amazon SageMaker Training Compiler が使用されていない場合と同じになります。

しかし、Amazon SageMaker Training Compiler をモデルでどのように使用しますか? 2 行のコードを追加するだけで簡単にできます。

SageMaker トレーニングコンパイラのコードの変更

トレーニング時間が短縮されることで、顧客は新しくトレーニングしたモデルの低コストでのイノベーションとデプロイのためにより多くの時間が得られ、より大きなモデルとより多くのデータを試験する能力が高まります。

Amazon SageMaker Training Compiler を最大限に活用する
多くの DL モデルは Amazon SageMaker Training Compiler からの利点が得られますが、より長いトレーニングを伴う大きなモデルでは、最大限の時間とコストの節約を実現できます。例えば、RoBERTa ベースの長期にわたる微調整演習では、トレーニングの時間とコストが 30% 減少しました。

Quantum Health のシニアデータサイエンティストであるホルヘ・ロペス・グリスマン氏は次のように述べました。「当社は医療ナビゲーションをよりスマートに、シンプルに、そして誰にとっても費用対効果の高いものにすることを使命とする組織です。」

「NLP モデルの反復は、サイズが大きいため、困難な場合があります。トレーニング時間が長くなると、ワークフローが低下し、コストが高くなると、パフォーマンスが向上する可能性のある大規模なモデルを試せなくなることがあります。Amazon SageMaker Training Compiler は、このような摩擦を軽減できる可能性があるので、エキサイティングです。SageMaker Training Compiler を用いてスピードアップを達成することは、私たちのチームにとって大きな勝利であり、私たちをより機敏で革新的なものにしてくれるでしょう」

その他のリソース
Amazon SageMaker Training Compiler がどのように役立つかについては、こちらのページをご覧ください。開始するには、こちらの技術ドキュメントをご覧ください。

原文はこちらです。