Hogyan használta a Latent Space az Amazon SageMaker modell párhuzamossági könyvtárát a nagyméretű transzformátorok határainak kitűzésére

Forrás csomópont: 1204406

Ennek a blognak a társszerzője Sarah Jane Hong CSO, Darryl Barnhart műszaki igazgató, valamint Ian Thompson, a Latent Space és az AWS Prem Ranga vezérigazgatója.

A látens tér a gépi tanulási (ML) modellek által megtanult absztrakt ötletek rejtett reprezentációja. Például a „kutya”, „virág” vagy „ajtó” fogalmak vagy helyek a látens térben. Nál nél Lappangó tér, egy olyan motoron dolgozunk, amely lehetővé teszi a tér manipulálását és felfedezését nyelvi és vizuális utasításokkal egyaránt. A Latent Space csapata két olyan területről érkezett, amelyekben régóta alig van átfedés: a grafika és a természetes nyelvi feldolgozás (NLP). Hagyományosan a képek és a szöveg módozatait külön kezelték, mindegyiknek megvan a maga összetett, drága és törékeny funkciótervezési története. Az olyan NLP-feladatoknak, mint a dokumentumértés vagy a kérdések megválaszolása, általában nem sok közük van az olyan látásfeladatokhoz, mint a jelenetmegértés vagy renderelés, és általában nagyon eltérő megközelítéseket és modelleket használunk az egyes feladatokhoz. De ez gyorsan változik.

A modalitások egyetlen megosztott rejtett térben való egyesítése a kreatív és kereskedelmi alkalmazások új generációját nyitja meg, a játéktól a dokumentumértésig. De ezen új alkalmazások egyetlen modellben való feloldása új skálázási kihívásokat nyit meg, amint azt Richard Sutton „A keserű lecke” című művében és az elmúlt néhány évben a méretezési törvényekkel kapcsolatos izgalmas munkában is kiemelte. Ennek lehetővé tétele érdekében a Latent Space élvonalbeli kutatásokon dolgozik, hogy ezeket a modalitásokat egyetlen modellben egyesítse, de emellett a méretezés és a hatékonyság érdekében is. Itt jön be a modellpárhuzam.

Amazon SageMakerAz egyedülálló automatizált modellparticionálás és a hatékony csővezeték-megközelítés lehetővé tette a modell-párhuzamosság elfogadását csekély mérnöki erőfeszítéssel, és a modellek képzését 1 milliárd paraméter fölé skáláztuk (használjuk a p4d.24xlarge A100 példányok), ami számunkra fontos követelmény. Megfigyeltük továbbá, hogy amikor egy 16 csomópontos, nyolc GPU-s betanítási beállítással edzettünk a SageMaker modell párhuzamossági könyvtárával, 38%-os hatékonyságjavulást regisztráltunk az előző edzési futtatásainkhoz képest.

Kihívások a nagyméretű transzformátorok betanításával

A Latent Space több milliárd paraméterrel rendelkező transzformátormodellekben olvasztja a nyelvet és a látásmódot, hogy támogassuk a felhasználó képzeletéből származó „elosztáson kívüli” használati eseteket, vagy amelyek a valós világban előfordulnának, de a képzési adatainkban nem. Két különböző módon kezeljük a több milliárd paraméterre és azon túli méretezésből fakadó kihívásokat:

Az információ-visszakeresési technikák régóta a keresőmotorok és a minőségbiztosítási feladatok kulcsfontosságú elemei. A közelmúltban izgalmas előrelépés történt a klasszikus infravörös technikák és a modern transzformátorok ötvözésével, kifejezetten olyan kérdések megválaszolási feladatokhoz, ahol a modellt egy neurális retrieverrel közösen képezik ki, amely megtanulja visszakeresni a releváns dokumentumokat a kérdések megválaszolásához. Áttekintésért tekintse meg a FAIR legutóbbi munkáját Retrieval Augmented Generation: Az intelligens természetes nyelvi feldolgozási modellek létrehozásának egyszerűsítése és a Fusion-in-Dekóder, Google Brain's BIRODALOM, és az Nvidiánál Neurális retriever kérdés megválaszolására.

