PyTorch Lightning 1.0: 0-600k

A Villám feltárja a végső API-t, egy új weboldalt és egy bepillantást az új natív platformunkba, amely a felhőkön átívelő képzési modelleket kínál.

(2020. október 19.)

Az elmúlt néhány hónapban keményen dolgoztunk az API finomhangolásán, a dokumentumok , oktatóanyagok rögzítése , és végre itt az ideje, hogy megosszuk veletek a PyTorch Lightning összes V1.0.0 verzióját. A villámló választ akarja a felhő méretarányos modelljeire? folytassa az olvasást.

A Villám DNS

AI kutatás sokkal gyorsabban fejlődött, mint bármelyik keretrendszer képes lépést tartani vele. A mély tanulás területe folyamatosan fejlődik, többnyire összetettségében és méretarányában. A Lightning felhasználói élményt nyújt a komplex modell-interakciók világához, miközben elvonja a mérnöki zavaró részleteket, például a multi-GPU és a multi-TPU oktatást, a korai leállítást, a naplózást stb.

Keretek, mint a PyTorch egy olyan időre tervezték, amikor az AI kutatás többnyire a hálózati architektúrákról szólt, egy nn. A műveletsorozatot meghatározó modul.

VGG16

És ezek a keretrendszerek hihetetlen munkát végeznek abban, hogy az összes darabot összeállítsák rendkívül összetett modellek számára a kutatáshoz vagy a gyártáshoz. De amint a modellek kölcsönhatásba kezdenek egymással, például egy GAN, BERT vagy egy autoencoderrel, ez a paradigma megtörik, és a hatalmas rugalmasság hamarosan kazánlemezsé válik, amelyet nehéz fenntartani, mint egy projekt méretarányát.

A korábban kapott keretrendszerektől eltérően a PyTorch Lightning-et úgy tervezték, hogy befogadja az egymással kölcsönhatásban álló modellek gyűjteményét , amit hívunk mély tanulási rendszerek. A villám a mai világ bonyolultabb kutatási és gyártási eseteire épül, ahol sok modell bonyolult szabályok segítségével lép kölcsönhatásba egymással.

AutoEncoder rendszer

A PyTorch Lightning második legfontosabb alapelve, hogy a hardvernek és a „science” kódnak elválasztott. A villám úgy fejlődött ki, hogy hatalmas tömegű számítást használjon, anélkül, hogy ezeknek az absztrakcióknak bármelyikét a felhasználóra vinné. Ezzel az elválasztással új képességeket nyer. amelyek előtt nem voltak lehetségesek, például az 512 GPU-munka hibakeresése a laptopon CPU-k használatával a kód megváltoztatása nélkül.

Végül a Lightning a közösségvezérelt keretrendszerré válás .

A jó mély tanulási modellek felépítéséhez rengeteg szakértelemre van szükség. trükkök, amelyek működésbe hozzák a rendszert. Világszerte hihetetlen mérnökök és doktorok százai alkalmazzák ugyanazt a kódot újra és újra. A Lightning immár több mint 300+ legtehetségesebb, mélyen tanuló emberből áll, akik tagok, akik ugyanazt a kiosztást választják energiát és pontosan ugyanazokat az optimalizálásokat hajtja végre, de ehelyett több ezer ember profitál erőfeszítéseiből.

Az 1.0.0 újdonságai

A Lightning 1.0.0 stabil és final API.

Ez azt jelenti, hogy a Villámtól függő nagy kutatási projektek nyugodtan tudják tudni, hogy a kódjuk nem törik el vagy nem változik a továbbiakban.

Kutatás + gyártás

A villámok fő erőssége, hogy lehetővé tegyék a korszerűt A mesterséges intelligencia-kutatás nagy léptékű. Ez egy olyan keretrendszer, amelyet professzionális kutatók számára terveztek a legnehezebb ötletek kipróbálására a legnagyobb számítási erőforrásokon anélkül, hogy bármilyen rugalmasságot elveszítenének.

Örömmel jelentjük be, hogy a Lightning 1.0.0 most is , ami elenyészővé teszi e modellek széleskörű telepítését. Az összes villámkód gondoskodik arról, hogy minden könnyen exportálható legyen a onnx és a torchscript fájlokba.

Tehát , ez azt jelenti, hogy az adatkutatók, kutatók stb. csapata mostantól BE azokat az embereket, akik is modelleket gyártott. Nincs szükségük nagy gépi tanulási mérnökökre.

Ez az egyik fő oka annak, hogy a vezető vállalatok a Lightning-et használják: annak érdekében, hogy drámai módon csökkentsék a gyártás idejét anélkül, hogy elveszítenék a kutatáshoz szükséges rugalmasságot .

És a vállalati ajánlatunk pontosan ezt teszi: Rács AI a mi natív platform képzési modellek méretarányos felhőben A Grid lehetővé teszi, hogy bárki, aki mély tanulási modelleket épít, ismétli a hatalmas számítást, majd azonnal telepítse ezeket a modelleket egy skálázható környezetbe, amely képes kezelni a legnagyobb forgalmat, amelyet egy mély tanulási rendszerre vethet.

Regisztráljon a korai hozzáférés ide .

rácsvonat

Webhely

Azt is észreveszi, hogy az összes blogbejegyzések , villámsebességű oktatóvideók , közösségi projektek és egyéb források vadonatúj kezdőlap az összes dolog bemutatásához. Villám!

Metrika

pytorch\_lightning.metrics egy Metrics API, amelyet a PyTorch és a PyTorch Lightning könnyű metrikák fejlesztése és használata céljából hoztak létre. A frissített API beépített módszert biztosít a metrika kiszámításához az egyes lépések több GPU-ján (folyamatán), ugyanakkor statisztikákat tárol, amelyek lehetővé teszik a metrika kiszámítását egy korszak végén, anélkül, hogy aggódnia kellene az elosztott háttérrendszerhez kapcsolódó bonyolultságokból.

