본문으로 건너뛰기

[llm-compressor] AWQ DDP - 분산 데이터 병렬 AWQ 양자화

PR 링크: vllm-project/llm-compressor#2457 상태: Merged | 변경: +273/-31

들어가며

AWQ(Activation-aware Weight Quantization)는 활성화 분포를 고려하여 중요한 채널을 보호하는 양자화 기법이다. 캘리브레이션 과정에서 많은 데이터를 처리해야 하는데, 이 PR은 DDP를 적용하여 멀티 GPU에서 캘리브레이션을 병렬화한다.

핵심 코드 분석

DDP 기반 AWQ 캘리브레이션의 동작:

기존 (단일 GPU):
GPU 0: [배치 1] -> [배치 2] -> ... -> [배치 N] -> 통계 수집

DDP (멀티 GPU):
GPU 0: [배치 1, 3, 5, ...] -> 로컬 통계
GPU 1: [배치 2, 4, 6, ...] -> 로컬 통계
-> All-reduce로 통계 합산

각 GPU가 캘리브레이션 데이터의 일부를 처리하고, 수집된 활성화 통계를 all-reduce로 합산한다. 이를 통해 GPU 수에 비례하는 속도 향상을 달성한다.

왜 이게 좋은가

  1. 선형 스케일링: GPU 2대면 2배, 4대면 4배에 가까운 캘리브레이션 속도
  2. 대규모 캘리브레이션: 더 많은 캘리브레이션 데이터를 같은 시간에 처리하여 품질 향상
  3. 기존 인프라 활용: PyTorch DDP를 활용하여 안정적인 구현
  4. 투명한 통합: 기존 AWQ 설정에 DDP 플래그만 추가하면 동작

정리

AWQ의 캘리브레이션 병렬화로 대규모 모델 양자화의 시간을 단축하는 실용적인 PR이다. 특히 대량의 캘리브레이션 데이터를 사용할수록 DDP의 효과가 커진다.

참고 자료


이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 코드 분석 내용은 실제 PR diff를 기반으로 합니다.

댓글

관련 포스트

PR Analysis 의 다른글