Naturlig språkbehandling (NLP) är det område inom maskininlärning (ML) som handlar om att ge datorer förmågan att förstå text och talade ord på samma sätt som människor kan. Nyligen har state-of-the-art arkitekturer som transformatorarkitektur används för att uppnå nästan mänsklig prestation på NLP-nedströmsuppgifter som textsammanfattning, textklassificering, enhetsigenkänning och mer.
Stora språkmodeller (LLM) är transformatorbaserade modeller tränade på en stor mängd omärkt text med hundratals miljoner (BERTI) till över en biljon parametrar (MiCS), och vars storlek gör träning med en GPU opraktisk. På grund av deras inneboende komplexitet är att träna en LLM från grunden en mycket utmanande uppgift som väldigt få organisationer har råd med. En vanlig praxis för NLP nedströms uppgifter är att ta en förutbildad LLM och finjustera den. För mer information om finjustering, se Domänanpassning Finjustering av grundmodeller i Amazon SageMaker JumpStart på finansiell data och Finjustera transformatorspråksmodeller för språklig mångfald med Hugging Face på Amazon SageMaker.
Zero-shot inlärning i NLP tillåter en förutbildad LLM för att generera svar på uppgifter som den inte explicit har tränats för (även utan finjustering). När det gäller textklassificering, nollbildstextklassificering är en uppgift inom naturlig språkbehandling där en NLP-modell används för att klassificera text från osynliga klasser, till skillnad från övervakad klassificering, där NLP-modeller endast kan klassificera text som hör till klasser i träningsdata.
Vi lanserade nyligen zero-shot klassificeringsmodellstöd i Amazon SageMaker JumpStart. SageMaker JumpStart är ML-navet i Amazon SageMaker som ger tillgång till förutbildade grundmodeller (FM), LLM, inbyggda algoritmer och lösningsmallar för att hjälpa dig att snabbt komma igång med ML. I det här inlägget visar vi hur du kan utföra nollskottsklassificering med hjälp av förtränade modeller i SageMaker Jumpstart. Du kommer att lära dig hur du använder SageMaker Jumpstart UI och SageMaker Python SDK för att distribuera lösningen och köra slutledning med de tillgängliga modellerna.
Zero-shot lärande
Nollskottsklassificering är ett paradigm där en modell kan klassificera nya, osynliga exempel som tillhör klasser som inte fanns i träningsdatan. Till exempel kan en språkmodell som har tränats för att förstå mänskligt språk användas för att klassificera nyårslöftens tweets på flera klasser som career
, health
och finance
, utan att språkmodellen är explicit tränad på textklassificeringsuppgiften. Detta står i motsats till att finjustera modellen, eftersom den senare innebär att man tränar om modellen (genom överföringsinlärning) medan noll-shot-inlärning inte kräver ytterligare träning.
Följande diagram illustrerar skillnaderna mellan överföringsinlärning (vänster) och nollskottsinlärning (höger).
Yin et al. föreslog ett ramverk för att skapa nollskottsklassificerare med hjälp av naturlig språkinferens (NLI). Ramverket fungerar genom att posera sekvensen som ska klassificeras som en NLI-premiss och konstruerar en hypotes från varje kandidatetikett. Till exempel om vi vill utvärdera om en sekvens tillhör klassen politics
, skulle vi kunna konstruera en hypotes om "Den här texten handlar om politik." Sannolikheterna för innebörd och motsägelse omvandlas sedan till etikettsannolikheter. Som en snabb genomgång överväger NLI två meningar: en premiss och en hypotes. Uppgiften är att avgöra om hypotesen är sann (entailment) eller falsk (motsägelse) givet premissen. Följande tabell ger några exempel.
Premiss | etikett | Hypotes |
En man inspekterar uniformen för en figur i något östasiatiskt land. | Motsägelse | Mannen sover. |
En äldre och yngre man ler. | Neutral | Två män ler och skrattar åt katterna som leker på golvet. |
En fotbollsmatch med flera män som spelar. | medföljande | Vissa män ägnar sig åt en sport. |
Lösningsöversikt
I det här inlägget diskuterar vi följande:
- Så här distribuerar du förtränade zero-shot-textklassificeringsmodeller med SageMaker JumpStart UI och kör inferens på den distribuerade modellen med kort textdata
- Hur man använder SageMaker Python SDK för att komma åt de förtränade nollbildstextklassificeringsmodellerna i SageMaker JumpStart och använda inferensskriptet för att distribuera modellen till en SageMaker-slutpunkt för ett användningsfall för textklassificering i realtid
- Hur man använder SageMaker Python SDK för att komma åt förtränade nollbildstextklassificeringsmodeller och använda SageMaker batchtransform för en grupptextklassificeringsanvändning
SageMaker JumpStart tillhandahåller finjustering och driftsättning med ett klick för en mängd olika förutbildade modeller över populära ML-uppgifter, såväl som ett urval av helhetslösningar som löser vanliga affärsproblem. Dessa funktioner tar bort de tunga lyften från varje steg i ML-processen, vilket förenklar utvecklingen av högkvalitativa modeller och minskar tiden till implementering. De JumpStart API:er låter dig programmera distribuera och finjustera ett stort urval av förtränade modeller på dina egna datamängder.
JumpStart-modellhubben ger tillgång till ett stort antal NLP-modeller som möjliggör överföringsinlärning och finjustering av anpassade datamängder. När detta skrivs innehåller JumpStart-modellhubben över 300 textmodeller över en mängd populära modeller, såsom Stable Diffusion, Flan T5, Alexa TM, Bloom och mer.
Observera att genom att följa stegen i det här avsnittet kommer du att distribuera infrastruktur till ditt AWS-konto som kan medföra kostnader.
Distribuera en fristående nollbildstextklassificeringsmodell
I det här avsnittet visar vi hur man distribuerar en klassificeringsmodell med nollbilder med SageMaker JumpStart. Du kan komma åt förtränade modeller via JumpStart-målsidan i Amazon SageMaker Studio. Slutför följande steg:
- Öppna JumpStart-målsidan i SageMaker Studio.
Hänvisa till Öppna och använd JumpStart för mer information om hur du navigerar till SageMaker JumpStart. - I Textmodeller karusell, leta reda på modellkortet "Zero-Shot Text Classification".
- Välja Visa modell för att komma åt
facebook-bart-large-mnli
modell.
Alternativt kan du söka efter nollskottsklassificeringsmodellen i sökfältet och komma till modellen i SageMaker JumpStart. - Ange en distributionskonfiguration, SageMaker-värdinstanstyp, slutpunktsnamn, Amazon enkel lagringstjänst (Amazon S3) hinknamn och andra nödvändiga parametrar.
- Alternativt kan du ange säkerhetskonfigurationer som AWS identitets- och åtkomsthantering (IAM) roll, VPC-inställningar och AWS nyckelhanteringstjänst (AWS KMS) krypteringsnycklar.
- Välja Distribuera för att skapa en SageMaker-slutpunkt.
Det här steget tar ett par minuter att slutföra. När den är klar kan du köra slutledning mot SageMaker-slutpunkten som är värd för nollskottsklassificeringsmodellen.
I följande video visar vi en genomgång av stegen i det här avsnittet.
Använd JumpStart programmatiskt med SageMaker SDK
I SageMaker JumpStart-delen av SageMaker Studio, under Snabbstartslösningar, kan du hitta lösningsmallar. SageMaker JumpStart-lösningsmallar är ett klick, end-to-end-lösningar för många vanliga ML-användningsfall. När detta skrivs finns över 20 lösningar tillgängliga för flera användningsfall, såsom efterfrågeprognoser, bedrägeriupptäckt och personliga rekommendationer, för att nämna några.
Lösningen "Zero Shot Text Classification with Hugging Face" ger ett sätt att klassificera text utan att behöva träna en modell för specifika etiketter (nollskottsklassificering) genom att använda en förtränad textklassificerare. Standard nollskottsklassificeringsmodellen för denna lösning är facebook-bart-large-mnli (BART) modell. För denna lösning använder vi 2015 års nyårslöften dataset att klassificera resolutioner. En delmängd av den ursprungliga datamängden som endast innehåller Resolution_Category
(ground truth label) och text
kolumner ingår i lösningens tillgångar.
Indata inkluderar textsträngar, en lista över önskade kategorier för klassificering, och om klassificeringen är multi-label eller inte för synkron (realtids) slutledning. För asynkron (batch) slutledning tillhandahåller vi en lista med textsträngar, listan över kategorier för varje sträng och om klassificeringen är multi-label eller inte i en JSON-radformaterad textfil.
Resultatet av slutledningen är ett JSON-objekt som ser ut ungefär som följande skärmdump.
Vi har originaltexten i sequence
fältet, etiketterna som används för textklassificeringen i labels
fältet och sannolikheten som tilldelas varje etikett (i samma ordningsföljd) i fältet scores
.
Utför följande steg för att distribuera Zero Shot Text Classification with Hugging Face-lösningen:
- Välj på SageMaker JumpStart-målsidan Modeller, anteckningsböcker, lösningar i navigeringsfönstret.
- I Lösningar avsnitt väljer Utforska alla lösningar.
- På Lösningar sida, välj modellkortet Zero Shot Text Classification with Hugging Face.
- Granska distributionsdetaljerna och välj om du accepterar Starta.
Implementeringen kommer att tillhandahålla en SageMaker-realtidsslutpunkt för realtidsslutning och en S3-bucket för att lagra batchtransformationsresultaten.
Följande diagram illustrerar arkitekturen för denna metod.
Utför inferens i realtid med hjälp av en klassificeringsmodell med nollbilder
I det här avsnittet granskar vi hur du använder Python SDK för att köra nollbildstextklassificering (med någon av de tillgängliga modellerna) i realtid med hjälp av en SageMaker-slutpunkt.
- Först konfigurerar vi inferensnyttolastbegäran till modellen. Detta är modellberoende, men för BART-modellen är indata ett JSON-objekt med följande struktur:
- Observera att BART-modellen inte är explicit utbildad på
candidate_labels
. Vi kommer att använda nollskottsklassificeringstekniken för att klassificera textsekvensen till osynliga klasser. Följande kod är ett exempel som använder text från datasetet med nyårslöften och de definierade klasserna: - Därefter kan du anropa en SageMaker-slutpunkt med nollskottsnyttolasten. SageMaker-slutpunkten distribueras som en del av SageMaker JumpStart-lösningen.
- Inferenssvarsobjektet innehåller den ursprungliga sekvensen, etiketterna sorterade efter poäng från max till min, och poängen per etikett:
Kör ett SageMaker batchtransformeringsjobb med Python SDK
Det här avsnittet beskriver hur man kör batchtransformeringsinferens med nollskottsklassificeringen facebook-bart-large-mnli
modell med hjälp av SageMaker Python SDK. Slutför följande steg:
- Formatera indata i JSON-linjeformat och ladda upp filen till Amazon S3.
SageMaker batchtransformering kommer att göra slutledning om datapunkterna som laddas upp i S3-filen. - Ställ in artefakter för modelldistribution med följande parametrar:
- modell_id - Använda sig av
huggingface-zstc-facebook-bart-large-mnli
. - deploy_image_uri - Använd
image_uris
Python SDK-funktion för att få den förbyggda SageMaker Docker-bilden förmodel_id
. Funktionen returnerar Amazon Elastic Container Registry (Amazon ECR) URI. - deploy_source_uri – Använd
script_uris
verktygs-API för att hämta S3 URI som innehåller skript för att köra förtränad modellinferens. Vi specificerarscript_scope
asinference
. - model_uri - Använda sig av
model_uri
för att få modellartefakter från Amazon S3 för den angivnamodel_id
.
- modell_id - Använda sig av
- Använda
HF_TASK
att definiera uppgiften för transformatorrörledningen Hugging Face ochHF_MODEL_ID
för att definiera modellen som används för att klassificera texten:För en komplett lista över uppgifter, se Rörledningar i dokumentationen för Hugging Face.
- Skapa ett Hugging Face-modellobjekt som ska distribueras med SageMaker batchtransformeringsjobb:
- Skapa en transformation för att köra ett batchjobb:
- Starta ett batchtransformeringsjobb och använd S3-data som indata:
Du kan övervaka ditt batchbearbetningsjobb på SageMaker-konsolen (välj Batchomvandlingsjobb under Slutledning i navigeringsfönstret). När jobbet är klart kan du kontrollera modellförutsägelsen i S3-filen som anges i output_path
.
För en lista över alla tillgängliga förtränade modeller i SageMaker JumpStart, se Inbyggda algoritmer med förtränad modellbord. Använd nyckelordet "zstc" (förkortning för zero-shot text classification) i sökfältet för att hitta alla modeller som kan göra noll-shot textklassificering.
Städa upp
När du är klar med att köra anteckningsboken, se till att ta bort alla resurser som skapats i processen för att säkerställa att kostnaderna för tillgångarna som distribueras i den här guiden stoppas. Koden för att rensa upp de distribuerade resurserna finns i de anteckningsböcker som är associerade med nollbildstextklassificeringslösningen och modellen.
Standard säkerhetskonfigurationer
SageMaker JumpStart-modellerna distribueras med följande standardsäkerhetskonfigurationer:
För att lära dig mer om SageMaker säkerhetsrelaterade ämnen, kolla in Konfigurera säkerhet i Amazon SageMaker.
Slutsats
I det här inlägget visade vi dig hur du distribuerar en nollbildsklassificeringsmodell med SageMaker JumpStart UI och utför slutledning med den distribuerade slutpunkten. Vi använde SageMaker JumpStart nyårslöften lösning för att visa hur du kan använda SageMaker Python SDK för att bygga en helhetslösning och implementera noll-shot-klassificeringsapplikation. SageMaker JumpStart ger tillgång till hundratals förutbildade modeller och lösningar för uppgifter som datorseende, naturlig språkbehandling, rekommendationssystem och mer. Prova lösningen på egen hand och låt oss veta dina tankar.
Om författarna
David Laredo är en prototyparkitekt på AWS Envision Engineering i LATAM, där han har hjälpt till att utveckla flera prototyper för maskininlärning. Tidigare har han arbetat som Machine Learning Engineer och har hållit på med maskininlärning i över 5 år. Hans intresseområden är NLP, tidsserier och end-to-end ML.
Vikram Elango är en AI/ML Specialist Solutions Architect på Amazon Web Services, baserad i Virginia, USA. Vikram hjälper finans- och försäkringsbranschens kunder med design och tankeledarskap att bygga och distribuera maskininlärningsapplikationer i stor skala. Han är för närvarande fokuserad på naturlig språkbehandling, ansvarsfull AI, slutledningsoptimering och skalning av ML över hela företaget. På fritiden tycker han om att resa, vandra, laga mat och campa med sin familj.
Dr. Vivek Madan är en tillämpad forskare med Amazon SageMaker JumpStart-teamet. Han tog sin doktorsexamen från University of Illinois i Urbana-Champaign och var postdoktor vid Georgia Tech. Han är en aktiv forskare inom maskininlärning och algoritmdesign och har publicerat artiklar på EMNLP-, ICLR-, COLT-, FOCS- och SODA-konferenser.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Fordon / elbilar, Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- ChartPrime. Höj ditt handelsspel med ChartPrime. Tillgång här.
- BlockOffsets. Modernisera miljökompensation ägande. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/zero-shot-text-classification-with-amazon-sagemaker-jumpstart/
- : har
- :är
- :inte
- :var
- $UPP
- 1
- 10
- 100
- 12
- 16
- 17
- 20
- 22
- 30
- 7
- 8
- 9
- a
- förmåga
- Om oss
- ovan
- tillgång
- Konto
- Uppnå
- tvärs
- aktiv
- Annat
- mot
- AI
- AI / ML
- AL
- alexa
- algoritm
- algoritmer
- Alla
- tillåter
- tillåter
- amason
- Amazon SageMaker
- Amazon SageMaker JumpStart
- Amazon Web Services
- mängd
- an
- och
- vilken som helst
- api
- Ansökan
- tillämpningar
- tillämpas
- arkitektur
- ÄR
- områden
- AS
- asiatisk
- Tillgångar
- delad
- associerad
- At
- automatiskt
- tillgänglig
- AWS
- bar
- bas
- baserat
- BE
- varit
- Där vi får lov att vara utan att konstant prestera,
- tillhör
- mellan
- Bloom
- kropp
- Böcker
- Frukost
- SLUTRESULTAT
- inbyggd
- företag
- men
- by
- KAN
- kandidat
- kapabel
- kortet
- Karriär
- Karusellen
- fall
- kategorier
- Katter
- utmanande
- ta
- Välja
- klass
- klasser
- klassificering
- klassificerad
- klassificera
- koda
- Kolonner
- Gemensam
- fullborda
- Komplexiteten
- dator
- Datorsyn
- datorer
- aktuella
- konferenser
- konfiguration
- anser
- Konsol
- konstruera
- Behållare
- innehåller
- Däremot
- konverterad
- Kostar
- kunde
- land
- Par
- skapa
- skapas
- Skapa
- För närvarande
- beställnings
- Kunder
- datum
- datapunkter
- datauppsättningar
- dedicerad
- Standard
- definiera
- definierade
- Efterfrågan
- Förfrågan om efterfrågan
- demonstrera
- beroenden
- beroende
- distribuera
- utplacerade
- utplacering
- Designa
- önskas
- detaljer
- Detektering
- Bestämma
- utveckla
- Utveckling
- skillnader
- Diffusion
- diskutera
- Mångfald
- Hamnarbetare
- dokumentation
- inte
- gör
- gjort
- grund
- E&T
- varje
- öster
- Utbildning
- möjliggöra
- kryptering
- början till slut
- Slutpunkt
- ingenjör
- Teknik
- säkerställa
- Företag
- enhet
- envision
- utvärdera
- Även
- exempel
- exempel
- Ansikte
- falsk
- familj
- Funktioner
- få
- fält
- Figur
- Fil
- finansiering
- finansiella
- hitta
- Golv
- fokuserade
- efter
- För
- format
- fundament
- Ramverk
- bedrägeri
- spårning av bedrägerier
- från
- fungera
- lek
- generera
- georgien
- skaffa sig
- GitHub
- ges
- Ge
- Marken
- Tillväxt
- styra
- Arbetsmiljö
- Har
- he
- Hälsa
- tung
- tunga lyft
- hjälpa
- hjälpte
- hjälper
- hög kvalitet
- hans
- värd
- värdar
- Hur ser din drömresa ut
- How To
- html
- http
- HTTPS
- Nav
- humant
- humor
- Hundratals
- hundratals miljoner
- ID
- Identitet
- if
- Illinois
- illustrerar
- bild
- genomföra
- importera
- in
- ingår
- innefattar
- industrin
- informationen
- Infrastruktur
- inneboende
- ingång
- ingångar
- exempel
- försäkring
- intresse
- IT
- Jobb
- Lediga jobb
- jpg
- json
- Nyckel
- nycklar
- Vet
- etikett
- Etiketter
- landning
- språk
- Large
- LATAM
- lanserades
- Ledarskap
- LÄRA SIG
- inlärning
- vänster
- Låt
- lyft
- tycka om
- linje
- rader
- Lista
- LLM
- läser in
- UTSEENDE
- Maskinen
- maskininlärning
- göra
- GÖR
- människa
- ledning
- många
- max
- Maj..
- Män
- metod
- miljoner
- min
- minuter
- ML
- modell
- modeller
- Övervaka
- mer
- multipel
- my
- namn
- Natural
- Naturlig språkbehandling
- Navigera
- Navigering
- Behöver
- Nya
- nytt år
- nlp
- Nej
- anteckningsbok
- antal
- objektet
- of
- on
- endast
- öppet
- optimering
- or
- beställa
- organisationer
- ursprungliga
- Övriga
- ut
- produktion
- över
- egen
- sida
- panelen
- papper
- paradigmet
- parametrar
- del
- bana
- för
- Utföra
- prestanda
- behörigheter
- personlig
- personlig
- phd
- FILANTROPI
- rörledning
- plato
- Platon Data Intelligence
- PlatonData
- i
- poäng
- politiska
- Populära
- Inlägg
- praktiken
- förutsägelse
- Förutsägelser
- presentera
- tidigare
- problem
- process
- bearbetning
- föreslagen
- prototyper
- prototyping
- ge
- förutsatt
- ger
- tillhandahållande
- publicerade
- Python
- pytorch
- Snabbt
- snabbt
- Läsa
- verklig
- realtid
- nyligen
- erkännande
- Rekommendation
- rekommendationer
- reducerande
- ta bort
- begära
- kräver
- Obligatorisk
- forskaren
- Resurser
- respons
- svar
- ansvarig
- resultera
- Resultat
- återgår
- översyn
- höger
- Roll
- Körning
- rinnande
- s
- sagemaker
- Samma
- Save
- Skala
- skalning
- Forskare
- göra
- repa
- skript
- rullning
- sDK
- Sök
- §
- säkerhet
- se
- Val
- Sekvens
- Serier
- Tjänster
- inställningar
- Kort
- skott
- show
- visade
- Enkelt
- förenkla
- eftersom
- Storlek
- Fotboll
- lösning
- Lösningar
- LÖSA
- några
- något
- tala
- specialist
- specifik
- specifikt
- specificerade
- talat
- Sporter
- stabil
- fristående
- starta
- igång
- state-of-the-art
- bo
- Steg
- Steg
- slutade
- förvaring
- misslyckande
- Sträng
- struktur
- studio
- sådana
- stödja
- säker
- System
- bord
- Ta
- tar
- uppgift
- uppgifter
- grupp
- tech
- mallar
- Textklassificering
- den där
- Smakämnen
- deras
- sedan
- Dessa
- detta
- trodde
- tanke ledarskap
- Genom
- tid
- Tidsföljder
- TM
- till
- ämnen
- Tåg
- tränad
- Utbildning
- överföring
- Förvandla
- Transformation
- transformator
- transformatorer
- Traveling
- Biljon
- sann
- sanningen
- prova
- tweets
- två
- Typ
- ui
- under
- förstå
- universitet
- uppladdad
- us
- användning
- Begagnade
- med hjälp av
- verktyg
- mängd
- Omfattande
- version
- mycket
- Video
- Virginia
- syn
- vs
- genomgång
- vill
- var
- Sätt..
- we
- webb
- webbservice
- VÄL
- były
- när
- om
- medan
- vars
- bred
- kommer
- med
- utan
- ord
- arbetade
- fungerar
- skrivning
- år
- år
- Om er
- Yngre
- Din
- zephyrnet
- noll-
- Zero-Shot Learning