ONNX'in yapay zeka modeli taşınabilirliğini ve birlikte çalışabilirliğini nasıl artırdığını, 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 açık kaynaklı bir formattır. Microsoft ve Facebook gibi şirketler tarafından ortaklaşa geliştirilen ONNX, geliştiricilerin modelleri farklı ML çerçeveleri ve araçları arasında taşımasını sağlayan evrensel bir çevirmen görevi görür. Bu birlikte çalışabilirlik, model geliştirmeden üretime geçişi kolaylaştırmak için çok önemlidir. Tek bir ekosisteme kilitlenmek yerine, ekipler bir modeli PyTorch gibi bir çerçevede eğitebilir ve çıkarım için TensorFlow veya özel bir çıkarım motoru gibi başka bir çerçeve kullanarak dağıtabilir. Örneğin, Ultralytics YOLO modelleri kolayca ONNX formatına aktarılabilir ve çeşitli platformlarda dağıtım için maksimum esneklik sağlar.
ONNX, yerleşik operatörlerin bir listesiyle birlikte bir hesaplama grafiği için standart bir tanım sağlar. Bir modeli ONNX formatına dönüştürdüğünüzde, katmanlardan ve matematiksel işlemlerden oluşan mimarisi bu evrensel standarda eşlenir. Ortaya çıkan .onnx
dosya 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. Bunlar şunları içerir:
ONNX'in esnekliği, onu birçok bilgisayarla görme ve ML senaryosunda paha biçilmez kılmaktadır.
Yapay Zekayı Uç Cihazlarda Dağıtma: Bir geliştirici, NVIDIA GPU'ları olan güçlü bir masaüstünde Ultralytics YOLO11 gibi karmaşık bir nesne algılama modeli eğitebilir. Uygulamanın perakende analizinde kullanılan bir Raspberry Pi veya akıllı 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.
Modelleri Çeşitli Uygulamalara Entegre Etme: Python ve TensorFlow kullanarak bir tıbbi görüntü analizi modeli oluşturan bir sağlık şirketini ele alalım. Hastanenin mevcut yazılım altyapısı C# ve .NET kullanılarak oluşturulmuştur. Ekip, modeli yeniden yazmak yerine ONNX'e aktarır. C# uygulaması daha sonra modelin yeteneklerini doğrudan entegre etmek için .NET için ONNX Runtime'ı kullanabilir, bu da geliştirme süresini ve karmaşıklığını önemli ölçüde azaltır.
ONNX'i ilgili terimlerden ayırmak önemlidir:
.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 olanak tanıyan bir aracı görevi görür. TorchScript bazen ONNX dışa aktarımına alternatif veya öncü olarak kullanılan, PyTorch model serileştirmesi için başka bir formattır.Özetle, ONNX, makine öğrenimi operasyonları (MLOps) hattında esneklik ve birlikte çalışabilirlik sağlamak için hayati bir standarttır ve geliştiricilerin çerçeve sınırlamalarıyla 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 geçişi 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.