AWS Trainium 및 Amazon SageMaker로 성능을 극대화하고 딥 러닝 교육 비용을 절감하십시오.

AWS Trainium 및 Amazon SageMaker로 성능을 극대화하고 딥 러닝 교육 비용을 절감하십시오.

소스 노드 : 2010875

오늘날 수만 명의 고객이 다음을 사용하여 기계 학습(ML) 모델을 구축, 교육 및 배포하고 있습니다. 아마존 세이지 메이커 비즈니스와 고객 경험을 재창조할 수 있는 잠재력이 있는 애플리케이션을 지원합니다. 이러한 ML 모델은 지난 몇 년 동안 크기와 복잡성이 증가하여 다양한 작업에서 최첨단 정확도를 제공하고 훈련 시간을 며칠에서 몇 주로 앞당겼습니다. 결과적으로 고객은 수백에서 수천 개의 액셀러레이터로 모델을 확장해야 하므로 훈련 비용이 더 많이 듭니다.

SageMaker는 개발자와 데이터 과학자가 ML 모델을 쉽게 구축, 교육 및 배포할 수 있도록 지원하는 완전 관리형 ML 서비스입니다. SageMaker는 이미 다음을 포함하여 ML 교육을 위한 하드웨어 가속기를 특징으로 하는 가장 광범위하고 심층적인 컴퓨팅 제품 선택을 제공합니다. G5(엔비디아 A10G) 인스턴스 및 P4d(엔비디아 A100) 인스턴스.

증가하는 컴퓨팅 요구 사항은 더 빠르고 비용 효율적인 처리 능력을 요구합니다. 모델 교육 시간을 더욱 줄이고 ML 실무자가 더 빠르게 반복할 수 있도록 하기 위해 AWS는 칩, 서버 및 데이터 센터 연결 전반에서 혁신을 이루어 왔습니다. 다음으로 구동되는 새로운 Trn1 인스턴스 AWS 트레이닝 칩은 AWS에서 최고의 가격 대비 성능과 가장 빠른 ML 모델 교육을 제공하여 정확도 저하 없이 유사한 GPU 기반 인스턴스에 비해 딥 러닝 모델을 교육하는 데 최대 50% 저렴한 비용을 제공합니다.

이 게시물에서는 SageMaker와 함께 Trn1 인스턴스를 사용하여 성능을 극대화하고 비용을 줄이는 방법을 보여줍니다.

솔루션 개요

SageMaker 교육 작업은 클라우드의 고성능 ML 교육 애플리케이션용으로 특별히 제작된 Trainium 칩으로 구동되는 ml.trn1 인스턴스를 지원합니다. SageMaker에서 ml.trn1 인스턴스를 사용하여 자연어 처리(NLP), 컴퓨터 비전 및 추천 모델을 광범위한 응용 프로그램, 음성 인식, 추천, 사기 탐지, 이미지 및 비디오 분류, 예측 등. ml.trn1 인스턴스에는 최대 16개의 Trainium 칩이 탑재되어 있습니다. 이는 이후 AWS에서 구축한 XNUMX세대 ML 칩입니다. AWS 인 페렌 시아. ml.trn1 인스턴스는 첫 번째 아마존 엘라스틱 컴퓨트 클라우드 (Amazon EC2) 최대 800Gbps의 EFA(Elastic Fabric Adapter) 네트워크 대역폭이 있는 인스턴스. 효율적인 데이터 및 모델 병렬 처리를 위해 각 ml.trn1.32xl 인스턴스에는 512GB의 고대역폭 메모리가 있고 최대 3.4페타플롭의 FP16/BF16 컴퓨팅 성능을 제공하며 인스턴스 내 고대역폭 논블로킹 상호 연결인 NeuronLink 기능이 있습니다. .

Trainium은 두 가지 구성으로 제공되며 미국 동부(버지니아 북부) 및 미국 서부(오레곤) 리전에서 사용할 수 있습니다.

다음 표에는 Trn1 인스턴스의 기능이 요약되어 있습니다.

