Procesarea limbajului natural (NLP) este domeniul învățării automate (ML) care se preocupă de a oferi computerelor capacitatea de a înțelege textul și cuvintele rostite în același mod în care pot ființe umane. Recent, arhitecturi de ultimă generație, cum ar fi arhitectura transformatorului sunt utilizate pentru a obține performanțe aproape umane în sarcinile NLP din aval, cum ar fi rezumarea textului, clasificarea textului, recunoașterea entităților și multe altele.
Modelele lingvistice mari (LLM) sunt modele bazate pe transformator instruite pe o cantitate mare de text neetichetat cu sute de milioane (OARET) la peste un trilion de parametri (MiCS), și a căror dimensiune face imposibilă antrenamentul cu un singur GPU. Datorită complexității lor inerente, formarea unui LLM de la zero este o sarcină foarte provocatoare pe care foarte puține organizații și-o pot permite. O practică obișnuită pentru sarcinile din aval NLP este să luați un LLM pre-instruit și să îl reglați fin. Pentru mai multe informații despre reglarea fină, consultați Adaptarea domeniului Reglarea fină a modelelor de fundație în Amazon SageMaker JumpStart pe date financiare și Ajustați modelele de limbaj transformator pentru diversitatea lingvistică cu Hugging Face pe Amazon SageMaker.
Învățarea zero-shot în NLP permite a LLM pre-format pentru a genera răspunsuri la sarcini pentru care nu a fost instruit în mod explicit (chiar fără reglaj fin). Vorbind în special despre clasificarea textului, clasificarea textului zero-shot este o sarcină în procesarea limbajului natural în care un model NLP este folosit pentru a clasifica textul din clase nevăzute, spre deosebire de clasificare supravegheată, unde modelele NLP pot clasifica doar texte care aparțin claselor din datele de antrenament.
Am lansat recent suport pentru modelul de clasificare zero-shot în Amazon SageMaker JumpStart. SageMaker JumpStart este centrul ML al Amazon SageMaker care oferă acces la modele de fundație (FM), LLM-uri, algoritmi încorporați și șabloane de soluții pentru a vă ajuta să începeți rapid cu ML. În această postare, arătăm cum puteți efectua clasificarea zero-shot folosind modele pre-antrenate în SageMaker Jumpstart. Veți învăța cum să utilizați SageMaker Jumpstart UI și SageMaker Python SDK pentru a implementa soluția și a executa inferențe folosind modelele disponibile.
Învățare zero-shot
Clasificarea zero-shot este o paradigmă în care un model poate clasifica exemple noi, nevăzute, care aparțin unor clase care nu au fost prezente în datele de antrenament. De exemplu, un model de limbă care a fost instruit pentru a înțelege limbajul uman poate fi folosit pentru a clasifica mesajele tweet de rezoluții de Anul Nou pe mai multe clase, cum ar fi career
, health
, și finance
, fără ca modelul lingvistic să fie antrenat în mod explicit pe sarcina de clasificare a textului. Acest lucru este în contrast cu reglarea fină a modelului, deoarece aceasta din urmă implică reantrenarea modelului (prin transfer de învățare), în timp ce învățarea zero-shot nu necesită pregătire suplimentară.
Următoarea diagramă ilustrează diferențele dintre învățarea prin transfer (stânga) și învățarea zero-shot (dreapta).
Yin şi colab. a propus un cadru pentru crearea clasificatorilor zero-shot folosind inferența limbajului natural (NLI). Cadrul funcționează prin prezentarea secvenței care urmează să fie clasificată ca premisă NLI și construiește o ipoteză din fiecare etichetă candidată. De exemplu, dacă vrem să evaluăm dacă o secvență aparține clasei politics
, am putea construi o ipoteză „Acest text este despre politică”. Probabilitățile de implicare și contradicție sunt apoi convertite în probabilități de etichetă. Ca o revizuire rapidă, NLI ia în considerare două propoziții: o premisă și o ipoteză. Sarcina este de a determina dacă ipoteza este adevărată (implicare) sau falsă (contradicție) având în vedere premisa. Următorul tabel oferă câteva exemple.
Premisă | Etichetă | Ipoteză |
Un bărbat inspectează uniforma unei figuri într-o țară din Asia de Est. | Contradicţie | Bărbatul doarme. |
Un bărbat mai în vârstă și mai tânăr zâmbind. | Neutru | Doi bărbați zâmbesc și râd de pisicile care se joacă pe podea. |
Un joc de fotbal în care joacă mai mulți bărbați. | legătură | Unii bărbați fac un sport. |
Prezentare generală a soluțiilor
În această postare, discutăm despre următoarele:
- Cum să implementați modele de clasificare a textului zero-shot pre-antrenate utilizând interfața de utilizare SageMaker JumpStart și să rulați inferențe asupra modelului implementat folosind date text scurte
- Cum să utilizați SDK-ul SageMaker Python pentru a accesa modelele de clasificare a textului zero-shot pre-antrenate în SageMaker JumpStart și să utilizați scriptul de inferență pentru a implementa modelul într-un punct final SageMaker pentru un caz de utilizare de clasificare a textului în timp real
- Cum să utilizați SDK-ul SageMaker Python pentru a accesa modele de clasificare a textului zero-shot pre-antrenate și să utilizați transformarea lotului SageMaker pentru un caz de utilizare pentru clasificarea textului în lot
SageMaker JumpStart oferă reglaj fin și implementare cu un singur clic pentru o mare varietate de modele pre-antrenate în cadrul sarcinilor ML populare, precum și o selecție de soluții end-to-end care rezolvă problemele comune de afaceri. Aceste caracteristici elimină sarcinile grele din fiecare pas al procesului ML, simplificând dezvoltarea modelelor de înaltă calitate și reducând timpul până la implementare. The API-uri JumpStart vă permit să implementați și să reglați în mod programatic o selecție vastă de modele pre-antrenate pe propriile seturi de date.
Hub-ul de modele JumpStart oferă acces la un număr mare de modele NLP care permit învățarea prin transfer și reglarea fină a seturilor de date personalizate. În momentul scrierii acestui articol, centrul de modele JumpStart conține peste 300 de modele text dintr-o varietate de modele populare, cum ar fi Stable Diffusion, Flan T5, Alexa TM, Bloom și multe altele.
Rețineți că, urmând pașii din această secțiune, veți implementa infrastructura în contul dvs. AWS, care poate genera costuri.
Implementați un model autonom de clasificare a textului zero-shot
În această secțiune, demonstrăm cum să implementăm un model de clasificare zero-shot folosind SageMaker JumpStart. Puteți accesa modele pre-antrenate prin pagina de destinație JumpStart în Amazon SageMaker Studio. Parcurgeți următorii pași:
- În SageMaker Studio, deschideți pagina de destinație JumpStart.
A se referi la Deschideți și utilizați JumpStart pentru mai multe detalii despre cum să navigați la SageMaker JumpStart. - În Modele de text carusel, localizați cardul de model „Clasificarea textului Zero-Shot”.
- Alege Vezi modelul pentru a accesa
facebook-bart-large-mnli
model.
Alternativ, puteți căuta modelul de clasificare zero-shot în bara de căutare și puteți ajunge la model în SageMaker JumpStart. - Specificați o configurație de implementare, tipul instanței de găzduire SageMaker, numele punctului final, Serviciul Amazon de stocare simplă numele compartimentului (Amazon S3) și alți parametri necesari.
- Opțional, puteți specifica configurații de securitate precum Gestionarea identității și accesului AWS (IAM), setări VPC și AWS Service Management Service chei de criptare (AWS KMS).
- Alege Lansa pentru a crea un punct final SageMaker.
Acest pas durează câteva minute. Când este complet, puteți rula inferențe împotriva punctului final SageMaker care găzduiește modelul de clasificare zero-shot.
În următorul videoclip, arătăm o prezentare a pașilor din această secțiune.
Utilizați JumpStart în mod programatic cu SDK-ul SageMaker
În secțiunea SageMaker JumpStart din SageMaker Studio, sub Soluții de pornire rapidă, puteți găsi șabloane de soluții. Șabloanele de soluție SageMaker JumpStart sunt soluții end-to-end cu un singur clic pentru multe cazuri comune de utilizare ML. În momentul scrierii acestui articol, peste 20 de soluții sunt disponibile pentru mai multe cazuri de utilizare, cum ar fi prognoza cererii, detectarea fraudei și recomandări personalizate, pentru a numi câteva.
Soluția „Zero Shot Text Classification with Hugging Face” oferă o modalitate de a clasifica textul fără a fi nevoie să antrenezi un model pentru anumite etichete (clasificare zero-shot) prin utilizarea unui clasificator de text pre-antrenat. Modelul implicit de clasificare zero-shot pentru această soluție este facebook-bart-large-mnli model (BART). Pentru această soluție, folosim Setul de date Rezoluții de Anul Nou 2015 a clasifica rezoluţiile. Un subset al setului de date original care conține numai Resolution_Category
(eticheta adevărului de bază) și text
coloane este inclusă în activele soluției.
Datele de intrare includ șiruri de text, o listă de categorii dorite pentru clasificare și dacă clasificarea este multi-etichetă sau nu pentru inferență sincronă (în timp real). Pentru inferența asincronă (loc), oferim o listă de șiruri de text, lista de categorii pentru fiecare șir și dacă clasificarea este sau nu cu mai multe etichete într-un fișier text formatat cu linii JSON.
Rezultatul inferenței este un obiect JSON care arată ceva ca următoarea captură de ecran.
Avem textul original în sequence
câmp, etichetele utilizate pentru clasificarea textului în labels
câmp și probabilitatea atribuită fiecărei etichete (în aceeași ordine de apariție) în câmp scores
.
Pentru a implementa soluția Zero Shot Text Classification with Hugging Face, parcurgeți următorii pași:
- Pe pagina de destinație SageMaker JumpStart, alegeți Modele, caiete, solutii în panoul de navigare.
- În soluţii secțiune, pentru a alege Explorați toate soluțiile.
- Pe soluţii pagina, alegeți cardul de model Clasificare text Zero Shot cu Hugging Face.
- Examinați detaliile de implementare și, dacă sunteți de acord, alegeți Lansa.
Implementarea va furniza un punct final în timp real SageMaker pentru inferență în timp real și un compartiment S3 pentru stocarea rezultatelor transformării lotului.
Următoarea diagramă ilustrează arhitectura acestei metode.
Efectuați inferențe în timp real folosind un model de clasificare zero-shot
În această secțiune, analizăm modul de utilizare a SDK-ului Python pentru a rula clasificarea textului zero-shot (folosind oricare dintre modelele disponibile) în timp real, folosind un punct final SageMaker.
- Mai întâi, configurăm cererea de sarcină utilă de inferență la model. Acesta depinde de model, dar pentru modelul BART, intrarea este un obiect JSON cu următoarea structură:
- Rețineți că modelul BART nu este antrenat în mod explicit pe
candidate_labels
. Vom folosi tehnica de clasificare zero-shot pentru a clasifica secvența de text în clase nevăzute. Următorul cod este un exemplu de utilizare a textului din setul de date privind rezoluțiile de Anul Nou și din clasele definite: - Apoi, puteți invoca un punct final SageMaker cu sarcina utilă zero-shot. Punctul final SageMaker este implementat ca parte a soluției SageMaker JumpStart.
- Obiectul răspuns de inferență conține secvența originală, etichetele sortate după scor de la maxim la minim și scorurile pe etichetă:
Rulați o lucrare de transformare în loturi SageMaker folosind SDK-ul Python
Această secțiune descrie cum să rulați inferența transformării în lot cu clasificarea zero-shot facebook-bart-large-mnli
model folosind SageMaker Python SDK. Parcurgeți următorii pași:
- Formatați datele de intrare în format de linii JSON și încărcați fișierul pe Amazon S3.
Transformarea batch SageMaker va efectua inferențe asupra punctelor de date încărcate în fișierul S3. - Configurați artefactele de implementare a modelului cu următorii parametri:
- model_id - Utilizare
huggingface-zstc-facebook-bart-large-mnli
. - deploy_image_uri - Folosește
image_uris
Funcția Python SDK pentru a obține imaginea pre-construită SageMaker Docker pentrumodel_id
. Funcția returnează Registrul Amazon de containere elastice (Amazon ECR) URI. - deploy_source_uri – Folosește
script_uris
utilitar API pentru a prelua URI-ul S3 care conține scripturi pentru a rula inferența modelului pre-antrenat. Precizămscript_scope
asinference
. - model_uri - Utilizare
model_uri
pentru a obține artefactele modelului de la Amazon S3 pentru cele specificatemodel_id
.
- model_id - Utilizare
- Utilizare
HF_TASK
să definească sarcina pentru conducta de transformatoare Hugging Face șiHF_MODEL_ID
pentru a defini modelul utilizat pentru clasificarea textului:Pentru o listă completă de sarcini, consultați Conducte în documentația Hugging Face.
- Creați un obiect model Hugging Face pentru a fi implementat cu sarcina de transformare batch SageMaker:
- Creați o transformare pentru a rula un job batch:
- Porniți o lucrare de transformare în lot și utilizați datele S3 ca intrare:
Puteți monitoriza sarcina de procesare în lot pe consola SageMaker (alegeți Locuri de muncă de transformare în deducție în panoul de navigare). Când lucrarea este finalizată, puteți verifica rezultatul predicției modelului în fișierul S3 specificat în output_path
.
Pentru o listă cu toate modelele pre-antrenate disponibile în SageMaker JumpStart, consultați Algoritmi încorporați cu tabel model pre-antrenat. Utilizați cuvântul cheie „zstc” (prescurtare pentru clasificarea textului zero-shot) în bara de căutare pentru a localiza toate modelele capabile să facă clasificarea textului zero-shot.
A curăța
După ce ați terminat de rulat blocnotesul, asigurați-vă că ștergeți toate resursele create în proces pentru a vă asigura că costurile suportate de activele implementate în acest ghid sunt oprite. Codul de curățare a resurselor implementate este furnizat în caietele asociate cu soluția și modelul de clasificare a textului zero-shot.
Configurații de securitate implicite
Modelele SageMaker JumpStart sunt implementate folosind următoarele configurații de securitate implicite:
Pentru a afla mai multe despre subiectele legate de securitate SageMaker, consultați Configurați securitatea în Amazon SageMaker.
Concluzie
În această postare, v-am arătat cum să implementați un model de clasificare zero-shot folosind interfața de utilizare SageMaker JumpStart și să efectuați inferențe folosind punctul final implementat. Am folosit soluția de rezoluții de Anul Nou SageMaker JumpStart pentru a arăta cum puteți utiliza SDK-ul SageMaker Python pentru a construi o soluție end-to-end și a implementa aplicația de clasificare zero-shot. SageMaker JumpStart oferă acces la sute de modele și soluții pre-instruite pentru sarcini precum viziunea computerizată, procesarea limbajului natural, sisteme de recomandare și multe altele. Încercați singur soluția și spuneți-ne părerea dvs.
Despre autori
David Laredo este arhitect de prototipare la AWS Envision Engineering din LATAM, unde a contribuit la dezvoltarea mai multor prototipuri de învățare automată. Anterior, a lucrat ca inginer de învățare automată și a făcut învățare automată de peste 5 ani. Domeniile sale de interes sunt NLP, serii cronologice și ML end-to-end.
Vikram Elango este arhitect specializat în soluții AI/ML la Amazon Web Services, cu sediul în Virginia, SUA. Vikram îi ajută pe clienții din industria financiară și de asigurări cu design și conducere gândită să construiască și să implementeze aplicații de învățare automată la scară. În prezent, se concentrează pe procesarea limbajului natural, AI responsabil, optimizarea inferenței și scalarea ML în întreaga întreprindere. În timpul liber, îi place să călătorească, să facă drumeții, să gătească și să campeze împreună cu familia.
Dr. Vivek Madan este un om de știință aplicat în echipa Amazon SageMaker JumpStart. Și-a luat doctoratul la Universitatea din Illinois la Urbana-Champaign și a fost cercetător post-doctoral la Georgia Tech. Este un cercetător activ în învățarea automată și proiectarea algoritmilor și a publicat lucrări în cadrul conferințelor EMNLP, ICLR, COLT, FOCS și SODA.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoData.Network Vertical Generative Ai. Împuterniciți-vă. Accesați Aici.
- PlatoAiStream. Web3 Intelligence. Cunoștințe amplificate. Accesați Aici.
- PlatoESG. Automobile/VE-uri, carbon, CleanTech, Energie, Mediu inconjurator, Solar, Managementul deșeurilor. Accesați Aici.
- PlatoHealth. Biotehnologie și Inteligență pentru studii clinice. Accesați Aici.
- ChartPrime. Crește-ți jocul de tranzacționare cu ChartPrime. Accesați Aici.
- BlockOffsets. Modernizarea proprietății de compensare a mediului. Accesați Aici.
- Sursa: https://aws.amazon.com/blogs/machine-learning/zero-shot-text-classification-with-amazon-sagemaker-jumpstart/
- :are
- :este
- :nu
- :Unde
- $UP
- 1
- 10
- 100
- 12
- 16
- 17
- 20
- 22
- 30
- 7
- 8
- 9
- a
- capacitate
- Despre Noi
- mai sus
- acces
- Cont
- Obține
- peste
- activ
- Suplimentar
- împotriva
- AI
- AI / ML
- AL
- Alexa
- Algoritmul
- algoritmi
- TOATE
- permite
- permite
- Amazon
- Amazon SageMaker
- Amazon SageMaker JumpStart
- Amazon Web Services
- sumă
- an
- și
- Orice
- api
- aplicație
- aplicatii
- aplicat
- arhitectură
- SUNT
- domenii
- AS
- asiatic
- Bunuri
- alocate
- asociate
- At
- în mod automat
- disponibil
- AWS
- bar
- de bază
- bazat
- BE
- fost
- fiind
- aparține
- între
- Floare
- corp
- Manuale
- Mic dejun
- construi
- construit-in
- afaceri
- dar
- by
- CAN
- candidat
- capabil
- card
- Carieră
- carusel
- cazuri
- categorii
- Pisici
- provocare
- verifica
- Alege
- clasă
- clase
- clasificare
- clasificate
- Clasifica
- cod
- Coloane
- Comun
- Completă
- complexitate
- calculator
- Computer Vision
- Calculatoare
- îngrijorat
- conferințe
- Configuraţie
- consideră
- Consoleze
- construi
- Recipient
- conține
- contrast
- convertit
- Cheltuieli
- ar putea
- ţară
- Cuplu
- crea
- a creat
- Crearea
- În prezent
- personalizat
- clienţii care
- de date
- puncte de date
- seturi de date
- dedicat
- Mod implicit
- defini
- definit
- Cerere
- Prognoza cererii
- demonstra
- dependențe
- Dependent/ă
- implementa
- dislocate
- desfășurarea
- Amenajări
- dorit
- detalii
- Detectare
- Determina
- dezvolta
- Dezvoltare
- diferenţele
- difuziune
- discuta
- Diversitate
- Docher
- documentaţie
- Nu
- face
- făcut
- două
- E&T
- fiecare
- Est
- Educaţie
- permite
- criptare
- un capăt la altul
- Punct final
- inginer
- Inginerie
- asigura
- Afacere
- entitate
- imagina
- evalua
- Chiar
- exemplu
- exemple
- Față
- fals
- familie
- DESCRIERE
- puțini
- camp
- Figura
- Fișier
- finanţa
- financiar
- Găsi
- Podea
- concentrat
- următor
- Pentru
- format
- Fundație
- Cadru
- fraudă
- detectarea fraudei
- din
- funcţie
- joc
- genera
- Georgia
- obține
- GitHub
- dat
- Oferirea
- Teren
- Creștere
- ghida
- Manipularea
- Avea
- he
- Sănătate
- greu
- ridicare de greutati
- ajutor
- a ajutat
- ajută
- de înaltă calitate
- lui
- găzduire
- Gazdele
- Cum
- Cum Pentru a
- HTML
- http
- HTTPS
- Butuc
- uman
- umor
- sute
- sute de milioane
- ID
- Identitate
- if
- Illinois
- ilustrează
- imagine
- punerea în aplicare a
- import
- in
- inclus
- include
- industrie
- informații
- Infrastructură
- inerent
- intrare
- intrări
- instanță
- asigurare
- interes
- IT
- Loc de munca
- Locuri de munca
- jpg
- JSON
- Cheie
- chei
- Cunoaște
- Etichetă
- etichete
- aterizare
- limbă
- mare
- LATAM
- a lansat
- Conducere
- AFLAȚI
- învăţare
- stânga
- lăsa
- ridicare
- ca
- Linie
- linii
- Listă
- LLM
- încărcare
- Se pare
- maşină
- masina de învățare
- face
- FACE
- om
- administrare
- multe
- max
- Mai..
- Bărbați
- metodă
- milioane
- minute
- minute
- ML
- model
- Modele
- monitor
- mai mult
- multiplu
- my
- nume
- Natural
- Procesarea limbajului natural
- Navigaţi
- Navigare
- Nevoie
- Nou
- Anul Nou
- nlp
- Nu.
- caiet
- număr
- obiect
- of
- on
- afară
- deschide
- optimizare
- or
- comandă
- organizații
- original
- Altele
- afară
- producție
- peste
- propriu
- pagină
- pâine
- lucrări
- paradigmă
- parametrii
- parte
- cale
- pentru
- Efectua
- performanță
- permisiuni
- personal
- Personalizat
- PhD
- FILANTROPIE
- conducte
- Plato
- Informații despre date Platon
- PlatoData
- joc
- puncte
- politică
- Popular
- Post
- practică
- prezicere
- Predictii
- prezenta
- în prealabil
- probleme
- proces
- prelucrare
- propus
- prototipuri
- prototipuri
- furniza
- prevăzut
- furnizează
- dispoziţie
- publicat
- Piton
- pirtorh
- Rapid
- repede
- Citeste
- real
- în timp real
- recent
- recunoaştere
- Recomandare
- Recomandări
- reducerea
- scoate
- solicita
- necesita
- necesar
- cercetător
- Resurse
- răspuns
- răspunsuri
- responsabil
- rezultat
- REZULTATE
- Returnează
- revizuiască
- dreapta
- Rol
- Alerga
- funcţionare
- s
- sagemaker
- acelaşi
- Economisiți
- Scară
- scalare
- Om de stiinta
- scor
- zgâria
- script-uri
- defilare
- sdk
- Caută
- Secțiune
- securitate
- vedea
- selecţie
- Secvenţă
- serie
- Servicii
- setări
- Pantaloni scurți
- shot
- Arăta
- a arătat
- simplu
- simplificarea
- întrucât
- Mărimea
- Fotbal
- soluţie
- soluţii
- REZOLVAREA
- unele
- ceva
- vorbire
- specialist
- specific
- specific
- specificată
- vorbit
- sportiv
- stabil
- standalone
- Începe
- început
- de ultimă oră
- şedere
- Pas
- paşi
- oprit
- depozitare
- stocarea
- Şir
- structura
- studio
- astfel de
- a sustine
- sigur
- sisteme
- tabel
- Lua
- ia
- Sarcină
- sarcini
- echipă
- tech
- şabloane
- Clasificarea textului
- acea
- lor
- apoi
- Acestea
- acest
- gândit
- conducerea gândirii
- Prin
- timp
- Seria de timp
- TM
- la
- subiecte
- Tren
- dresat
- Pregătire
- transfer
- Transforma
- Transformare
- transformator
- transformatoare
- Traveling
- Trilion
- adevărat
- Adevăr
- încerca
- tweets
- Două
- tip
- ui
- în
- înţelege
- universitate
- încărcat
- us
- utilizare
- utilizat
- folosind
- utilitate
- varietate
- Fixă
- versiune
- foarte
- Video
- Virginia
- viziune
- vs
- walkthrough
- vrea
- a fost
- Cale..
- we
- web
- servicii web
- BINE
- au fost
- cand
- dacă
- în timp ce
- a caror
- larg
- voi
- cu
- fără
- cuvinte
- a lucrat
- fabrică
- scris
- an
- ani
- Tu
- Mai tanar
- Ta
- zephyrnet
- zero
- Învățare Zero-Shot