Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Precisione mista

Ottimizza l'efficienza del deep learning con il training a precisione mista! Ottieni velocità superiori, un utilizzo ridotto della memoria e risparmi energetici senza sacrificare l'accuratezza.

La precisione mista è una potente tecnica di ottimizzazione in apprendimento profondo che combina strategicamente combina diversi formati numerici, in particolare 16 bit (mezza precisione) e 32 bit (singola precisione) in virgola mobile, per accelerare la per accelerare l'addestramento del modello e ridurre l'utilizzo l'utilizzo della memoria. Eseguendo le operazioni computazionali intensive in bassa precisione e mantenendo una copia master di pesi del modello in alta precisione, Questo approccio consente di ottenere notevoli accelerazioni sull'hardware moderno, senza compromettere la qualità della precisione o la stabilità della rete rete finale. Consente a ricercatori e ingegneri di addestrare reti più grandi reti neurali o di aumentare il dimensione del lotto con gli stessi vincoli hardware vincoli.

Come funziona la precisione mista

Il meccanismo centrale della precisione mista si basa sull'architettura dei moderni acceleratori, come quelli dotati di NVIDIA Tensor Cores, che possono eseguire moltiplicazioni di matrici in mezza precisione (FP16) molto più velocemente di quelle in singola precisione standard (FP32). Il processo prevede generalmente tre fasi fondamentali:

  1. Casting: Operazioni come convoluzioni e le moltiplicazioni vengono convertite in FP16. Questo riduce la larghezza di banda della memoria necessaria e velocizza il calcolo.
  2. Manutenzione dei pesi master: Una copia master dei parametri del modello è conservata in FP32. Durante retropropagazionei gradienti sono calcolati in FP16 ma vengono applicati ai pesi master in FP32. Questo preserva i piccoli aggiornamenti del gradiente che altrimenti andrebbero persi a causa dell'intervallo limitato di FP16, evitando problemi quali gradienti che svaniscono.
  3. Scala delle perdite: Per garantire ulteriormente la stabilità numerica, il valore del parametro funzione di perdita viene spesso moltiplicato per un fattore di scala. Questo sposta i valori del gradiente in un intervallo che FP16 può rappresentare in modo più efficace, evitando errori di underflow prima di essere convertiti per l'aggiornamento dei pesi. errori di underflow prima di essere riconvertiti per l'aggiornamento del peso.

Applicazioni nel mondo reale

La precisione mista è diventata una pratica standard in vari settori dell'intelligenza artificiale, grazie alla sua capacità di massimizzare l'efficienza dell'hardware. massimizzare l'efficienza dell'hardware.

  • Formazione di modelli di visione all'avanguardia: Sviluppare prestazioni elevate visione computerizzata ad alte prestazioni ad alte prestazioni, come Ultralytics YOLO11prevede l'addestramento su insiemi di dati massicci come COCO. La precisione mista consente di completare questi addestramenti in modo significativamente più rapido, permettendo un maggior numero di iterazioni di regolazione dell'iperparametro e cicli di distribuzione più cicli di distribuzione più rapidi.
  • Modelli linguistici di grandi dimensioni (LLM): La creazione di modelli di base e Modelli linguistici di grandi dimensioni richiede l'elaborazione di terabyte di dati di testo. La precisione mista è fondamentale in questo caso, in quanto dimezza circa la memoria necessaria per le attivazioni. necessaria per le attivazioni, consentendo ai modelli con miliardi di parametri di adattarsi ai cluster di GPU.

Implementazione della precisione mista con Ultralytics

Il ultralytics semplifica l'uso della libreria Automatic Mixed Precision (AMP). Per impostazione predefinita, le verifica la compatibilità dell'hardware e abilita AMP per garantire prestazioni ottimali.

from ultralytics import YOLO

# Load the YOLO11 model for training
model = YOLO("yolo11n.pt")

# Train using Automatic Mixed Precision (AMP)
# 'amp=True' is the default setting, ensuring faster training on supported GPUs
results = model.train(data="coco8.yaml", epochs=5, imgsz=640, amp=True)

Precisione mista e termini correlati

È utile distinguere la precisione mista da altri concetti di ottimizzazione e rappresentazione dei dati:

  • Vs. Mezza precisione: La mezza precisione pura (FP16) precisione (FP16) memorizza e calcola tutto in formato 16 bit. Se da un lato questo massimizza la velocità, dall'altro spesso comporta instabilità numerica e scarsa convergenza durante l'addestramento. La precisione mista attenua questo problema conservando una copia master FP32 per un aggiornamento stabile dei pesi.
  • Vs. Quantizzazione del modello: La quantizzazione riduce ulteriormente la precisione, in genere convertendo i pesi in numeri interi (INT8) per ottimizzare la precisione. la latenza dell'inferenza e le dimensioni del modello dimensione del modello per l'implementazione su dispositivi di intelligenza artificiale dispositivi di intelligenza artificiale. La precisione mista è principalmente un'ottimizzazione per l'addestramento che utilizza numeri in virgola mobile, mentre la quantizzazione è spesso applicata dopo l'addestramento per l'inferenza. quantizzazione è spesso applicata dopo l'addestramento per l'inferenza.
  • Vs. Bfloat16: Brain Floating Point (Bfloat16) è un formato alternativo a 16 bit sviluppato da Google. A differenza dello standard IEEE 754 FP16, Bfloat16 mantiene lo stesso intervallo di esponente di FP32, rendendolo più robusto contro l'underflow senza una scalatura aggressiva delle perdite. È comunemente usato nella formazione a precisione mista su TPU e sulle GPU più recenti.

Supportato da framework come PyTorch AMPla precisione mista rimane uno dei modi più efficaci per democratizzare l'accesso al deep learning ad alte prestazioni, consentendo agli sviluppatori di addestrare modelli complessi su hardware accessibile.

Unitevi alla comunità di Ultralytics

Entra nel futuro dell'AI. Connettiti, collabora e cresci con innovatori globali

Iscriviti ora