
AI 모델을 가볍게 만드는 마법, 양자화란?
요즘 로컬에서 LLM을 돌려보신 분이라면 "4bit 양자화", "GPTQ", "GGUF" 같은 단어를 한번쯤 보셨을 거예요. 모델 다운로드 페이지에 가면 같은 모델인데 용량이 70GB짜리도 있고 4GB짜리도 있거든요. 이 차이를 만드는 핵심 기술이 바로 양자화(Quantization)인데요, 이번에 ngrok 엔지니어링 블로그에서 이 양자화를 정말 기초부터 차근차근 설명하는 글이 올라왔어요.
양자화가 뭐냐면, 쉽게 말해서 숫자의 정밀도를 낮추는 거예요. 우리가 일상에서 "3.141592..."를 "약 3.14"로 반올림하는 것처럼, 모델의 가중치(weight)를 표현하는 숫자를 더 적은 비트로 표현하는 기술이에요. 원래 딥러닝 모델은 각 파라미터를 32비트 부동소수점(FP32)으로 저장하는데, 이걸 16비트(FP16), 8비트(INT8), 심지어 4비트(INT4)까지 줄이는 거죠.
부동소수점부터 알아야 양자화가 보여요
이 글이 좋은 이유는 부동소수점 표현 방식부터 시작한다는 점이에요. 컴퓨터가 소수점이 있는 숫자를 어떻게 저장하는지 아는 게 양자화 이해의 첫걸음이거든요. FP32는 부호 1비트, 지수 8비트, 가수 23비트로 구성되는데요, 이게 뭔 말이냐면 숫자 하나를 저장하는 데 32개의 0과 1을 쓴다는 뜻이에요. 파라미터가 70억 개인 모델이라면? 70억 × 32비트 = 약 28GB의 메모리가 필요한 거죠.
이걸 16비트로 줄이면 14GB, 8비트로 줄이면 7GB, 4비트로 줄이면 3.5GB까지 내려가요. GPU 메모리(VRAM)가 부족한 상황에서 이 차이는 엄청나죠. RTX 4090 하나(24GB)에 올릴 수 있느냐 없느냐가 갈리는 문제니까요.
양자화 방식, 어떤 것들이 있을까
양자화에는 크게 두 가지 접근법이 있어요. 첫 번째는 훈련 후 양자화(Post-Training Quantization, PTQ)인데, 이미 학습이 끝난 모델의 가중치를 사후에 변환하는 방식이에요. 가장 간단하고 빠르지만, 정밀도 손실이 좀 있을 수 있어요. 두 번째는 양자화 인식 훈련(Quantization-Aware Training, QAT)으로, 훈련 과정에서부터 양자화를 고려해서 학습하는 방식이에요. 결과물의 품질은 더 좋지만, 훈련 비용이 추가로 들죠.
실무에서 많이 쓰이는 구체적인 기법들도 있는데요. GPTQ는 레이어별로 최적의 양자화 파라미터를 찾아서 오차를 최소화하는 방식이고, AWQ(Activation-aware Weight Quantization)는 활성화 값의 분포를 고려해서 중요한 가중치는 더 정밀하게 유지하는 영리한 방법이에요. 그리고 bitsandbytes 같은 라이브러리를 쓰면 코드 몇 줄로 양자화를 적용할 수 있어서, 허깅페이스 생태계에서 정말 많이 쓰이고 있어요.
양자화할 때 진짜 중요한 건 "어디까지 줄여도 되는가"
양자화의 핵심 딜레마는 압축률과 품질 사이의 트레이드오프예요. 8비트까지는 대부분의 모델에서 성능 저하가 거의 없다고 알려져 있어요. 4비트도 최신 기법들을 쓰면 놀라울 정도로 원본에 가까운 결과를 내주고요. 하지만 2비트 이하로 내려가면 이야기가 달라져요. 모델이 엉뚱한 답변을 하거나 문맥을 놓치는 일이 눈에 띄게 늘어나거든요.
재미있는 건 모든 레이어가 양자화에 똑같이 민감한 건 아니라는 점이에요. 어텐션 레이어의 일부 가중치는 정밀도를 유지하는 게 좋고, 피드포워드 레이어는 상대적으로 공격적으로 양자화해도 괜찮은 경우가 많아요. 이런 "혼합 정밀도(mixed-precision)" 접근법이 최근 양자화 연구의 핵심 트렌드이기도 해요.
한국 개발자에게 왜 중요할까
솔직히 말하면, 한국에서 개인이나 중소 규모 팀이 AI 서비스를 만들 때 가장 큰 벽은 GPU 비용이에요. A100 한 장 빌리는 데 시간당 몇 천 원씩 나가는데, 양자화를 잘 활용하면 같은 품질의 서비스를 훨씬 저렴한 하드웨어에서 돌릴 수 있어요. 특히 추론(inference) 서버를 운영할 때 4비트 양자화 모델을 쓰면 처리량이 몇 배로 늘어나니까, 서비스 비용을 극적으로 줄일 수 있죠.
로컬 개발 환경에서도 마찬가지예요. M1/M2 맥북에서 llama.cpp로 양자화된 모델을 돌려보면 "이게 내 노트북에서 된다고?" 하는 순간이 오거든요. 양자화 기초를 이해하고 있으면 어떤 모델을 어떤 포맷으로 받아야 할지, 왜 Q4_K_M이 Q4_0보다 나은지 같은 판단을 스스로 할 수 있게 돼요.
정리하자면
양자화는 AI 모델의 민주화를 이끄는 핵심 기술이에요. 거대 모델을 일반 하드웨어에서도 쓸 수 있게 만들어주니까요. 이 글은 그 기초를 부동소수점 표현부터 차근차근 쌓아올려서 설명하고 있어서, 양자화를 처음 접하는 분들에게 특히 추천해요.
여러분은 로컬에서 LLM 돌려보신 적 있으신가요? 양자화 모델 써보셨다면 어떤 포맷이 가장 만족스러웠는지 경험 공유해주세요!
🔗 출처: Hacker News
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공