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

혼합 정밀도

혼합 정밀도가 Ultralytics 같은 모델의 훈련 속도를 가속화하고 메모리 사용량을 줄이는 방법을 알아보세요. 더 빠른 AI 인사이트를 위한 FP16 및 FP32의 이점을 살펴보세요.

혼합 정밀도는 딥러닝 모델 훈련 속도를 높이고 메모리 소비를 줄이는 데 사용되는 모델 최적화의 핵심 기술입니다. 이 방법은 일반적으로 16비트와 32비트 부동소수점 형식 같은 서로 다른 수치 형식을 전략적으로 결합함으로써 머신러닝 알고리즘이 모델의 최종 정확도를 저하시키지 않으면서도 계산을 더 빠르게 수행할 수 있게 합니다. 특히 대규모 데이터셋에서 YOLO26 아키텍처 훈련과 같은 자원 집약적 작업에 있어 현대 AI 개발의 표준 관행으로 자리 잡았습니다.

혼합 정밀도 작동 방식

전통적인 딥러닝 워크플로우에서 모델은 일반적으로 단정밀도 부동소수점 형식(FP32)을 사용하여 계산을 수행합니다. FP32의 각 숫자는 32비트의 메모리를 필요로 합니다. 매우 정밀하지만, 이 형식은 계산 비용이 높고 메모리를 많이 소모할 수 있습니다.

혼합 정밀도는 16비트만 사용하는 반정밀도 (FP16)의 사용을 도입합니다. 그러나 FP16만 사용하면 동적 범위가 좁아져 수치적 불안정성이 발생할 수 있습니다. 이를 해결하기 위해 혼합 정밀도 방식은 안정성을 위해 모델 가중치의 "마스터 사본"을 FP32로 유지하면서, 컨볼루션이나 행렬 곱셈과 같은 수학적 연산의 중량 작업을 FP16으로 수행합니다.

이 과정은 일반적으로 세 가지 핵심 단계를 포함합니다:

  1. 캐스팅: 모델의 입력값과 활성화값을 FP16으로 변환하여 NVIDIA Tensor 같은 호환 하드웨어에서 실행 속도를 높입니다.
  2. 손실 스케일링: 손실 함수 값을 증폭시켜 "언더플로우"를 방지합니다. 이는 FP16에서 작은 기울기 업데이트가 0이 되는 현상입니다.
  3. 누적: FP16으로 산술 연산을 수행하지만, 마스터 가중치를 업데이트하기 전에 필요한 정보를 보존하기 위해 결과를 FP32로 누적합니다.

인공지능 훈련의 이점

혼합 정밀도 채택은 계산 자원을효과적으로 활용하는 개발자와 연구자에게 상당한 이점을 제공합니다:

  • 더 빠른 훈련 속도: FP16 연산은 메모리 대역폭 요구량이 적으며 현대 GPU에서 더 빠르게 처리됩니다. 이로 인해 에포크당 소요 시간이 상당히 단축될 수 있습니다.
  • 메모리 사용량 감소: FP16 텐서는 FP32의 절반만 메모리를 차지하므로 개발자는 배치 크기를 실질적으로 두 배로 늘릴 수 있습니다. 더 큰 배치 크기는 더 안정적인 기울기 추정과 더 빠른 수렴을 가져오는 경우가 많습니다.
  • 에너지 효율성: 계산 부하 감소는 에너지 소비 절감으로 이어지며, 이는 대규모 클라우드 훈련 작업에 매우 중요합니다.

실제 애플리케이션

혼합 정밀도는 복잡한 모델과 대규모 데이터 세트를 효율적으로 처리하기 위해 다양한 산업 분야에서 활용됩니다.

자율 주행

자율주행 차량 개발 과정에서 엔지니어들은 수백만 개의 고해상도 영상 프레임으로 물체 탐지 모델을 훈련시켜야 합니다. 혼합 정밀도 활용을 통해 YOLO26과같은 최첨단 모델을 효율적으로 훈련할 수 있습니다. 메모리 사용량 감소로 인해 더 높은 해상도의 입력 데이터를 처리할 수 있게 되며, 이는 원거리에서 교통 표지판이나 보행자 같은 작은 물체를 탐지하는 데 매우 중요합니다.

의료 영상 분석

의료 영상 분석은 종종 MRI 또는 CT 스캔에서 얻은 3D 체적 데이터를 포함하며, 이는 매우 많은 메모리를 소모합니다. 이러한 데이터에 대해 완전한 FP32 정밀도로 분할 모델을 훈련시키면 종종 "메모리 부족"(OOM) 오류가 발생합니다. 혼합 정밀도는 연구자들이 이러한 무거운 모델을 GPU 수용할 수 있게 하여, 의사가 질병을 더 일찍 진단하는 데 도움을 줄 수 있는 AI 개발을 용이하게 합니다.

Ultralytics 혼합 정밀도 구현하기

다음과 같은 최신 프레임워크 PyTorch 일반적으로 혼합 정밀도의 복잡성을 자동 혼합 정밀도(AMP)라는 기능을 통해 자동으로 처리합니다. ultralytics 패키지는 최적의 성능을 보장하기 위해 훈련 중 기본적으로 AMP를 활성화합니다.

YOLO26 훈련을 시작하는 간결한 예시입니다. 혼합 정밀도는 기본적으로 활성화되어 있습니다 (제어 가능: amp 논증):

from ultralytics import YOLO

# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")

# Train the model on the COCO8 dataset
# amp=True is the default setting for mixed precision training
results = model.train(data="coco8.yaml", epochs=5, imgsz=640, amp=True)

혼합 정밀도 대 관련 개념

혼합 정밀도를 용어집의 유사 용어와 구분하여 혼란을 피하는 것이 도움이 됩니다:

  • 모델 양자화: 혼합 정밀도는 훈련 중 낮은 정밀도의 부동 소수점 숫자(FP16)를 사용하는 반면, 양자화는 일반적으로 배포를 위해 훈련 후 가중치를 정수(INT8 등)로 변환합니다. 양자화는 주로 에지 디바이스에서의 추론 지연 시간에 초점을 맞추는 반면, 혼합 정밀도는 훈련 속도와 안정성에 중점을 둡니다.
  • 반정밀도: 이는 특히 FP16 데이터 형식 자체를 가리킵니다. 혼합 정밀도는 FP16과 FP32를 함께 사용하는 기법입니다. "혼합"된 FP32 마스터 사본 없이 순수 반정밀도만 사용할 경우, 수치 오차로 인해 모델이 수렴에 실패하는 경우가 종종 발생합니다.

결론

혼합 정밀도는 신경망 훈련 방식을 혁신적으로 변화시켰으며, 오늘날 우리가 목격하는 거대한 기초 모델과 비전 시스템의 핵심 기반 기술로 작용하고 있습니다. 수학적 정밀도에 대한 요구와 하드웨어 속도 및 메모리 제약 사이의 균형을 통해, 개발자들이 더 빠르게 반복 작업을 수행하고 더 뛰어난 AI 솔루션을 구축할 수 있도록 합니다.

데이터셋을 관리하고 최적화된 모델을 원활하게 훈련하고자 하는 분들을 위해 Ultralytics 이러한 현대적 최적화 기법을 자동으로 활용하는 포괄적인 환경을 제공합니다.

Ultralytics 커뮤니티 가입

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

지금 참여하기