Slovník výrazov AI/Optimalizácia a trénovanie

Optimalizácia a trénovanie

akumulácia gradientov

Anglický výraz gradient accumulation

pokročiléheslo č. 3745 otázok a odpovedí2 odborné zdroje

Presná definícia

Čo znamená akumulácia gradientov?

Akumulácia gradientov sčíta príspevky z viacerých mikro-dávok a parametre aktualizuje až po ich stanovenom počte. Simuluje väčšiu efektívnu dávku bez uloženia všetkých aktivácií naraz. Aby zodpovedala priemernej strate veľkej dávky, každá mikro-strata sa primerane vydelí alebo sa výsledný gradient normalizuje podľa počtu príkladov.

Skúsenosť a kontext

Ako sa pojem používa v praxi

Používa sa, keď model alebo sekvencia neumožní požadovaný batch v pamäti. Tréningová slučka vynuluje gradient až po optimizer.step, scheduler počíta len tieto kroky a v DDP sa zbytočná synchronizácia medzi mikro-dávkami môže odložiť. Pri premenlivej veľkosti mikro-dávok sa váži podľa skutočného počtu vzoriek alebo tokenov. Výsledok nemusí byť presne rovnaký ako jedna veľká dávka pre BatchNorm, dropout a numerické poradie súčtov.

Overiteľnosť

Odborné zdroje

  1. Goyal et al. · Large minibatch SGDarxiv.org
  2. PyTorch · torch.optimdocs.pytorch.org

Praktické odpovede

Často kladené otázky

Ako sa počíta?

Mikro-batch × počet akumulácií × počet dátovo paralelných pracovníkov.

Kedy sa volá?

Po dokončenej aktualizácii, nie medzi mikro-dávkami jedného akumulačného okna.

Prečo ju deliť?

Aby súčet gradientov mal mierku priemeru zamýšľanej veľkej dávky.

Ktoré kroky počíta?

Iba momenty, keď sa skutočne zmenia parametre.

Prečo nemusí byť presná?

BatchNorm, náhodné masky a poradie plávajúcich súčtov sa líšia.