양자화 (Quantization)

양자화는 LLM의 가중치(Weights)와 활성화(Activations) 데이터의 정밀도(Precision)를 낮추어 모델의 크기를 줄이고 추론 속도를 높이는 핵심 기술입니다. 일반적으로 16비트(FP16/BF16) 모델을 4비트(INT4) 또는 그 이하로 변환하여 메모리 사용량을 1/4 수준으로 절감합니다.

주요 양자화 기법 비교 (2025년 기준)

기술명 주요 타겟 하드웨어 특징 장점
AWQ NVIDIA GPU 활성화(Activation) 값을 고려하여 중요 가중치 보호 정확도 보존력이 높고 vLLM 서빙에 최적화
GPTQ NVIDIA GPU 레이어별 역헤시안(Inverse-Hessian) 최적화 추론 속도가 매우 빠르며 기업용 솔루션에서 널리 쓰임
GGUF CPU / Apple / GPU llama.cpp 기반의 통합 파일 포맷 하드웨어 범용성 최강, 로컬 PC/Mac 사용자 필수
EXL2 NVIDIA GPU 가중치별 가변 비트율(bpw) 할당 극강의 추론 속도, VRAM에 맞춘 세밀한 용량 조절
TurboQuant GPU / AI 가속기 KV 캐시 특화 극단적 데이터 비인지적(data-oblivious) 텐서 압축 메모리 오버헤드 없이 정확도를 보존하며 3bit까지 압축해, 긴 문맥(Long-context) 처리에 특화

1. AWQ (Activation-aware Weight Quantization)

  • 핵심 원리: 모든 가중치가 똑같이 중요하지 않다는 점에 착안합니다. 모델 실행 시 활성화 값이 큰 ‘중요한 가중치(Salient Weights)’를 선별하여 이들만 고정밀도로 보호하고 나머지를 양자화합니다.
  • 특징: GPTQ보다 모델의 일반화 성능(Perplexity)이 더 우수한 경우가 많으며, 특히 멀티모달(Vision) 모델에서 좋은 성능을 보여줍니다.

2. GPTQ (Generative Pre-trained Transformer Quantization)

  • 핵심 원리: 수학적 최적화를 통해 양자화 시 발생하는 오차를 최소화하는 정통 PTQ(Post-Training Quantization) 방식입니다.
  • 특징: 가장 성숙한 기술로, TensorRT-LLM과 같은 엔터프라이즈 프레임워크에서 표준으로 사용됩니다. 4비트 양자화에서 가장 안정적인 성능을 보장합니다.

3. GGUF (GPT-Generated Unified Format)

  • 핵심 원리: 가중치와 메타데이터를 하나의 파일(.gguf)에 담는 효율적인 바이너리 포맷으로, llama.cpp 라이브러리를 기반으로 합니다.
  • 로컬 PC에서 강력한 이유:
    • 하이브리드 오프로딩 (GPU + CPU/RAM): GGUF의 최대 강점입니다. 모델 전체가 GPU 메모리(VRAM)에 들어가지 않더라도, 레이어 단위로 쪼개어 일부는 GPU가, 나머지는 일반 시스템 메모리(RAM)와 CPU가 처리하도록 설정할 수 있습니다. 이는 고가의 그래픽카드가 없는 환경에서도 대형 모델을 돌릴 수 있게 해줍니다.
    • Apple Silicon 최적화: Mac의 통합 메모리 구조와 Metal API를 완벽하게 지원하여, MacBook 등에서 놀라운 성능을 보여줍니다.
    • 하드웨어 범용성: NVIDIA GPU뿐만 아니라 AMD, Intel, 심지어 GPU가 없는 구형 PC의 CPU에서도 추론이 가능합니다.
    • 단일 파일 배포: 모델 구동에 필요한 모든 설정값이 파일 하나에 포함되어 있어, 복잡한 라이브러리 설치 없이 실행 파일 하나만으로도 모델을 즉시 구동할 수 있습니다.

4. EXL2 (ExLlamaV2)

  • 핵심 원리: GPTQ의 확장판으로, 가중치마다 중요도에 따라 다른 비트(예: 4.5bpw, 3.2bpw)를 할당하는 가변 비트율 기술을 사용합니다.
  • 특징: 로컬 NVIDIA GPU 환경에서 가장 빠른 토큰 생성 속도를 보여줍니다. VRAM 용량에 맞춰 소수점 단위로 모델 크기를 조절할 수 있습니다.

5. TurboQuant (KV 캐시 극단적 압축)

  • 핵심 원리: Google Research에서 제안한 최신 기법으로, 가중치보다는 주로 KV 캐시(Key-Value Cache)활성화(Activation) 데이터의 메모리 병목을 극복하기 위한 혁신적인 양자화 알고리즘입니다. 랜덤 회전(PolarQuant)을 통해 데이터 형태를 최적화한 뒤 양자화를 거치고, 추가적으로 1비트 에러 보정(QJL)을 수행하는 2단계 과정으로 구성됩니다.
  • 특징: 별도로 양자화 상수를 저장해야 하는 기존 방식의 메모리 오버헤드를 아예 제거했습니다. 사실상 성능 저하 없이(Zero accuracy drop) KV 캐시 데이터를 3-bit까지 6배 이상 압축시키며 어텐션 스피드도 증대시킵니다. 대규모 파라미터를 가진 모델이 긴 입력 문맥(Long-context)을 다룰 때 최고의 잠재력을 발휘합니다.

양자화 선택 가이드

  1. 상용 서비스 (vLLM, TensorRT): AWQ 또는 GPTQ (4-bit)를 권장합니다.
  2. 로컬 PC / Mac (llama.cpp): GGUF 포맷을 사용하는 것이 가장 효율적입니다.
  3. 최고의 추론 속도 (NVIDIA GPU): EXL2를 사용하여 VRAM 한계까지 성능을 끌어올리십시오.
  4. 저사양 환경: 최신 GGUF/EXL2의 2비트급(2.4bpw~) 양자화를 통해 대형 모델 구동을 시도해 볼 수 있습니다.
  5. 대규모 긴 문맥(Long-context) 처리: KV 캐시가 병목이 되는 매우 긴 문서나 RAG 시스템 등에서는, TurboQuant의 극단적 압축 방식의 도입을 고려하여 컨텍스트 수용량을 획기적으로 향상시킬 수 있습니다.

This site uses Just the Docs, a documentation theme for Jekyll.