용어집

혼합 정밀도

혼합 정밀도 훈련으로 딥러닝 효율을 높이세요! 정확도는 그대로 유지하면서 더 빠른 속도, 메모리 사용량 감소, 에너지 절약을 달성하세요.

YOLO 모델을 Ultralytics HUB로 간단히
훈련

자세히 알아보기

혼합 정밀도 훈련은 딥러닝에서 모델 성능을 크게 저하시키지 않으면서 계산을 가속화하고 메모리 요구량을 줄이기 위해 사용되는 기술입니다. 주로 16비트 부동 소수점(FP16 또는 반정도)과 32비트 부동 소수점(FP32 또는 단정도) 등 다양한 수치 정밀도 형식을 훈련과 추론 중에 모델의 여러 부분에 전략적으로 사용함으로써 이를 달성합니다. 이 접근 방식은 낮은 정밀도의 속도 및 메모리 효율과 높은 정밀도가 제공하는 수치 안정성 및 정확성의 균형을 맞추는 방식입니다.

수치 정밀도 이해

딥러닝 모델은 일반적으로 가중치, 활성화, 그라데이션을 저장하기 위해 IEEE 754 표준 단정밀도 부동소수점 형식(FP32) 을 사용합니다. FP32는 넓은 동적 범위와 정밀도를 제공하여 복잡한 계산에 강력합니다. 하지만 FP32 연산에는 상당한 연산 능력과 메모리 대역폭이 필요합니다. FP16과 같은 더 낮은 정밀도 형식은 16비트만 사용하므로 메모리 사용 공간을 절반으로 줄이고 NVIDIA Tensor 코어가 탑재된 최신 GPU와 같은 호환 하드웨어에서 훨씬 빠른 계산이 가능한 경우가 많습니다.

혼합 정밀도 작동 방식

혼합 정밀도 훈련은 FP16과 FP32를 지능적으로 결합합니다. 핵심 아이디어는 모델 레이어 내에서 컨볼루션 및 행렬 곱셈과 같은 계산 집약적인 연산을 더 빠른 FP16 형식을 사용하여 수행하는 것입니다. 그러나 특정 연산은 FP16의 감소된 범위와 정밀도에 민감합니다. 모델의 안정성과 정확성을 유지하기 위해 손실 계산기울기 업데이트와 같은 훈련 프로세스의 중요한 부분은 보다 강력한 FP32 형식으로 유지되는 경우가 많습니다. 동적 손실 스케일링과 같은 기술은 그라데이션이 너무 작거나 너무 커져 FP16으로 표현하기 어려운 수치 언더플로 또는 오버플로 문제를 방지하기 위해 사용됩니다. PyTorch (자동 혼합 정밀도 - AMP를 통해)TensorFlow ( tf.keras.mixed_precision API를 통해 ) 같은 프레임워크는 혼합 정밀도 훈련 구현을 위한 자동화된 지원을 제공합니다.

혼합 정밀도의 이점

혼합 정밀도를 구현하면 몇 가지 주요 이점이 있습니다:

  • 더 빠른 훈련: 지원되는 하드웨어에서 FP16 작동 속도가 훨씬 빨라져 교육 시간이 단축됩니다.
  • 메모리 사용량 감소: 모델 가중치와 활성화를 FP16에 저장하면 메모리 요구량이 절반으로 줄어들어 더 큰 모델이나 배치 크기를 늘릴 수 있으므로 훈련 역학이 향상될 수 있습니다.
  • 에너지 효율성: 계산 속도가 빨라지고 데이터 이동이 줄어들어 학습 및 추론 시 전력 소비가 감소합니다.
  • 정확도 유지: 손실 스케일링과 같은 기술을 올바르게 구현하면 혼합 정밀도는 일반적으로 전체 FP32 훈련과 비슷한 정확도를 달성할 수 있습니다. 훈련 최적화에 대한 자세한 내용은 이 모델 훈련 팁을 참조하세요.

실제 애플리케이션

혼합 정밀도는 다양한 AI 영역에서 널리 사용됩니다:

  1. 컴퓨터 비전: 다음을 포함한 최첨단 객체 감지 모델 Ultralytics YOLO 모델과 같은 YOLOv8YOLO11과 같은 모델은 훈련 중에 혼합 정밀도를 활용하는 경우가 많습니다. 이를 통해 더 빠르게 훈련하고 COCO 또는 Objects365와 같은 대규모 데이터 세트를 처리할 수 있어 궁극적으로 클라우드 서버부터 NVIDIA Jetson과 같은 엣지 디바이스에 이르는 다양한 플랫폼에 효율적으로 배포할 수 있습니다.
  2. 자연어 처리(NLP): GPT-3BERT와 같은 대규모 대규모 언어 모델(LLM)을 훈련하는 것은 계산 집약적입니다. 혼합 정밀도 훈련은 메모리 및 컴퓨팅 요구 사항을 관리하는 데 매우 중요하므로 텍스트 생성, 기계 번역, 감정 분석과 같은 작업을 위해 이러한 모델을 훈련할 수 있습니다.

고려 사항 및 관련 개념

매우 유익하지만 성공적인 혼합 정밀도 구현을 위해서는 다음과 같은 조건이 필요합니다:

  • 하드웨어 지원: 최적의 속도 향상을 위해서는 가속화된 FP16 계산을 위해 특별히 설계된 하드웨어(예: NVIDIA Volta, Turing, Ampere 또는 최신 GPU)가 필요합니다.
  • 수치 안정성: FP16의 제한된 범위와 관련된 문제를 피하려면 자동화된 프레임워크 도구와 손실 스케일링을 통해 신중한 처리가 필요합니다.
  • 프레임워크 통합: 다음과 같은 딥 러닝 프레임워크 내에서 기본 제공 지원 활용 PyTorch 또는 TensorFlow 을 활용하면 구현이 간소화됩니다.

혼합 정밀도 훈련과 모델 양자화를 구분하는 것이 중요합니다. 둘 다 낮은 정밀도를 사용하지만, 양자화는 주로 초기 훈련 후 리소스가 제한된 디바이스에 배포하기 위해 추론 속도를 최적화하고 모델 크기를 줄이기 위해 모델을 더 낮은 비트 형식(예: INT8)으로 변환하는 것이 일반적입니다. 혼합 정밀도는 FP16과 FP32를 결합하여 훈련 프로세스 자체를 가속화하는 데 중점을 둡니다.

혼합 정밀도는 딥러닝 툴킷의 표준 기술이 되어 더 크고 복잡한 모델을 더 빠르고 효율적으로 개발 및 훈련할 수 있게 해줍니다.

모두 보기