반정밀도(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 워크플로우, 특히 높은 처리량이나 짧은 지연 시간이 필요합니다.
다음과 같은 프레임워크 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)
반정확도를 이해하려면 용어집에 나와 있는 관련 최적화 기법과 구분해야 합니다:
이러한 형식을 숙지함으로써 개발자는 모델 배포 전략에 최적화된 모델 배포 전략이 프로젝트의 특정 하드웨어 및 성능 요구 사항에 프로젝트의 특정 하드웨어 및 성능 요구 사항에 최적화할 수 있습니다.