위키득계정 ↗
기술

Megatron-LM

Megatron-LM기술
영문
Megatron-LM
핵심 병렬화
층 내부 모델 병렬
주요 대상
대규모 트랜스포머
관련 방식
파이프라인 및 데이터 병렬
Megatron-LM은 트랜스포머 층 내부의 큰 계산을 여러 장치에 나누어 대규모 언어 모형을 학습하는 모델 병렬 접근이다. 텐서 분할과 필요한 통신 연산을 결합한다.

층 안의 계산 나누기

모형의 앞 층과 뒤 층을 다른 장치에 놓는 방식과 달리 한 층의 큰 행렬 계산을 분할할 수 있다. 각 장치가 계산한 부분을 필요한 지점에서 결합한다. 데이터 병렬이나 파이프라인 병렬과 다른 역할을 하므로 함께 구성할 수도 있다.

출력 열 분할의 독립 예제

입력 X가 2×4이고 가중치 W가 4×6이면 출력은 2×6이다. W의 열을 4×3 두 묶음으로 나누면 각 장치의 2×3 출력을 열 방향으로 이어 원래 선형 출력을 만들 수 있다. 바이어스와 비선형 및 역전파 통신은 생략한 예다.

분할 위치의 중요성

행렬의 열을 나누는 것과 입력 차원에 대응하는 행을 나누는 것은 결과를 합치는 방식이 다르다. 비선형 연산을 어디에서 수행하는지에 따라서도 통신 위치가 달라진다. 행렬 크기를 나눴다는 이유만으로 임의의 계산 그래프가 그대로 병렬화되지는 않는다.

성능과 범위

통신이 잦아지면 장치 사이의 연결 속도가 병목이 될 수 있다. 모형 크기와 배치, 병렬 차수를 함께 정해야 한다. 초기 제안의 층 내부 병렬 원리와 이후 소프트웨어의 기능 범위는 구분하고 실제 최대 메모리 및 학습 처리량을 측정한다.

관련 문서

GPipe / PipeDream / ZeRO 학습 메모리 최적화 / 트랜스포머 / 언어 모형 / 행렬