Pytorch Lightning käsittelee gradienttiviestintää TPU: lla hyödyntämällä Pytorch's StraiteDataparallelel (DDP) -strategiaa, joka on integroitu XLA -kirjastoon optimoitua suorituskykyä TPU: lla. Näin se toimii:
1. Hajautettu koulutus: Pytorch Lightningin "Trainer" -luokka hallinnoi koulutusprosessia, mukaan lukien hajautettu koulutus TPU -ytimien välillä. Se käyttää "StraiteDataSampler" -tapahtumaa tietojen jakamiseen asianmukaisesti jokaiselle TPU -ytimelle [1].
2. Mallin replikaatio: Malli toistetaan jokaisessa TPU -ytimessä, mikä mahdollistaa rinnakkaisen laskennan. Tätä replikaatiota hoitaa Pytorchin DDP -strategia, joka varmistaa, että jokainen ydin käsittelee osan tiedoista [1].
3. Gradienttiviestintä: Kun jokaisessa ytimessä on laskeneet paikalliset gradientit, Pytorch Lightning käyttää XLA -kirjastoa näiden gradienttien synkronointiin ytimien yli. Tämä saavutetaan AllReduce -operaatiolla, joka yhdistää kaltevuudet kaikista ytimistä ja päivittää malliparametrit tasaisesti kaikissa kopioissa [2].
4. Synkroniset päivitykset: `Optimizer_Step (Optimizer)` -toimintoa pytorch / XLA: ssa käytetään gradienttien laskemiseen ja synkronisten päivitysten aloittamiseen. Tämä varmistaa, että kaikki malli kopiot alkavat samasta tilasta jokaisessa koulutuksen iteraatiossa säilyttäen johdonmukaisuuden hajautetussa ympäristössä [2].
Kaiken kaikkiaan Pytorch Lightning yksinkertaistaa TPU: n koulutusmallien prosessia automatisoimalla datan ja kaltevuuksien jakautumisen, jolloin käyttäjät voivat keskittyä mallikehitykseen huolehtimatta taustalla olevista hajautetuista koulutuksen monimutkaisuuksista.
Viittaukset:.
.
[3] https://www.youtube.com/watch?v=ebzcivdr21o
[4] https://pytorch-lightning.readthedocs.io/en/1.1.8/multi_gpu.html
[5] https://lightning.ai/docs/pytorch/lts/api/pytorch_lightning.core.lightningmodule.html
[6] https://pytorch-lightning.readthedocs.io/en/1.5.10/advanced/multi_gpu.html
[7] https://devblog.pytorchlightning.ai/announcing-lightning-1-4-8cd20482aee9
[8] https://github.com/lightning-ai/lightning/issues/18089
.