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

절반 정밀도

반정밀도(FP16)가 더 빠른 계산, 감소된 메모리 사용량 및 효율적인 모델 배포로 AI를 어떻게 가속화하는지 알아보세요.

반정밀은 컴퓨터 메모리에서 16비트를 차지하는 이진 부동소수점 컴퓨터 숫자 형식으로, 일반적으로 FP16이라고 합니다. 빠르게 진화하는 딥 러닝 분야에서 딥 러닝 분야에서 이 형식은 표준 32비트 단정도수 형식의 강력한 전통적으로 수치 계산에 사용되던 표준 32비트 단정밀도(FP32) 형식의 강력한 대안으로 사용되고 있습니다. 다음과 같은 이유로 반정밀은 각 숫자를 표현하는 데 필요한 비트 수를 줄임으로써 메모리를 크게 줄입니다. 대역폭 압박 및 스토리지 요구 사항 메모리 대역폭 압박과 스토리지 요구 사항을 크게 낮춥니다. 이러한 효율성을 통해 연구자와 엔지니어가 더 큰 규모의 신경망을 훈련하거나 하드웨어에 모델을 배포할 수 있습니다. 제한된 리소스로 더 큰 규모의 신경망을 훈련하거나 예측의 정확성을 크게 저하시키지 않고도

반정밀의 역학

IEEE 754 표준은 부동소수점의 구조를 정의합니다. 숫자의 구조를 정의하는데, FP16은 부호에 1비트, 지수에 5비트, 분수(맨티사)에 10비트를 할당합니다. 이 간결한 표현은 지수에 8비트, 분수에 23비트를 사용하는 FP32와 대조를 이룹니다. FP16을 사용하면 FP16 사용의 주요 장점은 컴퓨터 비전 및 기타 AI 작업의 가장 큰 장점은 수학적 연산의 가속화입니다. 다음과 같은 최신 하드웨어 가속기는 NVIDIA Tensor 코어는 특별히 설계되었습니다. 반정밀 행렬 곱셈을 단정밀 연산보다 훨씬 빠른 속도로 수행하도록 특별히 설계되었습니다.

그러나 비트 수가 줄어든다는 것은 동적 범위가 작아지고 정밀도가 낮아진다는 것을 의미합니다. 이는 잠재적으로 다음과 같은 다음과 같은 수치 불안정성이 발생할 수 있습니다. 사라지는 그라데이션, 숫자가 너무 작아져서 컴퓨터가 0과 뚜렷하게 표현할 수 없는 컴퓨터가 0과 뚜렷하게 구분할 수 없을 정도로 작아집니다. 이를 완화하기 위해 개발자는 종종 혼합 정밀도 전략을 사용하는데, 이는 동적으로 반정밀의 속도를 활용하면서 안정성을 유지하기 위해 훈련 중에 FP16과 FP32 사이를 동적으로 전환합니다.

AI의 실제 적용 사례

반정밀도는 최신 AI 워크플로우, 특히 높은 처리량이나 짧은 지연 시간이 필요합니다.

  1. 엣지 AI 배포: 드론, 카메라 또는 모바일과 같은 드론, 스마트 카메라 또는 모바일과 같은 엣지 AI 디바이스에 모델을 배포할 때 휴대폰과 같은 엣지 AI 디바이스에 모델을 배포할 때는 메모리와 배터리 수명이 중요한 제약 조건입니다. 다음과 같은 모델을 YOLO11 와 같은 모델을 FP16으로 변환하면 모델 크기가 약 50% 감소하여 다음과 같은 임베디드 시스템의 제한된 RAM에 맞출 수 있습니다. NVIDIA 젯슨 또는 라즈베리 파이. 이를 통해 추론 지연 시간을 추론 지연 시간을 단축하여 자율 주행과 같은 애플리케이션에서 실시간 실시간 응답을 가능하게 합니다.
  2. 대규모 모델 훈련: 다음과 같은 대규모 아키텍처 학습 대규모 언어 모델(LLM) 또는 파운데이션 비전 모델과 같은 대규모 아키텍처를 훈련하려면 테라바이트 단위의 데이터를 처리해야 합니다. FP16을 활용하면 데이터 센터에서 처리할 수 있는 배치 크기를 배치 크기를 두 배로 GPU 메모리, 획기적으로 단축 훈련 주기를 획기적으로 단축할 수 있습니다. 이러한 효율성은 곧 출시될 YOLO와 같은 차세대 아키텍처를 빠르게 실험하고 반복하는 데 매우 중요합니다.

Ultralytics 반정확도 구현하기

다음과 같은 프레임워크 PyTorch 및 다음과 같은 라이브러리 ultralytics 를 사용하면 반정확도를 간단하게 활용할 수 있습니다. 다음 예는 다음과 같은 방법을 보여줍니다. YOLO11 모델을 TensorRT 형식을 사용하여 추론 속도를 최적화하는 NVIDIA 속도를 최적화하기 위한 일반적인 관행입니다.

from ultralytics import YOLO

# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TensorRT engine with half-precision enabled
# The 'half=True' argument ensures weights are converted to FP16
model.export(format="engine", half=True)

관련 용어 구분하기

반정확도를 이해하려면 용어집에 나와 있는 관련 최적화 기법과 구분해야 합니다:

  • 반정확도 대 혼합 정밀도: 반정밀은 특히 16비트 데이터 포맷을 의미하지만, 혼합 정밀도는 다음과 같은 훈련 기법입니다. 무거운 계산을 위한 FP16과 민감한 축적(예: 가중치 업데이트)을 위한 FP32를 결합하여 정보 손실을 방지하는 훈련 기법입니다. 정보 손실을 방지하기 위해
  • 반정밀 대 모델 양자화: 반정밀은 부동 소수점 표현을 유지하며 비트 폭만 줄입니다. 양자화는 일반적으로 는 가중치를 INT8(8비트 정수)과 같은 정수 형식으로 변환하여 훨씬 더 빠른 압축과 속도를 제공합니다. 하지만 다음과 같은 신중한 보정 기술이 필요합니다. 양자화 인식 훈련(QAT) 과 같은 신중한 보정 기술이 필요합니다.
  • 반정밀도 대 Bfloat16: Bfloat16(브레인 부동 소수점 )은 대안입니다. 16비트 형식입니다. It FP32의 8비트 지수를 유지하여 동적 범위를 유지하지만 분수에서 정밀도를 희생합니다. 일반적으로 손실 스케일링이 필요 없이 표준 IEEE FP16보다 훈련에 더 안정적입니다.

이러한 형식을 숙지함으로써 개발자는 모델 배포 전략에 최적화된 모델 배포 전략이 프로젝트의 특정 하드웨어 및 성능 요구 사항에 프로젝트의 특정 하드웨어 및 성능 요구 사항에 최적화할 수 있습니다.

Ultralytics 커뮤니티 가입

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

지금 참여하기