A Huawei MindSpore: Új Versenytársa A TensorFlow és A PyTorch Számára?

Tartalomjegyzék:

A Huawei MindSpore: Új Versenytársa A TensorFlow és A PyTorch Számára?
A Huawei MindSpore: Új Versenytársa A TensorFlow és A PyTorch Számára?

Videó: A Huawei MindSpore: Új Versenytársa A TensorFlow és A PyTorch Számára?

Videó: A Huawei MindSpore: Új Versenytársa A TensorFlow és A PyTorch Számára?
Videó: MindSpore от Huawei: новый конкурент для TensorFlow и PyTorch? 2024, Lehet
Anonim

A Huawei bejelentette, hogy a TensorFlow és a PyTorch stílusú MindSpore Deep Learning köztes szoftver immár nyílt forráskódú. Ebben a cikkben megtudhatja a legfontosabb jellemzőit.

MindSpore by Huawei
MindSpore by Huawei

A Huawei nemrég jelentette be, hogy az AI alkalmazások fejlesztésére szolgáló MindSpore keretrendszere nyílt forráskódúvá válik, és elérhetővé válik a GiHub és a Gitee oldalakon. A MindSpore egy másik, a TensorFlow-hoz vagy a PyTorch-hoz hasonló idegi hálózati modellek képzési mélyreható tanulási keretrendszere, amelyet Edge-től Cloud-ig használnak, amely mind a GPU-kat, mind pedig a Huawei Ascend processzorokat támogatja.

Tavaly augusztusban, amikor a Huawei bejelentette Ascend processzorának hivatalos bevezetését, először bemutatták a MindSpore-t, kijelentve, hogy „egy tipikus ResNet-50 alapú edzésen az Ascend 910 és a MindSpore kombinációja körülbelül kétszer olyan gyors. Amikor a TensorFlow használatával az AI modelleket képezik más főbb tanulókártyákkal szemben Igaz, hogy az elmúlt években sok keretrendszer jelent meg, és a MindSpore talán nem más, mint egy csoport, amely akár távolról is képes versenyezni a TensorFlow-val (a Google által támogatott) és a PyTorch-tal (amelyet a Facebook támogat).).

Rendszer Felépítés

A MindSpore webhely leírja, hogy az infrastruktúra három fő rétegből áll: a frontend kifejezésből, a grafikus motorból és a backend futásidejéből. A következő ábra egy vizuális ábrát mutat:

Kép
Kép

A MindSpore első szintje Python API-t kínál a programozók számára. Mivel közösségünk nyelvbeszéde de facto Python, és különben a MindSpore versenyezni akar a PyTorch-szal és a TensorFlow-val. Ezzel az API-val a programozók manipulálhatják a modelleket (képzés, következtetés stb.) És feldolgozhatják az adatokat. Ez az első szint magában foglalja a kód interim reprezentációjának (MindSpore IR) támogatását is, amelyen számos optimalizálás fog alapulni, amelyek párhuzamosítással és automatikus differenciálással (GHLO) végezhetők el.

Az alábbiakban látható a Graph Engine réteg, amely biztosítja a szükséges funkciókat a végrehajtási grafikon automatikus differenciálásának létrehozásához és végrehajtásához. A MindSpore használatával a PyTorch (amely dinamikus végrehajtási grafikont generál) vagy a TensorFlow helyett egy automatikus differenciálási modellt választottak (bár eredetileg a hatékonyabb statikus végrehajtási ütemezés létrehozásának opcióját választották, most egy dinamikus végrehajtási grafikon opciót is kínál, és lehetővé teszi a grafikon statikus változata az alacsony szintű API @ tf.function dekorátorával).

A MindSpore választása szerint a forráskódot át kell alakítani köztes kódformátumra (MindSpore IR) a két modell előnyeinek kihasználása érdekében (további információkért lásd a MindSpore webhely „Automatikus elválasztás” szakaszát).

Az utolsó réteg az összes könyvtárból és futási környezetből áll, amelyek szükségesek a különféle hardverarchitektúrákhoz, amelyekben a kód feldolgozásra kerül. Valószínűleg ez egy olyan háttérrendszer lesz, amely nagyon hasonlít más keretekhez, talán a Huawei funkcióival, például olyan könyvtárakkal, mint például a HCCL (Huawei Collective Communication Library), ami egyenértékű az NVIDIA NCCL-lel (NVIDIA Collective Communication Library).

Képzési megjelenítés támogatása

A MindSpore oktatóanyag szerint bár lehetetlen volt telepíteni és használni őket, a MindInsight rendelkezik olyan vizualizációk létrehozására, amelyek némileg emlékeztetnek a TensorBoardra, a TensorFlow-ra. Vessen egy pillantást néhány képernyőképre, amelyet a weboldalukon mutatnak:

Kép
Kép
Kép
Kép

A kézikönyv szerint a MindSpore jelenleg egy visszahívási mechanizmust használ (emlékeztetve arra, ahogyan a Kerassal történik), hogy (naplófájlba) beírja az edzés során mindazokat a modellparamétereket és hiperparamétereket, amelyeket szeretnénk, valamint a számítási ütemtervet, amikor a neurális hálózat közbenső kódba fordítása befejeződött.

