[llm-compressor] GPTQ Block Quantization 지원
PR 링크: vllm-project/llm-compressor#2533 상태: Merged | 변경: +47/-0
들어가며
GPTQ는 LLM 양자화의 대표적인 기법으로, Hessian 기반의 최적 양자화를 수행한다. 이 PR은 GPTQ에 block quantization을 추가한다. Block quantization은 가중치 행렬을 2D 블록으로 분할하여 각 블록별로 독립적인 스케일 팩터를 사용하는 방식이다.
핵심 코드 분석
Block quantization vs. 기존 per-channel/per-group:
Per-channel: 전체 채널에 하나의 스케일 -> 양자화 오차 큼
Per-group: group_size 단위로 스케일 -> 중간 수준의 정밀도
Block: 2D 블록(예: 128x128) 단위로 스케일 -> 높은 정밀도
47줄의 변경으로 기존 GPTQ 구현에 block 분할 로직을 추가했다. 이는 vLLM의 block quantization 커널과 호환되는 형식으로 양자화된 가중치를 생성한다.
왜 이게 좋은가
- 양자화 품질 향상: 블록 단위 스케일로 per-group 대비 정밀도 향상
- vLLM 호환: vLLM의 block quantization 추론 커널과 직접 호환
- FP8 시너지: block quantization은 FP8 양자화에서 표준 방식
- 최소 변경: 47줄 추가로 기존 GPTQ 파이프라인을 확장
정리
GPTQ에 block quantization을 추가하여 양자화 품질과 vLLM 호환성을 동시에 개선한 PR이다. 특히 FP8 block quantization이 표준이 되어가는 추세에서 중요한 기능이다.
참고 자료
이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 코드 분석 내용은 실제 PR diff를 기반으로 합니다.
관련 포스트
PR Analysis 의 다른글
- 이전글 [sglang] 멀티프로세스 JIT 컴파일로 Custom All Reduce 테스트 속도 향상
- 현재글 : [llm-compressor] GPTQ Block Quantization 지원
- 다음글 [sglang] AMD에서 MoE Gate router gemm을 tgemm.mm으로 교체
댓글