Ebben a bejegyzésben egy Llama 2 modell finomhangolását mutatjuk be a Parameter-Efficient Fine-Tuning (PEFT) módszerrel, és telepítjük a finomhangolt modellt AWS Inferentia2. Használjuk a AWS Neuron szoftverfejlesztő készlet (SDK) segítségével hozzáférhet az AWS Inferentia2 eszközhöz és élvezheti annak nagy teljesítményét. Ezután egy nagy modell-következtetési tárolót használunk, amelyet a táplál Mély Java könyvtár (DJLServing) mint modellkiszolgáló megoldásunk.
Megoldás áttekintése
A Llama2 hatékony finomhangolása a QLoRa segítségével
A Llama 2 nagy nyelvi modellek (LLM) családja előre betanított és finomhangolt generatív szövegmodellek gyűjteménye, 7 milliárdtól 70 milliárdig terjedő skálán. A Llama 2-t 2 billió tokennyi, nyilvánosan elérhető forrásból származó adatra képezték ki. Az AWS-ügyfelek néha úgy döntenek, hogy az ügyfelek saját adatai alapján finomhangolják a Llama 2 modelleket, hogy jobb teljesítményt érjenek el a downstream feladatoknál. A Llama 2 modell nagyszámú paramétere miatt azonban a teljes finomhangolás rendkívül költséges és időigényes lehet. A paraméter-hatékony finomhangolás (PEFT) megközelítés ezt a problémát úgy kezelheti, hogy csak kis számú extra modellparamétert finomít, miközben lefagyasztja az előre betanított modell legtöbb paraméterét. A PEFT-ről további információkért olvassa el ezt Hozzászólás. Ebben a bejegyzésben használjuk QLoRa a Llama 2 7B modell finomhangolásához.
Telepítsen egy finomhangolt modellt az Inf2-n az Amazon SageMaker segítségével
Az AWS Inferentia2 egy erre a célra épített gépi tanulási (ML) gyorsító, amelyet a következtetési munkaterhelésekhez terveztek, és nagy teljesítményt biztosít akár 40%-kal alacsonyabb költségek mellett a generatív AI és LLM munkaterhelésekhez, mint az AWS többi következtetésre optimalizált példánya. Ebben a bejegyzésben az Amazon Elastic Compute Cloudot használjuk (Amazon EC2) Inf2 példány, az AWS Inferentia2-vel, a második generációs Inferentia2 gyorsítókkal, amelyek mindegyike két-két NeuronCores-v2. Mindegyik NeuronCore-v2 egy független, heterogén számítási egység, négy fő motorral: Tensor, Vector, Scalar és GPSIMD motorokkal. Tartalmaz egy chipen található szoftver által kezelt SRAM memóriát az adatok lokalizációjának maximalizálása érdekében. Mivel az Inf2-n több blog is megjelent, erre hivatkozhat az olvasó Hozzászólás és a mi dokumentáció További információkért az Inf2-ről.
A modellek Inf2 rendszeren történő üzembe helyezéséhez szükségünk van az AWS Neuron SDK-ra, mint az Inf2 hardver tetején futó szoftverrétegre. Az AWS Neuron az az SDK, amelyet mély tanulási munkaterhelések futtatására használnak az AWS Inferentián és AWS Trainium alapú példányok. Lehetővé teszi a teljes körű ML fejlesztési életciklust új modellek építésére, ezeknek a modelleknek a betanítására és optimalizálására, valamint a termelési célú üzembe helyezésére. Az AWS Neuron mély tanulást tartalmaz fordítóprogram, futásidejűés szerszámok amelyek natívan integrálva vannak olyan népszerű keretrendszerekkel, mint a TensorFlow és a PyTorch. Ebben a blogban fogunk használni transformers-neuronx
, amely az AWS Neuron SDK része a transzformátor dekóder következtetési munkafolyamataihoz. Azt támogatja számos népszerű modell, köztük a Llama 2.
A modellek telepítéséhez Amazon SageMaker, általában olyan tárolót használunk, amely tartalmazza a szükséges könyvtárakat, mint például a Neuron SDK és transformers-neuronx
valamint a modellkiszolgáló komponens. Az Amazon SageMaker fenntartja mély tanulási konténerek (DLC-k) népszerű nyílt forráskódú könyvtárakkal a nagy modellek tárolására. Ebben a bejegyzésben a Nagy modell-következtető tartály a Neuron számára. Ez a tároló mindent tartalmaz, amire szüksége van a Llama 2 modelljének az Inf2 rendszeren történő üzembe helyezéséhez. Az Amazon SageMakeren az LMI használatának megkezdéséhez szükséges forrásokért tekintse meg sok meglévő bejegyzésünket (blog 1, blog 2, blog 3) ebben a témában. Röviden: futtathatja a tárolót további kód írása nélkül. Használhatja a alapértelmezett kezelő a zökkenőmentes felhasználói élmény érdekében, és adja át a támogatott modellnevek egyikét és a betöltési idő alatt konfigurálható paramétereket. Ezzel összeállítja és kiszolgálja az LLM-et egy Inf2 példányon. Például a telepítéshez OpenAssistant/llama2-13b-orca-8k-3319
, megadhatja a következő konfigurációt (mint serving.properties
fájl). Ban ben serving.properties
, megadjuk a modell típusát, mint llama2-13b-orca-8k-3319
, a köteg mérete 4, a tenzor párhuzamos foka 2, és ennyi. A konfigurálható paraméterek teljes listáját lásd: Minden DJL konfigurációs lehetőség.
Alternatív megoldásként megírhatja a saját modellkezelő fájlját az itt látható módon példa, de ehhez meg kell valósítani a modellbetöltési és következtetési metódusokat, hogy hídként szolgáljanak a DJLServing API-k között.
Előfeltételek
Az alábbi lista felvázolja az ebben a blogbejegyzésben leírt modell bevezetésének előfeltételeit. Bármelyiket megvalósíthatja a AWS felügyeleti konzol vagy a legújabb verzióját használja AWS parancssori interfész (AWS CLI).
Végigjátszás
A következő részben a kódot két részből vesszük végig:
- Finomhangoljon egy Llama2-7b modellt, és töltse fel a modell műtermékeit egy megadott Amazon S3 vödör helyre.
- Telepítse a modellt egy Inferentia2-be az Amazon SageMakerben tárolt DJL-kiszolgálókonténer használatával.
A teljes kódmintákat utasításokkal ebben találja GitHub tárolóból.
1. rész: A Llama2-7b modell finomhangolása PEFT segítségével
A cikkben a nemrégiben bevezetett módszert fogjuk alkalmazni QLoRA: Kvantálás-tudatos, alacsony rangú adapterhangolás a nyelvgeneráláshoz Tim Dettmers et al. A QLoRA egy új technika a nagy nyelvi modellek memóriaigényének csökkentésére a finomhangolás során a teljesítmény feláldozása nélkül.
Jegyzet: A llama2-7b modell alább látható finomhangolását egy Amazonon tesztelték SageMaker Studio notebook Python 2.0 GPU optimalizált kernel segítségével a ml.g5.2xnagy példány típusa. Bevált gyakorlatként azt javasoljuk, hogy használjon egy Amazon SageMaker Studio Az Integrált Fejlesztési Környezet (IDE) elindult a sajátjában Amazon Virtual Private Cloud (Amazon VPC). Ez lehetővé teszi a VPC-n belüli és kívüli hálózati forgalom vezérlését, figyelését és vizsgálatát a szabványos AWS hálózati és biztonsági képességek használatával. További információkért lásd Az Amazon SageMaker Studio csatlakozásának biztosítása privát VPC segítségével.
Kvantizálja az alapmodellt
Először egy kvantált modellt töltünk be 4 bites kvantálással Huggingface transzformátorok könyvtár az alábbiak szerint:
Töltsön be edzési adatkészletet
Ezután betöltjük az adatkészletet, hogy betápláljuk a modellt a finomhangolási lépéshez, az alábbiak szerint:
Csatlakoztasson egy adapterréteget
Itt csatolunk egy kicsi, betanítható adapterréteget, amely a következőképpen van konfigurálva LoraConfig az Ölelőarcban meghatározott peft könyvtár.
Taníts modellt
A fent bemutatott LoRA konfiguráció segítségével finomhangoljuk a Llama2 modellt a hiperparaméterekkel együtt. A modell betanítására szolgáló kódrészlet az alábbiakban látható:
A modell súlyának egyesítése
A fent végrehajtott finomhangolt modell egy új modellt hozott létre, amely a betanított LoRA adaptersúlyokat tartalmazza. A következő kódrészletben egyesítjük az adaptert az alapmodelltel, hogy a finomhangolt modellből következtessünk.
Töltse fel a modell súlyát az Amazon S3-ra
Az 1. rész utolsó lépésében elmentjük az egyesített modellsúlyokat egy megadott Amazon S3 helyre. A modell súlyát az Amazon SageMaker egyik modellkiszolgáló tárolója fogja használni a modell tárolására egy Inferentia2 példány használatával.
2. rész: Host QLoRA modell az AWS Inf2-vel való következtetéshez a SageMaker LMI tároló használatával
Ebben a részben végigvezetjük a QLoRA finomhangolt modell Amazon SageMaker tárhelykörnyezetbe történő telepítésének lépéseit. Használjuk a DJL felszolgálás konténer a SageMakertől DLC, amely integrálódik a transzformátorok-neuronx könyvtárat a modell fogadására. A beállítás megkönnyíti a modellek betöltését az AWS Inferentia2 gyorsítókra, párhuzamosítja a modellt több NeuronCore-on keresztül, és lehetővé teszi a HTTP-végpontokon keresztüli kiszolgálást.
Készítse elő a modell műtermékeit
A DJL számos mély tanulási optimalizálási könyvtárat támogat, többek között DeepSpeed, FasterTransformer és több. A modellspecifikus konfigurációkhoz biztosítunk a serving.properties
kulcsparaméterekkel, mint pl tensor_parallel_degree
és a model_id
a modell betöltési opcióinak meghatározásához. A model_id
lehet egy Hugging Face modellazonosító, vagy egy Amazon S3 útvonal, ahol a modell súlyait tárolják. Példánkban megadjuk a finomhangolt modellünk Amazon S3 helyét. A következő kódrészlet a modellszolgáltatáshoz használt tulajdonságokat mutatja:
Kérjük, olvassa el ezt dokumentáció a következőn keresztül elérhető konfigurálható opciókról további információkért serving.properties
. Felhívjuk figyelmét, hogy használjuk option.n_position=512
ebben a blogban az AWS Neuron gyorsabb összeállításához. Ha nagyobb beviteli token hosszt szeretne kipróbálni, akkor azt javasoljuk, hogy az olvasó előre fordítsa le a modellt (ld. AOT előrefordított modell az EC2-n). Ellenkező esetben időtúllépési hibába ütközhet, ha a fordítási idő túl hosszú.
Azután serving.properties
fájl van megadva, akkor a fájlt a tar.gz
formátumban, az alábbiak szerint:
Ezután feltöltjük a tar.gz fájlt egy Amazon S3 tárolóhelyre:
Hozzon létre egy Amazon SageMaker modell végpontot
Ha Inf2-példányt szeretnénk használni a kiszolgáláshoz, Amazont használunk SageMaker LMI konténer DJL neuronX támogatással. Kérjük, olvassa el ezt Hozzászólás további információkért a DJL NeuronX konténer következtetésekhez való használatáról. A következő kód bemutatja, hogyan telepíthet egy modellt az Amazon SageMaker Python SDK használatával:
Tesztmodell végpontja
A modell sikeres üzembe helyezése után ellenőrizhetjük a végpontot úgy, hogy mintakérést küldünk a prediktornak:
A minta kimenete a következőképpen jelenik meg:
Az adatelemzés összefüggésében a Machine Learning (ML) olyan statisztikai technikára utal, amely a statisztika hatókörének iteratív leszűkítésével egyre összetettebb és pontosabb prediktív erőt képes kinyerni egy adatkészletből.
A gépi tanulás nem egy új statisztikai technika, hanem a meglévő technikák kombinációja. Ezenkívül nem úgy tervezték, hogy egy adott adatkészlettel együtt használják, vagy hogy konkrét eredményt hozzon létre. Inkább úgy tervezték, hogy elég rugalmas legyen ahhoz, hogy alkalmazkodni tudjon bármilyen adatkészlethez, és előrejelzéseket tudjon készíteni bármilyen eredményről.
Tisztítsuk meg
Ha úgy dönt, hogy nem szeretné tovább futni a SageMaker végpontot, törölheti a használatával AWS SDK Pythonhoz (boto3), AWS CLI-hez vagy Amazon SageMaker Console-hoz. Ezen felül, akkor is állítsa le az Amazon SageMaker Studio erőforrásait amelyekre már nincs szükség.
Következtetés
Ebben a bejegyzésben megmutattuk, hogyan lehet finomhangolni egy Llama2-7b modellt LoRA adapterrel, 4 bites kvantálással, egyetlen GPU-példány használatával. Ezután telepítettük a modellt egy Inf2-példányra, amely az Amazon SageMakerben tárolt DJL-kiszolgálókonténer használatával. Végül érvényesítettük az Amazon SageMaker modell végpontját egy szöveggenerálási előrejelzéssel a SageMaker Python SDK használatával. Próbáld ki, szívesen halljuk visszajelzésedet. Maradjon velünk az AWS Inferentia további képességeiről és újításairól szóló frissítésekről.
További példákért az AWS Neuronról lásd aws-neuron-minták.
A szerzőkről
Wei Teh az AWS vezető AI/ML-megoldások specialistája. Szenvedélyesen segíti ügyfeleit AWS-útjukban, az Amazon Machine Learning szolgáltatásaira és a gépi tanuláson alapuló megoldásokra összpontosítva. A munkán kívül szeret szabadtéri tevékenységeket, például kempingezést, horgászatot és túrázást a családjával.
Qingweén Li az Amazon Web Services gépi tanulási szakértője. Ph.D fokozatot szerzett. az Operations Researchben, miután feltörte tanácsadója kutatási támogatási számláját, és nem teljesítette az ígért Nobel-díjat. Jelenleg a pénzügyi szolgáltatási és biztosítási ágazatban tevékenykedő ügyfeleknek segít abban, hogy gépi tanulási megoldásokat építsenek az AWS-re. Szabadidejében szeret olvasni és tanítani.
- 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/fine-tune-llama-2-using-qlora-and-deploy-it-on-amazon-sagemaker-with-aws-inferentia2/
- :van
- :is
- :nem
- :ahol
- $ UP
- 1
- 10
- 100
- 11
- 15%
- 16
- 19
- 24
- 300
- 7
- 70
- 8
- a
- Rólunk
- felett
- gázpedál
- gyorsítók
- hozzáférés
- Fiók
- pontosság
- Elérése
- át
- tevékenységek
- alkalmazkodni
- További
- Ezen kívül
- cím
- előre
- Után
- előre
- AI
- AI / ML
- AL
- lehetővé teszi, hogy
- mentén
- Alpha
- Is
- amazon
- Amazon gépi tanulás
- Amazon SageMaker
- Amazon SageMaker Studio
- Az Amazon Web Services
- an
- elemzés
- és a
- bármilyen
- API-k
- alkalmaz
- megközelítés
- VANNAK
- AS
- At
- csatolja
- auto
- elérhető
- AWS
- AWS Inferentia
- labda
- bázis
- alapján
- adagoló
- BE
- óta
- haszon
- BEST
- Jobb
- között
- Billió
- Blog
- blogok
- HÍD
- Törött
- épít
- de
- by
- TUD
- képességek
- képes
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a
- felhő
- kód
- gyűjtemény
- kombináció
- teljes
- bonyolultság
- összetevő
- Kiszámít
- Configuration
- konfigurálva
- Connectivity
- Konzol
- fogyasztó
- Konténer
- tartalmaz
- kontextus
- ellenőrzés
- Költség
- tudott
- készítette
- Jelenleg
- Ügyfelek
- dátum
- adatelemzés
- dönt
- mély
- mély tanulás
- alapértelmezett
- meghatározott
- meghatározott
- Fok
- szállít
- szállít
- telepíteni
- telepített
- bevezetéséhez
- leírt
- tervezett
- Fejlesztés
- eszköz
- Dokkmunkás
- le-
- két
- alatt
- dinamikus
- E&T
- minden
- bármelyik
- lehetővé teszi
- végtől végig
- Endpoint
- Motor
- Motorok
- elég
- Környezet
- hiba
- stb.
- minden
- példa
- példák
- végrehajtott
- létező
- drága
- tapasztalat
- külön-
- Arc
- megkönnyíti
- Sikertelen
- hamis
- család
- gyorsabb
- Featuring
- Visszacsatolás
- filé
- utolsó
- Végül
- pénzügyi
- pénzügyi szolgáltatás
- vezetéknév
- Halászat
- rugalmas
- összpontosítás
- következik
- követ
- következő
- következik
- Lábnyom
- A
- formátum
- talált
- négy
- keretek
- Fagyasztó
- ból ből
- Tele
- Továbbá
- generáció
- nemző
- Generatív AI
- kap
- Ad
- Go
- megy
- GPU
- biztosít
- hardver
- he
- hall
- segít
- segít
- itt
- Magas
- nagy teljesítményű
- övé
- vendéglátó
- házigazdája
- tárhely
- Ház
- Hogyan
- How To
- azonban
- HTML
- http
- HTTPS
- ID
- if
- kép
- végre
- végrehajtási
- in
- tartalmaz
- magában foglalja a
- Beleértve
- növekvő
- független
- ipar
- információ
- újítások
- bemenet
- bemenet
- példa
- utasítás
- biztosítás
- integrált
- integrál
- bele
- Bevezetett
- IT
- ismétlés
- ITS
- Jáva
- utazás
- jpg
- json
- Tart
- Kulcs
- Kit (SDK)
- nyelv
- nagy
- nagyobb
- legutolsó
- indított
- réteg
- tojók
- tanulás
- Hossz
- szint
- könyvtárak
- könyvtár
- életciklus
- mint
- Kedvencek
- vonal
- Lista
- Láma
- LLM
- kiszámításának
- betöltés
- elhelyezkedés
- hosszabb
- szerelem
- alacsonyabb
- gép
- gépi tanulás
- Fő
- fenntartja
- csinál
- vezetés
- sok
- maximalizálása
- Memory design
- megy
- módszer
- mód
- esetleg
- ML
- modell
- modellek
- Modulok
- monitor
- több
- a legtöbb
- sok
- többszörös
- nevek
- nas
- Szükség
- hálózat
- hálózati forgalom
- hálózatba
- Új
- nem
- Nóbel díj
- Egyik sem
- megjegyezni
- szám
- of
- on
- ONE
- csak
- -ra
- nyitva
- nyílt forráskódú
- Művelet
- optimalizálás
- Optimalizálja
- optimalizált
- opció
- Opciók
- or
- Más
- másképp
- mi
- Eredmény
- körvonalak
- teljesítmény
- kívül
- felett
- saját
- csomag
- Papír
- Párhuzamos
- paraméter
- paraméterek
- rész
- alkatrészek
- elhalad
- szenvedélyes
- ösvény
- teljesítmény
- teljesített
- terv
- Plató
- Platón adatintelligencia
- PlatoData
- kérem
- Népszerű
- állás
- Hozzászólások
- hatalom
- powered
- gyakorlat
- Pontosság
- előrejelzés
- Tippek
- Predictor
- előfeltételek
- magán
- díj
- Probléma
- folyamat
- gyárt
- Termelés
- igért
- ingatlanait
- ad
- nyilvánosan
- közzétett
- Piton
- pytorch
- hatótávolság
- kezdve
- Inkább
- Olvass
- Olvasó
- Olvasás
- kapott
- nemrég
- ajánl
- csökkenteni
- utal
- kifejezés
- raktár
- kérni
- kéri
- kötelező
- megköveteli,
- kutatás
- Tudástár
- válasz
- válaszok
- jobb
- futás
- futás
- feláldozása
- sagemaker
- Megtakarítás
- Skála
- skálázás
- hatálya
- sdk
- zökkenőmentes
- Második
- Második generáció
- Rész
- biztonság
- lát
- elküldés
- idősebb
- Sorozat
- szolgál
- szolgáltatás
- Szolgáltatások
- szolgáló
- készlet
- beállítás
- felépítés
- számos
- rövid
- kirakat
- kimutatta,
- mutatott
- Műsorok
- óta
- egyetlen
- Méret
- kicsi
- töredék
- So
- szoftver
- szoftverfejlesztés
- szoftverfejlesztői csomag
- megoldások
- Megoldások
- néha
- forrás
- Források
- szakember
- különleges
- meghatározott
- standard
- kezdődött
- statisztikai
- tartózkodás
- Lépés
- Lépései
- memorizált
- stúdió
- sikeresen
- ilyen
- támogatás
- Támogatott
- Támogatja
- feladatok
- Tanítási
- technika
- technikák
- tensorflow
- kipróbált
- szöveg
- hogy
- A
- azok
- Őket
- akkor
- Ezek
- ezt
- Keresztül
- Tim
- idő
- nak nek
- jelképes
- tokenek
- is
- felső
- téma
- fáklya
- forgalom
- Vonat
- kiképzett
- Képzések
- transzformátor
- Trillió
- igaz
- megpróbál
- hangolt
- hangolás
- kettő
- típus
- Frissítés
- feltöltve
- URL
- használ
- használt
- használó
- User Experience
- segítségével
- rendszerint
- ÉRVÉNYESÍT
- érvényesített
- változat
- keresztül
- Tényleges
- séta
- végigjátszás
- akar
- volt
- we
- háló
- webes szolgáltatások
- súly
- JÓL
- Mit
- Mi
- ami
- míg
- lesz
- val vel
- belül
- nélkül
- Munka
- munkás
- munkafolyamatok
- ír
- írás
- te
- A te
- zephyrnet