>  기사  >  기술 주변기기  >  32카드 176% 훈련 가속화, 오픈 소스 대형 모델 훈련 프레임워크 Megatron-LLaMA 출시

32카드 176% 훈련 가속화, 오픈 소스 대형 모델 훈련 프레임워크 Megatron-LLaMA 출시

WBOY
WBOY앞으로
2023-09-14 16:01:05575검색

Taotian Group과 Aicheng Technology는 9월 12일 오픈 소스 대형 모델 훈련 프레임워크인 Megatron-LLaMA를 공식 출시했습니다. 이 프레임워크의 목표는 기술 개발자가 더 쉽게 대규모 언어 모델의 훈련 성능을 향상시키고, 훈련 비용을 절감하며, LLaMA 커뮤니티와의 호환성을 유지할 수 있도록 하는 것입니다. 테스트 결과에 따르면 Megatron-LLaMA는 대규모 훈련에서 HuggingFace에서 직접 얻은 코드 버전에 비해 176%의 가속을 달성할 수 있으며 거의 ​​선형적으로 확장되며 네트워크에 불안정합니다. 높은 수준의 내성. 현재 Megatron-LLaMA는 오픈 소스 커뮤니티에 온라인 상태입니다

오픈 소스 주소: https://github.com/alibaba/Megatron-LLaMA

대형 언어 모델의 뛰어난 성능은 사람들의 상상 시간을 뛰어 넘었고 다시 시간. 지난 몇 달 동안 LLaMA와 LLaMA2는 오픈 소스 커뮤니티에 정식 출시되어 자신만의 대규모 언어 모델을 훈련하려는 사람들에게 훌륭한 옵션을 제공했습니다. 오픈 소스 커뮤니티에는 지속적인 훈련/SFT(예: Alpaca, Vicuna, WizardLM, Platypus, StableBegula, Orca, OpenBuddy, Linly, Ziya 등) 및 처음부터 훈련(예: LLaMA를 기반으로 개발된 모델이 이미 많이 있습니다. Baichuan, QWen, InternLM, OpenLLaMA 등) 작업이 가능합니다. 이러한 작업은 대형 모델 기능에 대한 다양한 객관적인 평가 목록에서 좋은 성능을 발휘했을 뿐만 아니라 긴 텍스트 이해, 긴 텍스트 생성, 코드 작성 및 수학적 해결과 같은 실제 응용 시나리오에서도 탁월한 성능을 보여주었습니다. 이 밖에도 Whisper의 음성 채팅 로봇과 결합된 LLaMA, Stable Diffusion의 페인팅 소프트웨어와 결합된 LLaMA, 의료/법률 분야의 보조 상담 로봇 등 많은 흥미로운 제품이 업계에서 등장했습니다. HuggingFace 모델 코드에서 LLaMA를 얻습니다. 하지만 자신의 데이터로 LLaMA 모델을 훈련시키는 것은 개인 사용자나 중소 규모 조직에게는 저렴하고 간단한 작업이 아닙니다. 대형 모델의 양과 데이터의 규모로 인해 일반적인 컴퓨팅 리소스로는 효과적인 학습을 완료할 수 없으며 컴퓨팅 성능과 비용이 심각한 병목 현상이 되었습니다. 이와 관련하여 Megatron-LM 커뮤니티 사용자들은 매우 긴급한 요구를 갖고 있습니다.

Taotian Group과 Aicheng Technology는 대형 모델 애플리케이션에 대한 매우 광범위한 애플리케이션 시나리오를 보유하고 있으며 대형 모델의 효율적인 교육에 많은 투자를 해왔습니다. LLaMA의 출현은 Taotian Group 및 Aicheng Technology를 포함한 많은 회사에 데이터 처리, 모델 설계, 미세 조정 및 강화 학습 피드백 조정 측면에서 많은 영감을 주었으며 비즈니스 애플리케이션 시나리오에서 새로운 돌파구를 달성하는 데도 도움이 되었습니다. . 따라서 전체 LLaMA 오픈 소스 커뮤니티에 환원하고 중국의 사전 훈련된 대형 모델 오픈 소스 커뮤니티의 발전을 촉진하여 개발자가 보다 쉽게 ​​대형 언어 모델의 훈련 성능을 향상하고 훈련 비용을 절감할 수 있도록 Taotian 그룹과 Aicheng Technology는 내부 기술 최적화 및 오픈 소스를 결합하고 Megatron-LLaMA를 출시하며 모든 파트너와 함께 Megatron 및 LLaMA 생태계 구축을 기대합니다. 32카드 176% 훈련 가속화, 오픈 소스 대형 모델 훈련 프레임워크 Megatron-LLaMA 출시

