Sözlük

ONNX (Açık Sinir Ağı Borsası)

ONNX'in yapay zeka modeli taşınabilirliğini ve birlikte çalışabilirliğini nasıl geliştirdiğini ve Ultralytics YOLO modellerinin çeşitli platformlarda sorunsuz bir şekilde dağıtılmasını sağladığını keşfedin.

ONNX (Open Neural Network Exchange), makine öğrenimi (ML) modellerini temsil etmek için kullanılan açık kaynaklı bir formattır. Microsoft ve Facebook gibi şirketler tarafından ortaklaşa geliştirilen ONNX, geliştiricilerin modelleri farklı makine öğrenimi çerçeveleri ve araçları arasında taşımasına olanak tanıyan evrensel bir çevirmen görevi görür. Bu birlikte çalışabilirlik, model geliştirmeden üretime kadar olan yolculuğu kolaylaştırmak için çok önemlidir. Ekipler, tek bir ekosistemde kilitlenmek yerine, bir modeli PyTorch gibi bir çerçevede eğitebilir ve TensorFlow veya özel bir çıkarım motoru gibi başka bir çerçeve kullanarak çıkarım için dağıtabilir. Örneğin Ultralytics YOLO modelleri, ONNX formatına kolayca aktarılabilir ve çeşitli platformlarda dağıtım için maksimum esneklik sağlar.

ONNX Nasıl Çalışır?

ONNX, yerleşik operatörlerin bir listesi ile birlikte bir hesaplama grafiği için standart bir tanım sağlar. Bir modeli ONNX formatına dönüştürdüğünüzde, modelin katmanlardan ve matematiksel işlemlerden oluşan mimarisi bu evrensel standartla eşleştirilir. Ortaya çıkan .onnx dosyası hem ağ yapısını hem de eğitilmiş model ağırlıkları.

Bu standartlaştırılmış dosya daha sonra ONNX spesifikasyonunu destekleyen herhangi bir araç tarafından yüklenebilir. Buna şunlar dahildir:

  • Derin Öğrenme Çerçeveleri: PyTorch ve TensorFlow gibi çerçeveler, ONNX modellerini hem içe hem de dışa aktarmak için yardımcı programlara sahiptir.
  • Çıkarım Çalışma Zamanları: ONNX Runtime, Intel'in OpenVINO'su ve NVIDIA'nın TensorRT 'si gibi yüksek performanslı çalışma zamanları, ONNX modellerini CPU veya GPU gibi belirli bir donanım üzerinde verimli bir şekilde çalıştırmak için tasarlanmıştır.
  • Bulut Hizmetleri: Azure Machine Learning ve Amazon SageMaker gibi büyük bulut platformları, model sunumunu basitleştirmek için ONNX'i kullanır.

ONNX'in Gerçek Dünya Uygulamaları

ONNX'in esnekliği, onu birçok bilgisayarla görme ve makine öğrenimi senaryosunda çok değerli kılmaktadır.

  1. Uç Cihazlarda Yapay Zeka Dağıtımı: Bir geliştirici, Ultralytics YOLO11 gibi karmaşık bir nesne algılama modelini NVIDIA GPU'lara sahip güçlü bir masaüstünde eğitebilir. Uygulamanın Raspberry Pi veya perakende analizinde kullanılan akıllı bir kamera gibi düşük güçlü bir uç cihazda çalışması için model ONNX'e aktarılır. Daha sonra orijinal PyTorch ortamına ihtiyaç duymadan hedef donanımda verimli performans için ONNX Runtime veya OpenVINO gibi bir çalışma zamanı tarafından optimize edilebilir.

  2. Modelleri Çeşitli Uygulamalara Entegre Etme: Python ve TensorFlow kullanarak bir tıbbi görüntü analiz modeli oluşturan bir sağlık hizmeti şirketini düşünün. Hastanenin mevcut yazılım altyapısı C# ve .NET kullanılarak oluşturulmuştur. Ekip, modeli yeniden yazmak yerine ONNX'e aktarıyor. C# uygulaması daha sonra modelin yeteneklerini doğrudan entegre etmek için ONNX Runtime for .NET 'i kullanarak geliştirme süresini ve karmaşıklığını önemli ölçüde azaltabiliyor.

ONNX vs. İlgili Kavramlar

ONNX'i ilgili terimlerden ayırt etmek önemlidir:

  • Çerçeveye Özel Formatlar: PyTorch'unki gibi formatlar .pt veya TensorFlow'un SavedModel'i kendi çerçevelerine özgüdür. ONNX, bu formatlar arasında dönüşüme veya ortak bir çalışma zamanı aracılığıyla dağıtıma izin veren bir aracı görevi görür. TorchScript PyTorch model serileştirmesi için başka bir formattır, bazen ONNX dışa aktarımına alternatif veya öncü olarak kullanılır.
  • Çıkarım Motorları/Çalışma Zamanları: ONNX Runtime, TensorRT ve OpenVINO gibi araçlar ML modellerini verimli bir şekilde çalıştırmak için tasarlanmış yazılım kütüphaneleridir. Bu motorların çoğu ONNX modellerini tüketebilir ve genellikle belirli donanım hedefleri için daha fazla optimizasyon ( niceleme veya grafik füzyonu gibi) uygular. ONNX, bu motorlar için standartlaştırılmış model girdisi sağlar.

Özetle ONNX, makine öğrenimi operasyonları (MLOps) işlem hattında esneklik ve birlikte çalışabilirlik sağlamak için hayati bir standarttır ve geliştiricilerin çerçeve sınırlamaları tarafından kısıtlanmadan eğitim ve dağıtım için en iyi araçları seçmelerini sağlar. Ultralytics HUB gibi platformlar, model geliştirmeden gerçek dünya uygulamasına kadar olan yolculuğu basitleştirmek için bu tür formatlardan yararlanır. Daha fazla bilgi edinmek için resmi ONNX web sitesini ziyaret edin ve projeyi GitHub'da keşfedin.

Ultralytics topluluğuna katılın

Yapay zekanın geleceğine katılın. Küresel yenilikçilerle bağlantı kurun, işbirliği yapın ve büyüyün

Şimdi katılın
Panoya kopyalanan bağlantı