최근 AI 분야의 다양한 응용 시나리오에서 '대형 모델'이 빛을 발했습니다. 그 중 Transformer를 기반으로 한 대규모 사전 학습 모델은 가장 일반적인 대형 모델 중 하나이며 현재의 모델이 되었습니다. 기초 모델.) 핵심 아키텍처. 예를 들어 NLP 분야의 BERT, GPT 시리즈, CV 분야의 ViT, Swin Transformer 시리즈를 비롯해 최근 큰 인기를 얻고 있는 멀티 전문가 하이브리드 모델 MoE, 멀티 모달 모델 CLIP 등 모두 Transformer를 사용하고 있습니다. 핵심 인프라. 그에 따라 이러한 밀도가 높은 대형 모델은 종종 수십억, 수백억, 심지어는 수조에 달하는 매개변수를 갖습니다. 이러한 모델은 높은 컴퓨팅, 스토리지 및 통신 오버헤드에 직면하고 있으며 AI 인프라에도 큰 과제를 안겨줍니다.
대형 모델의 훈련을 지원하기 위해 사람들은 다양한 데이터 병렬 처리 방법을 구현하는 많은 도구(예: NVIDIA가 제안한 Megatron, Microsoft가 제안한 DeepSpeed, Meta가 제안한 FairSeq 등)를 개발했습니다. , 텐서 모델 병렬성, 파이프라인 병렬성, 샤딩된 데이터 병렬성 등 이러한 시스템은 위의 병렬 방법을 효과적으로 캡슐화하고 해당 구현 세부 사항을 외부로부터 보호하므로 사용자가 구성을 추가하여 하이브리드 병렬 전략을 구현할 수 있습니다.
위의 아이디어를 바탕으로 텐서나 연산자 수준에서 다양한 병렬 메서드를 어떻게 표현하는지에 초점을 맞춘 작업이 많이 있었습니다. 이러한 유형의 작업의 "자동화"는 주로 변환 프로세스에 반영됩니다. 실행 계층에 대한 병렬 API. 그러나 병렬 API나 중간 표현식 설계에만 국한된다면 이러한 엔지니어링 캡슐화로는 분산 학습의 문제를 근본적으로 해결할 수 없습니다. 가장 직관적인 결과는 사용자가 여전히 분산 배포 문제에서 해방될 수 없다는 것입니다. 실제로 대형 모델의 분산 배포는 매우 복잡한 문제입니다. 현재 분산 교육 시스템의 대부분은 배포를 위해 사용자의 수동적인 반복 시도와 시스템 전문가의 경험에 의존하므로 리소스 활용 효율성이 낮다는 심각한 문제가 있습니다. 진정한 "자동 병렬화"와는 상당한 격차가 있습니다.
이를 바탕으로 Beidahetu 팀은 대형 모델의 효율적인 자동 병렬화를 달성하기 위해 분산 학습 아티팩트인 Galvatron을 제안했습니다. 해당 연구 논문은 VLDB 2023 최고의 국제 컨퍼런스에 선정되었습니다. 주소 : https://arxiv.org/abs/2211.13878
병렬 방법 비교
두 번째로, 모델 측면에서 최근 다양한 모델 아키텍처가 끝없는 흐름으로 등장했으며, 이는 종종 서로 다른 모델 구성(예: 입력 시퀀스 길이, 모델 레이어 수, 모델 은닉 레이어 너비 등이 다르기 때문에 계산 부하가 달라집니다. 또한 하드웨어 측면에서 사용자는 매우 차별화된 클러스터 환경에 직면하는 경우가 많으며 메모리 용량, 통신 대역폭, 컴퓨팅 기능 등이 다를 수 있습니다. 일반적으로 위에서 언급한 다양성으로 인해 병렬 기술은 항상 최고의 훈련 효율성을 달성할 수 없으며 "자동 병렬화"는 분산 훈련의 핵심 과제가 되었습니다. (2) 복잡성: 위의 분석은 실제로 동일한 연산자에 대해서도 여러 가지 기본 병렬 방법을 동시에 적용할 수 있습니다. 이러한 기본 병렬의 조합으로 구성됩니다. 방법 방법을 사용하면 문제가 매우 복잡해집니다. 더 중요한 것은 대규모 모델의 계산 그래프가 매우 큰 구조를 갖는 경우가 많으므로 더 큰 클러스터가 필요하다는 것입니다. 각 연산자를 탐색하면(클러스터에서 적절한 컴퓨팅 리소스 선택 및 해당 하이브리드 병렬 방법 설계 포함) 문제가 발생합니다. 결합 공간 폭발로 인해 전체 모델에 대한 최적의 분산 실행 계획을 찾는 것이 어려워집니다. (3) 실용성 : 게다가 실용성 또한 매우 중요한 문제입니다. 한편, 자동 병렬 검색 과정에서 다양한 분산 실행 솔루션에 대해서는 상대적으로 정확한 메모리, 통신 및 컴퓨팅 오버헤드가 제공되어야 합니다. 그렇지 않으면 결과가 실제 실행과 너무 많이 벗어나서 차선책이 되거나 결과가 나올 수 있습니다. 전혀 사용할 수 없습니다. 이러한 이유로 다양한 모델 구조와 하드웨어 조건을 모델링하려면 매우 정확한 비용 모델이 필요합니다. 반면, 시스템의 자동 병렬 기능으로 인해 발생하는 추가 시간 오버헤드는 허용 가능한 범위 내에 있어야 하며 검색 비용이 너무 높은 것도 허용할 수 없습니다. 시스템 기능: 위의 문제를 해결하기 위해 연구자들은 하이브리드 병렬 자동을 탐색하는 일련의 작업을 제안했습니다. 검색: 데이터 병렬성과 모델 병렬성을 모두 고려한 검색 공간을 주로 논의하는 작업이고, 대표적인 작업으로는 FlexFlow와 Tofu가 있으며, 다른 하나는 파이프라인 병렬 시나리오를 생성하여 이를 데이터 병렬성과 결합한 작업입니다. 대플. 이를 기반으로 자동 병렬 탐색의 범위를 더욱 확장하는 Unity 및 Alpa와 같은 일부 파생 작업도 있습니다. Beidahetu 팀이 제안한 시스템 "Galvatron"도 자동 병렬 검색 연구 분야에 속하지만 기존 작업과 비교하여 이 시스템은 주로 다음 세 가지 장점을 가지고 있습니다. (1) 다양성 측면에서 병렬 기존 작업이 지원할 수 있는 차원은 여전히 상대적으로 제한적이며 Galvatron은 더 많은 병렬 차원을 지원할 수 있을 뿐만 아니라 더욱 차별화된 Transformer 모델 구조를 정확하게 모델링할 수 있으며 다양한 클러스터 하드웨어 조건에서 검증된 적응형 튜닝 기능을 제공합니다. 대형 모델 분산 학습 시스템 비교도 (2) 복잡성 측면에서 다양성의 장점으로 인해 Galvatron은 전례 없는 거대한 검색 공간에 직면해 있습니다. , 연구자들은 현재 대규모 분산 훈련 프로세스에서 실험적으로 또는 이론적으로 검증된 몇 가지 중요한 관찰을 검색 공간에 대한 가지치기 기준으로 탐색하여 효율적인 분산 실행 계획 최적화를 달성했습니다. (3) 실용성 측면에서 본 연구는 이론적 모델링과 실험적 측정의 장점을 결합하여 메모리, 통신 및 컴퓨팅 오버헤드의 정확한 추정을 달성하고 컴퓨팅 중첩으로 인해 발생하는 GPU 오버헤드까지 고려합니다. 실행 효율성 저하 문제를 제거하여 충분히 정확한 자동 병렬 최적화 결과를 얻을 수 있습니다. 또한 Galvatron의 최하위 계층은 Huggingface와 같은 일반적인 주류 Transformer 모델 구현과 호환되는 PyTorch를 실행 엔진으로 선택하므로 동시에 PyTorch 사용자에게 추가 부담을 주지 않습니다. 추가 시스템 설치나 디버깅 비용을 지불할 필요가 없으며, 저렴한 비용으로 사용할 때 코드 몇 줄만 추가하면 자동 병렬화의 전체 과정을 쉽게 완료할 수 있습니다. Galvatron 워크플로우 및 사용자 인터페이스 디스플레이 1. 의사결정 트리 기반 검색 공간 분해 Galvatron은 복잡하고 대규모 병렬 정책 공간 내에서 자동으로 효율적으로 검색하고 주어진 Transformer 모델 및 분산 환경에 대한 최적의 병렬 실행 계획을 생성하도록 설계되었습니다. 검색 공간 측면에서 갈바트론은 데이터 병렬성(DP), 샤딩 데이터 병렬성(SDP), 텐서 병렬성(TP) 등 4가지 주류 병렬 방식을 고려한 업계 최초의 자동 병렬 훈련 시스템이다. 파이프라인 병렬성(PP). 하이브리드 병렬 전략에는 위의 네 가지 병렬 알고리즘의 조합이 포함되므로 이 조합으로 인한 검색 공간은 다중 GPU 시나리오에서 매우 큽니다. 예를 들어, 듀얼 머신 4카드 시나리오에서 실행 가능한 전략 중 하나는 머신 내에서 양방향 TP를 사용하고 머신 간에는 양방향 PP를 사용하는 것입니다. . 양방향 DP를 사용합니다. 노드의 GPU 수가 8개 카드로 확장되면 모델의 각 레이어에 대해 수백 가지의 후보 전략이 있습니다. 모델 레이어 수가 증가하면 검색 공간의 크기가 기하급수적으로 늘어나 효과적인 탐색이 어려워집니다. 이렇게 큰 검색 공간을 효율적으로 검색하기 위해 연구에서는 먼저 다음과 같은 관찰을 가이드로 제안합니다. 위의 중요한 관찰을 바탕으로 본 연구에서는 결정 트리 기반 검색 공간 구축 방법을 제안합니다. (1) Takeway#1 및 Takeway#2를 기반으로 한 Transformer 모델이 주어지면 Galvatron은 먼저 PP는 모델을 여러 단계로 나누고 장비를 여러 장비 그룹으로 균등하고 연속적으로 나눕니다. 예를 들어, 8카드 시나리오에서 모델은 각각 8/4/2/1의 장치 그룹 크기에 해당하는 1/2/4/8방향 PP로 나뉩니다. (2) 각 PP 분할은 결정 트리와 하위 검색 공간에 해당합니다. 결정 리프 노드의 총 개수는 장치 그룹의 크기이고 결정 트리의 높이는 사용 가능한 병렬 개수입니다. 즉, 의사결정 트리의 각 계층에 병렬 전략을 적용할 수 있습니다. (3) 의사결정 트리의 서로 다른 수준 간에 병렬 전략을 재사용할 수 없습니다. (4) 리프가 아닌 노드의 차수는 기본적으로 2{2,4,8,…}의 지수 거듭제곱에서 선택됩니다. 위의 결정 트리 구성 규칙을 기반으로 Galvatron이 만든 결정 트리는 위 병렬성의 모든 조합을 나타낼 수 있습니다. Takeway#1 및 Takeway#2는 Galvatron이 비효율적인 병렬 조합을 피하고 검색 공간을 줄이는 데 도움이 됩니다. 8카드 GPU에서 단일 레이어 모델을 훈련하는 시나리오의 경우 위의 규칙은 34개의 후보 하이브리드 병렬 전략을 생성합니다. 또한 Takeway#3을 사용하여 DP와 SDP가 동시에 의사결정 트리에 나타나는 상황을 정리한 후 8카드 후보 전략의 수가 22개로 줄어듭니다. 다음 그림은 8카드 GPU 시나리오에서 다양한 PP 병렬 처리(8/4/2/1)에 따른 의사결정 트리의 개략도를 보여줍니다. 8카드 GPU 시나리오의 다양한 PP 병렬성(8/4/2/1)에 따른 의사결정 트리 도식 2 동적 프로그래밍 기반 병렬 최적화 알고리즘 기존 시스템 Megatron이나 DeepSpeed에서는 일반적으로 사용자가 전역 병렬 체계와 해당 병렬성 정도를 지정해야 하므로 분산 실행 계획을 표현하는 능력이 심각하게 제한됩니다. Galvatron의 최적화 목표는 사용자에게 모델 정의 및 분산 환경이 제공될 때 사용자가 병렬 구성을 지정하지 않고도 최적의 분산 실행 계획을 자동으로 생성하는 것입니다. 특히 메모리 용량이 E인 L 계층 모델 M과 N GPU 장치가 있는 경우 Galvatron의 최적화 목표는 가장 높은 시스템 처리량 T_pt를 검색하고 해당 병렬 솔루션을 반환하는 것입니다. 여기서 병렬 솔루션은 계층(또는 연산자)을 참조합니다. )를 세분화된 하이브리드 병렬 전략의 기본 단위로 사용합니다. 알고리즘 1: Galvatron 최적화 프로세스 최적화 프로세스: Galvatron의 최적화 프로세스는 알고리즘 1에 나와 있습니다. Galvatron의 가장 바깥쪽 루프는 장치 메모리를 초과할 때까지 검색 배치 크기를 점차적으로 늘립니다. 주어진 각 후보 배치 크기 B에서 Galvatron은 먼저 Takeaway#1에 따라 모델 PP를 분할하고 다양한 수준의 병렬성 P(라인 4)를 검색합니다. P를 선택한 후 -way PP, 모델은 P 단계(라인 6)로 나누어지고 모든 해당 장비는 P 그룹으로 나뉘며, 각 그룹은 N/P 장비를 포함합니다. 그런 다음 Galvatron은 DP의 모든 조합을 나타낼 수 있는 해당 결정 트리를 구축합니다. , SDP 및 TP를 중복이나 생략 없이 획득하여 각 모델 단계 M_i에 대해 장치 메모리 제한 E 하에서 Galvatron은 동적 프로그래밍 검색을 사용하여 각 계층의 최적 하이브리드 병렬 전략을 획득하고 최소 시간을 반환합니다. 비용(라인 9), 마지막으로 Galvatron은 가능한 모든 PP 병렬성과 배치 크기 중에서 처리량이 가장 높은 전략을 선택하고 이를 반환합니다(라인 15). 동적 프로그래밍 검색: 다음은 Galvatron 병렬 최적화 작업 흐름의 동적 프로그래밍 검색 알고리즘을 소개합니다. L 레이어를 포함하는 특정 모델 단계의 경우 비용 함수 C(L,E)는 장치 메모리 제한 E 하에서 L 레이어 모델의 총 실행 시간을 나타내는 데 사용되며 전략을 사용하여 L 레이어의 실행 시간을 나타냅니다. S_j, 여기서 전략 S_j는 병렬 전략 후보 집합 S의 전략입니다. 초기값 을 설정하는 Galvatron의 동적 프로그래밍 검색은 다음 상태 전이 방정식(공식 1)을 따릅니다. 여기서 은 S_j 전략을 사용하는 레이어 L의 메모리입니다. 오버헤드 는 S_j 전략을 사용하는 L번째 레이어와 S_i 전략을 사용하는 이전 레이어로 인해 발생하는 변환 오버헤드입니다. 상태 전송 프로세스 중에 메모리 오버헤드가 장치 메모리 제한 장치 메모리 제한 E를 초과하면 오버헤드 함수 C가 무한대를 반환합니다. 복잡도 분석: Galvatron에서 사용하는 동적 프로그래밍 검색(공식 1)의 계산 복잡도는 O(LE|S|)입니다. 각 계층의 검색 공간 S의 크기는 전체 검색 복잡도에 매우 중요하다는 것을 알 수 있습니다. Galvatron이 제안한 결정 트리 기반 검색 공간 분해는 검색 공간을 크게 줄이고 합리적인 범위 내에서 검색 오버헤드를 제어할 수 있습니다. 범위. 3. 하이브리드 모델링 기반 실행 비용 추정 방법 Galvatron은 정책 비용 추정 모듈을 사용하여 하이브리드 병렬 전략의 컴퓨팅, 통신 및 메모리 비용을 추정합니다. 기존 비용 추정 방법에는 주로 측정(프로파일링)과 시뮬레이션(시뮬레이션)이 포함됩니다. Galvatron은 두 가지의 장점을 활용하여 비용 효율적이고 효율적이며 정확한 비용 추정 방법을 설계합니다. 특히, 메모리 오버헤드의 경우 Galvatron은 텐서의 모양과 데이터 유형을 사용하여 추정을 완료합니다. Galvatron은 단일 장치에서 프로파일링을 통해 샘플별 계산 시간을 측정하고 배치 크기와 피팅 기능을 결합합니다. 전체 계산 시간을 추정합니다. 통신 시간에 대해 Galvatron은 통신량을 장치 통신 대역폭으로 나누어 예상 통신 시간을 얻습니다. 여기서 통신량은 이론적으로 계산되고 통신 대역폭은 프로파일링을 통해 측정됩니다. 위의 추정 결과를 바탕으로 Galvatron은 시뮬레이션 실행 과정을 통해 주어진 전략을 사용하여 주어진 레이어의 비용 c(l,s)를 계산합니다. Galvatron은 기존 분산 훈련 시스템의 비용 모델과 달리 컴퓨팅과 통신의 중첩이 GPU 성능 저하에 미치는 영향을 모델링에서 처음으로 고려합니다. 본 연구에서는 이전 연구에서 무시되었던 오버랩으로 인한 GPU 성능 저하가 시스템의 실행 효율성에 큰 영향을 미칠 수 있음을 실험적으로 발견했습니다. 결과적으로 Galvatron의 비용 추정은 더 정확하고 병렬 최적화가 더 좋습니다. 실험 설정: 실험에서 연구원들은 단일 병렬 전략과 전문가가 설정한 DeepSpeed 3D 병렬성을 사용하여 Galvatron을 4가지 기본 시스템(DP, SDP, TP, PP)과 비교했습니다. Galvatron의 약화 버전은 제한된 병렬 전략 조합 공간(예: TP+DP, PP+DP)에서 자동 병렬 검색을 실행하기 위한 보조 기준선으로 설정되었습니다. 본 연구에서는 NLP Transformer 모델인 BERT와 T5, CV Transformer 모델인 ViT와 Swin Transformer를 실험 대상으로 선정하였다. 8 GPU 20G 비디오 메모리 Galvatron과 기본 시스템 간의 처리량 비교
Galvatron 검색을 통해 얻은 최적의 병렬 전략 중 일부에 대한 개략도 해석성 실험: 이 연구에서는 Galvatron 검색을 통해 얻은 최적의 병렬 전략 중 일부를 디스플레이용으로 선택했습니다. 8GB(사례 A)의 경우 BERT 모델의 경우 Galvatron은 PP-TP-DP와 PP-TP-SDP 두 가지 하이브리드 병렬 전략을 선택했습니다. 사용 가능한 비디오 메모리가 12GB로 증가하자 Galvatron은 PP를 포기하고 더 많은 것을 사용하기로 결정했습니다. 비디오 메모리 공간을 절약하기 위해 다중 DP 및 SDP가 도입되었습니다. Swin Transformer에서는 상황이 약간 다릅니다. 모델의 서로 다른 계층은 메모리가 상대적으로 부족한 경우(사례 C) 얕은 SDP의 병렬성이 더 높으며 각 계층의 활성화는 더 작아집니다. 매개변수가 더 많아지므로 TP가 점차 SDP를 대체합니다. 비디오 메모리가 증가하면(사례 D) PP가 다시 활성화되어 비효율적인 SDP의 일부를 대체할 뿐만 아니라 얕은 계층에서는 DP를 더 확실하게 사용하는 경향이 있습니다. Hetu 개발팀은 북경대학교 데이터 및 지능 연구실(이하 연구실) 출신입니다. 이 연구실은 북경대학교 컴퓨터공학부의 Cui Cui가 이끌고 있습니다. 빈 교수가 이끄는 그는 수년 동안 인공지능과 빅데이터 분야의 첨단 연구를 수행해 왔으며, 이론 및 기술 혁신과 시스템 연구 개발 분야에서 많은 성과를 거두었습니다. 최고의 국제 학술회의 및 저널에 학술 논문을 게재합니다. Hetu 시스템은 초대형 모델을 위한 분산 딥러닝 시스템으로, 기존의 기존 분산 딥러닝 프레임워크와 비교하여 시스템 기능, 시스템 복잡성 및 시스템 사용 편의성 측면에서 많은 혁신적인 기여를 했습니다. 병렬 전략, 일관성 프로토콜 및 통신 아키텍처, GPU 운영자 최적화 등 Hetu 팀은 현재 다양한 분산 기계 학습 또는 딥 러닝 시나리오에서 학문적 혁신을 수행해 왔으며 관련 결과는 SIGMOD, VLDB, ICML, KDD 등과 같은 최고의 국제 회의에 포함되었습니다. 그중 희소 대형 모델 분산 교육 시스템 HET가 VLDB 2022 Jia Ke Scalable Data Science Paper Award를 수상했습니다. 이번에 VLDB 2023에서 승인된 논문인 Galvatron은 Hetu 팀이 밀도가 높은 대규모 모델 분산 교육 시나리오에서 달성한 또 다른 혁신이며 Hetu 시스템에 통합되었으며 오픈 소스입니다. 현재 Hetu 팀은 Tencent, Alibaba, Kuaishou 및 ByteDance와 같은 많은 유명 기업과 과학 연구 협력 및 애플리케이션 구현을 수행했습니다. 분산 훈련 아티팩트 Galvatron은 한 번의 클릭으로 대규모 모델의 효율적인 자동 병렬화를 실현합니다.
주요 기술
실험 결과
북경대학교 Hetu 팀 소개
위 내용은 Beidahetu는 한 번의 클릭으로 대규모 모델의 효율적이고 자동 병렬화를 달성하기 위해 분산 교육 아티팩트인 Galvatron을 출시했습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!