PyTorch Lightning 1.0: 0-600k (Suomi)

Salama paljastaa lopullisen sovellusliittymän, uuden verkkosivuston ja hiipimisen uuteen natiiviin alustallemme, joka tarjoaa pilvimittakaavan koulutusmalleja.

(19. lokakuuta 2020)

Parin viime kuukauden aikana olimme kovasti töitä hienosäätäessämme sovellusliittymäämme ja kiillottamalla docs , joka tallentaa -oppaita , ja on vihdoin aika jakaa kanssasi kaikki PyTorch Lightningin V1.0.0. Haluatko salaman vastauksen skaalausmalleihin pilvessä? jatka lukemista.

Salama-DNA

tekoälyn tutkimus on kehittynyt paljon nopeammin kuin mikään yksittäinen kehys pystyy pysymään mukana. Syvän oppimisen ala kehittyy jatkuvasti, lähinnä monimutkaisuuden ja laajuuden mukaan. Salama tarjoaa käyttökokemuksen, joka on suunniteltu monimutkaisten mallivuorovaikutusten maailmaan, samalla kun abstraktio poistaa kaikki suunnittelun häiritsevät yksityiskohdat, kuten multi-GPU- ja multi-TPU -koulutus, varhainen pysäytys, lokien kirjaaminen jne. Suunniteltu ajaksi, jolloin tekoälyn tutkimus koski enimmäkseen verkkoarkkitehtuureja, nn.Moduuli, joka voi määrittää toimintojen järjestyksen.

VGG16

Ja nämä kehykset tekevät uskomattoman työn tarjotessaan kaikki kappaleet kootakseen erittäin monimutkaisia ​​malleja tutkimukseen tai tuotantoon. Mutta heti kun mallit alkavat olla vuorovaikutuksessa toistensa kanssa, kuten GAN, BERT tai autokooderi, tuo paradigma hajoaa ja valtava joustavuus muuttuu pian kattilaksi, jota on vaikea ylläpitää projektin mittakaavana.

Toisin kuin aiemmin toimitetut kehykset, PyTorch Lightning on suunniteltu kapseloimaan joukko malleja, jotka ovat vuorovaikutuksessa yhdessä , jota kutsumme syvälliset oppimisjärjestelmät. Salama on rakennettu nykypäivän maailman monimutkaisempiin tutkimus- ja tuotantotapauksiin, joissa monet mallit ovat vuorovaikutuksessa keskenään monimutkaisten sääntöjen avulla.

AutoEncoder-järjestelmä

PyTorch Lightningin toinen keskeinen periaate on, että laitteiston ja ”science” -koodin on oltava erotettu. Salama kehittyi hyödyntämään massiivista laskutoimitusta mittakaavassa ilman, että yhtäkään näistä abstraktioista päätyisi käyttäjälle. Tekemällä tämän erottamisen saat uusia kykyjä jotka eivät olleet mahdollisia ennen , kuten 512 GPU -työn virheenkorjaus kannettavalla tietokoneella suorittimilla ilman, että sinun tarvitsi muuttaa koodia.

Lopuksi, salama luotiin visioon yhteisölähtöinen kehys .

Hyvien syvällisen oppimisen mallien rakentaminen vaatii paljon asiantuntemusta ja pieniä temppuja, jotka saavat järjestelmän toimimaan. Satoja uskomattomia insinöörejä ja tohtoreita toteuttaa kaikkialla maailmassa saman koodin uudestaan ​​ja uudestaan. Lightningilla on nyt kasvava avustajayhteisö, johon kuuluu yli 300 yli lahjakkainta syvällisesti oppivaa ihmistä, , jotka päättävät jakaa saman energiaa ja tee täsmälleen samat optimoinnit, mutta sen sijaan tuhannet ihmiset hyötyvät ponnisteluistaan.

Uutta versiossa 1.0.0

Lightning 1.0.0 antaa vakaan ja lopullinen -sovellusliittymä.

Tämä tarkoittaa, että suuret salamasta riippuvat tutkimusprojektit voivat olla rauhassa tietäen, että niiden koodi ei riko tai muutu eteenpäin.

Tutkimus + tuotanto