Megatron-LLaMA는 표준 Megatron-LM 구현 LLaMA

세트를 제공하고, 커뮤니티 생태 도구와의 호환성을 용이하게 하기 위해 HuggingFace 형식으로 무료 전환을 위한

도구를 제공합니다. Megatron-LLaMA는 Megatron-LM의 역과정을 재설계하여 노드 수가 적고 큰 Gradient Aggregation(GA)을 켜야 하는 곳이나 노드 수가 많고 작은 GA를 사용해야 합니다. 우수한 훈련 성능을 발휘해야 합니다.

  • 32카드 트레이닝에서 HuggingFace에서 직접 얻은 코드 버전에 비해 Megatron-LLaMA는 176%의 가속을 달성할 수 있습니다 DeepSpeed ​​및 FlashAttention으로 최적화된 버전에서도 Megatron-LLaMA는 여전히 속도를 줄일 수 있습니다. 훈련 시간의 최소 19% 단축.
  • 대규모 훈련에서 Megatron-LLaMA는 32개 카드에 비해 거의 선형 확장성을 갖습니다. 예를 들어 LLaMA-13B의 훈련을 재현하기 위해 512 A100을 사용하면 Megatron-LLaMA의 역방향 메커니즘은 기본 Megatron-LM의 DistributedOptimizer에 비해 정확도 손실 없이 최소 2일을 절약할 수 있습니다.
  • Megatron-LLaMA는 네트워크 불안정성에 대한 높은 내성을 보여줍니다. 4x200Gbps 통신 대역폭을 갖춘 현재 비용 효율적인 8xA100-80GB 훈련 클러스터에서도(이 환경은 일반적으로 혼합 배포 환경이므로 네트워크는 대역폭의 절반만 사용할 수 있으며 네트워크 대역폭은 심각한 병목 현상이 발생하지만 임대 가격은 상대적으로 저렴합니다) 낮음) Megatron-LLaMA는 여전히 0.85의 선형 확장 성능을 달성할 수 있지만 Megatron-LM은 이 지표에서 0.7 미만의 성능만 달성할 수 있습니다.

Megatron-LM 기술은 고성능 LLaMA 교육 기회를 제공합니다

LLaMA는 현재 대규모 언어 모델 오픈 소스 커뮤니티에서 중요한 작업입니다. LLaMA는 BPE 문자 인코딩, RoPE 위치 인코딩, SwiGLU 활성화 함수, RMSNorm 정규화, Untied Embedding 등의 최적화 기술을 LLM의 구조에 도입하여 수많은 객관적, 주관적 평가에서 우수한 결과를 얻었습니다. LLaMA는 7B, 13B, 30B, 65B/70B 버전을 제공하며 이는 대규모 모델 요구 사항이 있는 다양한 시나리오에 적합하고 개발자에게도 선호됩니다. 다른 많은 오픈소스 대형 모델과 마찬가지로 공식에서는 코드의 추론 버전만 제공하기 때문에 최저 비용으로 효율적인 훈련을 수행하는 방법에 대한 표준 패러다임이 없습니다. Megatron-LM은 우아한 고성능 훈련 솔루션입니다. Megatron-LM은 텐서 병렬성(병렬 컴퓨팅을 위해 대규모 곱셈을 여러 카드에 분산하는 Tensor Parallel, TP), 파이프라인 병렬성(모델의 여러 레이어를 처리를 위해 여러 카드에 분산하는 파이프라인 병렬, PP) 및 시퀀스 병렬성(PP)을 제공합니다. Sequence Parallel), SP, 시퀀스의 다른 부분이 다른 카드로 처리되어 비디오 메모리 절약), DistributedOptimizer 최적화(DeepSpeed ​​​​Zero Stage-2와 유사, 모든 컴퓨팅 노드에 그라디언트 및 최적화 매개 변수 분할) 및 기타 기술 비디오 메모리 사용량을 크게 줄이고 GPU 활용도를 향상시킬 수 있습니다. Megatron-LM은 활발한 오픈 소스 커뮤니티를 운영하고 있으며, 새로운 최적화 기술과 기능 설계가 프레임워크에 계속 통합되고 있습니다.

