Che cos'è l'inferenza AI?

Pubblicato il 18 giugno 2024
Aggiornato il 13 gennaio 2026
An abstract design featuring a grid of white dots connected by colorful lines on a black background. The pattern includes diagonal blue lines and scattered red dots, creating a dynamic visual effect. The image emphasizes geometric shapes and vibrant contrasts.
By Dave Bergmann

Spiegazione semplice dell'inferenza AI

Nel machine learning, l'inferenza AI è l'atto di utilizzare un modello AI addestrato per fare previsioni su nuovi dati. In sostanza, qualsiasi istanza di un modello di intelligenza artificiale che effettivamente genera output o prende decisioni in un'applicazione AI reale costituisce inferenza AI. In parole povere, l'inferenza AI consiste in un modello addestrato che applica i pattern appresi dai suoi dati di addestramento per dedurre l'output corretto per un dato input.

Tutto il machine learning, dai modelli di rilevamento e-mail ai sistemi di navigazione che sono alla base delle auto a guida autonoma fino all'AI generativa, si riduce al riconoscimento di pattern. I modelli vengono "addestrati" per funzionare correttamente su un set di dati di compiti campione o punti dati. Durante l'addestramento del modello, i parametri (e gli iperparametri) del modello vengono regolati finché il processo decisionale del modello non si adatta ai pattern dei dati di addestramento. Il presupposto fondamentale del machine learning è che se i dati di addestramento sono sufficientemente pertinenti a ciò che il modello vedrà negli scenari del mondo reale, farà previsioni accurate in quei casi d'uso reali.

Mentre gran parte del gergo dell'AI è altamente tecnico, "inferenza AI" è in realtà un termine letterale e intuitivo.

  • Un modello di previsione del mercato azionario non sa come cambierà il prezzo di una determinata azione, ma deduce, in base al confronto tra la storia di quell'azione e le tendenze passate dei movimenti dei prezzi azionari, cosa accadrà in futuro.

  • Un modello di rilevamento dello spam non sa se una determinata e-mail è spam, ma deduce, in base a quanto quell'e-mail assomiglia agli esempi di spam che ha visto durante l'addestramento, se si tratta di spam o meno.

  • I social network deducono con quali contenuti hai maggiori probabilità di interagire in base ai contenuti con cui tu e le persone simili a te avete interagito in precedenza.

Mentre l'obiettivo dell'addestramento dell'AI è il raggiungimento dell'accuratezza e dell'allineamento del modello, l'obiettivo dell'inferenza AI è l'impiego del modello addestrato nel modo più efficiente e conveniente possibile. Lo stesso modello AI potrebbe funzionare in modo diverso in diversi framework.

Non esiste un'unica configurazione di inferenza AI "ottimale". Esistono molti modi diversi per suddividere i workload, diversi tipi di hardware (e algoritmi computazionali con cui utilizzarli) e diversi ambienti in cui accedere a tale hardware. La configurazione ideale per un determinato scenario dipenderà dalla natura del caso d'uso e del workload. Per le aziende, la sfida è di solito quella di identificare un approccio di inferenza che bilanci il desiderio di bassa latenza con la necessità di essere scalabile ed efficiente dal punto di vista dei costi.

Inferenza e addestramento AI a confronto

Sia l'inferenza AI che l'addestramento AI prevedono che un modello faccia previsioni sui dati di input. La differenza risiede nei rispettivi scopi e, nel caso dell'addestramento dell'AI, nei passi aggiuntivi intrapresi per raggiungere tale scopo.

L'addestramento è la fase di "apprendimento" del machine learning. Nell'addestramento dei modelli, un modello di machine learning fa previsioni su una serie di esempi di dati di addestramento. Nell'apprendimento supervisionato, una funzione di perdita calcola l'errore medio (o "perdita") di ogni previsione, e viene utilizzato un algoritmo di ottimizzazione per aggiornare i parametri del modello in modo da ridurre la perdita. Questo processo viene ripetuto iterativamente finché la perdita non è stata minimizzata a un livello accettabile. L'apprendimento per rinforzo funziona in modo simile, anche se con l'obiettivo di massimizzare una funzione di ricompensa invece di ridurre al minimo una funzione di perdita.