Bár a visszakereséssel kiegészített technikák segítik a költségeket és a hatékonyságot, továbbra sem tudjuk a modellt egyetlen GPU-ra illeszteni a legnagyobb modellünkhöz. Ez azt jelenti, hogy modellpárhuzamot kell használnunk a képzéshez. A visszakeresési architektúránk természetéből adódóan azonban a modellfelosztásunk megtervezése kihívást jelentett a lekért kontextusok közötti kölcsönös függőségek miatt a képzési bemenetek között. Továbbá, még ha meghatározzuk is, hogyan osztjuk fel a modellünket, a modellpárhuzam bevezetése jelentős mérnöki feladat volt számunkra, amelyet manuálisan kellett elvégeznünk kutatási és fejlesztési életciklusunk során.

A SageMaker modell párhuzamossági könyvtára

A modellpárhuzam az a folyamat, amikor egy modellt felosztanak több eszköz vagy csomópont (például GPU-val felszerelt példányok) között, és hatékony folyamatot hoznak létre a modell betanításához ezeken az eszközökön a GPU kihasználtságának maximalizálása érdekében. A modell párhuzamosság könyvtár a SageMakerben elérhetőbbé teszi a modellpárhuzamot azáltal, hogy automatizált modellfelosztást biztosít, más néven automatizált modellparticionálás és kifinomult csővezeték-futásütemezés. A modellfelosztó algoritmusok a sebességre vagy a memóriafogyasztásra optimalizálhatnak. A könyvtár particionáló algoritmust használ, amely kiegyensúlyozza a memóriát, minimalizálja az eszközök közötti kommunikációt és optimalizálja a teljesítményt.

Automatizált modellparticionálás

PyTorch használati esetünkben a párhuzamos modellkönyvtár belsőleg lefuttat egy nyomkövetési lépést (az első betanítási lépésben), amely összeállítja a modellgráfot, és meghatározza a tenzor- és paraméteralakokat. Ezután létrehoz egy fát, amely a beágyazott elemekből áll nn.Module objektumok a modellben, valamint a nyomkövetés során gyűjtött további adatok, például a tárolt mennyiség nn.Parameters, és mindegyik futási ideje nn.Module.

A könyvtár ezután végighalad ezen a fán a gyökértől, és egy particionáló algoritmust futtat, amely egyensúlyba hozza a számítási terhelést és a memóriahasználatot, és minimalizálja a példányok közötti kommunikációt. Ha több nn.modul ugyanazon az nn.paraméteren osztozik, akkor ezek a modulok ugyanarra az eszközre kerülnek, hogy elkerüljék ugyanazon paraméter több verziójának karbantartását. A particionálási döntés meghozatala után a hozzárendelt modulok és súlyok betöltődnek az eszközeikre.

Csővezeték-futás ütemezése

A SageMaker elosztott modell párhuzamos könyvtár másik alapvető jellemzője az vezetékes futások, amelyek meghatározzák a számítások elvégzésének és az adatok feldolgozásának sorrendjét az eszközök között a modell betanítása során. A folyamatosítás a mini-köteg mikrobatche-ekre való felosztásán alapul, amelyek egyenként kerülnek a betanítási folyamatba, és követik a könyvtár futási környezete által meghatározott futási ütemtervet.

A microbatch folyamat biztosítja, hogy az összes GPU teljes mértékben kihasználva legyen, amit magunknak kellene felépíteni, de a modell párhuzamossági könyvtárral ez szépen megtörténik a színfalak mögött. Végül használhatjuk Amazon FSx, ami azért fontos, hogy biztosítsuk az olvasási sebességünk gyorsaságát, tekintettel a beolvasásra kerülő fájlok számára egy multimodális modell lekéréssel történő betanítása során.

