Amazon SageMaker gir en suite av innebygde algoritmer, ferdig trente modellerog forhåndsbygde løsningsmaler for å hjelpe dataforskere og maskinlæringsutøvere (ML) med å komme raskt i gang med opplæring og distribusjon av ML-modeller. Du kan bruke disse algoritmene og modellene for både veiledet og uovervåket læring. De kan behandle ulike typer inndata, inkludert tabeller, bilder og tekst.
Dette innlegget er det tredje i en serie om de nye innebygde algoritmene i SageMaker. I første innlegg, viste vi hvordan SageMaker gir en innebygd algoritme for bildeklassifisering. I andre innlegg, viste vi hvordan SageMaker gir en innebygd algoritme for objektdeteksjon. I dag kunngjør vi at SageMaker tilbyr en ny innebygd algoritme for tekstklassifisering ved hjelp av TensorFlow. Denne overvåkede læringsalgoritmen støtter overføringslæring for mange forhåndstrente modeller tilgjengelig i TensorFlow-hub. Den tar et stykke tekst som input og sender ut sannsynligheten for hver av klasseetikettene. Du kan finjustere disse forhåndstrente modellene ved å bruke overføringslæring selv når et stort korpus med tekst ikke er tilgjengelig. Den er tilgjengelig gjennom SageMaker innebygde algoritmer, samt gjennom SageMaker JumpStart UI in Amazon SageMaker Studio. For mer informasjon, se Tekstklassifisering og eksempelnotisboken Introduksjon til JumpStart – Tekstklassifisering.
Tekstklassifisering med TensorFlow i SageMaker gir overføringslæring på mange ferdigtrente modeller tilgjengelig i TensorFlow Hub. I henhold til antall klasseetiketter i treningsdataene, er det knyttet et klassifiseringslag til den ferdigtrente TensorFlow-hubmodellen. Klassifiseringslaget består av et utfallslag og et tett lag, fullt sammenkoblet lag, med 2-norm regularizer, som initialiseres med tilfeldige vekter. Modelltreningen har hyperparametere for frafallsrate for frafallslag, og L2-regulariseringsfaktor for det tette laget. Deretter kan enten hele nettverket, inkludert den forhåndstrente modellen, eller bare det øverste klassifiseringslaget finjusteres på de nye treningsdataene. I denne overføringslæringsmodusen kan trening oppnås selv med et mindre datasett.
Slik bruker du den nye TensorFlow-tekstklassifiseringsalgoritmen
Denne delen beskriver hvordan du bruker TensorFlow-tekstklassifiseringsalgoritmen med SageMaker Python SDK. For informasjon om hvordan du bruker det fra Studio UI, se SageMaker JumpStart.
Algoritmen støtter overføringslæring for de forhåndstrente modellene som er oppført i Tensorflow-modeller. Hver modell er identifisert med en unik model_id
. Følgende kode viser hvordan du finjusterer BERT-basismodellen identifisert av model_id
tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2
på et tilpasset opplæringsdatasett. For hver model_id
, for å lansere en SageMaker-treningsjobb gjennom Estimator klasse av SageMaker Python SDK, må du hente Docker-bilde-URI, treningsskript-URI og forhåndstrent modell-URI gjennom verktøyfunksjonene i SageMaker. Treningsskriptets URI inneholder all nødvendig kode for databehandling, lasting av den forhåndstrente modellen, modellopplæring og lagring av den trente modellen for slutning. Den forhåndstrente modellen URI inneholder den forhåndstrente modellarkitekturdefinisjonen og modellparametrene. Den forhåndstrente modellen URI er spesifikk for den aktuelle modellen. De forhåndstrente modell-tarballene er forhåndslastet ned fra TensorFlow og lagret med passende modellsignatur i Amazon enkel lagringstjeneste (Amazon S3) bøtter, slik at treningsjobben går i nettverksisolasjon. Se følgende kode:
Med disse modellspesifikke treningsartefaktene kan du konstruere et objekt av Estimator klasse:
Deretter, for å overføre læring på det tilpassede datasettet ditt, må du kanskje endre standardverdiene til treningshyperparametrene, som er oppført i Hyperparametere. Du kan hente en Python-ordbok med disse hyperparametrene med standardverdiene ved å ringe hyperparameters.retrieve_default
, oppdater dem etter behov, og send dem deretter til Estimator-klassen. Merk at standardverdiene til noen av hyperparametrene er forskjellige for forskjellige modeller. For store modeller er standard batchstørrelse mindre og train_only_top_layer
hyperparameter er satt til True
. Hyperparameteren Train_only_top_layer
definerer hvilke modellparametre som endres under finjusteringsprosessen. Hvis train_only_top_layer
is True
, så endres parametrene til klassifiseringslagene og resten av parametrene forblir konstante under finjusteringsprosessen. På den annen side, hvis train_only_top_layer
is False
, så finjusteres alle parameterne til modellen. Se følgende kode:
Vi tilbyr SST2 som standard datasett for finjustering av modellene. Datasettet inneholder positive og negative filmanmeldelser. Den er lastet ned fra tensorflow etter Apache 2.0-lisens. Følgende kode gir standard treningsdatasett som er vert i S3-bøtter.
Til slutt, for å starte SageMaker-treningsjobben for finjustering av modellen, ring .fit på objektet til Estimator-klassen, mens du passerer Amazon S3-plasseringen til treningsdatasettet:
For mer informasjon om hvordan du bruker den nye SageMaker TensorFlow tekstklassifiseringsalgoritmen for overføring av læring på et tilpasset datasett, distribuer den finjusterte modellen, kjør inferens på den distribuerte modellen, og distribuer den forhåndstrente modellen som den er uten første finjustering på et tilpasset datasett, se følgende eksempelnotatbok: Introduksjon til JumpStart – Tekstklassifisering.
Input/output-grensesnitt for TensorFlow-tekstklassifiseringsalgoritmen
Du kan finjustere hver av de forhåndstrente modellene som er oppført i TensorFlow-modeller til et gitt datasett som består av tekstsetninger med et hvilket som helst antall klasser. Den forhåndstrente modellen knytter et klassifiseringslag til tekstinnbyggingsmodellen og initialiserer lagparametrene til tilfeldige verdier. Utgangsdimensjonen til klassifiseringslaget bestemmes basert på antall klasser oppdaget i inngangsdataene. Målet er å minimere klassifiseringsfeil på inndataene. Modellen som returneres ved finjustering kan distribueres videre for slutninger.
Følgende instruksjoner beskriver hvordan treningsdataene skal formateres for input til modellen:
- Input – En katalog som inneholder en data.csv-fil. Hver rad i den første kolonnen skal ha heltallsklasseetiketter mellom 0 og antall klasser. Hver rad i den andre kolonnen skal ha de tilsvarende tekstdataene.
- Output – En finjustert modell som kan distribueres for inferens eller videreutdannes ved hjelp av inkrementell trening. En fil som kartlegger klasseindekser til klasseetiketter, lagres sammen med modellene.
Følgende er et eksempel på en CSV-inndatafil. Merk at filen ikke skal ha noen overskrift. Filen skal være vert i en S3-bøtte med en bane som ligner på følgende: s3://bucket_name/input_directory/
. Merk at etterfølgende /
er nødvendig.
Inferens med TensorFlow-tekstklassifiseringsalgoritmen
De genererte modellene kan være vert for inferens og støttetekst som application/x-text
innholdstype. Utdataene inneholder sannsynlighetsverdier, klasseetiketter for alle klassene og den predikerte etiketten som tilsvarer klasseindeksen med høyest sannsynlighet kodet i JSON-formatet. Modellen behandler en enkelt streng per forespørsel og sender bare ut én linje. Følgende er et eksempel på et JSON-formatsvar:
If accept
er satt til application/json
, da gir modellen bare ut sannsynligheter. For mer informasjon om trening og slutninger, se eksempelnotatboken Introduksjon til Introduksjon til JumpStart – Tekstklassifisering.
Bruk SageMaker innebygde algoritmer gjennom JumpStart UI
Du kan også bruke SageMaker TensorFlow-tekstklassifisering og hvilken som helst av de andre innebygde algoritmene med noen få klikk via JumpStart-grensesnittet. JumpStart er en SageMaker-funksjon som lar deg trene og distribuere innebygde algoritmer og forhåndstrente modeller fra ulike ML-rammeverk og modellhuber gjennom et grafisk grensesnitt. Videre lar den deg distribuere fullverdige ML-løsninger som setter sammen ML-modeller og forskjellige andre AWS-tjenester for å løse en målrettet brukssituasjon.
Følgende er to videoer som viser hvordan du kan replikere den samme finjusterings- og distribusjonsprosessen som vi nettopp gikk gjennom med noen få klikk via JumpStart UI.
Finjuster den ferdigtrente modellen
Her er prosessen for å finjustere den samme ferdigtrente tekstklassifiseringsmodellen.
Distribuer den finjusterte modellen
Etter at modellopplæringen er fullført, kan du distribuere modellen direkte til et vedvarende endepunkt i sanntid med ett klikk.
konklusjonen
I dette innlegget kunngjorde vi lanseringen av SageMaker TensorFlow tekstklassifisering innebygde algoritme. Vi ga eksempelkode for hvordan du utfører overføringslæring på et tilpasset datasett ved å bruke en forhåndstrent modell fra TensorFlow-huben ved å bruke denne algoritmen.
For mer informasjon, sjekk ut dokumentasjon og eksempelnotisboken Introduksjon til JumpStart – Tekstklassifisering.
Om forfatterne
Dr. Vivek Madan er en anvendt vitenskapsmann med Amazon SageMaker JumpStart-teamet. Han fikk sin doktorgrad fra University of Illinois i Urbana-Champaign og var postdoktor ved Georgia Tech. Han er en aktiv forsker innen maskinlæring og algoritmedesign og har publisert artikler i EMNLP, ICLR, COLT, FOCS og SODA-konferanser.
João Moura er en AI/ML-spesialistløsningsarkitekt hos Amazon Web Services. Han er mest fokusert på NLP-brukstilfeller og å hjelpe kunder med å optimalisere opplæring og implementering av dyplæringsmodeller. Han er også en aktiv talsmann for lavkode ML-løsninger og ML-spesialisert maskinvare.
Dr. Ashish Khetan er Senior Applied Scientist med Amazon SageMaker innebygde algoritmer og hjelper til med å utvikle maskinlæringsalgoritmer. Han fikk sin doktorgrad fra University of Illinois Urbana Champaign. Han er en aktiv forsker innen maskinlæring og statistisk inferens og har publisert mange artikler i NeurIPS, ICML, ICLR, JMLR, ACL og EMNLP-konferanser.
- AI
- ai kunst
- ai art generator
- du har en robot
- Amazon SageMaker
- Amazon SageMaker JumpStart
- kunstig intelligens
- sertifisering av kunstig intelligens
- kunstig intelligens i bankvirksomhet
- kunstig intelligens robot
- kunstig intelligens roboter
- programvare for kunstig intelligens
- AWS maskinlæring
- blockchain
- blockchain konferanse ai
- coingenius
- samtale kunstig intelligens
- kryptokonferanse ai
- dall sin
- dyp læring
- Grunnleggende (100)
- google det
- maskinlæring
- plato
- plato ai
- Platon Data Intelligence
- Platon spill
- PlatonData
- platogaming
- skala ai
- syntaks
- zephyrnet