[논문 리뷰] LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale
요약: LLM.int8()를 도입하는 두 부분으로 구성된 양자화 접근법은 벡터 단위의 8비트 양자화와 혼합 정밀도 분해를 결합해 정확도 저하 없이 최대 175B 매개변수의 트랜스포머에 대해 8비트 추론을 가능하게 하며 소비자 GPU에서 대형 모델에 대한 접근을 열어준다.
Large language models have been widely adopted but require significant GPU memory for inference. We develop a procedure for Int8 matrix multiplication for feed-forward and attention projection layers in transformers, which cut the memory needed for inference by half while retaining full precision performance. With our method, a 175B parameter 16/32-bit checkpoint can be loaded, converted to Int8, and used immediately without performance degradation. This is made possible by understanding and working around properties of highly systematic emergent features in transformer language models that dominate attention and transformer predictive performance. To cope with these features, we develop a two-part quantization procedure, LLM.int8(). We first use vector-wise quantization with separate normalization constants for each inner product in the matrix multiplication, to quantize most of the features. However, for the emergent outliers, we also include a new mixed-precision decomposition scheme, which isolates the outlier feature dimensions into a 16-bit matrix multiplication while still more than 99.9% of values are multiplied in 8-bit. Using LLM.int8(), we show empirically it is possible to perform inference in LLMs with up to 175B parameters without any performance degradation. This result makes such models much more accessible, for example making it possible to use OPT-175B/BLOOM on a single server with consumer GPUs. We open-source our software.
연구 동기 및 목표
- 대규모 트랜스포머 추론에서 메모리 절감을 유도하고 성능에 미치는 영향을 정량화한다.
- 다중-십억 매개변수 모델에서 전체 정밀도를 보존하는 8비트 양자화 방법을 개발한다.
- 양자화에 도전하는 대규모에서의 emergent한 이상치(features)을 식별하고 정량화한다.
- 이상치를 분리하되 8비트 효율성을 해치지 않는 혼합 정밀도 분해를 제안한다.
- 넓은 채택을 가능하게 하는 오픈소스 도구와 통합을 제공한다.
제안 방법
- 정밀도를 개선하기 위한 내부 곱셈마다의 정규화 상수를 사용하는 벡터-와이즈 8비트 양자화를 제안한다.
- 드물게 나타나는 이상치 특징 차원을 16비트 경로로 분리하고 나머지는 99.9%를 8비트로 유지하는 혼합 정밀도 분해를 도입한다.
- 행렬 곱셈을 이상치(16비트)와 일반(8비트) 부분으로 분해하고 외적 상수로 비정규화한다.
- 모델 크기가 커짐에 따라 emergent한 대규모 이상치 특징과 그 양자화에 대한 영향을 분석한다.
- 125M~13B 모델에서 perplexity(C4)와 OPT 모델(최대 175B)의 제로샷 정확도를 평가한다.
- Hugging Face Transformers 통합과 함께 bitsandbytes의 오픈소스화를 제공한다.
실험 결과
연구 질문
- RQ18비트 양자화가 트랜스포머 추론에서 모델 성능을 어느 정도까지 보존할 수 있는가?
- RQ2확대될 때의 emergent 이상치 특징은 무엇이며 양자화 정확도에 어떤 영향을 미치는가?
- RQ3이상치를 위한 16비트 정확도를 8비트 양자화로 나머지는 유지하는 혼합 정밀도 분해가 가능할까?
- RQ4모델 크기가 증가함에 따라 벡터-와이즈 양자화가 다른 8비트 양자화 방식보다 성능이 우수한가?
- RQ5소비자 GPU에서 175B+ 모델을 배포하는 실용적 시사점은 무엇인가?
주요 결과
| Model size (parameters) | 32-bit Float | Int8 absmax | Int8 zeropoint | Int8 absmax row-wise | Int8 absmax vector-wise | Int8 zeropoint vector-wise | Int8 absmax row-wise + decomposition | LLM.int8() (vector-wise + decomp) | Zeropoint LLM.int8() (vector-wise + decomp) |
|---|---|---|---|---|---|---|---|---|---|
| 125M | 25.65 | 87.76 | 56.66 | 30.93 | 35.84 | 25.72 | 30.76 | 25.83 | 25.69 |
| 1.3B | 15.91 | 16.55 | 16.24 | 17.08 | 16.82 | 15.94 | 16.19 | 15.93 | 15.92 |
| 2.7B | 14.43 | 15.11 | 14.76 | 15.24 | 14.98 | 14.36 | 14.65 | 14.44 | 14.43 |
| 6.7B | 13.24 | 14.59 | 13.49 | 14.13 | 14.13 | 13.38 | 13.25 | 13.24 | 13.24 |
| 13B | 12.45 | 19.08 | 13.94 | 16.49 | 16.48 | 13.47 | 12.46 | 12.45 | 12.45 |
- LLM.int8()는 125M에서 13B까지의 모델에 대해 perplexity를 보존하는 반면 absmax/row-wise/zeropoint 기준은 크기가 커질수록 저하한다.
- OPT 모델 최대 175B에서 제로샷 작업에 대해 LLM.int8()은 16비트 전체 성능을 유지하는 반면, 기준 8비트 방법은 저하된다.
- 6.7B 매개변수에서 대규모 이상치 특징이 등장하며 시퀀스당 150k 개의 이상치가 약 6개의 특징 차원에 집중된다.
- 혼합 정밀도 분해(이상치는 16비트, 나머지는 8비트)를 통해 175B 매개변수까지 무손실 추론이 가능하다.
- 메모리 절감은 상당하며(BLOOM-176B에서 약 2배) 런타임 영향은 미미하고, 매우 큰 모델의 경우 소비자 GPU에서 8비트 추론이 가능해진다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.