Amazon SageMaker JumpStart-modeller og algoritmer er nå tilgjengelig via API PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Amazon SageMaker JumpStart-modeller og algoritmer er nå tilgjengelig via API

I desember 2020, AWS annonserte den generelle tilgjengeligheten of Amazon SageMaker JumpStart, en evne til Amazon SageMaker som hjelper deg raskt og enkelt å komme i gang med maskinlæring (ML). JumpStart gir ett-klikks finjustering og distribusjon av et bredt utvalg av forhåndstrente modeller på tvers av populære ML-oppgaver, samt et utvalg ende-til-ende-løsninger som løser vanlige forretningsproblemer. Disse funksjonene fjerner de tunge løftene fra hvert trinn i ML-prosessen, noe som gjør det enklere å utvikle høykvalitetsmodeller og reduserer tiden til utrulling.

Tidligere var alt JumpStart-innhold kun tilgjengelig gjennom Amazon SageMaker Studio, som gir en brukervennlig grafisk grensesnitt for å samhandle med funksjonen. I dag er vi glade for å kunngjøre lanseringen av brukervennlig JumpStart APIer som en utvidelse av SageMaker Python SDK. Disse API-ene lar deg programmere distribuere og finjustere et stort utvalg av JumpStart-støttede forhåndstrente modeller på dine egne datasett. Denne lanseringen låser opp bruken av JumpStart-funksjoner i kodearbeidsflytene dine, MLOps-pipelines og andre steder du samhandler med SageMaker via SDK.

I dette innlegget gir vi en oppdatering om den nåværende statusen til JumpStarts evner og veileder deg gjennom bruksflyten til JumpStart API med et eksempel på bruk.

JumpStart oversikt

JumpStart er et mangefasettert produkt som inkluderer forskjellige funksjoner for å hjelpe deg raskt i gang med ML på SageMaker. I skrivende stund lar JumpStart deg gjøre følgende:

  • Distribuer forhåndstrente modeller for vanlige ML-oppgaver – JumpStart lar deg løse vanlige ML-oppgaver uten utviklingsinnsats ved å tilby enkel distribusjon av modeller som er forhåndstrent på offentlig tilgjengelige store datasett. ML-forskningsmiljøet har lagt ned en stor innsats for å gjøre et flertall av nylig utviklede modeller offentlig tilgjengelig for bruk. JumpStart er vert for en samling på over 300 modeller, som spenner over de 15 mest populære ML-oppgavene som objektgjenkjenning, tekstklassifisering og tekstgenerering, noe som gjør det enkelt for nybegynnere å bruke dem. Disse modellene er hentet fra populære modellhuber, som TensorFlow, PyTorch, Hugging Face og MXNet Hub.
  • Finjuster forhåndstrente modeller – JumpStart lar deg finjustere ferdigtrente modeller uten å måtte skrive din egen treningsalgoritme. I ML kalles evnen til å overføre kunnskapen lært i ett domene til et annet domene overføre læring. Du kan bruke overføringslæring til å produsere nøyaktige modeller på de mindre datasettene dine, med mye lavere opplæringskostnader enn de som er involvert i å trene den originale modellen fra bunnen av. JumpStart inkluderer også populære treningsalgoritmer basert på LightGBM, CatBoost, XGBoost og Scikit-learn som du kan trene fra bunnen av for tabelldataregresjon og klassifisering.
  • Bruk forhåndsbygde løsninger – JumpStart gir et sett med 17 ferdigbygde løsninger for vanlige ML-brukstilfeller, for eksempel behovsprognoser og industrielle og finansielle applikasjoner, som du kan implementere med bare noen få klikk. Løsningene er ende-til-ende ML-applikasjoner som setter sammen ulike AWS-tjenester for å løse et bestemt forretningsbruk. De bruker AWS skyformasjon maler og referansearkitekturer for rask distribusjon, noe som betyr at de er fullt tilpassbare.
  • Bruk bærbare eksempler for SageMaker-algoritmer – SageMaker gir en pakke med innebygde algoritmer for å hjelpe dataforskere og ML-utøvere raskt i gang med opplæring og distribusjon av ML-modeller. JumpStart gir eksempler på notatbøker som du kan bruke for raskt å bruke disse algoritmene.
  • Dra nytte av treningsvideoer og blogger – JumpStart gir også en rekke blogginnlegg og videoer som lærer deg hvordan du bruker forskjellige funksjoner i SageMaker.

