Selles postituses tutvustame Llama 2 mudeli peenhäälestamist parameetritõhusa peenhäälestuse (PEFT) meetodil ja rakendame peenhäälestatud mudelit AWS Inferentia2. Me kasutame AWS Neuron tarkvaraarenduskomplekti (SDK), et pääseda juurde AWS Inferentia2 seadmele ja kasu saada selle suurest jõudlusest. Seejärel kasutame suurt mudelijärelduskonteinerit, mille toiteallikaks on Sügav Java raamatukogu (DJLServing) kui meie mudelite teenindamise lahendus.
Lahenduse ülevaade
Tõhus Llama2 peenhäälestus QLoRa abil
Suurte keelemudelite (LLM) perekond Llama 2 on eelkoolitatud ja peenhäälestatud generatiivse tekstimudelite kogum, mille skaala ulatub 7 miljardist 70 miljardi parameetrini. Llama 2 koolitati eelnevalt avalikult kättesaadavatest allikatest pärit 2 triljoni andmemärgiga. AWS-i kliendid valivad mõnikord Llama 2 mudelite peenhäälestamise, kasutades klientide enda andmeid, et saavutada paremaid tulemusi järgnevate ülesannete jaoks. Llama 2 mudeli suure hulga parameetrite tõttu võib täielik peenhäälestus olla aga ülemäära kulukas ja aeganõudev. Parameetritõhus peenhäälestus (PEFT) võimaldab seda probleemi lahendada, reguleerides vaid väikest hulka mudeli lisaparameetreid, külmutades samal ajal enamiku eelkoolitatud mudeli parameetritest. PEFT-i kohta lisateabe saamiseks lugege seda pärast. Selles postituses kasutame QLoRa Llama 2 7B mudeli peenhäälestamiseks.
Rakendage Amazon SageMakeri abil Inf2-s peenhäälestatud mudel
AWS Inferentia2 on sihipäraselt ehitatud masinõppe (ML) kiirendi, mis on loodud töökoormuste järeldamiseks ja pakub suure jõudlusega kuni 40% madalamate kuludega generatiivse AI ja LLM-i töökoormust võrreldes teiste AWS-i järelduste jaoks optimeeritud eksemplaridega. Selles postituses kasutame Amazon Elastic Compute Cloudi (Amazon EC2) Inf2 eksemplar, mis sisaldab AWS Inferentia2, teise põlvkonna Inferentia2 kiirendit, millest igaüks sisaldab kahte NeuronCores-v2. Iga NeuronCore-v2 on sõltumatu, heterogeenne arvutusüksus, millel on neli peamist mootorit: Tensor-, Vector-, Scalar- ja GPSIMD-mootorid. See sisaldab kiibil asuvat tarkvaraga hallatavat SRAM-mälu andmete asukoha maksimeerimiseks. Kuna Inf2-s on avaldatud mitmeid blogisid, saab lugeja sellele viidata pärast ja meie dokumentatsioon Inf2 kohta lisateabe saamiseks.
Mudelite juurutamiseks Inf2-s vajame AWS Neuron SDK-d tarkvarakihina, mis töötab Inf2 riistvara peal. AWS Neuron on SDK, mida kasutatakse süvaõppe töökoormuste käitamiseks AWS Inferentia ja AWS Trainium põhinevad juhtumid. See võimaldab täieliku ML-i arenduse elutsükli jooksul luua uusi mudeleid, koolitada ja optimeerida neid mudeleid ning juurutada neid tootmises. AWS Neuron sisaldab sügavat õppimist kompilaator, runtimeja töövahendid mis on integreeritud populaarsete raamistikega, nagu TensorFlow ja PyTorch. Selles ajaveebis kavatseme kasutada transformers-neuronx
, mis on osa AWS Neuron SDK-st trafodekoodri järelduste töövoogude jaoks. See toetab hulk populaarseid mudeleid, sealhulgas Llama 2.
Mudelite juurutamiseks Amazon SageMaker, kasutame tavaliselt konteinerit, mis sisaldab vajalikke teeke, näiteks Neuron SDK ja transformers-neuronx
samuti mudeli serveerimiskomponent. Amazon SageMaker säilitab süvaõppe konteinerid (DLC-d) populaarsete avatud lähtekoodiga raamatukogudega suurte mudelite majutamiseks. Selles postituses kasutame Suur mudeli järelduste konteiner neuroni jaoks. Selles konteineris on kõik, mida vajate oma Llama 2 mudeli juurutamiseks rakenduses Inf2. LMI-ga Amazon SageMakeris alustamiseks ressursside saamiseks vaadake paljusid meie olemasolevaid postitusi (blogi 1, blogi 2, blogi 3) sellel teemal. Lühidalt, saate konteinerit käivitada ilma täiendavat koodi kirjutamata. Võite kasutada vaikekäitleja Sujuva kasutuskogemuse tagamiseks ja sisestage üks toetatud mudelinimedest ja laadimisaja konfigureeritavad parameetrid. See kompileerib ja teenindab LLM-i Inf2 eksemplaril. Näiteks kasutuselevõtuks OpenAssistant/llama2-13b-orca-8k-3319
, saate esitada järgmise konfiguratsiooni (nagu serving.properties
fail). sisse serving.properties
, määrame mudeli tüübi kui llama2-13b-orca-8k-3319
, partii suurus on 4, tensori paralleelaste on 2 ja see on kõik. Konfigureeritavate parameetrite täieliku loendi leiate jaotisest Kõik DJL-i konfiguratsioonivalikud.
Teise võimalusena võite kirjutada oma mudelikäitleja faili, nagu siin näidatud näide, kuid selleks on vaja rakendada mudeli laadimis- ja järeldusmeetodid, mis toimiksid sillana DJLServing API-de vahel.
Eeldused
Järgmine loend kirjeldab selles ajaveebi postituses kirjeldatud mudeli juurutamise eeltingimusi. Saate rakendada ükskõik kumba AWS-i juhtimiskonsool või kasutades rakenduse uusimat versiooni AWS-i käsurea liides (AWS CLI).
Juhendid
Järgmises jaotises käsitleme koodi kahes osas.
- Mudeli Llama2-7b peenhäälestus ja mudeli artefaktid üleslaadimine määratud Amazon S3 ämbri asukohta.
- Juurutage mudel Inferentia2-sse, kasutades Amazon SageMakeris hostitud DJL-i teeninduskonteinerit.
Täielikud koodinäidised koos juhistega leiate siit GitHub hoidla.
1. osa: Llama2-7b mudeli peenhäälestus PEFT-i abil
Kasutame selles artiklis hiljuti tutvustatud meetodit QLoRA: Kvantimist arvestav madala taseme adapteri häälestamine keele genereerimiseks autor Tim Dettmers et al. QLoRA on uus tehnika suurte keelemudelite mälumahu vähendamiseks peenhäälestuse ajal, ilma jõudlust ohverdamata.
Märge: Järgnevalt näidatud lama2-7b mudeli peenhäälestust testiti Amazonis SageMaker Studio märkmik Python 2.0 GPU optimeeritud kerneliga, kasutades a ml.g5.2xsuur eksemplari tüüp. Parima tavana soovitame kasutada Amazon SageMaker Studio Integreeritud arenduskeskkond (IDE) käivitati teie enda jaoks Amazoni virtuaalne privaatpilv (Amazon VPC). See võimaldab teil kontrollida, jälgida ja kontrollida võrguliiklust oma VPC-s ja väljaspool seda, kasutades standardseid AWS-i võrgu- ja turbevõimalusi. Lisateabe saamiseks vt Amazon SageMaker Studio ühenduvuse kindlustamine privaatse VPC abil.
Kvantige baasmudel
Esmalt laadime 4-bitise kvantiseerimisega kvantiseeritud mudeli, kasutades Huggingface trafod raamatukogu järgmiselt:
Laadige treeninguandmed
Järgmisena laadime andmestiku, et toita mudelit peenhäälestuse etapiks, mis on näidatud järgmiselt:
Kinnitage adapterkiht
Siia kinnitame väikese treenitava adapterikihi, mis on konfigureeritud järgmiselt LoraConfig defineeritud Hugging Face's peft raamatukogu.
Treeni modelli
Kasutades ülaltoodud LoRA konfiguratsiooni, täpsustame Llama2 mudelit koos hüperparameetritega. Mudeli koolitamise koodilõik on näidatud järgmisel:
Ühendage mudeli kaal
Ülaltoodud peenhäälestatud mudel lõi uue mudeli, mis sisaldab treenitud LoRA adapteri raskusi. Järgmises koodilõigul liidame adapteri baasmudeliga, et saaksime järelduste tegemiseks kasutada peenhäälestatud mudelit.
Laadige mudeli kaal Amazon S3 üles
1. osa viimases etapis salvestame ühendatud mudeli kaalud määratud Amazon S3 asukohta. Mudeli kaalu kasutab Amazon SageMakeri mudeli serveerimismahuti, et majutada mudelit Inferentia2 eksemplari abil.
Osa 2: Hosti QLoRA mudel AWS Inf2 järelduste tegemiseks, kasutades SageMaker LMI konteinerit
Selles jaotises käsitleme QLoRA peenhäälestatud mudeli Amazon SageMakeri hostimiskeskkonda juurutamise samme. Me kasutame a DJL serveerimine konteiner firmalt SageMaker DLC, mis integreerub trafod-neuronx raamatukogu selle mudeli majutamiseks. Seadistamine hõlbustab mudelite laadimist AWS Inferentia2 kiirenditesse, paralleeliseerib mudeli mitme NeuronCore'i vahel ja võimaldab teenust HTTP lõpp-punktide kaudu.
Valmistage ette mudeli artefaktid
DJL toetab paljusid süvaõppe optimeerimise teeke, sealhulgas DeepSpeed, Kiirem transformer ja veel. Mudelipõhiste konfiguratsioonide jaoks pakume a serving.properties
võtmeparameetritega, nt tensor_parallel_degree
ja model_id
mudeli laadimisvalikute määratlemiseks. The model_id
võib olla Hugging Face mudeli ID või Amazon S3 tee, kuhu mudeli kaalud salvestatakse. Meie näites anname meie peenhäälestatud mudeli Amazon S3 asukoha. Järgmine koodilõik näitab mudeli esitamiseks kasutatud atribuute:
Palun vaadake seda dokumentatsioon kaudu saadaolevate konfigureeritavate valikute kohta lisateabe saamiseks serving.properties
. Pange tähele, et kasutame option.n_position=512
selles ajaveebis AWS Neuronide kiiremaks koostamiseks. Kui soovite proovida suuremat sisendmärgi pikkust, siis soovitame lugejal mudel aegsasti valmis kompileerida (vt. AOT eelkompileerimise mudel EC2-l). Vastasel juhul võite ilmneda ajalõpu tõrge, kui kompileerimisaeg on liiga pikk.
Pärast serving.properties
fail on määratletud, pakendame faili a tar.gz
vormingus järgmiselt:
Seejärel laadime faili tar.gz üles Amazon S3 ämbri asukohta:
Looge Amazon SageMakeri mudeli lõpp-punkt
Inf2 eksemplari kasutamiseks teenindamiseks kasutame Amazoni SageMaker LMI konteiner DJL neuronX toega. Palun vaadake seda pärast lisateabe saamiseks DJL NeuronX konteineri kasutamise kohta järelduste tegemiseks. Järgmine kood näitab, kuidas mudelit Amazon SageMaker Python SDK abil juurutada:
Katsemudeli lõpp-punkt
Pärast mudeli edukat juurutamist saame lõpp-punkti kinnitada, saates ennustajale näidispäringu:
Näidisväljund kuvatakse järgmiselt:
Andmeanalüüsi kontekstis viitab masinõpe (ML) statistilisele tehnikale, mis on võimeline ekstraheerima andmestikku ennustusjõudu järjest keerukamaks ja täpsemaks, kitsendades statistika ulatust iteratiivselt.
Masinõpe ei ole uus statistiline tehnika, vaid pigem olemasolevate tehnikate kombinatsioon. Lisaks ei ole see mõeldud kasutamiseks konkreetse andmekogumiga ega konkreetse tulemuse saamiseks. Pigem oli see loodud piisavalt paindlikuks, et kohaneda mis tahes andmekogumiga ja teha ennustusi mis tahes tulemuse kohta.
Koristage
Kui otsustate, et te ei soovi enam SageMakeri lõpp-punkti töös hoida, saate selle kustutada AWS SDK Pythoni (boto3), AWS CLI või Amazon SageMaker Console jaoks. Lisaks saate ka sulgege Amazon SageMaker Studio Resources mida enam ei nõuta.
Järeldus
Selles postituses näitasime teile, kuidas Llama2-7b mudelit peenhäälestada, kasutades LoRA-adapterit koos 4-bitise kvantiseerimisega, kasutades ühte GPU eksemplari. Seejärel juurutasime mudeli Amazon SageMakeris hostitud Inf2 eksemplari, kasutades DJL-i serveerimiskonteinerit. Lõpuks kinnitasime Amazon SageMakeri mudeli lõpp-punkti teksti genereerimise ennustusega, kasutades SageMaker Python SDK-d. Proovige järele. Meile meeldib teie tagasisidet kuulda. Olge kursis värskendustega AWS Inferentia uute võimaluste ja uuenduste kohta.
Rohkem näiteid AWS Neuroni kohta vt aws-neuroni-proovid.
Autoritest
Wei Teh on AWS-i AI/ML-lahenduste vanemarhitekt. Ta on kirglik aidata klientidel nende AWS-i teekonda edendada, keskendudes Amazoni masinõppe teenustele ja masinõppepõhistele lahendustele. Väljaspool tööd naudib ta väljas tegevusi, nagu telkimine, kalapüük ja perega matkamine.
Qingwemina Li on Amazon Web Servicesi masinõppe spetsialist. Ta sai doktorikraadi. operatsioonide uurimisel pärast seda, kui ta murdis oma nõustaja uurimistoetuse konto ja ei suutnud väljastada lubatud Nobeli preemiat. Praegu aitab ta finantsteenuste ja kindlustussektori klientidel AWS-is masinõppelahendusi luua. Vabal ajal meeldib talle lugeda ja õpetada.
- SEO-põhise sisu ja PR-levi. Võimenduge juba täna.
- PlatoData.Network Vertikaalne generatiivne Ai. Jõustage ennast. Juurdepääs siia.
- PlatoAiStream. Web3 luure. Täiustatud teadmised. Juurdepääs siia.
- PlatoESG. Süsinik, CleanTech, Energia, Keskkond päikeseenergia, Jäätmekäitluse. Juurdepääs siia.
- PlatoTervis. Biotehnoloogia ja kliiniliste uuringute luureandmed. Juurdepääs siia.
- Allikas: https://aws.amazon.com/blogs/machine-learning/fine-tune-llama-2-using-qlora-and-deploy-it-on-amazon-sagemaker-with-aws-inferentia2/
- :on
- :on
- :mitte
- : kus
- $ UP
- 1
- 10
- 100
- 11
- 15%
- 16
- 19
- 24
- 300
- 7
- 70
- 8
- a
- MEIST
- üle
- kiirendi
- kiirendid
- juurdepääs
- konto
- täpsus
- Saavutada
- üle
- tegevus
- kohandama
- Täiendavad lisad
- Lisaks
- aadress
- edendama
- pärast
- eespool
- AI
- AI / ML
- AL
- võimaldab
- mööda
- Alfa
- Ka
- Amazon
- Amazoni masinõpe
- Amazon SageMaker
- Amazon SageMaker Studio
- Amazon Web Services
- an
- analüüs
- ja
- mistahes
- API-liidesed
- kehtima
- lähenemine
- OLEME
- AS
- At
- kinnitage
- auto
- saadaval
- AWS
- AWS Inferentia
- ball
- baas
- põhineb
- partii
- BE
- olnud
- kasu
- BEST
- Parem
- vahel
- Miljard
- Blogi
- blogid
- BRIDGE
- Murdis
- ehitama
- kuid
- by
- CAN
- võimeid
- võimeline
- Vali
- Cloud
- kood
- kogumine
- kombinatsioon
- täitma
- keerukus
- komponent
- Arvutama
- konfiguratsioon
- konfigureeritud
- Side
- konsool
- tarbivad
- Konteiner
- sisaldab
- kontekst
- kontrollida
- Maksma
- võiks
- loodud
- Praegu
- Kliendid
- andmed
- andmete analüüs
- otsustama
- sügav
- sügav õpe
- vaikimisi
- määratlema
- määratletud
- Kraad
- tarnima
- annab
- juurutada
- lähetatud
- juurutamine
- kirjeldatud
- kavandatud
- & Tarkvaraarendus
- seade
- laevalaadija
- alla
- kaks
- ajal
- dünaamiline
- E&T
- iga
- kumbki
- võimaldab
- Lõpuks-lõpuni
- Lõpp-punkt
- Mootor
- Mootorid
- piisavalt
- keskkond
- viga
- jms
- kõik
- näide
- näited
- täidetud
- olemasolevate
- kallis
- kogemus
- lisatasu
- nägu
- hõlbustab
- Ebaõnnestunud
- vale
- pere
- kiiremini
- Lisaks
- tagasiside
- fail
- lõplik
- Lõpuks
- finants-
- finantsteenus
- esimene
- kalastamine
- paindlik
- keskendumine
- järgima
- Järgneb
- Järel
- järgneb
- Jalajälg
- eest
- formaat
- avastatud
- neli
- raamistikud
- külmutamine
- Alates
- täis
- Pealegi
- põlvkond
- generatiivne
- Generatiivne AI
- saama
- Andma
- Go
- läheb
- GPU
- anda
- riistvara
- he
- kuulama
- aidates
- aitab
- siin
- Suur
- suur jõudlus
- tema
- võõrustaja
- võõrustas
- Hosting
- maja
- Kuidas
- Kuidas
- aga
- HTML
- http
- HTTPS
- ID
- if
- pilt
- rakendada
- rakendamisel
- in
- sisaldama
- hõlmab
- Kaasa arvatud
- kasvav
- sõltumatud
- tööstus
- info
- uuendusi
- sisend
- sisendite
- Näiteks
- juhised
- kindlustus
- integreeritud
- Integreerib
- sisse
- sisse
- IT
- iteratsioon
- ITS
- Java
- teekond
- jpg
- Json
- hoidma
- Võti
- Komplekt (SDK)
- keel
- suur
- suurem
- hiljemalt
- käivitatud
- kiht
- kihid
- õppimine
- Pikkus
- Tase
- raamatukogud
- Raamatukogu
- eluring
- nagu
- meeldib
- joon
- nimekiri
- Laama
- LLM
- koormus
- laadimine
- liising
- enam
- armastus
- vähendada
- masin
- masinõpe
- põhiline
- jääb
- tegema
- juhtimine
- palju
- maksimeerimine
- Mälu
- Merge
- meetod
- meetodid
- võib
- ML
- mudel
- mudelid
- Moodulid
- Jälgida
- rohkem
- kõige
- palju
- mitmekordne
- nimed
- kell
- Vajadus
- võrk
- võrguliiklus
- võrgustike loomine
- Uus
- ei
- nobeli preemia
- mitte ükski
- meeles
- number
- of
- on
- ONE
- ainult
- peale
- avatud
- avatud lähtekoodiga
- Operations
- optimeerimine
- optimeerima
- optimeeritud
- valik
- Valikud
- or
- Muu
- muidu
- meie
- Tulemus
- piirjooned
- väljund
- väljaspool
- üle
- enda
- pakend
- Paber
- Parallel
- parameeter
- parameetrid
- osa
- osad
- sooritama
- kirglik
- tee
- jõudlus
- teostatud
- kava
- Platon
- Platoni andmete intelligentsus
- PlatoData
- palun
- populaarne
- post
- Postitusi
- võim
- sisse
- tava
- Täpsus
- ennustus
- Ennustused
- Predictor
- eeldused
- era-
- preemia
- Probleem
- protsess
- tootma
- Produktsioon
- lubas
- omadused
- anda
- avalikult
- avaldatud
- Python
- pütorch
- valik
- alates
- pigem
- Lugenud
- lugeja
- Lugemine
- saadud
- hiljuti
- soovitama
- vähendama
- viitama
- viitab
- Hoidla
- taotleda
- Taotlusi
- nõutav
- Vajab
- teadustöö
- Vahendid
- vastus
- vastuste
- õige
- jooks
- jooksmine
- ohverdama
- salveitegija
- Säästa
- Skaala
- ketendamine
- ulatus
- SDK
- sujuv
- Teine
- Teine põlvkond
- Osa
- turvalisus
- vaata
- saatmine
- vanem
- Jada
- teenima
- teenus
- Teenused
- teenindavad
- komplekt
- kehtestamine
- seade
- mitu
- Lühike
- presentatsioon
- näitas
- näidatud
- Näitused
- alates
- ühekordne
- SUURUS
- väike
- jupp
- So
- tarkvara
- tarkvaraarenduse
- tarkvara arenduskomplekt
- lahendus
- Lahendused
- mõnikord
- allikas
- Allikad
- spetsialist
- konkreetse
- määratletud
- standard
- alustatud
- statistiline
- jääma
- Samm
- Sammud
- ladustatud
- stuudio
- Edukalt
- selline
- toetama
- Toetatud
- Toetab
- ülesanded
- õpetamine
- tehnika
- tehnikat
- tensorivool
- katsetatud
- tekst
- et
- .
- oma
- Neile
- SIIS
- Need
- see
- Läbi
- Tim
- aeg
- et
- sümboolne
- märgid
- liiga
- ülemine
- teema
- tõrvik
- liiklus
- Rong
- koolitatud
- koolitus
- trafo
- triljon
- tõsi
- püüdma
- häälestatud
- häälestamine
- kaks
- tüüp
- Uudised
- laetud
- URL
- kasutama
- Kasutatud
- Kasutaja
- User Experience
- kasutamine
- tavaliselt
- KINNITAGE
- kinnitatud
- versioon
- kaudu
- virtuaalne
- kõndima
- läbikäiguks
- tahan
- oli
- we
- web
- veebiteenused
- kaal
- Hästi
- M
- Mis on
- mis
- kuigi
- will
- koos
- jooksul
- ilma
- Töö
- töötaja
- Töövoogud
- kirjutama
- kirjutamine
- sa
- Sinu
- sephyrnet