L'inferenza in tempo reale si riferisce al processo in cui un modello di apprendimento automatico (ML) addestrato fa previsioni o prende decisioni immediatamente quando arrivano nuovi dati. A differenza dell'inferenza batch, che elabora i dati in gruppi raccolti nel tempo, l'inferenza in tempo reale privilegia la bassa latenza e le risposte immediate. Questa capacità è essenziale per le applicazioni che richiedono un feedback immediato o un'azione basata su flussi di dati in tempo reale, consentendo ai sistemi di reagire in modo dinamico a condizioni mutevoli.
Capire l'inferenza in tempo reale
In pratica, l'inferenza in tempo reale implica l'impiego di un modello di ML, come ad esempio un modello di Ultralytics YOLO per la computer vision, in modo che possa analizzare i singoli input di dati (come i fotogrammi di un video o le letture di un sensore) e produrre output con un ritardo minimo. Il parametro chiave delle prestazioni è la latenza di inferenza, ovvero il tempo che intercorre tra la ricezione di un input e la generazione di una previsione. Il raggiungimento di una bassa latenza spesso comporta diverse strategie:
- Ottimizzazione del modello: Tecniche come la quantizzazione del modello (riduzione della precisione dei pesi del modello) e la potatura del modello (rimozione dei parametri del modello meno importanti) vengono utilizzate per creare modelli più piccoli e veloci.
- Accelerazione hardware: L'utilizzo di hardware specializzato come GPU, TPU o acceleratori AI dedicati sui dispositivi edge (ad esempio, NVIDIA Jetson, Google Coral Edge TPU) velocizza notevolmente i calcoli.
- Software efficiente: Utilizzando motori di inferenza ottimizzati e runtime come TensorRT, OpenVINOo ONNX Runtime aiuta a massimizzare le prestazioni sull'hardware di destinazione. Framework come PyTorch offrono anche funzioni che supportano un'inferenza efficiente.
Inferenza in tempo reale vs. inferenza batch
La differenza principale sta nel modo in cui i dati vengono elaborati e nei requisiti di latenza associati:
- Inferenza in tempo reale: Elabora singoli punti di dati o piccoli mini-batch non appena arrivano. Si concentra sulla minimizzazione della latenza per ottenere risultati immediati. Ideale per i sistemi interattivi o per le applicazioni che reagiscono agli eventi in tempo reale.
- Inferenza batch: Elabora grandi volumi di dati accumulati nel tempo. Si concentra sulla massimizzazione del throughput (elaborazione efficiente di grandi quantità di dati) piuttosto che sulla minimizzazione della latenza per le singole previsioni. È adatto per l'analisi offline, per la creazione di rapporti o per attività in cui i risultati immediati non sono critici, come spiegato nella panoramica sulla predizione batch diGoogle Cloud.
Applicazioni dell'inferenza in tempo reale
L'inferenza in tempo reale è alla base di molte moderne applicazioni di intelligenza artificiale in cui è fondamentale prendere decisioni istantanee:
- Sistemi autonomi: Le auto a guida autonoma si basano molto sull'inferenza in tempo reale per il rilevamento degli oggetti (identificazione di pedoni, veicoli, ostacoli) e la navigazione, consentendo al veicolo di reagire istantaneamente all'ambiente circostante. I modelli Ultralytics sono spesso utilizzati nello sviluppo dell'intelligenza artificiale per le auto a guida autonoma.
- Sicurezza e sorveglianza: I sistemi di sicurezza basati sull'intelligenza artificiale utilizzano l'inferenza in tempo reale per rilevare intrusioni, identificare attività sospette o monitorare la folla nei feed video in diretta, consentendo allarmi e risposte immediate.
- Diagnostica sanitaria: Nell'analisi delle immagini mediche, l'inferenza in tempo reale può assistere i medici durante le procedure fornendo un feedback istantaneo o evidenziando le anomalie nelle immagini dal vivo come gli ultrasuoni, migliorando potenzialmente l'accuratezza diagnostica.
- Automazione industriale: L'inferenza in tempo reale consente il controllo automatizzato della qualità nella produzione, identificando istantaneamente i difetti sulle linee di produzione o guidando i bracci robotici per compiti precisi.
Piattaforme come Ultralytics HUB forniscono strumenti per addestrare, ottimizzare e distribuire i modelli, facilitando l'implementazione di soluzioni di inferenza in tempo reale attraverso varie opzioni di distribuzione.