피드로 돌아가기
Hugging Face on AMD Instinct MI300 GPU
Hugging Face BlogHugging Face Blog
AI/ML

Hugging Face가 AMD Instinct MI300 GPU를 Transformers와 text-generation-inference에 통합해 코드 변경 없이 로컬 환경부터 Azure 프로덕션까지 배포 지원 및 Llama 3 70B 학습 속도 2배 향상 달성

Hugging Face on AMD Instinct MI300 GPU

2024년 5월 21일10intermediate

Context

AMD Instinct MI300는 최신 세대 GPU 서버이지만 Hugging Face 플랫폼 전반에 걸쳐 첫 번째 수준의 통합이 부족했다. 개발자들이 다양한 하드웨어 가속기를 선택하여 AI 모델을 배포할 수 있도록 지원하기 위한 일관된 소프트웨어 스택이 필요했다.

Technical Solution

  • Transformers 및 text-generation-inference 레이어에서 MI300 테스트 자동화: Azure ND MI300x V5를 CI/CD 빌드 블록으로 설정하여 tens of thousands 단위의 유닛 테스트를 정기적으로 MI250과 MI300 양쪽에서 검증
  • Kubernetes 기반 인프라 마이그레이션: 이전 인프라에서 관리형 Kubernetes 클러스터로 전환하여 개발자가 하드웨어 추상화 계층에서 동일한 CI/CD 파이프라인을 다양한 플랫폼에서 실행 가능하게 구성
  • text-generation-inference 모델링 레이어 최적화: Flash Attention v2, Paged Attention, GPTQ/AWQ 압축 기법, PyTorch ROCm TunableOp, 최적화된 fused kernels 통합으로 Llama 계열 모델의 추론 성능 개선
  • PyTorch 2.3 TunableOp 통합: GEMM 연산에 대해 shape와 데이터 타입에 따라 가장 효율적인 실행 방식을 자동 선택하도록 구현
  • 메모리 활용 개선: MI300X의 192 GB HBM3 메모리를 활용해 Llama 3 70B 모델을 float16/bfloat16으로 단일 GPU에 완전히 로드 및 파인튜닝 가능하게 구성(MI250은 128 GB로 불가능)

Impact

  • Llama 3 70B 학습 속도 2배 향상: Azure MI300X VM에서 이전 세대 MI250을 사용한 HPC 서버 대비
  • 작은 입력 시퀀스에서 레이턴시 8~10% 개선: TunableOp을 활용한 디코딩 페이즈 성능 향상

Key Takeaway

AI 하드웨어 지원 전략에서 인프라(Kubernetes 기반 CI/CD), 컴파일러 최적화(TunableOp), 고수준 알고리즘(Flash Attention) 레이어를 동시에 최적화하면 개발자 경험 저하 없이 신규 GPU의 성능을 최대한 활용할 수 있다. 특히 managed Kubernetes로의 마이그레이션으로 하드웨어 추상화를 달성하면 여러 가속기 지원 시 운영 복잡도를 크게 줄일 수 있다.


오픈소스 머신러닝 프레임워크 개발팀이 신규 GPU를 지원할 때, 단순히 커널 최적화만 하는 것보다 Kubernetes 기반 매니지드 인프라와 PyTorch TunableOp 같은 자동 튜닝 도구를 함께 도입하면 다양한 하드웨어에 걸친 일관된 CI/CD 파이프라인을 구축하고 하드웨어 추상화를 통해 개발자 코드 변경을 최소화하면서도 최신 GPU의 성능을 최대 2배까지 활용할 수 있다.

원문 읽기