Glossario

Mezza precisione

Scoprite come la semiprecisione (FP16) accelera l'intelligenza artificiale con calcoli più veloci, un uso ridotto della memoria e una distribuzione efficiente dei modelli.

La mezza precisione, nota anche come FP16, è un formato di numeri in virgola mobile che utilizza 16 bit di memoria per rappresentare un numero, a differenza dei più comuni formati a 32 bit a singola precisione (FP32) o a 64 bit a doppia precisione (FP64). Nel contesto del deep learning, l'uso della semiprecisione riduce significativamente l'ingombro di memoria e i requisiti computazionali di un modello. Questo compromesso ha il costo di una riduzione dell'intervallo numerico e della precisione. Tuttavia, le tecniche moderne, in particolare l'addestramento a precisione mista, hanno reso FP16 una pietra miliare dell'apprendimento automatico (ML) efficiente, consentendo un addestramento e un'inferenza più rapidi con un impatto minimo sull'accuratezza del modello.

Come funziona la mezza precisione

Il passaggio da FP32 a FP16 dimezza la memoria necessaria per memorizzare i pesi e le attivazioni del modello. Ciò consente di utilizzare modelli più grandi, batch di dimensioni maggiori o di eseguire l'addestramento su GPU con meno memoria. Inoltre, le moderne GPU, come quelle con NVIDIA Tensor Cores, sono specificamente progettate per eseguire operazioni matriciali a 16 bit a velocità molto più elevate rispetto alle operazioni a 32 bit.

La sfida principale dell'FP16 è la sua gamma numerica limitata, che può portare a problemi come la scomparsa dei gradienti durante l'addestramento. Per ovviare a questo problema, la semiprecisione viene quasi sempre implementata con un approccio a precisione mista. Questa strategia prevede l'esecuzione della maggior parte dei calcoli in FP16 per garantire la velocità, ma l'uso strategico di FP32 per le operazioni critiche, come l'aggiornamento dei pesi e il calcolo di alcune funzioni di perdita, per mantenere la stabilità numerica. I framework di apprendimento profondo come PyTorch e TensorFlow offrono un supporto integrato per l'addestramento automatico in precisione mista.

Applicazioni ed esempi

La mezza precisione, soprattutto attraverso tecniche a precisione mista, è ampiamente utilizzata:

  1. Accelerazione della formazione dei modelli: L'addestramento di modelli di deep learning di grandi dimensioni, come quelli per la classificazione delle immagini o l'elaborazione del linguaggio naturale (NLP), può essere notevolmente accelerato utilizzando la precisione mista, riducendo i tempi e i costi di formazione. Piattaforme come Ultralytics HUB utilizzano spesso queste ottimizzazioni durante le sessioni di formazione nel cloud.
  2. Ottimizzazione dell'inferenza nel rilevamento degli oggetti: Modelli come Ultralytics YOLO11 possono essere esportati in formati come ONNX o TensorRT con precisione FP16 per una più rapida inferenza in tempo reale. Questo è fondamentale per le applicazioni che richiedono un'elevata produttività, come ad esempio un sistema di sicurezza che analizza più feed video o il controllo di qualità su una linea di produzione ad alta velocità.
  3. Distribuzione su dispositivi con risorse limitate: L'ingombro ridotto della memoria e il costo computazionale dei modelli FP16 li rendono adatti all'implementazione su piattaforme AI edge come NVIDIA Jetson o dispositivi mobili che utilizzano framework come TensorFlow Lite o Core ML di Apple.
  4. Formazione di modelli linguistici di grandi dimensioni (LLM): Le enormi dimensioni di modelli come il GPT-3 e altri modelli di base rendono necessario l'uso di formati a 16 bit per inserire i modelli nella memoria e completare l'addestramento in tempi ragionevoli.

Mezza precisione rispetto ad altri formati

  • Bfloat16 (BF16): Un formato alternativo a 16 bit sviluppato da Google, Bfloat16 assegna più bit all'esponente e meno alla mantissa rispetto a FP16. Questo gli conferisce la stessa gamma dinamica di FP32, rendendolo più resistente all'underflow e all'overflow, ma al costo di una minore precisione. È molto utilizzato nelle TPU di Google. Per saperne di più, consultare il blog di Google Cloud AI.
  • Quantizzazione del modello: Pur essendo entrambe tecniche di ottimizzazione del modello, la quantizzazione del modello converte tipicamente i pesi in virgola mobile (FP32 o FP16) in formati interi a bit inferiori, più comunemente interi a 8 bit (INT8). Questa tecnica può fornire una maggiore velocità, soprattutto sulle CPU e su alcuni acceleratori, ma spesso richiede un processo di calibrazione più attento, come il Quantization-Aware Training (QAT), per evitare un calo significativo delle prestazioni del modello.
  • A precisione singola (FP32): È il formato predefinito nella maggior parte dei framework di deep learning. Offre un'elevata precisione e un'ampia gamma dinamica, che lo rendono robusto per l'addestramento. Tuttavia, è più lento e richiede più memoria rispetto alla mezza precisione, il che lo rende meno ideale per la distribuzione di modelli di grandi dimensioni o per le applicazioni che richiedono la massima velocità. I compromessi tra questi formati sono una considerazione fondamentale, come dimostrato da vari confronti tra modelli.

Unitevi alla comunità di Ultralytics

Entrate a far parte del futuro dell'IA. Connettetevi, collaborate e crescete con gli innovatori globali.

Iscriviti ora
Link copiato negli appunti