경제성과 정확성의 만남: AWS Trainium을 사용한 GPT NeoX 및 Pythia 모델의 비용 효율적인 교육 | 아마존 웹 서비스

경제성과 정확성의 만남: AWS Trainium을 사용한 GPT NeoX 및 Pythia 모델의 비용 효율적인 교육 | 아마존 웹 서비스

대규모 언어 모델(또는 LLM)은 일상 대화의 주제가 되었습니다. 100억 명의 사용자에 도달하는 데 필요한 시간이 "페이스북 기준 4.5년"에서 사상 최저 수준인 "ChatGPT 기준 2개월"에 도달한 것을 보면 빠른 채택이 분명합니다. 생성적 사전 훈련된 변환기(GPT)는 인과적 자동 회귀 업데이트를 사용하여 예측을 수행합니다. 음성 인식, 텍스트 생성, 질문 응답과 같은 다양한 작업은 이러한 모델 아키텍처를 통해 놀라운 성능을 발휘하는 것으로 입증되었습니다. 다음과 같은 여러 최신 모델이 있습니다. NEOX, , 야마 GPT 아키텍처를 백본으로 사용합니다. LLM 교육에는 엄청난 양의 컴퓨팅 시간이 필요하며 이는 수백만 달러의 비용이 듭니다. 이번 포스팅에서는 GPT의 학습 절차를 요약해 보겠습니다. NEOX on AWS 트레이닝, 딥 러닝 훈련에 최적화된 특수 목적의 기계 학습(ML) 가속기입니다. 모델 품질을 잃지 않고 AWS Trainium을 사용하여 이러한 모델을 비용 효율적으로($3.2만 토큰/$) 교육하는 방법을 간략하게 설명하겠습니다.

솔루션 개요

GPT NeoX 및 Pythia 모델

GPT 네오X피 티아 NeoX에서 약 20억 개의 매개변수, Pythia에서 약 6.9억 개의 매개변수를 갖춘 Eleuther-AI의 오픈 소스 인과 언어 모델입니다. 둘 다 Chat GPT3와 유사한 아키텍처 설계를 따르는 디코더 모델입니다. 그러나 Llama와 같은 최신 모델에도 널리 채택되는 몇 가지 추가 기능도 있습니다. 특히 머리 크기에 걸쳐 부분 회전이 가능한 ROPE(회전 위치 임베딩)가 있습니다. 원래 모델(NeoX 및 Pythia 6.9B)은 공개적으로 사용 가능한 교육을 받았습니다. 더미 데이터 세트 중복 제거와 Megatron 및 Deepspeed 백엔드 사용.

다음을 사용하여 AWS Trainium 기반 Trn1 인스턴스에서 이러한 모델의 사전 훈련 및 미세 조정을 시연합니다. 뉴런 니모 도서관. 개념 증명 및 빠른 재생산을 확립하기 위해 GPT2 BPE(바이트 쌍 인코딩) 토크나이저를 사용하여 토큰화된 더 작은 Wikipedia 데이터 세트 하위 집합을 사용합니다.

연습

다음과 같이 사전 토큰화된 Wikipedia 데이터세트를 다운로드합니다.

export DATA_DIR=~/examples_datasets/gpt2 mkdir -p ${DATA_DIR} && cd ${DATA_DIR} wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-vocab.json
wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-merges.txt
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/my-gpt2_text_document.bin . --no-sign-request
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/my-gpt2_text_document.idx . --no-sign-request
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/license.txt . --no-sign-request

NeoX 20B와 Pythia 6.9B는 모두 부분 회전이 가능한 ROPE를 사용합니다. 예를 들어 머리 치수의 25%를 회전하고 나머지는 회전하지 않은 상태로 유지합니다. AWS Trainium Accelerator에서 부분 회전을 효율적으로 구현하기 위해 회전 차원과 회전하지 않는 차원을 연결하는 대신 회전하지 않는 차원에 대해 XNUMX 빈도를 추가한 다음 전체 헤드 차원 세트를 회전합니다. 이 간단한 트릭은 AWS Trainium의 처리량(초당 처리되는 시퀀스)을 향상시키는 데 도움이 되었습니다.

훈련 단계

교육을 실행하기 위해 SLURM 관리형 다중 노드 Amazon Elastic Compute Cloud(Amazon EC2) Trn1 클러스터. 각 노드에는 trn1.32xl 인스턴스가 포함되어 있습니다. 각 trn1.32xl 16개의 액셀러레이터가 있고 액셀러레이터당 XNUMX명의 작업자가 있습니다. 최신버전을 다운받은 후 뉴런 니모 패키지, 제공된 것을 사용하십시오 네옥스피티아 최적화된 하이퍼 매개변수를 사용하여 사전 훈련 및 미세 조정 스크립트를 실행하고 XNUMX개 노드 훈련을 위해 다음을 실행합니다.

  1. 컴파일: 세 번의 학습 반복을 통해 모델을 사전 컴파일하여 그래프를 생성하고 저장합니다.
    sbatch --nodes 4 compile.slurm ./neoX_20B_slurm.sh

  2. 실행: 첫 번째 단계에서 캐시된 그래프를 로드하여 훈련을 실행합니다.
    sbatch --nodes 4 run.slurm ./neoX_20B_slurm.sh

  3. 결과 모니터링
    tensorboard --logdir=nemo_experiments/megatron_neox

