I det här inlägget visar vi dig hur du implementerar en av de mest nedladdade Hugging Face förtränade modellerna som används för textsammanfattning, DistilBART-CNN-12-6, i en Jupyter-anteckningsbok med hjälp av Amazon SageMaker och SageMaker Hugging Face Inference Toolkit. Baserat på stegen som visas i det här inlägget kan du prova att sammanfatta text från Wikitext-2 dataset hanteras av fast.ai, tillgänglig på Register över öppna data på AWS.
Globala datavolymer växer i zettabyte-skala när företag och konsumenter utökar sin användning av digitala produkter och onlinetjänster. För att bättre förstå denna växande data, har maskininlärning (ML) naturliga språkbehandlingstekniker (NLP) för textanalys utvecklats för att hantera användningsfall som involverar textsammanfattning, enhetsigenkänning, klassificering, översättning och mer. AWS erbjuder förutbildade AWS AI-tjänster som kan integreras i applikationer med API-anrop och kräver ingen ML-erfarenhet. Till exempel, Amazon Comprehend kan utföra NLP-uppgifter som anpassad enhetsigenkänning, sentimentanalys, nyckelfrasextraktion, ämnesmodellering och mer för att samla in insikter från text. Den kan prestera textanalys på en mängd olika språk för dess olika egenskaper.
Textsammanfattning är en användbar teknik för att förstå stora mängder textdata eftersom den skapar en delmängd av kontextuellt meningsfull information från källdokument. Du kan tillämpa denna NLP-teknik på textdokument och artiklar i längre format, vilket möjliggör snabbare konsumtion och effektivare dokumentindexering, till exempel för att sammanfatta samtalsanteckningar från möten.
Kramande ansikte är ett populärt bibliotek med öppen källkod för NLP, med över 49,000 185 förtränade modeller på mer än XNUMX språk med stöd för olika ramverk. AWS och Hugging Face har en partnerskap som möjliggör en sömlös integration genom SageMaker med en uppsättning AWS Deep Learning Containers (DLC) för träning och slutledning i PyTorch eller TensorFlow, och Hugging Face-estimatorer och prediktorer för SageMaker Python SDK. Dessa funktioner i SageMaker hjälper utvecklare och datavetare att lättare komma igång med NLP på AWS. Att bearbeta texter med transformatorer i ramverk för djupinlärning som PyTorch är vanligtvis en komplex och tidskrävande uppgift för datavetare, vilket ofta leder till frustration och bristande effektivitet när de utvecklar NLP-projekt. Framväxten av AI-gemenskaper som Hugging Face, kombinerat med kraften hos ML-tjänster i molnet som SageMaker, påskyndar och förenklar utvecklingen av dessa textbearbetningsuppgifter. SageMaker hjälper dig att bygga, träna, distribuera och operationalisera Hugging Face-modeller.
Textsammanfattningsöversikt
Du kan använda textsammanfattning för att identifiera nyckelmeningar i ett dokument eller identifiera nyckelmeningar i flera dokument. Textsammanfattning kan producera två typer av sammanfattningar: extraktiv och abstrakt. Extraktiva sammanfattningar innehåller ingen maskingenererad text och är en samling viktiga meningar valda från inmatningsdokumentet. Abstraktiva sammanfattningar innehåller nya läsbara fraser och meningar som genereras av textsammanfattningsmodellen. De flesta textsammanfattningssystem är baserade på extraktiv sammanfattning eftersom korrekt abstrakt textsammanfattning är svår att uppnå.
Hugging Face har över 400 förutbildade toppmoderna tillgängliga textsammanfattningsmodeller, implementering av olika kombinationer av NLP-tekniker. Dessa modeller tränas på olika datamängder, laddas upp och underhålls av teknikföretag och medlemmar i Hugging Face-communityt. Du kan filtrera modellerna efter mest nedladdade eller mest gillade, och ladda dem direkt när du använder summeringspipeline Hugging Face transformer API. Hugging Face-transformatorn förenklar NLP-implementeringsprocessen så att högpresterande NLP-modeller kan finjusteras för att leverera textsammanfattningar, utan att kräva omfattande ML-kunskaper.
Hugging Face textsammanfattningsmodeller på AWS
SageMaker erbjuder affärsanalytiker, datavetare och MLOps-ingenjörer ett urval av verktyg för att designa och driva ML-arbetsbelastningar på AWS. Dessa verktyg ger dig snabbare implementering och testning av ML-modeller för att uppnå dina optimala resultat.
Från SageMaker Hugging Face Inference Toolkit, ett bibliotek med öppen källkod, beskriver vi tre olika sätt att implementera och vara värd för textsammanfattningsmodeller för Hugging Face med hjälp av en Jupyter-anteckningsbok:
- Kramar Face summering pipeline - Skapa en Kramar Face summering pipeline använda "
summarization
” uppgiftsidentifierare för att använda en standardtextsammanfattningsmodell för slutledning i din Jupyter-anteckningsbok. Dessa pipelines abstraherar den komplexa koden och erbjuder nybörjare inom ML-utövare ett enkelt API för att snabbt implementera textsammanfattning utan att konfigurera en slutpunkt för slutledning. Pipelinen tillåter också ML-utövaren att välja en specifik förtränad modell och dess tillhörande tokenizer. Tokenizers förbereder text för att vara redo som indata för modellen genom att dela upp text i ord eller underord, som sedan konverteras till ID:n genom en uppslagstabell. För enkelhetens skull tillhandahåller följande kodavsnitt standardfallet vid användning av pipelines. De DistilBART-CNN-12-6 modell är en av de mest nedladdade sammanfattningsmodellerna på Hugging Face och är den standardmodell för summeringspipelinen. Den sista raden anropar den förtränade modellen för att få en sammanfattning av den godkända texten givet de två angivna argumenten. - SageMaker slutpunkt med förtränad modell – Skapa en SageMaker-slutpunkt med en förtränad modell från Hugging Face Model Hub och distribuera den på en slutpunkt för slutledning, såsom ml.m5.xlarge-instansen i följande kodavsnitt. Denna metod tillåter erfarna ML-utövare att snabbt välja specifika modeller med öppen källkod, finjustera dem och distribuera modellerna på högpresterande slutledningsinstanser.
- SageMaker slutpunkt med en utbildad modell – Skapa en SageMaker-modellslutpunkt med en tränad modell lagrad i en Amazon enkel lagringstjänst (Amazon S3) hink och distribuera den på en slutpunkt för slutledning. Denna metod tillåter erfarna ML-utövare att snabbt distribuera sina egna modeller lagrade på Amazon S3 på högpresterande slutledningsinstanser. Själva modellen laddas ner från Hugging Face och komprimeras, och kan sedan laddas upp till Amazon S3. Detta steg visas i följande kodavsnitt:
AWS har flera tillgängliga resurser för att hjälpa dig att distribuera dina ML-arbetsbelastningar. De Maskininlärningsobjektiv av AWS Well Architected Framework rekommenderar bästa praxis för ML-arbetsbelastningar, inklusive optimering av resurser och sänkta kostnader. Dessa rekommenderade designprinciper säkerställer att väl utformade ML-arbetsbelastningar på AWS distribueras till produktion. Amazon SageMaker Inference Recommender hjälper dig att välja rätt instans för att distribuera dina ML-modeller till optimal slutledningsprestanda och kostnad. Inference Recommender påskyndar modelldistributionen och minskar tiden till marknaden genom att automatisera belastningstestning och optimera modellprestanda över ML-instanser.
I nästa avsnitt visar vi hur man laddar en tränad modell från en S3-skopa och distribuerar den till en lämplig slutledningsinstans.
Förutsättningar
För detta genomgång bör du ha följande förutsättningar:
- An AWS-konto.
- En Jupyter-anteckningsbok inuti Amazon SageMaker Studio eller SageMaker notebook-instanser. I det här inlägget använder vi bilden "Python 3 (PyTorch 1.4 Python 3.6 CPU Optimized)" med de medföljande kodavsnitten, men du kan använda vilken annan PyTorch-bild som helst i högre version från tillgängliga SageMaker-kärnor.
- En datauppsättning i din S3-bucket, till exempel Wikitext-2 dataset från Register över öppna data på AWS.
Ladda Hugging Face-modellen till SageMaker för slutledning av textsammanfattning
Använd följande kod för att ladda ner den förtränade textsammanfattningsmodellen för Hugging Face DistilBART-CNN-12-6 och dess tokenizer, och spara dem lokalt i SageMaker i din Jupyter-anteckningsbokkatalog:
Komprimera den sparade textsammanfattningsmodellen och dess tokenizer till tar.gz-format och ladda upp den komprimerade modellartefakten till en S3-hink:
Välj en slutledning Docker-containerbild för att utföra slutledning av textsammanfattning. Definiera Linux OS, PyTorch-ramverket och Hugging Face Transformer-versionen och ange Amazon Elastic Compute Cloud (Amazon EC2) instanstyp för att köra behållaren.
Docker-bilden är tillgänglig i Amazon Elastic Container Registry (Amazon ECR) för samma AWS-konto, och länken för den behållarbilden returneras som en URI.
Definiera textsammanfattningsmodellen som ska distribueras av den valda behållarbilden som utför slutledning. I följande kodavsnitt distribueras den komprimerade modellen som laddats upp till Amazon S3:
Testa den distribuerade textsammanfattningsmodellen på ett exempel:
Använd Inference Recommender för att utvärdera den optimala EC2-instansen för slutledningsuppgiften
Skapa sedan flera nyttolastexempel av inmatad text i JSON-format och komprimera dem till en enda nyttolastfil. Dessa nyttolastprover används av Inference Recommender för att jämföra slutledningsprestanda mellan olika EC2-instanstyper. Var och en av exempelnyttolasten måste matcha JSON-formatet som visades tidigare. Du kan få exempel från Wikitext-2 dataset hanteras av fast.ai, tillgänglig på Register över öppna data på AWS.
Ladda upp den komprimerade textsammanfattningsmodellartefakten och den komprimerade exempelnyttolastfilen till S3-skopan. Vi laddade upp modellen i ett tidigare steg, men för tydlighetens skull inkluderar vi koden för att ladda upp den igen:
Granska listan över standard ML-modeller tillgängliga på SageMaker överallt vanliga djurparker, såsom NLP och datorseende. Välj en NLP-modell för att utföra slutledning av textsammanfattning:
Följande exempel använder bert-base-cased
NLP-modell. Registrera textsammanfattningsmodellen i SageMaker-modellregister med den korrekt identifierade domänen, ramverket och uppgiften från föregående steg. Parametrarna för det här exemplet visas i början av följande kodavsnitt.
Notera intervallet av EC2-instanstyper som ska utvärderas av Inference Recommender under SupportedRealtimeInferenceInstanceTypes
i följande kod. Se till att servicegränser för AWS-kontot tillåta utplacering av dessa typer av slutledningsnoder.
Skapa ett Inference Recommender-standardjobb med hjälp av ModelPackageVersion
som härrör från föregående steg. De uuid
Python-biblioteket används för att skapa ett unikt namn för jobbet.
Du kan få status för Inference Recommender-jobbet genom att köra följande kod:
När jobbstatus är COMPLETED
, jämför slutledningslatens, körtid och andra mätvärden för EC2-instanstyperna som utvärderas av standardjobbet Inference Recommender. Välj lämplig nodtyp baserat på dina användningsfallskrav.
Slutsats
SageMaker erbjuder flera sätt att använda Hugging Face-modeller; för fler exempel, kolla in AWS Samples GitHub. Beroende på komplexiteten i användningsfallet och behovet av att finjustera modellen kan du välja det optimala sättet att använda dessa modeller. Hugging Face pipelines kan vara en bra utgångspunkt för att snabbt experimentera och välja lämpliga modeller. När du behöver anpassa och parametrisera de valda modellerna kan du ladda ner modellerna och distribuera dem till anpassade slutpunkter. För att finjustera modellen mer för ett specifikt användningsfall måste du träna modellen efter att ha laddat ner den.
NLP-modeller i allmänhet, inklusive textsammanfattningsmodeller, presterar bättre efter att ha tränats på en datauppsättning som är specifik för användningsfallet. MLOP:erna och modellövervakningsfunktionerna i SageMaker ser till att den distribuerade modellen fortsätter att prestera enligt förväntningarna. I det här inlägget använde vi Inference Recommender för att utvärdera den bäst lämpade instanstypen för att distribuera textsammanfattningsmodellen. Dessa rekommendationer kan optimera prestanda och kostnad för ditt ML-användningsfall.
Om författarna
Dr Nidal AlBeiruti är Senior Solutions Architect på Amazon Web Services, med en passion för maskininlärningslösningar. Nidal har över 25 års erfarenhet av att arbeta i en mängd olika globala IT-roller på olika nivåer och vertikaler. Nidal fungerar som en pålitlig rådgivare för många AWS-kunder för att stödja och påskynda deras molnanpassningsresa.
Darren Ko är en lösningsarkitekt baserad i London. Han ger SMB-kunder i Storbritannien och Irland råd om omarkitektur och innovation i molnet. Darren är intresserad av applikationer byggda med serverlösa arkitekturer och han brinner för att lösa hållbarhetsutmaningar med maskininlärning.
- '
- "
- 000
- 10
- 100
- 28
- a
- Om oss
- SAMMANDRAG
- accelerera
- Konto
- exakt
- Uppnå
- tvärs
- adress
- Antagande
- rådgivare
- AI
- tillåter
- amason
- Amazon Web Services
- mängder
- analys
- api
- Apple
- tillämpningar
- Ansök
- argument
- artiklar
- associerad
- automatisera
- tillgänglig
- tilldelas
- AWS
- därför att
- Börjar
- Där vi får lov att vara utan att konstant prestera,
- BÄST
- bästa praxis
- mellan
- SLUTRESULTAT
- företag
- Ring
- Kan få
- kapacitet
- Vid
- fall
- utmaningar
- val
- klass
- klassificering
- cloud
- koda
- samling
- kombinationer
- kombinerad
- samhällen
- samfundet
- Företag
- komplex
- Compute
- dator
- konfiguration
- konsumenter
- konsumtion
- Behållare
- Behållare
- fortsätter
- skapa
- skapar
- beställnings
- Kunder
- skräddarsy
- datum
- dag
- djup
- leverans
- demonstrera
- demonstreras
- beroende
- distribuera
- utplacerade
- utplacera
- utplacering
- Designa
- utvecklare
- utveckla
- Utveckling
- olika
- svårt
- digital
- direkt
- Visa
- Hamnarbetare
- läkare
- dokument
- domän
- domäner
- ladda ner
- varje
- lätt
- Effektiv
- effektivitet
- möjliggör
- Slutpunkt
- Ingenjörer
- enhet
- Miljö
- utvärdera
- exempel
- exempel
- Bygga ut
- förväntningar
- erfarenhet
- erfaren
- experimentera
- omfattande
- Ansikte
- SNABB
- snabbare
- Funktioner
- efter
- format
- Ramverk
- ramar
- från
- Allmänt
- generera
- genereras
- Välgörenhet
- god
- Odling
- hjälpa
- hjälp
- hjälper
- högre
- Hur ser din drömresa ut
- How To
- HTTPS
- Nav
- läsbar
- identifiera
- bild
- genomföra
- genomförande
- genomföra
- med Esport
- innefattar
- Inklusive
- informationen
- nyskapande
- ingång
- insikter
- exempel
- integrerade
- integrering
- intresserad
- irland
- IT
- sig
- Jobb
- resa
- Nyckel
- kunskap
- språk
- Språk
- Large
- ledande
- inlärning
- nivåer
- Bibliotek
- gränser
- linje
- LINK
- linux
- Lista
- läsa in
- lokalt
- london
- slå upp
- Maskinen
- maskininlärning
- göra
- marknad
- Match
- meningsfull
- möten
- Medlemmar
- Metrics
- ML
- modell
- modeller
- övervakning
- mer
- mest
- multipel
- Natural
- Nästa
- noder
- anteckningsbok
- Anmärkningar
- erbjuda
- Erbjudanden
- nätet
- öppet
- driva
- drift
- Optimera
- optimerad
- optimera
- Övriga
- egen
- brinner
- brinner
- prestanda
- utför
- fraser
- Punkt
- Populära
- kraft
- Förbered
- föregående
- process
- bearbetning
- producera
- Produktion
- Produkter
- projekt
- ge
- förutsatt
- ger
- snabbt
- område
- rekommenderar
- reducerande
- region
- registrera
- begära
- kräver
- Krav
- Resurser
- resulterande
- Roll
- Körning
- rinnande
- Samma
- Skala
- vetenskapsmän
- sDK
- sömlös
- vald
- känsla
- Server
- Tjänster
- in
- flera
- visas
- Enkelt
- enda
- So
- Lösningar
- specifik
- hastigheter
- standard
- igång
- state-of-the-art
- status
- förvaring
- stödja
- Hållbarhet
- System
- uppgifter
- tekniker
- Teknologi
- Testning
- Smakämnen
- tre
- Genom
- tid
- tidskrävande
- verktyg
- ämne
- Utbildning
- Översättning
- betrodd
- typer
- typiskt
- Uk
- under
- förstå
- förståelse
- unika
- användning
- mängd
- olika
- version
- vertikaler
- syn
- volymer
- sätt
- webb
- webbservice
- inom
- utan
- ord
- arbetssätt
- X
- år
- Din