Naturlig sprogbehandling (NLP) er feltet inden for maskinlæring (ML), der handler om at give computere evnen til at forstå tekst og talte ord på samme måde, som mennesker kan. For nylig har state-of-the-art arkitekturer som transformer arkitektur bruges til at opnå næsten menneskelig præstation på NLP-downstream-opgaver som tekstresumé, tekstklassificering, enhedsgenkendelse og mere.
Store sprogmodeller (LLM'er) er transformatorbaserede modeller trænet på en stor mængde umærket tekst med hundredvis af millioner (BERTI) til over en billion parametre (MiCS), og hvis størrelse gør single-GPU-træning upraktisk. På grund af deres iboende kompleksitet er uddannelse af en LLM fra bunden en meget udfordrende opgave, som meget få organisationer har råd til. En almindelig praksis for NLP-downstream-opgaver er at tage en foruddannet LLM og finjustere den. For mere information om finjustering, se Domænetilpasning Finjustering af fundamentmodeller i Amazon SageMaker JumpStart på finansielle data , Finjuster transformatorsprogmodeller til sproglig mangfoldighed med Hugging Face på Amazon SageMaker.
Zero-shot læring i NLP tillader en foruddannet LLM at generere svar på opgaver, som det ikke er blevet eksplicit trænet til (selv uden finjustering). Specifikt taler om tekstklassificering, Zero-shot tekstklassificering er en opgave i naturlig sprogbehandling, hvor en NLP-model bruges til at klassificere tekst fra usete klasser, i modsætning til overvåget klassificering, hvor NLP-modeller kun kan klassificere tekst, der hører til klasser i træningsdataene.
Vi har for nylig lanceret understøttelse af nul-skudsklassifikationsmodel i Amazon SageMaker JumpStart. SageMaker JumpStart er ML-hubben i Amazon SageMaker der giver adgang til forudtrænede fundamentmodeller (FM'er), LLM'er, indbyggede algoritmer og løsningsskabeloner for at hjælpe dig med hurtigt at komme i gang med ML. I dette indlæg viser vi, hvordan du kan udføre nul-skudsklassificering ved hjælp af fortrænede modeller i SageMaker Jumpstart. Du vil lære, hvordan du bruger SageMaker Jumpstart UI og SageMaker Python SDK til at implementere løsningen og køre inferens ved hjælp af de tilgængelige modeller.
Zero-shot læring
Zero-shot klassifikation er et paradigme, hvor en model kan klassificere nye, usete eksempler, der hører til klasser, der ikke var til stede i træningsdataene. For eksempel kan en sprogmodel, der er blevet trænet til at forstå menneskeligt sprog, bruges til at klassificere nytårsforsætter-tweets på flere klasser som f.eks. career
, health
og finance
, uden at sprogmodellen er eksplicit trænet på tekstklassificeringsopgaven. Dette er i modsætning til finjustering af modellen, da sidstnævnte indebærer genoptræning af modellen (gennem transfer learning), mens nul-skudslæring ikke kræver yderligere træning.
Følgende diagram illustrerer forskellene mellem overførselslæring (venstre) vs. nulskudslæring (højre).
Yin et al. foreslået en ramme for oprettelse af nul-skudsklassifikatorer ved hjælp af naturlig sproginferens (NLI). Rammen fungerer ved at placere sekvensen, der skal klassificeres som en NLI-præmis og konstruerer en hypotese ud fra hver kandidatlabel. For eksempel hvis vi ønsker at evaluere, om en sekvens hører til klassen politics
, kunne vi konstruere en hypotese om "Denne tekst handler om politik." Sandsynlighederne for involvering og modsigelse konverteres derefter til mærkesandsynligheder. Som en hurtig gennemgang betragter NLI to sætninger: en præmis og en hypotese. Opgaven er at afgøre, om hypotesen er sand (medfølgende) eller falsk (modsigelse) givet præmissen. Følgende tabel giver nogle eksempler.
forudsætning | etiket | Hypotese |
En mand inspicerer uniformen af en figur i et østasiatisk land. | Modsigelse | Manden sover. |
En ældre og yngre mand smiler. | Neutral | To mænd smiler og griner af kattene, der leger på gulvet. |
En fodboldkamp med flere mænd, der spiller. | medvirken | Nogle mænd dyrker en sport. |
Løsningsoversigt
I dette indlæg diskuterer vi følgende:
- Sådan implementerer du forudtrænede zero-shot tekstklassificeringsmodeller ved hjælp af SageMaker JumpStart UI og kører inferens på den implementerede model ved hjælp af korte tekstdata
- Sådan bruger du SageMaker Python SDK til at få adgang til de forudtrænede nul-shot-tekstklassificeringsmodeller i SageMaker JumpStart og bruge inferensscriptet til at implementere modellen til et SageMaker-slutpunkt for en real-time tekstklassificering
- Sådan bruger du SageMaker Python SDK til at få adgang til forudtrænede zero-shot tekstklassificeringsmodeller og bruge SageMaker batch transformation til en batch tekstklassificering use case
SageMaker JumpStart giver finjustering og implementering med et enkelt klik til en lang række præ-trænede modeller på tværs af populære ML-opgaver, samt et udvalg af end-to-end-løsninger, der løser almindelige forretningsproblemer. Disse funktioner fjerner de tunge løft fra hvert trin i ML-processen, hvilket forenkler udviklingen af højkvalitetsmodeller og reducerer tiden til implementering. Det JumpStart API'er giver dig mulighed for programmæssigt at implementere og finjustere et stort udvalg af forudtrænede modeller på dine egne datasæt.
JumpStart-modelhubben giver adgang til et stort antal NLP-modeller, der muliggør overførselsindlæring og finjustering på brugerdefinerede datasæt. Når dette skrives, indeholder JumpStart-modelhubben over 300 tekstmodeller på tværs af en række populære modeller, såsom Stable Diffusion, Flan T5, Alexa TM, Bloom og mere.
Bemærk, at ved at følge trinene i dette afsnit, vil du implementere infrastruktur til din AWS-konto, som kan medføre omkostninger.
Implementer en selvstændig nul-shot-tekstklassificeringsmodel
I dette afsnit demonstrerer vi, hvordan man implementerer en nul-skuds klassificeringsmodel ved hjælp af SageMaker JumpStart. Du kan få adgang til fortrænede modeller via JumpStart-landingssiden i Amazon SageMaker Studio. Udfør følgende trin:
- I SageMaker Studio skal du åbne JumpStart-destinationssiden.
Der henvises til Åbn og brug JumpStart for flere detaljer om, hvordan du navigerer til SageMaker JumpStart. - I Tekstmodeller karrusel, skal du finde modelkortet "Zero-Shot Text Classification".
- Vælg Se model at få adgang til
facebook-bart-large-mnli
model.
Alternativt kan du søge efter nulskudsklassifikationsmodellen i søgefeltet og komme til modellen i SageMaker JumpStart. - Angiv en implementeringskonfiguration, SageMaker-hostingforekomsttype, slutpunktsnavn, Amazon Simple Storage Service (Amazon S3) spandnavn og andre nødvendige parametre.
- Du kan eventuelt angive sikkerhedskonfigurationer som f.eks AWS identitets- og adgangsstyring (IAM) rolle, VPC-indstillinger og AWS Key Management Service (AWS KMS) krypteringsnøgler.
- Vælg Implementer for at oprette et SageMaker-slutpunkt.
Dette trin tager et par minutter at fuldføre. Når det er færdigt, kan du køre slutninger mod SageMaker-slutpunktet, der er vært for nul-skudsklassifikationsmodellen.
I den følgende video viser vi en gennemgang af trinene i dette afsnit.
Brug JumpStart programmatisk med SageMaker SDK
I SageMaker JumpStart-sektionen af SageMaker Studio, under Lynstartløsninger, kan du finde løsningsskabeloner. SageMaker JumpStart løsningsskabeloner er et-klik, end-to-end-løsninger til mange almindelige ML-brugstilfælde. Når dette skrives, er over 20 løsninger tilgængelige til flere anvendelsessager, såsom efterspørgselsprognoser, svindeldetektion og personlige anbefalinger, for at nævne nogle få.
"Zero Shot Text Classification with Hugging Face"-løsningen giver en måde at klassificere tekst på uden at skulle træne en model til specifikke etiketter (nulskudsklassifikation) ved at bruge en forudtrænet tekstklassifikator. Standard nul-skuds klassificeringsmodellen for denne løsning er facebook-bart-large-mnli (BART) model. Til denne løsning bruger vi 2015 nytårsforsætter datasæt at klassificere resolutioner. Et undersæt af det originale datasæt, der kun indeholder Resolution_Category
(ground truth label) og text
kolonner indgår i løsningens aktiver.
Inputdataene inkluderer tekststrenge, en liste over ønskede kategorier til klassificering, og om klassificeringen er multi-label eller ej til synkron (realtids) inferens. Til asynkron (batch) inferens giver vi en liste over tekststrenge, listen over kategorier for hver streng, og om klassificeringen er multi-label eller ej i en JSON-linjers formateret tekstfil.
Resultatet af slutningen er et JSON-objekt, der ligner det følgende skærmbillede.
Vi har den originale tekst i sequence
felt, de etiketter, der bruges til tekstklassificeringen i labels
felt, og sandsynligheden, der er tildelt hver etiket (i samme rækkefølge) i feltet scores
.
Udfør følgende trin for at implementere Zero Shot Text Classification with Hugging Face-løsningen:
- På SageMaker JumpStart-landingssiden skal du vælge Modeller, notesbøger, løsninger i navigationsruden.
- I Løsninger sektion, skal du vælge Udforsk alle løsninger.
- På Løsninger side, skal du vælge modelkortet Zero Shot Text Classification with Hugging Face.
- Gennemgå installationsdetaljerne, og vælg, hvis du er enig Launch.
Implementeringen vil levere et SageMaker-realtidsslutpunkt til realtidsslutning og en S3-bøtte til lagring af batchtransformationsresultaterne.
Følgende diagram illustrerer arkitekturen af denne metode.
Udfør inferens i realtid ved hjælp af en nul-skuds klassificeringsmodel
I dette afsnit gennemgår vi, hvordan du bruger Python SDK til at køre nul-shot tekstklassificering (ved at bruge en af de tilgængelige modeller) i realtid ved hjælp af et SageMaker-slutpunkt.
- Først konfigurerer vi inferensnyttelastanmodningen til modellen. Dette er modelafhængigt, men for BART-modellen er inputtet et JSON-objekt med følgende struktur:
- Bemærk, at BART-modellen ikke er eksplicit trænet i
candidate_labels
. Vi vil bruge nul-skuds klassifikationsteknikken til at klassificere tekstsekvensen til usete klasser. Følgende kode er et eksempel, der bruger tekst fra datasættet med nytårsforsætter og de definerede klasser: - Dernæst kan du kalde et SageMaker-slutpunkt med nul-skuds nyttelasten. SageMaker-endepunktet er implementeret som en del af SageMaker JumpStart-løsningen.
- Inferensresponsobjektet indeholder den originale sekvens, etiketterne sorteret efter score fra maks. til min, og scorerne pr. etiket:
Kør et SageMaker batch transformationsjob ved hjælp af Python SDK
Dette afsnit beskriver, hvordan man kører batchtransformationsinferens med nul-skudsklassifikationen facebook-bart-large-mnli
model ved hjælp af SageMaker Python SDK. Udfør følgende trin:
- Formater inputdataene i JSON-linjeformat og upload filen til Amazon S3.
SageMaker batchtransformation udfører slutninger om de datapunkter, der er uploadet i S3-filen. - Konfigurer modelimplementeringsartefakter med følgende parametre:
- model_id - Brug
huggingface-zstc-facebook-bart-large-mnli
. - deploy_image_uri - Brug
image_uris
Python SDK-funktion til at få det forudbyggede SageMaker Docker-billede tilmodel_id
. Funktionen returnerer Amazon Elastic Container Registry (Amazon ECR) URI. - deploy_source_uri – Brug
script_uris
utility-API til at hente S3-URI'en, der indeholder scripts til at køre præ-trænet modelslutning. Vi specificererscript_scope
asinference
. - model_uri - Brug
model_uri
for at få modelartefakter fra Amazon S3 til den angivnemodel_id
.
- model_id - Brug
- Brug
HF_TASK
at definere opgaven for Hugging Face transformers pipeline ogHF_MODEL_ID
for at definere den model, der bruges til at klassificere teksten:For en komplet liste over opgaver, se Rørledninger i Knusende ansigt-dokumentationen.
- Opret et Hugging Face-modelobjekt, der skal implementeres med SageMaker batch-transformationsjobbet:
- Opret en transformation for at køre et batchjob:
- Start et batchtransformationsjob og brug S3-data som input:
Du kan overvåge dit batchbehandlingsjob på SageMaker-konsollen (vælg Batch transformation job under Inferens i navigationsruden). Når jobbet er færdigt, kan du kontrollere modelforudsigelsesoutputtet i S3-filen specificeret i output_path
.
For en liste over alle tilgængelige fortrænede modeller i SageMaker JumpStart, se Indbyggede algoritmer med fortrænet modelbord. Brug søgeordet "zstc" (forkortelse for nul-skuds tekstklassificering) i søgefeltet for at finde alle modeller, der er i stand til at lave nul-skuds tekstklassificering.
Ryd op
Når du er færdig med at køre notesbogen, skal du sørge for at slette alle ressourcer, der er oprettet i processen, for at sikre, at omkostningerne påløbet af de aktiver, der er implementeret i denne vejledning, stoppes. Koden til at rydde op i de implementerede ressourcer findes i de notesbøger, der er knyttet til nul-shot-tekstklassificeringsløsningen og -modellen.
Standard sikkerhedskonfigurationer
SageMaker JumpStart-modellerne implementeres ved hjælp af følgende standardsikkerhedskonfigurationer:
For at lære mere om SageMaker sikkerhedsrelaterede emner, tjek ud Konfigurer sikkerhed i Amazon SageMaker.
Konklusion
I dette indlæg viste vi dig, hvordan du implementerer en nul-skudsklassificeringsmodel ved hjælp af SageMaker JumpStart UI og udfører inferens ved hjælp af det implementerede slutpunkt. Vi brugte SageMaker JumpStart nytårsfortsætter-løsningen til at vise, hvordan du kan bruge SageMaker Python SDK til at bygge en ende-til-ende-løsning og implementere nul-skuds klassificeringsapplikation. SageMaker JumpStart giver adgang til hundredvis af præ-trænede modeller og løsninger til opgaver som computersyn, naturlig sprogbehandling, anbefalingssystemer og mere. Prøv løsningen på egen hånd og fortæl os dine tanker.
Om forfatterne
David Laredo er Prototyping Architect hos AWS Envision Engineering i LATAM, hvor han har hjulpet med at udvikle flere maskinlæringsprototyper. Tidligere har han arbejdet som Machine Learning Engineer og har lavet maskinlæring i over 5 år. Hans interesseområder er NLP, tidsserier og end-to-end ML.
Vikram Elango er en AI/ML Specialist Solutions Architect hos Amazon Web Services, baseret i Virginia, USA. Vikram hjælper finans- og forsikringsbranchens kunder med design og tankelederskab med at bygge og implementere maskinlæringsapplikationer i stor skala. Han er i øjeblikket fokuseret på naturlig sprogbehandling, ansvarlig AI, inferensoptimering og skalering af ML på tværs af virksomheden. I sin fritid nyder han at rejse, vandre, lave mad og campere med sin familie.
Dr. Vivek Madan er en anvendt videnskabsmand hos Amazon SageMaker JumpStart-teamet. Han fik sin ph.d. fra University of Illinois i Urbana-Champaign og var postdoktor ved Georgia Tech. Han er en aktiv forsker i maskinlæring og algoritmedesign og har publiceret artikler i EMNLP, ICLR, COLT, FOCS og SODA konferencer.
- 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/zero-shot-text-classification-with-amazon-sagemaker-jumpstart/
- :har
- :er
- :ikke
- :hvor
- $OP
- 1
- 10
- 100
- 12
- 16
- 17
- 20
- 22
- 30
- 7
- 8
- 9
- a
- evne
- Om
- over
- adgang
- Konto
- opnå
- tværs
- aktiv
- Yderligere
- mod
- AI
- AI / ML
- AL
- Alexa
- algoritme
- algoritmer
- Alle
- tillade
- tillader
- Amazon
- Amazon SageMaker
- Amazon SageMaker JumpStart
- Amazon Web Services
- beløb
- an
- ,
- enhver
- api
- Anvendelse
- applikationer
- anvendt
- arkitektur
- ER
- områder
- AS
- asiatisk
- Aktiver
- tildelt
- forbundet
- At
- automatisk
- til rådighed
- AWS
- Bar
- bund
- baseret
- BE
- været
- være
- tilhører
- mellem
- Bloom
- krop
- Bøger
- Morgenmad
- bygge
- indbygget
- virksomhed
- men
- by
- CAN
- kandidat
- stand
- kort
- Karriere
- karrusel
- tilfælde
- kategorier
- Katte
- udfordrende
- kontrollere
- Vælg
- klasse
- klasser
- klassificering
- klassificeret
- Klassificere
- kode
- Kolonner
- Fælles
- fuldføre
- kompleksitet
- computer
- Computer Vision
- computere
- pågældende
- konferencer
- Konfiguration
- anser
- Konsol
- konstruere
- Container
- indeholder
- kontrast
- konverteret
- Omkostninger
- kunne
- land
- Par
- skabe
- oprettet
- Oprettelse af
- For øjeblikket
- skik
- Kunder
- data
- datapunkter
- datasæt
- dedikeret
- Standard
- definere
- definerede
- Efterspørgsel
- Forespørgsel om efterspørgsel
- demonstrere
- afhængigheder
- afhængig
- indsætte
- indsat
- implementering
- Design
- ønskes
- detaljer
- Detektion
- Bestem
- udvikle
- Udvikling
- forskelle
- Broadcasting
- diskutere
- Mangfoldighed
- Docker
- dokumentation
- Er ikke
- gør
- færdig
- grund
- E&T
- hver
- Øst
- Uddannelse
- muliggøre
- kryptering
- ende til ende
- Endpoint
- ingeniør
- Engineering
- sikre
- Enterprise
- enhed
- envision
- evaluere
- Endog
- eksempel
- eksempler
- Ansigtet
- falsk
- familie
- Funktionalitet
- få
- felt
- Figur
- File (Felt)
- finansiere
- finansielle
- Finde
- Gulvlampe
- fokuserede
- efter
- Til
- format
- Foundation
- Framework
- bedrageri
- bedrageri afsløring
- fra
- funktion
- spil
- generere
- Georgien
- få
- GitHub
- given
- Give
- Ground
- Vækst
- vejlede
- Håndtering
- Have
- he
- Helse
- tunge
- tunge løft
- hjælpe
- hjulpet
- hjælper
- høj kvalitet
- hans
- Hosting
- værter
- Hvordan
- How To
- HTML
- http
- HTTPS
- Hub
- menneskelig
- humor
- Hundreder
- hundreder af millioner
- ID
- Identity
- if
- Illinois
- illustrerer
- billede
- gennemføre
- importere
- in
- medtaget
- omfatter
- industrien
- oplysninger
- Infrastruktur
- iboende
- indgang
- indgange
- instans
- forsikring
- interesse
- IT
- Job
- Karriere
- jpg
- json
- Nøgle
- nøgler
- Kend
- etiket
- Etiketter
- landing
- Sprog
- stor
- LATAM
- lanceret
- Leadership" (virkelig menneskelig ledelse)
- LÆR
- læring
- til venstre
- lad
- løft
- ligesom
- Line (linje)
- linjer
- Liste
- LLM
- lastning
- UDSEENDE
- maskine
- machine learning
- lave
- maerker
- mand
- ledelse
- mange
- max
- Kan..
- Hudpleje
- metode
- millioner
- minut
- minutter
- ML
- model
- modeller
- Overvåg
- mere
- flere
- my
- navn
- Natural
- Natural Language Processing
- Naviger
- Navigation
- Behov
- Ny
- nye år
- NLP
- ingen
- notesbog
- nummer
- objekt
- of
- on
- kun
- åbent
- optimering
- or
- ordrer
- organisationer
- original
- Andet
- ud
- output
- i løbet af
- egen
- side
- brød
- papirer
- paradigme
- parametre
- del
- sti
- per
- Udfør
- ydeevne
- Tilladelser
- personale
- Personlig
- phd
- filantropi
- pipeline
- plato
- Platon Data Intelligence
- PlatoData
- spiller
- punkter
- politik
- Populær
- Indlæg
- praksis
- forudsigelse
- Forudsigelser
- præsentere
- tidligere
- problemer
- behandle
- forarbejdning
- foreslog
- prototyper
- prototyping
- give
- forudsat
- giver
- bestemmelse
- offentliggjort
- Python
- pytorch
- Hurtig
- hurtigt
- Læs
- ægte
- realtid
- for nylig
- anerkendelse
- Anbefaling
- anbefalinger
- reducere
- Fjern
- anmode
- kræver
- påkrævet
- forsker
- Ressourcer
- svar
- reaktioner
- ansvarlige
- resultere
- Resultater
- afkast
- gennemgå
- højre
- roller
- Kør
- kører
- s
- sagemaker
- samme
- Gem
- Scale
- skalering
- Videnskabsmand
- score
- ridse
- scripts
- rulning
- SDK
- Søg
- Sektion
- sikkerhed
- se
- valg
- Sequence
- Series
- Tjenester
- indstillinger
- Kort
- shot
- Vis
- viste
- Simpelt
- forenkle
- siden
- Størrelse
- Fodbold
- løsninger
- Løsninger
- SOLVE
- nogle
- noget
- taler
- specialist
- specifikke
- specifikt
- specificeret
- talt
- Sport
- stabil
- standalone
- starte
- påbegyndt
- state-of-the-art
- forblive
- Trin
- Steps
- stoppet
- opbevaring
- lagring
- String
- struktur
- Studio
- sådan
- support
- sikker
- Systemer
- bord
- Tag
- tager
- Opgaver
- opgaver
- hold
- tech
- skabeloner
- Tekstklassificering
- at
- deres
- derefter
- Disse
- denne
- tænkte
- tænkt lederskab
- Gennem
- tid
- Tidsserier
- TM
- til
- Emner
- Tog
- uddannet
- Kurser
- overførsel
- Transform
- Transformation
- transformer
- transformers
- Traveling
- trillion
- sand
- Sandheden
- prøv
- tweets
- to
- typen
- ui
- under
- forstå
- universitet
- uploadet
- us
- brug
- anvendte
- ved brug af
- nytte
- række
- Vast
- udgave
- meget
- video
- Virginia
- vision
- vs
- går igennem
- ønsker
- var
- Vej..
- we
- web
- webservices
- GODT
- var
- hvornår
- hvorvidt
- mens
- hvis
- bred
- vilje
- med
- uden
- ord
- arbejdede
- virker
- skrivning
- år
- år
- Du
- Yngre
- Din
- zephyrnet
- nul
- Zero-Shot Learning