Pythia 6.9B 모델을 교체하려면 동일한 단계를 따라야 합니다. neox_20B_slurm.sh by pythia_6.9B_slurm.sh.

사전 훈련 및 미세 조정 실험

다음을 사용하여 AWS Trainium에서 GPT-NeoX 및 Pythia 모델의 사전 교육을 시연합니다. 뉴런 니모 10회 반복을 위한 라이브러리와 1회 단계에 대한 이러한 모델의 미세 조정도 보여줍니다. 사전 훈련을 위해 NeMo 내부의 GPT2 BPE 토크나이저를 사용하고 동일한 내용을 따릅니다. 설정 원래 모델에 사용된 것과 같습니다. AWS Trainium에서 미세 조정하려면 몇 가지 매개변수(예: 어휘 크기 분할 계수) 이는 Megatron과 NeMo의 차이점, GPU와 AWS Trainium의 변경 사항을 수용하기 위해 미세 조정 스크립트에 제공됩니다. 다양한 노드 수에 따른 다중 노드 분산 훈련 처리량은 표-1에 나와 있습니다.

모델 텐서 병렬 파이프 라인 병렬 인스턴스 수 비용($/시간) 시퀀스 길이 글로벌 배치 크기 처리량(시퀀스/초) 비용 처리량 비율(토큰/$)
피티아 6.9B 8 1 1 7.59 2048 256 10.4 10,102,387
8 1 4 30.36 2048 256 35.8 8,693,881
네오엑스 20B 8 4 4 30.36 2048 16384 13.60 3,302,704
8 4 8 60.72 2048 16384 26.80 3,254,134
8 4 16 121.44 2048 16384 54.30 3,296,632
8 4 32 242.88 2048 16384 107.50 3,263,241
8 4 64 485.76 2048 16384 212.00 3,217,708

테이블 1. 노드 수를 변경하면서 최대 500단계까지 훈련하기 위한 GPT NeoX 및 Pythia 모델의 평균 처리량을 비교합니다. 그만큼 trn1.32xl의 가격 3년 예약 유효 시간당 요율을 기준으로 합니다.

다음으로 AWS Trainium에서 모델 교육의 손실 궤적을 평가하고 이를 P4d(Nvidia A100 GPU 코어) 클러스터에서 실행한 것과 비교합니다. 훈련 손실과 함께 훈련 진행 상황을 모니터링하기 위해 각 훈련 반복에서 계산된 모델 기울기의 2-norm인 그래디언트 표준과 같은 유용한 지표도 비교합니다. 훈련 결과는 그림-1, 2에 나와 있으며 NeoX 20B의 미세 조정은 그림-3에 나와 있습니다.

각 단계의 훈련에서 모든 작업자(왼쪽)와 기울기 표준(오른쪽)의 평균 훈련 손실입니다.

그림-1. 각 단계의 훈련에서 모든 작업자(왼쪽)와 기울기 표준(오른쪽)의 평균 훈련 손실입니다. NeoX 20B는 동일한 교육 하이퍼 매개변수(글로벌 배치 크기=4)를 사용하여 GPU 및 Trainium의 작은 위키 데이터 세트를 사용하여 256개 노드에서 교육됩니다. GPU는 BF16과 기본 혼합 정밀도를 사용하는 반면 AWS Trainium은 확률적 반올림과 함께 전체 BF16을 사용합니다. 손실 및 그래디언트 표준 궤적은 GPU 및 AWS Trainium과 일치합니다.

각 단계의 훈련에서 모든 작업자(왼쪽)와 기울기 표준(오른쪽)에 대한 평균 훈련 손실(Pythia).

그림-2. 각 단계의 훈련에서 모든 작업자(왼쪽)와 기울기 표준(오른쪽)의 평균 훈련 손실입니다. 그림-1의 GPT NeoX와 유사하게, Pythia 6.9B는 동일한 훈련 하이퍼 매개변수(글로벌 배치 크기=4)를 사용하여 GPU 및 Trainium의 작은 위키 데이터 세트가 있는 256개 노드에서 훈련됩니다. 손실 및 그래디언트 표준 궤적은 GPU 및 Trainium과 일치합니다.

모든 작업자의 평균 훈련 손실(왼쪽)과 기울기 표준(오른쪽)을 사용하여 GPU 및 AWS Trainium에서 GPT NeoX 20B 모델을 미세 조정합니다.

그림-3. 모든 작업자의 평균 훈련 손실(왼쪽)과 기울기 표준(오른쪽)을 사용하여 GPU 및 AWS Trainium에서 GPT NeoX 20B 모델을 미세 조정합니다. 소규모 위키 데이터세트는 데모를 미세 조정하는 데 사용됩니다. 손실 및 그래디언트 표준 궤적은 GPU 및 AWS Trainium과 일치합니다.

