Scopri come la precisione dimezzata (FP16) accelera l'IA con un calcolo più rapido, un utilizzo ridotto della memoria e un'implementazione efficiente dei modelli.
La mezza precisione è un formato di numero binario in virgola mobile che occupa 16 bit nella memoria del computer, comunemente chiamato FP16. comunemente indicato come FP16. Nel campo in rapida evoluzione del apprendimento profondo, questo formato è una potente alternativa al formato standard a 32 bit a precisione singola (FP32) tradizionalmente utilizzato per i calcoli numerici. Riducendo riducendo il numero di bit necessari per rappresentare ogni numero, la semiprecisione riduce in modo significativo la pressione della banda di memoria e i requisiti di archiviazione per i calcoli numerici. di banda e i requisiti di archiviazione per i pesi e le attivazioni dei modelli. pesi e attivazioni del modello. Questa efficienza consente a ricercatori e ingegneri di addestrare reti reti neurali più grandi o di distribuire i modelli su hardware con risorse risorse limitate senza compromettere in modo sostanziale la precisione delle previsioni.
Lo standard IEEE 754 definisce la struttura dei numeri in virgola mobile. dove FP16 assegna 1 bit per il segno, 5 bit per l'esponente e 10 bit per la frazione (mantissa). Questa rappresentazione compatta contrasta con FP32, che utilizza 8 bit per l'esponente e 23 per la frazione. Il vantaggio principale vantaggio principale dell'uso di FP16 nella visione artificiale e altri compiti di IA è l'accelerazione delle operazioni matematiche. accelerazione delle operazioni matematiche. I moderni acceleratori hardware, come NVIDIA Tensor Cores, sono specificamente progettati per eseguire per eseguire moltiplicazioni di matrici in semiprecisione a velocità significativamente superiori rispetto alle operazioni in singola precisione.
Tuttavia, il numero ridotto di bit implica una minore gamma dinamica e una minore precisione. Questo può potenzialmente portare a instabilità numerica, come gradienti che svaniscono, quando i numeri diventano troppo troppo piccoli perché il computer possa rappresentarli in modo distinto da zero. Per mitigare questo problema, gli sviluppatori utilizzano spesso strategie di precisione mista, che passano dinamicamente tra FP16 e FP32 durante l'addestramento per mantenere la stabilità e sfruttare la velocità della mezza precisione.
La mezza precisione è onnipresente nei moderni flussi di lavoro dell'intelligenza artificiale, in particolare negli scenari che richiedono un elevato throughput o una bassa latenza. latenza.
Quadri come PyTorch e biblioteche come
ultralytics rendono semplice l'utilizzo della semiprecisione. L'esempio seguente mostra come
esportare un modello YOLO11 nel file TensorRT utilizzando il formato FP16, una pratica
pratica comune per ottimizzare la velocità di inferenza sulle GPU NVIDIA .
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TensorRT engine with half-precision enabled
# The 'half=True' argument ensures weights are converted to FP16
model.export(format="engine", half=True)
Per comprendere la semiprecisione è necessario distinguerla dalle tecniche di ottimizzazione correlate che si trovano nel glossario:
Padroneggiando questi formati, gli sviluppatori possono assicurarsi che le loro strategie di strategie di distribuzione dei modelli siano ottimizzate per i specifici requisiti hardware e prestazionali dei loro progetti.