그러나 Megatron-LM을 기반으로 개발하는 것은 간단하지 않으며 특히 고가의 멀티 카드 머신에서의 디버깅 및 기능 검증은 매우 비쌉니다. Megatron-LLaMA는 먼저 다양한 크기의 모델 버전을 지원하고 HuggingFace 형식을 직접 지원하는 Tokenizer를 포함하여 다양한 LLaMA 변형을 지원하도록 쉽게 조정할 수 있는 Megatron-LM 프레임워크를 기반으로 한 LLaMA 교육 코드 세트를 제공합니다. 따라서 Megatron-LLaMA는 과도한 적응 없이 기존 오프라인 훈련 링크에 쉽게 적용될 수 있습니다. LLaMA-7b 및 LLaMA-13b의 중소 규모 훈련/미세 조정 시나리오에서 Megatron-LLaMA는 54%가 넘는 업계 최고의 하드웨어 활용도(MFU)를 쉽게 달성할 수 있습니다

Megatron-LLaMA 역 프로세스 최적화

다시 작성해야 하는 내용은 다음과 같습니다. 그림: DeepSpeed ​​​​ZeRO Stage-232카드 176% 훈련 가속화, 오픈 소스 대형 모델 훈련 프레임워크 Megatron-LLaMA 출시

DeepSpeed ​​​​ZeRO는 Microsoft에서 출시한 분산 교육 프레임워크 세트입니다. 이는 이후의 많은 프레임워크에 매우 광범위하게 적용됩니다. DeepSpeed ​​​​ZeRO Stage-2 (이하 ZeRO-2)는 추가적인 계산 및 통신 작업 부하를 추가하지 않고 메모리 사용량을 절약하는 프레임워크 내 기술입니다. 위 그림에 표시된 것처럼 계산 요구 사항으로 인해 각 순위에는 모든 매개변수가 있어야 합니다. 그러나 옵티마이저 상태의 경우 각 순위는 일부만 담당하며 모든 순위가 동시에 완전히 반복되는 작업을 수행할 필요는 없습니다. 따라서 ZeRO-2는 옵티마이저 상태를 각 순위로 균등하게 나눌 것을 제안합니다(각 변수가 특정 순위에서 균등하게 분할되거나 완전히 유지되는지 확인할 필요는 없습니다). 각 순위는 훈련 과정 중에만 사용하면 됩니다. .해당 부품의 최적화 상태 및 모델 매개변수 업데이트를 담당합니다. 이 설정에서는 그라데이션을 이런 방식으로 분할할 수도 있습니다. 기본적으로 ZeRO-2는 Reduce 메서드를 사용하여 모든 Rank 사이의 기울기를 역으로 집계한 다음 각 Rank는 자신이 담당하는 매개변수의 일부만 유지하면 되므로 중복된 반복 계산을 제거할 뿐만 아니라 메모리도 줄어듭니다. 용법. .

Megatron-LM DistributedOptimizer

Native Megatron-LM은 DistributedOptimizer를 통해 ZeRO-2와 유사한 그래디언트 및 최적화 상태 분할을 구현하여 훈련 중 비디오 메모리 사용량을 줄입니다. 위 그림과 같이 DistributedOptimizer는 미리 설정된 Gradient로 집계된 Gradient를 모두 얻은 후 ReduceScatter 연산자를 사용하여 이전에 누적된 Gradient를 모두 다른 Rank로 분산시킵니다. 각 순위는 처리해야 하는 그래디언트의 일부만 얻은 다음 최적화 상태와 해당 매개변수를 업데이트합니다. 마지막으로 각 Rank는 AllGather를 통해 다른 노드로부터 업데이트된 매개변수를 획득하고, 최종적으로 모든 매개변수를 획득합니다. 실제 훈련 결과는 Megatron-LM의 기울기 및 매개변수 통신이 다른 계산과 연속적으로 수행되는 것을 보여줍니다. 대규모 사전 훈련 작업의 경우 전체 배치 데이터 크기가 변경되지 않도록 하기 위해 일반적으로 불가능합니다. 더 큰 GA를 엽니다. 따라서, 기계의 증가에 따라 통신의 비중도 증가하게 되는데, 이때 직렬 통신의 특성상 확장성이 매우 약하게 됩니다. 커뮤니티 내에서도 이에 대한 필요성이 시급합니다

