Glossario

ONNX (Open Neural Network Exchange)

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.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

Nel regno dell'intelligenza artificiale e dell'apprendimento automatico, l'interoperabilità è fondamentale per sfruttare i migliori strumenti e distribuire i modelli in ambienti diversi. ONNX (Open Neural Network Exchange) è un formato aperto creato per rappresentare i modelli di apprendimento automatico, garantendo che gli sviluppatori di intelligenza artificiale non siano vincolati a un unico framework e possano semplificare il processo di spostamento dei modelli tra diversi strumenti. Fornisce una rappresentazione unificata per i modelli, indipendentemente dal framework utilizzato per l'addestramento, rendendo più semplice l'implementazione di questi modelli in diversi motori di inferenza, piattaforme hardware e ambienti.

Rilevanza di ONNX

L'importanza principale di ONNX risiede nella sua capacità di promuovere la portabilità e l'interoperabilità nell'ecosistema dell'IA. Definendo un insieme comune di operatori e un formato standard per i modelli di apprendimento automatico, ONNX permette ai modelli addestrati in framework come PyTorch o TensorFlow di essere facilmente trasferiti ed eseguiti con motori di inferenza diversi, come ad esempio TensorRT o OpenVINO. Questo è particolarmente vantaggioso per gli sviluppatori che utilizzano i modelli di Ultralytics YOLO , in quanto l'esportazione di ONNX semplifica l'implementazione dei modelli su diverse piattaforme, dai server cloud ai dispositivi edge. Ultralytics facilita l'esportazione di YOLOv8 modelli in formato ONNX , consentendo agli utenti di sfruttare motori di inferenza ottimizzati per migliorare le prestazioni e accelerare l'inferenza in tempo reale.

Applicazioni di ONNX

ONNXLa compatibilità tra i vari framework lo rende prezioso in numerose applicazioni di intelligenza artificiale. Due esempi concreti sono:

  • Distribuzione su dispositivi edge: La distribuzione di modelli di intelligenza artificiale su dispositivi edge spesso richiede prestazioni ottimizzate e compatibilità con hardware specifici. ONNX consente agli sviluppatori di addestrare un modello utilizzando un framework di alto livello come PyTorch e poi di esportarlo in ONNX per eseguirlo in modo efficiente su dispositivi edge utilizzando motori di inferenza come TensorRT su NVIDIA Jetson o OpenVINO sui dispositivi Intel . Questo garantisce che applicazioni come le telecamere intelligenti o la robotica possano svolgere attività di rilevamento di oggetti con Ultralytics YOLO modelli in modo efficace e in tempo reale.
  • Inferenza multipiattaforma: Negli scenari in cui le soluzioni di intelligenza artificiale devono operare su sistemi operativi e hardware diversi, ONNX fornisce un formato di modello coerente. Ad esempio, un'applicazione di analisi delle immagini mediche potrebbe essere addestrata su server potenti ma deve eseguire l'inferenza su macchine meno potenti negli ospedali o nelle cliniche. ONNX consente la transizione e l'esecuzione senza soluzione di continuità dello stesso modello in ambienti diversi, garantendo prestazioni coerenti e affidabili indipendentemente dalla piattaforma di distribuzione.

Concetti correlati

La comprensione di ONNX implica anche il riconoscimento dei concetti correlati che giocano un ruolo nell'implementazione e nell'ottimizzazione dei modelli:

  • Motori di inferenza: Si tratta di librerie software che ottimizzano ed eseguono modelli di apprendimento automatico su hardware specifici. I modelli di ONNX sono spesso utilizzati con motori di inferenza come TensorRT e OpenVINO per accelerare la velocità e l'efficienza dell'inferenza.
  • Modello di esportazione: Il processo di conversione di un modello addestrato dal formato del framework originale (es, PyTorch .pt nel formato ONNX . Ultralytics fornisce strumenti immediati per esportare i modelli di YOLO a ONNX e altri formati.
  • Interoperabilità con i framework: ONNX affronta la sfida del framework lock-in consentendo l'utilizzo dei modelli in diversi framework. Sebbene ogni framework abbia i suoi punti di forza, ONNX garantisce che gli sviluppatori possano scegliere lo strumento migliore per ogni fase del ciclo di vita dell'IA senza barriere di compatibilità.

Adottando ONNX, gli sviluppatori possono semplificare in modo significativo i loro flussi di lavoro di intelligenza artificiale, ridurre le complessità di implementazione e garantire che i loro modelli siano versatili e performanti su un'ampia gamma di applicazioni e piattaforme.

Leggi tutto