Tegenwoordig bestrijken generatieve AI-modellen een verscheidenheid aan taken, van het samenvatten van teksten, vragen en antwoorden en het genereren van afbeeldingen en video's. Om de kwaliteit van de output te verbeteren, zijn benaderingen als n-short learning, Prompt engineering, Ophalen van Augmented Generation (RAG) en fijnafstemming worden gebruikt. Met fijnafstemming kunt u deze generatieve AI-modellen aanpassen om betere prestaties te bereiken bij uw domeinspecifieke taken.
met Amazon Sage Maker, nu kunt u een SageMaker-trainingstaak uitvoeren door eenvoudigweg uw Python-code te annoteren met @externe binnenhuisarchitect. De SageMaker Python-SDK vertaalt automatisch uw bestaande werkruimteomgeving en eventuele bijbehorende gegevensverwerkingscode en datasets naar een SageMaker-trainingstaak die op het trainingsplatform draait. Dit heeft het voordeel dat de code op een meer natuurlijke, objectgeoriënteerde manier wordt geschreven en dat er nog steeds gebruik wordt gemaakt van de mogelijkheden van SageMaker om trainingstaken uit te voeren op een extern cluster met minimale wijzigingen.
In dit bericht laten we zien hoe u een Valk-7B Foundation Models (FM) met behulp van @remote decorateur van SageMaker Python SDK. Het gebruikt ook De parameter-efficiënte fijnafstemming van Hugging Face (PEFT) bibliotheek en kwantiseringstechnieken door bitsandbytes ter ondersteuning van de fijnafstemming. De code die in deze blog wordt gepresenteerd, kan ook worden gebruikt om andere FM's te verfijnen, zoals Lama-2 13b.
De volledige precisierepresentaties van dit model kunnen problemen hebben om in het geheugen van één of zelfs meerdere modellen te passen Grafische verwerkingseenheden (GPU's) – of heeft misschien zelfs een groter exemplaar nodig. Om dit model te verfijnen zonder de kosten te verhogen, gebruiken we daarom de techniek die bekend staat als Gekwantiseerde LLM's met Low-Rank Adapters (QLoRA). QLoRA is een efficiënte aanpak voor fijnafstemming die het geheugengebruik van LLM's vermindert terwijl de zeer goede prestaties behouden blijven.
Voordelen van het gebruik van @remote decorateur
Laten we, voordat we verder gaan, eerst begrijpen hoe een externe decorateur de productiviteit van ontwikkelaars verbetert tijdens het werken met SageMaker:
- @remote decorateur activeert een trainingstaak rechtstreeks met behulp van native Python-code, zonder de expliciete aanroep van SageMaker Estimators en SageMaker-invoerkanalen
- Lage toegangsdrempel voor ontwikkelaars die modellen trainen op SageMaker.
- Overstappen is niet nodig Geïntegreerde ontwikkelomgevingen (IDE's). Ga door met het schrijven van code in de IDE van uw keuze en roep SageMaker-trainingstaken aan.
- U hoeft niets over containers te leren. Ga door met het verstrekken van afhankelijkheden in a
requirements.txt
en geef dat aan een externe decorateur.
Voorwaarden
Er is een AWS-account nodig met een AWS Identiteits- en toegangsbeheer (AWS IAM) rol die machtigingen heeft om bronnen te beheren die zijn gemaakt als onderdeel van de oplossing. Voor details, zie Een AWS-account aanmaken.
In dit bericht gebruiken we Amazon SageMaker Studio met de Data Science 3.0
afbeelding en een ml.t3.medium
snelle lanceringsinstantie. U kunt echter elke geïntegreerde ontwikkelomgeving (IDE) van uw keuze gebruiken. U hoeft alleen maar uw AWS-opdrachtregelinterface (AWS CLI) referenties correct. Voor meer informatie, zie Configureer de AWS CLI.
Voor fijnafstemming is er de Falcon-7B, een ml.g5.12xlarge
instance wordt in dit bericht gebruikt. Zorg ervoor dat er voldoende capaciteit is voor deze instantie in het AWS-account.
Je moet dit klonen Github-repository voor het repliceren van de oplossing die in dit bericht wordt gedemonstreerd.
Overzicht oplossingen
- Installeer de vereisten voor het verfijnen van het Falcon-7B-model
- Configureer configuraties voor externe decorateurs
- Verwerk de dataset met veelgestelde vragen over AWS-services voor
- Verfijn Falcon-7B op veelgestelde vragen over AWS-services
- Test de verfijnde modellen op voorbeeldvragen met betrekking tot AWS-services
1. Installeer de vereisten om het Falcon-7B-model nauwkeurig af te stemmen
Start de notebook falcon-7b-qlora-remote-decorator_qa.ipynb in SageMaker Studio door de Itovenaar as Data Science
en pit as Python 3
. Installeer alle vereiste bibliotheken vermeld in de requirements.txt
. Er hoeven maar weinig bibliotheken op de notebookinstantie zelf te worden geïnstalleerd. Voer andere bewerkingen uit die nodig zijn voor de verwerking van gegevenssets en het activeren van een SageMaker-trainingstaak.
2. Configuraties voor externe decorateurs instellen
Maak een configuratiebestand waarin alle configuraties met betrekking tot de Amazon SageMaker-trainingstaak worden gespecificeerd. Dit bestand wordt gelezen door @remote decorateur tijdens het uitvoeren van de trainingstaak. Dit bestand bevat instellingen zoals afhankelijkheden, trainingsimage, exemplaar en de uitvoeringsrol die voor de trainingstaak moet worden gebruikt. Voor een gedetailleerde referentie van alle instellingen die door het configuratiebestand worden ondersteund, ga naar Standaardinstellingen configureren en gebruiken met de SageMaker Python SDK.
Het is niet verplicht om de config.yaml
bestand om met @remote decorateur te kunnen werken. Dit is gewoon een schonere manier om alle configuraties aan de @remote-decorateur te leveren. Hierdoor blijven SageMaker- en AWS-gerelateerde parameters buiten de code, met een eenmalige inspanning voor het instellen van het configuratiebestand dat door de teamleden wordt gebruikt. Alle configuraties kunnen ook rechtstreeks in de decorator-argumenten worden opgegeven, maar dat vermindert op de lange termijn de leesbaarheid en onderhoudbaarheid van wijzigingen. Ook kan het configuratiebestand door een beheerder worden aangemaakt en gedeeld met alle gebruikers in een omgeving.
Verwerk de dataset met veelgestelde vragen over AWS-services voor
De volgende stap is het laden en voorbewerken van de dataset, zodat deze klaar is voor de trainingstaak. Laten we eerst eens kijken naar de dataset:
Het toont veelgestelde vragen voor een van de AWS-services. Naast QLoRA, bitsanbytes
wordt gebruikt om te converteren naar 4-bits precisie om bevroren LLM naar 4-bit te kwantiseren en te koppelen LoRA adapters erop.
Maak een promptsjabloon om elk voorbeeld van veelgestelde vragen naar een promptindeling te converteren:
De volgende stap is het converteren van de invoer (tekst) naar token-ID's. Dit wordt gedaan door een Knuffelen Gezicht Transformers Tokenizer.
Gebruik nu eenvoudig de prompt_template
functie om alle veelgestelde vragen naar het promptformaat te converteren en trein- en testdatasets in te stellen.
4. Verfijn Falcon-7B op veelgestelde vragen over AWS-services
Nu kunt u het trainingsscript voorbereiden en de trainingsfunctie definiëren train_fn
en zet @remote decorateur op de functie.
De trainingsfunctie doet het volgende:
- tokeniseert en deelt de gegevensset op
- instellen
BitsAndBytesConfig
, wat specificeert dat het model in 4-bit moet worden geladen, maar terwijl de berekening moet worden geconverteerd naarbfloat16
. - Laad het model
- Zoek doelmodules en update de benodigde matrices met behulp van de utility-methode
find_all_linear_names
- creëren LoRA configuraties die de rangschikking van updatematrices specificeren (
s
), schaalfactor (lora_alpha
), de modules om de LoRA-updatematrices toe te passen (target_modules
), uitvalkans voor Lora-lagen (lora_dropout
),task_type
, Etc. - Start de training en evaluatie
En roep de train_fn()
De afstemmingstaak zou worden uitgevoerd op het Amazon SageMaker-trainingscluster. Wacht tot de afstemmingstaak is voltooid.
5. Test de fine-tune-modellen op voorbeeldvragen met betrekking tot AWS-services
Nu is het tijd om enkele tests op het model uit te voeren. Laten we eerst het model laden:
Laad nu een voorbeeldvraag uit de trainingsgegevensset om het oorspronkelijke antwoord te zien en stel vervolgens dezelfde vraag vanuit het afgestemde model om het antwoord in vergelijking te zien.
Hier is een voorbeeld van een vraag uit de trainingsset en het oorspronkelijke antwoord:
Nu wordt dezelfde vraag gesteld aan het afgestemde Falcon-7B-model:
Hiermee is de implementatie afgerond van het verfijnen van Falcon-7B op de dataset met veelgestelde vragen over AWS-services met behulp van @remote decorateur van Amazon SageMaker Python SDK.
Schoonmaken
Voer de volgende stappen uit om uw bronnen op te schonen:
- Sluit de Amazon SageMaker Studio-instanties af om extra kosten te voorkomen.
- Ruim uw Amazon Elastic File System op (Amazon EFS) map door de cachemap van Hugging Face te wissen:
Conclusie
In dit bericht hebben we u laten zien hoe u de mogelijkheden van @remote decorateur effectief kunt gebruiken om het Falcon-7B-model te verfijnen met behulp van QLoRA, Hugging Face PEFT met bitsandbtyes
zonder significante wijzigingen in het trainingsnotebook aan te brengen, en de mogelijkheden van Amazon SageMaker te gebruiken om trainingstaken op een extern cluster uit te voeren.
Alle code die als onderdeel van dit bericht wordt weergegeven om Falcon-7B te verfijnen, is beschikbaar in de GitHub-repository. De repository bevat ook een notitieboekje dat laat zien hoe je Llama-13B kunt verfijnen.
Als volgende stap raden we je aan om de @remote decorateur-functionaliteit en Python SDK-API en gebruik het in uw keuze van omgeving en IDE. Meer voorbeelden zijn beschikbaar in de amazon-sagemaker-voorbeelden repository zodat u snel aan de slag kunt. Je kunt ook de volgende berichten bekijken:
Over de auteurs
Bruno Piston is een AI/ML Specialist Solutions Architect voor AWS, gevestigd in Milaan. Hij werkt met grote klanten en helpt hen hun technische behoeften diepgaand te begrijpen en AI- en Machine Learning-oplossingen te ontwerpen die optimaal gebruik maken van de AWS Cloud en de Amazon Machine Learning-stack. Zijn expertise omvat onder meer: machine learning van begin tot eind, machine learning-industrialisatie en generatieve AI. Hij brengt graag tijd door met zijn vrienden en ontdekt graag nieuwe plaatsen, maar ook reist hij graag naar nieuwe bestemmingen.
Vikesh Pandey is een Machine Learning Specialist Solutions Architect bij AWS, die klanten uit de financiële sector helpt bij het ontwerpen en bouwen van oplossingen op basis van generatieve AI en ML. Buiten het werk houdt Vikesh ervan om verschillende keukens uit te proberen en buitensporten te beoefenen.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoData.Network Verticale generatieve AI. Versterk jezelf. Toegang hier.
- PlatoAiStream. Web3-intelligentie. Kennis versterkt. Toegang hier.
- PlatoESG. Automotive / EV's, carbon, CleanTech, Energie, Milieu, Zonne, Afvalbeheer. Toegang hier.
- Plato Gezondheid. Intelligentie op het gebied van biotech en klinische proeven. Toegang hier.
- ChartPrime. Verhoog uw handelsspel met ChartPrime. Toegang hier.
- BlockOffsets. Eigendom voor milieucompensatie moderniseren. Toegang hier.
- Bron: https://aws.amazon.com/blogs/machine-learning/fine-tune-falcon-7b-and-other-llms-on-amazon-sagemaker-with-remote-decorator/
- : heeft
- :is
- :niet
- :waar
- $UP
- 1
- 10
- 100
- 12
- 13
- 150
- 28
- 31
- 40
- 7
- 8
- 9
- a
- Over
- toegang
- Account
- Bereiken
- over
- toevoegen
- toevoeging
- Extra
- Voordeel
- AI
- AI-modellen
- AI / ML
- Alles
- toelaten
- toestaat
- ook
- Amazone
- Amazon machinaal leren
- Amazon Sage Maker
- Amazon SageMaker Studio
- Amazon Web Services
- an
- en
- beantwoorden
- antwoorden
- elke
- Solliciteer
- Het toepassen van
- nadering
- benaderingen
- architectuur
- ZIJN
- argumenten
- AS
- vragen
- geassocieerd
- At
- hechten
- aangevuld
- auteurs
- auto
- webmaster.
- Beschikbaar
- vermijd
- AWS
- barrière
- gebaseerde
- BE
- omdat
- wezen
- BEST
- groter
- Blog
- bnb
- bouw
- maar
- by
- cache
- CAN
- mogelijkheden
- Inhoud
- uitdagingen
- Wijzigingen
- controle
- keuze
- schoonmaak
- opheldering
- Cloud
- TROS
- code
- vergelijking
- berekening
- Configuratie
- containers
- bevat
- voortzetten
- converteren
- geconverteerd
- Kosten
- Kosten
- kon
- deksel
- aangemaakt
- Geloofsbrieven
- gewoonte
- Klanten
- gegevens
- gegevensverwerking
- datasets
- defaults
- bepalen
- gedemonstreerd
- afhankelijkheden
- Design
- bestemmingen
- gedetailleerd
- gegevens
- Ontwikkelaar
- ontwikkelaars
- Ontwikkeling
- apparaat
- anders
- direct
- doet
- gedaan
- beneden
- elk
- effectief
- doeltreffend
- inspanning
- anders
- aanmoedigen
- einde
- Engineering
- verzekeren
- toegang
- Milieu
- omgevingen
- etc
- Zelfs
- voorbeelden
- uitvoering
- bestaand
- expertise
- Verkennen
- Gezicht
- factor
- vals
- FAQ
- SNELLE
- Voordelen
- weinig
- Dien in
- financieel
- financiële sectoren
- einde
- afmaken
- Voornaam*
- geschikt
- volgend
- Voor
- formaat
- gevonden
- Foundation
- vrienden
- oppompen van
- bevroren
- vol
- functie
- verder
- generatie
- generatief
- generatieve AI
- krijgen
- gaan
- goed
- GPU's
- Hebben
- he
- het helpen van
- Vandaar
- zijn
- Hoe
- How To
- Echter
- HTML
- http
- HTTPS
- Identiteit
- ids
- if
- beeld
- uitvoering
- importeren
- verbeteren
- verbeterd
- verbetert
- in
- omvatten
- meer
- industrieën
- informatie
- invoer
- ingangen
- installeren
- geïnstalleerd
- instantie
- geïntegreerde
- in
- IT
- zelf
- Jobomschrijving:
- Vacatures
- jpg
- voor slechts
- bekend
- Groot
- lancering
- LEARN
- leren
- laten
- bibliotheken
- Bibliotheek
- als
- Lijn
- LLM
- laden
- lang
- Kijk
- machine
- machine learning
- Het handhaven
- maken
- beheer
- verplicht
- Mei..
- Leden
- Geheugen
- vermeld
- macht
- MILAAN
- minimaal
- ML
- model
- modellen
- Module
- Modules
- meer
- naam
- namen
- inheemse
- Naturel
- noodzakelijk
- Noodzaak
- nodig
- behoeften
- New
- volgende
- geen
- Geen
- notitieboekje
- nu
- aantal
- of
- on
- EEN
- Operations
- or
- bestellen
- origineel
- Overige
- uit
- uitgang
- buiten
- parameters
- deel
- Uitvoeren
- prestatie
- permissies
- plaatsen
- platform
- Plato
- Plato gegevensintelligentie
- PlatoData
- spelen
- dan
- Post
- Berichten
- precisie
- Voorbereiden
- vereisten
- gepresenteerd
- verwerking
- produktiviteit
- mits
- het verstrekken van
- zetten
- Python
- Q & A
- kwaliteit
- vraag
- Contact
- snel
- willekeurige
- Ranking
- Lees
- klaar
- vermindert
- verwijzen
- verwant
- vanop
- bewaarplaats
- nodig
- Voorwaarden
- vereist
- Resources
- terugkeer
- Rol
- lopen
- lopend
- loopt
- sagemaker
- dezelfde
- scaling
- Wetenschap
- script
- sdk
- zien
- selecteren
- Diensten
- reeks
- het instellen van
- settings
- setup
- verscheidene
- gedeeld
- moet
- showcase
- vertoonde
- getoond
- Shows
- aanzienlijke
- eenvoudigweg
- single
- oplossing
- Oplossingen
- sommige
- specialist
- gespecificeerd
- Uitgaven
- Sport
- stack
- begin
- gestart
- Stap voor
- Stappen
- Still
- studio
- dergelijk
- voldoende
- geleverde
- leveren
- ondersteuning
- ondersteunde
- Stap over voor slechts
- system
- doelwit
- taken
- team
- Leden van het team
- Technisch
- technieken
- sjabloon
- proef
- testen
- tekst
- dat
- De
- hun
- Ze
- harte
- Deze
- dit
- Door
- niet de tijd of
- naar
- teken
- tokenize
- fakkel
- Totaal
- Trainen
- Trainingen
- transformers
- triggering
- proberen
- begrijpen
- eenheden
- bijwerken
- us
- Gebruik
- .
- gebruikt
- gebruikers
- toepassingen
- gebruik
- utility
- variëteit
- zeer
- Video
- wachten
- Manier..
- we
- web
- webservices
- GOED
- welke
- en
- Wikipedia
- Met
- zonder
- Mijn werk
- werkzaam
- Bedrijven
- zou
- het schrijven van
- nog
- You
- Your
- zephyrnet