Sözlük

ONNX (Açık Sinir Ağı Değişimi)

ONNX adresinin yapay zeka modeli taşınabilirliğini ve birlikte çalışabilirliğini nasıl geliştirdiğini ve Ultralytics YOLO modellerinin farklı platformlarda sorunsuz bir şekilde kullanılmasını nasıl sağladığını keşfedin.

YOLO modellerini Ultralytics HUB ile basitçe
eğitin

Daha fazla bilgi edinin

Hızla gelişen yapay zeka (AI) ve makine öğrenimi (ML) alanında, modelleri farklı araçlar ve platformlar arasında verimli bir şekilde taşımak çok önemlidir. ONNX (Open Neural Network Exchange), özellikle yapay zeka modelleri için tasarlanmış açık kaynaklı bir format sağlayarak bu zorluğun üstesinden geliyor. Evrensel bir çevirmen görevi görür ve geliştiricilerin bir modeli tek bir çerçevede eğitmesine olanak tanır, örneğin PyTorchgibi başka bir çerçeve veya çıkarım motoru kullanarak dağıtın. TensorFlow veya özel çalışma zamanları. Bu birlikte çalışabilirlik, araştırmadan üretime giden yolu kolaylaştırır.

Alaka düzeyi ONNX

ONNX 'in temel değeri, yapay zeka ekosistemi içinde taşınabilirliği ve birlikte çalışabilirliği teşvik etmesinde yatmaktadır. Geliştiriciler, belirli bir çerçevenin ekosistemine kilitlenmek yerine, modelleri serbestçe taşımak için ONNX 'ten yararlanabilirler. Ortak bir operatör seti ve standart bir dosya formatı tanımlayarak ONNX , bir modelin yapısının ve öğrenilen parametrelerin(ağırlıklar) tutarlı bir şekilde temsil edilmesini sağlar. Bu özellikle aşağıdakileri kullananlar için faydalıdır Ultralytics YOLOUltralytics , modelleri ONNX formatına aktarmak için basit yöntemler sağladığından, modeller. Bu dışa aktarma özelliği, kullanıcıların aşağıdaki gibi modelleri almasına olanak tanır YOLOv8 veya YOLO11 ve bunları çok çeşitli donanım ve yazılım platformlarına dağıtabilir, genellikle gelişmiş performans için optimize edilmiş çıkarım motorları kullanabilir.

ONNX Nasıl Çalışır?

ONNX , birkaç temel özellik sayesinde birlikte çalışabilirlik sağlar:

  • Ortak Model Gösterimi: Standart bir dizi operatörü ( konvolüsyon katmanları veya aktivasyon fonksiyonları gibi) ve veri türlerini tanımlar. Bir model ONNX'e dönüştürüldüğünde, mimarisi bu ortak dile çevrilir.
  • Grafik Tabanlı Yapı: Modeller, düğümlerin işlemler olduğu ve kenarların veri akışını (tensörler) temsil ettiği hesaplama grafikleri olarak temsil edilir. Bu, çoğu derin öğrenme çerçevesi tarafından kullanılan ortak bir yapıdır.
  • Genişletilebilirlik: ONNX çekirdek bir operatör seti tanımlarken, özel operatörlere izin vererek yeni model mimarileri için destek sağlar.
  • Versiyonlama: ONNX geriye dönük uyumluluğu sağlamak için operatör sürümlerini korur, yani eski sürümlerle oluşturulan modeller standart geliştikçe kullanılmaya devam edilebilir.

Uygulamaları ONNX

ONNX , model eğitim ortamları ile dağıtım hedefleri arasındaki boşluğu doldurmak için yaygın olarak kullanılmaktadır. İşte iki örnek:

  1. Uç Cihazlarda Optimize Edilmiş Dağıtım: Bir geliştirici, GPU'lara sahip güçlü bir sunucuda Ultralytics YOLO kullanarak bir nesne algılama modelini eğitir. Bu modeli kaynak kısıtlaması olan uç cihazlara dağıtmak için modeli ONNX' e aktarırlar. ONNX modeli daha sonra aşağıdaki gibi araçlar kullanılarak optimize edilebilir NVIDIA TensorRTNVIDIA donanımı veya Intel CPU/VPU'lar için Intel 'in OpenVINO 'su ile daha hızlı ve daha verimli gerçek zamanlı çıkarım elde edin. Daha fazla ayrıntı için model dağıtım seçenekleriyle ilgili kılavuzumuza bakın.
  2. Çerçeveler Arası İşbirliği: Bir araştırma ekibi PyTorch'ta yeni bir model bileşeni geliştirir. Bu bileşeni TensorFlow ile oluşturulmuş daha büyük bir uygulamaya entegre etmekten sorumlu olan başka bir ekip, bileşeni bir ONNX dosyası olarak alabilir. Bu, karmaşık kod çevirisi veya farklı çerçeveler için ayrı model sürümleri tutma ihtiyacını ortadan kaldırır ve müşteriler sayfamızda listelenenler gibi kuruluşlar içinde daha kolay işbirliğini teşvik eder.

İlgili Kavramlar

ONNX 'i anlamak genellikle ilgili teknolojileri içerir:

  • ONNX Çalışma Zamanı: Bu, ONNX modellerini çeşitli donanımlardaCPU verimli bir şekilde çalıştırmak için özel olarak tasarlanmış yüksek performanslı bir çıkarım motorudur, GPUvb.). ONNX formatı tanımlarken, ONNX Runtime yürütme ortamını sağlar.
  • TensorRT: NVIDIA GPU'larda optimizasyon için ONNX modellerini içe aktarabilen, yüksek performanslı derin öğrenme çıkarımı için NVIDIA 'dan bir SDK. Ultralytics , TensorRT entegrasyonu sunar.
  • OpenVINO: Yapay zeka çıkarımını optimize etmek ve dağıtmak için Intel donanımında yürütme için ONNX modellerini destekleyen bir Intel araç seti.
  • Model İhracatı: Eğitilmiş bir modeli orijinal çerçeve formatından dönüştürme işlemi (ör. PyTorch .pt) ONNX gibi standartlaştırılmış bir formata dönüştürür.
  • Model Dağıtımı: ONNX 'in platformlar arası uyumluluğu basitleştirmede önemli bir rol oynadığı, eğitilmiş bir modeli alma ve bir üretim ortamında kullanıma hazır hale getirme sürecinin tamamı. ONNX modellerinizin dağıtımını Ultralytics HUB gibi platformları kullanarak yönetebilirsiniz.

ONNX , model alışverişini ve dağıtımını kolaylaştırarak yapay zeka geliştirme yaşam döngüsünü daha esnek ve verimli hale getirmede hayati bir rol oynamaktadır.

Tümünü okuyun