A Large Language Model (LLM) képzés népszerűsége megnőtt az elmúlt évben számos népszerű modell megjelenésével, mint például a Llama 2, Falcon és Mistral. Az ügyfelek jelenleg 1 milliárdtól több mint 175 milliárd paraméterig terjedő LLM-eket előképzik és finomhangolják, hogy optimalizálják a modellek teljesítményét az iparágakban, az egészségügytől a pénzügyekig és a marketingig.
Az ilyen léptékű, teljesítőképes modellek képzése kihívást jelenthet. A rendkívül pontos LLM-eknek terabájt képzési adatra és több ezer vagy akár több millió óra gyorsító számítási időre van szükségük a célpontosság eléréséhez. A képzés befejezéséhez és a termékek időben történő bevezetéséhez az ügyfelek párhuzamossági technikákra támaszkodnak, hogy ezt a hatalmas munkaterhelést akár több ezer gyorsítóeszköz között is megosszák. Ezek a párhuzamosítási technikák azonban nehezen használhatók: a különböző technikák és könyvtárak csak bizonyos munkaterhelésekkel kompatibilisek, vagy csak bizonyos modellarchitektúrákra korlátozódnak, a képzési teljesítmény nagyon érzékeny lehet a homályos konfigurációkra, és a technika állása gyorsan fejlődik. Ennek eredményeként a gépi tanulással foglalkozó szakembereknek hetekig kell felkészülniük, hogy LLM-munkaterhelésüket a GPU-k nagy csoportjaira méretezzék.
Ebben a bejegyzésben az újdonságokat mutatjuk be Amazon SageMaker modell párhuzamos (SMP) könyvtár, amely leegyszerűsíti a nagy modell betanítási folyamatot, és segít az LLM-ek gyorsabb képzésében. Különösen az SMP-könyvtár új, egyszerűsített felhasználói élményével foglalkozunk, amely a nyílt forráskódú PyTorch Fully Sharded Data Parallel (FSDP) API-kra, a kibővített tenzorral párhuzamos funkcionalitásra, amely több százmilliárd paraméterrel rendelkező betanítási modelleket tesz lehetővé, valamint a modell betanítási idejét csökkentő teljesítményoptimalizálásra épül. és költsége akár 20%.
Ha többet szeretne megtudni a SageMaker modell párhuzamos könyvtáráról, lásd: SageMaker modell párhuzamossági könyvtár v2 dokumentáció. A mi oldalunkra is hivatkozhat példafüzetek az induláshoz.
Új funkciók, amelyek leegyszerűsítik és felgyorsítják a nagy modellek képzését
Ez a bejegyzés a SageMaker modell párhuzamos könyvtárának v2.0 kiadásában található legújabb funkciókat tárgyalja. Ezek a funkciók javítják a könyvtár használhatóságát, bővítik a funkcionalitást és felgyorsítják a képzést. A következő szakaszokban összefoglaljuk az új funkciókat, és megvitatjuk, hogyan használhatja a könyvtárat a nagy modellképzés felgyorsítására.
Az SMP és a nyílt forráskódú PyTorch összehangolása
2020-as indulása óta az SMP nagy teljesítményű, nagyszabású képzést tesz lehetővé a SageMaker számítási példányairól. Az SMP legújabb főverziójával a könyvtár leegyszerűsíti a felhasználói élményt azáltal, hogy az API-kat a nyílt forráskódú PyTorchhoz igazítja.
PyTorch kínál Teljesen megosztott adatok párhuzamossága (FSDP) mint fő módszer a nagy képzési munkaterhelés támogatására számos számítástechnikai eszközön. Amint azt a következő kódrészlet is bemutatja, az SMP frissített API-i olyan technikákhoz, mint a szilánkos adatok párhuzamossága, tükrözik a PyTorch technikáit. Egyszerűen futhatsz import torch.sagemaker
és használja helyette torch
.
Az SMP API-jainak ezekkel a frissítéseivel a meglévő PyTorch FSDP oktatószkriptek átdolgozása nélkül is kihasználhatja a SageMaker és az SMP könyvtár teljesítménybeli előnyeit. Ez a paradigma azt is lehetővé teszi, hogy ugyanazt a kódbázist használja a helyszíni képzés során, mint a SageMakeren, leegyszerűsítve a felhasználói élményt azon ügyfelek számára, akik több környezetben edzenek.
További információért arról, hogyan engedélyezheti az SMP-t a meglévő PyTorch FSDP betanító parancsfájlokkal, tekintse meg a következőt: Kezdje el az SMP-t.
A tenzorpárhuzam integrálása a tömeges klasztereken való képzés lehetővé tételéhez
Az SMP ezen kiadása a PyTorch FSDP képességeit is kiterjeszti a tenzorpárhuzamossági technikákkal. A szilánkos adatok párhuzamos használatának egyik problémája az, hogy a fürt méretének növelése során konvergenciaproblémákba ütközhet. Ennek az az oka, hogy a paraméterek felosztása, a színátmenetek és az optimalizáló állapota az adatok párhuzamos rangsorai között is növeli a globális kötegméretet; nagy klasztereken ez a globális kötegméret túlléphető azon a küszöbértéken, amely alatt a modell konvergálna. Be kell építenie egy további párhuzamosítási technikát, amely nem igényli a globális kötegméret növelését a fürt méretezésekor.
A probléma enyhítése érdekében az SMP v2.0 bevezeti a szilánkos adatok párhuzamosságának tenzorpárhuzamba állítását. A tenzorpárhuzam lehetővé teszi a fürt méretének növelését anélkül, hogy a globális kötegméretet megváltoztatná vagy a modell konvergenciáját befolyásolná. Ezzel a funkcióval biztonságosan növelheti a betanítási sebességet a fürtök 256 vagy több csomóponttal való kiépítésével.
Ma a PyTorch FSDP tenzorpárhuzamossága csak az SMP v2-vel érhető el. Az SMP v2 lehetővé teszi, hogy engedélyezze ezt a technikát néhány soros kódváltással, és feloldja a stabil képzést még nagy klasztereken is. SMP v2 integrálható Transzformátor motor a tenzorpárhuzam megvalósításához, és kompatibilissé teszi a PyTorch FSDP API-kkal. Egyszerre is engedélyezheti a PyTorch FSDP és az SMP tenzor párhuzamosságot anélkül, hogy bármit is módosítana a PyTorch modellen vagy a PyTorch FSDP konfiguráción. A következő kódrészletek bemutatják, hogyan kell beállítani az SMP konfigurációs szótárt JSON formátumban és hozzáadni az SMP inicializálási modult torch.sagemaker.init()
, amely elfogadja a konfigurációs szótárt a háttérben, amikor elindítja a betanítási feladatot, a képzési parancsfájlhoz.
Az SMP konfigurációja a következő:
Az edzési szkriptben használja a következő kódot:
Ha többet szeretne megtudni a tenzor párhuzamosság használatáról az SMP-ben, tekintse meg a tenzor párhuzamosság dokumentációnk részét.
Használjon speciális funkciókat a modellképzés akár 20%-os felgyorsításához
Amellett, hogy lehetővé teszi az elosztott képzést a több száz példányt tartalmazó fürtökön, az SMP olyan optimalizálási technikákat is kínál, amelyek akár 20%-kal is felgyorsíthatják a modell betanítását. Ebben a részben kiemelünk néhány ilyen optimalizálást. További információért tekintse meg a alapvető jellemzői dokumentációnk részét.
Hibrid szaggatás
A megosztott adatok párhuzamossága egy memóriakímélő elosztott betanítási technika, amely felosztja a modell állapotát (modellparaméterek, színátmenetek és optimalizáló állapotok) az eszközök között. Ez a kisebb memóriaterület lehetővé teszi, hogy nagyobb modellt illesszen be a fürtbe, vagy növelje a köteg méretét. A feldarabolt adatok párhuzamossága azonban megnöveli a képzési munka kommunikációs követelményeit is, mivel a feldarabolt modellműtermékeket gyakran gyűjtik össze különböző eszközökről a képzés során. Ily módon a felosztás mértéke fontos konfiguráció, amely csökkenti a memóriafelhasználást és a kommunikációs többletköltséget.
Alapértelmezés szerint a PyTorch FSDP szilánkokat modellezi a melléktermékeket a fürt összes gyorsítóeszközén. A képzési munkától függően ez a felosztási módszer növelheti a kommunikációs költségeket, és szűk keresztmetszetet okozhat. Ennek elősegítésére az SMP-könyvtár konfigurálható hibrid szilánkos adatpárhuzamot kínál a PyTorch FSDP-n felül. Ez a funkció lehetővé teszi, hogy beállítsa az edzési terhelésnek megfelelő felosztási fokot. Egyszerűen adja meg a felosztás mértékét egy konfigurációs JSON-objektumban, és vegye fel az SMP betanítási parancsfájljába.
Az SMP konfigurációja a következő:
Ha többet szeretne megtudni a hibrid szilánkos adatok párhuzamosságának előnyeiről, lásd: A gigantikus modell-képzés közel lineáris skálázása AWS-en. További információ a hibrid felosztás megvalósításáról a meglévő FSDP képzési szkripttel: lásd hibrid megosztott adatok párhuzamossága dokumentációnkban.
Használja az AWS infrastruktúrára optimalizált SMDDP kollektív kommunikációs műveleteket
Használhatja az SMP könyvtárat a SageMaker elosztott adatpárhuzamosság (SMDDP) könyvtár hogy felgyorsítsa az elosztott edzési terhelést. Az SMDDP tartalmaz egy optimalizált AllGather
kollektív kommunikációs művelet, amelyet a legjobb teljesítményre terveztek a SageMaker p4d és p4de gyorsított példányokon. Az elosztott képzés során kollektív kommunikációs műveleteket használnak a GPU-munkások közötti információk szinkronizálására. AllGather
Az egyik alapvető kollektív kommunikációs művelet, amelyet általában a szilánkos adatok párhuzamosságában használnak a rétegparaméterek materializálására az előre és visszafelé irányuló számítási lépések előtt. A kommunikáció által szűk keresztmetszetű képzési munkáknál a gyorsabb kollektív műveletek csökkenthetik a képzési időt és költséget anélkül, hogy a konvergenciát befolyásolnák.
Az SMDDP-könyvtár használatához csak két sor kódot kell hozzáadnia a képzési szkripthez:
Az SMP mellett az SMDDP támogatja a nyílt forráskódú PyTorch FSDP-t és a DeepSpeed-et is. Ha többet szeretne megtudni az SMDDP könyvtárról, lásd: Futtasson elosztott képzést a SageMaker elosztott adatpárhuzamossági könyvtárral.
Aktiválási kirakodás
Általában a modell betanításának előrehaladása kiszámítja az aktiválásokat az egyes rétegeknél, és a GPU memóriájában tartja azokat, amíg a megfelelő réteg visszafelé lépése be nem fejeződik. Ezek a tárolt aktiválások jelentős GPU-memóriát fogyaszthatnak az edzés során. Az aktiválási tehermentesítés egy olyan technika, amely ehelyett ezeket a tenzorokat a CPU memóriájába helyezi át az előrehaladás után, majd később visszakéri őket a GPU-ra, amikor szükség van rájuk. Ez a megközelítés jelentősen csökkentheti a GPU memóriahasználatát az edzés során.
Bár a PyTorch támogatja az aktiválás lerakodását, megvalósítása nem hatékony, és a GPU-k tétlenségét okozhatja, miközben az aktiválások visszamenőleges továbbítás során visszamennek a CPU-ból. Ez jelentős teljesítménycsökkenést okozhat az aktiválási tehermentesítés használatakor.
Az SMP v2 optimalizált aktiválási tehermentesítési algoritmust kínál, amely javíthatja az edzési teljesítményt. Az SMP implementációja előre letölti az aktiválásokat, mielőtt szükség lenne rájuk a GPU-n, így csökkentve az üresjárati időt.
Mivel az SMP a PyTorch API-kra épül, az optimalizált aktiválási tehermentesítés lehetővé tételéhez mindössze néhány sornyi kódváltás szükséges. Egyszerűen adja hozzá a kapcsolódó konfigurációkat (sm_activation_offloading
és a activation_loading_horizon
paraméterek), és szerepeltesse őket a képzési szkriptben.
Az SMP konfigurációja a következő:
A képzési szkriptben használja a következő kódot:
Ha többet szeretne megtudni a nyílt forráskódú PyTorch ellenőrzőpont-eszközökről az aktiválás lerakodásához, tekintse meg a checkpoint_wrapper.py szkriptet a PyTorch GitHub tárolóban és Aktiválási ellenőrzőpont a PyTorch blogbejegyzésben Multimodális alapozási modellek méretezése a TorchMultimodalban a Pytorch Distributed segítségével. Ha többet szeretne megtudni az SMP optimalizált aktiválási tehermentesítési megvalósításáról, tekintse meg a aktiválás tehermentesítése dokumentációnk részét.
A hibrid felosztáson, az SMDDP-n és az aktiválási tehermentesítésen túlmenően az SMP további optimalizálásokat kínál, amelyek felgyorsíthatják a nagy modellképzési munkaterhelést. Ez magában foglalja az optimalizált aktiválási ellenőrzési pontot, a késleltetett paraméter-inicializálást és egyebeket. További információért tekintse meg a alapvető jellemzői dokumentációnk részét.
Következtetés
Ahogy az adatkészletek, a modellméretek és a képzési klaszterek folyamatosan növekszenek, a hatékony elosztott képzés egyre kritikusabb a modellek és termékek időben történő és megfizethető szállításához. A SageMaker modell párhuzamos könyvtárának legújabb kiadása segít elérni ezt a kódváltás csökkentésével és a PyTorch FSDP API-kkal való összehangolással, lehetővé téve a tömeges klasztereken való képzést tenzoros párhuzamosságon keresztül, valamint olyan optimalizációkat, amelyek akár 20%-kal csökkenthetik a betanítási időt.
Az SMP v2 használatának megkezdéséhez tekintse meg a mi dokumentáció és a mi mintafüzetek.
A szerzőkről
Robert Van Dusen az Amazon SageMaker vezető termékmenedzsere. Keretrendszereket, fordítókat és optimalizálási technikákat vezet a mélytanulási képzéshez.
Luis Quintela az AWS SageMaker modell párhuzamos könyvtárának szoftverfejlesztő menedzsere. Szabadidejében Harley-jével lovagol az SF Bay Area-ben.
Gautam Kumar AWS AI Deep Learning szoftvermérnök. Szenvedélye az AI eszközök és rendszerek építése. Szabadidejében szeret biciklizni és könyveket olvasni.
Rahul Huilgol vezető szoftverfejlesztő mérnök az Amazon Web Services Distributed Deep Learning területén.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- PlatoData.Network Vertical Generative Ai. Erősítse meg magát. Hozzáférés itt.
- PlatoAiStream. Web3 Intelligence. Felerősített tudás. Hozzáférés itt.
- PlatoESG. Carbon, CleanTech, Energia, Környezet, Nap, Hulladékgazdálkodás. Hozzáférés itt.
- PlatoHealth. Biotechnológiai és klinikai vizsgálatok intelligencia. Hozzáférés itt.
- Forrás: https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-model-parallel-library-now-accelerates-pytorch-fsdp-workloads-by-up-to-20/
- :van
- :is
- $ UP
- 1
- 10
- 100
- 14
- 16
- 2020
- 7
- 8
- 9
- a
- képesség
- Rólunk
- gyorsul
- felgyorsult
- gyorsul
- gázpedál
- elfogadja
- pontosság
- pontos
- Elérése
- át
- Az aktiválás
- aktiválások
- hozzá
- mellett
- További
- fejlett
- előnyei
- érintő
- megfizethető
- Után
- AI
- algoritmus
- algoritmusok
- igazítás
- Minden termék
- lehetővé teszi, hogy
- kizárólag
- Is
- amazon
- Amazon SageMaker
- Az Amazon Web Services
- an
- és a
- bármilyen
- API-k
- alkalmazások
- megközelítés
- VANNAK
- TERÜLET
- Művészet
- AS
- társult
- At
- elérhető
- AWS
- vissza
- háttér
- bázis
- öböl
- BE
- mert
- előtt
- lent
- Előnyök
- BEST
- Túl
- Billió
- milliárd
- Blog
- Könyvek
- Épület
- épít
- épült
- by
- TUD
- képességek
- Okoz
- bizonyos
- kihívás
- változik
- Változások
- változó
- Fürt
- kód
- kódbázis
- Kollektív
- közlés
- összeegyeztethető
- teljes
- számítás
- Kiszámít
- Configuration
- fogyaszt
- fogyasztás
- folytatódik
- konvergálni
- Konvergencia
- Mag
- Megfelelő
- Költség
- tudott
- terjed
- CPU
- teremt
- kritikai
- Ügyfelek
- dátum
- adatkészletek
- mély
- mély tanulás
- alapértelmezett
- Fok
- Késik
- kézbesítés
- igazolták
- attól
- tervezett
- Fejlesztő
- Fejlesztés
- Eszközök
- különböző
- nehéz
- megvitatni
- terjeszteni
- megosztott
- elosztott képzés
- dokumentáció
- Nem
- alatt
- minden
- hatások
- hatékony
- lehetővé
- engedélyezve
- lehetővé teszi
- lehetővé téve
- találkozás
- mérnök
- élvez
- hatalmas
- környezetek
- Eter (ETH)
- Még
- fejlődik
- létező
- Bontsa
- kiterjesztett
- kitágul
- tapasztalat
- sólyom
- gyorsabb
- Funkció
- Jellemzők
- Elhozták
- kevés
- finanszíroz
- megfelelő
- következő
- következik
- Lábnyom
- A
- formátum
- Előre
- talált
- Alapítvány
- keretek
- gyakran
- ból ből
- teljesen
- funkcionalitás
- összegyűjtött
- kap
- GitHub
- Globális
- GPU
- GPU
- színátmenetek
- Nő
- he
- egészségügyi
- segít
- segít
- nagy teljesítményű
- Kiemel
- nagyon
- övé
- NYITVATARTÁS
- Hogyan
- How To
- azonban
- HTML
- HTTPS
- Több száz
- hibrid
- Idle
- végrehajtás
- végrehajtási
- importál
- fontos
- javul
- in
- tartalmaz
- beleértve
- magában foglalja a
- bele
- Növelje
- Növeli
- egyre inkább
- iparágak
- nem hatékony
- információ
- példányok
- helyette
- integrál
- bele
- Bemutatja
- IT
- ITS
- Munka
- Állások
- jpg
- json
- éppen
- nyelv
- nagy
- nagyarányú
- nagyobb
- keresztnév
- Tavaly
- a későbbiekben
- legutolsó
- legutolsó kiadás
- indít
- réteg
- vezetékek
- TANUL
- tanulás
- könyvtárak
- könyvtár
- vonalak
- Láma
- gép
- gépi tanulás
- Fő
- fontos
- KÉSZÍT
- Gyártás
- menedzser
- mód
- sok
- Marketing
- tömeges
- megvalósul
- Memory design
- módszer
- Több millió
- tükör
- Enyhít
- modell
- modellek
- modul
- több
- mozog
- többszörös
- kell
- bennszülött
- Szükség
- szükséges
- Új
- Új funkciók
- nem
- csomópontok
- Most
- Nvidia
- tárgy
- of
- kedvezmény
- Ajánlatok
- on
- ONE
- csak
- nyitva
- nyílt forráskódú
- működés
- Művelet
- optimálisan
- optimalizálás
- Optimalizálja
- optimalizált
- or
- Egyéb
- mi
- felett
- paradigma
- Párhuzamos
- paraméter
- paraméterek
- különös
- elhalad
- szenvedélyes
- teljesítmény
- Hely
- Plató
- Platón adatintelligencia
- PlatoData
- Népszerű
- népszerűség
- állás
- előkészítés
- Probléma
- problémák
- folyamat
- Termékek
- termék menedzser
- Termékek
- meglökött
- pytorch
- gyorsan
- kezdve
- soraiban
- Olvasás
- észre
- csökkenteni
- csökkentő
- utal
- engedje
- támaszkodnak
- raktár
- szükség
- követelmények
- megköveteli,
- korlátozott
- eredményez
- lovaglás
- futás
- biztosan
- sagemaker
- azonos
- Skála
- skálázás
- forgatókönyv
- szkriptek
- Rész
- szakaszok
- lát
- idősebb
- érzékeny
- Szolgáltatások
- készlet
- számos
- széttört
- szilánkos
- megosztott
- előadás
- oldal
- jelentős
- egyszerűsített
- egyszerűsíti
- egyszerűsítése
- egyszerűsítése
- egyszerűen
- egyszerre
- Méret
- méretek
- kisebb
- töredék
- szoftver
- szoftverfejlesztés
- Software Engineer
- forrás
- költ
- szakadások
- stabil
- kezdet
- kezdődött
- Állami
- Államok
- Lépései
- memorizált
- lényegesen
- ilyen
- összegez
- Támogató
- Támogatja
- ugrott
- Systems
- cél
- technika
- technikák
- hogy
- A
- Az állam
- azok
- Őket
- Ezek
- ők
- ezt
- azok
- ezer
- küszöb
- áteresztőképesség
- idő
- időszerű
- nak nek
- szerszámok
- felső
- fáklya
- szakmák
- Vonat
- Képzések
- transzformerek
- igaz
- kettő
- jellemzően
- kinyit
- -ig
- frissítve
- Frissítés
- használhatóság
- Használat
- használ
- használt
- használó
- User Experience
- segítségével
- változat
- keresztül
- Út..
- we
- háló
- webes szolgáltatások
- Hetek
- amikor
- ami
- míg
- WHO
- val vel
- nélkül
- dolgozók
- lenne
- betakar
- év
- te
- A te
- zephyrnet