이 게시물에서는 AWS 딥 러닝 하드웨어에서 LLM의 비용 효율적인 교육을 보여주었습니다. Neuron NeMo 라이브러리를 사용하여 AWS Trn20에서 GPT NeoX 6.9B 및 Pythia 1B 모델을 교육했습니다. AWS Trainium을 사용하는 20억 개 모델의 비용 정규화 처리량은 약 3.2만 개의 토큰/$ 지출입니다. AWS Trainium의 비용 효율적인 교육과 함께 유사한 모델 정확도를 얻습니다. 이는 교육 단계 손실 및 그래디언트 표준 궤적에서 분명합니다. 또한 AWS Trainium에서 NeoX 20B 모델에 사용 가능한 체크포인트를 미세 조정했습니다. AWS Trainium에서 NeMo Megatron을 사용한 분산 교육에 대한 자세한 내용은 다음을 참조하세요. NeMo Megatron용 AWS Neuron 참조. Llama 모델의 미세 조정을 시작하는 데 유용한 리소스는 여기에서 찾을 수 있습니다. Llama2 미세 조정. 관리형 AWS Trainium을 시작하려면 아마존 세이지 메이커참조 AWS Trainium 및 Amazon SageMaker를 사용하여 ML 모델 교육.


저자에 관하여

경제성과 정확성의 만남: AWS Trainium을 사용한 GPT NeoX 및 Pythia 모델의 비용 효율적인 교육 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.가우 라브 굽타 현재 Amazon Web Services(AWS) AI 연구소의 응용 과학자입니다. Gupta 박사는 USC Viterbi에서 박사 학위를 취득했습니다. 그의 연구 관심 분야는 순차 데이터 모델링, 편미분 방정식 학습, 기계 학습을 위한 정보 이론, 분수 동적 모델 및 복잡한 네트워크 영역에 걸쳐 있습니다. 그는 현재 LLM 훈련 행동, PDE를 사용한 비전 모델, 정보 이론 다중 양식 모델에 대한 응용 및 수학적 문제를 연구하고 있습니다. Gupta 박사는 Neurips, ICLR, ICML, Nature, IEEE Control Society, ACM Cyber-Physical Society와 같은 최고의 저널/컨퍼런스에 출판물을 보유하고 있습니다.

경제성과 정확성의 만남: AWS Trainium을 사용한 GPT NeoX 및 Pythia 모델의 비용 효율적인 교육 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.벤 스나이더 AWS Deep Learning의 응용 과학자입니다. 그의 연구 관심 분야에는 기초 모델, 강화 학습, 비동기 최적화가 포함됩니다. 업무 외에는 사이클링과 오지 캠핑을 즐깁니다.

경제성과 정확성의 만남: AWS Trainium을 사용한 GPT NeoX 및 Pythia 모델의 비용 효율적인 교육 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.아미스(R) 마미달라 AWS Annapurna Labs의 선임 기계 학습 애플리케이션 엔지니어링입니다. Mamidala 박사는 오하이오 주립대학교에서 고성능 컴퓨팅 및 통신 분야의 박사 학위를 취득했습니다. IBM 연구소에 재직하는 동안 Mamidala 박사는 가장 강력하고 전력 효율적인 슈퍼컴퓨터 상위 500위 순위를 차지한 BlueGene 클래스 컴퓨터 개발에 기여했습니다. 이 프로젝트는 2009년 국가 기술 및 혁신 메달을 수상했습니다. 금융 헤지 펀드에서 AI 엔지니어로 잠시 근무한 후 Mamidala 박사는 대형 언어 모델 교육에 중점을 두는 Annapurna 연구소에 합류했습니다.

경제성과 정확성의 만남: AWS Trainium을 사용한 GPT NeoX 및 Pythia 모델의 비용 효율적인 교육 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.준(루크)환 AWS AI Labs의 수석 과학자입니다. Huan 박사는 AI와 데이터 과학을 연구하고 있습니다. 그는 주요 학회 및 저널에 180개 이상의 동료 심사 논문을 발표했습니다. 그는 2009년에 NSF Faculty Early Career Development Award를 수상했습니다. AWS에 합류하기 전에는 Baidu 연구소에서 저명한 과학자이자 Baidu 빅 데이터 연구소 소장으로 근무했습니다. AI 스타트업인 스타일링AI(주)를 설립해 2019~2021년 CEO 및 수석과학자로 근무했다. 업계에 합류하기 전에는 캔자스 대학교 EECS학과의 Charles E. 및 Mary Jane Spahr 교수였습니다.

경제성과 정확성의 만남: AWS Trainium을 사용한 GPT NeoX 및 Pythia 모델의 비용 효율적인 교육 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.슈루티 코파카르 AWS의 선임 제품 마케팅 관리자입니다. 그녀는 고객이 기계 학습 요구 사항을 위해 Amazon EC2 가속 컴퓨팅 인프라를 탐색, 평가 및 채택하도록 돕습니다.

타임 스탬프 :

더보기 AWS 기계 학습