In dit bericht laten we u zien hoe u een van de meest gedownloade Hugging Face-voorgetrainde modellen implementeert die worden gebruikt voor tekstsamenvatting, DistillBART-CNN-12-6, in een Jupyter-notebook met behulp van Amazon Sage Maker en SageMaker Toolkit voor knuffelgezichtsinferentie. Op basis van de stappen die in dit bericht worden getoond, kun je proberen tekst samen te vatten uit de WikiText-2 dataset beheerd door fast.ai, verkrijgbaar bij de Register van Open Data op AWS.
De wereldwijde datavolumes groeien op zettabyteschaal naarmate bedrijven en consumenten hun gebruik van digitale producten en online diensten uitbreiden. Om deze groeiende gegevens beter te begrijpen, zijn machine learning (ML) natuurlijke taalverwerkingstechnieken (NLP) voor tekstanalyse geรซvolueerd om gebruiksgevallen aan te pakken met betrekking tot tekstsamenvatting, entiteitsherkenning, classificatie, vertaling en meer. AWS biedt vooraf getrainde AWS AI-services die kunnen worden geรฏntegreerd in applicaties met behulp van API-aanroepen en geen ML-ervaring vereisen. Bijvoorbeeld, Amazon begrijpt het kan NLP-taken uitvoeren, zoals herkenning van aangepaste entiteiten, sentimentanalyse, extractie van trefwoorden, onderwerpmodellering en meer om inzichten uit tekst te verzamelen. Het kan presteren tekstanalyse op een grote verscheidenheid aan talen voor zijn verschillende eigenschappen.
Tekstsamenvatting is een nuttige techniek om grote hoeveelheden tekstgegevens te begrijpen, omdat het een subset van contextueel zinvolle informatie uit brondocumenten creรซert. U kunt deze NLP-techniek toepassen op tekstdocumenten en artikelen met een langere vorm, waardoor snellere consumptie en effectievere documentindexering mogelijk wordt, bijvoorbeeld om gespreksnotities van vergaderingen samen te vatten.
Gezicht knuffelen is een populaire open-source bibliotheek voor NLP, met meer dan 49,000 vooraf getrainde modellen in meer dan 185 talen met ondersteuning voor verschillende frameworks. AWS en Hugging Face hebben een vennootschap dat een naadloze integratie via SageMaker mogelijk maakt met een set AWS Deep Learning Containers (DLC's) voor training en inferentie in PyTorch of TensorFlow, en Hugging Face-schatters en -voorspellers voor de SageMaker Python SDK. Deze mogelijkheden in SageMaker helpen ontwikkelaars en datawetenschappers om gemakkelijker aan de slag te gaan met NLP op AWS. Het verwerken van teksten met transformatoren in deep learning-frameworks zoals PyTorch is typisch een complexe en tijdrovende taak voor datawetenschappers, wat vaak leidt tot frustratie en gebrek aan efficiรซntie bij het ontwikkelen van NLP-projecten. De opkomst van AI-gemeenschappen zoals Hugging Face, gecombineerd met de kracht van ML-services in de cloud zoals SageMaker, versnellen en vereenvoudigen de ontwikkeling van deze tekstverwerkingstaken. SageMaker helpt je bij het bouwen, trainen, implementeren en operationaliseren van Hugging Face-modellen.
Overzicht tekstsamenvatting
U kunt tekstsamenvattingen toepassen om sleutelzinnen in een document te identificeren of sleutelzinnen in meerdere documenten te identificeren. Tekstsamenvattingen kunnen twee soorten samenvattingen opleveren: extractief en abstract. Extractieve samenvattingen bevatten geen door de machine gegenereerde tekst en zijn een verzameling belangrijke zinnen die zijn geselecteerd uit het invoerdocument. Abstracte samenvattingen bevatten nieuwe voor mensen leesbare zinnen en zinnen die zijn gegenereerd door het tekstsamenvattingsmodel. De meeste systemen voor tekstsamenvatting zijn gebaseerd op extractieve samenvattingen, omdat nauwkeurige abstracte tekstsamenvattingen moeilijk te realiseren zijn.
Hugging Face heeft meer dan 400 vooraf getrainde state-of-the-art tekstsamenvattingsmodellen beschikbaar, het implementeren van verschillende combinaties van NLP-technieken. Deze modellen zijn getraind op verschillende datasets, geรผpload en onderhouden door technologiebedrijven en leden van de Hugging Face-community. U kunt de modellen filteren op meest gedownloade of meest geliefde, en ze direct laden bij gebruik van de samenvatting pijplijn Hugging Face transformer API. De Hugging Face-transformator vereenvoudigt het NLP-implementatieproces, zodat hoogwaardige NLP-modellen kunnen worden verfijnd om tekstsamenvattingen te leveren, zonder dat uitgebreide kennis van ML-bewerkingen vereist is.
Hugging Face-tekstsamenvattingsmodellen op AWS
SageMaker biedt bedrijfsanalisten, datawetenschappers en MLOps-engineers een keuze aan tools om ML-workloads op AWS te ontwerpen en te gebruiken. Deze tools bieden u snellere implementatie en testen van ML-modellen om uw optimale resultaten te bereiken.
Van de SageMaker Toolkit voor knuffelgezichtsinferentie, een open-sourcebibliotheek, schetsen we drie verschillende manieren om Hugging Face-tekstsamenvattingsmodellen te implementeren en te hosten met behulp van een Jupyter-notebook:
- Hugging Face samenvatting pijplijn - Maak een Hugging Face samenvatting pijplijn de ... gebruiken "
summarization
โ taak-ID om een โโstandaardmodel voor tekstsamenvatting te gebruiken voor gevolgtrekking in uw Jupyter-notebook. Deze pijplijnen abstraheren de complexe code en bieden beginnende ML-beoefenaars een eenvoudige API om snel tekstsamenvattingen te implementeren zonder een inferentie-eindpunt te configureren. De pijplijn stelt de ML-beoefenaar ook in staat om een โโspecifiek vooraf getraind model en de bijbehorende tokenizer te selecteren. Tokenizers bereiden tekst voor om klaar te zijn als invoer voor het model door tekst op te splitsen in woorden of subwoorden, die vervolgens worden omgezet in ID's via een opzoektabel. Voor de eenvoud biedt het volgende codefragment het standaardgeval bij het gebruik van pijplijnen. De DistillBART-CNN-12-6 model is een van de meest gedownloade samenvattingsmodellen op Hugging Face en is de standaardmodel voor de samenvattende pijplijn. De laatste regel roept het vooraf getrainde model aan om een โโsamenvatting te krijgen voor de doorgegeven tekst, gegeven de twee opgegeven argumenten. - SageMaker-eindpunt met vooraf getraind model โ Maak een SageMaker-eindpunt met een vooraf getraind model van de Knuffelen Gezicht Model Hub en implementeer het op een inferentie-eindpunt, zoals de ml.m5.xlarge-instantie in het volgende codefragment. Met deze methode kunnen ervaren ML-beoefenaars snel specifieke open-sourcemodellen selecteren, deze verfijnen en de modellen implementeren op goed presterende inferentie-instanties.
- SageMaker-eindpunt met een getraind model โ Maak een SageMaker-modeleindpunt met een getraind model dat is opgeslagen in een Amazon eenvoudige opslagservice (Amazon S3) bucket en implementeer deze op een inferentie-eindpunt. Met deze methode kunnen ervaren ML-beoefenaars snel hun eigen modellen die zijn opgeslagen op Amazon S3 implementeren op goed presterende inferentie-instanties. Het model zelf wordt gedownload van Hugging Face en gecomprimeerd en kan vervolgens worden geรผpload naar Amazon S3. Deze stap wordt gedemonstreerd in het volgende codefragment:
AWS heeft verschillende bronnen beschikbaar om u te helpen bij het implementeren van uw ML-workloads. De Machine learning-lens van de AWS goed ontworpen raamwerk beveelt best practices voor ML-workloads aan, waaronder het optimaliseren van resources en het verlagen van de kosten. Deze aanbevolen ontwerpprincipes zorgen ervoor dat goed ontworpen ML-workloads op AWS in productie worden genomen. Amazon SageMaker Inferentie-aanbeveler helpt u bij het selecteren van de juiste instantie om uw ML-modellen te implementeren tegen optimale inferentieprestaties en kosten. Inference Recommender versnelt modelimplementatie en verkort de time-to-market door load-tests te automatiseren en modelprestaties voor ML-instanties te optimaliseren.
In de volgende secties laten we zien hoe u een getraind model uit een S3-bucket laadt en implementeert in een geschikte inferentie-instantie.
Voorwaarden
Voor deze walkthrough moet u aan de volgende vereisten voldoen:
- An AWS-account.
- Een Jupyter-notitieboekje erin Amazon SageMaker Studio of SageMaker notebook-exemplaren. In dit bericht gebruiken we de afbeelding "Python 3 (PyTorch 1.4 Python 3.6 CPU-geoptimaliseerd)" met de verstrekte codefragmenten, maar u kunt elke andere hogere versie van PyTorch-afbeelding van de beschikbare SageMaker-kernels.
- Een dataset in uw S3-bucket, zoals de WikiText-2 dataset uit de Register van Open Data op AWS.
Laad het Hugging Face-model in SageMaker voor gevolgtrekking van tekstsamenvatting
Gebruik de volgende code om het vooraf getrainde tekstsamenvattingsmodel Hugging Face te downloaden: DistillBART-CNN-12-6 en zijn tokenizer, en sla ze lokaal op in SageMaker in uw Jupyter-notebookmap:
Comprimeer het opgeslagen tekstsamenvattingsmodel en de tokenizer in tar.gz-indeling en upload het gecomprimeerde modelartefact naar een S3-bucket:
Selecteer een inferentie Docker-containerafbeelding om de gevolgtrekking van de tekstsamenvatting uit te voeren. Definieer het Linux OS, PyTorch-framework en Hugging Face Transformer-versie en specificeer de Amazon Elastic Compute-cloud (Amazon EC2) instantietype om de container uit te voeren.
De Docker-afbeelding is beschikbaar in de Amazon Elastic Container-register (Amazon ECR) van hetzelfde AWS-account, en de link voor die containerafbeelding wordt geretourneerd als een URI.
Definieer het tekstsamenvattingsmodel dat moet worden geรฏmplementeerd door de geselecteerde containerafbeelding die inferentie uitvoert. In het volgende codefragment wordt het gecomprimeerde model dat is geรผpload naar Amazon S3 geรฏmplementeerd:
Test het geรฏmplementeerde tekstsamenvattingsmodel op een voorbeeldinvoer:
Gebruik Inference Recommender om de optimale EC2-instantie voor de inferentietaak te evalueren
Maak vervolgens meerdere payload-voorbeelden van invoertekst in JSON-indeling en comprimeer deze in รฉรฉn payload-bestand. Deze payload-voorbeelden worden door de Inference Recommender gebruikt om de prestatie van gevolgtrekkingen tussen verschillende EC2-instantietypen te vergelijken. Elk van de voorbeeldpayloads moet overeenkomen met de eerder getoonde JSON-indeling. U kunt voorbeelden krijgen van de WikiText-2 dataset beheerd door fast.ai, verkrijgbaar bij de Register van Open Data op AWS.
Upload het gecomprimeerde tekstsamenvattingsmodelartefact en het gecomprimeerde voorbeeldpayloadbestand naar de S3-bucket. We hebben het model in een eerdere stap geรผpload, maar voor de duidelijkheid voegen we de code toe om het opnieuw te uploaden:
Bekijk de lijst met standaard ML-modellen die beschikbaar zijn op SageMaker over gemeenschappelijke modeldierentuinen, zoals NLP en computervisie. Selecteer een NLP-model om de gevolgtrekking van de tekstsamenvatting uit te voeren:
Het volgende voorbeeld gebruikt de bert-base-cased
NLP-model. Registreer het tekstsamenvattingsmodel in de SageMaker-modelregister met het correct geรฏdentificeerde domein, raamwerk en taak uit de vorige stap. De parameters voor dit voorbeeld worden aan het begin van het volgende codefragment weergegeven.
Let op het bereik van EC2-instantietypes dat moet worden geรซvalueerd door Inference Recommender onder: SupportedRealtimeInferenceInstanceTypes
in de volgende code. Zorg ervoor dat de servicelimieten voor het AWS-account de inzet van dit soort inferentieknooppunten toestaan.
Maak een Inference Recommender-standaardtaak met behulp van de ModelPackageVersion
gevolg van de vorige stap. De uuid
Python-bibliotheek wordt gebruikt om een โโunieke naam voor de taak te genereren.
U kunt de status van de Inference Recommender-taak krijgen door de volgende code uit te voeren:
Wanneer de taakstatus is COMPLETED
, vergelijk de inferentielatentie, runtime en andere metrische gegevens van de EC2-instantietypen die zijn geรซvalueerd door de standaardtaak Inference Recommender. Selecteer het geschikte knooppunttype op basis van uw use case-vereisten.
Conclusie
SageMaker biedt meerdere manieren om Hugging Face-modellen te gebruiken; voor meer voorbeelden, bekijk de AWS-voorbeelden GitHub. Afhankelijk van de complexiteit van de use case en de noodzaak om het model te verfijnen, kunt u de optimale manier selecteren om deze modellen te gebruiken. De Hugging Face-pijplijnen kunnen een goed startpunt zijn om snel te experimenteren en geschikte modellen te selecteren. Wanneer u de geselecteerde modellen moet aanpassen en parametriseren, kunt u de modellen downloaden en implementeren op aangepaste inferentie-eindpunten. Als u het model meer wilt afstemmen op een specifieke gebruikssituatie, moet u het model trainen nadat u het hebt gedownload.
NLP-modellen in het algemeen, inclusief modellen voor tekstsamenvatting, presteren beter na training op een dataset die specifiek is voor de use case. De MLOP's en modelbewakingsfuncties van SageMaker zorgen ervoor dat het geรฏmplementeerde model binnen de verwachtingen blijft presteren. In dit bericht hebben we Inference Recommender gebruikt om het meest geschikte instantietype te evalueren om het tekstsamenvattingsmodel te implementeren. Deze aanbevelingen kunnen de prestaties en kosten voor uw ML-gebruiksscenario optimaliseren.
Over de auteurs
Dr. Nidal AlBeiruti is Senior Solutions Architect bij Amazon Web Services, met een passie voor machine learning-oplossingen. Nidal heeft meer dan 25 jaar ervaring in het werken in verschillende wereldwijde IT-rollen op verschillende niveaus en in verschillende branches. Nidal fungeert als een vertrouwde adviseur voor veel AWS-klanten om hun reis naar de cloud te ondersteunen en te versnellen.
Darren Ko is een Solutions Architect gevestigd in Londen. Hij adviseert MKB-klanten in het VK en Ierland bij het herontwerpen en innoveren in de cloud. Darren is geรฏnteresseerd in applicaties die zijn gebouwd met serverloze architecturen en hij heeft een passie voor het oplossen van uitdagingen op het gebied van duurzaamheid met machine learning.
- '
- "
- 000
- 10
- 100
- 28
- a
- Over
- SAMENVATTING
- versnellen
- Account
- accuraat
- Bereiken
- over
- adres
- Adoptie
- adviseur
- AI
- toestaat
- Amazone
- Amazon Web Services
- hoeveelheden
- analyse
- api
- Apple
- toepassingen
- Solliciteer
- argumenten
- artikelen
- geassocieerd
- automatiseren
- Beschikbaar
- Bekroond
- AWS
- omdat
- Begin
- wezen
- BEST
- 'best practices'
- tussen
- bouw
- bedrijfsdeskundigen
- Bellen
- Kan krijgen
- mogelijkheden
- geval
- gevallen
- uitdagingen
- keuze
- klasse
- classificatie
- Cloud
- code
- Collectie
- combinaties
- gecombineerde
- Gemeenschappen
- gemeenschap
- Bedrijven
- complex
- Berekenen
- computer
- Configuratie
- Consumenten
- consumptie
- Containers
- containers
- blijft
- en je merk te creรซren
- creรซert
- gewoonte
- Klanten
- aan te passen
- gegevens
- dag
- deep
- levering
- tonen
- gedemonstreerd
- Afhankelijk
- implementeren
- ingezet
- het inzetten
- inzet
- Design
- ontwikkelaars
- het ontwikkelen van
- Ontwikkeling
- anders
- moeilijk
- digitaal
- direct
- Display
- havenarbeider
- dokter
- documenten
- domein
- domeinen
- Download
- elk
- gemakkelijk
- effectief
- doeltreffendheid
- waardoor
- Endpoint
- Ingenieurs
- entiteit
- Milieu
- schatten
- voorbeeld
- voorbeelden
- Uitvouwen
- verwachtingen
- ervaring
- ervaren
- experiment
- uitgebreid
- Gezicht
- SNELLE
- sneller
- Voordelen
- volgend
- formaat
- Achtergrond
- frameworks
- oppompen van
- Algemeen
- voortbrengen
- gegenereerde
- Globaal
- goed
- Groeiend
- hulp
- nuttig
- helpt
- hoger
- Hoe
- How To
- HTTPS
- Naaf
- leesbare
- identificeren
- beeld
- uitvoeren
- uitvoering
- uitvoering
- belangrijk
- omvatten
- Inclusief
- informatie
- innoveren
- invoer
- inzichten
- instantie
- geรฏntegreerde
- integratie
- geรฏnteresseerd
- Ierland
- IT
- zelf
- Jobomschrijving:
- sleutel
- kennis
- taal
- Talen
- Groot
- leidend
- leren
- niveaus
- Bibliotheek
- grenzen
- Lijn
- LINK
- linux
- Lijst
- laden
- plaatselijk
- London
- lookup
- machine
- machine learning
- maken
- Markt
- Match
- zinvolle
- vergaderingen
- Leden
- Metriek
- ML
- model
- modellen
- Grensverkeer
- meer
- meest
- meervoudig
- Naturel
- volgende
- knooppunten
- notitieboekje
- Opmerkingen
- het aanbieden van
- Aanbod
- online.
- open
- besturen
- operatie
- Optimaliseer
- geoptimaliseerde
- optimaliseren
- Overige
- het te bezitten.
- passie
- hartstochtelijk
- prestatie
- uitvoerend
- zinnen
- punt
- Populair
- energie
- Voorbereiden
- vorig
- verwerking
- produceren
- productie
- Producten
- projecten
- zorgen voor
- mits
- biedt
- snel
- reeks
- beveelt
- vermindering
- regio
- registreren
- te vragen
- vereisen
- Voorwaarden
- Resources
- verkregen
- Rol
- lopen
- lopend
- dezelfde
- Scale
- wetenschappers
- sdk
- naadloos
- gekozen
- sentiment
- Serverless
- Diensten
- reeks
- verscheidene
- getoond
- Eenvoudig
- single
- So
- Oplossingen
- specifiek
- snelheden
- standaard
- gestart
- state-of-the-art
- Status
- mediaopslag
- ondersteuning
- Duurzaamheid
- Systems
- taken
- technieken
- Technologie
- Testen
- De
- drie
- Door
- niet de tijd of
- tijdrovend
- tools
- onderwerp
- Trainingen
- Vertaling
- vertrouwde
- types
- typisch
- Uk
- voor
- begrijpen
- begrip
- unieke
- .
- variรซteit
- divers
- versie
- verticals
- visie
- volumes
- manieren
- web
- webservices
- binnen
- zonder
- woorden
- werkzaam
- X
- jaar
- Your