I dag dækker generative AI-modeller en række opgaver fra tekstresumé, Q&A og billed- og videogenerering. For at forbedre kvaliteten af output, tilgange som n-short learning, prompt engineering, Retrieval Augmented Generation (RAG) og finjustering anvendes. Finjustering giver dig mulighed for at justere disse generative AI-modeller for at opnå forbedret ydeevne på dine domænespecifikke opgaver.
Med Amazon SageMaker, nu kan du køre et SageMaker-træningsjob blot ved at annotere din Python-kode med @fjerndekoratør. Det SageMaker Python SDK oversætter automatisk dit eksisterende arbejdsmiljø og enhver tilhørende databehandlingskode og datasæt til et SageMaker træningsjob, der kører på træningsplatformen. Dette har fordelen ved at skrive koden på en mere naturlig, objektorienteret måde og bruger stadig SageMaker-funktioner til at køre træningsjob på en fjernklynge med minimale ændringer.
I dette indlæg viser vi, hvordan man finjusterer en Falcon-7B Foundation Models (FM) ved hjælp af @remote decorator fra SageMaker Python SDK. Den bruger også Hugging Faces parametereffektive finjustering (PEFT) bibliotek og kvantiseringsteknikker igennem bitsandbytes for at understøtte finjustering. Koden præsenteret i denne blog kan også bruges til at finjustere andre FM'er, som f.eks Lama-2 13b.
De fulde præcisionsrepræsentationer af denne model kan have udfordringer med at passe ind i hukommelsen på en enkelt eller endda flere Graphic Processing Units (GPU'er) - eller måske endda brug for en større instans. For at finjustere denne model uden at øge omkostningerne bruger vi derfor teknikken kendt som Kvantiserede LLM'er med lavrangsadaptere (QLoRA). QLoRA er en effektiv finjusteringstilgang, der reducerer hukommelsesforbrug af LLM'er, samtidig med at den bevarer en meget god ydeevne.
Fordele ved at bruge @remote decorator
Inden vi går videre, lad os forstå, hvordan remote decorator forbedrer udviklerproduktiviteten, mens vi arbejder med SageMaker:
- @remote decorator udløser et træningsjob direkte ved hjælp af indbygget python-kode uden eksplicit påkaldelse af SageMaker Estimators og SageMaker input-kanaler
- Lav adgangsbarriere for udviklere, der træner modeller på SageMaker.
- Ingen grund til at skifte Integrerede udviklingsmiljøer (IDE'er). Fortsæt med at skrive kode i dit valg af IDE og påberåb SageMaker træningsjob.
- Ingen grund til at lære om containere. Fortsæt med at levere afhængigheder i en
requirements.txt
og lever det til fjerndekoratøren.
Forudsætninger
En AWS-konto er nødvendig med en AWS identitets- og adgangsstyring (AWS IAM) rolle der har tilladelser til at administrere ressourcer, der er oprettet som en del af løsningen. For detaljer henvises til Oprettelse af en AWS-konto.
I dette indlæg bruger vi Amazon SageMaker Studio med Data Science 3.0
billede og en ml.t3.medium
hurtig lanceringsinstans. Du kan dog bruge ethvert integreret udviklingsmiljø (IDE) efter eget valg. Du skal bare konfigurere din AWS kommandolinjegrænseflade (AWS CLI) legitimationsoplysninger korrekt. For mere information, se Konfigurer AWS CLI.
Til finjustering, Falcon-7B, en ml.g5.12xlarge
instans bruges i dette indlæg. Sørg for tilstrækkelig kapacitet til denne forekomst i AWS-kontoen.
Du skal klone dette Github depot for at replikere den løsning, der er vist i dette indlæg.
Løsningsoversigt
- Installer forudsætninger for at finjustere Falcon-7B-modellen
- Konfigurer fjerndekorationskonfigurationer
- Forbehandle datasættet, der indeholder AWS-services ofte stillede spørgsmål
- Finjuster Falcon-7B på AWS-tjenester ofte stillede spørgsmål
- Test finjuster modellerne på prøvespørgsmål relateret til AWS-tjenester
1. Installer forudsætninger for finjustering af Falcon-7B-modellen
Start notesbogen falcon-7b-qlora-remote-decorator_qa.ipynb i SageMaker Studio ved at vælge IMage as Data Science
, kernel as Python 3
. Installer alle de nødvendige biblioteker nævnt i requirements.txt
. Få af bibliotekerne skal installeres på selve notebook-forekomsten. Udfør andre handlinger, der er nødvendige for datasætbehandling og udløsning af et SageMaker-træningsjob.
2. Konfigurer fjerndekorationskonfigurationer
Opret en konfigurationsfil, hvor alle konfigurationer relateret til Amazon SageMaker træningsjob er specificeret. Denne fil læses af @remote decorator, mens du kører træningsjobbet. Denne fil indeholder indstillinger som afhængigheder, træningsbillede, instans og den udførelsesrolle, der skal bruges til træningsjob. For en detaljeret reference til alle de indstillinger, der understøttes af konfigurationsfilen, tjek ud Konfiguration og brug af standardindstillinger med SageMaker Python SDK.
Det er ikke obligatorisk at bruge config.yaml
fil for at arbejde med @remote decorator. Dette er blot en renere måde at levere alle konfigurationer til @remote-dekoratøren. Dette holder SageMaker- og AWS-relaterede parametre uden for koden med en engangsindsats for at opsætte den konfigurationsfil, der bruges på tværs af teammedlemmerne. Alle konfigurationer kunne også leveres direkte i dekoratørargumenterne, men det reducerer læsbarheden og vedligeholdelsen af ændringer i det lange løb. Konfigurationsfilen kan også oprettes af en administrator og deles med alle brugere i et miljø.
Forbehandle datasættet, der indeholder AWS-services ofte stillede spørgsmål
Næste trin er at indlæse og forbehandle datasættet for at gøre det klar til træningsjob. Lad os først se på datasættet:
Det viser ofte stillede spørgsmål for en af AWS-tjenesterne. Ud over QLoRA, bitsanbytes
bruges til at konvertere til 4-bit præcision for at kvantisere frossen LLM til 4-bit og vedhæfte LoRA adaptere på den.
Opret en promptskabelon for at konvertere hver FAQ-eksempel til et promptformat:
Næste trin er at konvertere input (tekst) til token-id'er. Dette gøres af en Hugging Face Transformers Tokenizer.
Brug nu blot prompt_template
funktion til at konvertere alle ofte stillede spørgsmål til promptformat og opsætte tog- og testdatasæt.
4. Finjuster Falcon-7B på ofte stillede spørgsmål om AWS-tjenester
Nu kan du forberede træningsscriptet og definere træningsfunktionen train_fn
og sæt @remote decorator på funktionen.
Træningsfunktionen gør følgende:
- tokeniserer og opdeler datasættet
- oprettet
BitsAndBytesConfig
, som specificerer, at modellen skal indlæses i 4-bit, men mens beregningen skal konverteres tilbfloat16
. - Indlæs modellen
- Find målmoduler og opdater de nødvendige matricer ved at bruge hjælpemetoden
find_all_linear_names
- Opret LoRA konfigurationer, der specificerer rangering af opdateringsmatricer (
s
), skaleringsfaktor (lora_alpha
), modulerne til at anvende LoRA-opdateringsmatricerne (target_modules
), sandsynlighed for udfald for Lora-lag(lora_dropout
),task_type
Osv - Start træningen og evalueringen
Og påberåbe sig train_fn()
Tuning-opgaven ville køre på Amazon SageMaker-uddannelsesklyngen. Vent på, at tuning-jobbet er afsluttet.
5. Test finjusteringsmodellerne på prøvespørgsmål relateret til AWS-tjenester
Nu er det tid til at køre nogle test på modellen. Lad os først indlæse modellen:
Indlæs nu et eksempelspørgsmål fra træningsdatasættet for at se det originale svar, og stil derefter det samme spørgsmål fra den indstillede model for at se svaret i sammenligning.
Her er et eksempel på et spørgsmål fra træningssættet og det originale svar:
Nu bliver det samme spørgsmål stillet til den indstillede Falcon-7B-model:
Dette afslutter implementeringen af finjustering af Falcon-7B på AWS-tjenesters FAQ-datasæt ved hjælp af @remote decorator fra Amazon SageMaker Python SDK.
Gøre rent
Udfør følgende trin for at rydde op i dine ressourcer:
- Luk Amazon SageMaker Studio-forekomsterne ned for at undgå at pådrage sig ekstra omkostninger.
- Ryd op i dit Amazon Elastic File System (Amazon EFS) bibliotek ved at rydde Hugging Face-cache-mappen:
Konklusion
I dette indlæg viste vi dig, hvordan du effektivt bruger @remote-dekoratørens muligheder til at finjustere Falcon-7B-modellen ved hjælp af QLoRA, Hugging Face PEFT med bitsandbtyes
uden at anvende væsentlige ændringer i træningsnotesbogen, og brugte Amazon SageMaker-funktioner til at køre træningsjob på en fjernklynge.
Al koden vist som en del af dette indlæg for at finjustere Falcon-7B er tilgængelig i GitHub repository. Depotet indeholder også en notesbog, der viser, hvordan man finjusterer Llama-13B.
Som et næste skridt opfordrer vi dig til at tjekke @remote decorator funktionalitet , Python SDK API og brug det i dit valg af miljø og IDE. Yderligere eksempler er tilgængelige i amazon-sagemaker-eksempler repository for at komme hurtigt i gang. Du kan også tjekke følgende indlæg:
Om forfatterne
Bruno Pistone er en AI/ML Specialist Solutions Architect for AWS baseret i Milano. Han arbejder med store kunder, der hjælper dem til dybt at forstå deres tekniske behov og designe AI- og Machine Learning-løsninger, der gør den bedste brug af AWS Cloud og Amazon Machine Learning-stakken. Hans ekspertise omfatter: Machine Learning end to end, Machine Learning Industrialization og Generative AI. Han nyder at tilbringe tid med sine venner og udforske nye steder, såvel som at rejse til nye destinationer.
Vikesh Pandey er en Machine Learning Specialist Solutions Architect hos AWS, der hjælper kunder fra finansielle industrier med at designe og bygge løsninger på generativ AI og ML. Uden for arbejdet nyder Vikesh at prøve forskellige køkkener og dyrke udendørs sport.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Automotive/elbiler, Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- ChartPrime. Løft dit handelsspil med ChartPrime. Adgang her.
- BlockOffsets. Modernisering af miljømæssig offset-ejerskab. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/fine-tune-falcon-7b-and-other-llms-on-amazon-sagemaker-with-remote-decorator/
- :har
- :er
- :ikke
- :hvor
- $OP
- 1
- 10
- 100
- 12
- 13
- 150
- 28
- 31
- 40
- 7
- 8
- 9
- a
- Om
- adgang
- Konto
- opnå
- tværs
- tilføje
- Desuden
- Yderligere
- Fordel
- AI
- AI modeller
- AI / ML
- Alle
- tillade
- tillader
- også
- Amazon
- Amazon maskinindlæring
- Amazon SageMaker
- Amazon SageMaker Studio
- Amazon Web Services
- an
- ,
- besvare
- svar
- enhver
- Indløs
- Anvendelse
- tilgang
- tilgange
- arkitektur
- ER
- argumenter
- AS
- spørg
- forbundet
- At
- vedhæfte
- augmented
- forfattere
- auto
- automatisk
- til rådighed
- undgå
- AWS
- barriere
- baseret
- BE
- fordi
- være
- BEDSTE
- større
- Blog
- bnb
- bygge
- men
- by
- Cache
- CAN
- kapaciteter
- Kapacitet
- udfordringer
- Ændringer
- kontrollere
- valg
- renere
- Rydning
- Cloud
- Cluster
- kode
- sammenligning
- beregning
- Konfiguration
- Beholdere
- indeholder
- fortsæt
- konvertere
- konverteret
- Koste
- Omkostninger
- kunne
- dæksel
- oprettet
- Legitimationsoplysninger
- skik
- Kunder
- data
- databehandling
- datasæt
- defaults
- definere
- demonstreret
- afhængigheder
- Design
- destinationer
- detaljeret
- detaljer
- Udvikler
- udviklere
- Udvikling
- enhed
- forskellige
- direkte
- gør
- færdig
- ned
- hver
- effektivt
- effektiv
- indsats
- andet
- tilskynde
- ende
- Engineering
- sikre
- indrejse
- Miljø
- miljøer
- etc.
- Endog
- eksempler
- udførelse
- eksisterende
- ekspertise
- Udforskning
- Ansigtet
- faktor
- falsk
- FAQ
- FAST
- Funktionalitet
- få
- File (Felt)
- finansielle
- finansielle brancher
- ende
- slut
- Fornavn
- passer
- efter
- Til
- format
- fundet
- Foundation
- venner
- fra
- frosset
- fuld
- funktion
- yderligere
- generation
- generative
- Generativ AI
- få
- gå
- godt
- GPU'er
- Have
- he
- hjælpe
- dermed
- hans
- Hvordan
- How To
- Men
- HTML
- http
- HTTPS
- Identity
- id'er
- if
- billede
- implementering
- importere
- Forbedre
- forbedret
- forbedrer
- in
- omfatter
- stigende
- industrier
- oplysninger
- indgang
- indgange
- installere
- installeret
- instans
- integreret
- ind
- IT
- selv
- Job
- Karriere
- jpg
- lige
- kendt
- stor
- lancere
- LÆR
- læring
- lad
- biblioteker
- Bibliotek
- ligesom
- Line (linje)
- LLM
- belastning
- Lang
- Se
- maskine
- machine learning
- Vedligeholdelse
- lave
- administrere
- obligatorisk
- Kan..
- Medlemmer
- Hukommelse
- nævnte
- måske
- MILAN
- mindste
- ML
- model
- modeller
- Moduler
- Moduler
- mere
- navn
- navne
- indfødte
- Natural
- nødvendig
- Behov
- behov
- behov
- Ny
- næste
- ingen
- Ingen
- notesbog
- nu
- nummer
- of
- on
- ONE
- Produktion
- or
- ordrer
- original
- Andet
- ud
- output
- uden for
- parametre
- del
- Udfør
- ydeevne
- Tilladelser
- Steder
- perron
- plato
- Platon Data Intelligence
- PlatoData
- spiller
- Vær venlig
- Indlæg
- Indlæg
- Precision
- Forbered
- forudsætninger
- forelagt
- forarbejdning
- produktivitet
- forudsat
- leverer
- sætte
- Python
- Spørgsmål og svar
- kvalitet
- spørgsmål
- Spørgsmål
- hurtigt
- tilfældig
- Ranking
- Læs
- klar
- reducerer
- henvise
- relaterede
- fjern
- Repository
- påkrævet
- Krav
- Kræver
- Ressourcer
- afkast
- roller
- Kør
- kører
- løber
- sagemaker
- samme
- skalering
- Videnskab
- script
- SDK
- se
- udvælgelse
- Tjenester
- sæt
- indstilling
- indstillinger
- setup
- flere
- delt
- bør
- udstillingsvindue
- viste
- vist
- Shows
- signifikant
- ganske enkelt
- enkelt
- løsninger
- Løsninger
- nogle
- specialist
- specificeret
- udgifterne
- Sport
- stable
- starte
- påbegyndt
- Trin
- Steps
- Stadig
- Studio
- sådan
- tilstrækkeligt
- tilført
- forsyne
- support
- Understøttet
- Kontakt
- systemet
- mål
- opgaver
- hold
- Holdkammerater
- Teknisk
- teknikker
- skabelon
- prøve
- tests
- tekst
- at
- deres
- Them
- derefter
- Disse
- denne
- Gennem
- tid
- til
- token
- tokenisere
- fakkel
- I alt
- Tog
- Kurser
- transformers
- udløsning
- forsøger
- forstå
- enheder
- Opdatering
- us
- Brug
- brug
- anvendte
- brugere
- bruger
- ved brug af
- nytte
- række
- meget
- video
- vente
- Vej..
- we
- web
- webservices
- GODT
- som
- mens
- Wikipedia
- med
- uden
- Arbejde
- arbejder
- virker
- ville
- skrivning
- endnu
- Du
- Din
- zephyrnet