인스턴스 크기 트레니움
가속기
가속 자
메모리
(영국)
vCPU
메모리
(수코양이)
네트워크
대역폭
(Gbps)
EFA와
RDMA
고객 지원
trn1.2xlarge 1 32 8 32 최대 12.5까지 아니
trn1.32xlarge 16 512 128 512 800 가능
trn1n.32xlarge(출시 예정) 16 512 128 512 1600 가능

간단한 예제를 통해 SageMaker와 함께 Trainium을 사용하는 방법을 알아보겠습니다. Hugging Face Transformers Library를 사용하여 SageMaker 교육 및 PyTorch로 텍스트 분류 모델을 교육합니다.

amazon.com의 리뷰로 구성된 Amazon 리뷰 데이터 세트를 사용합니다. 이 데이터는 18년 35월까지 약 2013만 건의 리뷰로 구성된 XNUMX년의 기간에 걸쳐 있습니다. 리뷰에는 제품 및 사용자 정보, 평점, 일반 텍스트 리뷰가 포함됩니다. 다음 코드는 AmazonPolarity 테스트 세트:

{
title':'Great CD', 'content':"My lovely Pat has one of the GREAT voices of her generation. I have listened to this CD for YEARS and I still LOVE IT. When I'm in a good mood it makes me feel better. A bad mood just evaporates like sugar in the rain. This CD just oozes LIFE. Vocals are jusat STUUNNING and lyrics just kill. One of life's hidden gems. This is a desert isle CD in my book. Why she never made it big is just beyond me. Everytime I play this, no matter black, white, young, old, male, female EVERYBODY says one thing ""Who was that singing ?""", 'label':1
}

이 게시물에서는 콘텐츠 및 레이블 필드만 사용합니다. 내용 필드는 자유 텍스트 리뷰이고 레이블 필드는 각각 긍정적인 리뷰 또는 부정적인 리뷰에 대해 1 또는 0을 포함하는 이진 값입니다.

우리 알고리즘의 경우 자체 감독 방식으로 대량의 영어 데이터 코퍼스에 대해 사전 훈련된 변환기 모델인 BERT를 사용합니다. 이 모델은 주로 시퀀스 분류, 토큰 분류 또는 질문 응답과 같은 결정을 내리기 위해 전체 문장(잠재적으로 마스킹됨)을 사용하는 작업에서 미세 조정되는 것을 목표로 합니다.

구현 세부 사항

모델 학습과 관련된 다양한 구성 요소를 자세히 살펴보는 것으로 시작하겠습니다.

  • AWS 트레이닝 – 핵심은 각각 Trainium 인스턴스 Trainium 장치가 내장되어 있습니다. Trn1.2xlarge에는 1개의 Trainium 장치가 있고 Trn1.32xlarge에는 16개의 Trainium 장치가 있습니다. 각 Trainium 장치는 빠른 장치 간 통신을 위한 컴퓨팅(2 NeuronCore-v2), 32GB의 HBM 장치 메모리 및 NeuronLink로 구성됩니다. 각 뉴런코어-v2 별도의 엔진(Tensor/Vector/Scalar/GPSIMD)이 있는 완전히 독립적인 이기종 컴퓨팅 장치로 구성됩니다. GPSIMD는 사용자 지정 연산자를 구현하고 NeuronCore 엔진에서 직접 실행하는 데 사용할 수 있는 완전히 프로그래밍 가능한 범용 프로세서입니다.
  • Amazon SageMaker 교육 – SageMaker는 인프라에 대해 걱정할 필요 없이 모델을 쉽게 교육할 수 있는 완전 관리형 교육 환경을 제공합니다. SageMaker Training을 사용하면 코드, 컨테이너, 데이터 등 교육 작업에 필요한 모든 것을 호출 환경과 별도의 컴퓨팅 인프라에서 실행합니다. 이를 통해 실험을 병렬로 실행하고 빠르게 반복할 수 있습니다. SageMaker는 파이썬 SDK 교육 작업을 시작합니다. 이 게시물의 예에서는 SageMaker Python SDK를 사용하여 Trainium을 사용하여 교육 작업을 트리거합니다.
  • AWS 뉴런 – Trainium NeuronCore에는 자체 컴퓨팅 엔진이 있으므로 교육 코드를 컴파일하는 메커니즘이 필요합니다. 그만큼 AWS 뉴런 컴파일러는 Pytorch/XLA로 작성된 코드를 가져오고 Neuron 장치에서 실행되도록 최적화합니다. Neuron 컴파일러는 모델 훈련에 사용할 Deep Learning Container의 일부로 통합됩니다.
  • 파이토치/XLA - 이 파이썬 패키지 XLA 딥 러닝 컴파일러를 사용하여 PyTorch 딥 러닝 프레임워크와 Trainium과 같은 클라우드 가속기를 연결합니다. 새로운 PyTorch 네트워크를 구축하거나 XLA 장치에서 실행되도록 기존 네트워크를 변환하려면 몇 줄의 XLA 관련 코드만 필요합니다. 사용 사례에 대해 어떤 변경이 필요한지 확인할 것입니다.
  • 분산 교육 – 여러 NeuronCore에서 교육을 효율적으로 실행하려면 사용 가능한 NeuronCore에 교육을 배포하는 메커니즘이 필요합니다. SageMaker는 클러스터의 NeuronCore 수에 해당하는 여러 프로세스를 실행하는 데 사용할 수 있는 Trainium 인스턴스로 torchrun을 지원합니다. 이는 다음과 같이 분포 매개변수를 SageMaker 추정기에 전달하여 수행됩니다. 그러면 동일한 모델이 별도의 데이터 배치를 처리하는 서로 다른 NeuronCore에 로드되는 데이터 병렬 분산 교육이 시작됩니다.
