Scopri come un motore di inferenza ottimizza i modelli di machine learning come Ultralytics per l'implementazione in tempo reale. Esplora oggi stesso i suggerimenti sulle prestazioni per l'Edge AI.
Un motore di inferenza è un componente software specializzato progettato per eseguire modelli di apprendimento automatico addestrati e generare previsioni da nuovi dati. A differenza della fase di addestramento, che si concentra sull'apprendimento di modelli attraverso processi computazionali intensivi come la retropropagazione, un motore di inferenza è strettamente ottimizzato per la fase operativa nota come implementazione del modello. Il suo obiettivo principale è quello di eseguire i calcoli nel modo più efficiente possibile, riducendo al minimo la latenza di inferenza e massimizzando il throughput sull' hardware di destinazione, che si tratti di un server cloud scalabile o di un dispositivo Edge AI alimentato a batteria . Eliminando il sovraccarico richiesto per l' addestramento, questi motori consentono alle reti neurali complesse di funzionare in applicazioni in tempo reale .
Il passaggio da un ambiente di addestramento a un motore di inferenza comporta in genere diverse fasi di ottimizzazione volte a snellire la struttura del modello. Poiché il modello non ha più bisogno di apprendere, il motore può scartare i dati necessari per gli aggiornamenti del gradiente, congelando di fatto i pesi del modello. Le tecniche comunemente utilizzate dai motori di inferenza includono la fusione dei livelli, in cui più operazioni vengono combinate in un unico passaggio per ridurre l'accesso alla memoria, e la quantizzazione del modello, che converte i pesi da formati in virgola mobile ad alta precisione a numeri interi a precisione inferiore (ad esempio, INT8).
Queste ottimizzazioni consentono ad architetture avanzate come Ultralytics di funzionare a velocità incredibilmente elevate senza perdite significative in termini di accuratezza. Motori diversi sono spesso adattati a specifici ecosistemi hardware per sbloccare le massime prestazioni:
I motori di inferenza sono i silenziosi motori dietro molte delle moderne comodità dell'intelligenza artificiale, che consentono ai sistemi di visione artificiale di reagire istantaneamente al loro ambiente.
È utile distinguere tra il software utilizzato per creare il modello e il motore utilizzato per eseguirlo. Un framework di addestramento (come PyTorch o TensorFlow) fornisce gli strumenti per progettare architetture, calcolare le perdite e aggiornare i parametri tramite apprendimento supervisionato. Dà priorità alla flessibilità e alle capacità di debug.
Al contrario, il motore di inferenza prende l'artefatto finito dal framework di addestramento e dà priorità alla velocità di esecuzione e all'efficienza della memoria. Sebbene sia possibile eseguire l'inferenza all'interno di un framework di addestramento, raramente è efficiente quanto l'utilizzo di un motore dedicato, soprattutto per l'implementazione su telefoni cellulari o dispositivi integrati tramite strumenti come TensorFlow o Apple Core ML.
Il ultralytics Il pacchetto astrae gran parte della complessità dei motori di inferenza, consentendo agli utenti di
eseguire previsioni senza soluzione di continuità. Dietro le quinte, gestisce la pre-elaborazione delle immagini e l'esecuzione del modello.
Per gli utenti che desiderano scalare, il Piattaforma Ultralytics semplifica il
processo di addestramento ed esportazione dei modelli in formati ottimizzati compatibili con vari motori di inferenza.
L'esempio seguente mostra come caricare un modello YOLO26 pre-addestrato ed eseguire l'inferenza su un'immagine:
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Run inference on an image from a URL
# The 'predict' method acts as the interface to the inference process
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()