Naturlig språkbehandling (NLP) er feltet innen maskinlæring (ML) som er opptatt av å gi datamaskiner muligheten til å forstå tekst og talte ord på samme måte som mennesker kan. Nylig har state-of-the-art arkitekturer som transformatorarkitektur brukes til å oppnå nesten menneskelig ytelse på NLP-nedstrømsoppgaver som tekstoppsummering, tekstklassifisering, enhetsgjenkjenning og mer.
Store språkmodeller (LLM) er transformatorbaserte modeller som er trent på en stor mengde umerket tekst med hundrevis av millioner (BERTI) til over en billion parametere (MiCS), og hvis størrelse gjør trening med én GPU upraktisk. På grunn av deres iboende kompleksitet, er opplæring av en LLM fra bunnen av en svært utfordrende oppgave som svært få organisasjoner har råd til. En vanlig praksis for NLP nedstrømsoppgaver er å ta en forhåndsutdannet LLM og finjustere den. For mer informasjon om finjustering, se Domenetilpasning Finjustering av grunnmodeller i Amazon SageMaker JumpStart på økonomiske data og Finjuster transformatorspråkmodeller for språklig mangfold med Hugging Face på Amazon SageMaker.
Nullskuddslæring i NLP tillater en forhåndsutdannet LLM å generere svar på oppgaver som den ikke har blitt eksplisitt trent for (selv uten finjustering). Når det gjelder tekstklassifisering, null-shot tekstklassifisering er en oppgave i naturlig språkbehandling hvor en NLP-modell brukes til å klassifisere tekst fra usett klasser, i motsetning til overvåket klassifisering, hvor NLP-modeller kun kan klassifisere tekst som tilhører klasser i treningsdataene.
Vi lanserte nylig støtte for nullskuddsklassifiseringsmodeller i Amazon SageMaker JumpStart. SageMaker JumpStart er ML-huben til Amazon SageMaker som gir tilgang til forhåndstrente grunnmodeller (FM), LLM, innebygde algoritmer og løsningsmaler for å hjelpe deg raskt å komme i gang med ML. I dette innlegget viser vi hvordan du kan utføre nullskuddsklassifisering ved å bruke ferdigtrente modeller i SageMaker Jumpstart. Du vil lære hvordan du bruker SageMaker Jumpstart UI og SageMaker Python SDK for å distribuere løsningen og kjøre inferens ved å bruke de tilgjengelige modellene.
Zero-shot læring
Zero-shot-klassifisering er et paradigme der en modell kan klassifisere nye, usynlige eksempler som tilhører klasser som ikke var til stede i treningsdataene. For eksempel kan en språkmodell som har blitt opplært til å forstå menneskelig språk brukes til å klassifisere nyttårsforsett-tweets på flere klasser som career
, health
og finance
, uten at språkmodellen er eksplisitt trent på tekstklassifiseringsoppgaven. Dette er i motsetning til finjustering av modellen, siden sistnevnte innebærer å trene modellen på nytt (gjennom overføringslæring) mens nullskuddslæring ikke krever ekstra opplæring.
Følgende diagram illustrerer forskjellene mellom overføringslæring (venstre) vs. nullskuddslæring (høyre).
Yin et al. foreslått et rammeverk for å lage nullskuddsklassifiserere ved bruk av naturlig språkinferens (NLI). Rammeverket fungerer ved å posere sekvensen som skal klassifiseres som en NLI-premiss og konstruerer en hypotese fra hver kandidatetikett. For eksempel hvis vi ønsker å evaluere om en sekvens tilhører klassen politics
, kunne vi konstruere en hypotese om "Denne teksten handler om politikk." Sannsynlighetene for medvirkning og motsigelse konverteres deretter til merkesannsynligheter. Som en rask gjennomgang tar NLI for seg to setninger: en premiss og en hypotese. Oppgaven er å avgjøre om hypotesen er sann (medfølgende) eller usann (motsigelse) gitt premisset. Tabellen nedenfor gir noen eksempler.
premiss | Etiketten | Hypotese |
En mann inspiserer uniformen til en figur i et østasiatisk land. | Motsigelse | Mannen sover. |
En eldre og yngre mann som smiler. | Nøytral | To menn smiler og ler av kattene som leker på gulvet. |
En fotballkamp med flere menn som spiller. | medfølelse | Noen menn driver med en sport. |
Løsningsoversikt
I dette innlegget diskuterer vi følgende:
- Slik distribuerer du forhåndstrente nullbilde-tekstklassifiseringsmodeller ved å bruke SageMaker JumpStart-grensesnittet og kjører slutninger om den distribuerte modellen ved å bruke korte tekstdata
- Hvordan bruke SageMaker Python SDK for å få tilgang til de forhåndstrente zero-shot tekstklassifiseringsmodellene i SageMaker JumpStart og bruke inferensskriptet til å distribuere modellen til et SageMaker-endepunkt for en sanntidstekstklassifisering
- Hvordan bruke SageMaker Python SDK for å få tilgang til forhåndsopplærte nullbilde-tekstklassifiseringsmodeller og bruke SageMaker batchtransformasjon for en brukstilfelle for batchtekstklassifisering
SageMaker JumpStart gir ett-klikks finjustering og distribusjon for et bredt utvalg av forhåndstrente modeller på tvers av populære ML-oppgaver, samt et utvalg ende-til-ende-løsninger som løser vanlige forretningsproblemer. Disse funksjonene fjerner de tunge løftene fra hvert trinn i ML-prosessen, og forenkler utviklingen av høykvalitetsmodeller og reduserer tiden til utrulling. De JumpStart APIer lar deg programmere distribuere og finjustere et stort utvalg av forhåndstrente modeller på dine egne datasett.
JumpStart-modellhuben gir tilgang til et stort antall NLP-modeller som muliggjør overføringslæring og finjustering på tilpassede datasett. Når dette skrives, inneholder JumpStart-modellhuben over 300 tekstmodeller på tvers av en rekke populære modeller, som Stable Diffusion, Flan T5, Alexa TM, Bloom og mer.
Merk at ved å følge trinnene i denne delen vil du distribuere infrastruktur til AWS-kontoen din som kan medføre kostnader.
Implementer en frittstående nullbilde-tekstklassifiseringsmodell
I denne delen viser vi hvordan du distribuerer en nullskuddsklassifiseringsmodell ved hjelp av SageMaker JumpStart. Du kan få tilgang til forhåndstrente modeller via JumpStart-landingssiden i Amazon SageMaker Studio. Fullfør følgende trinn:
- I SageMaker Studio åpner du JumpStart-landingssiden.
Referere til Åpne og bruk JumpStart for mer informasjon om hvordan du navigerer til SageMaker JumpStart. - på Tekstmodeller karusell, finn modellkortet "Zero-Shot Text Classification".
- Velg Se modell for å få tilgang til
facebook-bart-large-mnli
modell.
Alternativt kan du søke etter nullskuddsklassifiseringsmodellen i søkefeltet og komme til modellen i SageMaker JumpStart. - Spesifiser en distribusjonskonfigurasjon, SageMaker vertsforekomsttype, endepunktnavn, Amazon enkel lagringstjeneste (Amazon S3) bøttenavn og andre nødvendige parametere.
- Eventuelt kan du spesifisere sikkerhetskonfigurasjoner som AWS identitets- og tilgangsadministrasjon (IAM) rolle, VPC-innstillinger og AWS nøkkelstyringstjeneste (AWS KMS) krypteringsnøkler.
- Velg Distribuer for å lage et SageMaker-endepunkt.
Dette trinnet tar et par minutter å fullføre. Når den er fullført, kan du kjøre inferens mot SageMaker-endepunktet som er vert for nullskuddsklassifiseringsmodellen.
I den følgende videoen viser vi en gjennomgang av trinnene i denne delen.
Bruk JumpStart programmatisk med SageMaker SDK
I SageMaker JumpStart-delen av SageMaker Studio, under Hurtigstartløsninger, kan du finne løsningsmaler. SageMaker JumpStart-løsningsmaler er ende-til-ende-løsninger med ett klikk for mange vanlige ML-brukstilfeller. Når dette skrives, er over 20 løsninger tilgjengelige for flere brukstilfeller, for eksempel etterspørselsprognoser, svindeldeteksjon og personlige anbefalinger, for å nevne noen.
"Zero Shot Text Classification with Hugging Face"-løsningen gir en måte å klassifisere tekst uten å trene en modell for spesifikke etiketter (nullskuddsklassifisering) ved å bruke en forhåndsopplært tekstklassifiserer. Standard nullskuddsklassifiseringsmodell for denne løsningen er facebook-bart-large-mnli (BART) modell. For denne løsningen bruker vi 2015 nyttårsforsett datasett å klassifisere resolusjoner. Et undersett av det opprinnelige datasettet som bare inneholder Resolution_Category
(ground truth label) og text
kolonner er inkludert i løsningens eiendeler.
Inndataene inkluderer tekststrenger, en liste over ønskede kategorier for klassifisering, og om klassifiseringen er multi-label eller ikke for synkron (sanntids) inferens. For asynkron (batch) inferens gir vi en liste over tekststrenger, listen over kategorier for hver streng, og om klassifiseringen er multi-label eller ikke i en JSON-linjeformatert tekstfil.
Resultatet av slutningen er et JSON-objekt som ser omtrent ut som følgende skjermbilde.
Vi har originalteksten i sequence
feltet, etikettene som brukes for tekstklassifiseringen i labels
feltet, og sannsynligheten som er tildelt hver etikett (i samme rekkefølge) i feltet scores
.
For å distribuere Zero Shot Text Classification with Hugging Face-løsningen, fullfør følgende trinn:
- På SageMaker JumpStart-landingssiden velger du Modeller, notatbøker, løsninger i navigasjonsruten.
- på Solutions delen velger Utforsk alle løsninger.
- På Solutions siden, velg Zero Shot Text Classification with Hugging Face-modellkortet.
- Se gjennom distribusjonsdetaljene, og velg hvis du er enig Start.
Utrullingen vil sørge for et SageMaker sanntidsendepunkt for sanntidsslutning og en S3-bøtte for lagring av batchtransformasjonsresultater.
Følgende diagram illustrerer arkitekturen til denne metoden.
Utfør sanntidsslutning ved å bruke en nullskuddsklassifiseringsmodell
I denne delen ser vi på hvordan du bruker Python SDK til å kjøre nullbildetekstklassifisering (ved å bruke en av de tilgjengelige modellene) i sanntid ved å bruke et SageMaker-endepunkt.
- Først konfigurerer vi inferensnyttelastforespørselen til modellen. Dette er modellavhengig, men for BART-modellen er inngangen et JSON-objekt med følgende struktur:
- Merk at BART-modellen ikke er eksplisitt trent på
candidate_labels
. Vi vil bruke nullskuddsklassifiseringsteknikken for å klassifisere tekstsekvensen til usynlige klasser. Følgende kode er et eksempel som bruker tekst fra nyttårsforsetter-datasettet og de definerte klassene: - Deretter kan du påkalle et SageMaker-endepunkt med nullskuddsnyttelasten. SageMaker-endepunktet er distribuert som en del av SageMaker JumpStart-løsningen.
- Inferensresponsobjektet inneholder den opprinnelige sekvensen, etikettene sortert etter poengsum fra maks til min, og poengsummene per etikett:
Kjør en SageMaker batch-transformeringsjobb ved å bruke Python SDK
Denne delen beskriver hvordan du kjører batchtransformasjonsslutning med nullskuddsklassifiseringen facebook-bart-large-mnli
modell ved hjelp av SageMaker Python SDK. Fullfør følgende trinn:
- Formater inndataene i JSON-linjeformat og last opp filen til Amazon S3.
SageMaker batchtransformasjon vil utføre inferens på datapunktene som er lastet opp i S3-filen. - Sett opp modelldistribusjonsartefakter med følgende parametere:
- modell_id - Bruk
huggingface-zstc-facebook-bart-large-mnli
. - deploy_image_uri - Bruke
image_uris
Python SDK-funksjon for å få det forhåndsbygde SageMaker Docker-bildet formodel_id
. Funksjonen returnerer Amazon Elastic Container Registry (Amazon ECR) URI. - deploy_source_uri – Bruke
script_uris
utility API for å hente S3 URI som inneholder skript for å kjøre forhåndstrent modellslutning. Vi spesifisererscript_scope
asinference
. - model_uri - Bruk
model_uri
for å få modellartefakter fra Amazon S3 for spesifisertmodel_id
.
- modell_id - Bruk
- Bruk
HF_TASK
å definere oppgaven for Hugging Face-transformatorrørledningen ogHF_MODEL_ID
for å definere modellen som brukes til å klassifisere teksten:For en fullstendig liste over oppgaver, se Rørledninger i Hugging Face-dokumentasjonen.
- Lag et Hugging Face-modellobjekt som skal distribueres med SageMaker batch-transformeringsjobben:
- Opprett en transformasjon for å kjøre en batchjobb:
- Start en batch-transformeringsjobb og bruk S3-data som input:
Du kan overvåke batchbehandlingsjobben din på SageMaker-konsollen (velg Batch-transformeringsjobber etter slutning i navigasjonsruten). Når jobben er fullført, kan du sjekke modellprediksjonsutgangen i S3-filen spesifisert i output_path
.
For en liste over alle tilgjengelige forhåndstrente modeller i SageMaker JumpStart, se Innebygde algoritmer med forhåndstrent modellbord. Bruk nøkkelordet "zstc" (forkortelse for zero-shot text classification) i søkefeltet for å finne alle modellene som er i stand til å gjøre null-shot tekstklassifisering.
Rydd opp
Etter at du er ferdig med å kjøre den bærbare datamaskinen, sørg for å slette alle ressurser som er opprettet i prosessen for å sikre at kostnadene som påløper av ressursene som er distribuert i denne veiledningen stoppes. Koden for å rydde opp i de distribuerte ressursene er gitt i notatbøkene som er knyttet til nullskuddstekstklassifiseringsløsningen og -modellen.
Standard sikkerhetskonfigurasjoner
SageMaker JumpStart-modellene distribueres ved å bruke følgende standard sikkerhetskonfigurasjoner:
For å lære mer om SageMaker sikkerhetsrelaterte emner, sjekk ut Konfigurer sikkerhet i Amazon SageMaker.
konklusjonen
I dette innlegget viste vi deg hvordan du distribuerer en nullskuddsklassifiseringsmodell ved å bruke SageMaker JumpStart-grensesnittet og utfører slutninger ved å bruke det distribuerte endepunktet. Vi brukte SageMaker JumpStart nyttårsforsetter-løsningen for å vise hvordan du kan bruke SageMaker Python SDK til å bygge en ende-til-ende-løsning og implementere nullskuddsklassifiseringsapplikasjon. SageMaker JumpStart gir tilgang til hundrevis av forhåndsopplærte modeller og løsninger for oppgaver som datasyn, naturlig språkbehandling, anbefalingssystemer og mer. Prøv løsningen på egenhånd og gi oss beskjed om dine tanker.
Om forfatterne
David Laredo er en Prototyping Architect ved AWS Envision Engineering i LATAM, hvor han har vært med på å utvikle flere maskinlæringsprototyper. Tidligere har han jobbet som maskinlæringsingeniør og har drevet med maskinlæring i over 5 år. Hans interesseområder er NLP, tidsserier og ende-til-ende ML.
Vikram Elango er en AI/ML Specialist Solutions Architect hos Amazon Web Services, basert i Virginia, USA. Vikram hjelper finans- og forsikringsbransjens kunder med design og tankeledelse med å bygge og distribuere maskinlæringsapplikasjoner i stor skala. Han er for tiden fokusert på naturlig språkbehandling, ansvarlig AI, inferensoptimalisering og skalering av ML på tvers av bedriften. På fritiden liker han å reise, gå fotturer, lage mat og campe med familien.
Dr. Vivek Madan er en Applied Scientist med Amazon SageMaker JumpStart-teamet. Han fikk sin doktorgrad fra University of Illinois i Urbana-Champaign og var postdoktor ved Georgia Tech. Han er en aktiv forsker innen maskinlæring og algoritmedesign og har publisert artikler på EMNLP-, ICLR-, COLT-, FOCS- og SODA-konferanser.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk deg selv. Tilgang her.
- PlatoAiStream. Web3 Intelligence. Kunnskap forsterket. Tilgang her.
- PlatoESG. Bil / elbiler, Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- PlatoHelse. Bioteknologisk og klinisk etterretning. Tilgang her.
- ChartPrime. Hev handelsspillet ditt med ChartPrime. Tilgang her.
- BlockOffsets. Modernisering av eierskap for miljøkompensasjon. Tilgang her.
- kilde: https://aws.amazon.com/blogs/machine-learning/zero-shot-text-classification-with-amazon-sagemaker-jumpstart/
- : har
- :er
- :ikke
- :hvor
- $OPP
- 1
- 10
- 100
- 12
- 16
- 17
- 20
- 22
- 30
- 7
- 8
- 9
- a
- evne
- Om oss
- ovenfor
- adgang
- Logg inn
- Oppnå
- tvers
- aktiv
- Ytterligere
- mot
- AI
- AI / ML
- AL
- Alexa
- algoritme
- algoritmer
- Alle
- tillate
- tillater
- Amazon
- Amazon SageMaker
- Amazon SageMaker JumpStart
- Amazon Web Services
- beløp
- an
- og
- noen
- api
- Søknad
- søknader
- anvendt
- arkitektur
- ER
- områder
- AS
- asiatisk
- Eiendeler
- tildelt
- assosiert
- At
- automatisk
- tilgjengelig
- AWS
- Bar
- basen
- basert
- BE
- vært
- være
- tilhører
- mellom
- Bloom
- kroppen
- bøker
- Frokost
- bygge
- innebygd
- virksomhet
- men
- by
- CAN
- kandidat
- stand
- kort
- Karriere
- karusellen
- saker
- kategorier
- Katter
- utfordrende
- sjekk
- Velg
- klasse
- klasser
- klassifisering
- klassifisert
- Klassifisere
- kode
- kolonner
- Felles
- fullføre
- kompleksitet
- datamaskin
- Datamaskin syn
- datamaskiner
- bekymret
- konferanser
- Konfigurasjon
- anser
- Konsoll
- konstruere
- Container
- inneholder
- kontrast
- konvertert
- Kostnader
- kunne
- land
- Par
- skape
- opprettet
- Opprette
- I dag
- skikk
- Kunder
- dato
- datapunkter
- datasett
- dedikert
- Misligholde
- definere
- definert
- Etterspørsel
- Forespørsel om etterspørsel
- demonstrere
- avhengig
- avhengig
- utplassere
- utplassert
- distribusjon
- utforming
- ønsket
- detaljer
- Gjenkjenning
- Bestem
- utvikle
- Utvikling
- forskjeller
- kringkasting
- diskutere
- Mangfold
- Docker
- dokumentasjon
- ikke
- gjør
- gjort
- to
- E&T
- hver enkelt
- øst
- Kunnskap
- emalje
- muliggjøre
- kryptering
- ende til ende
- Endpoint
- ingeniør
- Ingeniørarbeid
- sikre
- Enterprise
- enhet
- se for meg
- evaluere
- Selv
- eksempel
- eksempler
- Face
- falsk
- familie
- Egenskaper
- Noen få
- felt
- Figur
- filet
- finansiere
- finansiell
- Finn
- Gulv
- fokuserte
- etter
- Til
- format
- Fundament
- Rammeverk
- svindel
- svindeloppdagelse
- fra
- funksjon
- spill
- generere
- Georgia
- få
- GitHub
- gitt
- Giving
- Ground
- Vekst
- veilede
- Håndtering
- Ha
- he
- Helse
- tung
- tung løfting
- hjelpe
- hjulpet
- hjelper
- høykvalitets
- hans
- Hosting
- Vertskapet
- Hvordan
- Hvordan
- HTML
- http
- HTTPS
- Hub
- menneskelig
- humor
- Hundrevis
- hundrevis av millioner
- ID
- Identitet
- if
- Illinois
- illustrerer
- bilde
- iverksette
- importere
- in
- inkludert
- inkluderer
- industri
- informasjon
- Infrastruktur
- iboende
- inngang
- innganger
- f.eks
- forsikring
- interesse
- IT
- Jobb
- Jobb
- jpg
- JSON
- nøkkel
- nøkler
- Vet
- Etiketten
- etiketter
- landing
- Språk
- stor
- LATAM
- lansert
- Ledelse
- LÆRE
- læring
- venstre
- la
- løfte
- i likhet med
- linje
- linjer
- Liste
- LLM
- lasting
- UTSEENDE
- maskin
- maskinlæring
- gjøre
- GJØR AT
- mann
- ledelse
- mange
- max
- Kan..
- Herre
- metode
- millioner
- minutter
- minutter
- ML
- modell
- modeller
- Overvåke
- mer
- flere
- my
- navn
- Naturlig
- Natural Language Processing
- Naviger
- Navigasjon
- Trenger
- Ny
- nytt år
- nlp
- Nei.
- bærbare
- Antall
- objekt
- of
- on
- bare
- åpen
- optimalisering
- or
- rekkefølge
- organisasjoner
- original
- Annen
- ut
- produksjon
- enn
- egen
- side
- brød
- papirer
- paradigmet
- parametere
- del
- banen
- for
- Utfør
- ytelse
- tillatelser
- personlig
- Personlig
- phd
- filantropi
- rørledning
- plato
- Platon Data Intelligence
- PlatonData
- spiller
- poeng
- politikk
- Populær
- Post
- praksis
- prediksjon
- Spådommer
- presentere
- tidligere
- problemer
- prosess
- prosessering
- foreslått
- prototyper
- prototyping
- gi
- forutsatt
- gir
- forsyning
- publisert
- Python
- pytorch
- Rask
- raskt
- Lese
- ekte
- sanntids
- nylig
- anerkjennelse
- Anbefaling
- anbefalinger
- redusere
- fjerne
- anmode
- krever
- påkrevd
- forsker
- Ressurser
- svar
- svar
- ansvarlig
- resultere
- Resultater
- avkastning
- anmeldelse
- ikke sant
- Rolle
- Kjør
- rennende
- s
- sagemaker
- samme
- Spar
- Skala
- skalering
- Forsker
- Resultat
- skraper
- skript
- rulle
- SDK
- Søk
- Seksjon
- sikkerhet
- se
- utvalg
- Sequence
- Serien
- Tjenester
- innstillinger
- Kort
- shot
- Vis
- viste
- Enkelt
- forenkle
- siden
- Størrelse
- Fotball
- løsning
- Solutions
- LØSE
- noen
- noe
- sett
- spesialist
- spesifikk
- spesielt
- spesifisert
- talt
- Sport
- stabil
- stående
- Begynn
- startet
- state-of-the-art
- opphold
- Trinn
- Steps
- stoppet
- lagring
- lagring
- String
- struktur
- studio
- slik
- støtte
- sikker
- Systemer
- bord
- Ta
- tar
- Oppgave
- oppgaver
- lag
- tech
- maler
- Tekstklassifisering
- Det
- De
- deres
- deretter
- Disse
- denne
- trodde
- tenkte ledelse
- Gjennom
- tid
- Tidsserier
- TM
- til
- temaer
- Tog
- trent
- Kurs
- overføre
- Transform
- Transformation
- transformator
- transformers
- Traveling
- Trillion
- sant
- Sannhet
- prøve
- tweets
- to
- typen
- ui
- etter
- forstå
- universitet
- lastet opp
- us
- bruke
- brukt
- ved hjelp av
- verktøyet
- variasjon
- enorme
- versjon
- veldig
- video
- Virginia
- syn
- vs
- walkthrough
- ønsker
- var
- Vei..
- we
- web
- webtjenester
- VI VIL
- var
- når
- om
- mens
- hvem sin
- bred
- vil
- med
- uten
- ord
- arbeidet
- virker
- skriving
- år
- år
- Du
- Younger
- Din
- zephyrnet
- null
- Zero-Shot læring