Addestramento e Ottimizzazione
Scorri per mostrare il menu
L'addestramento dei modelli generativi comporta l'ottimizzazione di paesaggi di perdita spesso instabili e complessi. Questa sezione introduce funzioni di perdita specifiche per ciascun tipo di modello, strategie di ottimizzazione per stabilizzare l'addestramento e metodi per il fine-tuning di modelli preaddestrati per casi d'uso personalizzati.
Funzioni di perdita principali
Le diverse famiglie di modelli generativi utilizzano formulazioni di perdita distinte a seconda di come modellano le distribuzioni dei dati.
Perdite GAN
Perdita minimax (GAN originale)
Impostazione avversariale tra generatore G e discriminatore D (esempio con la libreria pythorch):
Least squares GAN (LSGAN)
Utilizza la perdita L2 invece della log loss per migliorare la stabilità e il flusso del gradiente:
Wasserstein GAN (WGAN)
Minimizza la distanza Earth Mover (EM); sostituisce il discriminatore con un "critico" e utilizza il clipping dei pesi o la penalità sul gradiente per la continuità di Lipschitz:
VAE Loss
Evidence Lower Bound (ELBO)
Combina ricostruzione e regolarizzazione. Il termine di divergenza KL incoraggia il posteriore latente a rimanere vicino al prior (solitamente normale standard):
Perdite nei Modelli di Diffusione
Perdita di Predizione del Rumore
I modelli apprendono a denoising il rumore gaussiano aggiunto lungo una schedulazione di diffusione. Varianti utilizzano la predizione della velocità (ad esempio, v-prediction in Stable Diffusion v2) o obiettivi ibridi:
Tecniche di Ottimizzazione
L'addestramento dei modelli generativi è spesso instabile e sensibile agli iperparametri. Diverse tecniche vengono impiegate per garantire la convergenza e la qualità.
Ottimizzatori e Scheduler
- Adam / AdamW: ottimizzatori adattivi del gradiente sono lo standard de facto. Utilizzare β1=0.5, β2=0.999 per i GAN;
- RMSprop: talvolta utilizzato in varianti di WGAN;
- Schedulazione del tasso di apprendimento:
- Fasi di warm-up per transformer e modelli di diffusione;
- Decadimento coseno o ReduceLROnPlateau per una convergenza stabile.
Metodi di Stabilizzazione
- Clipping del gradiente: evitare l'esplosione dei gradienti in RNN o UNet profondi;
- Normalizzazione spettrale: applicata ai layer del discriminatore nei GAN per imporre vincoli di Lipschitz;
- Smussamento delle etichette: ammorbidisce le etichette rigide (ad esempio, reale = 0,9 invece di 1,0) per ridurre l'eccessiva sicurezza;
- Regola di aggiornamento a due scale temporali (TTUR): utilizzo di tassi di apprendimento differenti per generatore e discriminatore per migliorare la convergenza;
- Addestramento a precisione mista: sfrutta FP16 (tramite NVIDIA Apex o PyTorch AMP) per un addestramento più rapido su GPU moderne.
Monitorare separatamente le perdite di generatore e discriminatore. Utilizzare periodicamente metriche come FID o IS per valutare la qualità effettiva dell'output invece di affidarsi esclusivamente ai valori di perdita.
Ottimizzazione di Modelli Generativi Preaddestrati
I modelli generativi preaddestrati (ad esempio, Stable Diffusion, LLaMA, StyleGAN2) possono essere ottimizzati per compiti specifici di dominio utilizzando strategie di addestramento più leggere.
Tecniche di Transfer Learning
- Ottimizzazione completa: riaddestramento di tutti i pesi del modello. Richiede elevate risorse computazionali ma offre la massima flessibilità;
- Riblocco dei layer / sblocco graduale: iniziare bloccando la maggior parte dei layer, quindi sbloccare gradualmente quelli selezionati per una migliore ottimizzazione. Questo evita la perdita catastrofica delle conoscenze. Bloccare i layer iniziali aiuta a mantenere le caratteristiche generali apprese in preaddestramento (come bordi o pattern di parole), mentre sbloccare quelli successivi consente al modello di apprendere caratteristiche specifiche del compito;
- LoRA / livelli adattatori: inserimento di livelli addestrabili a bassa dimensionalità senza aggiornare i parametri del modello di base;
- DreamBooth / inversione testuale (modelli di diffusione):
- Ottimizzazione fine su un numero limitato di immagini specifiche del soggetto.
- Utilizzo della pipeline
diffusers:
- Ottimizzazione dei prompt / p-tuning:
Casi d'Uso Comuni
- Adattamento dello stile: ottimizzazione su dataset di anime, fumetti o artistici;
- Ottimizzazione specifica per settore: adattamento di LLM a domini legali, medici o aziendali;
- Personalizzazione: condizionamento di identità o voce personalizzata utilizzando piccoli set di riferimento.
Utilizzare Hugging Face PEFT per metodi basati su LoRA/adapter e la libreria Diffusers per pipeline di ottimizzazione leggere con supporto integrato per DreamBooth e classifier-free guidance.
Riepilogo
- Utilizzare funzioni di perdita specifiche per il modello che corrispondano agli obiettivi di addestramento e alla struttura del modello;
- Ottimizzare con metodi adattivi, tecniche di stabilizzazione e pianificazione efficiente;
- Ottimizzare modelli pre-addestrati utilizzando strategie moderne di trasferimento a bassa dimensionalità o basate su prompt per ridurre i costi e aumentare l'adattabilità al dominio.
1. Qual è uno degli scopi principali dell'utilizzo di tecniche di regolarizzazione durante l'addestramento?
2. Quale dei seguenti ottimizzatori è comunemente utilizzato per addestrare modelli di deep learning e adatta il tasso di apprendimento durante l'addestramento?
3. Qual è la principale sfida nell'addestramento dei modelli generativi, in particolare nel contesto delle GAN (Generative Adversarial Networks)?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione