Amazon SageMaker와 Hugging Face 파트너십

TL;DR

Hugging Face와 Amazon은 Hugging Face Transformers를 Amazon SageMaker에 통합하여 최첨단 NLP 모델의 학습 및 배포를 간소화하기 위한 전략적 파트너십을 체결했습니다. 이번 협업을 통해 전용 Hugging Face Deep Learning Containers (DLCs)와 SageMaker Python SDK를 위한 퍼스트 클래스 확장이 도입되어, 실험 설정 및 실행 시간을 며칠에서 몇 분으로 단축할 수 있습니다.

Hugging Face Deep Learning Containers (DLCs)

Amazon SageMaker는 이제 transformers, datasets, tokenizers와 같은 딥러닝 프레임워크 및 라이브러리가 사전 설치된 Docker 이미지인 Hugging Face DLCs를 제공합니다. 이러한 컨테이너를 사용하면 사용자가 환경을 처음부터 직접 구축하고 최적화할 필요가 없습니다.

DLCs의 주요 특징은 다음과 같습니다:

  • Framework Support: TensorFlow와 PyTorch 모두를 위한 최적화된 변형이 제공됩니다.
  • Infrastructure Flexibility: 단일 GPU, 단일 노드 멀티 GPU, 그리고 멀티 노드 클러스터 지원.
  • Performance: 학습 속도를 높이고 가성비를 최적화하기 위해 PyTorch와 TensorFlow에 내장된 최적화 기능이 포함되어 있습니다.
  • Open Source: DLCs는 Apache 2.0 라이선스 하에 제공됩니다.

SageMaker Python SDK Integration

데이터 과학에서 프로덕션으로의 전환을 가속화하기 위해, Hugging Face는 SageMaker Python SDK를 위한 퍼스트 클래스 확장을 개발했습니다. 이 통합을 통해 사용자는 HuggingFace Estimator를 생성하여 엔드 투 엔드 학습 과정을 관리할 수 있습니다.

Core Capabilities

  • Automatic Model Tuning: 하이퍼파라미터 최적화 및 모델 정확도 향상을 위해 SageMaker의 Automatic Model Tuning과 통합됩니다.
  • Experiment Tracking: 학습 아티팩트 및 실험을 추적하고 비교하기 위해 SageMaker Studio IDE와 호환됩니다.
  • Managed Infrastructure: SageMaker는 Amazon EC2 인스턴스를 자동으로 관리하고, 학습 스크립트(예: train.py)를 업로드하며, Amazon S3로부터의 데이터 I/O를 처리합니다.

Advanced Training Features

이번 파트너십은 대규모 NLP 워크로드를 처리하기 위한 여러 고성능 학습 기능을 도입합니다.

Distributed Training

사용자는 분산 파라미터를 정의함으로써 HuggingFace Estimator를 통해 SageMaker 분산 학습 라이브러리를 직접 활용할 수 있습니다:

  • Data Parallelism: 대규모 데이터셋에 대한 학습을 간소화하기 위해 Trainer API에 통합되었습니다.
  • Model Parallelism: 모델을 여러 GPU/노드에 분할하여 수십억 개의 파라미터를 가진 모델의 학습을 지원합니다.

Cost and Workflow Optimization

  • Managed Spot Instances: 사용자는 EC2 스팟 인스턴스를 활용하여 학습 비용을 최대 90%까지 절감할 수 있습니다. 장기 실행 작업의 경우 checkpoint_s3_uri와 함께 사용하는 것이 권장됩니다.
  • Git Repository Integration: Estimator의 entry_pointsource_dir를 GitHub 저장소로 직접 지정할 수 있어, 스크립트를 로컬에 다운로드할 필요가 없습니다.
  • SageMaker Metrics: 시스템은 정규 표현식을 사용하여 로그를 자동으로 파싱하여 학습 메트릭(예: eval_loss, eval_accuracy)을을 Amazon CloudWatch로 전송할 수 있습니다.

Deployment and Inference

초기에는 학습에 초점을 맞추었으나, 2021년 7월 8일에 통합 기능이 확장되어 Amazon SageMaker 내에서 Transformers 모델의 간편한 배포 및 추론을 포함하게 되었습니다.

Summary of Benefits

Hugging Face FAQ에 따르면, Hugging Face 모델을 위해 SageMaker를 사용하는 것은 세 가지 주요 장점을 제공합니다:

  1. Cost-Effectiveness: 인스턴스는 초 단위로 비용이 청구되며 작업이 종료되면 자동으로 종료됩니다.
  2. MLOps Automation: 학습 메타데이터, 로그, 그리고 체크포인트 및 아티팩트를 위한 S3 I/O가 완전히 관리됩니다.
  3. Scalability: 여러 개의 병렬 학습 작업을 실행하고 대규모 분산 학습을 가능 수 있게 합니다.

Sources