Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Motore di inferenza

Scopri come gli inference engine alimentano l'IA fornendo previsioni in tempo reale, ottimizzando i modelli e consentendo la distribuzione multipiattaforma.

Un motore di inferenza è un componente software specializzato progettato per eseguire modelli di apprendimento automatico addestrati modelli di apprendimento automatico e generare predizioni da nuovi dati. A differenza dei framework di addestramento che si concentrano sull'apprendimento di modelli da insiemi di dati massicci, un motore di inferenza è ottimizzato esclusivamente per la fase operativa, nota come motore di inferenza è ottimizzato esclusivamente per la fase operativa, conosciuta come distribuzione dei modelli. Il suo obiettivo principale è quello di eseguire questi modelli nel modo più efficiente possibile, minimizzando latenza dell'inferenza e massimizzando il throughput su hardware di destinazione, sia che si tratti di un potente server cloud o di un dispositivo di intelligenza artificiale di risorse, sia che si tratti di un potente server cloud o di un dispositivo di intelligenza artificiale edge.

Come funziona un motore di inferenza

La transizione da un modello addestrato a un'applicazione pronta per il deployment coinvolge tipicamente un motore di inferenza che funge da ambiente di runtime. l'ambiente di runtime. Una volta addestrato un modello in un framework come PyTorch o TensorFlowspesso è pesante e contiene strutture di dati utili per l'apprendimento ma strutture di dati utili per l'apprendimento ma non necessarie per la predizione. Un motore di inferenza elimina questo sovraccarico e e applica ottimizzazioni rigorose al grafo computazionale.

Le principali tecniche di ottimizzazione includono:

  • Fusione di livelli: Il motore combina più livelli (ad esempio, convoluzione, normalizzazione e attivazione) in un'unica operazione. attivazione) in un'unica operazione. Questo riduce l'accesso alla memoria e velocizza l'esecuzione.
  • Riduzione della precisione: Attraverso la quantizzazione del quantizzazione del modello, il motore converte i pesi dal formato in virgola mobile a 32 bit ad alta precisione (FP32) a formati a bassa precisione come INT8 o FP16. Questo riduce drasticamente le dimensioni del modello e l'utilizzo della larghezza di banda della memoria senza compromettere in modo significativo l 'accuratezza.
  • Kernel Auto-Tuning: Motori come NVIDIA TensorRT selezionano automaticamente gli algoritmi e i kernel hardware più algoritmi e i kernel hardware più efficienti per le specifiche GPU utilizzata.
  • Gestione della memoria: Strategie efficienti di riutilizzo della memoria riducono al minimo l'overhead di allocazione e deallocazione della memoria durante il runtime. di allocazione e deallocazione della memoria durante il runtime, che è fondamentale per inferenza in tempo reale.

Motori di inferenza comuni

I diversi motori sono adattati a specifici ecosistemi hardware e obiettivi di prestazioni:

  • NVIDIA TensorRT: ottimizzatore e runtime di inferenza di deep learning ad alte prestazioni per le GPU NVIDIA . È ampiamente utilizzato nei data center e nelle applicazioni automobilistiche. È possibile esportare i modelli Ultralytics in TensorRT per ottenere la massima velocità. velocità.
  • Intel OpenVINO: il programma Open Visual Inference and Neural Network Optimization (Ottimizzazione della rete neurale e dell'inferenza visiva aperta) ottimizza i modelli per l'hardware Intel , comprese le CPU e le GPU integrate. CPU e GPU integrate. Consente un approccio "write once, distribuire ovunque" all'interno dell'ecosistema Intel .
  • RuntimeONNX : Un motore multipiattaforma sviluppato da Microsoft che supporta il sistema di ONNX formato. Consente ai modelli addestrati in un unico framework di funzionare in modo efficiente su diversi backend hardware.
  • TensorFlow Lite: Progettato per i dispositivi mobili e IoT, TensorFlow Lite consente l'inferenza a bassa latenza su Android, iOS e sistemi embedded. sistemi embedded.

Applicazioni nel mondo reale

I motori di inferenza sono la spina dorsale invisibile delle moderne applicazioni di intelligenza artificiale, che consentono loro di reagire istantaneamente al mondo.

  1. Guida autonoma: Nell'industria automobilistica, i veicoli si affidano alla visione computerizzata per navigare in modo sicurezza. Un motore di inferenza in esecuzione sul computer di bordo dell'auto elabora i flussi video per eseguire il rilevamento di pedoni, altri veicoli e segnali stradali. veicoli e segnali stradali. Utilizzando un modello come YOLO11, il motore garantisce che queste previsioni avvengano in millisecondi, consentendo all'auto di frenare o sterzare autonomamente in tempo reale. tempo reale.
  2. Produzione intelligente: Le linee di produzione utilizzano motori di inferenza per il controllo automatico della qualità. Le telecamere ad alta velocità catturano le immagini dei prodotti su un nastro trasportatore e un motore di inferenza le elabora per rilevare difetti come crepe o disallineamenti. detect difetti come crepe o disallineamenti. Questo sistema ad alta produttività impedisce la spedizione di prodotti difettosi e riduce i costi di ispezione manuale. e riduce i costi delle ispezioni manuali.

Motore di inferenza e struttura di formazione

È importante distinguere tra gli strumenti utilizzati per creare i modelli e quelli utilizzati per eseguirli.

  • Framework di formazione (ad esempio, PyTorch, Keras): Sono progettati per la flessibilità e la sperimentazione. Supportano la retropropagazione, l'aggiornamento del gradiente e i grafi dinamici, che sono essenziali per l'apprendimento, ma sono computazionalmente costosi. computazionalmente costosi.
  • Motori di inferenza (ad esempio, TensorRT, ONNX Runtime): Sono progettati per garantire velocità ed efficienza. Essi trattano il modello come un insieme statico di operazioni da eseguire il più velocemente possibile. In genere non supportano l'addestramento o l'apprendimento di nuovi modelli.

Esportazione per inferenza

Per utilizzare un motore di inferenza specifico, spesso è necessario esportare il modello addestrato in un formato compatibile. Ad esempio esempio, l'esportazione di un modello YOLO11 in formato ONNX consente di eseguirlo con ONNX Runtime o di importarlo in altri motori.

from ultralytics import YOLO

# Load a trained YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format for use with ONNX Runtime
# This creates 'yolo11n.onnx' optimized for inference
model.export(format="onnx")

Sfruttando un motore di inferenza, gli sviluppatori possono sbloccare il pieno potenziale dei loro modelli di IA, assicurando che funzionino senza problemi in ambienti di produzione che vanno dai cluster cloud ai dispositivi edge a batteria. senza problemi in ambienti di produzione che vanno dai cluster cloud ai dispositivi edge alimentati a batteria.

Unitevi alla comunità di Ultralytics

Entra nel futuro dell'AI. Connettiti, collabora e cresci con innovatori globali

Iscriviti ora