AWS PlatoBlockchain Data Intelligence 上の MosaicML Composer を使用して、ディープラーニングのトレーニング時間とコストを削減します。垂直検索。あい。

AWS で MosaicML Composer を使用して深層学習トレーニングの時間とコストを削減

過去 XNUMX 年間、私たちは AWS のお客様によって驚異的なペースで採用されている深層学習 (DL) 科学. DL モデルの豊富で共同でトレーニングされたパラメーターは、画像と音声の分析、自然言語処理 (NLP)、時系列処理など、多数の顧客のユースケースで改善をもたらした大きな表現能力を備えています。 この記事では、特に DL トレーニングでよく報告される課題と、オープンソース ライブラリがどのように MosaicML コンポーザー それらを解決するのに役立ちます。

DL トレーニングの課題

DL モデルは、ネストされた for ループで反復的にトレーニングされます。 ループはトレーニング データセットをチャンクごとに反復し、必要に応じて、このループをデータセット全体で数回繰り返します。 DL トレーニングに取り組んでいる ML 実践者は、いくつかの課題に直面しています。

  • トレーニング期間は、データ サイズに応じて長くなります。 データセットが永続的に増加すると、トレーニング時間とコストも増加し、科学的発見のリズムが遅くなります。
  • 多くの場合、DL スクリプトにはボイラープレート コードが必要です。特に、データセットをミニバッチに分割し、トレーニングをエポックに分割する前述の二重 for ループ構造が必要です。
  • 選択のパラドックス: いくつかのトレーニング最適化の論文とライブラリが公開されていますが、どれを最初にテストし、それらの効果をどのように組み合わせるかは不明です。

過去数年間で、次のようないくつかのオープンソース ライブラリ ケラス, PyTorchライトニング, フェイストランスフォーマーを抱き締める, レイトレイン 特にコードの冗長性を減らし、それによってニューラル ネットワークのプログラミング方法を簡素化することで、DL トレーニングをより利用しやすくしようと試みてきました。 これらのライブラリのほとんどは、開発者の経験とコードのコンパクトさに重点を置いています。

この投稿では、DL トレーニングに関して異なる立場を取る新しいオープンソース ライブラリを紹介します。 MosaicML コンポーザー アルゴリズムの革新によってニューラル ネットワークのトレーニング スクリプトを高速化することを主な目的とする速度中心のライブラリです。 クラウド DL の世界では、速度を重視するのが賢明です。コンピューティング インフラストラクチャは、多くの場合、使用ごとに支払われるためです。 Amazon SageMaker トレーニング—そして速度の向上は、お金の節約につながります。

歴史的に、DL トレーニングの高速化は、ほとんどの場合、モデルの反復を並列で計算するマシンの数を増やすことによって行われてきました。 データの並列処理. データの並列処理はトレーニングを高速化することがありますが (以下で強調されているように、収束を妨げるため保証されていません) ゴヤル等。)、全体的なジョブ コストは削減されません。 実際には、分散型 DL マシンにはハイエンドのネットワークとサーバー内 GPU 相互接続が装備されているため、マシン間通信のオーバーヘッドとマシン単位のコストが高くなるため、増加する傾向があります。

MosaicML Composer はデータ並列処理をサポートしていますが、その核となる哲学はデータ並列処理の動きとは異なります。 その目標は、科学の実装レベルで革新することにより、より多くのマシンを必要とせずにトレーニングを加速することです。 そのため、AWS の従量課金制によるコスト削減につながる時間の節約を達成することを目的としています。

オープンソース ライブラリ MosaicML Composer の紹介

MosaicML Composer はオープンソースの DL トレーニング ライブラリであり、最新のアルゴリズムを簡単に取り入れて新しいレシピに構成し、モデル トレーニングを高速化し、モデルの品質を向上させることを目的としています。 この記事の執筆時点では、PyTorch をサポートしており、25 の手法が含まれています。 メソッド MosaicML の世界で — 標準モデル、データセット、ベンチマークとともに

作曲家は pip経由で利用可能:

pip install mosaicml

Composer に実装されたスピードアップ技術は、その機能的な API を使用してアクセスできます。 たとえば、次のスニペットは、 ぼかしプール TorchVision ResNet へのテクニック:

import logging

from composer import functional as CF
import torchvision.models as models
logging.basicConfig(level=logging.INFO)

model = models.resnet50()
CF.apply_blurpool(model)

オプションで、 トレイナー 独自のテクニックの組み合わせを作成するには:

from composer import Trainer
from composer.algorithms import LabelSmoothing, CutMix, ChannelsLast

trainer = Trainer(
    model=.. # must be a composer.ComposerModel
    train_dataloader=...,
    max_duration="2ep",  # can be a time, a number of epochs or batches
    algorithms=[
        LabelSmoothing(smoothing=0.1),
        CutMix(alpha=1.0),
        ChannelsLast(),
    ]
)

trainer.fit()

Composer に実装されたメソッドの例

Composer で使用できるメソッドの一部は、コンピューター ビジョンに固有のものです。たとえば、画像拡張技術などです。 コルアウト, 切り取るまたは プログレッシブ画像サイズ変更. その他は、次のようなシーケンス モデリングに固有のものです。 シーケンスの長さのウォームアップ or アリバイ. 興味深いことに、いくつかはユースケースにとらわれず、コンピューター ビジョンや NLP を超えたさまざまな PyTorch ニューラル ネットワークに適用できます。 これらの一般的なニューラル ネットワーク トレーニングの高速化方法には、 ラベルスムージング, 選択的なバックプロップ, 確率的重み平均, レイヤーの凍結, シャープネス認識最小化 (SAM).

