66GB를 22GB로 줄이고도 품질을 지킨 비결: 압축이 아니라 되돌리기다

66GB를 22GB로 줄이고도 품질을 지킨 비결: 압축이 아니라 되돌리기다

⚡ 3줄 요약

  • 66GB 모델을 22GB로 줄이는 진짜 관건은 비트를 깎는 게 아니라 깎으면서 생긴 오차를 되돌리는 일이다.
  • 단순 압축(PTQ)만으론 점수 회복이 96%대에 머물지만, 원본을 교사로 삼아 다시 학습(QAD)하면 99%대까지 붙는다.
  • ’22GB’ ‘최대 4배’는 눈길을 끄는 숫자지만, 측정 조건이 공개되지 않았다 — 내 장비에서 다시 재기 전엔 판단 보류가 맞다.

양자화의 승부처는 비트를 깎는 압축이 아니라, 그때 생긴 오차를 원본 대비로 되돌리는 후처리다. 모델을 작게 만든다고 하면 대부분 “숫자를 4비트로 줄였다” 정도로 이해하고 넘어간다. 그런데 NVIDIA가 Nemotron 3.5 Lightning을 66GB에서 22GB로, 즉 3분의 1로 줄이면서 공개한 과정을 뜯어보면 진짜 어려운 대목은 압축이 아니었다. 비트를 깎는 순간 반드시 오차가 생기고, 그 오차를 어떻게 되돌리느냐가 품질을 가른다. 압축은 누구나 한다. 되돌리는 게 기술이다.

비트를 줄이는 것과 품질을 지키는 것은 다른 문제다

모델은 내부에 어마어마한 양의 숫자(가중치)를 담고 있고, 이 숫자를 몇 비트로 표현하느냐가 곧 용량이다. 16비트로 저장하던 걸 4비트로 바꾸면 산술적으로 용량이 4분의 1로 준다. 이렇게 숫자의 정밀도를 낮추는 작업이 양자화다.

이번 사례가 쓴 형식은 NVFP4, 4비트 부동소수점 형식이다. 원본은 높은 정밀도로 저장된 66GB 체크포인트였고, NVFP4로 압축한 뒤에는 22GB가 됐다. NVIDIA는 이 압축본이 정확도를 유지하면서 최대 4배 높은 처리량을 낼 수 있다고 밝혔다. 다만 이 ‘4배’가 어떤 장비, 어떤 입력 길이, 어떤 배치 크기에서 나온 숫자인지는 공개하지 않았다. 처리량이라는 값 자체가 추론 병목의 어느 구간을 재느냐에 따라 크게 달라진다는 점도 함께 봐야 한다. 이 점은 뒤에서 다시 짚는다.

단순 압축만 하면 강하게 누를수록 품질이 흔들린다

학습이 끝난 모델의 숫자만 낮은 정밀도로 바꾸는 방식을 PTQ(학습 후 양자화)라 한다. 추가 학습 없이 저장 공간과 계산량을 줄여주니 대부분의 경우엔 이걸로 충분하다. 문제는 압축 강도를 높일 때다. 이번엔 Mamba 선형 계층을 W4A16(가중치 4비트, 활성값 16비트)까지 밀어붙였는데, 8비트 형식인 FP8보다 훨씬 공격적인 압축이라 오차도 그만큼 커진다.

NVIDIA가 공개한 수치를 보면 단순 PTQ만 적용했을 때 두 체크포인트의 중앙값 점수 회복률은 각각 96.33%와 95.84%였다. 여기서 주의할 게 있다. 이 퍼센트는 “답변 품질이 96% 보장된다”는 뜻이 아니다. 원본 모델을 100으로 놓고, 평가 작업에서 압축본이 그 대비 얼마나 성능을 회복했는지를 나타내는 상대값이다.

⚠️ 퍼센트를 오해하지 말자

96.33%는 절대 품질 점수가 아니라 원본 대비 회복률이다. 4%가 빠졌다는 건 특정 작업에서 원본만큼 못 따라간다는 뜻이고, 에이전트나 코딩처럼 정밀함이 필요한 작업에선 그 4%가 체감으로 크게 다가올 수 있다.

핵심은 원본을 ‘교사’로 남겨두는 것이다

여기서 QAD(압축을 고려한 지식 증류)가 등장한다. 발상은 단순하다. 압축 전 원본 모델을 버리지 않고 교사로 계속 붙잡아 두는 것이다.

순서는 이렇다. 먼저 PTQ로 낮은 정밀도의 학생 모델을 만든다. 그다음 원본 BF16 모델은 얼려둔 채(frozen) 교사로 세우고, 학생 모델의 출력이 교사의 출력을 닮도록 다시 학습시킨다. 두 출력 분포의 차이는 로짓에 대한 KL divergence 손실로 계산하고, 학생은 이 차이가 줄어드는 방향으로 조정된다.

