AI VIDEO BRIEFING
AI 모델 양자화 완전 정리 - 대칭·비대칭 방식, PTQ와 QAT 차이, 구간 선택 기준까지
70억 파라미터 모델은 32비트로 저장하면 28GB가 필요하다. 이 무게를 줄이는 양자화의 원리와 대칭·비대칭 방식의 차이, 구간 끝값 선택 기준, 학습 후 양자화와 양자화 인식 학습의 차이까지 정리했다.

핵심 메시지
쉽게 이해하기
요즘 신경망은 파라미터가 수억에서 수십억 개다. 가장 작은 축에 드는 라마 2도 70억 개인데, 하나를 32비트로 저장하면 파라미터만으로 28GB가 필요하다. 추론할 때는 이걸 전부 메모리에 올려야 하니 일반 PC나 스마트폰에서는 감당하기 어렵다. 게다가 컴퓨터도 사람처럼 소수 계산보다 정수 계산이 훨씬 빠르다.
양자화는 이 두 문제를 한 번에 겨냥한다. 소수점 형식의 가중치를 정수로 바꿔 저장 공간을 줄이고, 연산도 정수로 처리해 속도를 올린다. 다만 강사는 양자화가 소수를 가까운 정수로 반올림하는 것이라는 오해부터 바로잡는다. 실제로는 원래 값의 분포 구간을 정수 구간으로 압축해 대응시키고, 필요할 때 되돌리는 가역적인 매핑을 설계하는 일이다.
방식은 크게 두 가지다. 비대칭 양자화는 원래 값의 최솟값과 최댓값을 각각 정수 구간의 양 끝에 맞추고, 0이 어디로 가는지를 별도의 값으로 기억한다. 대칭 양자화는 절댓값이 가장 큰 값을 기준으로 삼아 0이 항상 0으로 유지되는 장점이 있다. 대신 값들이 한쪽으로 치우쳐 있으면 쓰이지 않는 구간이 생겨 오차가 커진다. 영상 속 예시에서도 -50에서 150 사이에 분포한 값들을 대칭 방식으로 처리하자 오차가 훨씬 크게 나왔다.
실제 적용에서는 가중치 말고 입력도 다뤄야 한다. 입력은 매번 달라지므로 들어올 때마다 구간을 계산해 변환하는 동적 양자화를 쓰고, 층의 출력값은 미리 몇 번 추론을 돌려 어느 범위에 들어오는지 통계를 모으는 보정 과정을 거친다. GPU는 이렇게 정수로 바꾼 행렬을 곱한 뒤 32비트 누산기에 더하는 방식으로 계산을 가속하는데, 편향 벡터를 32비트로 양자화하는 이유도 이 누산기에 처음부터 담기기 때문이다.
학습 후 양자화는 이미 훈련된 모델에 관찰자를 붙여 통계를 모은 뒤 변환하는 방식으로, 라벨 없는 데이터만 있으면 된다. 영상의 손글씨 숫자 분류 예제에서는 360KB짜리 모델이 94KB로 약 4분의 1이 됐고 정확도는 거의 그대로였다. 양자화 인식 학습은 훈련 중에 양자화와 복원을 흉내 내는 연산을 끼워 넣어 모델이 오차에 미리 적응하게 만드는 방식이다.
주요 인사이트
- 양자화 구간의 끝값을 정하는 기준이 결과를 크게 좌우한다. 최소·최대를 그대로 쓰면 이상치 하나 때문에 나머지 값 전체의 오차가 커지는데, 백분위수를 쓰면 손해를 이상치 하나로 국한시킬 수 있다.
- 언어 모델처럼 마지막에 확률 분포를 만드는 경우에는 값 자체보다 순서와 상대적 분포가 유지되는 것이 중요하다. 그래서 평균제곱오차 대신 교차 엔트로피를 최소화하는 기준으로 구간을 정하기도 한다.
- 합성곱 층에서는 필터마다 값의 분포 범위가 다르다. 모든 필터에 같은 구간을 적용하면 어떤 필터는 표현 범위를 낭비하게 되므로, 채널별로 구간을 따로 계산하면 정밀도 손실이 줄어든다.
- 비트 수를 늘리면 오차는 줄지만 아무 숫자나 쓸 수는 없다. CPU는 8·16·32·64비트처럼 정해진 폭에 맞춰 연산이 최적화돼 있어서, 예컨대 11비트를 고르면 하드웨어 가속을 받지 못할 수 있다.
- 양자화 연산은 미분이 되지 않아 역전파에 그대로 쓸 수 없다. 그래서 구간 안의 값에는 기울기 1을, 구간 밖의 값에는 0을 주는 방식으로 근사해 훈련을 이어간다.
자주 묻는 질문
양자화는 소수를 반올림하는 것과 어떻게 다른가요?
단순히 가까운 정수로 반올림하는 것이 아닙니다. 원래 값들이 분포한 구간 전체를 정수로 표현 가능한 구간에 대응시키고, 그 비율을 나타내는 배율 값과 0의 위치를 함께 저장합니다. 그래야 나중에 원래 값에 가깝게 되돌릴 수 있습니다.
대칭 방식과 비대칭 방식 중 무엇을 써야 하나요?
값의 분포에 달려 있습니다. 대칭 방식은 0이 항상 0으로 유지되는 장점이 있지만, 값들이 한쪽으로 치우쳐 있으면 반대편 구간이 낭비돼 오차가 커집니다. 영상의 예시에서도 -50에서 150 사이에 분포한 값에 대칭 방식을 쓰자 오차가 훨씬 크게 나왔습니다.
학습 후 양자화와 양자화 인식 학습은 어떻게 다른가요?
학습 후 양자화는 이미 훈련된 모델에 관찰자를 붙여 각 층의 값 범위 통계를 모은 뒤 변환하는 방식으로, 라벨 없는 데이터만 있으면 됩니다. 양자화 인식 학습은 훈련 도중에 양자화와 복원을 흉내 내는 연산을 넣어 모델이 미리 오차에 적응하도록 만듭니다.
양자화 인식 학습이 효과가 있는 이유는 무엇인가요?
손실 함수의 골짜기 모양과 관련이 있습니다. 좁고 가파른 골짜기에 자리 잡은 가중치는 양자화로 값이 조금만 움직여도 손실이 크게 뜁니다. 훈련 중에 일부러 양자화 오차를 넣어주면 모델이 폭이 넓은 골짜기로 유도돼, 값이 흔들려도 손실이 크게 늘지 않습니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