용어집

혼합 정밀도

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

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

혼합 정밀도 작동 방식

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

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

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

애플리케이션 및 예시

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

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

관련 개념

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

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

울트라 애널리틱스 커뮤니티 가입

AI의 미래와 함께하세요. 글로벌 혁신가들과 연결, 협업, 성장하기

지금 가입하기
링크가 클립보드에 복사됨