32카드 176% 훈련 가속화, 오픈 소스 대형 모델 훈련 프레임워크 Megatron-LLaMA 출시

Megatron-LLaMA OverlappedDistributedOptimizer

이 문제를 해결하기 위해 Megatron-LLaMA는 기본 Megatron-LM의 DistributedOptimizer를 더욱 개선했습니다. 그라디언트 통신에 효율적입니다. 하위 기능은 계산과 병렬화될 수 있습니다. 특히 Megatron-LLaMA는 ZeRO의 구현에 비해 확장성이 더 뛰어난 집단 통신 방식을 사용하여 병렬성을 전제로 한 최적화 파티셔닝 전략의 영리한 최적화를 통해 확장성을 향상시킵니다. OverlappedDistributedOptimizer의 주요 설계는 다음 사항을 보장합니다. a) 단일 세트 통신 사업자의 데이터 볼륨은 통신 대역폭을 완전히 활용할 수 있을 만큼 충분히 큽니다. b) 새로운 분할 방법에 필요한 통신 데이터의 양은 최소와 같아야 합니다. 데이터 병렬성에 필요한 통신 데이터 볼륨 c) 전체 매개변수 또는 기울기 및 분할된 매개변수 또는 기울기의 변환 프로세스 중에 너무 많은 비디오 메모리 복사본을 도입할 수 없습니다.

32카드 176% 훈련 가속화, 오픈 소스 대형 모델 훈련 프레임워크 Megatron-LLaMA 출시

구체적으로 Megatron-LLaMA는 DistributedOptimizer를 개선하여 학습의 역과정에서 새로운 분할 방법을 최적화하는 데 사용되는 OverlappedDistributedOptimizer를 제안했습니다. 그림과 같이 OverlappedDistributedOptimizer를 초기화할 때 모든 매개변수는 해당 매개변수가 속한 Bucket에 미리 할당됩니다. 각 버킷의 매개변수는 완전합니다. 하나의 매개변수는 하나의 버킷에만 속합니다. 논리적으로 각 Bucket은 지속적으로 P 부분(P는 데이터 병렬 그룹 수)으로 나누어지고, 데이터 병렬 그룹의 각 순위는 그 중 하나를 담당합니다.

Bucket은 로컬 그래디언트 버킷 큐에 배치됩니다. 통신 질서를 보장합니다. 훈련 계산이 수행되는 동안 데이터 병렬 그룹은 집단 통신을 통해 버킷 단위로 필요한 기울기를 교환합니다. Megatron-LLaMA에서 Bucket 구현은 가능한 한 주소 인덱싱을 사용하며 비디오 메모리 낭비를 피하기 위해 값을 변경해야 하는 경우에만 새 공간이 할당됩니다

수많은 엔지니어링 최적화를 결합하여 위의 설계로 대규모 작업이 가능합니다. 대규모 훈련 중에 Megatron-LLaMA는 하드웨어를 완전히 활용하고 기본 Megatron-LM보다 더 나은 가속을 달성할 수 있습니다. 일반적으로 사용되는 네트워크 환경에서 훈련 규모를 A100 카드 32장에서 A100 카드 512장으로 확장하면 Megatron-LLaMA는 여전히 0.85의 확장 비율을 달성할 수 있습니다

Megatron-LLaMA의 향후 계획

Megatron-LLaMA는 A입니다. Taotian Group과 Aicheng Technology가 공동으로 오픈 소스로 제공하고 후속 유지 관리 지원을 제공하는 교육 프레임워크가 내부적으로 널리 사용되었습니다. 점점 더 많은 개발자가 LLaMA의 오픈 소스 커뮤니티에 참여하고 서로 배울 수 있는 경험을 제공함에 따라 앞으로 교육 프레임워크 수준에서 더 많은 도전과 기회가 있을 것이라고 믿습니다. Megatron-LLaMA는 커뮤니티의 발전에 세심한 주의를 기울이고 개발자와 협력하여 다음 방향으로 개발을 촉진할 것입니다.

  • 적응형 최적 구성 선택
  • 더 많은 모델 구조 또는 로컬 설계 변경 지원
  • 더 다양한 유형의 하드웨어 환경에서 최고의 성능 교육 솔루션

프로젝트 주소: https://github.com/alibaba/Megatron-LLaMA

위 내용은 32카드 176% 훈련 가속화, 오픈 소스 대형 모델 훈련 프레임워크 Megatron-LLaMA 출시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제