Salaman ydinvoima on mahdollistaa uusinta tekniikkaa Tekoälyn tutkimus tapahtuu mittakaavassa. Se on kehys, joka on tarkoitettu ammattitutkijoille kokeilemaan vaikeimpia ideoita suurimmilla laskentaresursseilla menettämättä joustavuutta.

Olemme iloisia voidessamme ilmoittaa, että Lightning 1.0.0 on nyt myös mikä tekee näiden mallien laajemman käyttöönoton triviaaliksi. Kaikki salamakoodit varmistavat, että kaikki voidaan viedä helposti onnx ja torchscript.

Joten , tämä tarkoittaa, että tietojenkäsittelytieteiden, tutkijoiden jne. tiimisi voi nyt BE ihmiset, jotka myös laittaa malleja tuotantoon. He eivät tarvitse suuria koneoppimisinsinöörien ryhmiä.

Tämä on yksi tärkeimmistä syistä, miksi johtavat yritykset käyttävät Lightningia: keinona auttaa heitä lyhentämään tuotantoaikaa dramaattisesti menettämättä tutkimukseen tarvittavaa joustavuutta .

Ja yritystarjontamme tekee juuri tämän: Ruudukko AI on meidän natiivi foorumi pilvimallien harjoitteluun. Ruudukon avulla kuka tahansa, joka rakentaa syvällisiä oppimismalleja, voi toistaa valtavan laskennan ja ottaa nämä mallit heti käyttöön skaalautuvassa ympäristössä, joka pystyy käsittelemään suurinta liikennettä, jonka voisit kohdata syvään oppimisjärjestelmään.

Rekisteröidy varhainen pääsy tähän .

ruudukko

verkkosivusto

Huomaa myös, että olemme keskittäneet kaikki blogiviestit , salamannopeat video-oppaat , yhteisöprojektit ja muut -aloitteen resurssit upouusi kotisivu esittelemään kaikkea salamaa!

Metrics

pytorch\_lightning.metrics on Metrics-sovellusliittymä, joka on luotu helppokäyttöiseen metriikan kehittämiseen ja käyttöön PyTorchissa ja PyTorch Lightningissa. Päivitetty sovellusliittymä tarjoaa sisäänrakennetun menetelmän metriikan laskemiseksi useille grafiikkasuorittimille (prosesseille) kullekin vaiheelle, samalla kun se tallentaa tilastotietoja, joiden avulla voit laskea metriikan aikakauden lopussa tarvitsematta huolehtia mistään hajautettuun taustajärjestelmään liittyvistä monimutkaisuuksista.

Sitä testataan tiukasti kaikissa reunatapauksissa, ja se sisältää kasvavan luettelon yleisistä metriikkatoteutuksista, kuten Tarkkuus , Tarkkuus , Recall , Fbeta , MeanSquaredError ja muuta.

Kuinka käytä .log-tiedostoa LightningModule

Voit ottaa mukautetun tiedon käyttöön yksinkertaisesti aliluokan Metric -luokassa ja \_\_init\_\_(), update() ja compute() menetelmät. Sinun tarvitsee vain soittaa add\_state() oikein, jotta DDP: llä voidaan toteuttaa mukautettu metriikka. reset() kutsutaan metristen tilojen muuttujiin, jotka on lisätty käyttämällä add\_state().

Manuaalinen vs. automaattinen optimointi

Lightningin kanssa sinun ei tarvitse huolehtia siitä, milloin gradit otetaan käyttöön / pois käytöstä, suoritetaan taaksepäin tai päivitetään optimoijia niin kauan kuin palautat tappion liitteenä olevan kaavion kanssa train\_stepistä, Lightning automatisoi optimoinnin.

Kuitenkin tietyissä tutkimuksissa, kuten GAN: t, vahvistusoppiminen tai jotain, jossa on useita optimoijia tai sisäinen silmukka, voit kytkeä automaattisen optimoinnin pois päältä ja hallita harjoitussilmukkaa itse.

Kytke ensin automaattinen optimointi pois käytöstä:

trainer = Trainer(automatic\_optimization=False)

Nyt sinulla on junasilmukka!

Kirjaaminen