JumpStart aksepterer tilpassede VPC-innstillinger og KMS-krypteringsnøkler, slik at du kan bruke de tilgjengelige modellene og løsningene sikkert i bedriftsmiljøet ditt. Du kan sende sikkerhetsinnstillingene til JumpStart i SageMaker Studio eller gjennom SageMaker Python SDK.

JumpStart-støttede ML-oppgaver og API-eksempelnotatbøker

JumpStart støtter for tiden 15 av de mest populære ML-oppgavene; 13 av dem er visjons- og NLP-baserte oppgaver, hvorav 8 støtter finjustering uten kode. Den støtter også fire populære algoritmer for tabelldatamodellering. Oppgavene og koblingene til eksempelnotatblokkene deres er oppsummert i tabellen nedenfor.

Oppgave Inferens med forhåndstrente modeller Opplæring på tilpasset datasett Støttede rammer Eksempel på bærbare datamaskiner
Bildeklassifisering ja ja PyTorch, TensorFlow Introduksjon til JumpStart – Bildeklassifisering
Objektdeteksjon ja ja PyTorch, TensorFlow, MXNet Introduksjon til JumpStart – Objektdeteksjon
Semantisk segmentering ja ja MX Nett Introduksjon til JumpStart – Semantisk segmentering
Instanssegmentering ja Nei. MX Nett Introduksjon til JumpStart – Forekomstsegmentering
Innebygging av bilder ja Nei. TensorFlow, MXNet Introduksjon til JumpStart – Bildeinnbygging
Tekstklassifisering ja ja tensorflow Introduksjon til JumpStart – Tekstklassifisering
Setningsparklassifisering ja ja TensorFlow, klemmer ansikt Introduksjon til JumpStart – setningsparklassifisering
Spørsmål svar ja ja PyTorch Introduksjon til JumpStart – Spørsmålssvar
Navngitt enhetsgjenkjenning ja Nei. Klemme ansiktet Introduksjon til JumpStart – Named Entity Recognition
Tekstoppsummering ja Nei. Klemme ansiktet Introduksjon til JumpStart – Tekstoppsummering
Tekstgenerering ja Nei. Klemme ansiktet Introduksjon til JumpStart – Tekstgenerering
Maskinoversettelse ja Nei. Klemme ansiktet Introduksjon til JumpStart – Maskinoversettelse
Innbygging av tekst ja Nei. TensorFlow, MXNet Introduksjon til JumpStart – Tekstinnbygging
Tabellklassifisering ja ja LightGBM, CatBoost, XGBoost, Linear Learner Introduksjon til JumpStart – Tabellklassifisering – LightGBM, CatBoost
Introduksjon til JumpStart – Tabellklassifisering – XGBoost, Linear Learner
Tabellregresjon ja ja LightGBM, CatBoost, XGBoost, Linear Learner Introduksjon til JumpStart – Tabellregresjon – LightGBM, CatBoost
Introduksjon til JumpStart – Tabellregresjon – XGBoost, Lineær Lærer

Avhengig av oppgaven kan eksempelnotatbøkene som er koblet til i den foregående tabellen veilede deg om alle eller en undergruppe av følgende prosesser:

  • Velg en JumpStart-støttet forhåndsopplært modell for din spesifikke oppgave.
  • Vær vert for en forhåndstrent modell, få spådommer fra den i sanntid, og vis resultatene på riktig måte.
  • Finjuster en forhåndstrent modell med ditt eget utvalg av hyperparametre og distribuer den for slutninger.

Finjuster og distribuer en objektdeteksjonsmodell med JumpStart APIer

I de følgende delene gir vi en trinnvis gjennomgang av hvordan du bruker de nye JumpStart APIene på den representative oppgaven med objektdeteksjon. Vi viser hvordan du bruker en forhåndstrent objektdeteksjonsmodell for å identifisere objekter fra et forhåndsdefinert sett med klasser i et bilde med avgrensende bokser. Til slutt viser vi hvordan du kan finjustere en forhåndstrent modell på ditt eget datasett for å oppdage objekter i bilder som er spesifikke for bedriftens behov, ganske enkelt ved å ta med dine egne data. Vi gir en medfølgende notatbok for denne gjennomgangen.

