Bir çıkarım motorunun Ultralytics gibi makine öğrenimi modellerini gerçek zamanlı dağıtım için nasıl optimize ettiğini keşfedin. Edge AI için performans ipuçlarını bugün keşfedin.
Çıkarım motoru, eğitilmiş makine öğrenimi modellerini yürütmek ve yeni verilerden tahminler üretmek için tasarlanmış özel bir yazılım bileşenidir. Geri yayılım gibi hesaplama açısından yoğun süreçler yoluyla öğrenme modellerine odaklanan eğitim aşamasından farklı olarak, çıkarım motoru, model dağıtımı olarak bilinen operasyonel aşama için sıkı bir şekilde optimize edilmiştir. Temel amacı, hesaplamaları mümkün olduğunca verimli bir şekilde çalıştırmak, çıkarım gecikmesini en aza indirmek ve hedef donanımda, ister ölçeklenebilir bir bulut sunucusu ister pille çalışan bir Edge AI cihazı olsun, verimi en üst düzeye çıkarmaktır. Eğitim için gereken ek yükü ortadan kaldırarak, bu motorlar karmaşık sinir ağlarının gerçek zamanlı uygulamalarda çalışmasını sağlar.
Eğitim ortamından çıkarım motoruna geçiş, genellikle modelin yapısını düzene sokmak için birkaç optimizasyon adımını içerir. Model artık öğrenmeye ihtiyaç duymadığından, motor gradyan güncellemeleri için gerekli verileri atabilir ve model ağırlıklarını etkili bir şekilde dondurur. Çıkarım motorları tarafından kullanılan yaygın teknikler arasında, bellek erişimini azaltmak için birden fazla işlemi tek bir adımda birleştiren katman birleştirme ve Çıkarım motorları tarafından kullanılan yaygın teknikler arasında bellek erişimini azaltmak için birden fazla işlemin tek bir adımda birleştirildiği katman birleştirme ve ağırlıkları yüksek hassasiyetli kayan nokta formatlarından daha düşük hassasiyetli tamsayılara (ör. INT8) dönüştüren model niceleme yer alır.
Bu optimizasyonlar, Ultralytics gibi gelişmiş mimarilerin, doğrulukta önemli bir kayıp olmadan inanılmaz derecede yüksek hızlarda çalışmasını sağlar. Farklı motorlar genellikle maksimum performansı ortaya çıkarmak için belirli donanım ekosistemlerine göre uyarlanır:
Çıkarım motorları, birçok modern yapay zeka kolaylığının arkasındaki sessiz itici güçlerdir ve bilgisayar görme sistemlerinin çevrelerine anında tepki vermesini sağlar.
Modeli oluşturmak için kullanılan yazılım ile modeli çalıştırmak için kullanılan motoru birbirinden ayırmak faydalıdır. Bir Eğitim Çerçevesi ( PyTorch veya TensorFlowgibi) mimarileri tasarlamak, kaybı hesaplamak ve denetimli öğrenme yoluyla parametreleri güncellemek için araçlar sağlar. Esneklik ve hata ayıklama yeteneklerine öncelik verir.
Buna karşılık, Çıkarım Motoru, eğitim çerçevesinden bitmiş yapıyı alır ve yürütme hızı ve bellek verimliliğine öncelik verir. Eğitim çerçevesi içinde çıkarım çalıştırabilirsiniz, ancak bu özellikle TensorFlow veya Apple Core ML gibi araçlar aracılığıyla cep telefonlarına veya gömülü cihazlara dağıtım için özel bir motor kullanmak kadar verimli değildir. Apple Core ML.
Bu ultralytics paket, çıkarım motorlarının karmaşıklığının çoğunu özetleyerek kullanıcıların
tahminleri sorunsuz bir şekilde çalıştırmasına olanak tanır. Arka planda, görüntülerin ön işlenmesini ve modelin yürütülmesini yönetir.
Ölçeklendirme isteyen kullanıcılar için, Ultralytics Platformu eğitim ve modelleri çeşitli çıkarım motorlarıyla uyumlu optimize edilmiş formatlara aktarma
sürecini basitleştirir.
Aşağıdaki örnek, önceden eğitilmiş bir YOLO26 modelini yüklemeyi ve bir görüntü üzerinde çıkarım yapmayı gösterir:
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Run inference on an image from a URL
# The 'predict' method acts as the interface to the inference process
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()