Hugging FaceとAmazon SageMakerを使用した、要約のためのBARTおよびT5の分散トレーニング

Hugging FaceとAmazon SageMakerは、最適化されたDeep Learning Containers (DLCs) と、SageMaker Python SDKにおける専用のHuggingFace estimatorを提供するために統合されました。このコラボレーションにより、開発者はBARTやT5などの最先端のNLPモデルを、分散トレーニング戦略を使用してトレーニングし、パフォーマンスを加速させ、トレーニング時間を短縮することが可能になります。

Transformersのための最適化されたインフラストラクチャ

Amazon SageMakerは現在、Transformersベースのモデルのトレーニングを加速させるために、Hugging Faceに最適化されたDeep Learning Containersを備えています。デプロイメントプロセスを簡素化するために、SageMaker Python SDKにはHuggingFace estimatorが含まれており、これによりユーザーは最小限のコードでトレーニングジョブを開始できます。

SageMaker Data Parallelismによる分散トレーニング

分散トレーニングは、Hugging FaceのTrainer APIに統合されたSageMaker Data Parallelismを介して実装されます。HuggingFace estimator内でdistributionパラメータを定義することで、ユーザーは複数のGPUおよびインスタンスにわたってトレーニングをスケールさせることができます。

Configuration Example:

distribution = {'smdistributed':{'dataparallel':{ 'enabled': True }}}

分散セットアップでは、総バッチサイズはper_device_train_batch_sizeに、すべてのインスタンスで使用されるGPUの数を乗じたものとして計算されます。

技術的実装: 要約のためのBARTのファインチューニング

統合を実証するために、約16,000件のメッセンジャー風の会話とその対応する要約で構成されるsamsumデータセットを使用して、BART-large-cnnモデルをファインチューニングしました。

Hardware and Hyperparameters

トレーニングは以下の構成で行われました:

  • Instance Type: ml.p3dn.24xlarge (8x NVIDIA V100 GPUsを含む)
  • Instance Count: 2 (合計16 GPU)
  • Total Batch Size: 64 (デバイスあたり4 * 16 GPU)
  • Model Size: 400 Million Parameters
  • Training Epochs: 3
  • Learning Rate: 5e-5
  • Precision: FP16 enabled

Performance and Cost

トレーニングジョブは2,882課金秒で完了しました。16台のNVIDIA Tesla V100 GPUを使用したこの特定の構成では、コストは約$28でした。

Model Deployment and Hub Integration

トレーニングが完了すると、モデルのアーティファクトはAmazon S3に保存されます。モデルを共有するためのワークフローは以下の通りです:

  1. Downloading Artifacts: S3Downloaderを使用してS3からトレーニング済みモデルを取得します。
  2. Model Card Creation: ハイパーパラメータと評価指標(ROUGE-1、ROUGE-2、ROUGE-Lなど)を含むREADME.mdを生成します。
  3. Hub Upload: huggingface_hub SDKを利用してリポジトリを作成し、公開アクセスおよびホストされた推論テストのために、ファインチューニングされたモデルをhuggingface.coへプッシュします。

Sources