V tej objavi prikazujemo natančno nastavitev modela Llama 2 z uporabo metode PEFT (Parameter-Efficient Fine-Tuning) in uvedemo natančno nastavljen model na AWS Inferentia2. Uporabljamo AWS nevron komplet za razvoj programske opreme (SDK) za dostop do naprave AWS Inferentia2 in izkoriščanje njene visoke zmogljivosti. Nato uporabimo velik vsebnik za sklepanje modela, ki ga poganja Deep Java Library (DJLServing) kot naš model servirne rešitve.
Pregled rešitev
Učinkovita fina nastavitev Llama2 z uporabo QLoRa
Družina velikih jezikovnih modelov (LLM) Llama 2 je zbirka vnaprej usposobljenih in natančno nastavljenih generativnih besedilnih modelov v obsegu od 7 milijard do 70 milijard parametrov. Llama 2 je bila predhodno usposobljena za 2 bilijona žetonov podatkov iz javno dostopnih virov. Stranke AWS se včasih odločijo za natančno nastavitev modelov Llama 2 z uporabo lastnih podatkov strank, da bi dosegle boljšo zmogljivost za nadaljnje naloge. Vendar pa je lahko zaradi velikega števila parametrov modela Llama 2 popolna natančna nastavitev pregrešno draga in dolgotrajna. Pristop PEFT (Parameter-Efficient Fine Tuning) lahko reši to težavo tako, da natančno prilagodi le majhno število dodatnih parametrov modela, medtem ko zamrzne večino parametrov vnaprej usposobljenega modela. Za več informacij o PEFT lahko preberete to objava. V tej objavi uporabljamo QLoRa za natančno nastavitev modela Llama 2 7B.
Razmestite natančno nastavljen model na Inf2 z uporabo Amazon SageMaker
AWS Inferentia2 je namensko izdelan pospeševalnik strojnega učenja (ML), zasnovan za sklepanje delovnih obremenitev in zagotavlja visoko zmogljivost z do 40 % nižjo ceno za generativne delovne obremenitve AI in LLM v primerjavi z drugimi primerki, optimiziranimi za sklepanje, na AWS. V tej objavi uporabljamo Amazon Elastic Compute Cloud (Amazon EC2) Instanca Inf2, ki vključuje AWS Inferentia2, drugo generacijo pospeševalnikov Inferentia2, od katerih vsak vsebuje dva NeuronCores-v2. Vsak NeuronCore-v2 je neodvisna, heterogena računalniška enota s štirimi glavnimi motorji: motorji Tensor, Vector, Scalar in GPSIMD. Vključuje programsko upravljan pomnilnik SRAM na čipu za čim večjo lokalnost podatkov. Ker je bilo na Inf2 objavljenih več blogov, se lahko bralec sklicuje na to objava in naše Dokumentacija za več informacij o Inf2.
Za uvajanje modelov v Inf2 potrebujemo AWS Neuron SDK kot programsko plast, ki deluje na vrhu strojne opreme Inf2. AWS Neuron je SDK, ki se uporablja za izvajanje delovnih obremenitev globokega učenja na AWS Inferentia in AWS Trainium primerki na podlagi. Omogoča razvojni cikel ML od konca do konca za izdelavo novih modelov, usposabljanje in optimizacijo teh modelov ter njihovo uvajanje v proizvodnjo. AWS Neuron vključuje globoko učenje prevajalnik, runtimein orodja ki so izvorno integrirani s priljubljenimi ogrodji, kot sta TensorFlow in PyTorch. V tem blogu bomo uporabili transformers-neuronx
, ki je del AWS Neuron SDK za delovne tokove sklepanja transformatorskega dekoderja. To podpira vrsta priljubljenih modelov, vključno z Llama 2.
Za uvajanje modelov na Amazon SageMaker, običajno uporabljamo vsebnik, ki vsebuje zahtevane knjižnice, kot sta Neuron SDK in transformers-neuronx
kot tudi komponenta serviranja modela. Amazon SageMaker ohranja vsebniki za globoko učenje (DLC) s priljubljenimi odprtokodnimi knjižnicami za gostovanje velikih modelov. V tej objavi uporabljamo Velik vsebnik sklepanja modela za Neuron. Ta vsebnik vsebuje vse, kar potrebujete za namestitev vašega modela Llama 2 na Inf2. Za vire za začetek uporabe LMI na Amazon SageMaker si oglejte številne naše obstoječe objave (1 blog, 2 blog, 3 blog) na to temo. Skratka, vsebnik lahko zaženete brez pisanja dodatne kode. Lahko uporabite privzeti obdelovalec za brezhibno uporabniško izkušnjo in posredujte eno od podprtih imen modelov in vse parametre, ki jih je mogoče konfigurirati v času nalaganja. To prevaja in služi LLM na primerku Inf2. Na primer, za uvajanje OpenAssistant/llama2-13b-orca-8k-3319
, lahko zagotovite naslednjo konfiguracijo (kot serving.properties
mapa). notri serving.properties
, določimo vrsto modela kot llama2-13b-orca-8k-3319
, velikost paketa kot 4, tenzorsko paralelno stopnjo kot 2, in to je to. Za celoten seznam nastavljivih parametrov glejte Vse možnosti konfiguracije DJL.
Druga možnost je, da napišete svojo lastno datoteko za obravnavo modela, kot je prikazano tukaj Primer, vendar to zahteva implementacijo metod nalaganja in sklepanja modela, ki služijo kot most med API-ji DJLServing.
Predpogoji
Naslednji seznam opisuje predpogoje za uvedbo modela, opisanega v tej objavi v spletnem dnevniku. Izvedete lahko bodisi iz Konzola za upravljanje AWS ali z uporabo najnovejše različice Vmesnik ukazne vrstice AWS (AWS CLI).
Walkthrough
V naslednjem razdelku si bomo kodo ogledali v dveh delih:
- Natančna nastavitev modela Llama2-7b in nalaganje artefaktov modela na določeno lokacijo vedra Amazon S3.
- Razmestite model v Inferentia2 z uporabo strežnega vsebnika DJL, ki gostuje v Amazon SageMaker.
Celotne vzorce kode z navodili lahko najdete tukaj GitHub skladišče.
1. del: Natančna nastavitev modela Llama2-7b z uporabo PEFT
V članku bomo uporabili nedavno predstavljeno metodo QLoRA: Nastavitev adapterja nizkega ranga za kvantizacijo za generiranje jezika Avtor Tim Dettmers et al. QLoRA je nova tehnika za zmanjšanje pomnilniškega odtisa velikih jezikovnih modelov med finim prilagajanjem brez žrtvovanja zmogljivosti.
Opomba: Natančna nastavitev modela llama2-7b, prikazana v nadaljevanju, je bila preizkušena na Amazonu SageMaker Studio Notebook z jedrom, optimiziranim za Python 2.0 GPU, z uporabo a ml.g5.2xvelik vrsta primerka. Kot najboljšo prakso priporočamo uporabo an Amazon SageMaker Studio Integrirano razvojno okolje (IDE), zagnano v vašem lastnem okolju Navidezni zasebni oblak Amazon (Amazon VPC). To vam omogoča nadzor, spremljanje in pregledovanje omrežnega prometa znotraj in zunaj vašega VPC z uporabo standardnih omrežnih in varnostnih zmogljivosti AWS. Za več informacij glejte Zagotovitev povezljivosti Amazon SageMaker Studio z zasebnim VPC.
Kvantizirajte osnovni model
Najprej naložimo kvantizirani model s 4-bitno kvantizacijo Huggingface transformatorji knjižnica, kot sledi:
Naloži nabor podatkov za usposabljanje
Nato naložimo nabor podatkov, da napolnimo model za korak natančnega prilagajanja, kot sledi:
Pritrdite adapterski sloj
Tukaj priložimo majhen adapterski sloj, ki ga je mogoče usposobiti in je konfiguriran kot LoraConfig opredeljeno v Hugging Face's peft knjižnica.
Usposobi model
Z uporabo konfiguracije LoRA, prikazane zgoraj, bomo natančno prilagodili model Llama2 skupaj s hiperparametri. Delček kode za usposabljanje modela je prikazan v nadaljevanju:
Teža spoji modela
Natančno nastavljeni model, izveden zgoraj, je ustvaril nov model, ki vsebuje usposobljene uteži adapterja LoRA. V naslednjem delčku kode bomo adapter združili z osnovnim modelom, da bomo lahko za sklepanje uporabili natančno nastavljen model.
Prenesite težo modela v Amazon S3
V zadnjem koraku 1. dela bomo uteži združenih modelov shranili na določeno lokacijo Amazon S3. Težo modela bo uporabil vsebnik za streženje modela v Amazon SageMaker za gostovanje modela z instanco Inferentia2.
2. del: Gostiteljski model QLoRA za sklepanje z AWS Inf2 z uporabo vsebnika SageMaker LMI
V tem razdelku se bomo sprehodili skozi korake uvajanja natančno nastavljenega modela QLoRA v gostiteljsko okolje Amazon SageMaker. Uporabili bomo a DJL postrežba posoda podjetja SageMaker DLC, ki se integrira z transformatorji-neuronx knjižnica za gostovanje tega modela. Nastavitev olajša nalaganje modelov v pospeševalnike AWS Inferentia2, paralelizira model v več NeuronCores in omogoča strežbo prek končnih točk HTTP.
Pripravite artefakte modela
DJL podpira številne knjižnice za optimizacijo globokega učenja, vključno z DeepSpeed, FasterTransformer in več. Za specifične konfiguracije modela nudimo a serving.properties
s ključnimi parametri, kot je npr tensor_parallel_degree
in model_id
za določitev možnosti nalaganja modela. The model_id
je lahko ID modela Hugging Face ali pot Amazon S3, kjer so shranjene uteži modela. V našem primeru podajamo lokacijo Amazon S3 našega natančno nastavljenega modela. Naslednji delček kode prikazuje lastnosti, uporabljene za prikazovanje modela:
Prosimo, glejte to Dokumentacija za več informacij o nastavljivih možnostih, ki so na voljo prek serving.properties
. Upoštevajte, da uporabljamo option.n_position=512
v tem blogu za hitrejše kompiliranje AWS Neuron. Če želite preizkusiti večjo dolžino vhodnega žetona, bralcu priporočamo, da vnaprej prevede model (glejte Model pred prevajanjem AOT na EC2). V nasprotnem primeru lahko naletite na napako časovne omejitve, če je čas prevajanja predolg.
Po serving.properties
definirana, bomo datoteko zapakirali v a tar.gz
obliki, kot sledi:
Nato bomo naložili tar.gz na lokacijo vedra Amazon S3:
Ustvarite končno točko modela Amazon SageMaker
Za uporabo primerka Inf2 za streženje uporabimo Amazon Posoda SageMaker LMI s podporo DJL neuronX. Prosimo, glejte to objava za več informacij o uporabi vsebnika DJL NeuronX za sklepanje. Naslednja koda prikazuje, kako razmestiti model z uporabo Amazon SageMaker Python SDK:
Končna točka testnega modela
Ko je model uspešno uveden, lahko potrdimo končno točko tako, da napovedovalcu pošljemo vzorčno zahtevo:
Vzorčni rezultat je prikazan na naslednji način:
V kontekstu analize podatkov se strojno učenje (ML) nanaša na statistično tehniko, ki je sposobna pridobiti napovedno moč iz nabora podatkov z naraščajočo kompleksnostjo in natančnostjo z iterativnim zoženjem obsega statistike.
Strojno učenje ni nova statistična tehnika, temveč kombinacija obstoječih tehnik. Poleg tega ni bil zasnovan za uporabo z določenim naborom podatkov ali za ustvarjanje določenega rezultata. Namesto tega je bil zasnovan tako, da je dovolj prilagodljiv, da se lahko prilagodi kateremu koli naboru podatkov in da napoveduje kateri koli rezultat.
Čiščenje
Če se odločite, da končne točke SageMaker ne želite več izvajati, jo lahko izbrišete z AWS SDK za Python (boto3), AWS CLI ali konzolo Amazon SageMaker. Poleg tega lahko tudi zaustavite vire Amazon SageMaker Studio ki niso več potrebni.
zaključek
V tej objavi smo vam pokazali, kako natančno prilagodite model Llama2-7b z uporabo adapterja LoRA s 4-bitno kvantizacijo z uporabo enega primerka GPE. Nato smo model razmestili v primerek Inf2, ki gostuje v Amazon SageMaker, z uporabo strežnega vsebnika DJL. Končno smo potrdili končno točko modela Amazon SageMaker s predvidevanjem generiranja besedila z uporabo SDK-ja SageMaker Python. Kar naprej in poskusite, veseli bomo vaših povratnih informacij. Ostanite z nami za posodobitve o več zmogljivostih in novih inovacijah z AWS Inferentia.
Za več primerov o AWS Neuron glejte aws-neuron-samples.
O avtorjih
Wei Teh je višji strokovnjak za rešitve AI/ML pri AWS. Strastno želi pomagati strankam pri napredovanju njihove poti AWS, pri čemer se osredotoča na storitve strojnega učenja Amazon in rešitve, ki temeljijo na strojnem učenju. Zunaj dela uživa v dejavnostih na prostem, kot so kampiranje, ribolov in pohodništvo z družino.
Qingwejaz Li je strokovnjak za strojno učenje pri Amazon Web Services. Doktoriral je v operacijskem raziskovanju, potem ko je zlomil račun svojega svetovalca za raziskovalno pomoč in mu ni uspel izročiti Nobelove nagrade, ki jo je obljubil. Trenutno strankam v finančni in zavarovalniški industriji pomaga pri izdelavi rešitev strojnega učenja na AWS. V prostem času rad bere in poučuje.
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- PlatoData.Network Vertical Generative Ai. Opolnomočite se. Dostopite tukaj.
- PlatoAiStream. Web3 Intelligence. Razširjeno znanje. Dostopite tukaj.
- PlatoESG. Ogljik, CleanTech, Energija, Okolje, sončna energija, Ravnanje z odpadki. Dostopite tukaj.
- PlatoHealth. Obveščanje o biotehnologiji in kliničnih preskušanjih. Dostopite tukaj.
- vir: https://aws.amazon.com/blogs/machine-learning/fine-tune-llama-2-using-qlora-and-deploy-it-on-amazon-sagemaker-with-aws-inferentia2/
- :ima
- : je
- :ne
- :kje
- $GOR
- 1
- 10
- 100
- 11
- 15%
- 16
- 19
- 24
- 300
- 7
- 70
- 8
- a
- O meni
- nad
- plin
- pospeševalniki
- dostop
- Račun
- natančnost
- Doseči
- čez
- dejavnosti
- prilagodijo
- Dodatne
- Poleg tega
- Naslov
- napredovanje
- po
- naprej
- AI
- AI / ML
- AL
- omogoča
- skupaj
- Alpha
- Prav tako
- Amazon
- Strojno učenje Amazon
- Amazon SageMaker
- Amazon SageMaker Studio
- Amazon Web Services
- an
- Analiza
- in
- kaj
- API-ji
- Uporabi
- pristop
- SE
- AS
- At
- pripisujejo
- avto
- Na voljo
- AWS
- Sklepanje AWS
- žoga
- baza
- temeljijo
- šaržiranje
- BE
- bilo
- koristi
- BEST
- Boljše
- med
- Billion
- Blog
- blogi
- MOST
- broke
- izgradnjo
- vendar
- by
- CAN
- Zmogljivosti
- lahko
- Izberite
- Cloud
- Koda
- zbirka
- kombinacija
- dokončanje
- kompleksnost
- komponenta
- Izračunajte
- konfiguracija
- konfigurirano
- Povezovanje
- Konzole
- porabijo
- Posoda
- Vsebuje
- ozadje
- nadzor
- strošek
- bi
- ustvaril
- Trenutno
- Stranke, ki so
- datum
- Analiza podatkov
- odloča
- globoko
- globoko učenje
- privzeto
- opredeliti
- opredeljen
- Stopnja
- poda
- daje
- razporedi
- razporejeni
- uvajanja
- opisano
- zasnovan
- Razvoj
- naprava
- Lučki delavec
- navzdol
- 2
- med
- dinamično
- E&T
- vsak
- bodisi
- omogoča
- konec koncev
- Končna točka
- Motor
- Motorji
- dovolj
- okolje
- Napaka
- itd
- vse
- Primer
- Primeri
- izvršeno
- obstoječih
- drago
- izkušnje
- dodatna
- Obraz
- olajša
- ni uspelo
- false
- družina
- hitreje
- Featuring
- povratne informacije
- file
- končna
- končno
- finančna
- finančne storitve
- prva
- ribolov
- prilagodljiv
- osredotoča
- sledi
- sledili
- po
- sledi
- Odtis
- za
- format
- je pokazala,
- štiri
- okviri
- Zamrzovanje
- iz
- polno
- Poleg tega
- generacija
- generativno
- Generativna AI
- dobili
- Daj
- Go
- dogaja
- GPU
- odobri
- strojna oprema
- he
- slišati
- pomoč
- Pomaga
- tukaj
- visoka
- visokozmogljivo
- njegov
- gostitelj
- gostila
- gostovanje
- Hiša
- Kako
- Kako
- Vendar
- HTML
- http
- HTTPS
- ID
- if
- slika
- izvajati
- izvajanja
- in
- vključujejo
- vključuje
- Vključno
- narašča
- Neodvisni
- Industrija
- Podatki
- novosti
- vhod
- vhodi
- primer
- Navodila
- zavarovanje
- integrirana
- Integrira
- v
- Uvedeno
- IT
- ponovitev
- ITS
- Java
- Potovanje
- jpg
- json
- Imejte
- Ključne
- Komplet (SDK)
- jezik
- velika
- večja
- Zadnji
- začela
- plast
- plasti
- učenje
- dolžina
- Stopnja
- knjižnice
- Knjižnica
- življenski krog
- kot
- všeč mi je
- vrstica
- Seznam
- Llama
- LLM
- obremenitev
- nalaganje
- kraj aktivnosti
- več
- ljubezen
- nižje
- stroj
- strojno učenje
- Glavne
- vzdržuje
- Znamka
- upravljanje
- več
- maksimiranje
- Spomin
- Spoji
- Metoda
- Metode
- morda
- ML
- Model
- modeli
- Moduli
- monitor
- več
- Najbolj
- veliko
- več
- Imena
- na
- Nimate
- mreža
- omrežni promet
- mreženje
- Novo
- št
- Nobelova nagrada
- Noben
- Upoštevajte
- Številka
- of
- on
- ONE
- samo
- na
- odprite
- open source
- operacije
- optimizacija
- Optimizirajte
- optimizirana
- Možnost
- možnosti
- or
- Ostalo
- drugače
- naši
- Rezultat
- obrisi
- izhod
- zunaj
- več
- lastne
- paket
- Papir
- vzporedno
- parameter
- parametri
- del
- deli
- mimo
- strastno
- pot
- performance
- opravljeno
- Načrt
- platon
- Platonova podatkovna inteligenca
- PlatoData
- prosim
- Popular
- Prispevek
- Prispevkov
- moč
- poganja
- praksa
- Precision
- napoved
- Napovedi
- Predictor
- predpogoji
- zasebna
- Nagrada
- problem
- Postopek
- proizvodnjo
- proizvodnja
- obljubil
- Lastnosti
- zagotavljajo
- javno
- objavljeno
- Python
- pitorha
- območje
- obsegu
- precej
- Preberi
- Bralec
- reading
- prejetih
- Pred kratkim
- Priporočamo
- zmanjša
- glejte
- nanaša
- Skladišče
- zahteva
- zahteva
- obvezna
- zahteva
- Raziskave
- viri
- Odgovor
- odgovorov
- Pravica
- Run
- tek
- žrtvovanje
- sagemaker
- Shrani
- Lestvica
- skaliranje
- Obseg
- SDK
- brezšivne
- drugi
- Druga generacija
- Oddelek
- varnost
- glej
- pošiljanja
- višji
- Zaporedje
- služijo
- Storitev
- Storitve
- služijo
- nastavite
- nastavitev
- nastavitev
- več
- Kratke Hlače
- predstavitev
- je pokazala,
- pokazale
- Razstave
- saj
- sam
- Velikosti
- majhna
- delček
- So
- Software
- Razvoj programske opreme
- komplet za razvoj programske opreme
- Rešitev
- rešitve
- Včasih
- vir
- Viri
- specialist
- specifična
- določeno
- standardna
- začel
- Statistično
- bivanje
- Korak
- Koraki
- shranjeni
- studio
- Uspešno
- taka
- podpora
- Podprti
- Podpira
- Naloge
- poučevanje
- tehnika
- tehnike
- tensorflo
- Testiran
- besedilo
- da
- O
- njihove
- Njih
- POTEM
- te
- ta
- skozi
- Tim
- čas
- do
- žeton
- Boni
- tudi
- vrh
- temo
- baklo
- Prometa
- Vlak
- usposobljeni
- usposabljanje
- transformator
- Bilijona
- Res
- poskusite
- uglašen
- tuning
- dva
- tip
- posodobitve
- naložili
- URL
- uporaba
- Rabljeni
- uporabnik
- Uporabniška izkušnja
- uporabo
- navadno
- POTRDI
- potrjeno
- različica
- preko
- Virtual
- sprehod
- walkthrough
- želeli
- je
- we
- web
- spletne storitve
- teža
- Dobro
- Kaj
- Kaj je
- ki
- medtem
- bo
- z
- v
- brez
- delo
- delavec
- delovnih tokov
- pisati
- pisanje
- Vi
- Vaša rutina za
- zefirnet