distribution={"torch_distributed": {"enabled": True}}

Trainium에서 실행하는 데 필요한 스크립트 변경

Trainium에서 실행하기 위해 일반 GPU 기반 PyTorch 스크립트를 채택하는 데 필요한 코드 변경 사항을 살펴보겠습니다. 높은 수준에서 다음과 같이 변경해야 합니다.

  1. GPU 장치를 Pytorch/XLA 장치로 교체합니다. 토치 배포를 사용하기 때문에 다음과 같이 XLA를 장치로 사용하여 교육을 초기화해야 합니다.
    device = "xla"
    torch.distributed.init_process_group(device)

  2. 우리는 PyTorch/XLA 분산 백엔드를 사용하여 PyTorch 분산 API를 XLA 통신 시맨틱에 연결합니다.
  3. 데이터 수집 파이프라인에 PyTorch/XLA MpDeviceLoader를 사용합니다. MpDeviceLoader는 장치에 대한 추적, 컴파일 및 데이터 일괄 로드의 세 단계를 중첩하여 성능을 향상시키는 데 도움이 됩니다. 다음과 같이 PyTorch 데이터 로더를 MpDeviceDataLoader로 래핑해야 합니다.
    train_device_loader = pl.MpDeviceLoader(train_loader, "xla")

  4. 다음 코드와 같이 XLA 제공 API를 사용하여 최적화 단계를 실행합니다. 이것은 코어 사이의 기울기를 통합하고 XLA 장치 단계 계산을 발행합니다.
    torch_xla.core.xla_model.optimizer_step(optimizer)

  5. CUDA API(있는 경우)를 일반 PyTorch API에 매핑합니다.
  6. CUDA 융합 옵티마이저(있는 경우)를 일반 PyTorch 대안으로 교체합니다.

SageMaker 및 Trainium을 사용하여 텍스트 분류 모델을 교육하는 전체 예제는 다음에서 사용할 수 있습니다. GitHub 레포. 노트북 파일 SageMaker 및 Trainium.ipynb를 사용하여 분류 모델을 구축하기 위한 Transformer 미세 조정 시작점이며 교육을 실행하기 위한 단계별 지침이 포함되어 있습니다.

벤치마크 테스트

테스트에서는 동일한 배치 크기, 훈련 데이터 및 기타 하이퍼파라미터를 사용하여 ml.trn1.32xlarge에서 하나, ml.p4d.24xlarge에서 하나의 두 가지 훈련 작업을 실행했습니다. 교육 작업 중에 SageMaker 교육 작업의 청구 가능 시간을 측정하고 교육 작업을 실행하는 데 필요한 시간(시간)에 인스턴스 유형에 대한 시간당 가격을 곱하여 가격 대비 성능을 계산했습니다. 여러 작업 실행 중에서 각 인스턴스 유형에 대해 최상의 결과를 선택했습니다.