MosaicML チームが特に効果的であると判断したものをいくつか詳しく見ていきましょう。

  • シャープネス認識最小化 (SAM) 最適化ステップごとに勾配を XNUMX 回計算することにより、モデルの損失関数とその鋭さの両方を最小化するオプティマイザーです。 余分な計算を制限してスループットにペナルティを課すために、SAM を定期的に実行できます。
  • 線形バイアスに関する注意 (ALiBi)、に触発され プレスら。、トランスフォーマー モデルに固有です。 位置埋め込みの必要性がなくなり、学習されていない注意重みへのバイアスに置き換えられます。
  • 選択的なバックプロップ、に触発され 江ら。、損失関数が高いレコードに対してのみ逆伝播 (誤差勾配に従うことによってモデルの重みを改善するアルゴリズム) を実行できます。 この方法は、不要な計算を回避し、スループットを向上させるのに役立ちます。

これらの手法を単一のコンパクトなトレーニング フレームワークで利用できるようにすることは、ML 実践者にとって大きな付加価値です。 また、MosaicML チームが各手法に対して生成し、テストおよび評価した実用的なフィールド フィードバックも貴重です。 しかし、このように豊富なツールボックスがあるとしたら、どの方法を使用すればよいのだろうかと疑問に思うかもしれません。 複数の方法を組み合わせて使用​​しても安全ですか? MosaicML エクスプローラーに入ります。

MosaicML エクスプローラー

MosaicML チームは、DL トレーニング方法の価値と互換性を定量化するために、 冒険者は、XNUMX つのデータセットと XNUMX つのモデルにまたがる数十の DL トレーニング実験を示す、この種では初のライブ ダッシュボードです。 ダッシュボードは パレート最適フロンティア コスト/時間/品質のトレードオフで、最高スコアのメソッドの組み合わせをブラウズして見つけることができます。 レシピ MosaicML の世界で—特定のモデルとデータセットに対して。 たとえば、次のグラフは、125M パラメータの GPT2 トレーニングの場合、24.11 のパープレキシティを維持する最も安価なトレーニングは、AliBi、Sequence Length Warmup、および Scale Schedule を組み合わせることによって得られ、AWS クラウドで約 $145.83 のコストに達することを示しています! ただし、このコストの計算とこの投稿に続くコストの計算は、EC2 オンデマンド コンピューティングのみに基づいていることに注意してください。環境やビジネス ニーズによっては、他のコストに関する考慮事項が適用される場合があります。

GPT-2 トレーニング用の MosaicML Explorer のスクリーンショット

Composer on AWS による注目すべき成果

Composer ライブラリを AWS で実行することにより、MosaicML チームは多くの素晴らしい結果を達成しました。 MosaicML チームによって報告されたコストの見積もりは、オンデマンドの計算料金のみで構成されていることに注意してください。

まとめ

ラップトップから大規模な GPU 搭載クラウド サーバーまで、互換性のある任意のプラットフォームで Composer を使い始めることができます。 直感的なライブラリ機能 ウェルカムツアー および スタートガイド ドキュメントページ。 AWS で Composer を使用すると、スポット コンピューティング (Amazon EC2, アマゾンセージメーカー), 貯蓄プラン, SageMaker自動モデル調整、 もっと。 MosaicML チームは、 チュートリアル AWS での Composer のMLPerf の結果を再現し、AWS で ResNet-50 を標準の 76.6% のトップ 1 精度までわずか 27 分でトレーニングする方法の段階的なデモを提供します。

トレーニングが遅すぎるニューラル ネットワークに苦労している場合、または DL トレーニングのコストを抑えたい場合は、AWS で MosaicML を試してみて、あなたが構築したものをお知らせください!


著者について

AWS PlatoBlockchain Data Intelligence 上の MosaicML Composer を使用して、ディープラーニングのトレーニング時間とコストを削減します。垂直検索。あい。バンディッシュ・シャー MosaicML のエンジニアリング マネージャーであり、効率的なディープ ラーニングと大規模な分散システムおよびパフォーマンス コンピューティングの橋渡しを行っています。 Bandish は、機械学習およびエンタープライズ アプリケーション用のシステム構築に XNUMX 年以上の経験があります。 彼は、友人や家族と時間を過ごしたり、料理をしたり、インスピレーションを得るためにスタートレックを繰り返し見たりすることを楽しんでいます。

AWS PlatoBlockchain Data Intelligence 上の MosaicML Composer を使用して、ディープラーニングのトレーニング時間とコストを削減します。垂直検索。あい。オリヴィエ・クルシャン フランスを拠点とするAWSの機械学習スペシャリストソリューションアーキテクトです。 Olivierは、小規模なスタートアップから大企業まで、AWSのお客様が本番環境グレードの機械学習アプリケーションを開発およびデプロイするのを支援します。 余暇には、研究論文を読んだり、友人や家族と一緒に荒野を探索したりしています。

タイムスタンプ:

より多くの AWS機械学習