Képzési építészet

A következő diagram bemutatja, hogyan állítjuk be a képzési architektúrát. Elsődleges célunk az edzés sebességének javítása és a költségek csökkentése volt. Az általunk betanított kép- és nyelvi transzformátorok rendkívül összetettek, jelentős számú réteggel és súlyozással rendelkeznek, több milliárd paraméterre futnak, ami miatt nem férnek el egyetlen csomópont memóriájában. Minden csomópont a modell egy részhalmazát hordozza, amelyen keresztül az adatfolyamok és a transzformációk megosztásra és fordításra kerülnek. Beállítjuk a 16 p4d.24xlarge példányok mindegyike nyolc GPU-val a következő architektúraábrázolást használva:

Modelljeink skálázásakor általános tendencia az, hogy mindent a hálózat súlyaiban tárolunk. Gyakorlati okokból azonban szeretnénk kiegészíteni modelljeinket, hogy megtanulják, hogyan keressünk releváns kontextusokat, amelyek segítik a renderelést. Ez lehetővé teszi számunkra, hogy alacsonyan tartsuk kiszolgálási költségeinket anélkül, hogy a képminőséget veszélyeztetnénk. Nagy transzformátor alapú NLP-modellt használunk, és amint azt korábban említettük, a SageMaker modell párhuzamossági könyvtárával 38%-os növekedést figyeltünk meg a betanítás hatékonyságában, amint azt a következők mutatják:

  • Tenzorszintű párhuzamosság esetén minden számításhoz szükségünk van egy allreduce-ra. Ez O(log_2 n) párhuzamos lépést vesz igénybe. Ez azt jelenti, hogy n gép O(n) lépést tesz meg O(n log_2 n) összes művelet esetén.
  • A csővezeték párhuzamosságához O(1) párhuzamos lépésre van szükségünk az adatok csővezetéken való továbbításához
  • Adott 16 gép nyolc GPU-val, akkor O(1) költségünk van a párhuzamos csővezetéknél, és O(log_2(8)) = O(3) a mélység szerinti párhuzamos modellnél.
  • Ebben az esetben azt látjuk, hogy a hálózati költség 1/3-ára csökken, ha a SageMaker modell párhuzamosságára váltunk, és a teljes képzési költség 1/2 + 1/2 * 1/log_2(16) ) = az eredeti költség 0.625-e, ami megfelelő hatékonyságjavuláshoz vezet.

Általánosságban elmondható, hogy amikor az igény megosztott képzést tesz szükségessé (a modell méretének vagy a betanítási adatok skálázásával kapcsolatos problémák), akkor követhetjük a bevált gyakorlatokat annak meghatározásához, hogy melyik megközelítés működik a legjobban.

Az elosztott képzés legjobb gyakorlatai

Tapasztalataink alapján azt javasoljuk, hogy az elosztott adatokkal párhuzamos megközelítéssel kezdjük. Az elosztott adatok párhuzamossága, mint pl SageMaker elosztott adatok párhuzamos könyvtár megoldja a legtöbb hálózati problémát a modellreplikákkal, ezért a modelleket a lehető legkisebb számú csomópontba kell illeszteni, majd szükség szerint a kötegméretre kell replikálni.

Ha edzés közben elfogy a memóriája, mint ahogy ezt ebben a forgatókönyvben is tettük, érdemes lehet modell párhuzamos megközelítésre váltani. Azonban fontolja meg ezeket az alternatívákat, mielőtt kipróbálná a párhuzamos modellképzést:

  • NVIDIA Tensor Core-val felszerelt hardveren használja vegyes precíziós képzés gyorsítás és memóriafelhasználás csökkentése érdekében.
  • Csökkentse a köteg méretét (vagy csökkentse a képfelbontást vagy az NLP sorozat hosszát, ha lehetséges).

