Glossario

Precisione mista

Aumenta l'efficienza del deep learning con l'addestramento a precisione mista! Ottieni velocità maggiori, riduzione dell'uso della memoria e risparmio energetico senza sacrificare la precisione.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

L'addestramento a precisione mista è una tecnica utilizzata nel deep learning per accelerare il calcolo e ridurre i requisiti di memoria senza compromettere in modo significativo le prestazioni del modello. Per ottenere questo risultato, si utilizzano strategicamente diversi formati di precisione numerica - principalmente in virgola mobile a 16 bit (FP16 o mezza precisione) e in virgola mobile a 32 bit (FP32 o singola precisione) - per diverse parti del modello durante l'addestramento e l'inferenza. Questo approccio bilancia la velocità e l'efficienza della memoria della precisione inferiore con la stabilità numerica e l'accuratezza offerte dalla precisione superiore.

Capire la precisione numerica

I modelli di apprendimento profondo si affidano tradizionalmente al formato in virgola mobile a singola precisione (FP32) dello standard IEEE 754 per memorizzare pesi, attivazioni e gradienti. L'FP32 offre un'ampia gamma dinamica e di precisione che lo rende adatto a calcoli complessi. Tuttavia, le operazioni in FP32 richiedono una notevole potenza di calcolo e larghezza di banda della memoria. I formati di precisione inferiore, come FP16, utilizzano solo 16 bit, dimezzando l'ingombro della memoria e spesso consentendo calcoli molto più veloci su hardware compatibile, come le moderne GPU dotate di NVIDIA Tensor Cores.

Come funziona la precisione mista

La formazione a precisione mista combina in modo intelligente FP16 e FP32. L'idea di base è quella di eseguire operazioni ad alta intensità di calcolo, come le convoluzioni e le moltiplicazioni matriciali all'interno dei livelli del modello, utilizzando il più veloce formato FP16. Tuttavia, alcune operazioni sono sensibili all'intervallo e alla precisione ridotti dell'FP16. Per mantenere la stabilità e l'accuratezza del modello, le parti critiche del processo di formazione, come il calcolo delle perdite e gli aggiornamenti del gradiente, sono spesso mantenute nel più robusto formato FP32. Tecniche come la scalatura dinamica delle perdite vengono impiegate per evitare problemi di underflow o overflow numerico quando i gradienti diventano troppo piccoli o troppo grandi per la rappresentazione in FP16. Framework come PyTorch (tramite Automatic Mixed Precision - AMP) e TensorFlow (tramite tf.keras.mixed_precision API) forniscono un supporto automatico per l'implementazione dell'addestramento a precisione mista.

Vantaggi della precisione mista

L'implementazione della precisione mista offre diversi vantaggi chiave:

  • Formazione più veloce: Le operazioni FP16 possono essere significativamente più veloci sull'hardware supportato, riducendo i tempi di formazione.
  • Riduzione dell'uso della memoria: La memorizzazione dei pesi e delle attivazioni del modello in FP16 dimezza i requisiti di memoria, consentendo di utilizzare modelli più grandi o di aumentare le dimensioni dei batch, migliorando così la dinamica dell'addestramento.
  • Efficienza energetica: La velocità di calcolo e la riduzione del movimento dei dati comportano un minor consumo energetico durante la formazione e l'inferenza.
  • Accuratezza mantenuta: Se implementata correttamente con tecniche come il loss scaling, la precisione mista raggiunge in genere un'accuratezza paragonabile a quella dell'addestramento FP32 completo. Per maggiori dettagli sull'ottimizzazione dell'addestramento, consulta questi consigli sull'addestramento dei modelli.

Applicazioni del mondo reale

La precisione mista è ampiamente utilizzata in vari ambiti dell'IA:

  1. Visione artificiale: Modelli di rilevamento degli oggetti all'avanguardia, tra cui Ultralytics YOLO modelli come YOLOv8 e YOLO11spesso sfruttano la precisione mista durante l'addestramento. Questo permette loro di allenarsi più velocemente e di gestire dataset più grandi come COCO o Objects365, consentendo in ultima analisi una distribuzione efficiente su piattaforme che vanno dai server cloud ai dispositivi edge come NVIDIA Jetson.
  2. Elaborazione del linguaggio naturale (NLP): L'addestramento di modelli linguistici di grandi dimensioni (LLM) come GPT-3 e BERT è computazionalmente intenso. L'addestramento a precisione mista è fondamentale per gestire i requisiti di memoria e di calcolo, rendendo possibile l'addestramento di questi modelli per compiti come la generazione di testi, la traduzione automatica e l'analisi del sentimento.

Considerazioni e concetti correlati

Sebbene sia molto vantaggiosa, un'implementazione di precisione mista di successo richiede:

  • Supporto hardware: Per ottenere accelerazioni ottimali è necessario un hardware specificamente progettato per l'accelerazione del calcolo FP16 (ad esempio, NVIDIA Volta, Turing, Ampere o GPU più recenti).
  • Stabilità numerica: È necessaria un'attenta gestione, spesso attraverso strumenti di struttura automatizzati e scalatura delle perdite, per evitare problemi legati alla gamma limitata di FP16.
  • Integrazione con i framework: Sfruttare il supporto integrato nei framework di deep learning come PyTorch o TensorFlow semplifica l'implementazione.

È importante distinguere la formazione a precisione mista dalla quantizzazione del modello. Sebbene entrambi prevedano l'uso di una precisione inferiore, la quantizzazione converte i modelli in formati a bit ancora più bassi (come INT8) principalmente per ottimizzare la velocità di inferenza e ridurre le dimensioni del modello per l'implementazione su dispositivi con risorse limitate, spesso dopo l'addestramento iniziale. La precisione mista si concentra sull'accelerazione del processo di addestramento stesso, combinando FP16 e FP32.

La precisione mista è diventata una tecnica standard nel toolkit del deep learning, che consente di sviluppare e addestrare modelli più grandi e complessi in modo più rapido ed efficiente.

Leggi tutto