Salama tekee integraatiosta tiedonkeruulaitteisiin erittäin yksinkertaisen – soita vain menetelmä log() mihin tahansa LightningModule -laitteellasi, ja se lähettää kirjautuneen määrän valitsemallesi kirjaajalle. Käytämme Tensorboardia oletusarvoisesti, mutta voit valita haluamasi tuetun kirjaajan.

Mistä riippuen .log() kutsutaan, Salama määrittää automaattisesti, milloin kirjaus on tehtävä (jokaisessa vaiheessa tai jokaisessa aikakaudessa), mutta tietysti voit ohittaa oletustoiminnon manuaalisesti käyttämällä on\_step – ja on\_epoch -vaihtoehdot. Asetus on\_epoch=True kerää lokiin kirjatut arvosi koko harjoitusjakson ajan.

Tietovirta

Vanhensimme EvalResult- ja TrainResult-palveluja tiedonsiirron yksinkertaistamisen ja kirjaamisen irrottamisen käytöstä koulutus- ja validointisilmukoissa.

Jokainen silmukka (koulutus, validointi, testi) sisältää kolme koukkua, jotka voit toteuttaa:

  • x\_step
  • x\_step\_end
  • x\_epoch\_end

Havainnollistaaksemme, kuinka data kulkee, käytämme harjoitussilmukkaa (ts. x = koulutus)

outs = []
for batch in data:
out = training\_step(batch)
outs.append(out)training\_epoch\_end(outs)

Kaikkia, jotka palautat ryhmässä training\_step, voidaan käyttää syötteenä ryhmään training\_epoch\_end.

Sama koskee validointia ja testivaiheita: kaikki, mitä palautetaan validation\_step tai test\_step voidaan käyttää syötteenä kohtaan {validation/test}\_step\_end tai {validation/test}\_epoch\_end.Jos käytät hajautettuja DP- tai DDP2-tiloja (ts. Jaat erän GPU: iden kesken), käytä x\_step\_end -kokoonpanoa manuaalisesti (tai älä ota sitä käyttöön, jotta salama voi automaattisesti aggregaatti sinulle).

Tarkistuskohdat

Salama tallentaa nyt tarkistuspisteen automaattisesti nykyiseen työhakemistoon viimeisen harjoitusjaksosi tilan kanssa. Tämä varmistaa, että voit jatkaa harjoittelua siinä tapauksessa, että se keskeytyi.

Voit mukauttaa tarkistuspisteen käyttäytymistä seuraamaan mitä tahansa harjoittelun määrää tai validointivaiheita. Esimerkiksi, jos haluat päivittää tarkistuspisteet validointihäviön perusteella:

  1. Laske kaikki seurattavat mittarit tai muut määrät, kuten validointihäviöt.
  2. Loki määrä käyttämällä log() -menetelmää avaimella, kuten val\_loss.
  3. Alustetaan

    ModelCheckpoint -soittopyyntö ja määritetään monitori on määrääsi avain.

  4. Siirrä soittopyyntö checkpoint\_callback kouluttajan lipulle.

Lue kaikki sovellusliittymän muutokset, mukaan lukien monet virhekorjaukset, julkaisutiedoista ​​a >.

Kiitos

Emme juhlia V1.0.0: ta ilman loistava yditiimimme uskomaton työ ympäri vuorokauden saadaksemme jokaisen pienen yksityiskohdan oikein, jatkuvan tuen PyTorch-tiimi ja tietysti yhteisön jäsenet. Haluamme kiittää henkilökohtaisesti kaikkia, jotka lähettivät PR-ilmoituksia tai tarkastelivat niitä, lähettivät palautetta ja kysymyksiä, vastasivat foorumillamme tai löysässä yhteisössämme. Tämä on tarkoitettu sinulle kaikille!

kirjaudu tänne

Haluatko lisätietoja salamasta? Siirry -sivustollemme , lue -asiakirjat tai liity kaikkien aikojen ensimmäinen virtuaalinen tapaamisemme- Kysy minulta mitä tahansa William Falconin kanssa , salaman luoja! Tapahtuma pidetään 21. lokakuuta 2020 klo 13.00 EST, joten tuo lounas tai illallinen ja tule oppimaan lisää uusista ominaisuuksista, ruudukosta tai muusta, mitä olet aina halunnut tietää, mutta et ole koskaan kysynyt. Rekisteröidy täällä .