Ezenkívül előnyben részesítjük azokat a modellterveket, amelyek nem tartalmaznak kötegelt normalizálást, amint azt itt leírtuk Nagy teljesítményű nagyméretű képfelismerés normalizálás nélkül. Ha nem kerülhető el, győződjön meg arról, hogy a kötegelt normalizálás szinkronizálva van az eszközök között. Ha elosztott képzést használ, a köteg fel van osztva a GPU-k között, így a pontos kötegstatisztika szinkronizálást igényel az összes eszközön. E nélkül a normalizálás megnövekedett hibával jár, és ezáltal rontja a konvergenciát.

Kezdje a párhuzamos modellképzéssel, ha a következő megkötésekkel rendelkezik:

  • Az Ön modellje nem fér el egyetlen eszközön sem
  • A modell mérete miatt korlátokba ütközik a nagyobb kötegméretek kiválasztásakor, például ha a modell súlya a GPU-memória nagy részét elfoglalja, és kénytelen kisebb, nem optimális kötegméretet választani.

A teljesítmény optimalizálásakor tegye a következőket:

  • Használjon csővezetéket a csomópontok közötti kommunikációhoz a késleltetés minimalizálása és az átviteli sebesség növelése érdekében
  • A buborékok minimalizálása érdekében tartsa a csővezetékeket a lehető legrövidebbre. A mikroadagok számát úgy kell beállítani, hogy egyensúlyba kerüljön a számítási hatékonyság és a buborék mérete, és legalább a csővezeték hosszának kell lennie. Ha szükséges, mikrobatokat képezhet a token szintjén, a leírás szerint TeraPipe: Token Level Pipeline Parallelism nagyszabású nyelvi modellek betanításához

Költségoptimalizáláskor használja a SageMaker által kezelt azonnali példányokat a képzéshez. Ez akár 90%-kal optimalizálhatja a képzési modellek költségeit az On-Demand példányokhoz képest. A SageMaker kezeli a Spot megszakításokat az Ön nevében.

Egyéb figyelembe veendő tényezők:

  • Egy csomóponton belül, ha van gyors összekapcsolás, ez árnyaltabb. Ha elegendő a csomóponton belüli hálózati kapacitás, az adatok optimálisabb számítási célú átrendezése előnyös lehet.
  • Ha az aktiválások sokkal nagyobbak, mint a súlytenzorok, akkor egy szilánkos optimalizáló is segíthet. Kérjük, olvassa el Nulla fül alatt találsz.

Az alábbi táblázat néhány gyakori képzési skálázási forgatókönyvet tartalmaz, és bemutatja, hogyan konfigurálhatja őket az AWS-ben.

Forgatókönyv Mikor érvényes? Megoldás
Méretezés egyetlen GPU-ról több GPU-ra Ha a képzési adatok mennyisége vagy a modell mérete túl nagy Váltson több GPU-s példányra, például a p3.16xlarge-re, amely nyolc GPU-val rendelkezik, az adatok és a feldolgozás meg van osztva a nyolc GPU között, és közel lineáris gyorsulást produkál a modell betanításához szükséges idő alatt.
Méretezés egyetlen példányról több példányra Amikor a méretezési igények túlmutatnak a példány méretének megváltoztatásán A példányok számát a SageMaker Python SDK becslő funkciójával skálázhatja úgy, hogy az instance_type értéket p3.16xlarge-re, az instance_count értéket pedig 2-re állítja. Egyetlen p3.16xlarge nyolc GPU helyett 16 GPU van két azonos példányon. Fontolja meg a SageMaker elosztott adatok párhuzamos könyvtár.
Modell párhuzamos megközelítés kiválasztása a képzéshez Ha memóriahiba merül fel edzés közben Váltson modell párhuzamos megközelítésre a SageMaker elosztott modell párhuzamos könyvtár.
Hálózati teljesítmény a csomópontok közötti kommunikációhoz Több példányos elosztott betanításhoz (például kommunikáció a fürt csomópontjai között AllReduce művelet végrehajtásakor) A példányoknak ugyanabban a régióban és ugyanabban az elérhetőségi zónában kell lenniük. Ha a SageMaker Python SDK-t használja, akkor ezt az Ön helyett kezeljük. Az edzési adatoknak ugyanabban az elérhetőségi zónában kell lenniük. Fontolja meg a SageMaker elosztott adatok párhuzamos könyvtár.
Optimalizált GPU, hálózat és tárhely Nagyszabású elosztott képzési igényekhez A p4d.24xlarge példánytípust gyors helyi tárolásra és akár 400 gigabites gyors hálózati hátlapra tervezték, és erősen ajánljuk, mint a legteljesítményesebb opciót az elosztott képzéshez.