다음 표에는 벤치마크 결과가 요약되어 있습니다.

모델 인스턴스 유형 가격(노드당 * 시간) 처리량(반복/초) 유효성 검사 정확도 청구 가능 시간(초) 교육 비용($)
BERT 기본 분류 ml.trn1.32xlarge 24.725 6.64 0.984 6033 41.47
BERT 기본 분류 ml.p4d.24xlarge 37.69 5.44 0.984 6553 68.6

결과는 Trainium 인스턴스가 P4d 인스턴스보다 비용이 저렴하여 동일한 입력 데이터 및 훈련 매개변수로 동일한 모델을 훈련할 때 비슷한 처리량과 정확도를 제공한다는 것을 보여주었습니다. 즉, Trainium 인스턴스는 GPU 기반 P4D 인스턴스보다 더 나은 가격 대비 성능을 제공합니다. 이와 같은 간단한 예를 통해 우리는 Trainium이 P22d 인스턴스보다 약 50% 더 빠른 훈련 시간과 최대 4% 더 저렴한 비용을 제공한다는 것을 알 수 있습니다.

학습된 모델 배포

모델을 교육한 후 CPU, GPU 또는 AWS Inferentia와 같은 다양한 인스턴스 유형에 배포할 수 있습니다. 주목해야 할 핵심 사항은 훈련된 모델이 배포 및 추론을 위해 특수 하드웨어에 의존하지 않는다는 것입니다. SageMaker는 실시간 또는 배치 메커니즘을 모두 사용하여 훈련된 모델을 배포하는 메커니즘을 제공합니다. GitHub 리포지토리의 노트북 예제에는 ml.c5.xlarge(CPU 기반) 인스턴스를 사용하여 훈련된 모델을 실시간 엔드포인트로 배포하는 코드가 포함되어 있습니다.

결론

이 게시물에서는 Trainium 및 SageMaker를 사용하여 정확도를 손상시키지 않으면서 최대 50%의 비용 절감을 제공하는 분류 모델을 신속하게 설정하고 교육하는 방법을 살펴보았습니다. Transformer 기반 모델의 사전 학습 또는 미세 조정과 관련된 광범위한 사용 사례에 Trainium을 사용할 수 있습니다. 다양한 모델 아키텍처 지원에 대한 자세한 내용은 다음을 참조하십시오. 모델 아키텍처 맞춤 지침.


저자에 관하여

아룬 쿠마르 로카나타 Amazon SageMaker 서비스 팀의 수석 ML 솔루션 설계자입니다. 그는 고객이 ML 프로덕션 워크로드를 대규모로 SageMaker로 구축, 교육 및 마이그레이션하도록 돕는 데 중점을 둡니다. 그는 특히 NLP 및 CV 영역에서 딥 러닝을 전문으로 합니다. 일 외에는 달리기와 하이킹을 즐깁니다.

마크 유 AWS SageMaker의 소프트웨어 엔지니어입니다. 그는 대규모 분산 교육 시스템 구축, 교육 성능 최적화, SageMaker trainium을 포함한 고성능 ML 교육 하드웨어 개발에 중점을 둡니다. Mark는 기계 학습 인프라 최적화에 대한 심층 지식도 보유하고 있습니다. 여가 시간에는 하이킹과 달리기를 즐깁니다.

옴리 푹스 AWS SageMaker의 소프트웨어 개발 관리자입니다. 그는 SageMaker 교육 작업 플랫폼을 담당하는 기술 리더로서 SageMaker 교육 성능을 최적화하고 교육 경험을 개선하는 데 중점을 둡니다. 그는 최첨단 ML 및 AI 기술에 대한 열정을 가지고 있습니다. 여가 시간에는 자전거 타기와 하이킹을 좋아합니다.

갈 오쉬리 Amazon SageMaker 팀의 수석 제품 관리자입니다. 그는 기계 학습 도구, 프레임워크 및 서비스에 대해 7년 동안 작업한 경험이 있습니다.

타임 스탬프 :

더보기 AWS 기계 학습