Scoprite come ONNX migliora la portabilità e l'interoperabilità dei modelli di AI, consentendo l'implementazione senza problemi dei modelli Ultralytics YOLO su diverse piattaforme.
ONNX Open Neural Network Exchange) è un formato open source progettato per rappresentare modelli di machine learning e consentire l'interoperabilità tra vari framework e strumenti di intelligenza artificiale. Funge da traduttore universale per il deep learning, consentendo agli sviluppatori di creare modelli in un unico framework, come PyTorch, TensorFlow o Scikit-learn, e di implementarli senza soluzione di continuità in un altro ambiente ottimizzato per l'inferenza. Definendo un insieme comune di operatori e un formato di file standard, ONNX la necessità di script di conversione complessi e personalizzati che in passato erano necessari per trasferire i modelli dalla fase di ricerca a quella di produzione. Questa flessibilità è fondamentale per i moderni flussi di lavoro di IA, in cui l'addestramento può avvenire su potenti GPU cloud, mentre l'implementazione è destinata a diversi tipi di hardware, come dispositivi edge, telefoni cellulari o browser web.
Nel panorama in rapida evoluzione dell' intelligenza artificiale, ricercatori e ingegneri utilizzano spesso strumenti diversi per le diverse fasi del ciclo di vita dello sviluppo. Un data scientist potrebbe preferire la flessibilità di PyTorch la sperimentazione e la formazione, mentre un ingegnere di produzione ha bisogno delle prestazioni ottimizzate di TensorRT o OpenVINO l'implementazione. Senza un formato di scambio standard, spostare un modello tra questi ecosistemi è difficile e soggetto a errori.
ONNX questa lacuna fornendo una definizione condivisa del grafico di calcolo. Quando un modello viene esportato in ONNX, viene serializzato in un formato che cattura la struttura della rete (livelli, connessioni) e i parametri (pesi, bias) in modo indipendente dal framework. Ciò consente ai motori di inferenza specificamente ottimizzati per l'accelerazione hardware, come ONNX , di eseguire il modello in modo efficiente su più piattaforme, tra cui Linux, Windows, macOS, Android e iOS.
L'adozione del formato Open Neural Network Exchange offre diversi vantaggi strategici per i progetti di IA:
.onnx Il file può essere accelerato su NVIDIA , Intel o
NPU (Neural Processing Unit) mobili utilizzando strumenti come
OpenVINO o CoreML.
La versatilità di ONNX lo ONNX uno strumento indispensabile in diversi settori. Ecco due esempi concreti della sua applicazione:
Consideriamo un'applicazione mobile progettata per il monitoraggio in tempo reale dello stato di salute delle colture. Il modello potrebbe essere addestrato su un potente server cloud utilizzando un ampio set di dati di immagini di piante. Tuttavia, l'app deve funzionare offline sullo smartphone di un agricoltore. Esportando il modello addestrato in ONNX, gli sviluppatori possono integrarlo nell' app mobile utilizzando ONNX Mobile. Ciò consente al processore del telefono di eseguire il rilevamento degli oggetti a livello locale, identificando parassiti o malattie istantaneamente senza bisogno di una connessione Internet.
Nell'e-commerce, una funzione di "prova virtuale" potrebbe utilizzare la stima della posa per sovrapporre i capi di abbigliamento alle immagini riprese dalla webcam dell'utente. L'addestramento di questo modello potrebbe avvenire in Python, ma l'obiettivo di implementazione è un browser web. Utilizzando ONNX, il modello può essere convertito ed eseguito direttamente nel browser dell'utente tramite ONNX Web. Questo utilizza le capacità del dispositivo del cliente (WebGL o WebAssembly) per eseguire attività di visione artificiale, garantendo un'esperienza fluida e rispettosa della privacy, poiché i dati video non lasciano mai il computer dell'utente.
È utile distinguere ONNX altri formati e strumenti di modelli:
Ultralytics semplifica il processo di conversione di modelli all'avanguardia come YOLO26 nel ONNX . La funzionalità di esportazione è integrata direttamente nella libreria e gestisce automaticamente la complessa traversata del grafico e la mappatura degli operatori.
L'esempio seguente mostra come esportare un modello YOLO26 pre-addestrato in ONNX per la distribuzione:
from ultralytics import YOLO
# Load the YOLO26n model (Nano version recommended for edge deployment)
model = YOLO("yolo26n.pt")
# Export the model to ONNX format
# The 'dynamic' argument enables variable input sizes
path = model.export(format="onnx", dynamic=True)
print(f"Model exported successfully to: {path}")
Una volta esportato, questo .onnx Il file può essere utilizzato nel
Piattaforma Ultralytics per la gestione o distribuito direttamente sui dispositivi periferici
utilizzando ONNX , rendendo accessibile la visione artificiale ad alte prestazioni praticamente in qualsiasi ambiente.