← Resources
By Ren Sugaya
— Performance Engineer, GPU & Inference
·
· INSIGHT
LLM 양자화 완전 해설: GGUF, Q4 대 Q8, 그리고 품질
양자화는 LLM의 가중치를 낮은 정밀도로 저장해 모델을 작게 만들며, 4비트에서는 VRAM을 약 4분의 1로 줄입니다. 이 가이드는 VRAM 계산법을 설명하고, Q4_K_M 같은 GGUF 양자화 이름을 풀어내며, GGUF를 GPTQ·AWQ와 비교하고, 품질이 실제로 어디서 무너지는지 보여줍니다.
양자화란 무엇이며, 왜 중요한가
양자화는 모델 가중치를 저장하는 데 쓰이는 수치 정밀도를 낮춥니다. 보통 FP16(16비트, 가중치당 2바이트)에서 8비트 또는 4비트로 줄입니다. 메모리는 가중치당 비트 수에 비례하므로, 4비트는 FP16보다 약 4배 적은 VRAM을 사용합니다. 또한 토큰 생성은 연산량이 아니라 메모리 대역폭에 의해 좌우되므로 추론 속도도 빨라집니다.
크기 계산은 간단합니다: bytes ≈ (parameters × bits-per-weight) ÷ 8. FP16에서 8B 모델은 약 16 GB이고, 4비트에서는 약 4.5 GB입니다. 이 차이 덕분에 데이터센터 GPU가 필요했던 모델을 노트북에서 실행할 수 있게 됩니다.
GGUF는 파일 형식이지, 방식이 아니다
GGUF는 양자화된 가중치와 모델 메타데이터(토크나이저, 아키텍처, 하이퍼파라미터)를 하나의 파일에 저장하는 형식입니다. llama.cpp 프로젝트 GGML의 후계자로, CPU·Apple Silicon(Metal)·혼합 CPU/GPU 오프로드에 최적화되어 있습니다. llama.cpp·Ollama·LM Studio를 통한 로컬 및 노트북 추론에서 주류로 쓰이는 이유가 바로 이것입니다.
양자화 수준은 파일 이름에 담겨 있습니다. 숫자는 평균 가중치당 비트 수이고, `_K`는 k-quants(이중 양자화된 스케일링 팩터와 레이어 인식 비트 할당을 갖춘 현대적 슈퍼블록 방식)를 뜻하며, `_S`·`_M`·`_L`은 각각 소·중·대 변형입니다. `_M`은 어텐션·출력처럼 민감한 레이어를 선택적으로 더 높은 정밀도로 유지하기 때문에, Q4_K_M이 균일한 4비트 양자화보다 우수합니다.
Q4 대 Q5 대 Q8: 숫자로 보는 크기와 품질
Llama-3.1-8B에 대한 동료 심사를 거친 평가가 이 트레이드오프를 구체적으로 보여줍니다(크기는 해당 모델 기준이며, 비율은 일반화 가능). FP16 기준 perplexity 약 7.32(낮을수록 좋음) 대비:
- Q8_0 — 8.5 bits/weight, ~7.95 GiB, perplexity 7.33: 사실상 무손실.
- Q6_K — 6.56 bpw, ~6.14 GiB, perplexity 7.35.
- Q5_K_M — 5.70 bpw, ~5.33 GiB, perplexity 7.40.
- Q4_K_M — 4.89 bpw, ~4.58 GiB, perplexity 7.56: 기준 대비 0.5% 미만의 실용적인 스위트 스팟.
- Q3 이하 — 특히 추론 작업에서 가파르고 일관된 성능 저하.
4~5비트 구간이 안전 지대입니다. 3비트 미만에서는 importance-matrix(IQ) 양자화가 필요한데, 보정 데이터를 사용해 가장 중요한 곳에 정밀도를 집중시킵니다. 쓸 수는 있지만 메모리가 정말 빠듯할 때의 최후의 수단입니다.
GGUF vs GPTQ vs AWQ
GGUF만이 유일한 선택지는 아닙니다. 어디서 실행하느냐에 따라 최적의 선택이 달라집니다.
- GGUF: CPU·Mac·혼합 오프로드용으로 만들어졌습니다. 로컬 및 데스크톱 추론에는 이것을 고르세요.
- GPTQ: 학습 후 양자화로, 보정 기반이며 2차 정보를 활용해 레이어별 오차를 최소화합니다. 주어진 비트 폭에서 가중치 단위로 가장 정확하지만, 생성이 느리고 GPU 서빙(vLLM, TGI, TensorRT-LLM)에 맞춰져 있습니다.
- AWQ: 활성화 크기를 기준으로 가장 중요한 약 1%의 가중치를 보호하며, GPTQ보다 빠르게 생성되고 4비트에서 GPU에 최적화됩니다.
- bitsandbytes: 사전 양자화 체크포인트나 보정 없이 로드 시점에 즉석에서 양자화합니다 — 가장 간단한 방법으로, QLoRA 파인튜닝에 널리 쓰입니다.
실용적인 구분: 로컬·노트북에는 GGUF, GPU 서버 처리량에는 AWQ 또는 GPTQ.
실제로 품질이 얼마나 떨어질까?
4비트에서는 대부분이 우려하는 것보다 훨씬 적게 떨어지고, 3비트 미만에서는 예상보다 많이 떨어집니다. Llama-3.1-8B 평가에서 Q8은 완전 정밀도와 반올림 수준의 차이밖에 없었고, Q4_K_M은 평균 벤치마크에서 0.5% 미만의 손실을 보였으며, 급락은 3비트에서 나타났습니다. 특히 초등 수학처럼 추론 부담이 큰 평가에서 가장 뚜렷한 성능 저하가 확인되었습니다. 절대적인 perplexity와 크기 수치는 모델마다 다르다는 점을 잊지 마세요. 백분율은 일반화할 수 있지만 항상 사용할 베이스 모델의 수치를 확인하세요. 또한 파일 크기를 넘어서는 VRAM도 확보해야 합니다. KV 캐시와 약 10~15%의 프레임워크 오버헤드에도 여유 공간이 필요합니다.
osFoundry에서의 양자화
양자화를 고르려면 보통 bits-per-weight를 이해하고, KV 캐시를 위한 공간을 남겨두고, 크래시 없이 들어맞는 파일 하나를 찾으려 난해한 GGUF 접미사의 벽을 뒤지는 과정이 필요합니다. osFoundry의 로컬 추론은 이 단계를 없애줍니다. 가용 메모리를 감지해 적절한 양자화를 자동으로 선택합니다. VRAM이 빠듯하면 Q4_K_M, 여유가 있으면 Q5_K_M 또는 Q8_0을 골라 하드웨어가 지원하는 최고 품질로 모델을 실행합니다. 카탈로그는 모든 변형이 아니라 호환되는 빌드만 표시하며, 더 무거운 양자화가 들어맞지 않으면 자연스럽게 폴백합니다. Q4_K_M의 의미를 몰라도, GGUF를 직접 고르는 것과 같은 크기 대 품질의 최적 균형을 얻을 수 있습니다.
Frequently asked questions
- LLM 양자화를 쉽게 설명하면?
- 모델의 가중치를 더 낮은 수치 정밀도로 저장하는 것입니다. 예를 들어 16비트 대신 4비트로 저장해 모델을 압축합니다. 메모리는 가중치당 비트 수에 비례하므로, 4비트 양자화는 FP16보다 약 4배 적은 VRAM을 사용하고 더 빠르게 실행되며, 품질 손실은 작고 대개 허용 가능한 수준입니다.
- GGUF는 무엇의 약자이고 무엇인가요?
- GGUF는 llama.cpp 프로젝트의 단일 파일 모델 형식(GGML의 후계자)으로, 양자화된 가중치와 모델 메타데이터를 하나로 묶습니다. CPU·Apple Silicon·혼합 CPU/GPU 추론에 최적화되어 있어 llama.cpp·Ollama·LM Studio 같은 로컬 도구의 표준이 되었습니다. 양자화 알고리즘이 아니라 파일 형식입니다.
- Q4, Q5, Q8의 차이는 무엇인가요?
- 숫자는 평균 가중치당 비트 수이므로, Q8은 Q5보다 크고 정밀도가 높으며 Q5는 Q4보다 큽니다. 일반적인 8B 모델에서 Q8은 약 8 GB로 거의 무손실이고, Q5_K_M은 약 5.3 GB로 약간 낮으며, Q4_K_M은 약 4.6 GB에서 0.5% 미만의 품질 손실로 크기/품질의 스위트 스팟입니다.
- 어떤 GGUF 양자화를 써야 하나요?
- 대부분의 경우 Q4_K_M — 크기와 품질의 최적 균형이며 표준 출발점입니다. 여유 VRAM이 있고 더 높은 정밀도를 원한다면 Q5_K_M이나 Q8_0으로 올리고, 3비트 이하에서는 품질이 급격히 떨어지므로 메모리가 정말 부족할 때만 importance-matrix IQ 양자화를 써서 Q4 미만으로 내려가세요.
- 4비트 양자화로 품질이 얼마나 손실되나요?
- 놀라울 만큼 적습니다. 동료 심사를 거친 Llama-3.1-8B 평가에서 Q4_K_M은 평균 벤치마크에서 완전 정밀도 기준선 대비 0.5% 미만으로 낮았습니다. 눈에 띄는 저하는 3비트부터 시작되며, 특히 추론과 수학 작업에서 두드러집니다. 정확한 수치는 모델마다 다르지만, 4~5비트는 안전 지대로 널리 인정받습니다.
- GGUF vs GPTQ vs AWQ — 어느 것을 골라야 하나요?
- llama.cpp나 Ollama를 통한 로컬·노트북·Apple Silicon 추론에는 GGUF. GPTQ와 AWQ는 GPU 친화적 레이아웃으로 저장되어 vLLM이나 TGI를 활용한 GPU 서버 처리량에 더 적합합니다. AWQ는 생성이 빠르고, GPTQ는 가중치 단위로 가장 정확한 경우가 많습니다. bitsandbytes는 보정 없이 로드 시점에 양자화하므로 가장 간단합니다.
- 양자화된 모델에 필요한 VRAM은 어떻게 계산하나요?
- bytes ≈ (parameters × bits-per-weight) ÷ 8을 사용하세요. 4비트에서는 10억 파라미터당 약 0.5~0.6 GB이므로, 8B 모델은 약 4.5 GB입니다. 여기에 KV 캐시와 약 10~15%의 프레임워크 오버헤드를 위한 여유 공간을 더하세요. 실제 실행 시 메모리 사용량은 항상 디스크의 파일 크기보다 큽니다.
Sources