Szigorúan tesztelve minden éles esetre, és egyre gyakrabban tartalmazza a metrikus megvalósítások listáját, például a Pontosságot , Pontosság , Visszahívás , Fbeta , MeanSquaredError és még sok más.

Hogyan használja a .log elemet a LightningModule

Az egyéni metrika megvalósításához egyszerűen ossza be az Metric alaposztályt, és hajtsa végre a \_\_init\_\_(), update() és compute() módszerek. Mindössze annyit kell tennie, hogy helyesen hívja meg a (z) add\_state() -et az egyéni metrika DDP-vel történő megvalósításához. A reset() metrikus állapotváltozókra hívódik meg, amelyek a add\_state() használatával lettek hozzáadva. div id = “2c952cc346”>

Manuális vagy automatikus optimalizálás

A Lightning használatával nem kell aggódnia, mikor engedélyezi / letiltja a fokozatokat, visszafelé halad, vagy optimalizálókat frissít mindaddig, amíg egy veszteséget csatol egy csatolt grafikonnal a training\_step-től, a Lightning automatizálja az optimalizálást.

Bizonyos kutatásokhoz, például a GAN-okhoz, az erősítő tanuláshoz vagy több optimalizálóval vagy egy belső hurokkal rendelkező dologhoz, kikapcsolhatja az automatikus optimalizálást, és teljes mértékben saját maga irányíthatja az edzés ciklust.

Először kapcsolja ki az automatikus optimalizálást:

trainer = Trainer(automatic\_optimization=False)

Most Ön a vonathurok tulajdonosa!

Blogging

A Lightning szuper egyszerűvé teszi a naplózókkal való integrációt – hívja meg bárhol a log() metódust a LightningModule eszközön, és elküldi a naplózott mennyiséget a választott naplózónak. Alapértelmezés szerint a Tensorboard-ot használjuk, de kiválaszthat bármilyen támogatott naplózót.

Attól függően, hogy hol A .log() hívást kezdeményezi, a Villám automatikusan meghatározza, hogy mikor kell naplózni (minden lépésben vagy minden korszakban), de természetesen a on\_step és on\_epoch opciók. A on\_epoch=True beállítás összegyűjti naplózott értékeit a teljes képzési korszak alatt.

Adatáramlás

Elavultuk az EvalResult és a TrainResult előnyeit az adatáramlás egyszerűsítése és a naplózás leválasztása között az adatokról a képzési és validációs ciklusokban. teszt) három kampóval rendelkezik, amelyeket megvalósíthat:

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

Az adatok áramlásának bemutatásához a képzési ciklust fogjuk használni (pl .: x = edzés)

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

Bármi, amit visszaad a training\_step mezőben, felhasználható bemenetként a training\_epoch\_end.

Ugyanez vonatkozik az érvényesítésre és a tesztlépésekre is: bármi visszaadva a vagy test\_step használható bemenetként a {validation/test}\_step\_end vagy a {validation/test}\_epoch\_end.Abban az esetben, ha DP vagy DDP2 elosztott módokat használ (azaz: batch felosztása GPU-k között), használja a x\_step\_end elemet manuális összesítéshez (vagy ne valósítsa meg, hogy a villám automatikusan összesítés az Ön számára).

Ellenőrzés

A Villám automatikusan menti az ellenőrzési pontot az aktuális munkakönyvtárba, az utolsó edzéskorszak állapotával együtt. Ez biztosítja, hogy folytathatja az edzést abban az esetben, ha megszakadna.

Testreszabhatja az ellenőrzőpont viselkedését az edzés vagy validációs lépések bármely mennyiségének figyelemmel kísérésére. Például, ha frissíteni szeretné az ellenőrzési pontokat az érvényesítési vesztesége alapján:

  1. Számolja ki a figyelni kívánt mutatót vagy más mennyiséget, például az érvényesítési veszteséget.
  2. Napló a mennyiséget a log() módszerrel, olyan kulccsal, mint a val\_loss.
  3. A

    ModelCheckpoint visszahívás inicializálása és beállítása figyelje, hogy a mennyisége legyen a kulcsa.

  4. Adja át a visszahívást az checkpoint\_callback Trainer zászlónak.

Olvassa el az összes API-módosítást, beleértve a sok hibajavítást, a kiadási megjegyzéseinkben .

Köszönet

Nem ünnepelnénk a V1.0.0 verziót ragyogó alapcsoportunk éjjel-nappal dolgozó hihetetlen munkája, hogy minden apró részlet megfelelő legyen, állandó támogatást nyújtson a PyTorch csapat , és természetesen a közösség tagjaink. Szeretnénk személyesen köszönetet mondani mindenkinek, aki közreműködött PR-ben vagy áttekintette őket, visszajelzést és problémát küldött, válaszolt a fórumunkban vagy a laza közösségünkben. Ez mindnyájuknak szól!

itt iratkozzon fel

Szeretne többet megtudni a villámról? Látogasson el weboldalunkra , olvassa el a dokumentumokat , vagy csatlakozzon az első virtuális találkozásunk- Kérj tőlem bármit William Falcon-nal , a Villám alkotója! A találkozóra 2020. október 21-én, EST 13: 00-kor kerül sor, így hozza magával ebédjét vagy vacsoráját, és gyere el, és tudjon meg többet az új funkciókról, rácsról vagy bármi másról, amit mindig is szeretett volna tudni, de soha nem kért. Iratkozzon fel ide .