Core Concepts
LLMem은 다중 GPU에서 분산 미세 조정 방법을 적용할 때의 GPU 메모리 사용량을 정확하게 추정할 수 있다.
Abstract
LLMem은 대규모 언어 모델(LLM) 미세 조정 시 GPU 메모리 사용량을 효율적으로 추정하는 솔루션이다.
초기화 단계에서는 CUDA 컨텍스트와 모델 매개변수를 위한 메모리를 할당한다. 미세 조정 단계에서는 트랜스포머 부분과 언어 모델링 헤드 부분의 메모리 사용량을 구분하여 추정한다. 트랜스포머 부분은 청크 기반 메모리 관리를 적용하여 매개변수와 그래디언트를 공유하고, 언어 모델링 헤드 부분은 실제 크기에 따라 메모리를 사용한다.
다중 GPU 환경에서는 고급 데이터 병렬 처리(ADP), 텐서 병렬 처리(TP), 그리고 DP+TP 조합 등 다양한 분산 미세 조정 방법을 고려한다. ADP는 매개변수, 그래디언트, 최적화 상태를 GPU 간에 균등하게 분산하고, TP는 각 연산자의 매개변수 텐서를 행 또는 열 단위로 분할한다. 이러한 요소들을 반영하여 LLMem은 정확한 GPU 메모리 사용량을 추정할 수 있다.
실험 결과, LLMem은 단일 GPU에서 최대 1.6%의 오차율로 피크 GPU 메모리 사용량을 추정할 수 있었다. 또한 10억 개 이상의 매개변수를 가진 LLM에 분산 미세 조정 방법을 적용할 때 평균 3.0%의 오차율을 보였다.
Stats
트랜스포머 부분의 매개변수와 그래디언트는 청크 기반 메모리 관리를 통해 GPU 메모리 공간을 공유한다.
언어 모델링 헤드 부분은 실제 크기에 따라 GPU 메모리를 사용한다.
고급 데이터 병렬 처리(ADP)는 매개변수, 그래디언트, 최적화 상태를 GPU 간에 균등하게 분산한다.
텐서 병렬 처리(TP)는 각 연산자의 매개변수 텐서를 행 또는 열 단위로 분할한다.
Quotes
"LLMem은 다중 GPU에서 분산 미세 조정 방법을 적용할 때의 GPU 메모리 사용량을 정확하게 추정할 수 있다."
"LLMem은 단일 GPU에서 최대 1.6%의 오차율로 피크 GPU 메모리 사용량을 추정할 수 있었다."
"LLMem은 10억 개 이상의 매개변수를 가진 LLM에 분산 미세 조정 방법을 적용할 때 평균 3.0%의 오차율을 보였다."