Quantization 이해
대형 모델 서빙에서 가장 큰 병목 중 하나는 메모리다. 양자화는 fp16이나 fp32로 저장하던 가중치를 int8, 4bit 등으로 줄여서 더 작은 하드웨어에서도 모델을 돌릴 수 있게 만든다.
초심자는 보통 "양자화는 속도 최적화"라고만 이해하기 쉽지만, 실제로는 메모리 절감이 더 직접적인 동기인 경우가 많다. 메모리가 줄면 그제서야 더 큰 모델을 한 장비에 올릴 수 있고, 배치 크기나 동시 요청 수도 조절할 수 있다.
1. 왜 필요한가
- 메모리 사용량을 크게 줄일 수 있다.
- 메모리 bandwidth 병목이 완화되어 추론 속도가 빨라질 수 있다.
- 같은 GPU에 더 큰 모델이나 더 큰 batch를 올릴 수 있다.
2. 핵심 tradeoff
비트를 줄이면 효율은 좋아지지만 정확도 손실 위험이 생긴다. 그래서 실전에서는 "얼마나 줄여도 품질이 유지되는가"가 핵심 질문이다.
즉 양자화는 공짜 최적화가 아니다. 품질과 효율 사이에서 어느 선까지 내려갈 수 있는지 확인하는 실험이 같이 필요하다.
이때 모델 전체가 똑같이 민감한 것도 아니다. 어떤 레이어는 4bit에서도 잘 버티지만, 어떤 부분은 작은 정밀도 손실에도 출력 품질이 크게 흔들릴 수 있다. 그래서 실제 양자화는 "어디까지 줄일 수 있나"를 구조적으로 탐색하는 과정에 가깝다.
3. 자주 보는 구분
- Post-Training Quantization: 학습 끝난 모델을 사후 변환
- Quantization-Aware Training: 학습 중 양자화 오차를 고려
- Weight-only quantization: 가중치만 줄임
- Activation quantization: activation까지 줄여 더 공격적으로 최적화
4. LLM에서 왜 중요해졌는가
LLM은 파라미터 수가 커서 메모리 문제가 더 심하다. 그래서 8bit, 4bit 양자화는 연구보다도 실제 서비스 운영 비용 절감에서 자주 언급된다.
특히 개인 GPU나 제한된 서버 자원에서 대형 모델을 굴리려면 양자화가 사실상 필수인 경우도 많다. 그래서 LoRA, KV cache, vLLM 같은 최적화 주제와 함께 묶여서 자주 등장한다.
결국 양자화는 "더 싼 하드웨어에서 돌리기"만의 문제가 아니라, 같은 예산에서 더 큰 모델을 쓸지, 같은 모델로 더 많은 동시 요청을 받을지 결정하는 시스템 설계 문제이기도 하다.
5. 면접 포인트
보통 "왜 latency가 아니라 memory가 먼저 문제인가", "왜 4bit까지 줄이면 품질 손실이 생길 수 있는가", "LoRA와 quantization을 같이 쓰면 어떤 장점이 있는가"를 물어본다.
여기서 좋은 답변은 "메모리 절감이 먼저고, 그 결과로 배치 크기와 서빙 가능성이 바뀐다"는 흐름을 분명히 말하는 것이다. 그래야 단순 최적화 용어 암기가 아니라 병목 구조를 이해하고 있다는 인상을 준다.
6. 체크리스트
- Quantization의 목적을 한 문장으로 설명할 수 있는가?
- 8bit와 4bit의 차이를 효율-정확도 관점에서 설명할 수 있는가?
- 왜 LLM에서 quantization이 특히 중요한가?