Çıkarım Motoru
Çıkarım motorlarının gerçek zamanlı tahminler sunarak, modelleri optimize ederek ve çapraz platform dağıtımını mümkün kılarak yapay zekayı nasıl desteklediğini keşfedin.
Çıkarım motoru, eğitimli çıkarımları yürütmek için tasarlanmış özel bir yazılım bileşenidir.
makine öğrenimi modelleri ve
yeni verilerden tahminler. Büyük veri kümelerinden örüntü öğrenmeye odaklanan eğitim çerçevelerinin aksine, bir
olarak bilinen operasyonel aşama için optimize edilmiştir.
model dağıtımı. Öncelikli hedefi, bunları çalıştırmaktır
modelleri mümkün olduğunca verimli bir şekilde
çıkarım gecikmesi ve iş hacminin en üst düzeye çıkarılması
İster güçlü bir bulut sunucusu isterse kaynakları kısıtlı bir sunucu olsun, hedef donanım
uç yapay zeka cihazı.
Çıkarım Motoru Nasıl Çalışır?
Eğitilmiş bir modelden dağıtıma hazır bir uygulamaya geçiş, tipik olarak bir çıkarım motorunun şu şekilde hareket etmesini içerir
çalışma zamanı ortamı. Bir model aşağıdaki gibi bir çerçevede eğitildikten sonra
PyTorch veya
TensorFlowgenellikle ağırdır ve veri içerir
yapılar öğrenme için yararlı ancak tahmin için gereksizdir. Bir çıkarım motoru bu ek yükü ortadan kaldırır ve
hesaplama grafiğine titiz optimizasyonlar uygular.
Temel optimizasyon teknikleri şunlardır:
-
Katman Füzyonu: Motor birden fazla katmanı birleştirir (örn. konvolüsyon, toplu normalleştirme ve
aktivasyon) tek bir işlem haline getirir. Bu, bellek erişimini azaltır ve yürütmeyi hızlandırır.
-
Hassas Azaltma: İçinden
model niceleme, motor dönüştürür
yüksek hassasiyetli 32 bit kayan nokta formatından (FP32) INT8 veya FP16 gibi daha düşük hassasiyetli formatlara ağırlık verir. Bu
önemli ölçüde ödün vermeden model boyutunu ve bellek bant genişliği kullanımını büyük ölçüde azaltır
doğruluk.
-
Kernel Auto-Tuning: Motorlar gibi
NVIDIA TensorRT otomatik olarak en verimli olanı seçer
için algoritmalar ve donanım çekirdekleri
GPU kullanılıyor.
-
Bellek Yönetimi: Verimli bellek yeniden kullanım stratejileri, bellek ayırma ve yeniden kullanma ek yükünü en aza indirir.
için kritik olan çalışma zamanı sırasında bellek ayırma
gerçek zamanlı çıkarım.
Ortak Çıkarım Motorları
Farklı motorlar, belirli donanım ekosistemlerine ve performans hedeflerine göre uyarlanmıştır:
-
NVIDIA TensorRT: NVIDIA GPU'lar için yüksek performanslı bir derin öğrenme çıkarım iyileştiricisi ve çalışma zamanı.
Veri merkezlerinde ve otomotiv uygulamalarında yaygın olarak kullanılmaktadır. Kolayca yapabilirsiniz
Ultralytics modellerini maksimum için TensorRT'ye aktarma
Hız.
-
Intel OpenVINO
Açık Görsel Çıkarım ve Sinir Ağı Optimizasyonu
araç seti, aşağıdakiler dahil olmak üzere Intel donanımı için modelleri optimize eder
CPU 'lar ve entegre GPU'lar. "Bir kez yaz,
Intel ekosistemi içinde her yere dağıtın" yaklaşımı.
-
ONNX Çalışma Zamanı: Microsoft tarafından geliştirilen çapraz platform motoru
ONNX biçimi. Modellere izin verir
çeşitli donanım arka uçlarında verimli bir şekilde çalışmak için tek bir çerçevede eğitilmiştir.
-
TensorFlow Lite: Mobil ve IoT cihazları için tasarlanmıştır,
TensorFlow Lite Android, iOS'ta düşük gecikmeli çıkarım sağlar
gömülü sistemler.
Gerçek Dünya Uygulamaları
Çıkarım motorları, modern yapay zeka uygulamalarının görünmez backbone ve dünyaya anında tepki vermelerini sağlar.
-
Otonom Sürüş: Otomotiv endüstrisinde, araçlar yön bulmak için bilgisayar görüşüne güvenir
güvenli bir şekilde. Aracın yerleşik bilgisayarında çalışan bir çıkarım motoru, video akışlarını işleyerek
yayalar için nesne algılama, diğer
araçlar ve trafik işaretleri. Aşağıdaki gibi bir model kullanarak YOLO11,
motor bu tahminlerin milisaniyeler içinde gerçekleşmesini sağlayarak aracın gerçek zamanlı olarak otonom bir şekilde fren yapmasına veya yön değiştirmesine olanak tanır
Zaman.
-
Akıllı Üretim: Üretim hatlarında otomatik kalite kontrolü için çıkarım motorları kullanılır.
Yüksek hızlı kameralar bir konveyör bant üzerindeki ürünlerin görüntülerini yakalar ve bir çıkarım motoru bu görüntüleri işleyerek
çatlaklar veya yanlış hizalamalar gibi kusurları detect eder. Bu yüksek verimli sistem, kusurlu ürünlerin gönderilmesini önler
ve manuel denetim maliyetlerini azaltır.
Çıkarım Motoru ve Eğitim Çerçevesi
Modelleri oluşturmak için kullanılan araçlar ile bunları çalıştırmak için kullanılan araçları birbirinden ayırmak önemlidir.
-
Eğitim Çerçeveleri (örn. PyTorch, Keras): Bunlar esneklik ve deneyler için tasarlanmıştır.
Öğrenme için gerekli olan geriye yayılımı, gradyan güncellemelerini ve dinamik grafikleri desteklerler ancak
hesaplama açısından pahalı.
-
Çıkarım Motorları (örn. TensorRT, ONNX Runtime): Bunlar hız ve verimlilik için tasarlanmıştır. Onlar
modeli mümkün olduğunca hızlı yürütülmesi gereken statik bir işlem kümesi olarak ele alır. Genellikle şunları desteklemezler
eğitim veya yeni kalıplar öğrenme.
Çıkarım için Dışa Aktarma
Belirli bir çıkarım motorunu kullanmak için genellikle şunları yapmanız gerekir
Eğitilmiş modelinizi uyumlu bir formata aktarın. İçin
Örneğin, bir YOLO11 modelinin ONNX formatına aktarılması, ONNX Runtime tarafından çalıştırılmasına veya diğer motorlara aktarılmasına olanak tanır.
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")
Geliştiriciler, bir çıkarım motorundan yararlanarak yapay zeka modellerinin tüm potansiyelini ortaya çıkarabilir ve bu modellerin çalışmasını sağlayabilir
Bulut kümelerinden pille çalışan uç cihazlara kadar çeşitli üretim ortamlarında sorunsuz bir şekilde.