Párhuzamosság

Oktatóanyagukban két párhuzamosítási módról beszélnek (DATA_PARALLEL és AUTO_PARALLEL), és mintakódot nyújtanak, amely a ResNet-50-et képezi egy CIFAR-adatkészlettel egy Ascend 910 processzorhoz (amelyet nem tudtam tesztelni). A DATA_PARALLEL egy olyan stratégiára utal, amelyet közismert néven adatpárhuzamosságnak neveznek, amely abból áll, hogy az edzésadatokat több részhalmazra osztja fel, amelyek mindegyike a modell ugyanazon másolatán fut, de különböző feldolgozó egységekben. A Graph Engine támogatást nyújt a kód párhuzamosításához és különösen az AUTO_PARALLEL párhuzamossághoz.

Az AUTO_PARALLEL mód automatikusan optimalizálja a párhuzamosítást azáltal, hogy az adat párhuzamosítási stratégiát (a fentiekben tárgyalta) kombinálja a modell párhuzamosítási stratégiával, amelyben a modell különböző részekre oszlik, és mindegyik részt párhuzamosan hajtják végre különböző feldolgozó egységekben. Ez az automatikus mód kiválasztja a legjobb előnyöket kínáló párhuzamosítási stratégiát, amelyről a MindSpore webhelyének automatikus párhuzamosítása című szakaszában olvashatunk (bár ezek nem írják le a becslések és döntések meghozatalát). Várni kell arra, hogy időt szakítsunk a műszaki csapatra a dokumentáció bővítésére és az automatikus párhuzamosítási stratégia további részleteinek megértésére. De nyilvánvaló, hogy ez az automatikus párhuzamosítási stratégia kritikus fontosságú, és itt kell és versenyezhetnek a TensorFlow vagy a PyTorch szolgáltatással, jelentősen jobb teljesítményt elérve a Huawei processzorok segítségével.

Tervezett ütemterv és a hozzájárulás módja

Nyilvánvalóan sok a munka, és ezen a ponton az ezen az oldalon bemutatott átfogó ütemtervben egyszerűsítették a jövő évre vonatkozó elképzeléseiket, de azzal érvelnek, hogy a prioritásokat a felhasználó szerint módosítják.

Visszacsatolás. Jelenleg megtalálhatjuk ezeket a főbb vonalakat:

  1. További modellek támogatása (függőben lévő klasszikus modellek, GAN, RNN, transzformátorok, erősített tanulási modellek, valószínűségi programozás, AutoML stb.).
  2. Bővítse az API-kat és a könyvtárakat a használhatóság és a programozási élmény javítása érdekében (több operátor, több optimalizáló, több veszteségfunkció stb.)
  3. Átfogó Huawei Ascend processzor támogatás és teljesítményoptimalizálás (összeállítás optimalizálás, erőforrás-kihasználás fejlesztése stb.)
  4. A szoftververem fejlődése és számítási grafikonoptimalizálások végrehajtása (a köztes IR-ábrázolás javítása, további optimalizálási képességek hozzáadása stb.).
  5. Több programozási nyelv támogatása (nem csak a Python).
  6. Továbbfejlesztett elosztott tanulás az automatikus ütemezés, az adatelosztás stb.
  7. Fejlessze a MindInsight eszközt, hogy megkönnyítse a programozó számára a "hibakeresést" és javítsa a hiperparaméterek hangolását a tanulási folyamat során.
  8. Előrelépés a következtetési funkcionalitás biztosításában az Edge készülékeiben (biztonság, nem platformos modellek támogatása az ONNX-en keresztül stb.)

A közösségi oldalon láthatja, hogy a MindSpore-nak a Huawei-n és Kínán kívül is vannak partnerei, például az Edinburghi Egyetem, a Londoni Imperial College, a Munsteri Egyetem (Németország) vagy a Paris-Saclay Egyetem. Azt mondják, hogy nyitott kormányzási modellt követnek, és felkérik az egész közösséget, hogy járuljon hozzá mind a kódexhez, mind a dokumentációhoz.

Következtetés

Gyors első pillantás után úgy tűnik, hogy a megfelelő tervezési és megvalósítási döntések (például az egyidejűség és az automatikus differenciálás) teret adhatnak a fejlesztéseknek és optimalizálásoknak, amelyek jobb teljesítményt érnek el, mint azok a keretek, amelyeket felül akarnak mutatni. De még nagyon sok munka vár a PyTorch és a TensorFlow elfogására, és mindenekelőtt egy közösség építésére, nem csak! Mindannyian azonban már tudjuk, hogy egy olyan nagy cég támogatásával az ágazatban, mint a Huawei, minden lehetséges, vagy három évvel ezelőtt nyilvánvaló volt, amikor a PyTorch (Facebook) első verziója megjelent, hogy közel lehet a sarokhoz a TensorFlow (Google) szolgáltatásból?

Ajánlott: