AI VIDEO BRIEFING

LLM 양자화 기초 정리: 실수를 정수로 바꿔 모델을 압축하는 방법

양자화는 모델 가중치를 실수에서 정수로 바꿔 크기를 줄이고 추론을 빠르게 한다. 왜·언제·어떻게 하는지, PTQ와 QAT, 보정과 스케일 계산까지 기초를 정리했다.

양자화(Quantization) 기초: 거대한 LLM을 GPU 두 장에 담는 원리 영상 대표 이미지

핵심 메시지

  • 양자화는 연속적인 실수 값을 이산적인 정수 값의 '구간(버킷)'으로 대응시키는 과정으로, 원래 신호처리에서 소리를 디지털로 바꾸는 데 쓰였다.
  • 머신러닝에서는 모델 가중치(때로는 활성값)를 실수에서 정수로 바꿔, 예를 들어 6710억 파라미터의 딥시크 R1을 약 720GB에서 131GB로 80% 넘게 줄인다.
  • 정수는 2의 보수 표현 덕분에 연산이 단순해 정수 덧셈은 보통 한 클럭에 끝나지만, 부동소수점 덧셈은 서너 클럭이 걸린다.
  • 학습에는 정밀도가 필요해 실수를 쓰지만 추론은 정밀도 손실에 강해, 학습 후 정수로 바꾸는 '학습 후 양자화(PTQ)'가 대부분의 공개 가중치 모델에서 쓰인다.
  • 4비트 이하의 극단적 양자화에는 성능 저하를 막기 위해 '양자화 인식 학습(QAT)'이 필요하며, 1비트 LLM이 이렇게 만들어진다.

쉽게 이해하기

양자화는 딥시크 R1 같은 거대 모델을 GPU 두 장에서 돌리거나, 부동소수점 연산조차 지원하지 않는 엣지 기기에 AI 모델을 올릴 수 있게 해주는 기술이다. 본질은 연속적인 공간을 이산적인 공간으로 대응시키는 것으로, 예컨대 0과 1 사이의 실수를 10개의 균등한 구간으로 나눠 각 값을 해당 버킷 번호로 표현하는 식이다. 이 개념은 원래 신호처리에서 소리 같은 파형을 디지털로 바꾸는 데(표본화와 반올림) 쓰였다.

머신러닝에서 양자화는 모델 가중치, 때로는 활성값을 실수에서 정수로 바꾼다. 예를 들어 -1과 1 사이였던 파라미터가 -128에서 +127 사이 정수로 바뀐다. 이유는 크기다. 딥시크 R1은 총 6710억 파라미터로 원래 정밀도에서는 약 720GB인데, 전문가 혼합(MoE) 구조라 일부만 활성화돼도 추론을 위해 전체를 메모리에 올려야 한다. 양자화는 이를 131GB까지 80% 넘게 줄여 엔비디아 H100 두 장에 담을 수 있게 한다. 즉 양자화는 모델 압축이자 추론 가속 기법이다.

정수가 효율적인 이유는 표현이 단순하기 때문이다. 부호 있는 정수는 1960년대부터 쓰인 '2의 보수' 형식으로 부호 비트 하나만 추가하면 되고, 덧셈은 사실상 비트 연산이라 현대 CPU에서 보통 한 클럭에 끝난다. 반면 부동소수점은 부호·지수·가수를 나눠 저장하는 복잡한 형식이라 덧셈에 서너 클럭이 걸린다. 구글 브레인이 만든 BFloat16은 지수에 더 많은 비트를 할당해 0 부근의 아주 작은 수까지 표현하는 '동적 범위'를 넓혀 학습에 유리하다. 다만 양자화는 정밀도를 희생하는데, 모델에 내재된 중복성 덕분에 어느 정도는 버릴 수 있어도 균형 잡기는 까다롭다.