In breve, l'addestramento dell'AI in genere comporta sia un passaggio in avanti in cui il modello genera un output in risposta a ciascun input sia un passaggio all'indietro in cui vengono calcolati i potenziali miglioramenti dei parametri del modello. Questi aggiornamenti dei parametri comprendono la "conoscenza" di un modello di machine learning.

Nell'inferenza AI, il modello addestrato effettua poi previsioni su dati di input reali. L'inferenza AI funziona utilizzando ciò che ha "imparato" (cioè gli aggiornamenti dei parametri del modello effettuati per migliorare le prestazioni sui dati di addestramento) per dedurre l'output corretto per i nuovi dati di input. A differenza dell'addestramento dei modelli, l'inferenza comporta solo un passaggio in avanti.

Sebbene formazione e inferenza siano solitamente fasi separate e distinte, vale la pena notare che non sono del tutto mutuamente esclusive. Ad esempio, l'algoritmo di raccomandazione di una piattaforma social è già stato addestrato su grandi set di dati sul comportamento degli utenti prima che tu entri nella piattaforma, ed esegue un'inferenza ogni volta che ti fornisce suggerimenti di contenuti. Ma quel modello addestrato viene anche continuamente perfezionato sui tuoi comportamenti individuali, affinando i suoi suggerimenti in base a come interagisci personalmente con i contenuti.

Tipi di inferenza AI

"Tipo" è una parola ambigua: ci sono molti modi per eseguire l'inferenza AI e quindi molti modi per delinearne le varianti. Ma le due categorie fondamentali di strategie di inferenza dell'AI sono l'inferenza in batch e l'inferenza online.

Inferenza online

Nell'inferenza online, un modello addestrato elabora immediatamente i dati di input, un input alla volta. L'inferenza online è appropriata per qualsiasi sistema di AI i cui output sono sensibili al tempo (come veicoli autonomi, offerte digitali o prezzi dinamici) o che richiedono interazioni in tempo reale con gli utenti (come chatbot o traduzione automatica).

L'inferenza online generalmente comporta costi e complessità maggiori (soprattutto per carichi di lavoro pesanti e le grandi reti neurali su cui si basano i modelli di deep learning) ma spesso è necessaria per qualsiasi caso d'uso reale che richiede decisioni in tempo reale. Un chatbot o un'auto a guida autonoma deve elaborare i dati in tempo reale per evitare di danneggiare l'esperienza dell'utente. L'utilità di un sistema AI che prevede se un determinato richiedente debba ricevere un prestito non è realmente influenzata da un leggero ritardo tra input e output, ma in un veicolo autonomo qualche millisecondo in più di ritardo potrebbe mettere in pericolo i passeggeri.

Inferenza in batch

Nell'inferenza in batch, un modello addestrato elabora un grande volume di input in modo asincrono in gruppi (o appunto "batch"). Ogni batch è in genere pianificata per un determinato orario: ad esempio, un'azienda potrebbe utilizzare l'inferenza in batch per eseguire report notturni su tutte le attività di quel giorno. Ciò consente una maggiore flessibilità ed efficienza, rendendo l'inferenza in batch l'opzione più conveniente. Tuttavia, è pratica solo in situazioni in cui la tempestività non è importante.

L'inferenza in batch consente anche un uso più efficiente dell'hardware. Ad esempio, le GPU contengono migliaia di unità di elaborazione (o "core"), ognuna delle quali può eseguire calcoli simultaneamente in parallelo. Eseguire un'inferenza per un singolo input che non coinvolge tutti quei core è come lasciare posti vuoti su un autobus: potrebbe essere necessario in situazioni urgenti, ma non è un uso ottimale delle risorse. L'inferenza in batch ti permette di eseguire l'inferenza solo quando l'hardware è "sfruttato appieno", per così dire.

Inoltre, i parametri del modello, che per i modelli di deep learning spesso comprendono letteralmente miliardi di pesi del modello, devono essere caricati nella memoria di sistema ogni volta che viene eseguita un'inferenza. Ciò comporta consumo energetico e costi. L'inferenza in batch riduce il numero di volte in cui i pesi devono essere caricati nella RAM, distribuendo il costo sull'intera batch.

Micro-batching

Il micro-batching è un approccio intermedio tra l'inferenza online e quella in batch: come suggerisce il nome, consiste nell'esecuzione dell'inferenza in piccole batch.

