[논문 리뷰] LUT-GEMM: Quantized Matrix Multiplication based on LUTs for Efficient Inference in Large-Scale Generative Language Models
LUT-GEMM은 바이어스가 있는 확장 BCQ를 통한 가중치 전용 양자화(균일 또는 비균일)와 완전 정밀도 활성화를 지원하는 LUT 기반 행렬곱 커널을 도입하여 지연 시간 감소를 크게 가능하게 하고 단일 GPU에서 OPT-175B를 거의 정밀도 손실 없이 실행할 수 있는 가능성을 제공합니다.
Recent advances in self-supervised learning and the Transformer architecture have significantly improved natural language processing (NLP), achieving remarkably low perplexity. However, the growing size of NLP models introduces a memory wall problem during the generation phase. To mitigate this issue, recent efforts have focused on quantizing model weights to sub-4-bit precision while preserving full precision for activations, resulting in practical speed-ups during inference on a single GPU. However, these improvements primarily stem from reduced memory movement, which necessitates a resource-intensive dequantization process rather than actual computational reduction. In this paper, we introduce LUT-GEMM, an efficient kernel for quantized matrix multiplication, which not only eliminates the resource-intensive dequantization process but also reduces computational costs compared to previous kernels for weight-only quantization. Furthermore, we proposed group-wise quantization to offer a flexible trade-off between compression ratio and accuracy. The impact of LUT-GEMM is facilitated by implementing high compression ratios through low-bit quantization and efficient LUT-based operations. We show experimentally that when applied to the OPT-175B model with 3-bit quantization, LUT-GEMM substantially accelerates token generation latency, achieving a remarkable 2.1$ imes$ improvement on a single GPU when compared to OPTQ, which relies on the costly dequantization process.
연구 동기 및 목표
- 대규모 생성형 LM에 대한 메모리 및 에너지 효율적 추론을 위해 가중치 정밀도를 축소하고 활성화 정밀도는 유지합니다.
- 가중치 전용 양자화 커널을 제안하여 균일 및 비균일 양자화를 모두 위한 디퀀타이제이션 오버헤드를 제거합니다.
- 바이어스를 포함한 확장된 BCQ를 기반으로 다양한 양자화 체계를 표현하기 위해 LUT-GEMM을 개발합니다.
- 압축 수준(저비트 가중치)을 늘리면 GPU 수와 지연 시간이 감소하되 큰 LM에서 큰 정확도 손실 없이도 가능함을 보입니다.
- 매우 큰 모델(예: OPT-175B)에 대해 실용적인 속도 증가와 단일 GPU 추론 가능성을 보여줍니다.
제안 방법
- 편향 항을 포함한 BCQ를 확장하여 비균일 양자화와 균일 양자화 모두를 하나의 BCQ 형식으로 표현합니다.
- 그룹 크기 g를 구성 가능한 그룹화된 BCQ로 도입하여 압축 비율과 양자화 오차 사이의 트레이드를 제공합니다.
- 중복된 부분 합을 대체하고 활성화 디퀀타이제이션을 피하기 위해 LUT 기반 연산을 사용하는 LUT-GEMM을 개발하여 가중치 전용 양자화 GEMM을 효율적으로 구현합니다.
- GPU 스레드에 매핑하고 빠른 온칩 메모리의 공유 LUT를 활용하며 타일링/헤테로지니어스 단계를 최적화하도록 LUT-GEMM을 설계합니다(파라미터: TB당, mu=8, l, t_h, t_w, q, g).
- 단일 배치 LUT-GEMM 연산식을 y = sum_{i=1}^q (A_i ∘ (B_i · x))로 정립합니다. 여기서 A는 FP16 스케일링, B는 FP16 이진, x는 FP16 입력이며 ∘는 요소별 곱셈입니다.
- 메모리 점유율 기반 대기 시간에 대한 경험적 LUT 최적화(mu, g, q) 가이드를 제공하고 메모리 footprint 주도 지연 시간을 논의합니다.
실험 결과
연구 질문
- RQ1가중치 전용 양자화 커널이 BCQ 기반 표현으로 활성화 디퀀타이제이션 없이도 대형 LM 추론을 가속할 수 있나요?
- RQ2바이어스 항으로 BCQ를 확장하고 그룹화된 BCQ를 활성화하면 매우 큰 LM에서 압축, 지연 시간 및 정확도에 어떤 영향을 미치나요?
- RQ3LUT-GEMM이 OPT-175B에 대해 기존의 디퀀타이제이션 기반 접근법(예: OPTQ) 대비 어떤 지연 시간 이점을 제공하나요?
- RQ4공지 구현 측면에서 스레드 구성, LUT 저장, 메모리 점유율 등 LUT-GEMM 처리량을 극대화하는 GPU 구현 고려사항은 무엇인가요?
주요 결과
| Kernel | Data Type Precision for Data | Weight | Output | Latency (ms) |
|---|---|---|---|---|
| cuBLAS | FP32 | FP32 | FP32 | 1.4015 |
| cuBLAS | FP16 | FP16 | FP16 | 0.7256 |
| cuBLAS | INT8 | INT8 | INT32 | 0.6345 |
| OPTQ (Frantar et al., 2022) | FP16 | INT3 | FP16 | 0.1956 |
| OPTQ (Frantar et al., 2022) | FP32 | INT3 | FP32 | 0.3047 |
| LUT-GEMM | FP16 | BCQ8, INT8 | FP16 | 0.4620 |
| LUT-GEMM | FP16 | BCQ3, INT3 | FP16 | 0.1956 |
- LUT-GEMM은 균일 및 비균일 양자화 형식을 모두 수용하는 유연한 BCQ 기반 표현으로 가중치 전용 양자화를 가능하게 합니다.
- 바이어스 항을 가진 BCQ 확장과 그룹화된 양자화 도입으로 양자화 공간이 확장되어 대형 LM에서 압축-지연 시간 간의 트레이드오프를 개선합니다.
- OPT-175B의 경우 3비트 BCQ 가중치를 단일 GPU에서 사용할 때 OPTQ보다 토큰 생성 지연 시간이 2.1× 빨라지며 다중 GPU 필요성이 감소합니다.
- LUT-GEMM은 큰 정확도/성능 손실 없이 거의 단일 GPU 추론이 가능하다는 것을 보여주며 메모리 병목을 디퀀타이제이션 오버헤드 없이 해결합니다.
- 지연 시간은 메모리 풋프린트와 밀접하게 연관되어 있으며 임계 값을 넘는 그룹 크기 g의 증가로 인해 레이아웃이 BCQ의 로우-와이즈 방식에 근접하면서도 더 높은 압축 기회를 제공합니다.
- 실험 결과는 다양한 커널에서 LUT-GEMM의 지연 시간 이점(예: BCQ3/INT3의 0.1956 ms vs OPTQ FP16/INT3의 0.3047 ms)이 Table 2에 나타납니다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.