Inteligența artificială generativă se află în mijlocul unei perioade de creștere uimitoare. Modelele de fundație din ce în ce mai capabile sunt lansate în mod continuu, modelele de limbaj mari (LLM) fiind una dintre cele mai vizibile clase de modele. LLM-urile sunt modele compuse din miliarde de parametri antrenați pe corpuri extinse de text, până la sute de miliarde sau chiar un trilion de jetoane. Aceste modele s-au dovedit extrem de eficiente pentru o gamă largă de sarcini bazate pe text, de la răspunsul la întrebări până la analiza sentimentelor.
Puterea LLM-urilor vine din capacitatea lor de a învăța și de a generaliza din date extinse și diverse de formare. Pregătirea inițială a acestor modele se realizează cu o varietate de obiective, supravegheate, nesupravegheate sau hibride. Completarea sau imputarea textului este unul dintre cele mai frecvente obiective nesupravegheate: având în vedere o bucată de text, modelul învață să prezică cu precizie ceea ce urmează (de exemplu, să prezică următoarea propoziție). Modelele pot fi, de asemenea, instruite în mod supravegheat, folosind date etichetate pentru a îndeplini un set de sarcini (de exemplu, această recenzie a filmului este pozitivă, negativă sau neutră). Indiferent dacă modelul este antrenat pentru completarea textului sau pentru o altă sarcină, deseori nu este sarcina pentru care clienții doresc să folosească modelul.
Pentru a îmbunătăți performanța unui LLM pre-instruit pe o anumită sarcină, putem ajusta modelul folosind exemple ale sarcinii țintă într-un proces cunoscut sub numele de reglajul fin al instrucțiunii. Reglarea fină a instrucțiunilor folosește un set de exemple etichetate sub formă de perechi {prompt, response} pentru a antrena în continuare modelul pre-antrenat în a prezice în mod adecvat răspunsul dat prompt. Acest proces modifică ponderile modelului.
Această postare descrie cum să efectuați reglarea fină a instrucțiunilor unui LLM, și anume FLAN T5 XL, folosind Amazon SageMaker Jumpstart. Demonstrăm cum să realizați acest lucru folosind atât interfața de utilizare Jumpstart, cât și un notebook în Amazon SageMaker Studio. Puteți găsi caiet de însoțire în amazon-sagemaker-exemple Depozitul GitHub.
Prezentare generală a soluțiilor
Sarcina țintă din această postare este de a returna întrebări care au legătură cu textul, dar care nu pot primi răspuns pe baza informațiilor pe care le conține, având în vedere o bucată de text în prompt. Aceasta este o sarcină utilă pentru a identifica informațiile lipsă dintr-o descriere sau pentru a identifica dacă o interogare are nevoie de mai multe informații pentru a primi răspuns.
Modelele FLAN T5 sunt pregătite cu instrucțiuni pentru o gamă largă de sarcini pentru a crește performanța zero-shot a acestor modele în multe sarcini comune[1]. Reglarea fină a instrucțiunilor suplimentare pentru o anumită sarcină a clientului poate crește și mai mult precizia acestor modele, mai ales dacă sarcina țintă nu a fost folosită anterior pentru a antrena un model FLAN T5, așa cum este cazul sarcinii noastre.
În sarcina noastră exemplu, suntem interesați să generăm întrebări relevante, dar fără răspuns. În acest scop, folosim un subset al versiunii 2 a setului de date Stanford Question Answering (SQuAD2.0)[2] pentru a regla fin modelul. Acest set de date conține întrebări puse de adnotatorii umani pe un set de articole Wikipedia. Pe lângă întrebările cu răspunsuri, SQuAD2.0 conține aproximativ 50,000 de întrebări fără răspuns. Astfel de întrebări sunt plauzibile, dar nu pot primi răspuns direct din conținutul articolelor. Folosim doar întrebările fără răspuns. Datele noastre sunt structurate ca un fișier JSON Lines, fiecare linie conținând un context și o întrebare.
Cerințe preliminare
Pentru a începe, tot ce aveți nevoie este un cont AWS în care puteți utiliza Studio. Va trebui să creați un profil de utilizator pentru Studio dacă nu aveți deja unul.
Reglați fin FLAN-T5 cu Jumpstart UI
Pentru a regla fin modelul cu Jumpstart UI, parcurgeți următorii pași:
- Pe consola SageMaker, deschideți Studio.
- În SageMaker Jumpstart în panoul de navigare, alegeți Modele, caiete, solutii.
Veți vedea o listă de modele de fundație, inclusiv FLAN T5 XL, care este marcat ca reglabil fin.
- Alege Vezi modelul.
- În Sursă de date, puteți furniza calea către datele dvs. de antrenament. Sursa datelor utilizate în această postare este furnizată implicit.
- Puteți păstra valoarea implicită pentru configurația de implementare (inclusiv tipul instanței), securitatea și hiperparametrii, dar ar trebui să creșteți numărul de epoci la cel puțin trei pentru a obține rezultate bune.
- Alege Tren pentru a antrena modelul.
Puteți urmări starea jobului de formare în UI.
- Când antrenamentul este complet (după aproximativ 53 de minute în cazul nostru), alegeți Lansa pentru a implementa modelul reglat fin.
După ce punctul final este creat (câteva minute), puteți deschide un blocnotes și puteți începe să utilizați modelul reglat fin.
Reglați fin FLAN-T5 folosind un notebook Python
Exemplul nostru de notebook arată cum să utilizați Jumpstart și SageMaker pentru a regla fin și a implementa un model FLAN T5 XL. Poate fi rulat în Studio sau local.
În această secțiune, vom parcurge mai întâi unele configurații generale. Apoi reglați fin modelul folosind seturile de date SQuADv2. Apoi, implementați versiunea pre-antrenată a modelului în spatele unui punct final SageMaker și faceți același lucru cu modelul reglat fin. În cele din urmă, puteți interoga punctele finale și puteți compara calitatea rezultatelor modelului pre-antrenat și reglat fin. Veți descoperi că rezultatul modelului reglat fin este de o calitate mult mai bună.
Configurați cerințele preliminare
Începeți prin instalarea și actualizarea pachetelor necesare. Reporniți nucleul după ce rulați următorul cod:
Apoi, obțineți rolul de execuție asociat cu instanța curentă de notebook:
Puteți defini un meniu derulant convenabil care va enumera dimensiunile modelului disponibile pentru reglare fină:
Jumpstart preia automat tipurile de instanțe de instruire și inferență adecvate pentru modelul pe care l-ați ales:
Acum sunteți gata să începeți reglarea fină.
Reantrenați modelul pe setul de date de reglare fină
După finalizarea instalării, parcurgeți următorii pași:
Utilizați următorul cod pentru a prelua URI-ul pentru artefactele necesare:
Datele de antrenament se află într-un spațiu public Serviciul Amazon de stocare simplă Găleată (Amazon S3)
Utilizați următorul cod pentru a indica locația datelor și configurați locația de ieșire într-o găleată din contul dvs.:
Datele originale nu sunt într-un format care să corespundă sarcinii pentru care reglați fin modelul, astfel încât să îl puteți reformata:
Acum puteți defini câțiva hiperparametri pentru antrenament:
Acum sunteți gata să lansați jobul de formare:
În funcție de dimensiunea datelor de reglare fină și a modelului ales, reglarea fină poate dura până la câteva ore.
Puteți monitoriza valorile de performanță, cum ar fi formarea și pierderea de validare folosind Amazon CloudWatch în timpul antrenamentului. În mod convenabil, puteți prelua și cel mai recent instantaneu al valorilor rulând următorul cod:
Când antrenamentul este complet, aveți un model ajustat la model_uri
. Să-l folosim!
Puteți crea două puncte finale de inferență: unul pentru modelul original pre-antrenat și unul pentru modelul reglat fin. Acest lucru vă permite să comparați rezultatul ambelor versiuni ale modelului. În pasul următor, implementați un punct final de inferență pentru modelul pre-antrenat. Apoi implementați un punct final pentru modelul dvs. reglat fin.
Implementați modelul pre-antrenat
Să începem prin a implementa modelul pre-antrenat pentru a prelua URI-ul imaginii Docker de inferență. Aceasta este imaginea de bază a containerului Hugging Face. Utilizați următorul cod:
Acum puteți crea punctul final și implementa modelul pre-antrenat. Rețineți că trebuie să treceți clasa Predictor atunci când implementați modelul prin clasa Model pentru a putea rula inferența prin API-ul SageMaker. Vezi următorul cod:
Crearea punctului final și implementarea modelului pot dura câteva minute, apoi punctul final este gata să primească apeluri de inferență.
Implementați modelul reglat fin
Să implementăm modelul ajustat la propriul punct final. Procesul este aproape identic cu cel pe care l-am folosit mai devreme pentru modelul pre-antrenat. Singura diferență este că folosim numele și URI-ul modelului ajustate:
Când acest proces este finalizat, atât modelele pre-antrenate, cât și cele reglate fin sunt implementate în spatele propriilor puncte finale. Să comparăm rezultatele lor.
Generați rezultate și comparați rezultatele
Definiți câteva funcții utilitare pentru a interoga punctul final și a analiza răspunsul:
În următorul fragment de cod, definim promptul și datele de testare. Descrie sarcina noastră țintă, care este de a genera întrebări care sunt legate de textul furnizat, dar care nu pot primi răspuns pe baza acestuia.
Datele de testare constau din trei paragrafe diferite, unul despre orașul australian Adelaide din primele două paragrafe ale paginii Wikipedia, unul referitor la Magazin Amazon Elastic Block (Amazon EBS) de la Documentația Amazon EBS, și unul dintre Amazon Comprehend de la Documentația Amazon Comprehend. Ne așteptăm ca modelul să identifice întrebări legate de aceste paragrafe, dar la care nu se poate răspunde cu informațiile furnizate în acestea.
Acum puteți testa punctele finale folosind articolele exemplu
Date de testare: Adelaide
Folosim următorul context:
Răspunsul modelului pre-antrenat este următorul:
Răspunsurile ajustate ale modelului sunt după cum urmează:
Date de testare: Amazon EBS
Folosim următorul context:
Răspunsurile modelului pre-antrenat sunt după cum urmează:
Răspunsurile ajustate ale modelului sunt după cum urmează:
Date de testare: Amazon Comprehend
Folosim următorul context:
Răspunsurile modelului pre-antrenat sunt după cum urmează:
Răspunsurile ajustate ale modelului sunt după cum urmează:
Diferența de calitate a ieșirii dintre modelul pre-antrenat și modelul reglat fin este puternică. Întrebările oferite de modelul ajustat ating o gamă mai largă de subiecte. Sunt întrebări semnificative în mod sistematic, ceea ce nu este întotdeauna cazul pentru modelul pre-antrenat, așa cum este ilustrat cu exemplul Amazon EBS.
Deși aceasta nu constituie o evaluare formală și sistematică, este clar că procesul de reglare fină a îmbunătățit calitatea răspunsurilor modelului la această sarcină.
A curăța
În cele din urmă, nu uitați să curățați și să ștergeți punctele finale:
Concluzie
În această postare, am arătat cum să utilizați reglarea fină a instrucțiunilor cu modelele FLAN T5 utilizând interfața de utilizare Jumpstart sau un notebook Jupyter care rulează în Studio. Am furnizat cod care explică cum să reantrenați modelul folosind date pentru sarcina țintă și să implementăm modelul reglat fin în spatele unui punct final. Sarcina țintă din această postare a fost să identifice întrebările care se referă la o bucată de text furnizată în intrare, dar la care nu se poate răspunde pe baza informațiilor furnizate în textul respectiv. Am demonstrat că un model reglat fin pentru această sarcină specifică oferă rezultate mai bune decât un model pre-antrenat.
Acum că știți cum să reglați fin un model cu Jumpstart, puteți crea modele puternice personalizate pentru aplicația dvs. Adunați câteva date pentru cazul dvs. de utilizare, le-ați încărcat pe Amazon S3 și utilizați fie interfața de utilizare Studio, fie notebook-ul pentru a regla un model FLAN T5!
Referinte
[1] Chung, Hyung Won, et al. „Scalarea modelelor de limbaj ajustate pentru instrucțiuni.” arXiv preprint arXiv:2210.11416 (2022).
[2] Rajpurkar, Pranav, Robin Jia și Percy Liang. „Știți ce nu știți: întrebări fără răspuns pentru SQuAD.” Actele celei de-a 56-a reuniuni anuale a Asociației pentru Lingvistică Computațională (Volumul 2: Lucrări scurte). 2018.
Despre autori
Laurent Callot este om de știință aplicat principal și manager la AWS AI Labs, care a lucrat la o varietate de probleme de învățare automată, de la modele fundamentale și AI generativă până la prognoză, detectarea anomaliilor, cauzalitate și operațiuni AI.
Andrei Kan este cercetător senior aplicat la AWS AI Labs, cu interese și experiență în diferite domenii ale învățării automate. Acestea includ cercetări asupra modelelor de fundație, precum și aplicații ML pentru grafice și serii de timp.
Dr. Ashish Khetan este un om de știință senior aplicat cu algoritmi încorporați Amazon SageMaker și ajută la dezvoltarea algoritmilor de învățare automată. Și-a luat doctoratul la Universitatea din Illinois Urbana Champaign. Este un cercetător activ în învățarea automată și inferența statistică și a publicat multe lucrări în conferințele NeurIPS, ICML, ICLR, JMLR, ACL și EMNLP.
Baris Kurt este un om de știință aplicat la AWS AI Labs. Interesele sale sunt în detectarea anomaliilor în serie de timp și modelele de fundare. Îi place să dezvolte sisteme ML ușor de utilizat.
Jonas Kübler este un om de știință aplicat la AWS AI Labs. El lucrează la modele de fundație cu scopul de a facilita aplicațiile specifice cazurilor de utilizare.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoAiStream. Web3 Data Intelligence. Cunoștințe amplificate. Accesați Aici.
- Mintând viitorul cu Adryenn Ashley. Accesați Aici.
- Cumpărați și vindeți acțiuni în companii PRE-IPO cu PREIPO®. Accesați Aici.
- Sursa: https://aws.amazon.com/blogs/machine-learning/instruction-fine-tuning-for-flan-t5-xl-with-amazon-sagemaker-jumpstart/
- :are
- :este
- :nu
- $UP
- 000
- 1
- 10
- 100
- 11
- 12
- 13
- 17
- 1M
- 20
- 2018
- 2022
- 22
- 40
- 50
- 60
- 7
- 8
- 80
- 9
- a
- Capabil
- Despre Noi
- Accept
- acces
- accesibil
- realiza
- Cont
- precizie
- precis
- activ
- plus
- Suplimentar
- adecvat
- După
- AI
- AL
- algoritmi
- TOATE
- permite
- deja
- de asemenea
- mereu
- Amazon
- Amazon Comprehend
- Amazon SageMaker
- Amazon SageMaker JumpStart
- Amazon Web Services
- an
- analiză
- analiza
- și
- anual
- detectarea anomaliilor
- răspunsuri
- Orice
- api
- API-uri
- aplicație
- aplicatii
- aplicat
- adecvat
- SUNT
- ZONĂ
- argument
- articol
- bunuri
- AS
- asociate
- Asociație
- At
- Australia
- australian
- în mod automat
- disponibil
- AWS
- de bază
- bazat
- BE
- Plajă
- Grindă
- în spatele
- fiind
- de mai jos
- Mai bine
- între
- miliarde
- Bloca
- corp
- atât
- construit-in
- dar
- by
- denumit
- apeluri
- CAN
- nu poti
- capacități
- capabil
- Capacitate
- capital
- caz
- centru
- Schimbare
- alegere
- Alege
- a ales
- ales
- Oraș
- clasă
- clase
- clasificare
- clar
- client
- Coastă
- cod
- vine
- Comun
- comparaţie
- Completă
- completare
- compuse
- înţelege
- conferințe
- Configuraţie
- Consoleze
- constitui
- Recipient
- conține
- conţinut
- context
- continuu
- continuu
- Convenabil
- corespunde
- ar putea
- Cuplu
- crea
- a creat
- Crearea
- creaţie
- Curent
- personalizat
- client
- clienţii care
- personalizate
- de date
- baze de date
- seturi de date
- Mod implicit
- demonstra
- demonstrat
- În funcție
- implementa
- dislocate
- Implementarea
- desfășurarea
- descriere
- Detectare
- Determina
- dezvolta
- în curs de dezvoltare
- dezvoltă
- dispozitiv
- Dispozitive
- diferenţă
- diferit
- direct
- Afişa
- diferit
- do
- Docher
- document
- documente
- face
- Nu
- dominant
- Dont
- conduce
- în timpul
- dinamic
- E&T
- fiecare
- Mai devreme
- Est
- Eficace
- oricare
- element
- altfel
- capăt
- Punct final
- Întreg
- entități
- entitate
- epocă
- epoci
- mai ales
- evaluare
- Chiar
- examina
- exemplu
- exemple
- a executa
- execuție
- aștepta
- experienţă
- explicând
- expus
- extinde
- extensie
- extensiv
- extrage
- extrem
- Față
- facilita
- departe
- Modă
- Caracteristică
- DESCRIERE
- puțini
- Domenii
- Fișier
- Fişiere
- În cele din urmă
- Găsi
- capăt
- First
- următor
- urmează
- Pentru
- formă
- formal
- format
- găsit
- Fundație
- Al patrulea
- Cadru
- frecvent
- prietenos
- din
- funcții
- mai mult
- aduna
- General
- genera
- generată
- generator
- generaţie
- generativ
- AI generativă
- obține
- GitHub
- dat
- scop
- bine
- grafice
- mare
- mai mare
- Creștere
- Greu
- unitate hard disk
- Avea
- he
- ajută
- superior
- Hills
- lui
- ORE
- Cum
- Cum Pentru a
- HTML
- http
- HTTPS
- Față îmbrățișată
- uman
- sute
- Hibrid
- i
- ID
- identic
- identifica
- ID-uri
- if
- Illinois
- imagine
- import
- îmbunătăţi
- îmbunătățit
- in
- include
- Inclusiv
- Crește
- tot mai mult
- independent
- info
- informații
- informativ
- inițială
- intrare
- intrări
- perspective
- instala
- Instalarea
- instanță
- interesat
- interese
- Introducere
- IT
- ESTE
- Loc de munca
- Locuri de munca
- jpg
- JSON
- A pastra
- Cheie
- Cunoaște
- cunoscut
- Labs
- limbă
- Limbă
- mare
- cea mai mare
- lansa
- AFLAȚI
- învăţare
- cel mai puțin
- Lungime
- Nivel
- Viaţă
- ca
- Linie
- linii
- Listă
- LLM
- la nivel local
- situat
- locaţie
- înalt
- Lung
- pe termen lung
- de pe
- iubeste
- maşină
- masina de învățare
- manager
- multe
- marcat
- max
- Mai..
- semnificativ
- Reuniunea
- menționează
- Meniu
- Metrici
- minute
- dispărut
- ML
- model
- Modele
- monitor
- mai mult
- cele mai multe
- MOUNT
- film
- mult
- trebuie sa
- nume
- și anume
- Natural
- Procesarea limbajului natural
- Navigare
- necesar
- Nevoie
- necesar
- nevoilor
- negativ
- rețele
- Neutru
- Nou
- produse noi
- următor
- nlp
- North
- caiet
- acum
- număr
- Obiectivele
- obține
- of
- on
- ONE
- afară
- deschide
- or
- original
- Altele
- al nostru
- producție
- peste
- trece peste
- propriu
- Proprietarii
- ofertele
- perechi
- pâine
- lucrări
- parametrii
- parte
- special
- în special
- trece
- cale
- oameni
- Efectua
- performanță
- perioadă
- persistență
- Expresii
- Plato
- Informații despre date Platon
- PlatoData
- plauzibil
- Punct
- populație
- pozitiv
- Post
- putere
- puternic
- prezice
- estimarea
- Predictor
- în prealabil
- primar
- Principal
- tipărire
- probleme
- proces
- prelucrare
- Produse
- Profil
- Progres
- dovedit
- furniza
- prevăzut
- furnizează
- public
- publicat
- Piton
- calitate
- interogări
- întrebare
- Întrebări
- repede
- aleator
- gamă
- Crud
- gata
- în timp real
- a primi
- recent
- recunoaştere
- recunoaște
- recunoscând
- recomanda
- recomandat
- cu privire la
- regex
- regiune
- legate de
- eliberat
- se bazează
- minte
- depozit
- necesita
- necesar
- Necesită
- cercetare
- cercetător
- rezidenți
- Resurse
- răspuns
- răspunsuri
- restrânge
- REZULTATE
- reveni
- Returnează
- revizuiască
- prihor
- Rol
- Alerga
- funcţionare
- s
- sagemaker
- acelaşi
- scanare
- Om de stiinta
- Caută
- Al doilea
- Secțiune
- securitate
- vedea
- selecţie
- senior
- propoziție
- sentiment
- serie
- serviciu
- Servicii
- sesiune
- set
- Seturi
- configurarea
- câteva
- Pantaloni scurți
- să
- a arătat
- Emisiuni
- simplu
- Mărimea
- dimensiuni
- mic
- Instantaneu
- So
- Social
- Rețele sociale
- unele
- Sursă
- Sud
- specific
- împărţi
- stanford
- puternic
- Începe
- început
- Stat
- statistic
- Stare
- Pas
- paşi
- Încă
- depozitare
- stoca
- structura
- structurat
- studio
- Uluitor
- astfel de
- a sustine
- Suportat
- Înconjurător
- sistem
- sisteme
- Lua
- Ţintă
- Sarcină
- sarcini
- șablon
- test
- decât
- acea
- Zona
- Capitala
- informațiile
- Sursa
- Statul
- Vestul
- lumea
- lor
- Lor
- apoi
- acolo
- Acestea
- ei
- acest
- aceste
- trei
- Prin
- timp
- Seria de timp
- la
- indicativele
- top
- subiecte
- atingeţi
- urmări
- tradiţional
- Tren
- dresat
- Pregătire
- Trilion
- adevărat
- Două
- tip
- Tipuri
- ui
- înţelegere
- universitate
- actualizări
- încărcat
- utilizare
- carcasa de utilizare
- utilizat
- Utilizator
- folosind
- utilitate
- validare
- valoare
- Valori
- varietate
- versiune
- vincent
- vizibil
- volum
- volume
- W
- vrea
- a fost
- Cale..
- we
- web
- servicii web
- BINE
- Vest
- Ce
- Ce este
- cand
- dacă
- care
- în timp ce
- OMS
- larg
- Gamă largă
- mai larg
- lățime
- Wikipedia
- voi
- cu
- în
- Castigat
- Cuvânt
- a lucrat
- de lucru
- lume
- ar
- Tu
- Ta
- zephyrnet