TPU (Tensor Processing Unit)
Scopri come le unità di elaborazione tensoriale (TPU) accelerano il machine learning. Apprendi come ottimizzare Ultralytics YOLO26 per le Edge TPU e l’addestramento nel cloud, per ottenere la massima velocità.
Un'unità di elaborazione tensoriale (TPU) è un circuito integrato specifico per applicazioni (ASIC) progettato da Google appositamente per accelerare i carichi di lavoro di apprendimento automatico (ML). A differenza dei processori generici, che gestiscono un'ampia gamma di attività di calcolo, le TPU sono progettate da zero per ottimizzare le massicce operazioni matriciali fondamentali per le reti neurali. Questa specializzazione consente loro di raggiungere un throughput e un'efficienza energetica eccezionalmente elevati, rendendole un elemento centrale delle infrastrutture moderne di intelligenza artificiale (AI), in particolare nell'ecosistema Google Cloud. Le TPU svolgono un ruolo fondamentale nel ridurre il tempo necessario sia per addestrare modelli complessi sia per eseguire l'inferenza in tempo reale su larga scala.
Architettura e funzionalità#
L'architettura di una TPU differisce notevolmente da quella dei processori tradizionali. Una CPU (unità centrale di elaborazione) standard è efficace nelle attività sequenziali e nella logica complessa, mentre una GPU (unità di elaborazione grafica) usa core paralleli per la grafica e il calcolo generico; una TPU, invece, utilizza un'architettura ad array sistolico. Questo design permette ai dati di scorrere simultaneamente attraverso migliaia di moltiplicatori senza accedere alla memoria per ogni operazione. Massimizzando la densità di calcolo e minimizzando la latenza, le TPU sono particolarmente adatte all'algebra lineare intensiva delle applicazioni di deep learning (DL).
Questo hardware specializzato è fortemente ottimizzato per framework come TensorFlow e sempre più supportato da PyTorch, consentendo agli sviluppatori di addestrare enormi modelli fondazionali o distribuire soluzioni edge efficienti senza riscrivere completamente le proprie codebase.
Distinguere le unità di elaborazione#
Comprendere il panorama hardware è fondamentale per ottimizzare le operazioni di machine learning (MLOps).
- CPU: il «cervello» generico di un computer, ideale per l’elaborazione sequenziale, la preelaborazione dei dati e la gestione di logiche complesse. Viene spesso utilizzata nelle pipeline di aumento dei dati, ma è più lenta nei calcoli matriciali intensivi.
- GPU: originariamente progettate per il rendering delle immagini, le GPU sono lo standard del settore per l’addestramento dei modelli, grazie alla loro versatilità e all’enorme parallelismo. Sono eccellenti per addestrare modelli flessibili come Ultralytics YOLO26.
- TPU: un acceleratore progettato per uno scopo specifico, che sacrifica la flessibilità in favore della velocità pura nelle operazioni sui tensori. È progettato per massimizzare i FLOPS (operazioni in virgola mobile al secondo) in particolare nei calcoli delle reti neurali, offrendo spesso un’efficienza energetica superiore per determinati carichi di lavoro su larga scala.
Applicazioni nel mondo reale#
Le TPU vengono impiegate in ambienti diversi, dai grandi cluster cloud ai minuscoli dispositivi edge.
-
Addestramento di modelli linguistici di grandi dimensioni: Google utilizza vasti cluster interconnessi, noti come TPU Pod, per addestrare enormi modelli linguistici di grandi dimensioni (LLM), come PaLM e Gemini. Questi sistemi possono elaborare petabyte di dati di addestramento in una frazione del tempo richiesto dall’hardware tradizionale, accelerando i progressi nell’IA generativa.
-
IA edge e IoT: la Coral Edge TPU porta questa accelerazione sui dispositivi a basso consumo. Consente applicazioni efficienti di visione artificiale (CV), ad esempio l’esecuzione del rilevamento degli oggetti su una linea di produzione per individuare localmente i difetti. Questo permette di prendere decisioni immediate senza dipendere dalla connettività cloud, preservando larghezza di banda e privacy.
Usare le TPU con Ultralytics#
Gli sviluppatori possono sfruttare l’accelerazione TPU per i modelli Ultralytics, in particolare usando la Ultralytics Platform per l’addestramento cloud o esportando i modelli per la distribuzione edge. La Edge TPU, ad esempio, richiede che i modelli vengano quantizzati e compilati appositamente per la sua architettura.
L’esempio seguente mostra come esportare un modello Ultralytics YOLO26 nel formato TFLite, un passaggio preliminare necessario prima della compilazione per una Edge TPU:
from ultralytics import YOLO
# Carica l'ultimo modello YOLO26 nano leggero
model = YOLO("yolo26n.pt")
# Esporta il modello nel formato TFLite
# Crea un file '.tflite' adatto alla distribuzione su dispositivi mobili ed edge
# Imposta int8=True per la quantizzazione, spesso necessaria per le prestazioni della Edge TPU
model.export(format="tflite", int8=True)Una volta esportato, il modello può essere ulteriormente compilato per la Edge TPU con Edge TPU Compiler, così da poter essere eseguito in modo efficiente su dispositivi come Raspberry Pi con un Coral USB Accelerator. Per maggiori dettagli sulla distribuzione, può essere molto utile consultare la documentazione sull’integrazione TFLite.










