한 권으로 끝내는 실전 LLM 파인튜닝 - 강다솔 지음/위키북스 |
03. 전체 파인튜닝
병렬화 기법 이해
병렬화 기술은 '여러 컴퓨팅 자원을 동시에 활용해 대규모 작업을 효율적으로 처리'하는 방법이라는 매우 일반적인 이야기가 적혀있다. 인공지능 분야에서는 컴퓨팅 자원 중에서 특히 (고가의) GPU를 효율적으로 사용해야 하는데 그 방식으로 '데이터 병렬화(DP), 모델 병렬화(MP), 파이프라인 병렬화(PP), 텐서 병렬화(TP) 등이 있다.
데이터 병렬 처리 (DP: Data Parallelism)
대규모 데이터셋을 효과적으로 나누는 병렬 기법이다. 데이터셋을 여러 미니배치로 나누고 각자의 데이터 배치에 대해 독립적으로 순전파와 역전파를 수행한다. 계산이 끝나면 모든 GPU는 동일한 상태를 유지하게 된다. 메모리 제약 없이 대규모 데이터셋을 효과적으로 다룰 수 있다는 장점이 있는 반면, GPU 간 그레디언트 수집과 파라미터 동기화 과정에서 네트워크 통신 비용(오버헤드)이 발생할 수 있다.
모델 병렬화 (MP: Model Parallelism)
신경망 모델을 여러 GPU에 나누어 처리하는 방식이다. 모델을 수직으로 분할해 각 부분을 서로 다른 GPU에서 실행하는 간단한 방식이다. 이 방식의 가장 큰 문제점은 특정 시점에 대부분의 GPU가 놀고 있을 수 있다는 점이다.
파이프라인 병렬화 (PP: Pipeline Parallelism)
모델을 여러 단계로 분할해 각 단계를 다른 계산 장치에서 동시에 실행하는 기법이다. MP와 거의 동일하지만 여러 GPU가 동시에 계산 프로세스에 참여하게 할 수 있다. 위 그림의 (c)는 개선된 시간 분할을 보여주는데 여러 작은 배치의 데이터를 각 기기가 동시에 처리하게 된다.
텐서 병렬 처리 (TP: Tensor Parallelism)
모델의 주요 계산 부하를 분산하는 방식으로 각 GPU가 전체 텐서의 일부만 처리한다. 텐서 병렬 처리 방식의 가장 큰 장점은 메모리 사용의 효율성이 높아진다는 점이다. 또, 전체적인 처리 시간 단축으로 행렬 연산과 같은 복잡한 계산에 유리하F다. 책에서는 이 방식의 단점으로 통신 오버헤드를 꼽는데 이 부분은 다른 방식들도 마찬가지가 아닌가 싶다.
FSDP (Fully Sharded Data Parallel)
각 GPU가 모델의 일부만을 메모리에 보유하도록 해 전체 모델의 메모리 요구 사항을 줄이는 것을 목표로 하는 고급 데이터 병렬 처리 기법이다. 주요 작동 원리 중 하나로 '모델 샤딩'이 있는데 모델의 파라미터를 여러 샤드로 나누고, 각 샤드를 별도의 GPU에 할당해 독립적으로 관리하는 기법이다. FSDP가 극복해야 할 문제로는 모델이 여러 GPU에 분산돼 디버깅 및 오류 추적이 복잡하다는 점을 들 수 있다. 끝.
'개발 > AI' 카테고리의 다른 글
[Day8] LLM 스터디 1기 - 단일 GPU Gemma 파인튜닝 2 (1) | 2025.01.18 |
---|---|
[Day7] LLM 스터디 1기 - 단일 GPU Gemma 파인튜닝 (1) | 2025.01.17 |
[Day5] LLM 스터디 1기 - GPT, Gemma, Llama3 모델 특징 비교 (1) | 2025.01.15 |
[Day4] LLM 스터디 1기 - 파인튜닝 개념 (1) | 2025.01.11 |
[Day3] LLM 스터디 1기 - 멀티헤드 어텐션 & 피드포워드 (1) | 2025.01.10 |