Non esiste una dimensione della batch chiara e quantificabile che differenzia il "micro-batching" dal "batching". Al contrario, i due approcci si differenziano principalmente per i loro obiettivi: il micro-batching mira ad aumentare la velocità del modello preservando (per lo più) la velocità del modello, mentre l'inferenza in batch convenzionale mira a massimizzare l'efficienza e generalmente non tiene conto della latenza. Nell'inferenza in batch, un input può essere elaborato minuti o addirittura ore dopo averlo ricevuto, ma il micro-batching di solito punta a un ritardo di pochi millisecondi.

Forse l'applicazione più importante del micro-batching è nell'inferenza LLM basata su cloud tramite importanti piattaforme come Claude di Anthropic o ChatGPT di OpenAI. Quando migliaia di utenti inviano un chatbot contemporaneamente, questi servizi di solito elaborano più prompt in parallelo, aumentando l'efficienza senza un ritardo percepibile per i singoli utenti finali.

Ambienti di inferenza AI

Una delle considerazioni più importanti nella progettazione di un ecosistema AI è decidere dove verrà effettivamente eseguito il workload di inferenza. In altre parole, dove si trova l'hardware e come potrai accedervi.

Gli ambienti di distribuzione generalmente rientrano in una di quattro categorie, ognuna delle quali ha i propri punti di forza e svantaggi.

  • On-premise

  • Cloud

  • Implementazione periferica

  • Sul dispositivo

Implementazione on-premise

Nella distribuzione on-premise (o "on-prem"), i modelli AI vengono eseguiti su hardware fisico di proprietà dell'utente (o della sua organizzazione), che ne cura la manutenzione.

La distribuzione on-premise offre il massimo controllo possibile sui workload dell'AI, poiché tu stesso hai autonomia su come e quando i dati vengono elaborati e le risorse computazionali allocate. Ciò risulta particolarmente vantaggioso in settori altamente regolamentati come la sanità, la finanza, il governo e il diritto, dove il rispetto dei requisiti in materia di privacy dei dati e sicurezza dei dati è obbligatorio.

Questo controllo comporta un compromesso in termini di costi e manodopera. La distribuzione on-premise, in particolare con l'hardware necessario per workload a livello aziendale e modelli di grandi dimensioni tipicamente associati all'IA generativa, comporta un importante investimento iniziale. E comporta anche la necessità di professionisti IT dedicati per gestire tali server.

Distribuzione cloud

Nella distribuzione cloud, i modelli vengono eseguiti su server remoti gestiti da fornitori terzi (come IBM) in un data center di grandi dimensioni. Ciò consente a un'organizzazione di utilizzare un hardware AI ad alta potenza senza l'ingente investimento iniziale richiesto per l'acquisto o il lavoro continuo per la manutenzione. Per questo motivo, l'implementazione nel cloud rappresenta in genere il percorso più rapido verso la scalabilità, soprattutto nelle circostanze in cui è necessario scalare rapidamente le risorse computazionali per soddisfare un picco di domanda.

