Generatieve AI bevindt zich midden in een periode van verbluffende groei. Er worden continu steeds betere basismodellen uitgebracht, waarbij grote taalmodellen (LLM's) een van de meest zichtbare modelklassen zijn. LLM's zijn modellen die zijn samengesteld uit miljarden parameters die zijn getraind op uitgebreide tekstcorpora, tot honderden miljarden of zelfs een biljoen tokens. Deze modellen zijn buitengewoon effectief gebleken voor een breed scala aan op tekst gebaseerde taken, van het beantwoorden van vragen tot sentimentanalyse.
De kracht van LLM's komt voort uit hun vermogen om te leren en te generaliseren van uitgebreide en diverse trainingsgegevens. De initiรซle training van deze modellen wordt uitgevoerd met verschillende doelstellingen, onder toezicht, zonder toezicht of hybride. Tekstaanvulling of imputatie is een van de meest voorkomende doelstellingen zonder toezicht: gegeven een stuk tekst leert het model nauwkeurig te voorspellen wat er daarna komt (bijvoorbeeld de volgende zin voorspellen). Modellen kunnen ook onder toezicht worden getraind met behulp van gelabelde gegevens om een โโreeks taken uit te voeren (is deze filmrecensie bijvoorbeeld positief, negatief of neutraal). Of het model nu is getraind voor tekstaanvulling of een andere taak, het is vaak niet de taak waarvoor klanten het model willen gebruiken.
Om de prestaties van een vooraf getrainde LLM op een specifieke taak te verbeteren, kunnen we het model afstemmen met behulp van voorbeelden van de doeltaak in een proces dat bekend staat als instructie fijnafstemming. Bij het afstemmen van instructies wordt een reeks gelabelde voorbeelden gebruikt in de vorm van {prompt, respons}-paren om het vooraf getrainde model verder te trainen in het adequaat voorspellen van de reactie op de prompt. Dit proces wijzigt de gewichten van het model.
In dit bericht wordt beschreven hoe u instructie-fijnafstemming van een LLM uitvoert, namelijk FLAN T5 XL, met behulp van Amazon SageMaker-jumpstart. We laten zien hoe u dit kunt bereiken met behulp van zowel de Jumpstart-gebruikersinterface als een notebook in Amazon SageMaker Studioโ U kunt de bijbehorende notebook in de amazon-sagemaker-voorbeelden GitHub-opslagplaats.
Overzicht oplossingen
De doeltaak in dit bericht is om, gegeven een stuk tekst in de prompt, vragen te retourneren die verband houden met de tekst, maar die niet kunnen worden beantwoord op basis van de informatie die het bevat. Dit is een nuttige taak om ontbrekende informatie in een beschrijving te identificeren of om te bepalen of een vraag meer informatie nodig heeft om te worden beantwoord.
FLAN T5-modellen zijn nauwkeurig afgestemd op instructies voor een breed scala aan taken om de zero-shot-prestaties van deze modellen voor veel voorkomende taken te verbeteren[1]. Het afstemmen van aanvullende instructies voor een bepaalde klanttaak kan de nauwkeurigheid van deze modellen verder vergroten, vooral als de doeltaak niet eerder werd gebruikt om een โโFLAN T5-model te trainen, zoals het geval is voor onze taak.
In onze voorbeeldtaak zijn we geรฏnteresseerd in het genereren van relevante maar onbeantwoorde vragen. Hiertoe gebruiken we een subset van versie 2 van de Stanford Question Answering Dataset (SQuAD2.0)[2] om het model te verfijnen. Deze dataset bevat vragen van menselijke annotators over een reeks Wikipedia-artikelen. Naast vragen met antwoorden bevat SQuAD2.0 zo'n 50,000 onbeantwoordbare vragen. Dergelijke vragen zijn plausibel, maar kunnen niet direct worden beantwoord vanuit de inhoud van artikelen. We gebruiken alleen de onbeantwoordbare vragen. Onze gegevens zijn gestructureerd als een JSON Lines-bestand, waarbij elke regel een context en een vraag bevat.
Voorwaarden
Om te beginnen heb je alleen een AWS-account nodig waarin je Studio kunt gebruiken. U moet een gebruikersprofiel voor Studio maken als u er nog geen heeft.
Verfijn FLAN-T5 met de Jumpstart UI
Voer de volgende stappen uit om het model af te stemmen met de Jumpstart-gebruikersinterface:
- Open Studio op de SageMaker-console.
- Onder SageMaker-startpagina in het navigatievenster, kies Modellen, notebooks, oplossingen.
U ziet een lijst met funderingsmodellen, waaronder FLAN T5 XL, die is gemarkeerd als fijnafstelbaar.
- Kies Bekijk model.
- Onder Databron, kunt u het pad naar uw trainingsgegevens opgeven. De bron voor de gegevens die in dit bericht worden gebruikt, wordt standaard verstrekt.
- U kunt de standaardwaarde voor de implementatieconfiguratie (inclusief instantietype), beveiliging en hyperparameters behouden, maar u moet het aantal tijdperken verhogen tot ten minste drie om goede resultaten te krijgen.
- Kies Trainen om het model te trainen.
U kunt de status van de trainingstaak volgen in de gebruikersinterface.
- Wanneer de training is voltooid (in ons geval na ongeveer 53 minuten), kiest u Implementeren om het verfijnde model in te zetten.
Nadat het eindpunt is gemaakt (enkele minuten), kunt u een notitieblok openen en uw verfijnde model gaan gebruiken.
Verfijn FLAN-T5 met behulp van een Python-notebook
Onze voorbeeldnotitieblok laat zien hoe u Jumpstart en SageMaker kunt gebruiken om een โโFLAN T5 XL-model programmatisch af te stemmen en te implementeren. Het kan in Studio of lokaal worden uitgevoerd.
In dit gedeelte lopen we eerst door een aantal algemene instellingen. Vervolgens stem je het model af met behulp van de SQuADv2-datasets. Vervolgens implementeert u de vooraf getrainde versie van het model achter een SageMaker-eindpunt en doet u hetzelfde met het verfijnde model. Ten slotte kunt u de eindpunten opvragen en de kwaliteit van de uitvoer van het vooraf getrainde en verfijnde model vergelijken. U zult merken dat de uitvoer van het verfijnde model van veel hogere kwaliteit is.
Vereisten instellen
Begin met het installeren en upgraden van de benodigde pakketten. Start de kernel opnieuw op na het uitvoeren van de volgende code:
Verkrijg vervolgens de uitvoeringsrol die is gekoppeld aan de huidige notebookinstantie:
U kunt een handig vervolgkeuzemenu definiรซren met de beschikbare modelmaten voor fijnafstemming:
Jumpstart haalt automatisch de juiste typen training en deductie-instanties op voor het model dat u hebt gekozen:
U bent nu klaar om te beginnen met finetunen.
Train het model opnieuw op de gegevensset voor fijnafstelling
Nadat uw installatie is voltooid, voert u de volgende stappen uit:
Gebruik de volgende code om de URI voor de benodigde artefacten op te halen:
De trainingsgegevens bevinden zich in een openbare ruimte Amazon eenvoudige opslagservice (Amazon S3) emmer.
Gebruik de volgende code om naar de locatie van de gegevens te verwijzen en stel de uitvoerlocatie in een bucket in uw account in:
De oorspronkelijke gegevens hebben niet de indeling die overeenkomt met de taak waarvoor u het model aan het verfijnen bent, dus u kunt deze opnieuw formatteren:
Nu kunt u enkele hyperparameters voor de training definiรซren:
U bent nu klaar om de trainingstaak te starten:
Afhankelijk van de grootte van de fijnafstemmingsgegevens en het gekozen model, kan de fijnafstemming enkele uren duren.
U kunt prestatiestatistieken zoals training en validatieverlies bewaken met behulp van Amazon Cloud Watch tijdens de training. Handig is dat u ook de meest recente snapshot van metrische gegevens kunt ophalen door de volgende code uit te voeren:
Als de training is afgerond, beschikt u over een gefinetuned model model_uri
. Laten we het gebruiken!
U kunt twee gevolgtrekkingseindpunten maken: รฉรฉn voor het oorspronkelijke, vooraf getrainde model en รฉรฉn voor het verfijnde model. Hierdoor kunt u de uitvoer van beide versies van het model vergelijken. In de volgende stap implementeert u een deductie-eindpunt voor het vooraf getrainde model. Vervolgens implementeert u een eindpunt voor uw verfijnde model.
Het vooraf getrainde model implementeren
Laten we beginnen met het implementeren van het vooraf getrainde model om de gevolgtrekking Docker-afbeeldings-URI op te halen. Dit is de basisafbeelding van de Hugging Face-container. Gebruik de volgende code:
U kunt nu het eindpunt maken en het vooraf getrainde model implementeren. Houd er rekening mee dat u de Predictor-klasse moet doorgeven bij het implementeren van het model via de Model-klasse om deductie via de SageMaker API te kunnen uitvoeren. Zie de volgende code:
Het maken van het eindpunt en de implementatie van het model kan enkele minuten duren, waarna uw eindpunt klaar is om inferentieoproepen te ontvangen.
Het verfijnde model implementeren
Laten we het verfijnde model implementeren op zijn eigen eindpunt. Het proces is bijna identiek aan het proces dat we eerder gebruikten voor het vooraf getrainde model. Het enige verschil is dat we de verfijnde modelnaam en URI gebruiken:
Wanneer dit proces is voltooid, worden zowel vooraf getrainde als nauwkeurig afgestelde modellen geรฏmplementeerd achter hun eigen eindpunten. Laten we hun output vergelijken.
Genereer output en vergelijk de resultaten
Definieer enkele hulpprogramma-functies om het eindpunt op te vragen en het antwoord te ontleden:
In het volgende codefragment definiรซren we de prompt en de testgegevens. Het beschrijft onze doeltaak, namelijk het genereren van vragen die verband houden met de verstrekte tekst, maar die op basis daarvan niet kunnen worden beantwoord.
De testgegevens bestaan โโuit drie verschillende paragrafen, een over de Australische stad Adelaide uit de eerste twee alinea's van de Wikipedia-pagina, een betreffende Amazon elastische blokwinkel (Amazon EBS) van de Amazon EBS-documentatieen een van Amazon begrijpt het van het Amazon Comprehend-documentatie. We verwachten dat het model vragen met betrekking tot deze alinea's identificeert, maar dat kan niet worden beantwoord met de daarin verstrekte informatie.
U kunt nu de eindpunten testen met behulp van de voorbeeldartikelen
Testgegevens: Adelaide
We gebruiken de volgende context:
De vooraf getrainde modelrespons is als volgt:
De verfijnde modelreacties zijn als volgt:
Testgegevens: Amazon EBS
We gebruiken de volgende context:
De vooraf getrainde modelreacties zijn als volgt:
De verfijnde modelreacties zijn als volgt:
Testgegevens: Amazon Comprehend
We gebruiken de volgende context:
De vooraf getrainde modelreacties zijn als volgt:
De verfijnde modelreacties zijn als volgt:
Het verschil in uitvoerkwaliteit tussen het vooraf getrainde model en het verfijnde model is groot. De vragen van het verfijnde model raken aan een breder scala aan onderwerpen. Het zijn systematisch zinvolle vragen, wat niet altijd het geval is voor het vooraf getrainde model, zoals geรฏllustreerd met het Amazon EBS-voorbeeld.
Hoewel dit geen formele en systematische evaluatie is, is het duidelijk dat het proces van fijnafstemming de kwaliteit van de antwoorden van het model op deze taak heeft verbeterd.
Opruimen
Vergeet ten slotte niet om de eindpunten op te ruimen en te verwijderen:
Conclusie
In dit bericht hebben we laten zien hoe u instructie-fijnafstemming kunt gebruiken met FLAN T5-modellen met behulp van de Jumpstart-gebruikersinterface of een Jupyter-notebook die in Studio draait. We hebben code geleverd waarin wordt uitgelegd hoe het model opnieuw kan worden getraind met behulp van gegevens voor de doeltaak en hoe het verfijnde model achter een eindpunt kan worden geรฏmplementeerd. De doeltaak in dit bericht was om vragen te identificeren die betrekking hebben op een stuk tekst in de invoer, maar die niet kunnen worden beantwoord op basis van de informatie in die tekst. We hebben aangetoond dat een model dat is afgestemd op deze specifieke taak betere resultaten oplevert dan een vooraf getraind model.
Nu u weet hoe u een model kunt verfijnen met Jumpstart, kunt u krachtige modellen maken die zijn aangepast voor uw toepassing. Verzamel wat gegevens voor uw use case, upload deze naar Amazon S3 en gebruik de Studio UI of de notebook om een โโFLAN T5-model af te stemmen!
Referenties
[1] Chung, Hyung Won, et al. "Schaalbare instructie-fijn afgestemde taalmodellen." arXiv voordruk arXiv:2210.11416 (2022).
[2] Rajpurkar, Pranav, Robin Jia en Percy Liang. "Weet wat je niet weet: onbeantwoordbare vragen voor SQuAD." Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Deel 2: Short Papers). 2018.
Over de auteurs
Laurent Callot is een Principal Applied Scientist en manager bij AWS AI Labs die heeft gewerkt aan verschillende machine learning-problemen, van fundamentele modellen en generatieve AI tot prognoses, afwijkingsdetectie, causaliteit en AI Ops.
Andrew Kan is een Senior Applied Scientist bij AWS AI Labs met interesses en ervaring op verschillende gebieden van Machine Learning. Dit omvat onderzoek naar funderingsmodellen, maar ook ML-toepassingen voor grafieken en tijdreeksen.
Dr Ashish Khetan is een Senior Applied Scientist met ingebouwde algoritmen van Amazon SageMaker en helpt bij het ontwikkelen van algoritmen voor machine learning. Hij promoveerde aan de Universiteit van Illinois, Urbana Champaign. Hij is een actief onderzoeker op het gebied van machine learning en statistische inferentie en heeft veel artikelen gepubliceerd op NeurIPS-, ICML-, ICLR-, JMLR-, ACL- en EMNLP-conferenties.
Baris Kurt is Applied Scientist bij AWS AI Labs. Zijn interesses liggen bij de detectie van afwijkingen in tijdreeksen en funderingsmodellen. Hij houdt ervan om gebruiksvriendelijke ML-systemen te ontwikkelen.
Jonas Kubler is Applied Scientist bij AWS AI Labs. Hij werkt aan funderingsmodellen met als doel use-case specifieke toepassingen mogelijk te maken.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoAiStream. Web3 gegevensintelligentie. Kennis versterkt. Toegang hier.
- De toekomst slaan met Adryenn Ashley. Toegang hier.
- Koop en verkoop aandelen in PRE-IPO-bedrijven met PREIPOยฎ. Toegang hier.
- Bron: https://aws.amazon.com/blogs/machine-learning/instruction-fine-tuning-for-flan-t5-xl-with-amazon-sagemaker-jumpstart/
- : heeft
- :is
- :niet
- $UP
- 000
- 1
- 10
- 100
- 11
- 12
- 13
- 17
- 1M
- 20
- 2018
- 2022
- 22
- 40
- 50
- 60
- 7
- 8
- 80
- 9
- a
- in staat
- Over
- ACCEPTEREN
- toegang
- beschikbaar
- bereiken
- Account
- nauwkeurigheid
- nauwkeurig
- actieve
- toevoeging
- Extra
- voldoende
- Na
- AI
- AL
- algoritmen
- Alles
- toestaat
- al
- ook
- altijd
- Amazone
- Amazon begrijpt het
- Amazon Sage Maker
- Amazon SageMaker JumpStart
- Amazon Web Services
- an
- analyse
- analyseren
- en
- jaar-
- onregelmatigheidsdetectie
- antwoorden
- elke
- api
- APIs
- Aanvraag
- toepassingen
- toegepast
- passend
- ZIJN
- GEBIED
- argument
- dit artikel
- artikelen
- AS
- geassocieerd
- Vereniging
- At
- Australiรซ
- Australisch
- webmaster.
- Beschikbaar
- AWS
- baseren
- gebaseerde
- BE
- Beach
- Balk
- achter
- wezen
- onder
- Betere
- tussen
- miljarden
- Blok
- lichaam
- pin
- zowel
- ingebouwd
- maar
- by
- Dit betekent dat we onszelf en onze geliefden praktisch vergiftigen.
- oproepen
- CAN
- kan niet
- mogelijkheden
- in staat
- Inhoud
- hoofdstad
- geval
- centrum
- verandering
- keuze
- Kies
- koos
- uitgekozen
- Plaats
- klasse
- klassen
- classificatie
- duidelijk
- klant
- Kust
- code
- komt
- Gemeen
- vergelijken
- compleet
- voltooiing
- samengesteld
- begrijpen
- conferenties
- Configuratie
- troosten
- vormen
- Containers
- bevat
- content
- verband
- doorlopend
- doorlopend
- gemakkelijk
- komt overeen
- kon
- Koppel
- en je merk te creรซren
- aangemaakt
- Wij creรซren
- het aanmaken
- Actueel
- gewoonte
- klant
- Klanten
- aangepaste
- gegevens
- databanken
- datasets
- Standaard
- tonen
- gedemonstreerd
- Afhankelijk
- implementeren
- ingezet
- het inzetten
- inzet
- beschrijving
- Opsporing
- Bepalen
- ontwikkelen
- het ontwikkelen van
- ontwikkelt
- apparaat
- systemen
- verschil
- anders
- direct
- Display
- diversen
- do
- havenarbeider
- document
- documenten
- doet
- Nee
- dominant
- Dont
- rit
- gedurende
- dynamisch
- E & T
- elk
- Vroeger
- oosten
- effectief
- beide
- geeft je de mogelijkheid
- anders
- einde
- Endpoint
- Geheel
- entiteiten
- entiteit
- tijdperk
- tijdperken
- vooral
- evaluatie
- Zelfs
- onderzoeken
- voorbeeld
- voorbeelden
- uitvoeren
- uitvoering
- verwachten
- ervaring
- uitleggen
- blootgestelde
- strekt
- uitbreiding
- uitgebreid
- extract
- uiterst
- Gezicht
- vergemakkelijken
- ver
- Mode
- Kenmerk
- Voordelen
- weinig
- Velden
- Dien in
- Bestanden
- Tot slot
- VIND DE PLEK DIE PERFECT VOOR JOU IS
- einde
- Voornaam*
- volgend
- volgt
- Voor
- formulier
- formeel
- formaat
- gevonden
- Foundation
- Vierde
- Achtergrond
- vaak
- vriendelijk
- oppompen van
- functies
- verder
- verzamelen
- Algemeen
- voortbrengen
- gegenereerde
- het genereren van
- generatie
- generatief
- generatieve AI
- krijgen
- GitHub
- gegeven
- doel
- goed
- grafieken
- groot
- meer
- Hard
- harde schijf
- Hebben
- he
- helpt
- hoger
- Hills
- zijn
- HOURS
- Hoe
- How To
- HTML
- http
- HTTPS
- KnuffelenGezicht
- menselijk
- Honderden
- Hybride
- i
- ID
- identiek
- identificeren
- ids
- if
- Illinois
- beeld
- importeren
- verbeteren
- verbeterd
- in
- omvatten
- Inclusief
- Laat uw omzet
- in toenemende mate
- onafhankelijk
- info
- informatie
- leerzaam
- eerste
- invoer
- ingangen
- inzichten
- installeren
- installeren
- instantie
- geรฏnteresseerd
- belangen
- Introductie
- IT
- HAAR
- Jobomschrijving:
- Vacatures
- jpg
- json
- Houden
- sleutel
- blijven
- bekend
- Labs
- taal
- Talen
- Groot
- grootste
- lancering
- LEARN
- leren
- minst
- Lengte
- Niveau
- Life
- als
- Lijn
- lijnen
- Lijst
- LLM
- plaatselijk
- gelegen
- plaats
- verheven
- lang
- langdurig
- uit
- houdt
- machine
- machine learning
- manager
- veel
- gemarkeerd
- max
- Mei..
- zinvolle
- vergadering
- vermeldt
- Menu
- Metriek
- minuten
- vermist
- ML
- model
- modellen
- monitor
- meer
- meest
- MOUNT
- filmpje
- veel
- Dan moet je
- naam
- namelijk
- Naturel
- Natural Language Processing
- Navigatie
- noodzakelijk
- Noodzaak
- nodig
- behoeften
- negatief
- netwerken
- Neutraal
- New
- nieuwe producten
- volgende
- nlp
- noorden
- notitieboekje
- nu
- aantal
- doelstellingen
- verkrijgen
- of
- on
- EEN
- Slechts
- open
- or
- origineel
- Overige
- onze
- uitgang
- over
- override
- het te bezitten.
- eigenaren
- Paketten
- paren
- brood
- papieren
- parameters
- deel
- bijzonder
- vooral
- passeren
- pad
- Mensen
- Uitvoeren
- prestatie
- periode
- volharding
- zinnen
- Plato
- Plato gegevensintelligentie
- PlatoData
- aannemelijk
- punt
- bevolking
- positief
- Post
- energie
- krachtige
- voorspellen
- het voorspellen van
- predictor
- die eerder
- primair
- Principal
- het drukken
- problemen
- verwerking
- Producten
- Profiel
- Voortgang
- bewezen
- zorgen voor
- mits
- biedt
- publiek
- gepubliceerde
- Python
- kwaliteit
- queries
- vraag
- Contact
- snel
- willekeurige
- reeks
- Rauw
- klaar
- real-time
- ontvangen
- recent
- erkenning
- herkennen
- herkennen
- adviseren
- aanbevolen
- met betrekking tot
- regex
- regio
- verwant
- uitgebracht
- relevante
- vertrouwen
- niet vergeten
- bewaarplaats
- vereisen
- nodig
- vereist
- onderzoek
- onderzoeker
- bewoners
- Resources
- antwoord
- reacties
- beperken
- Resultaten
- terugkeer
- Retourneren
- beoordelen
- roodborstje
- Rol
- lopen
- lopend
- s
- sagemaker
- dezelfde
- aftasten
- Wetenschapper
- Ontdek
- Tweede
- sectie
- veiligheid
- zien
- selectie
- senior
- zin
- sentiment
- -Series
- service
- Diensten
- Sessie
- reeks
- Sets
- setup
- verscheidene
- Bermuda's
- moet
- vertoonde
- Shows
- Eenvoudig
- Maat
- maten
- Klein
- Momentopname
- So
- Social
- Sociaal netwerken
- sommige
- bron
- Zuiden
- specifiek
- spleet
- stanford
- sterk
- begin
- gestart
- Land
- statistisch
- Status
- Stap voor
- Stappen
- Still
- mediaopslag
- shop
- structuur
- gestructureerde
- studio
- Prachtige
- dergelijk
- ondersteuning
- ondersteunde
- nabijgelegen
- system
- Systems
- Nemen
- doelwit
- Taak
- taken
- sjabloon
- proef
- neem contact
- dat
- De
- De omgeving
- De hoofdstad
- de informatie
- De Bron
- De Staat
- Het Westen
- de wereld
- hun
- Ze
- harte
- daarin
- Deze
- ze
- dit
- die
- drie
- Door
- niet de tijd of
- Tijdreeksen
- naar
- tokens
- top
- onderwerpen
- spoor
- traditioneel
- Trainen
- getraind
- Trainingen
- Triljoen
- waar
- twee
- type dan:
- types
- ui
- begrip
- universiteit-
- updates
- geรผpload
- .
- use case
- gebruikt
- Gebruiker
- gebruik
- utility
- bevestiging
- waarde
- Values
- variรซteit
- versie
- vincent
- zichtbaar
- volume
- volumes
- W
- willen
- was
- Manier..
- we
- web
- webservices
- GOED
- West
- Wat
- Wat is
- wanneer
- of
- welke
- en
- WIE
- breed
- Grote range
- bredere
- Breedte
- Wikipedia
- wil
- Met
- binnen
- Won
- Woord
- werkte
- werkzaam
- wereld
- zou
- You
- Your
- zephyrnet