Vi går gjennom følgende trinn på høyt nivå:

  1. Kjør slutning på den forhåndstrente modellen.
    1. Hent JumpStart-artefakter og distribuer et endepunkt.
    2. Spør etter endepunktet, analyser svaret og vis modellspådommer.
  2. Finjuster den ferdigtrente modellen på ditt eget datasett.
    1. Hent treningsartefakter.
    2. Løpetrening.

Kjør slutning på den forhåndstrente modellen

I denne delen velger vi en passende forhåndsopplært modell i JumpStart, distribuerer denne modellen til et SageMaker-endepunkt og viser hvordan man kjører slutninger på det distribuerte endepunktet. Alle trinnene er tilgjengelige i medfølgende Jupyter-notatbok.

Hent JumpStart-artefakter og distribuer et endepunkt

SageMaker er en plattform basert på Docker-containere. JumpStart bruker den tilgjengelige rammespesifikke SageMaker Deep Learning-beholdere (DLC-er). Vi henter eventuelle tilleggspakker, samt skript for å håndtere opplæring og slutninger for den valgte oppgaven. Til slutt hentes de forhåndstrente modellartefaktene separat med model_uris, som gir fleksibilitet til plattformen. Du kan bruke et hvilket som helst antall modeller som er forhåndsopplært for samme oppgave med ett enkelt trenings- eller slutningsskript. Se følgende kode:

infer_model_id, infer_model_version = "pytorch-od-nvidia-ssd", "*" # Retrieve the inference docker container uri. This is the base container PyTorch image for the model selected above. deploy_image_uri = image_uris.retrieve(region=None, framework=None, image_scope="inference",model_id=infer_model_id, model_version=infer_model_version, instance_type=inference_instance_type) # Retrieve the inference script uri. This includes all dependencies and scripts for model loading, inference handling etc.
deploy_source_uri = script_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, script_scope="inference") # Retrieve the base model uri. This includes the pre-trained nvidia-ssd model and parameters.
base_model_uri = model_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, model_scope="inference")

Deretter mater vi ressursene inn i en SageMaker modell forekomst og distribuer et endepunkt:

# Create the SageMaker model instance
model = Model(image_uri=deploy_image_uri, source_dir=deploy_source_uri, model_data=base_model_uri, entry_point="inference.py", role=aws_role, predictor_cls=Predictor, name=endpoint_name) # deploy the Model. Note that we need to pass Predictor class when we deploy model through Model class for being able to run inference through the sagemaker API.
base_model_predictor = model.deploy(initial_instance_count=1, instance_type=inference_instance_type, predictor_cls=Predictor, endpoint_name=endpoint_name)

Sluttpunktdistribusjon kan ta noen minutter å fullføre.

Spør etter endepunktet, analyser svaret og vis spådommer

For å få slutninger fra en distribuert modell, må et inndatabilde leveres i binært format sammen med en aksepttype. I JumpStart kan du definere antallet avgrensende bokser som skal returneres. I den følgende kodebiten forutsier vi ti avgrensende bokser per bilde ved å legge til ;n_predictions=10 til Accept. For å forutsi xx-bokser kan du endre det til ;n_predictions=xx , eller få alle de forutsagte boksene ved å utelate ;n_predictions=xx fullstendig.

def query(model_predictor, image_file_name): with open(image_file_name, "rb") as file: input_img_rb = file.read() return model_predictor.predict(input_img_rb,{ "ContentType": "application/x-image", "Accept": "application/json;verbose;n_predictions=10"}) query_response = query(base_model_predictor, Naxos_Taverna)

Følgende kodebit gir deg et glimt av hvordan gjenstandsdeteksjon ser ut. Sannsynligheten forutsagt for hver objektklasse visualiseres, sammen med dens avgrensningsramme. Vi bruker parse_response og display_predictions hjelpefunksjoner, som er definert i den medfølgende bærbare.

normalized_boxes, classes_names, confidences = parse_response(query_response)
display_predictions(Naxos_Taverna, normalized_boxes, classes_names, confidences)

Følgende skjermbilde viser utdataene til et bilde med prediksjonsetiketter og avgrensningsbokser.

Amazon SageMaker JumpStart-modeller og algoritmer er nå tilgjengelig via API PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Finjuster en forhåndstrent modell på ditt eget datasett