Questa flessibilità e scalabilità comporta un compromesso in termini di sovranità dei dati e, in alcuni casi, di latenza e costi a lungo termine. I dati potrebbero viaggiare avanti e indietro dai server cloud, il che potrebbe avere un effetto negativo sulla velocità di inferenza (anche se spesso questo viene annullato dall'hardware più potente di cui dispongono solitamente i provider di cloud ). Questo introduce anche complicazioni teoriche riguardo alla provenienza dei dati, poiché i dati sono esposti a più entità di quante ne avrebbero in scenari on-premise.

Implementazione edge

L'implementazione edge si riferisce all'utilizzo di risorse computazionali fisicamente vicine alla fonte dati, come tramite dispositivi Internet of Things (IoT) e reti locali.

In linea generale, la'implementazione edge può essere intesa come qualcosa di simile a un "cloud on-premise". È particolarmente utile quando i dati devono essere aggregati o distribuiti su diversi dispositivi, come sensori su una catena di assemblaggio in fabbrica o dispositivi di monitoraggio in ospedale, e processati quasi in tempo reale. In tali scenari, l'esecuzione di inferenze tramite dispositivi all'edge di una rete locale consente un'elaborazione più rapida e una maggiore privacy rispetto a quanto sarebbe possibile con la distribuzione del cloud.

Questi vantaggi sono, in parte, mitigati dal fatto che l'edge computing di solito utilizza hardware relativamente limitato rispetto a quello disponibile dai provider di cloud. E man mano che le reti locali diventano più grandi, la gestione degli aggiornamenti su centinaia o migliaia di "nodi edge" diventa sempre più complessa.

Distribuzione su dispositivo

La distribuzione su dispositivo è la più semplice: l'inferenza AI viene eseguita direttamente sul dispositivo dell'utente finale, come un laptop o uno smartphone.

La distribuzione su dispositivo è semplice e sicura, e teoricamente garantisce la massima privacy possibile per l'utente. Naturalmente, è limitata dalla capacità di calcolo del dispositivo stesso: la potenza di calcolo disponibile in uno smartphone, o anche in un computer di fascia consumer ad alte prestazioni, è generalmente ben inferiore a quella dell'hardware specializzato. In particolare sugli smartphone, l'inferenza on-device è tipicamente limitata a compiti specifici, come i filtri della fotocamera, il riconoscimento facciale o lo speech to text.

AI Academy

Diventa un esperto di AI

Acquisisci le conoscenze necessarie per dare priorità agli investimenti nell'AI alla base della crescita aziendale. Inizia oggi stesso con la nostra AI Academy gratuita e guida il futuro dell'AI nella tua organizzazione.

Hardware per l'inferenza AI

L'inferenza AI è un processo complesso che prevede l'addestramento di un modello AI su set di dati appropriati fino a quando non è in grado di dedurre risposte accurate.

Si tratta di un processo ad alta intensità di calcolo, che richiede hardware e software specializzati. Prima di esaminare il processo di addestramento dei modelli AI per l'inferenza AI, esploriamo alcuni degli hardware specializzati che lo consentono:

Unità di elaborazione grafica (GPU)

Le GPU, come suggerisce il nome, sono state originariamente progettate per il rendering della grafica (ad esempio nei videogiochi). Renderizzare grafica 3D, come eseguire inferenze per reti neurali profonde, richiede moltiplicazioni di matrici di grandi dimensioni, ad esempio per calcolare simultaneamente gli effetti di luce e texture su migliaia di pixel.

La capacità di utilizzare quel parallelismo per la matematica (anziché per la grafica) ha fatto un enorme passo avanti quando NVIDIA ha introdotto Compute Unified Device Architecture (CUDA), una piattaforma software, API e modello di programmazione che consente agli sviluppatori di scrivere codice che viene eseguito direttamente su migliaia di core della GPU. Oggi, le GPU rimangono l'hardware standard del settore per l'addestramento e l'esecuzione di modelli di deep learning.

Unità di elaborazione tensoriale (TPU)

Le TPU sono chip personalizzati proprietari di Google, costruiti specificamente per le reti neurali. Mentre le GPU sono processori paralleli flessibili e generici, le TPU sono progettate esclusivamente per la matematica matriciale ad alta velocità. Sebbene siano meno versatili delle GPU, le TPU offrono maggiore velocità ed efficienza energetica quando si elaborano enormi quantità di dati di reti neurali.

Unità di elaborazione neurale (NPU)

Le unità di elaborazione neurale (NPU), come le TPU, sono state progettate specificamente per elaborare i calcoli delle reti neurali. Vengono tipicamente utilizzate su smartphone e altri dispositivi mobili, poiché le loro funzionalità più specifiche riducono il consumo energetico rispetto a quello delle GPU.

Field Programmable Gate Array

Gli array di gate programmabili sul campo (FPGA) sono un tipo di circuito integrato configurabile che può essere programmato (e riprogrammato) per soddisfare le esigenze di applicazioni specifiche, comprese le operazioni di intelligenza artificiale. Sebbene generalmente offrano meno potenza di calcolo rispetto alle GPU di alto livello, gli FPGA sono vantaggiosi quando è necessaria una personalizzazione estrema.

Circuiti integrati specifici per l'applicazione

Gli ASICS, a differenza degli FPGA, non possono essere personalizzati o riconfigurati. Sono esplicitamente progettati per svolgere un singolo compito con la massima efficienza. I TPU di Google, ad esempio, sono ASIC progettati esclusivamente per eseguire operazioni di rete neurale tramite TensorFlow, PyTorch e JAX.

Inferenza AI distribuita

I workload di addestramento o inferenza di un modello AI generativa di grandi dimensioni spesso superano la capacità anche dei più potenti acceleratori hardware. Quando il tuo workload è troppo grande per una singola GPU, può essere distribuito su più processori utilizzando una o più tecniche di parallelismo per dividere e distribuire il lavoro. Esistono molti paradigmi di parallelismo, ma i più importanti sono il parallelismo dei dati, il parallelismo tensoriale e il parallelismo a pipeline.

Gli sviluppatori possono spesso utilizzare framework open source come vLLM per ottimizzare e semplificare il processo di distribuzione dell'inferenza su più dispositivi.

Parallelismo dei dati

Nel parallelismo dei dati, una replica del modello completo viene copiata su ciascun processore. Il set di dati di input viene quindi suddiviso in più batch (o "shard") e ogni copia del modello, ovvero ogni processore, gestisce una singola batch. Sebbene questo sia forse il mezzo più semplice di parallelismo, richiede che ogni processore sia abbastanza grande da adattare tutti i parametri del modello in memoria. Quando si tratta di LLM più grandi e modelli linguistici visivi (VLM) con decine o centinaia di miliardi di parametri, ciò è raramente possibile. In questi casi, è necessario utilizzare altri paradigmi di parallelismo.

Parallelismo della pipeline

Nel parallelismo delle pipeline, diversi strati di una rete neurale sono assegnati a diverse GPU. Ad esempio, una rete neurale a 12 livelli potrebbe essere suddivisa in 3 GPU, con la prima GPU a cui vengono assegnati i primi 4 livelli, la seconda GPU che gestisce i 4 livelli intermedi e la terza GPU che gestisce gli ultimi 4 livelli GPU. I dati vengono poi elaborati in sequenza: l'output della prima GPU viene passato alla seconda GPU, l'output della seconda GPU alla terza e la terza GPU calcola l'output finale del modello.

Un parallelismo efficiente della pipeline richiede in genere un mini-batching, in modo che ogni GPU elabori sempre i dati simultaneamente, anziché rimanere inattiva fino a quando non riceve i dati dalla GPU precedente nella sequenza. Nel nostro esempio base del paragrafo precedente, la prima GPU potrebbe iniziare a elaborare una nuova mini-batch di dati di input immediatamente dopo aver passato l'output dalla prima mini-batch alla seconda GPU.

Naturalmente, un sistema che utilizza il parallelismo delle pipeline richiede un certo tempo di "avvio" per raggiungere il pieno utilizzo dei dispositivi. Nel nostro esempio, la seconda GPU non può iniziare a lavorare finché non riceve i dati dalla prima; la terza GPU non può iniziare a lavorare finché le prime due GPU non hanno elaborato l'intera mini-batch; la quarta GPU non può iniziare finché la terza non ha finito.

Parallelismo tensoriale

Per i modelli molto grandi, anche un singolo livello potrebbe essere troppo grande per essere montato su un solo processore. Nel parallelismo tensoriale, gli stessi livelli sono suddivisi, con ogni processore che riceve una porzione del tensore dei pesi del modello. Gli embedding vettoriali, cioè la rappresentazione tensoriale, dei dati di input viene anch'essa suddiviso, con ogni processore che riceve un sottoinsieme corrispondente dei dati di input.

Il parallelismo tensoriale riduce significativamente le richieste di memoria su ciascun dispositivo, poiché ogni processore deve caricare tensori più piccoli in memoria rispetto ad altri paradigmi di parallelismo. Questo comporta un certo compromesso in termini di complessità, in quanto è necessaria una maggiore quantità di comunicazione all'interno del dispositivo e di passaggi matematici per intrecciare gli output di ciascuna GPU.

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Soluzioni correlate
IBM watsonx.ai

Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Consulenza e servizi sull'AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.

Esplora i servizi AI
Fai il passo successivo

Ottieni l'accesso completo a funzionalità che coprono l'intero ciclo di vita dello sviluppo dell'AI. Crea soluzioni AI all'avanguardia con interfacce intuitive, workflow e accesso alle API e agli SDK standard di settore.

  1. Esplora watsonx.ai
  2. Prenota una demo live