TPU (Tensor Processing Unit)
Scopri come le unità di elaborazione dei tensori (TPUs) accelerano il machine learning. Impara a ottimizzare Ultralytics YOLO26 per Edge TPU e l'addestramento nel cloud alla massima velocità.
Una unità di elaborazione tensoriale (TPU) è un circuito integrato specifico per applicazione (ASIC) progettato da Google appositamente per accelerare i carichi di lavoro di apprendimento automatico (ML). A differenza dei processori per uso generico, che gestiscono un'ampia gamma di attività di calcolo, le TPU sono progettate fin dall'inizio per ottimizzare le enormi operazioni matriciali fondamentali per le reti neurali. Questa focalizzazione consente loro di raggiungere un throughput e un'efficienza energetica eccezionalmente elevati, rendendole un elemento fondamentale dell'infrastruttura moderna di intelligenza artificiale (AI), in particolare nell'ecosistema Google Cloud. Svolgono un ruolo essenziale nel ridurre il tempo necessario sia per addestrare modelli complessi sia per eseguire inferenza in tempo reale su larga scala.
Architettura e funzionalità#
L'architettura di una TPU differisce significativamente da quella dei processori tradizionali. Mentre una CPU (unità centrale di elaborazione) standard eccelle nelle attività sequenziali e nella logica complessa, e una GPU (unità di elaborazione grafica) utilizza core paralleli per la grafica e il calcolo generico, una TPU utilizza un'architettura ad array sistolico. Questo design consente ai dati di attraversare simultaneamente migliaia di moltiplicatori senza accedere alla memoria per ogni operazione. Massimizzando la densità di calcolo e riducendo al minimo la latenza, le TPU sono particolarmente adatte all'algebra lineare complessa presente nelle applicazioni di apprendimento profondo (DL).
Questo hardware specializzato è fortemente ottimizzato per framework come TensorFlow ed è sempre più supportato da PyTorch, consentendo agli sviluppatori di addestrare enormi modelli fondazionali o distribuire soluzioni efficienti all'edge senza dover riscrivere completamente le proprie basi di codice.
Distinzione tra unità di elaborazione#
Comprendere il panorama hardware è fondamentale per ottimizzare le operazioni di machine learning (MLOps).
- CPU: Il "cervello" per uso generico di un computer, ideale per l'elaborazione sequenziale, la preelaborazione dei dati e la gestione della logica complessa. Viene spesso utilizzata nelle pipeline di aumento dei dati, ma è più lenta nei calcoli matriciali complessi.
- GPU: Originariamente sviluppate per il rendering delle immagini, le GPU sono lo standard del settore per l'addestramento dei modelli grazie alla loro versatilità e al massiccio parallelismo. Sono eccellenti per addestrare modelli flessibili come Ultralytics YOLO26.
- TPU: Un acceleratore progettato appositamente che sacrifica la flessibilità a favore della velocità pura nelle operazioni sui tensori. È progettato per massimizzare i FLOPS (operazioni in virgola mobile al secondo) specificamente per i calcoli delle reti neurali, offrendo spesso prestazioni per watt superiori per determinati carichi di lavoro su larga scala.
Applicazioni nel mondo reale#
Le TPU vengono utilizzate in diversi ambienti, dai grandi cluster cloud ai piccoli dispositivi edge.
-
Addestramento di modelli linguistici di grandi dimensioni: Google utilizza enormi cluster interconnessi, noti come TPU Pod, per addestrare vasti 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), come l'esecuzione del rilevamento degli oggetti su una linea di produzione per identificare localmente i difetti. Ciò consente di prendere decisioni immediate senza dipendere dalla connettività cloud, preservando la larghezza di banda e la privacy.
Utilizzo delle TPU con Ultralytics#
Gli sviluppatori possono sfruttare l'accelerazione delle TPU per i modelli Ultralytics, in particolare quando utilizzano la Ultralytics Platform per l'addestramento nel cloud o esportano i modelli per la distribuzione edge. La Edge TPU, ad esempio, richiede che i modelli vengano quantizzati e compilati specificamente 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
# Load the latest lightweight YOLO26 nano model
model = YOLO("yolo26n.pt")
# Export the model to TFLite format
# This creates a '.tflite' file suitable for mobile and edge deployment
# Set int8=True for quantization, which is often required for Edge TPU performance
model.export(format="tflite", int8=True)Una volta esportato, il modello può essere ulteriormente compilato per la Edge TPU utilizzando l'Edge TPU Compiler, consentendone l'esecuzione 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.









