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 Fine-Tuning

통합 사례를 보여주기 위해, 약 16,000개의 메신저 스타일 대화와 그에 해당하는 요약으로 구성된 samsum 데이터셋을 사용하여 BART-large-cnn 모델을 fine-tuning했습니다.

Hardware and Hyperparameters

학습은 다음 구성으로 진행되었습니다:

  • Instance Type: ml.p3dn.24xlarge (8x NVIDIA V100 GPU 포함)
  • 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 과금 가능한 초(billable seconds) 내에 완료되었습니다. 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를 사용하여 저장소를 생성하고, 공개 액세스 및 호스팅된 추론 테스트를를 위해 fine-tuned 모델을 huggingface.co로 푸시합니다.

Sources