관리 메뉴

피터의 개발이야기

[AI] LLM 양자화 완전 정리: GPTQ / AWQ / GGUF / BNB 차이 + 비트 수와 메모리 관계 본문

AI

[AI] LLM 양자화 완전 정리: GPTQ / AWQ / GGUF / BNB 차이 + 비트 수와 메모리 관계

기록하는 백앤드개발자 2025. 12. 11. 09:21
반응형

[AI] Peterica의 AI공부와 비젼 정리

ㅁ 들어가며

대형 LLM을 사용하다 보면 “양자화(Quantization)” 라는 용어를 자주 마주치게 된다.
또 GPTQ, AWQ, GGUF, BNB(4bit/8bit 로딩) 등 다양한 방식이 존재하며,
FP32·FP16·INT8·INT4 같은 비트 수도 함께 등장한다.

이 글에서는 각 양자화 방식의 차이
비트 수와 메모리 관계를 가장 실질적인 관점에서 정리한다.

 

ㅁ Quantization(양자화)란?

 Quantization(양자화)라는 용어의 본질적인 의미 자체가 “연속적인 값을 이산화(discretize)한다”는 것이다.
그래서 컴퓨터 비전, 신호 처리, 음성 코덱, 이미지 압축, 뉴럴넷 등 분야를 막론하고 연속적(continuous) 값을 유한한 정수 집합(discrete set)으로 바꾸는 과정을 통칭해 Quantization이라고 부른다.

 

ㅁ 비트 수(FP32/FP16/INT8/INT4)와 메모리 관계

LLM의 속도를 결정하는 가장 큰 요인은 가중치를 메모리에서 GPU로 불러오는 속도(대역폭)이다.
따라서 가중치를 얼마나 적은 비트로 표현하느냐가 메모리 사용과 추론 속도를 크게 바꾼다.

ㅇ 비트 수별 메모리 사용량

형식 비트 수 메모리 크기 설명
FP32 32bit 기준 100% 학습 기본 정밀도
FP16/BF16 16bit 50% 학습·추론 모두 활용
INT8 8bit 25% 추론 최적화
INT4 4bit 12.5% 로컬 LLM·저사양 최적

 

예) 7B 모델 기준

FP32 → 약 28GB
  • FP16 → 약 14GB
  • INT8 → 약 7GB
  • INT4 → 약 3.5GB

➡️ INT4 양자화 덕분에 일반 PC에서도 70B 모델이 실행 가능한 시대가 되었다.

 


ㅁ GPTQ / AWQ / GGUF / BNB 차이 정리

아래 네 가지 방식은 모두 “양자화”라는 공통점을 가지지만 목적과 철학이 다르다.

 

 


ㅇ GPTQ

가장 널리 쓰이는 INT4 포스트훈(Post-training) 양자화 방식
특징
  • weight matrix를 그룹 단위로 나누어 오차를 최소화하도록 양자화
  • 높은 정확도와 좋은 효율
  • LLaMA, Mistral 등 대부분 모델에서 사실상 표준
요약

✔ 정확도 좋음
✔ CPU·GPU 모두 빠름
✔ 로컬 모델 생태계에서 가장 인기

 


ㅇ AWQ

중요한 weight는 살리고, 덜 중요한 weight만 aggressively 양자화하자

특징
  • activation(활성값) 중요도를 기준으로 weight을 선택적으로 양자화
  • GPTQ보다 품질이 좋은 경우가 많음
  • NVIDIA TensorRT·vLLM 등에서 적극 지원
요약

✔ 정확도 최적화
✔ 대형 모델에서 강력
✔ 다만 양자화 시간이 조금 더 걸림

 


ㅇ GGUF

양자화 알고리즘이 아니라 “모델 저장 포맷”

 

많이 오해하는데, GGUF는 “양자화 방식”이 아니라
    LLaMA.cpp(로컬 LLM) 생태계에서 사용하는 압축 모델 저장 형식이다.

 

강점은 다음과 같다:

  • CPU·모바일·Apple Silicon에서 최적화
  • Q2_K/Q4_K/Q5_K 등 다양한 quantization 스킴을 통합 지원
  • 로딩 속도가 매우 빠름
요약

✔ 로컬 LLM의 표준 포맷
✔ 다양한 양자화 스킴을 담는 “컨테이너”
✔ Mac/Windows/CPU 모두에서 빠름

 


ㅇ BNB (BitsAndBytes)

가장 쉽게 8bit/4bit 모델을 로딩하는 방식

 

HuggingFace의 bitsandbytes 라이브러리로,
가장 쉽고 빠르게 모델을 INT8/INT4로 로딩한다.

예:

model = AutoModelForCausalLM.from_pretrained(
    path,
    load_in_4bit=True
)

QLoRA(4bit 기반 미세조정)도 여기서 출발했다.

요약

✔ 사용이 가장 쉬움
✔ 학습·추론 모두 지원
✔ 정확도는 GPTQ/AWQ보다 약간 낮을 수 있음

 


ㅁ 네 방식의 차이를 한눈에 비교

방식 종류 목적 품질 속도 특징
GPTQ PTQ 최소 오차 INT4 높음 빠름 가장 대중적
AWQ PTQ 중요한 weight 보호 매우 높음 보통 activation-aware
GGUF 파일 포맷 로컬 실행 최적화 스킴에 따라 다름 매우 빠름 양자화 방식이 아님
BitsandBytes (BNB) PTQ 쉬운 8bit/4bit 로딩 중~높음 매우 빠름 QLoRA 기반

4. 한 문장으로 요약하면?

🔹 GPTQ = 범용 INT4 양자화 표준
🔹 AWQ = 정확도 우선 양자화
🔹 GGUF = 로컬 LLM 파일 포맷
🔹 BNB = 가장 쉬운 8bit/4bit 로딩 방식

 

 


ㅁ 마무리

양자화는 단순히 모델을 “줄이는 기술”이 아니라,
적은 자원에서 LLM을 빠르고 효율적으로 운영하게 만드는 핵심 기술이다.

  • GPTQ는 INT4의 사실상 표준
  • AWQ는 정확도 손실 최소화
  • GGUF는 로컬 실행을 위한 포맷
  • BNB는 사용 난도가 가장 낮은 방식

또한 비트 수(4bit/8bit/16bit) 는 메모리 사용량과 속도에 직결되므로
원하는 환경(GPU/CPU/메모리 크기)에 맞게 선택하는 것이 중요하다.

 

 

반응형
Comments