욜로 비전 선전
선전
지금 참여하기
용어집

혼합 정밀도

혼합 정밀도 학습으로 딥러닝 효율성을 향상시키세요! 정확도를 희생하지 않고 더 빠른 속도, 감소된 메모리 사용량 및 에너지 절약을 달성하세요.

혼합 정밀도는 모델 훈련 속도를 높이고 메모리 소비를 줄이기 위해 딥러닝에서 사용되는 기술입니다. 여기에는 계산 중에 16비트 부동 소수점(FP16)과 같은 저정밀 숫자 형식과 32비트 부동 소수점(FP32)과 같은 고정밀 형식을 함께 사용하는 것이 포함됩니다. 가중치 곱셈과 같은 모델의 특정 부분에 저정밀 숫자를 전략적으로 사용하고 가중치 업데이트와 같은 중요한 구성 요소를 고정밀로 유지함으로써 혼합 정밀도 훈련은 모델 정확도의 실질적인 손실 없이 최신 GPU에서 성능을 크게 향상시킬 수 있습니다.

혼합 정밀도 작동 방식

혼합 정밀도의 핵심 아이디어는 낮은 정밀도 데이터 유형의 속도 및 메모리 효율성을 활용하는 것입니다. 최신 하드웨어, 특히 Tensor Core가 있는 NVIDIA GPU는 32비트 숫자보다 16비트 숫자에 대한 연산을 훨씬 빠르게 수행할 수 있습니다. 이 프로세스에는 일반적으로 세 가지 주요 단계가 포함됩니다.

  1. 낮은 정밀도로 캐스팅(Casting to Lower Precision): 모델의 대부분의 연산, 특히 계산 집약적인 행렬 곱셈 및 컨볼루션반정밀도(FP16) 연산을 사용하여 수행됩니다. 이는 메모리 공간을 줄이고 계산 속도를 높입니다.
  2. 가중치 마스터 사본 유지: 모델 정확도와 안정성을 유지하기 위해 모델 가중치의 마스터 사본이 표준 32비트 부동 소수점(FP32) 형식으로 유지됩니다. 이 마스터 사본은 학습 프로세스 중에 기울기를 누적하고 가중치를 업데이트하는 데 사용됩니다.
  3. 손실 스케일링: 수치 언더플로(FP16으로 변환될 때 작은 기울기 값이 0이 되는 현상)를 방지하기 위해 손실 스케일링이라는 기술이 사용됩니다. 이 기술은 역전파 전에 손실에 스케일링 계수를 곱하여 기울기 값을 FP16에 대해 표현 가능한 범위 내로 유지합니다. 가중치가 업데이트되기 전에 기울기는 다시 축소됩니다.

PyTorchTensorFlow와 같은 딥러닝 프레임워크는 자동 혼합 정밀도를 기본적으로 지원하므로 쉽게 구현할 수 있습니다.

응용 분야 및 예시

혼합 정밀도는 효율성이 가장 중요한 대규모 머신러닝(ML) 모델 훈련에 널리 채택되고 있습니다.

  • 대규모 언어 모델(LLM) 학습: GPT-3BERT와 같은 모델은 수십억 개의 파라미터를 가지고 있습니다. FP32만 사용하여 학습하려면 엄청난 양의 GPU 메모리와 시간이 필요합니다. 혼합 정밀도는 메모리 요구 사항을 크게 줄이고 계산 속도를 높여 이러한 기반 모델(foundation models)의 학습을 가능하게 합니다. 이를 통해 연구자들은 더 빠르게 반복하고 더욱 강력한 언어 모델을 구축할 수 있습니다.
  • 컴퓨터 비전 모델 가속화: 컴퓨터 비전 (CV)에서 혼합 정밀도는 합성곱 신경망 (CNN)Vision Transformers (ViT)와 같은 복잡한 모델의 학습 속도를 향상시킵니다. 객체 감지이미지 분할과 같은 작업의 경우, 최신 Ultralytics YOLO11을 포함한 Ultralytics YOLO 모델은 더 빠른 수렴을 위해 혼합 정밀도를 활용합니다. 이는 하이퍼파라미터 튜닝Ultralytics HUB와 같은 플랫폼 내에서의 빠른 개발에 특히 유용합니다. 또한, 더 빠른 학습은 COCO와 같은 대규모 데이터 세트에 대한 더 빠른 실험을 용이하게 합니다. 혼합 정밀도는 추론 중에 사용하여 모델 배포를 가속화할 수도 있으며, 특히 낮은 정밀도에 대해 고도로 최적화된 TensorRT와 같은 형식으로 내보낼 때 유용합니다.

관련 개념

혼합 정밀도는 딥러닝 모델을 보다 효율적으로 만들기 위해 사용되는 여러 최적화 기술 중 하나입니다. 관련 개념과 구별하는 것이 중요합니다.

  • 모델 양자화(Quantization): 양자화는 부동 소수점 숫자(예: FP32 또는 FP16)를 INT8과 같은 더 낮은 비트 정수 형식으로 변환하여 모델 크기와 계산 비용을 줄입니다. 혼합 정밀도는 학습 중에 다양한 부동 소수점 형식을 사용하는 반면, 양자화는 일반적으로 학습 후(사후 학습 양자화) 또는 학습 중(양자화 인식 학습)에 추론을 위해, 특히 엣지 장치에서 최적화하기 위해 적용됩니다.
  • 모델 가지치기: 가지치기는 신경망에서 중복되거나 중요하지 않은 연결(가중치)을 제거하는 기술입니다. 가중치의 수치 형식을 변경하는 혼합 정밀도와 달리 가지치기는 모델의 크기와 복잡성을 줄이기 위해 모델 아키텍처 자체를 변경합니다. 이러한 기술을 함께 사용하여 훨씬 더 큰 성능 향상을 달성할 수 있습니다.

Ultralytics 커뮤니티에 참여하세요

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기
클립보드에 링크가 복사되었습니다.