AI VIDEO BRIEFING
모델 최적화 4가지 - 양자화, 프루닝, 지식 증류, 엔지니어링 기법 비교
학습한 신경망을 추론 단계에서 더 빠르고 가볍게 만드는 네 가지 방법 - 양자화, 프루닝, 지식 증류, 엔지니어링 최적화의 원리와 장단점을 정리했다.

핵심 메시지
쉽게 이해하기
모델을 학습하거나 파인튜닝해 배포하려는데 지연(latency)이 너무 느릴 때, 추론을 빠르게 만드는 방법이 네 가지 있다. 양자화, 프루닝, 지식 증류, 그리고 엔지니어링 최적화다. 신경망은 파라미터가 수백만~수십억 개라 용량이 크고, 기본적으로 각 파라미터가 32비트(FP32)로 저장된다.
양자화는 파라미터의 정밀도를 낮춰 공간을 줄인다. 예컨대 int8로 저장하면 각 값이 0~255 정수로 표현돼 FP32 대비 4배 공간을 절약한다. 대표 기법인 제로포인트 양자화는 원본의 0을 양자화 후에도 0으로 매핑한다. 가중치만 양자화하면(실행 시 FP32로 되돌림) 속도는 그대로지만 모바일 등에서 용량이 4배 작아진다. 반면 활성값까지 int8로 계산하면 대부분 하드웨어에서 더 빨라지는데, 추론 시 입력을 모르므로 스케일 계수를 정할 보정(calibration) 세트가 필요하다. 보정이 부실하면 범위를 벗어난 값이 잘리는 클리핑이 생긴다. 하드웨어도 중요해, 엔비디아 A10은 텐서 코어 덕에 int8이 FP32보다 훨씬 빠르지만 구형 GPU는 그렇지 않다. 또 60억 파라미터가 넘는 대형 LLM에서는 이상치(outlier) 때문에 양자화가 깨질 수 있어, LLM.int8 논문은 이상치를 따로 처리하는 혼합 분해 방식을 제안했다.
프루닝은 신경망의 연결 일부를 제거해 희소 네트워크를 만드는 것이다. 가장 단순한 크기 기반 프루닝은 각 계층에서 절댓값이 가장 작은 하위 x%의 가중치를 0으로 만든다. 0에 가까운 가중치가 가장 덜 중요하다는 가정이다. 정확도 저하를 만회하려 제거한 가중치를 0으로 고정한 채 몇 번 더 재학습하기도 한다. 다만 값을 0으로 바꾸는 것만으로는 용량·속도 이득이 없다. 0도 저장·계산에 같은 자원을 쓰기 때문이다. 그래서 0을 건너뛰는 희소 행렬 연산 엔진이 필요하다. 구조적 프루닝의 하나인 2:4 희소 패턴은 연속된 값 4개 중 2개만 0이 아니게 강제해 압축 저장이 가능하고, 엔비디아 텐서 코어가 이를 효율적으로 실행한다.
지식 증류는 먼저 교사(teacher) 네트워크를 학습한 뒤, 학생(student) 네트워크가 교사의 출력을 예측하도록 학습시키는 방법이다. 정답 라벨은 인스턴스당 하나뿐이지만 교사의 출력은 모든 라벨에 대한 확률 분포를 주므로 훨씬 많은 정보를 담아, 학생이 더 쉽고 빠르게 배운다. 가장 큰 장점은 학생의 구조를 교사와 다르게 바꿀 수 있다는 점이다. 교사가 트랜스포머 12층이어도 학생은 6층이나 2층으로 줄일 수 있어 속도 이득 잠재력이 가장 크다. 단점은 설정이 어렵고 비용이 크다는 것으로, 교사 학습에 드는 연산의 5~10% 정도가 든다. 예로 DistilBERT는 BERT-base를 40% 작게 만들면서 정확도의 97%를 유지했고, GPU 8대로 약 90시간(총 약 700 GPU시간) 학습해 RoBERTa의 약 2만4천 GPU시간과 크게 대비된다.
마지막은 엔지니어링 최적화다. CPU든 GPU든 하드웨어의 능력을 소프트웨어가 제대로 활용해야 빠르다. AVX2·AVX-512 같은 벡터 연산, 저정밀·혼합정밀 연산, 희소 커널이 그 예다. 융합 커널(fused kernel)도 있는데, 트랜스포머에서 자주 함께 쓰이는 연산들을 하나로 묶어 GPU에서 빠르게 실행한다. 플래시 어텐션은 이런 연산 융합에 더해 GPU 메모리 계층에 맞춘 타일링으로 시간을 더 줄인다. 실무에서는 학습한 모델을 배포 하드웨어에 최적화된 추론 엔진 포맷으로 변환하면 된다. 학습과 추론은 요구사항이 달라, ONNX Runtime이나 TensorFlow Lite 같은 추론 전용 라이브러리를 쓰는 편이 낫다. 결국 이 모든 기법은 개발 비용, 추론 비용, 모델 정확도 사이의 절충이다.
주요 인사이트
- 가중치 양자화는 용량만 줄이고 속도는 그대로지만, 활성값 양자화는 int8 연산이 빠른 하드웨어에서 속도까지 높인다.
- 프루닝으로 만든 0은 전용 희소 실행 엔진이 없으면 저장·계산 비용을 전혀 줄여주지 못한다.
- 지식 증류만이 모델 구조 자체를 바꿀 수 있어 다른 기법보다 속도 이득의 상한이 높다.
- 엔지니어링 최적화는 출력이 동일하므로 정확도 손실이 없고, 다른 최적화 기법들과 병행해야 한다.
- 어떤 양자화·프루닝을 쓸지는 배포할 하드웨어의 사양(예: int8 성능, 희소 커널 지원)을 보고 정해야 한다.
자주 묻는 질문
양자화하면 모델이 얼마나 작아지나요?
FP32에서 int8로 바꾸면 각 파라미터가 32비트에서 8비트가 되므로 용량이 약 4배 줄어듭니다. 다만 약간의 정확도 손실이 생길 수 있습니다.
프루닝으로 가중치를 0으로 만들면 바로 빨라지나요?
아닙니다. 0도 저장과 계산에 같은 자원을 쓰기 때문에, 0을 건너뛰는 희소 행렬 연산 엔진과 함께 써야 실제 용량·속도 이득이 생깁니다.
지식 증류의 가장 큰 장점과 단점은 무엇인가요?
장점은 학생 모델의 구조를 교사와 다르게(예: 층 수를 줄여) 만들 수 있어 속도 이득 잠재력이 가장 크다는 것입니다. 단점은 학습 데이터 구성이 까다롭고 비용이 상대적으로 크다는 점입니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