피드로 돌아가기
44BITS44BITS
AI/ML

Train High, Infer Low - 머신러닝 학습과 서빙의 FP32, FP16, BF16, INT8 정밀도 선택

머신러닝 모델의 학습과 서빙 단계에서 수치 정밀도(FP32, BF16, FP16, INT8)를 전략적으로 선택하여 메모리 50~75% 절감과 추론 속도 2~4배 향상 달성

seapy2026년 1월 6일10intermediate

Context

머신러닝 모델을 프로덕션에 배포할 때 학습 정밀도와 서빙 정밀도를 동일하게 유지해야 한다는 오해가 존재한다. 정밀도 선택은 추론 속도, 메모리 사용량, 정확도의 트레이드오프를 직접 좌우하므로 전략적 선택이 필수적이다.

Technical Solution

  • FP32(±3.4×10³⁸)로 학습한 모델을 BF16(±3.4×10³⁸, FP32와 동일 범위)으로 추론: 표현 범위는 유지하면서 메모리 50% 절감
  • BF16은 지수 8비트를 유지하여 FP16의 오버플로우 위험(범위 ±65,504) 제거: LLM 학습/서빙에 가장 안정적
  • FP16은 정밀도 3~4자리로 컴퓨터 비전 모델에서만 선택적 사용: 이미지 정규화 범위(0~255) 내에서 오버플로우 위험 최소화
  • INT8 양자화(QAT)는 모바일/엣지 디바이스 배포 시만 적용: 메모리 75% 절감 대신 정확도 1~5% 손실 감수
  • Mixed Precision Training(AMP)으로 연산별 정밀도 자동 선택: MatMul/Conv는 BF16, Softmax/LayerNorm/Loss는 FP32로 수치 안정성 확보

Impact

  • FP16 추론 시 FP32 대비 최대 2배 속도 향상
  • INT8 추론 시 FP32 대비 최대 4배 속도 향상
  • 정밀도 감소에 따른 정확도 손실: 0.1%~5% 범위
  • 메모리 사용량: BF16/FP16으로 50% 감소, INT8로 75% 감소

Key Takeaway

"Train High, Infer Low" 전략으로 학습은 높은 정밀도(FP32)에서, 추론은 낮은 정밀도(BF16/FP16/INT8)에서 수행하되, 정밀도 선택은 하드웨어 지원(Ampere+ GPU, TPU, 최신 CPU 아키텍처), 타겟 배포 환경, 정확도 요구사항을 고려하여 각 모델별로 직접 테스트하며 최적화 지점을 결정해야 한다.


LLM 서빙 환경에서 FP32 학습 모델에 대해 BF16 Mixed Precision 추론을 적용하면 메모리 50% 절감과 추론 속도 2배 향상을 동시에 달성할 수 있다. 컴퓨터 비전 모델은 정규화 범위가 좁으므로 FP16 추론을 선택할 수 있으며, 모바일 배포는 QAT를 통한 INT8 양자화로 메모리를 75% 절감할 수 있으나 1~5% 정확도 손실을 감수해야 한다. 각 단계에서 정확도를 측정하며 비즈니스 요구사항에 맞는 최적점을 찾아야 한다.

원문 읽기
Train High, Infer Low - 머신러닝 학습과 서빙의 FP32, FP16, BF16, INT8 정밀도 선택 | Devpick