Eksisterende objektdeteksjonsmodeller i JumpStart er forhåndstrent enten på COCO- eller VOC-datasettene. Men hvis du trenger å identifisere objektklasser som ikke eksisterer i det originale forhåndstreningsdatasettet, må du finjustere modellen på et nytt datasett som inkluderer disse nye objekttypene. For eksempel, hvis du trenger å identifisere kjøkkenutstyr og kjøre slutninger på en utplassert forhåndsopplært SSD-modell, gjenkjenner ikke modellen noen egenskaper ved de nye bildetypene, og derfor er utdataene feil.

I denne delen viser vi hvor enkelt det er å finjustere en forhåndstrent modell for å oppdage nye objektklasser ved hjelp av JumpStart APIer. Det fullstendige kodeeksemplet med flere detaljer er tilgjengelig i medfølgende notatbok.

Hent treningsartefakter

Treningsartefakter ligner på slutningsartefakter diskutert i forrige avsnitt. Opplæring krever en base Docker-beholder, nemlig MXNet-beholderen i følgende eksempelkode. Eventuelle tilleggspakker som kreves for opplæring er inkludert i opplæringsskriptene i train_sourcer_uri. Den ferdigtrente modellen og dens parametere er pakket separat.

train_model_id, train_model_version, train_scope = "mxnet-od-ssd-512-vgg16-atrous-coco","*","training"
training_instance_type = "ml.p2.xlarge" # Retrieve the docker image. This is the base container MXNet image for the model selected above. train_image_uri = image_uris.retrieve(region=None, framework=None, model_id=train_model_id, model_version=train_model_version, image_scope=train_scope,instance_type=training_instance_type) # Retrieve the training script and dependencies. This contains all the necessary files including data processing, model training etc.
train_source_uri = script_uris.retrieve(model_id=train_model_id, model_version=train_model_version, script_scope=train_scope) # Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
model_id=train_model_id, model_version=train_model_version, model_scope=train_scope)

Løpetrening

For å kjøre trening, mater vi ganske enkelt de nødvendige artefaktene sammen med noen tilleggsparametre til en SageMaker Estimator og ring .fit funksjon:

# Create SageMaker Estimator instance
od_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=train_model_uri, entry_point="transfer_learning.py", # Entry-point file in source_dir and present in train_source_uri. instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=s3_output_location,
) # Launch a SageMaker Training job by passing s3 path of the training data
od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Mens algoritmen trener, kan du overvåke fremdriften enten i SageMaker-notisboken der du kjører selve koden, eller på Amazon CloudWatch. Når treningen er fullført, lastes de finjusterte modellartefaktene opp til Amazon enkel lagringstjeneste (Amazon S3) utgangssted spesifisert i treningskonfigurasjonen. Du kan nå distribuere modellen på samme måte som den forhåndstrente modellen. Du kan følge resten av prosessen i medfølgende notatbok.

konklusjonen

I dette innlegget beskrev vi verdien av de nylig utgitte JumpStart APIene og hvordan du bruker dem. Vi ga lenker til 17 eksempelnotatbøker for de forskjellige ML-oppgavene som støttes i JumpStart, og ledet deg gjennom notatboken for objektgjenkjenning.

Vi ser frem til å høre fra deg mens du eksperimenterer med JumpStart.


Om forfatterne

Amazon SageMaker JumpStart-modeller og algoritmer er nå tilgjengelig via API PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Dr. Vivek Madan er en Applied Scientist 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 på EMNLP-, ICLR-, COLT-, FOCS- og SODA-konferanser.

Amazon SageMaker JumpStart-modeller og algoritmer er nå tilgjengelig via API PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.João Moura er en AI/ML-spesialistløsningsarkitekt hos Amazon Web Services. Han er for det meste fokusert på NLP-brukstilfeller og å hjelpe kunder med å optimalisere Deep Learning-modellopplæring og -implementering.

Amazon SageMaker JumpStart-modeller og algoritmer er nå tilgjengelig via API PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Dr. Ashish Khetan er Senior Applied Scientist med Amazon SageMaker JumpStart og Amazon SageMaker innebygde algoritmer og hjelper til med å utvikle maskinlæringsalgoritmer. Han er en aktiv forsker innen maskinlæring og statistisk inferens og har publisert mange artikler i NeurIPS, ICML, ICLR, JMLR og ACL-konferanser.

Tidstempel:

Mer fra AWS maskinlæring