Glossario

Motore di inferenza

Scoprite come i motori di inferenza alimentano l'IA fornendo previsioni in tempo reale, ottimizzando i modelli e consentendo la distribuzione multipiattaforma.

Un motore di inferenza è un componente software specializzato che esegue un modello di apprendimento automatico addestrato per generare previsioni da nuovi dati non visti. Dopo aver addestrato un modello utilizzando un framework come PyTorch o TensorFlow, il motore di inferenza si occupa di eseguirlo in modo efficiente in un ambiente di produzione. Il suo obiettivo principale è ottimizzare il modello per la velocità e l'utilizzo delle risorse, rendendo possibile l'inferenza in tempo reale su diverse piattaforme hardware, dai potenti server cloud ai dispositivi edge con risorse limitate.

Il ruolo di un motore di inferenza

La funzione principale di un motore di inferenza è quella di colmare il divario tra un modello addestrato e la sua applicazione nel mondo reale. Esegue diverse ottimizzazioni critiche per ridurre al minimo la latenza dell'inferenza e massimizzare il throughput senza compromettere significativamente l'accuratezza.

Le principali tecniche di ottimizzazione includono:

  • Ottimizzazione del grafico: Il motore analizza il grafo computazionale del modello e applica ottimizzazioni come la "fusione dei livelli", che combina più operazioni sequenziali in una singola operazione per ridurre l'overhead computazionale.
  • Ottimizzazione specifica per l'hardware: Compila il modello per l'esecuzione su hardware specifico, come CPU, GPU o acceleratori AI specializzati come le TPU di Google. Ciò comporta l'uso di kernel di calcolo altamente ottimizzati e adattati all'architettura dell'hardware.
  • Riduzione della precisione: Tecniche come la quantizzazione del modello vengono utilizzate per convertire i pesi di un modello da numeri in virgola mobile a 32 bit a più efficienti numeri interi a 16 o 8 bit. Questo riduce drasticamente l'uso della memoria e velocizza i calcoli, il che è particolarmente importante per l'edge computing.
  • Potenziamento del modello: Un motore di inferenza può facilitare l'esecuzione di modelli in cui i pesi non necessari sono stati rimossi attraverso il model pruning, riducendo ulteriormente le dimensioni del modello e la richiesta computazionale.

Motori di inferenza più diffusi

Molte organizzazioni hanno sviluppato motori di inferenza ad alte prestazioni per accelerare i modelli di deep learning. Le scelte più popolari includono:

  • NVIDIA TensorRT: ottimizzatore e runtime ad alte prestazioni per le GPU NVIDIA, che offre velocità di inferenza all'avanguardia. Ultralytics offre una perfetta integrazione con TensorRT per la distribuzione di modelli YOLO.
  • OpenVINO di Intel: un toolkit open-source per l'ottimizzazione e la distribuzione di modelli su hardware Intel, comprese CPU e GPU integrate. I modelli Ultralytics possono essere facilmente esportati in OpenVINO.
  • Runtime ONNX: Un motore multipiattaforma sviluppato da Microsoft che può eseguire modelli nel formato ONNX (Open Neural Network Exchange) su un'ampia gamma di hardware.
  • TensorFlow Lite (TFLite): Una soluzione leggera progettata specificamente per la distribuzione di modelli su dispositivi mobili ed embedded, come quelli con sistema operativo Android e iOS.
  • Apache TVM: Un framework open-source di compilatore per l'apprendimento automatico che può ottimizzare i modelli per vari backend hardware.

Applicazioni del mondo reale

I motori di inferenza sono la spina dorsale operativa di innumerevoli applicazioni di IA.

  1. Nelle soluzioni di AI per il settore automobilistico, un motore di inferenza viene eseguito sul computer di bordo del veicolo per elaborare i dati provenienti da telecamere e sensori. Esegue un modello di rilevamento degli oggetti come Ultralytics YOLO11 per identificare pedoni, segnali stradali e altri veicoli in pochi millisecondi, consentendo di attivare funzioni di sicurezza critiche.
  2. Per la produzione intelligente, un motore di inferenza in fabbrica alimenta un sistema di visione computerizzata per il controllo della qualità. Analizza le immagini di una linea di produzione in tempo reale per rilevare i difetti, garantendo che i prodotti soddisfino gli standard di qualità con elevata velocità e affidabilità.

Motore di inferenza vs. concetti correlati

È utile distinguere un motore di inferenza da altri termini correlati in MLOps.

  • Framework di ML vs. motore di inferenza: Un framework di apprendimento automatico come PyTorch è una libreria completa per l'addestramento e la distribuzione di modelli. Include strumenti per la costruzione di reti neurali, la gestione di set di dati e l'esecuzione di cicli di formazione. Un motore di inferenza, invece, è uno strumento altamente specializzato che si concentra esclusivamente sulla fase di distribuzione. Mentre un framework ha capacità di inferenza di base, un motore di inferenza dedicato fornisce prestazioni superiori grazie a ottimizzazioni aggressive e specifiche per l'hardware.

  • Model Serving vs. Inference Engine: Il model serving si riferisce all'infrastruttura più ampia per rendere disponibile un modello su una rete, che comprende componenti come endpoint API, bilanciatori di carico e strumenti di monitoraggio. Il motore di inferenza è il componente centrale di un sistema di model serving che esegue le richieste di predizione. È possibile esplorare varie opzioni di distribuzione dei modelli per vedere come i motori di inferenza si inseriscono in un quadro più ampio. Piattaforme come Ultralytics HUB semplificano l'intero processo, dalla formazione alla distribuzione ottimizzata.

Unitevi alla comunità di Ultralytics

Entrate a far parte del futuro dell'IA. Connettetevi, collaborate e crescete con gli innovatori globali.

Iscriviti ora
Link copiato negli appunti