Következtetés

A SageMaker párhuzamos modellkönyvtárával számos előnyhöz jutunk, mint például az automatizált modellparticionálás és a hatékony folyamatkezelés. Ebben a bejegyzésben megosztottuk kihívásainkat az ML használati esetünkkel, a különböző képzési megközelítésekkel kapcsolatos megfontolásainkat, és azt, hogy hogyan használtuk az Amazon SageMaker modell párhuzamossági könyvtárát a képzés felgyorsítására. A legjobb az egészben, hogy most már csak néhány órába telhet az itt leírt modellpárhuzamossági és teljesítményjavítási bevált gyakorlatok átvétele. Ha ez a bejegyzés segít vagy inspirál egy probléma megoldásában, szívesen hallanánk róla! Kérjük, ossza meg észrevételeit és visszajelzését.

Referenciák

További információért kérjük, olvassa el az alábbiakat:


A szerzőkről

Prem Ranga egy Enterprise Solutions Architect, székhelye Atlanta, GA. A Machine Learning Technical Field Community tagja, és szeret ügyfelekkel dolgozni az ML és AI útján. Prem szenvedélyesen rajong a robotikáért, autonóm járművek kutatója, és az Alexa által vezérelt söröntőt Houstonban és más helyeken is megépítette.

Sarah Jane Hong a Latent Space társalapítója és tudományos igazgatója. Háttere az ember-számítógép interakció és a gépi tanulás metszéspontjában rejlik. Korábban az NLP-kutatást vezette a Sonarnál (a Marchex felvásárolta), amely a társalgási mesterséges intelligencia terén működő vállalkozásokat szolgálja ki. Emellett megbecsült AR/VR fejlesztő, aki az Oculustól, a Mozilla Mixed Realitytől és a Microsoft Hololenstől kapott díjat és ösztöndíjat.

Darryl Barnhart a Latent Space társalapítója és technológiai igazgatója. Tapasztalt fejlesztő, aki tapasztalattal rendelkezik a GPU-gyorsítás, a számítógépes grafika, a nagyméretű adatok és a gépi tanulás területén. Egyéb szenvedélyek közé tartozik a matematika, a játékfejlesztés és az információk tanulmányozása.

Ian Thompson a Latent Space alapítója és vezérigazgatója. Ian mérnök és kutató, akit a „szomszédos lehetséges” ihlettek – olyan technológiák, amelyek nagy hatással lesznek az életünkre. Jelenleg a multimodális reprezentáció tanulásának egyszerűsítésére és skálázására összpontosít, hogy elősegítse a biztonságos és kreatív mesterséges intelligencia felépítését. Korábban segített vállalatok felépítésében a grafika/virtuális valóság (AltspaceVR, a Microsoft által felvásárolt) és az oktatás/NLP (HSE) területén.

Forrás: https://aws.amazon.com/blogs/machine-learning/how-latent-space-used-the-amazon-sagemaker-model-parallelism-library-to-push-the-frontiers-of-large- skála-transzformátorok/

Időbélyeg:

Még több AWS gépi tanulási blog