C.W.K.
Stream
Lesson 04 of 12 · published

양자화 — Q4, Q5, Q8 실전

~12 min · quantization, deployment

Level 0Token
0 XP0/94 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

양자화는 모델 가중치 정밀도 줄여서 메모리 절약 + 추론 가속. 모던 post-training 양자화 기법(GPTQ, AWQ, GGUF)은 놀라울 만큼 품질 손실 적어.

양자화params당 비트7B 모델 크기품질 영향
FP161614 GB베이스라인
INT8 / Q887 GB품질 손실 거의 0
Q55~4.4 GB매우 미미, chat에선 종종 감지 불가
Q443.5 GB작은 손실(~1-3%), 대부분 용도의 sweet spot
Q33~2.6 GB감지 가능한 저하
Q22~1.8 GB주요 저하

포맷 계열

  • GPTQ(Frantar et al., 2022): post-training, 보정 데이터 기반, 4-bit 가중치 + FP16 활성. 서빙 표준.
  • AWQ(Lin et al., 2023): activation-aware weight quantization. 활성 magnitude로 두드러진 가중치 식별 + 보호. 같은 비트 폭에서 GPTQ보다 종종 살짝 품질 높음.
  • GGUF: llama.cpp가 쓰는 파일 포맷. 많은 양자화 스킴 지원(Q4_K_M, Q5_K_S, Q8_0 등). on-device 추론에 흔함.

대부분 production 용도엔 Q4가 옳은 출발점 — 70B 모델이 단일 고급 GPU에 들어감, 품질 손실 보통 벤치마크에서 1-3 포인트, chat에선 종종 보이지 않음. 품질이 더 중요하면 Q5 또는 INT8로 올려, 메모리가 절대 제약일 때만 Q3로 내려.

Code

Loading a quantized model·python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Llama 3.3 70B in 4-bit via bitsandbytes
model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-3.3-70B-Instruct",
    quantization_config={"load_in_4bit": True,
                         "bnb_4bit_compute_dtype": torch.bfloat16},
    device_map="auto",
)
# Now ~35 GB instead of ~140 GB; runs on a single 80GB GPU.
GGUF / llama.cpp on Mac (no GPU)·python
# Install llama-cpp-python, download a GGUF file (Q4_K_M is a great default)
from llama_cpp import Llama

llm = Llama(
    model_path="llama-3.3-70b-instruct.Q4_K_M.gguf",
    n_ctx=8192, n_gpu_layers=-1,
)
print(llm("Explain attention in three sentences:")["choices"][0]["text"])

External links

Exercise

같은 Llama 3 8B를 FP16, INT8, Q5_K_M, Q4_K_M으로 가져와. 고정 평가 셋(chat prompt 10개, 수학 10개, 코드 완성 10개) 돌려. 각 출력 채점. 품질 vs. 양자화 플롯. 본인 task에서 절벽이 어디서 시작하나?

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.