TensorRT
TensorRT가 NVIDIA GPU용 딥러닝 모델을 최적화하는 방법을 살펴봅니다. 지금 Ultralytics YOLO26을 TensorRT로 내보내 낮은 지연 시간과 고속 추론을 구현하는 방법을 알아봅니다.
TensorRT는 NVIDIA에서 개발한 고성능 딥러닝 추론 소프트웨어 개발 키트(SDK)입니다. 딥러닝 애플리케이션을 위해 추론 지연 시간을 줄이고 높은 처리량을 제공하도록 신경망 모델을 최적화하여 배포할 수 있게 설계되었습니다. TensorRT는 최적화 컴파일러로 작동하여 PyTorch 및 TensorFlow와 같은 널리 사용되는 프레임워크에서 학습된 네트워크를 가져와 NVIDIA GPU에서 효율적으로 실행되도록 재구성합니다. 이러한 기능은 속도와 효율성이 매우 중요한 프로덕션 환경에서 복잡한 AI 모델을 실행하는 데 필수적입니다.
TensorRT가 모델을 최적화하는 방법#
TensorRT의 핵심 기능은 학습된 신경망을 대상 하드웨어에 맞게 특별히 조정된 최적화된 "엔진"으로 변환하는 것입니다. TensorRT는 다음과 같은 여러 고급 기법을 통해 이를 수행합니다:
- 레이어 융합: 최적화 프로그램은 신경망의 여러 레이어를 단일 커널로 결합하여 메모리 액세스 오버헤드를 줄이고 실행 속도를 향상합니다.
- 정밀도 보정: TensorRT는 혼합 정밀도(FP16) 및 정수 양자화(INT8)와 같은 낮은 정밀도 모드를 지원합니다. 수치를 표현하는 데 사용되는 비트 수를 줄이면(대개 정확도 손실은 최소화됨) 개발자는 수학 연산을 크게 가속하고 메모리 사용량을 줄일 수 있습니다. 이는 모델 양자화의 한 형태입니다.
- 커널 자동 튜닝: 소프트웨어는 사용 중인 특정 GPU 아키텍처에 가장 적합한 데이터 레이어와 알고리즘을 자동으로 선택하여 CUDA를 통한 하드웨어의 병렬 처리 기능을 최대한 활용하도록 합니다.
실제 적용 사례#
TensorRT는 방대한 양의 데이터를 최소한의 지연으로 처리할 수 있기 때문에, 컴퓨터 비전과 타이밍이 중요한 복잡한 AI 작업에 의존하는 산업에서 널리 사용됩니다.
-
자율 시스템: 자동차 분야의 AI 영역에서 자율주행 차량은 여러 카메라의 비디오 피드를 처리하여 보행자, 표지판 및 장애물을 즉시 감지해야 합니다. TensorRT를 사용하면 객체 감지 네트워크와 같은 인식 모델이 프레임을 밀리초 단위로 분석할 수 있으므로, 차량의 제어 시스템이 지연 없이 안전에 중요한 결정을 내릴 수 있습니다.
-
산업 자동화: 현대 공장에서는 자동 광학 검사를 위해 제조 분야의 AI를 활용합니다. 고속 카메라가 조립 라인의 제품 이미지를 촬영하면 TensorRT로 최적화된 모델이 결함이나 이상을 실시간으로 식별합니다. 이를 통해 고속 생산 환경에서도 품질 관리가 생산 속도를 따라갈 수 있으며, 공장 현장에 직접 배치되는 엣지 AI 장치인 NVIDIA Jetson 플랫폼에서 실행되는 경우가 많습니다.
TensorRT와 Ultralytics YOLO 사용하기#
최신 AI 도구를 사용하면 TensorRT를 워크플로에 간단하게 통합할 수 있습니다. ultralytics 패키지는 표준 PyTorch 모델을 TensorRT 엔진으로 원활하게 변환하는 방법을 제공합니다. 이를 통해 사용자는 Ultralytics YOLO26의 최신 아키텍처와 NVIDIA GPU의 하드웨어 가속을 함께 활용할 수 있습니다. 내보내기 전에 데이터 세트와 학습 파이프라인을 관리하려는 팀을 위해 Ultralytics Platform은 이러한 고성능 배포를 위한 모델을 준비할 수 있는 종합 환경을 제공합니다.
다음 예제에서는 Ultralytics YOLO26 모델을 TensorRT 엔진 파일(.engine)로 내보내고 이를 실시간 추론에 사용하는 방법을 보여줍니다:
from ultralytics import YOLO
# Load the latest stable YOLO26 model (nano size)
model = YOLO("yolo26n.pt")
# Export the model to TensorRT format (creates 'yolo26n.engine')
# This step optimizes the computational graph for your specific GPU
model.export(format="engine")
# Load the optimized TensorRT engine for high-speed inference
trt_model = YOLO("yolo26n.engine")
# Run inference on an image source
results = trt_model("https://ultralytics.com/images/bus.jpg")TensorRT와 ONNX 및 학습 프레임워크 비교#
모델 배포 분야에서 자주 언급되는 다른 용어와 TensorRT를 구분하는 것이 중요합니다:
- PyTorch/TensorFlow와 비교: PyTorch와 같은 프레임워크는 주로 모델 학습 및 연구를 위해 설계되었으며, 유연성과 디버깅 편의성을 제공합니다. TensorRT는 학습된 모델을 가능한 한 빠르게 실행하기 위해 설계된 추론 엔진입니다. TensorRT는 학습에는 사용되지 않습니다.
- ONNX와 비교: ONNX(개방형 신경망 교환) 형식은 프레임워크 간의 중간 브리지 역할을 합니다. ONNX가 상호 운용성(예: PyTorch에서 다른 플랫폼으로 모델 이동)을 제공하는 반면, TensorRT는 하드웨어별 최적화에 중점을 둡니다. 일반적으로 모델을 먼저 ONNX로 변환한 다음 TensorRT가 이를 파싱하여 최종 엔진을 생성합니다.
AI 에이전트 또는 비전 시스템의 성능을 극대화하려는 개발자에게 학습 프레임워크에서 TensorRT와 같은 최적화된 런타임으로 전환하는 과정을 이해하는 것은 전문적인 MLOps의 핵심 단계입니다.