'언제' 양자화하느냐도 중요하다. 학습은 그래디언트 계산에 정밀도가 필요해 과거에는 FP32, 지금은 대개 반정밀도(FP16, BFloat16)를 쓰고, 딥시크 R1이나 라마 4 같은 최신 모델은 FP8까지 내려갔다. 반면 순전파만 하는 추론은 정밀도 손실에 강해 8비트, 4비트, 심지어 1비트까지 정수로 돌린 사례가 있다. 그래서 학습 직후 배포 전에 정수로 바꾸는 '학습 후 양자화(PTQ)'가 자연스러운 지점이며, 대부분의 공개 가중치 LLM이 이 방식이다. 메타·딥시크는 원본 부동소수점만 공개하고 언슬로스 같은 커뮤니티가 양자화하며, 콴(Qwen)은 GGUF·GPTQ·AWQ 같은 접미사가 붙은 양자화 버전을 직접 낸다.

'어떻게'는 실수를 정수로 바꾸는 공식, 즉 양자화 방식에 달려 있다. 신경망 값은 알파와 베타 사이 좁은 '클리핑 범위'에 몰려 있는데, 이 최솟값·최댓값을 찾는 과정을 '보정(calibration)'이라 한다. 파라미터는 쉽지만 활성값은 보정 데이터로 추론을 돌려야 해 모델과 하드웨어에 따라 수 분에서 수 시간이 걸린다. 스케일 계산과 영점(zero point)으로 정수 대응을 정의하고, 실수 곱셈을 피하기 위해 스케일을 2의 거듭제곱으로 분해하는 고정소수점 연산을 쓴다. 실제로는 파이토치·텐서플로의 내장 기능이나 ONNX 런타임, 엔비디아 텐서RT 같은 추론 엔진이 이런 저수준 최적화를 대신 처리한다.

주요 인사이트

  • 양자화의 동기는 명확하다. 모델 크기를 80% 넘게 줄여 GPU 두 장이나 엣지 기기에 올리고, 메모리 사용과 추론 시간을 함께 줄이는 것이다.
  • 정수 연산의 효율은 '단순한 표현'에서 나온다. 2의 보수 덕분에 정수 덧셈은 한 클럭, 부동소수점 덧셈은 서너 클럭으로 차이가 크다.
  • 정밀도는 학습과 추론에서 다르게 다뤄진다. 학습은 그래디언트 때문에 실수가 필요하지만, 순전파뿐인 추론은 손실에 강해 훨씬 낮은 비트로 내려갈 수 있다.
  • PTQ(학습 후 양자화)와 QAT(양자화 인식 학습)의 구분이 핵심이다. 대부분은 PTQ로 충분하지만, 4비트 이하의 극단적 양자화나 1비트 LLM에는 QAT가 필요하다.
  • 행렬 곱셈에서 이득이 뚜렷하다. 라마 4의 4000×4000 행렬은 100억 번의 곱셈이 필요한데, 스케일은 출력 행마다 한 번만 적용하면 돼 병목이 연산에서 메모리 대역폭으로 옮겨간다.

자주 묻는 질문

양자화는 정확히 무엇을 하는 건가요?

연속적인 실수 값을 이산적인 정수 값의 구간으로 대응시키는 과정입니다. 머신러닝에서는 모델 가중치와 때로는 활성값을 실수에서 정수로 바꿔 모델 크기를 줄이고 추론을 빠르게 합니다.

양자화로 모델이 얼마나 작아지나요?

영상의 예에서 6710억 파라미터의 딥시크 R1은 원래 정밀도에서 약 720GB인데, 양자화하면 131GB까지 80% 넘게 줄어 엔비디아 H100 두 장에 담을 수 있습니다.

PTQ와 QAT는 어떻게 다른가요?

PTQ(학습 후 양자화)는 학습을 마친 뒤 배포 전에 정수로 바꾸는 방식으로 대부분의 공개 가중치 LLM이 씁니다. QAT(양자화 인식 학습)는 나중에 양자화될 것을 전제로 학습 과정을 조정해 정밀도 손실에 강하게 만드는 방식으로, 4비트 이하나 1비트 LLM처럼 극단적인 경우에 필요합니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식