Scopri come ONNX migliora la portabilità e l'interoperabilità dei modelli di AI, consentendo l'implementazione senza problemi dei modelli di Ultralytics YOLO su diverse piattaforme.
Nel campo in rapida evoluzione dell'intelligenza artificiale (AI) e dell'apprendimento automatico (ML), spostare i modelli tra diversi strumenti e piattaforme in modo efficiente è fondamentale. ONNX (Open Neural Network Exchange) affronta questa sfida fornendo un formato open-source progettato appositamente per i modelli di intelligenza artificiale. Funge da traduttore universale, consentendo agli sviluppatori di addestrare un modello in un framework, come ad esempio PyTorche poi distribuirlo con un altro framework o motore di inferenza, come ad esempio TensorFlow o runtime specializzati come ONNX Runtime. Questa interoperabilità semplifica il percorso dalla ricerca alla produzione, favorendo la collaborazione e la flessibilità all'interno dell'ecosistema AI. ONNX è stato inizialmente sviluppato da Facebook AI Research e Microsoft Research ed è ora un fiorente progetto comunitario.
Il valore principale di ONNX consiste nella promozione di portabilità e interoperabilità nel ciclo di vita dello sviluppo dell'intelligenza artificiale. Invece di essere bloccati nell'ecosistema di un framework specifico, gli sviluppatori possono sfruttare ONNX per spostare liberamente i modelli tra diversi strumenti e piattaforme hardware. Definendo un insieme comune di operatori (gli elementi costitutivi di reti neurali) e un formato di file standard (.onnx
), ONNX assicura che la struttura e i parametri appresi di un modello (pesi) sono rappresentati in modo coerente. Questo è particolarmente vantaggioso per gli utenti di Ultralytics YOLO modelli, in quanto Ultralytics offre metodi semplici per esportare i modelli in formato ONNX. Questa funzionalità di esportazione consente agli utenti di prendere modelli come YOLOv8 o il più recente YOLO11 e distribuirli su un'ampia varietà di piattaforme hardware e software, spesso utilizzando sistemi ottimizzati per la gestione del traffico. motori di inferenza per migliorare le prestazioni e accelerazione hardware.
ONNX raggiunge l'interoperabilità grazie a diverse caratteristiche tecniche chiave:
ONNX funge da ponte cruciale tra gli ambienti di formazione del modello e i diversi obiettivi di implementazione. Ecco due esempi concreti:
È importante distinguere ONNX dai termini correlati:
.pt
/.pth
o SavedModel di TensorFlow sono nativi dei rispettivi framework. ONNX funge da intermediario, consentendo la conversione tra questi formati o la distribuzione tramite un runtime comune. TorchScript è un altro formato per la serializzazione dei modelli PyTorch , talvolta utilizzato come alternativa o precursore dell'esportazione ONNX .In sintesi, ONNX è uno standard fondamentale per garantire la flessibilità e l'interoperabilità nella pipeline delle operazioni di machine learning (MLOps), consentendo agli sviluppatori di scegliere gli strumenti migliori per l'addestramento e la distribuzione senza essere vincolati dalle limitazioni del framework. Piattaforme come Ultralytics HUB sfruttano questi formati per semplificare il percorso dallo sviluppo del modello all'applicazione nel mondo reale.