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に保存されます。モデルを共有するためのワークフローは以下の通りです:
- Downloading Artifacts:
S3Downloaderを使用してS3からトレーニング済みモデルを取得します。 - Model Card Creation: ハイパーパラメータと評価指標(ROUGE-1、ROUGE-2、ROUGE-Lなど)を含む
README.mdを生成します。 - Hub Upload:
huggingface_hubSDKを利用してリポジトリを作成し、公開アクセスおよびホストされた推論テストのために、ファインチューニングされたモデルをhuggingface.coへプッシュします。