추론 엔진
추론 엔진이 실시간 예측을 제공하고, 모델을 최적화하며, 교차 플랫폼 배포를 가능하게 함으로써 AI에 어떻게 전력을 공급하는지 알아보세요.
추론 엔진은 학습된 머신 러닝 모델을 실행하도록 설계된 특수 소프트웨어 구성 요소입니다.
머신 러닝 모델을 실행하고
새로운 데이터로부터 예측을 생성하도록 설계된 전문 소프트웨어 구성 요소입니다. 대규모 데이터 세트에서 패턴을 학습하는 데 중점을 두는 학습 프레임워크와 달리, 추론 엔진은
추론 엔진은 순전히 운영 단계에 최적화되어 있습니다.
모델 배포. 추론 엔진의 주요 목표는 이러한
모델을 최대한 효율적으로 실행하여
추론 대기 시간을 최소화하고 처리량을 최대화하여
강력한 클라우드 서버든 리소스의 제약이 있는
에지 AI 디바이스 등 대상 하드웨어의 처리량을 최소화하는 것입니다.
추론 엔진의 작동 방식
학습된 모델에서 배포 준비된 애플리케이션으로 전환하는 과정에는 일반적으로 추론 엔진이
런타임 환경으로 작동합니다. 모델이 다음과 같은 프레임워크에서 학습되면
PyTorch 또는
TensorFlow와 같이 학습에는 유용하지만 예측에는 불필요한 데이터
구조가 포함되어 있어 학습에는 유용하지만 예측에는 불필요한 경우가 많습니다. 추론 엔진은 이러한 오버헤드를 제거하고
계산 그래프에 엄격한 최적화를 적용합니다.
주요 최적화 기술:
-
레이어 퓨전: 엔진은 여러 레이어(예: 컨볼루션, 일괄 정규화 및
활성화)를 단일 작업으로 결합합니다. 이렇게 하면 메모리 액세스가 줄어들고 실행 속도가 빨라집니다.
-
정밀도 감소: 모델 정량화를 통해
모델 양자화를 통해 엔진은
가중치를 고정밀 32비트 부동 소수점 형식(FP32)에서 INT8 또는 FP16과 같은 저정밀 형식으로 변환합니다. 이렇게 하면
모델 크기와 메모리 대역폭 사용량을 크게 줄이면서도
정확도.
-
커널 자동 튜닝: 다음과 같은 엔진
NVIDIA TensorRT 와 같은 엔진은 특정 분야에 가장 효율적인
알고리즘과 하드웨어 커널을 자동으로 선택합니다.
GPU 를 자동으로 선택합니다.
-
메모리 관리: 효율적인 메모리 재사용 전략은 런타임 중 메모리 할당 및
런타임 중에 메모리를 할당하고 할당 해제하는 오버헤드를 최소화하여
실시간 추론에 중요합니다.
일반적인 추론 엔진
다양한 엔진은 특정 하드웨어 에코시스템과 성능 목표에 맞게 조정됩니다:
-
고성능 딥 러닝 추론 최적화 및 런타임인 NVIDIA TensorRT: NVIDIA GPU를 위한 고성능 딥 러닝 추론 최적화 및 런타임입니다.
데이터 센터 및 자동차 애플리케이션에서 널리 사용됩니다. 다음을 쉽게 수행할 수 있습니다.
Ultralytics 모델을 TensorRT 내보내 속도를 극대화할 수 있습니다.
속도.
-
Intel OpenVINO
개방형 시각 추론 및 신경망 최적화
툴킷은 다음과 같은 Intel 하드웨어에 맞게 모델을 최적화합니다.
CPU 및 통합 GPU. 이 툴킷은 인텔 에코시스템 내에서 "한 번 작성,
어디서나 배포" 방식을 지원합니다.
-
ONNX 런타임: Microsoft 개발한 크로스 플랫폼 엔진으로, 다음을 지원합니다.
ONNX 형식을 지원하는 크로스 플랫폼 엔진입니다. 이를 통해 하나의 프레임워크에서 학습된 모델
하나의 프레임워크에서 학습된 모델을 다양한 하드웨어 백엔드에서 효율적으로 실행할 수 있습니다.
-
TensorFlow 라이트: 모바일 및 IoT 디바이스용으로 설계되었습니다,
TensorFlow Lite는 Android, iOS, 임베디드 시스템에서 지연 시간이 짧은 추론을 지원합니다.
임베디드 시스템에서 짧은 지연 시간을 지원합니다.
실제 애플리케이션
추론 엔진은 최신 AI 애플리케이션의 보이지 않는 중추로, 세상에 즉각적으로 반응할 수 있게 해줍니다.
-
자율 주행: 자동차 산업에서 차량은 컴퓨터 비전에 의존하여
컴퓨터 비전에 의존합니다. 차량의 온보드 컴퓨터에서 실행되는 추론 엔진은 비디오 피드를 처리하여 다음과 같은 작업을 수행합니다.
보행자, 다른 물체, 기타
차량, 교통 표지판 등을 감지합니다. 다음과 같은 모델을 사용하면 YOLO11,
엔진은 이러한 예측을 밀리초 단위로 수행하여 차량이 실시간으로 자율적으로 제동 또는 조향할 수 있도록 합니다.
실시간으로.
-
스마트 제조: 생산 라인은 자동화된 품질 관리를 위해 추론 엔진을 사용합니다.
고속 카메라가 컨베이어 벨트 위의 제품 이미지를 캡처하고 추론 엔진이 이 이미지를 처리하여 다음과 같은 결함을 감지합니다.
균열이나 정렬 불량과 같은 결함을 detect . 이 높은 처리량 시스템은 결함이 있는 제품의 출하를 방지하고
수작업 검사 비용을 절감할 수 있습니다.
추론 엔진과 트레이닝 프레임워크 비교
모델을 만드는 데 사용되는 도구와 모델을 실행하는 데 사용되는 도구를 구분하는 것이 중요합니다.
-
교육 프레임워크(예: PyTorch, Keras): 유연성과 실험을 위해 설계된 프레임워크입니다.
학습에 필수적인 역전파, 그라데이션 업데이트, 동적 그래프를 지원하지만, 계산 비용이 많이 듭니다.
계산 비용이 많이 듭니다.
-
추론 엔진(예: TensorRT, ONNX 런타임): 속도와 효율성을 위해 설계되었습니다. 이들은
모델을 가능한 한 빠르게 실행할 정적 연산 집합으로 취급합니다. 일반적으로 다음과 같은 기능은 지원하지 않습니다.
훈련 또는 학습을 지원하지 않습니다.
추론을 위한 내보내기
특정 추론 엔진을 사용하려면 다음을 수행해야 하는 경우가 많습니다.
학습된 모델을 호환 가능한 형식으로 내보내야 하는 경우가 많습니다. 예를 들어
예를 들어, YOLO11 모델을 ONNX 형식으로 내보내면 ONNX 런타임에서 실행하거나 다른 엔진으로 가져올 수 있습니다.
from ultralytics import YOLO
# Load a trained YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format for use with ONNX Runtime
# This creates 'yolo11n.onnx' optimized for inference
model.export(format="onnx")
개발자는 추론 엔진을 활용하여 AI 모델의 잠재력을 최대한 발휘하여 클라우드 클러스터부터 배터리 에지 디바이스에 이르는 다양한 프로덕션 환경에서
클라우드 클러스터부터 배터리로 구동되는 엣지 디바이스까지 다양한 프로덕션 환경에서 원활하게 실행할 수 있습니다.