TensorRT
TensorRT'nin derin öğrenme modellerini NVIDIA GPU'ları için nasıl optimize ettiğini keşfet. Düşük gecikmeli, yüksek hızlı çıkarım için Ultralytics YOLO26'yı TensorRT'ye bugün nasıl aktaracağını öğren.
TensorRT, NVIDIA tarafından geliştirilen yüksek performanslı bir derin öğrenme çıkarım yazılım geliştirme kitidir (SDK). Dağıtım için sinir ağı modellerini optimize etmek üzere tasarlanmıştır; derin öğrenme uygulamaları için düşük çıkarım gecikmesi ve yüksek iş hacmi sunar. TensorRT, bir optimizasyon derleyicisi olarak görev yaparak PyTorch ve TensorFlow gibi popüler çerçevelerdeki eğitilmiş ağları alır ve bunları NVIDIA GPU'larında verimli şekilde çalışacak biçimde yeniden yapılandırır. Bu özellik, hız ve verimliliğin kritik önem taşıdığı üretim ortamlarında karmaşık AI modellerini çalıştırmak için gereklidir.
TensorRT Modelleri Nasıl Optimize Eder#
TensorRT'nin temel işlevi, eğitilmiş bir sinir ağını hedef donanım için özel olarak ayarlanmış optimize edilmiş bir "engine" dosyasına dönüştürmektir. Bunu çeşitli gelişmiş tekniklerle gerçekleştirir:
- Katman Birleştirme: Optimize edici, bir sinir ağının birden çok katmanını tek bir çekirdekte birleştirerek bellek erişimi ek yükünü azaltır ve yürütme hızını artırır.
- Hassasiyet Kalibrasyonu: TensorRT, karma hassasiyet (FP16) ve tamsayı niceleme (INT8) gibi düşük hassasiyetli kipleri destekler. Sayıları temsil etmek için kullanılan bit sayısını azaltarak (çoğu zaman doğrulukta minimum kayıpla) geliştiriciler matematiksel işlemleri önemli ölçüde hızlandırabilir ve bellek kullanımını azaltabilir. Bu, bir model niceleme biçimidir.
- Çekirdek Otomatik Ayarlama: Yazılım, kullanılan belirli GPU mimarisi için en iyi veri katmanlarını ve algoritmaları otomatik olarak seçer ve CUDA aracılığıyla donanımın paralel işleme yeteneklerinin en yüksek düzeyde kullanılmasını sağlar.
Gerçek Dünya Uygulamaları#
Büyük miktarda veriyi minimum gecikmeyle işleyebilmesi sayesinde TensorRT, bilgisayarlı görü ve zamanlamanın kritik olduğu karmaşık AI görevlerine dayanan sektörlerde yaygın olarak kullanılmaktadır.
-
Otonom Sistemler: Otomotivde AI alanında, kendi kendine giden araçların yayaları, işaretleri ve engelleri anında algılamak için birden çok kameradan gelen video akışlarını işlemesi gerekir. TensorRT kullanıldığında, nesne algılama ağları gibi algılama modelleri kareleri milisaniyeler içinde analiz edebilir ve aracın kontrol sisteminin gecikme olmadan güvenlik açısından kritik kararlar almasını sağlar.
-
Endüstriyel Otomasyon: Modern fabrikalar, otomatik optik denetim için üretimde AI kullanır. Yüksek hızlı kameralar montaj hatlarındaki ürünlerin görüntülerini yakalar ve TensorRT ile optimize edilmiş modeller kusurları veya anormallikleri gerçek zamanlı olarak belirler. Bu sayede kalite kontrolü, yüksek hızlı üretim ortamlarının temposunu korur; çoğu zaman doğrudan fabrika sahasında NVIDIA Jetson platformu gibi uç AI cihazlarına dağıtım yapılır.
TensorRT'yi Ultralytics YOLO ile Kullanma#
TensorRT'yi iş akışına entegre etmek, modern AI araçlarıyla oldukça kolaydır. ultralytics paketi, standart PyTorch modellerini TensorRT engine dosyalarına dönüştürmek için sorunsuz bir yöntem sunar. Bu, kullanıcıların Ultralytics YOLO26 mimarisinin son teknoloji özelliklerinden NVIDIA GPU'larının donanım hızlandırmasıyla yararlanmasını sağlar. Dışa aktarmadan önce veri kümelerini ve eğitim işlem hatlarını yönetmek isteyen ekipler için Ultralytics Platformu, modelleri bu tür yüksek performanslı dağıtıma hazırlamak üzere kapsamlı bir ortam sunar.
Aşağıdaki örnek, bir Ultralytics YOLO26 modelinin TensorRT engine dosyasına (.engine) nasıl dışa aktarılacağını ve gerçek zamanlı çıkarım için nasıl kullanılacağını gösterir:
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 ve ONNX ile Eğitim Çerçevelerinin Karşılaştırması#
Model dağıtımı alanında sıkça duyulan diğer terimlerle TensorRT arasındaki farkı anlamak önemlidir:
- PyTorch/TensorFlow ile karşılaştırma: PyTorch gibi çerçeveler, esneklik ve hata ayıklama kolaylığı sunarak öncelikle model eğitimi ve araştırma için tasarlanmıştır. TensorRT ise yalnızca eğitilmiş modelleri mümkün olduğunca hızlı çalıştırmak üzere tasarlanmış bir çıkarım motorudur. Eğitim için kullanılmaz.
- ONNX ile karşılaştırma: ONNX (Açık Sinir Ağı Değişimi) biçimi, çerçeveler arasında aracı bir köprü görevi görür. ONNX birlikte çalışabilirlik sağlarken (ör. bir modeli PyTorch'tan başka bir platforma taşıma), TensorRT donanıma özgü optimizasyona odaklanır. Çoğu zaman bir model önce ONNX'e dönüştürülür, ardından nihai engine dosyasını oluşturmak üzere TensorRT tarafından ayrıştırılır.
AI aracıları veya görüntü sistemlerinin performansını en üst düzeye çıkarmayı amaçlayan geliştiriciler için bir eğitim çerçevesinden TensorRT gibi optimize edilmiş bir çalışma zamanına geçişi anlamak, profesyonel MLOps yolculuğunda önemli bir adımdır.