결정적인 장치가 하나 더 있다. 학생 모델은 학습하는 매 순전파마다 실제 추론에서 겪을 양자화 오차를 시뮬레이션한다. 즉 학습할 땐 깨끗한 숫자를 쓰다가 운영에 나가서야 압축 오차를 처음 만나는 사고를 막는 것이다. 학생은 다음 토큰만 맞히는 게 아니라, 압축된 상태에서 원본의 행동을 그대로 따라 하도록 훈련된다.

QAD를 붙이면 96%대가 99%대로 올라간다

결과는 분명하다. 단순 PTQ에서 QAD로 넘어가자 두 체크포인트 모두 원본에 훨씬 가까워졌다.

체크포인트 단순 PTQ QAD 적용 의미
A 96.33% 99.72% 중앙값 점수 회복률
B 95.84% 98.53% 중앙값 점수 회복률

A는 96.33%에서 99.72%로, B는 95.84%에서 98.53%로 올라갔다. 거의 원본과 구분이 안 되는 수준까지 붙은 셈이다. 두 체크포인트는 압축 방식이 달라 QAD 방식도 갈렸다. 최댓값으로 스케일을 잡은 쪽엔 동적 스케일 QAD를, 평균제곱오차 기반 쪽엔 고정 스케일 QAD를 썼다.

66GB 원본 모델이 22GB NVFP4 모델로 압축되는 구조와 메모리 차이
66GB 원본이 NVFP4로 22GB까지 줄어든다 — 관건은 이 과정에서 생긴 오차를 QAD로 되돌리는 것

참고로 NVIDIA가 공개한 학습 조건은 아래와 같다. 개발자가 같은 결과를 재현하려면 원본 모델과 이 추가 학습 과정이 모두 필요하다는 점을 기억하자.

항목 설정
학습률 5e-6 고정
워밍업 없음
드롭아웃 비활성화
기울기 클리핑 1.0
학습 자원 2 노드 × 8 GPU (TP=2, EP=4)

🎯 FEEDON의 선택 — 우리라면 이렇게 본다

이 사례에서 진짜 배울 건 ‘NVFP4로 3분의 1로 줄였다’는 결과가 아니라, 압축 오차를 원본 대비로 되돌리는 절차 그 자체다. 압축은 시작일 뿐이고, QAD 같은 후처리가 없으면 강하게 누를수록 품질이 새어 나간다.

다만 우리는 ’22GB’와 ‘최대 4배’를 그대로 도입 근거로 삼지 않는다. 22GB가 실제 서비스에서 필요한 전체 메모리를 뜻하는지, 4배가 내 워크로드에서도 나오는지는 공개된 조건만으로 알 수 없다. 리더보드 1위 모델을 그대로 붙였다가 청구서에 후회하는 것과 같은 함정이다. 애초에 좁은 업무라면 작은 전용 모델이 더 나은 선택일 수도 있다. 숫자에 홀리지 말고 내 장비에서 다시 재는 게 순서다.

도입 전 체크리스트 — 최댓값이 아니라 반복되는 값을 봐라

  • 원본과 압축본에 같은 입력을 넣고 대표 업무 답변을 나란히 비교한다
  • PTQ 결과와 QAD 결과를 같은 평가 기준으로 따로 기록한다
  • 실제 장비에서 처리량과 지연 시간을 직접 측정한다 (공개된 ‘4배’는 참고값)
  • 22GB 외에 실행에 필요한 추가 메모리와 운영 구성을 별도로 점검한다
  • 에이전트·코딩 작업이라면 중앙값 회복률만 믿지 말고 실제 업무 평가를 붙인다
  • 최대 수치가 아니라 내 조건에서 반복되는 결과로 결정한다

출처: NVIDIA Developer Blog 「Developing Nemotron 3.5 Lightning NVFP4 with QAD Using NVIDIA Model Optimizer」 · 수치는 공개된 측정 조건 기준이며 실제 환경에서 달라질 수 있음

이 글은 FEEDON이 공개 1차 자료를 바탕으로 작성·검증했습니다.

✍️ FEEDON

FEEDON은 AI와 개발 도구의 변화를 1차 자료에서 직접 읽고 검증해 전한다. 연구 블로그·릴리스 노트·API 문서에서 시작해, 실무에 영향이 큰 변화만 골라 다룬다. "모델이 무엇을 할 수 있나"보다 "그게 당신의 비용과 워크플로에 무슨 뜻인가"를 먼저 따진다. 본문의 모든 수치는 공개 원문과 대조한 뒤 발행한다.