저널
엔지니어링2026-03-11 게시·8분 읽기

7B 모델을 폰에 욱여넣기: 양자화 실전 가이드

Q4_K_M, AWQ, GPTQ, SmoothQuant — RAM 4GB, 전력 4W 예산에서 진짜로 중요한 건 무엇인가.

모바일에선 양자화가 전부다

모바일의 병목은 FLOPs가 아니라 바이트다. fp16의 7B 모델은 14GB. 폰의 총 RAM은 4~8GB이고, AI 워크로드에 현실적으로 빌릴 수 있는 건 1.5~3GB — 그 이상이면 OS가 포그라운드 앱을 스왑하기 시작한다. 공격적인 양자화 없이는 산수가 안 맞는다.

실제로 내놓는 것

  • Q4_K_M (k-quants, 그룹 혼합) — 일반 LLM 워크로드용. 4비트 이하에서 측정한 품질/바이트가 가장 좋고, 롱테일 토큰에서 의외로 우아한 실패 모드를 보인다.
  • AWQ-int4 (활성 인식 가중치 양자화) — 코드와 수학 추론용. 활성 outlier가 중요해서 단순 RTN 양자화는 눈에 띄게 떨어진다.
  • fp16 핫 가중치 — 임베딩 테이블과 마지막 lm_head 투영에 남긴다. 전체 가중치의 작은 부분이지만 체감 품질 기여가 불균형하게 크다.
  • int8 K/V 캐시 — 토큰별 스케일을 곁들여 캐시 예산을 잡으면서도 int4 KV의 재앙적 손실을 피한다.
  • 디스크 컨테이너로 GGUF — 로더를 새로 짜지 않고 양자화 스킴을 갈아끼울 수 있다.

퍼플렉시티는 옳은 지표가 아니다

사용자는 next-token 크로스엔트로피를 신경 쓰지 않는다. 요약이 정확한지, 번역이 자연스러운지, 커밋 메시지가 변경을 잘 설명하는지를 본다. 우리는 사내 작은 eval을 만들어 실제 회의 전사, 실제 메뉴 번역, 실제 커밋 diff에서 끝단 과제 품질을 채점한다. 그것은 퍼플렉시티와 약 18%의 비율로 불일치한다. 어떤 양자화 방식은 0.3비트의 퍼플렉시티를 잃고도 요약 품질에선 4점을 이긴다 — 실패 모드가 "다음 토큰이 미세하게 나빠짐"에서 "엇나가는 횟수가 줄어듦"으로 옮겨가기 때문이다.

의외였던 것

  • 어떤 층에선 그룹 크기가 비트 폭보다 더 효과적이다. FFN의 그룹 크기를 128에서 64로 내리는 게, 어텐션을 4에서 5비트로 올리는 것보다 품질을 더 살렸다.
  • outlier는 군집한다. 모든 트랜스포머 블록에서 소수 채널이 큰 활성 크기를 떠받친다. 이들을 고정밀 분기(SmoothQuant식, 또는 채널별 스케일)로 처리하는 게 전체 비트 폭을 올리는 것보다 효율적이다.
  • 캘리브레이션 데이터는 지렛대다. 실제 제품 워크로드에서 뽑은 256개 샘플이, C4에서 뽑은 8K 샘플을 매번 이긴다.

결론

논문으로 양자화 방식을 고르지 마라. eval로 골라라 — eval은 제품 그 자체처럼 생겨야 한다.

최신 소식 받아보기

새 글이 게시되면 알림을 보내드립니다.

구독