I dette innlegget viser vi deg hvordan du implementerer en av de mest nedlastede Hugging Face ferdigtrente modellene som brukes til tekstoppsummering, DistilBART-CNN-12-6, i en Jupyter-notisbok ved hjelp av Amazon SageMaker og SageMaker Hugging Face Inference Toolkit. Basert på trinnene vist i dette innlegget, kan du prøve å oppsummere tekst fra WikiText-2 datasett administrert av fast.ai, tilgjengelig på Register for åpne data på AWS.
Globale datavolumer vokser i zettabyte-skala ettersom selskaper og forbrukere utvider bruken av digitale produkter og nettjenester. For å bedre forstå disse voksende dataene, har maskinlæringsteknikker (ML) naturlig språkbehandling (NLP) for tekstanalyse utviklet seg for å adressere brukstilfeller som involverer tekstoppsummering, enhetsgjenkjenning, klassifisering, oversettelse og mer. AWS tilbyr forhåndstrente AWS AI-tjenester som kan integreres i applikasjoner ved hjelp av API-kall og krever ingen ML-erfaring. For eksempel, Amazon Comprehend kan utføre NLP-oppgaver som tilpasset enhetsgjenkjenning, sentimentanalyse, uttrekk av nøkkelfrase, emnemodellering og mer for å samle inn innsikt fra tekst. Den kan prestere tekstanalyse på en lang rekke språk for sine ulike funksjoner.
Tekstoppsummering er en nyttig teknikk for å forstå store mengder tekstdata fordi den skaper en undergruppe av kontekstuelt meningsfull informasjon fra kildedokumenter. Du kan bruke denne NLP-teknikken på lengre tekstdokumenter og artikler, noe som muliggjør raskere forbruk og mer effektiv dokumentindeksering, for eksempel for å oppsummere anropsnotater fra møter.
Klemme ansiktet er et populært bibliotek med åpen kildekode for NLP, med over 49,000 185 ferdigtrente modeller på mer enn XNUMX språk med støtte for ulike rammeverk. AWS og Hugging Face har en partnerskap som tillater en sømløs integrasjon gjennom SageMaker med et sett med AWS Deep Learning Containers (DLC) for opplæring og slutning i PyTorch eller TensorFlow, og Hugging Face-estimatorer og prediktorer for SageMaker Python SDK. Disse egenskapene i SageMaker hjelper utviklere og dataforskere å komme lettere i gang med NLP på AWS. Å behandle tekster med transformatorer i rammeverk for dyp læring som PyTorch er typisk en kompleks og tidkrevende oppgave for dataforskere, som ofte fører til frustrasjon og manglende effektivitet når de utvikler NLP-prosjekter. Fremveksten av AI-samfunn som Hugging Face, kombinert med kraften til ML-tjenester i skyen som SageMaker, akselererer og forenkler utviklingen av disse tekstbehandlingsoppgavene. SageMaker hjelper deg med å bygge, trene, distribuere og operasjonalisere Hugging Face-modeller.
Oversikt over tekstsammendrag
Du kan bruke tekstoppsummering for å identifisere nøkkelsetninger i et dokument eller identifisere nøkkelsetninger på tvers av flere dokumenter. Tekstoppsummering kan produsere to typer oppsummeringer: ekstraktiv og abstrakt. Ekstraktive sammendrag inneholder ingen maskingenerert tekst og er en samling viktige setninger valgt fra inndatadokumentet. Abstraktive sammendrag inneholder nye menneskelesbare fraser og setninger generert av tekstoppsummeringsmodellen. De fleste tekstoppsummeringssystemer er basert på ekstraktiv oppsummering fordi nøyaktig abstrakt tekstoppsummering er vanskelig å oppnå.
Hugging Face har over 400 forhåndstrente state-of-the-art tekstoppsummeringsmodeller tilgjengelig, implementering av forskjellige kombinasjoner av NLP-teknikker. Disse modellene er trent på forskjellige datasett, lastet opp og vedlikeholdt av teknologiselskaper og medlemmer av Hugging Face-fellesskapet. Du kan filtrere modellene etter mest nedlastede eller mest likte, og laste dem direkte når du bruker oppsummeringspipeline Hugging Face transformer API. Hugging Face-transformatoren forenkler NLP-implementeringsprosessen slik at NLP-modeller med høy ytelse kan finjusteres for å levere tekstsammendrag, uten å kreve omfattende kunnskap om ML-drift.
Hugging Face tekstoppsummeringsmodeller på AWS
SageMaker tilbyr forretningsanalytikere, dataforskere og MLOps-ingeniører et utvalg verktøy for å designe og drifte ML-arbeidsbelastninger på AWS. Disse verktøyene gir deg raskere implementering og testing av ML-modeller for å oppnå dine optimale resultater.
Fra SageMaker Hugging Face Inference Toolkit, et bibliotek med åpen kildekode, skisserer vi tre forskjellige måter å implementere og være vert for tekstoppsummeringsmodeller for Hugging Face ved å bruke en Jupyter-notisbok:
- Hugging Face oppsummeringspipeline - Lage en Hugging Face oppsummeringspipeline bruker "
summarization
” oppgaveidentifikator for å bruke en standard tekstoppsummeringsmodell for slutninger i Jupyter-notisboken. Disse rørledningene abstraherer den komplekse koden, og tilbyr nybegynnere av ML-utøvere en enkel API for raskt å implementere tekstoppsummering uten å konfigurere et sluttpunkt for slutninger. Rørledningen lar også ML-utøveren velge en spesifikk forhåndstrent modell og tilhørende tokenizer. Tokenizere forbereder tekst for å være klar som input for modellen ved å dele tekst i ord eller underord, som deretter konverteres til IDer gjennom en oppslagstabell. For enkelhets skyld gir følgende kodebit standardtilfelle ved bruk av rørledninger. De DistilBART-CNN-12-6 modell er en av de mest nedlastede oppsummeringsmodellene på Hugging Face og er standardmodell for oppsummeringspipeline. Den siste linjen kaller den forhåndstrente modellen for å få et sammendrag for den beståtte teksten gitt de to argumentene som er gitt. - SageMaker endepunkt med ferdigtrent modell – Lag et SageMaker-endepunkt med en forhåndstrent modell fra Hugging Face Model Hub og distribuer den på et inferensendepunkt, for eksempel ml.m5.xlarge-forekomsten i følgende kodebit. Denne metoden lar erfarne ML-utøvere raskt velge spesifikke åpen kildekode-modeller, finjustere dem og distribuere modellene til høyytende slutningsforekomster.
- SageMaker endepunkt med trent modell – Lag et SageMaker-modellendepunkt med en opplært modell lagret i en Amazon enkel lagringstjeneste (Amazon S3) bøtte og distribuer den på et sluttpunkt. Denne metoden lar erfarne ML-utøvere raskt distribuere sine egne modeller lagret på Amazon S3 på høyytende slutningsforekomster. Selve modellen lastes ned fra Hugging Face og komprimeres, og kan deretter lastes opp til Amazon S3. Dette trinnet er demonstrert i følgende kodebit:
AWS har flere ressurser tilgjengelig for å hjelpe deg med å distribuere ML-arbeidsbelastningene dine. De Maskinlæringsobjektiv av AWS Well Architected Framework anbefaler beste praksis for ML-arbeidsmengder, inkludert optimalisering av ressurser og reduksjon av kostnader. Disse anbefalte designprinsippene sikrer at godt utformede ML-arbeidsbelastninger på AWS distribueres til produksjon. Amazon SageMaker Inference Recommender hjelper deg å velge riktig forekomst for å distribuere ML-modellene dine til optimal slutningsytelse og kostnad. Inference Recommender øker hastigheten på modelldistribusjon og reduserer tiden til markedet ved å automatisere belastningstesting og optimalisere modellytelsen på tvers av ML-forekomster.
I de neste avsnittene viser vi hvordan du laster en trent modell fra en S3-skuffe og distribuerer den til en passende slutningsforekomst.
Forutsetninger
For dette gjennomgangen bør du ha følgende forutsetninger:
- An AWS-konto.
- En Jupyter-notisbok inni Amazon SageMaker Studio eller SageMaker notatbokforekomster. I dette innlegget bruker vi "Python 3 (PyTorch 1.4 Python 3.6 CPU Optimized)"-bildet med de medfølgende kodebitene, men du kan bruke en hvilken som helst annen høyere versjon av PyTorch-bildet fra tilgjengelige SageMaker-kjerner.
- Et datasett i S3-bøtten din, for eksempel WikiText-2 datasett fra Register for åpne data på AWS.
Last Hugging Face-modellen til SageMaker for tekstoppsummering
Bruk følgende kode for å laste ned den forhåndstrente tekstoppsummeringsmodellen for Hugging Face DistilBART-CNN-12-6 og dens tokenizer, og lagre dem lokalt i SageMaker i Jupyter-notebook-katalogen din:
Komprimer den lagrede tekstoppsummeringsmodellen og dens tokenizer til tar.gz-format og last opp den komprimerte modellartefakten til en S3-bøtte:
Velg en slutning Docker-beholderbilde for å utføre tekstoppsummeringsslutningen. Definer Linux OS, PyTorch-rammeverket og Hugging Face Transformer-versjonen og spesifiser Amazon Elastic Compute Cloud (Amazon EC2) forekomsttype for å kjøre beholderen.
Docker-bildet er tilgjengelig i Amazon Elastic Container Registry (Amazon ECR) for samme AWS-konto, og koblingen for det beholderbildet returneres som en URI.
Definer tekstoppsummeringsmodellen som skal distribueres av det valgte beholderbildet som utfører inferens. I følgende kodebit er den komprimerte modellen lastet opp til Amazon S3 distribuert:
Test den utplasserte tekstoppsummeringsmodellen på et eksempelinndata:
Bruk Inference Recommender for å evaluere den optimale EC2-forekomsten for slutningsoppgaven
Deretter oppretter du flere nyttelasteksempler av inndatatekst i JSON-format og komprimerer dem til en enkelt nyttelastfil. Disse nyttelastprøvene brukes av Inference Recommender for å sammenligne slutningsytelse mellom forskjellige EC2-instanstyper. Hver av prøvenyttelastene må samsvare med JSON-formatet vist tidligere. Du kan få eksempler fra WikiText-2 datasett administrert av fast.ai, tilgjengelig på Register for åpne data på AWS.
Last opp den komprimerte tekstsammendragsmodellartefakten og den komprimerte prøven av nyttelastfilen til S3-bøtten. Vi lastet opp modellen i et tidligere trinn, men for klarhetens skyld inkluderer vi koden for å laste den opp igjen:
Se gjennom listen over standard ML-modeller tilgjengelig på SageMaker på tvers vanlige modelldyrehager, slik som NLP og datasyn. Velg en NLP-modell for å utføre tekstoppsummeringsslutningen:
Følgende eksempel bruker bert-base-cased
NLP-modell. Registrer tekstoppsummeringsmodellen i SageMaker modellregister med riktig identifisert domene, rammeverk og oppgave fra forrige trinn. Parametrene for dette eksemplet vises i begynnelsen av følgende kodebit.
Legg merke til utvalget av EC2-forekomsttyper som skal evalueres av Inference Recommender under SupportedRealtimeInferenceInstanceTypes
i følgende kode. Sørg for at tjenestegrenser for AWS-kontoen tillate utplassering av disse typene inferensnoder.
Opprett en standardjobb for Inference Recommender ved å bruke ModelPackageVersion
som følge av forrige trinn. De uuid
Python-biblioteket brukes til å generere et unikt navn for jobben.
Du kan få statusen til Inference Recommender-jobben ved å kjøre følgende kode:
Når jobbstatusen er COMPLETED
, sammenligne inferensforsinkelse, kjøretid og andre beregninger for EC2-forekomsttypene evaluert av standardjobben Inference Recommender. Velg den passende nodetypen basert på kravene til brukstilfeller.
konklusjonen
SageMaker tilbyr flere måter å bruke Hugging Face-modeller på; for flere eksempler, sjekk ut AWS-eksempler på GitHub. Avhengig av kompleksiteten til brukssaken og behovet for å finjustere modellen, kan du velge den optimale måten å bruke disse modellene på. Hugging Face-rørledningene kan være et godt utgangspunkt for raskt å eksperimentere og velge passende modeller. Når du trenger å tilpasse og parameterisere de valgte modellene, kan du laste ned modellene og distribuere dem til tilpassede slutningsendepunkter. For å finjustere modellen mer for en spesifikk brukstilfelle, må du trene modellen etter at du har lastet den ned.
NLP-modeller generelt, inkludert tekstoppsummeringsmodeller, gir bedre resultater etter å ha blitt trent på et datasett som er spesifikt for brukstilfellet. MLOP-ene og modellovervåkingsfunksjonene til SageMaker sørger for at den distribuerte modellen fortsetter å yte innenfor forventningene. I dette innlegget brukte vi Inference Recommender for å evaluere den best egnede forekomsttypen for å distribuere tekstoppsummeringsmodellen. Disse anbefalingene kan optimalisere ytelsen og kostnadene for ML-brukssaken.
Om forfatterne
Dr. Nidal AlBeiruti er senior løsningsarkitekt hos Amazon Web Services, med en lidenskap for maskinlæringsløsninger. Nidal har over 25 års erfaring med å jobbe i en rekke globale IT-roller på ulike nivåer og vertikaler. Nidal fungerer som en pålitelig rådgiver for mange AWS-kunder for å støtte og akselerere deres skyadopsjonsreise.
Darren Ko er en løsningsarkitekt basert i London. Han gir råd til SMB-kunder i Storbritannia og Irland om ombygging og innovasjon i skyen. Darren er interessert i applikasjoner bygget med serverløse arkitekturer, og han brenner for å løse bærekraftsutfordringer med maskinlæring.
- '
- "
- 000
- 10
- 100
- 28
- a
- Om oss
- ABSTRACT
- akselerere
- Logg inn
- nøyaktig
- Oppnå
- tvers
- adresse
- Adopsjon
- rådgiver
- AI
- tillater
- Amazon
- Amazon Web Services
- beløp
- analyse
- api
- eple
- søknader
- Påfør
- argumenter
- artikler
- assosiert
- Automatisere
- tilgjengelig
- tildelt
- AWS
- fordi
- Begynnelsen
- være
- BEST
- beste praksis
- mellom
- bygge
- virksomhet
- ring
- Kan få
- evner
- saken
- saker
- utfordringer
- valg
- klasse
- klassifisering
- Cloud
- kode
- samling
- kombinasjoner
- kombinert
- Communities
- samfunnet
- Selskaper
- komplekse
- Beregn
- datamaskin
- Konfigurasjon
- Forbrukere
- forbruk
- Container
- Containere
- fortsetter
- skape
- skaper
- skikk
- Kunder
- tilpasse
- dato
- dag
- dyp
- levering
- demonstrere
- demonstrert
- avhengig
- utplassere
- utplassert
- utplasserings
- distribusjon
- utforming
- utviklere
- utvikle
- Utvikling
- forskjellig
- vanskelig
- digitalt
- direkte
- Vise
- Docker
- Doktor
- dokumenter
- domene
- domener
- nedlasting
- hver enkelt
- lett
- Effektiv
- effektivitet
- muliggjør
- Endpoint
- Ingeniører
- enhet
- Miljø
- evaluere
- eksempel
- eksempler
- Expand
- forventninger
- erfaring
- erfaren
- eksperiment
- omfattende
- Face
- FAST
- raskere
- Egenskaper
- etter
- format
- Rammeverk
- rammer
- fra
- general
- generere
- generert
- Global
- god
- Økende
- hjelpe
- nyttig
- hjelper
- høyere
- Hvordan
- Hvordan
- HTTPS
- Hub
- lesbar
- identifisere
- bilde
- iverksette
- gjennomføring
- implementere
- viktig
- inkludere
- Inkludert
- informasjon
- nyskapende
- inngang
- innsikt
- f.eks
- integrert
- integrering
- interessert
- Irland
- IT
- selv
- Jobb
- reise
- nøkkel
- kunnskap
- Språk
- språk
- stor
- ledende
- læring
- nivåer
- Bibliotek
- grenser
- linje
- LINK
- linux
- Liste
- laste
- lokalt
- London
- oppslag
- maskin
- maskinlæring
- gjøre
- marked
- Match
- meningsfylt
- møter
- medlemmer
- Metrics
- ML
- modell
- modeller
- overvåking
- mer
- mest
- flere
- Naturlig
- neste
- noder
- bærbare
- Merknader
- tilby
- Tilbud
- på nett
- åpen
- betjene
- drift
- Optimalisere
- optimalisert
- optimalisere
- Annen
- egen
- lidenskap
- lidenskapelig
- ytelse
- utfører
- setninger
- Point
- Populær
- makt
- Forbered
- forrige
- prosess
- prosessering
- produsere
- Produksjon
- Produkter
- prosjekter
- gi
- forutsatt
- gir
- raskt
- område
- anbefaler
- redusere
- region
- registrere
- anmode
- krever
- Krav
- Ressurser
- resulterende
- Rolle
- Kjør
- rennende
- samme
- Skala
- forskere
- SDK
- sømløs
- valgt
- sentiment
- server~~POS=TRUNC
- Tjenester
- sett
- flere
- vist
- Enkelt
- enkelt
- So
- Solutions
- spesifikk
- hastigheter
- Standard
- startet
- state-of-the-art
- status
- lagring
- støtte
- Bærekraft
- Systemer
- oppgaver
- teknikker
- Teknologi
- Testing
- De
- tre
- Gjennom
- tid
- tidkrevende
- verktøy
- Tema
- Kurs
- Oversettelse
- klarert
- typer
- typisk
- Uk
- etter
- forstå
- forståelse
- unik
- bruke
- variasjon
- ulike
- versjon
- vertikaler
- syn
- volumer
- måter
- web
- webtjenester
- innenfor
- uten
- ord
- arbeid
- X
- år
- Din