Impostare il Weight Decay in AdamW per il Deep Learning
Impara a regolare il weight decay per migliorare le prestazioni del modello in AdamW.
― 7 leggere min
Quando si lavora con modelli di machine learning, in particolare con modelli di deep learning, un aspetto importante da considerare è come impostare gli iperparametri per ottimizzatori come AdamW. AdamW è comunemente usato, specialmente per modelli grandi, e gestire il suo weight decay è cruciale man mano che la dimensione del modello e del dataset cresce. Questo scritto ha l'obiettivo di spiegare come impostare e regolare il weight decay in AdamW in modo efficace.
Cos'è AdamW?
AdamW è un algoritmo di ottimizzazione avanzato basato su un altro algoritmo chiamato Adam. Mentre Adam è noto per il suo Tasso di apprendimento adattivo, AdamW modifica il modo in cui viene applicato il weight decay, il che può migliorare le prestazioni, specialmente nelle reti neurali. Il weight decay è una tecnica di regolarizzazione che aiuta a prevenire l'overfitting penalizzando i pesi grandi in un modello.
Capire il Collegamento Tra Tasso di Apprendimento e Weight Decay
In parole semplici, il tasso di apprendimento determina quanto vengono aggiornati i pesi durante l'addestramento. Un buon modo per pensare agli aggiornamenti dei pesi di AdamW è come una media ponderata degli aggiornamenti precedenti, che può essere regolata attraverso qualcosa chiamato media mobile esponenziale (EMA).
La scala temporale dell'EMA è essenziale e ci dice quanti aggiornamenti passati considerare quando si regolano i pesi. Un punto cruciale è che la scala temporale dell'EMA dovrebbe essere impostata in base a alcune linee guida naturali. Non dovrebbe essere più piccola di un singolo passaggio su tutto il dataset (chiamato epoca) e non dovrebbe essere più grande del numero totale di epoche.
Dimensione del dataset
La Relazione Tra Dimensione del Modello eMan mano che le dimensioni dei modelli e dei dataset aumentano, è importante capire come impostare correttamente il weight decay. La cosa principale da ricordare è che, all'aumentare della dimensione del dataset, il weight decay ottimale tende a diminuire. Tuttavia, se aumenti la dimensione del modello, il weight decay dovrebbe aumentare. Questo approccio mantiene il tuo modello performante attraverso diverse scale di dati e dimensione del modello.
Impostare un Workflow Efficace
Un workflow tipico coinvolge l'inizio con modelli più piccoli per prototipare le tue idee. Questo processo di solito porta a un'ultima corsa di addestramento con il modello più grande sul dataset più grande. Per rendere questo approccio di successo, è fondamentale sapere come trasferire gli iperparametri che impari da questi modelli più piccoli a quelli più grandi.
Regolare il Weight Decay Durante la Scalabilità del Modello
Una strategia comune per regolare gli iperparametri durante la scalabilità è modificare il tasso di apprendimento. Come ti aspetteresti, il tasso di apprendimento può influenzare quanto rapidamente il modello apprende. Tuttavia, i comportamenti del weight decay e dei tassi di apprendimento hanno impatti diversi man mano che il modello si avvicina alla convergenza (quando il modello ha appreso abbastanza dai dati).
A causa di questa differenza, non basta pensare solo a come cambia il tasso di apprendimento mentre scaldi il tuo modello; è anche fondamentale considerare come il weight decay dovrebbe essere regolato.
Come Funziona AdamW in Termini di Media Mobile Esponenziale (EMA)
Capire AdamW in termini di EMA aiuta a chiarire come gestire gli aggiornamenti dei pesi. Sia Adam che AdamW usano le EMA per stimare i gradienti, ma ciò che rende AdamW unico è il suo focus nel mantenere un'EMA dei pesi stessi. Questa distinzione aiuta a capire come impostare gli iperparametri relativi sia al tasso di apprendimento che al weight decay.
Quando lavori con AdamW, hai principalmente due iperparametri da considerare: la scala temporale dell'EMA e l'inizializzazione del modello. Regolando la scala temporale dell'EMA in base al numero di epoche, stai anche impostando indirettamente il weight decay.
Trovare l'Intervallo Giusto per le Scale Temporali dell'EMA
Attraverso vari esperimenti, è stato indicato che una scala temporale EMA adatta cade spesso all'interno di un intervallo specifico. La scala temporale ottimale di solito si colloca tra una epoca e il numero totale di epoche che pianifichi di addestrare il tuo modello. Quando testato su diversi tipi di modelli, questo intervallo sembra essere consistente, sia che tu stia lavorando con una rete più piccola o un grande modello di linguaggio (LLM).
Testare gli Effetti del Cambiamento della Dimensione del Dataset
Man mano che cambi la dimensione del dataset, in particolare aumentandola, vuoi assicurarti che il weight decay non rimanga fisso. Studi hanno dimostrato che quando aumenti la dimensione del dataset mantenendo costante la dimensione del batch, il weight decay ottimale tende generalmente a diminuire. Questo comportamento suggerisce che dataset più grandi permettono ai modelli di catturare più informazioni e richiedono un weight decay meno rigoroso.
In uno studio controllato, i modelli addestrati su sottoinsiemi di dataset più grandi come ImageNet hanno mostrato che man mano che la dimensione di questi sottoinsiemi aumentava, anche il weight decay doveva essere regolato di conseguenza.
Testare gli Effetti del Cambiamento della Dimensione del Modello
D'altra parte, aumentando la dimensione del modello, le tendenze mostrano che il weight decay ottimale dovrebbe effettivamente aumentare. Questo aumento deriva dalla raccomandazione che man mano che i modelli crescono, necessitano di un po' più di weight decay per gestire la complessità aumentata. Attraverso esperimenti pratici, è stato osservato che se segui questi aumenti di scala per il weight decay, i modelli funzionano in modo più consistente su diversi compiti.
L'Importanza dei Tassi di Apprendimento Adattivi
Quando scaldi i modelli, è importante regolare anche i tassi di apprendimento. L'idea è che il tasso di apprendimento dovrebbe idealmente scalare con la dimensione del modello, ma se il weight decay rimane fisso, potrebbero sorgere problemi di stabilità.
Modificando opportunamente il weight decay mentre regoli i tassi di apprendimento, i risultati per i modelli più grandi diventano molto più stabili. Questo approccio consente di mantenere prestazioni coerenti su varie dimensioni del modello.
Superare le Sfide con il Trasferimento degli Iperparametri
Man mano che passi da modelli più piccoli a modelli più grandi, trasferire gli iperparametri (come il weight decay) può essere complicato. Ad esempio, se applichi un semplice metodo di scaling al weight decay senza considerare la dimensione del modello, potresti compromettere l'efficacia dell'apprendimento dei tuoi modelli più grandi.
Praticamente, quando rendi il weight decay più forte per i modelli più grandi mantenendo costante la scala temporale dell'EMA, puoi spesso ottenere una maggiore coerenza in come il modello apprende. Questa strategia assicura che il comportamento del tuo modello rimanga stabile attraverso diverse impostazioni.
L'Impatto Complessivo del Weight Decay sull'Apprendimento del Modello
Quando analizzi gli aggiornamenti dei pesi in AdamW, è importante riconoscere che le regolazioni che fai al weight decay possono avere un impatto profondo su come il tuo modello apprende. Risulta che la dimensione del weight decay influisce sull'entità dei pesi appresi. Ad esempio, gestire l'equilibrio di quanto weight decay permetti può determinare se il tuo modello apprende in modo efficace o se ha difficoltà con l'overfitting.
Comuni Malintesi su AdamW
Molti praticanti potrebbero pensare che semplicemente regolare il tasso di apprendimento sia sufficiente per ottimizzare un modello. Sebbene sia importante, le regolazioni al weight decay possono essere altrettanto critiche. È essenziale vedere entrambi i parametri come interattivi e trovare un equilibrio che ottimizzi l'apprendimento in modo efficace.
Conclusione
In sintesi, impostare il weight decay per AdamW mentre scala la dimensione del modello e del dataset non è un compito banale. Richiede di comprendere l'interazione tra le scale temporali dell'EMA, le dimensioni del modello e le dimensioni del dataset. Come guidato da esperimenti pratici e intuizioni teoriche, ecco i punti chiave da ricordare:
- La scala temporale dell'EMA dovrebbe idealmente rimanere costante mentre cambi le dimensioni del modello e del dataset.
- Aumentare la dimensione del dataset porta generalmente a una diminuzione del weight decay ottimale.
- Aumentare la dimensione del modello richiede tipicamente un aumento del weight decay ottimale.
- Quando trasferisci gli iperparametri dai modelli più piccoli a quelli più grandi, presta attenzione a come dovrebbero essere regolati sia i tassi di apprendimento che il weight decay.
Questa comprensione può aiutare a garantire che i tuoi modelli più grandi funzionino in modo efficiente ed efficace mentre scaldi i tuoi progetti di machine learning.
Titolo: How to set AdamW's weight decay as you scale model and dataset size
Estratto: We show that weights learned by AdamW can be understood as an exponential moving average (EMA) of recent updates. This gives critical insights for how to set the weight decay in AdamW, and how the weight decay should scale with model and dataset size. In particular, the key hyperparameter for an exponential moving average is the EMA timescale. Intuitively, the EMA timescale can be understood as the number of recent iterations the EMA averages over. Given a fixed learning rate, there is a one-to-one mapping from the EMA timescale to the usual weight decay hyperparameter. Thus, choosing an EMA timescale implicitly sets the weight decay. Importantly, there are natural guidelines for sensible values for the EMA timescale: we need to average over all datapoints, so the EMA timescale should not be (much) smaller than 1 epoch, and we need to forget early updates, so the EMA timescale should not be (much) bigger than the total number of training epochs. In our experiments, we find that optimal EMA timescales are consistent with these guidelines, as are the hyperparameters chosen in recent large-scale LLM pretraining runs (e.g.\ Llama 1+2 and Stable LM). Critically, these guidelines suggest that the optimal EMA timescale should not change (much) as we scale the model and dataset. That implies that as the dataset size increases, the optimal weight decay should fall. Moreover, as the model size increases, the optimal weight decay should also increase (if we follow the muP recommendation for scaling the learning rate).
Autori: Xi Wang, Laurence Aitchison
Ultimo aggiornamento: 2024-05-22 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2405.13698
Fonte PDF: https://arxiv.org/pdf/2405.13698
Licenza: https://creativecommons.org/licenses/by/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.
Link di riferimento
- https://pytorch.org/docs/stable/generated/torch.optim.AdamW.html
- https://optax.readthedocs.io/en/latest/api/optimizers.html
- https://github.com/microsoft/mup/blob/main/mup/optim.py
- https://github.com/JiahuiYu/slimmable_networks/issues/15
- https://github.com/karpathy/minGPT/blob/master/mingpt/model.py
- https://github.com/microsoft/mup
- https://github.com/microsoft/mup/blob/19814971934ef91dd546f88e913fc963e096d11c/mup/optim.py
- https://github.com/kuangliu/pytorch-cifar/
- https://github.com/omihub777/ViT-CIFAR/tree/main
- https://www.cs.toronto.edu/~kriz/cifar.html
- https://www.image-net.org/download
- https://nips.cc/public/guides/CodeSubmissionPolicy
- https://neurips.cc/public/EthicsGuidelines