I dette indlæg viser vi dig, hvordan du implementerer en af de mest downloadede Hugging Face fortrænede modeller, der bruges til tekstresumé, DistilBART-CNN-12-6, i en Jupyter notesbog ved hjælp af Amazon SageMaker og SageMaker Hugging Face Inference Toolkit. Baseret på trinene vist i dette indlæg, kan du prøve at opsummere tekst fra WikiText-2 datasæt administreres af fast.ai, tilgængelig på Register over åbne data på AWS.
Globale datamængder vokser i zettabyte-skala, efterhånden som virksomheder og forbrugere udvider deres brug af digitale produkter og onlinetjenester. For bedre at forstå disse voksende data har maskinlæringsteknikker (ML) naturlig sprogbehandling (NLP) til tekstanalyse udviklet sig til at adressere brugssager, der involverer tekstresumé, enhedsgenkendelse, klassificering, oversættelse og mere. AWS tilbyder præ-trænet AWS AI-tjenester der kan integreres i applikationer ved hjælp af API-kald og kræver ingen ML-erfaring. For eksempel, Amazon Comprehend kan udføre NLP-opgaver såsom brugerdefineret enhedsgenkendelse, sentimentanalyse, nøglesætningsudtrækning, emnemodellering og mere for at indsamle indsigt fra tekst. Den kan præstere tekstanalyse på en lang række sprog for dets forskellige funktioner.
Tekstopsummering er en nyttig teknik til at forstå store mængder tekstdata, fordi den skaber en delmængde af kontekstuelt meningsfuld information fra kildedokumenter. Du kan anvende denne NLP-teknik på tekstdokumenter og artikler i længere format, hvilket muliggør hurtigere forbrug og mere effektiv dokumentindeksering, for eksempel for at opsummere opkaldsnotater fra møder.
Knusende ansigt er et populært open source-bibliotek til NLP med over 49,000 fortrænede modeller på mere end 185 sprog med understøttelse af forskellige rammer. AWS og Hugging Face har en partnerskab der tillader en sømløs integration gennem SageMaker med et sæt AWS Deep Learning Containers (DLC'er) til træning og inferens i PyTorch eller TensorFlow, og Hugging Face-estimatorer og forudsigere til SageMaker Python SDK. Disse muligheder i SageMaker hjælper udviklere og dataforskere med at komme lettere i gang med NLP på AWS. Bearbejdning af tekster med transformatorer i deep learning frameworks som PyTorch er typisk en kompleks og tidskrævende opgave for data scientists, der ofte fører til frustration og manglende effektivitet, når de udvikler NLP-projekter. Fremkomsten af AI-fællesskaber som Hugging Face kombineret med styrken af ML-tjenester i skyen som SageMaker accelererer og forenkler udviklingen af disse tekstbehandlingsopgaver. SageMaker hjælper dig med at bygge, træne, implementere og operationalisere Hugging Face-modeller.
Oversigt over tekstopsummering
Du kan anvende tekstresumé til at identificere nøglesætninger i et dokument eller identificere nøglesætninger på tværs af flere dokumenter. Tekstresumé kan producere to typer resuméer: ekstraktiv og abstrakt. Udtræksresuméer indeholder ingen maskingenereret tekst og er en samling af vigtige sætninger valgt fra inputdokumentet. Abstraktive resuméer indeholder nye menneskelæselige sætninger og sætninger genereret af tekstresumémodellen. De fleste tekstresumésystemer er baseret på ekstraktiv opsummering, fordi præcis abstrakt tekstresumé er vanskelig at opnå.
Hugging Face har over 400 fortrænede state-of-the-art tilgængelige tekstresumémodeller, implementering af forskellige kombinationer af NLP-teknikker. Disse modeller trænes på forskellige datasæt, uploades og vedligeholdes af teknologivirksomheder og medlemmer af Hugging Face-fællesskabet. Du kan filtrere modellerne efter mest downloadede eller mest like, og indlæse dem direkte, når du bruger opsummeringspipeline Hugging Face transformer API. Hugging Face-transformeren forenkler NLP-implementeringsprocessen, så højtydende NLP-modeller kan finjusteres til at levere tekstresuméer uden at kræve omfattende ML-driftskendskab.
Hugging Face tekstopsummeringsmodeller på AWS
SageMaker tilbyder forretningsanalytikere, dataforskere og MLOps-ingeniører et udvalg af værktøjer til at designe og betjene ML-arbejdsbelastninger på AWS. Disse værktøjer giver dig hurtigere implementering og test af ML-modeller for at opnå dine optimale resultater.
På hjemmesiden for oprettelse af en konto skal du indtaste postnummeret for dit service-eller faktureringsområde i feltet, der er markeret (A) på billedet ovenfor. SageMaker Hugging Face Inference Toolkit, et open source-bibliotek, skitserer vi tre forskellige måder at implementere og være vært for Hugging Face-tekstopsummeringsmodeller ved hjælp af en Jupyter-notesbog:
- Opsummeringspipeline for kram ansigt - Lave en Opsummeringspipeline for kram ansigt bruger "
summarization
” opgaveidentifikator for at bruge en standardtekstopsummeringsmodel til slutninger i din Jupyter-notesbog. Disse pipelines abstraherer den komplekse kode og tilbyder nybegyndere i ML-praktikerne en simpel API til hurtigt at implementere tekstresumé uden at konfigurere et slutpunkt for slutninger. Pipelinen giver også ML-udøveren mulighed for at vælge en specifik præ-trænet model og dens tilhørende tokenizer. Tokenizere forbereder tekst til at være klar som input til modellen ved at opdele tekst i ord eller underord, som derefter konverteres til ID'er gennem en opslagstabel. For nemheds skyld sørger følgende kodestykke for standardcasen ved brug af pipelines. Det DistilBART-CNN-12-6 model er en af de mest downloadede opsummeringsmodeller på Hugging Face og er den standardmodel for opsummeringspipelinen. Den sidste linje kalder den præ-trænede model for at få et resumé for den beståede tekst givet de to angivne argumenter. - SageMaker endepunkt med præ-trænet model – Opret et SageMaker-slutpunkt med en fortrænet model fra Hugging Face Model Hub og implementer det på et inferensendepunkt, såsom ml.m5.xlarge-forekomsten i følgende kodestykke. Denne metode gør det muligt for erfarne ML-udøvere hurtigt at vælge specifikke open source-modeller, finjustere dem og implementere modellerne på højtydende inferensinstanser.
- SageMaker endepunkt med en trænet model – Opret et SageMaker-modelslutpunkt med en trænet model gemt i en Amazon Simple Storage Service (Amazon S3)-spand og implementer den på et slutningsendepunkt. Denne metode giver erfarne ML-udøvere mulighed for hurtigt at implementere deres egne modeller, der er gemt på Amazon S3, på højtydende inferensinstanser. Selve modellen downloades fra Hugging Face og komprimeres, og kan derefter uploades til Amazon S3. Dette trin er demonstreret i følgende kodestykke:
AWS har flere tilgængelige ressourcer til at hjælpe dig med at implementere dine ML-arbejdsbelastninger. Det Machine Learning Lens af AWS Well Architected Framework anbefaler bedste praksis for ML-arbejdsbelastninger, herunder optimering af ressourcer og reduktion af omkostninger. Disse anbefalede designprincipper sikrer, at veldesignede ML-arbejdsbelastninger på AWS implementeres til produktion. Amazon SageMaker Inference Recommender hjælper dig med at vælge den rigtige instans til at implementere dine ML-modeller med optimal slutningsydelse og pris. Inference Recommender fremskynder modelimplementeringen og reducerer tiden til markedet ved at automatisere belastningstest og optimere modelydelsen på tværs af ML-instanser.
I de næste afsnit demonstrerer vi, hvordan man læsser en trænet model fra en S3 skovl og implementerer den til en passende slutningsforekomst.
Forudsætninger
For denne gennemgang skal du have følgende forudsætninger:
- An AWS-konto.
- En Jupyter notesbog indeni Amazon SageMaker Studio eller SageMaker notebook-forekomster. I dette indlæg bruger vi "Python 3 (PyTorch 1.4 Python 3.6 CPU Optimized)"-billedet med de medfølgende kodestykker, men du kan bruge enhver anden højere version af PyTorch-billedet fra tilgængelige SageMaker kerner.
- Et datasæt i din S3-bøtte, såsom WikiText-2 datasæt fra Register over åbne data på AWS.
Indlæs Hugging Face-modellen til SageMaker for at opsummere tekst
Brug følgende kode til at downloade den fortrænede tekstopsummeringsmodel for Hugging Face DistilBART-CNN-12-6 og dens tokenizer, og gem dem lokalt i SageMaker i din Jupyter notebook-mappe:
Komprimer den gemte tekstopsummeringsmodel og dens tokenizer til tar.gz-format og upload den komprimerede modelartefakt til en S3-bøtte:
Vælg en inferens Docker-containerbillede at udføre tekstresumé-slutningen. Definer Linux OS, PyTorch-rammeværket og Hugging Face Transformer-versionen, og angiv Amazon Elastic Compute Cloud (Amazon EC2) forekomsttype for at køre containeren.
Docker-billedet er tilgængeligt i Amazon Elastic Container Registry (Amazon ECR) for den samme AWS-konto, og linket til det containerbillede returneres som en URI.
Definer den tekstopsummeringsmodel, der skal implementeres af det valgte containerbillede, der udfører inferens. I følgende kodestykke er den komprimerede model, der er uploadet til Amazon S3, implementeret:
Test den implementerede tekstopsummeringsmodel på et eksempelinput:
Brug Inference Recommender til at evaluere den optimale EC2-instans for slutningsopgaven
Derefter skal du oprette flere prøvebelastningseksempler af inputtekst i JSON-format og komprimere dem til en enkelt nyttelastfil. Disse nyttelasteksempler bruges af Inference Recommender til at sammenligne inferensydelse mellem forskellige EC2-instanstyper. Hver af prøvedataene skal matche det tidligere viste JSON-format. Du kan få eksempler fra WikiText-2 datasæt administreres af fast.ai, tilgængelig på Register over åbne data på AWS.
Upload den komprimerede tekstopsummeringsmodelartefakt og den komprimerede prøvedatafil til S3-bøtten. Vi uploadede modellen i et tidligere trin, men for klarhedens skyld inkluderer vi koden for at uploade den igen:
Gennemgå listen over standard ML-modeller, der er tilgængelige på SageMaker på tværs almindelige model zoologiske haver, såsom NLP og computersyn. Vælg en NLP-model for at udføre tekstopsummeringsinferensen:
Følgende eksempel bruger bert-base-cased
NLP model. Registrer tekstopsummeringsmodellen i SageMaker modelregistrering med det korrekt identificerede domæne, framework og opgave fra det forrige trin. Parametrene for dette eksempel er vist i begyndelsen af det følgende kodestykke.
Bemærk rækken af EC2-instanstyper, der skal evalueres af Inference Recommender under SupportedRealtimeInferenceInstanceTypes
i følgende kode. Sørg for, at servicegrænser for AWS-kontoen tillade udrulning af disse typer slutningsknuder.
Opret et Inference Recommender-standardjob ved hjælp af ModelPackageVersion
som følge af det foregående trin. Det uuid
Python-biblioteket bruges til at generere et unikt navn til jobbet.
Du kan få status for Inference Recommender-jobbet ved at køre følgende kode:
Når jobstatus er COMPLETED
, sammenligne inferensforsinkelsen, runtime og andre metrics for EC2-instanstyperne, der evalueres af standardjobbet Inference Recommender. Vælg den passende nodetype baseret på dine use case-krav.
Konklusion
SageMaker tilbyder flere måder at bruge Hugging Face-modeller på; for flere eksempler, se AWS prøver GitHub. Afhængigt af kompleksiteten af use casen og behovet for at finjustere modellen, kan du vælge den optimale måde at bruge disse modeller på. Hugging Face-rørledningerne kan være et godt udgangspunkt for hurtigt at eksperimentere og vælge passende modeller. Når du skal tilpasse og parametrere de valgte modeller, kan du downloade modellerne og implementere dem til tilpassede inferensendepunkter. For at finjustere modellen mere til en specifik use case, skal du træne modellen efter at have downloadet den.
NLP-modeller generelt, herunder tekstresumémodeller, klarer sig bedre efter at være blevet trænet på et datasæt, der er specifikt for brugssagen. MLOP'erne og modelovervågningsfunktionerne i SageMaker sikrer, at den installerede model fortsætter med at yde inden for forventningerne. I dette indlæg brugte vi Inference Recommender til at evaluere den bedst egnede instanstype til at implementere tekstopsummeringsmodellen. Disse anbefalinger kan optimere ydeevne og omkostninger til din ML-brugssag.
Om forfatterne
Dr. Nidal AlBeiruti er Senior Solutions Architect hos Amazon Web Services, med en passion for maskinlæringsløsninger. Nidal har over 25 års erfaring med at arbejde i en række globale IT-roller på forskellige niveauer og vertikaler. Nidal fungerer som en betroet rådgiver for mange AWS-kunder for at understøtte og accelerere deres cloud-adoptionsrejse.
Darren Ko er en Solutions Architect baseret i London. Han rådgiver britiske og irske SMB-kunder om ombygning og innovation i skyen. Darren er interesseret i applikationer bygget med serverløse arkitekturer, og han brænder for at løse bæredygtighedsudfordringer med maskinlæring.
- '
- "
- 000
- 10
- 100
- 28
- a
- Om
- ABSTRACT
- fremskynde
- Konto
- præcis
- opnå
- tværs
- adresse
- Vedtagelse
- rådgiver
- AI
- tillader
- Amazon
- Amazon Web Services
- beløb
- analyse
- api
- Apple
- applikationer
- Indløs
- argumenter
- artikler
- forbundet
- Automatisering
- til rådighed
- uddelt
- AWS
- fordi
- Begyndelse
- være
- BEDSTE
- bedste praksis
- mellem
- bygge
- virksomhed
- ringe
- Kan få
- kapaciteter
- tilfælde
- tilfælde
- udfordringer
- valg
- klasse
- klassificering
- Cloud
- kode
- samling
- kombinationer
- kombineret
- Fællesskaber
- samfund
- Virksomheder
- komplekse
- Compute
- computer
- Konfiguration
- Forbrugere
- forbrug
- Container
- Beholdere
- fortsætter
- skabe
- skaber
- skik
- Kunder
- tilpasse
- data
- dag
- dyb
- levering
- demonstrere
- demonstreret
- Afhængigt
- indsætte
- indsat
- implementering
- implementering
- Design
- udviklere
- udvikling
- Udvikling
- forskellige
- svært
- digital
- direkte
- Skærm
- Docker
- Doctor
- dokumenter
- domæne
- Domæner
- downloade
- hver
- nemt
- Effektiv
- effektivitet
- muliggør
- Endpoint
- Ingeniører
- enhed
- Miljø
- evaluere
- eksempel
- eksempler
- Udvid
- forventninger
- erfaring
- erfarne
- eksperiment
- omfattende
- Ansigtet
- FAST
- hurtigere
- Funktionalitet
- efter
- format
- Framework
- rammer
- fra
- Generelt
- generere
- genereret
- Global
- godt
- Dyrkning
- hjælpe
- hjælpsom
- hjælper
- højere
- Hvordan
- How To
- HTTPS
- Hub
- læsbar
- identificere
- billede
- gennemføre
- implementering
- gennemføre
- vigtigt
- omfatter
- Herunder
- oplysninger
- fornyelse
- indgang
- indsigt
- instans
- integreret
- integration
- interesseret
- irland
- IT
- selv
- Job
- rejse
- Nøgle
- viden
- Sprog
- Sprog
- stor
- førende
- læring
- niveauer
- Bibliotek
- grænser
- Line (linje)
- LINK
- linux
- Liste
- belastning
- lokalt
- London
- kig op
- maskine
- machine learning
- lave
- Marked
- Match
- meningsfuld
- møder
- Medlemmer
- Metrics
- ML
- model
- modeller
- overvågning
- mere
- mest
- flere
- Natural
- næste
- noder
- notesbog
- Noter
- tilbyde
- Tilbud
- online
- åbent
- betjene
- drift
- Optimer
- optimeret
- optimering
- Andet
- egen
- lidenskab
- lidenskabelige
- ydeevne
- udfører
- sætninger
- Punkt
- Populær
- magt
- Forbered
- tidligere
- behandle
- forarbejdning
- producere
- produktion
- Produkter
- projekter
- give
- forudsat
- giver
- hurtigt
- rækkevidde
- anbefaler
- reducere
- region
- register
- anmode
- kræver
- Krav
- Ressourcer
- resulterer
- roller
- Kør
- kører
- samme
- Scale
- forskere
- SDK
- sømløs
- valgt
- stemningen
- Serverless
- Tjenester
- sæt
- flere
- vist
- Simpelt
- enkelt
- So
- Løsninger
- specifikke
- hastigheder
- standard
- påbegyndt
- state-of-the-art
- Status
- opbevaring
- support
- Bæredygtighed
- Systemer
- opgaver
- teknikker
- Teknologier
- Test
- tre
- Gennem
- tid
- tidskrævende
- værktøjer
- emne
- Kurser
- Oversættelse
- betroet
- typer
- typisk
- Uk
- under
- forstå
- forståelse
- enestående
- brug
- række
- forskellige
- udgave
- vertikaler
- vision
- mængder
- måder
- web
- webservices
- inden for
- uden
- ord
- arbejder
- X
- år
- Din