Amazon SageMaker JumpStart-modeller og algoritmer er nu tilgængelige via API PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Amazon SageMaker JumpStart-modeller og algoritmer er nu tilgængelige via API

I december 2020, AWS annoncerede den generelle tilgængelighed of Amazon SageMaker JumpStart, en evne til Amazon SageMaker der hjælper dig hurtigt og nemt at komme i gang med maskinlæring (ML). JumpStart giver et-klik finjustering og implementering af en lang række præ-trænede modeller på tværs af populære ML-opgaver, samt et udvalg af end-to-end-løsninger, der løser almindelige forretningsproblemer. Disse funktioner fjerner de tunge løft fra hvert trin i ML-processen, hvilket gør det nemmere at udvikle højkvalitetsmodeller og reducerer tiden til implementering.

Tidligere var alt JumpStart-indhold kun tilgængeligt via Amazon SageMaker Studio, som giver en brugervenlig grafisk grænseflade at interagere med funktionen. I dag er vi glade for at kunne annoncere lanceringen af ​​brugervenlig JumpStart API'er som en udvidelse af SageMaker Python SDK. Disse API'er giver dig mulighed for programmæssigt at implementere og finjustere et stort udvalg af JumpStart-understøttede præ-trænede modeller på dine egne datasæt. Denne lancering låser op for brugen af ​​JumpStart-funktioner i dine kode-workflows, MLOps-pipelines og andre steder, hvor du interagerer med SageMaker via SDK.

I dette indlæg giver vi en opdatering om den aktuelle tilstand af JumpStarts muligheder og guider dig gennem brugsflowet af JumpStart API med et eksempel på en brugssag.

JumpStart oversigt

JumpStart er et produkt med mange facetter, der indeholder forskellige muligheder for at hjælpe dig hurtigt i gang med ML på SageMaker. I skrivende stund giver JumpStart dig mulighed for at gøre følgende:

  • Implementer forudtrænede modeller til almindelige ML-opgaver – JumpStart giver dig mulighed for at løse almindelige ML-opgaver uden udviklingsindsats ved at give nem implementering af modeller, der er forudtrænede på offentligt tilgængelige store datasæt. ML-forskningsmiljøet har lagt en stor indsats i at gøre et flertal af nyligt udviklede modeller offentligt tilgængelige til brug. JumpStart er vært for en samling af over 300 modeller, der spænder over de 15 mest populære ML-opgaver såsom objektgenkendelse, tekstklassificering og tekstgenerering, hvilket gør det nemt for begyndere at bruge dem. Disse modeller er hentet fra populære modelhubs, såsom TensorFlow, PyTorch, Hugging Face og MXNet Hub.
  • Finjuster fortrænede modeller – JumpStart giver dig mulighed for at finjustere fortrænede modeller uden at skulle skrive din egen træningsalgoritme. I ML kaldes evnen til at overføre den lærte viden i et domæne til et andet domæne overføre læring. Du kan bruge transfer learning til at producere nøjagtige modeller på dine mindre datasæt med meget lavere uddannelsesomkostninger end dem, der er involveret i at træne den originale model fra bunden. JumpStart inkluderer også populære træningsalgoritmer baseret på LightGBM, CatBoost, XGBoost og Scikit-learn, som du kan træne fra bunden til tabeldataregression og klassificering.
  • Brug færdigbyggede løsninger – JumpStart giver et sæt af 17 færdigbyggede løsninger til almindelige ML-brugssager, såsom behovsprognose og industrielle og finansielle applikationer, som du kan implementere med blot et par klik. Løsningerne er end-to-end ML-applikationer, der samler forskellige AWS-tjenester for at løse en bestemt business use case. De bruger AWS CloudFormation skabeloner og referencearkitekturer til hurtig implementering, hvilket betyder, at de kan tilpasses fuldt ud.
  • Brug notesbogseksempler til SageMaker-algoritmer – SageMaker giver en suite af indbyggede algoritmer for at hjælpe dataforskere og ML-praktikere med at komme i gang med at træne og implementere ML-modeller hurtigt. JumpStart giver eksempler på notesbøger, som du kan bruge til hurtigt at bruge disse algoritmer.
  • Udnyt træningsvideoer og blogs – JumpStart giver også adskillige blogindlæg og videoer, der lærer dig, hvordan du bruger forskellige funktioner i SageMaker.

JumpStart accepterer brugerdefinerede VPC-indstillinger og KMS-krypteringsnøgler, så du kan bruge de tilgængelige modeller og løsninger sikkert i dit virksomhedsmiljø. Du kan videregive dine sikkerhedsindstillinger til JumpStart i SageMaker Studio eller gennem SageMaker Python SDK.

JumpStart-understøttede ML-opgaver og API-eksempelnotesbøger

JumpStart understøtter i øjeblikket 15 af de mest populære ML-opgaver; 13 af dem er vision- og NLP-baserede opgaver, hvoraf 8 understøtter no-code finjustering. Det understøtter også fire populære algoritmer til tabeldatamodellering. Opgaverne og links til deres eksempelnotesbøger er opsummeret i følgende tabel.

Opgaver Inferens med præ-trænede modeller Træning i tilpasset datasæt Rammer understøttet Eksempel på notesbøger
Billedklassificering Ja Ja PyTorch, TensorFlow Introduktion til JumpStart – Billedklassificering
Objektdetektion Ja Ja PyTorch, TensorFlow, MXNet Introduktion til JumpStart – Objektdetektion
Semantisk segmentering Ja Ja MX Net Introduktion til JumpStart – Semantisk segmentering
Forekomstsegmentering Ja ingen MX Net Introduktion til JumpStart – Instance Segmentation
Indlejring af billede Ja ingen TensorFlow, MXNet Introduktion til JumpStart – Image Embedding
Tekstklassificering Ja Ja TensorFlow Introduktion til JumpStart – Tekstklassificering
Sætningsparklassifikation Ja Ja TensorFlow, kramme ansigt Introduktion til JumpStart – Sætningsparklassifikation
Besvarelse af spørgsmål Ja Ja PyTorch Introduktion til JumpStart – Besvarelse af spørgsmål
Navngivet enhedsgenkendelse Ja ingen Knusende ansigt Introduktion til JumpStart – Named Entity Recognition
Tekstopsummering Ja ingen Knusende ansigt Introduktion til JumpStart – Tekstopsummering
Tekstgenerering Ja ingen Knusende ansigt Introduktion til JumpStart – Tekstgenerering
Maskinoversættelse Ja ingen Knusende ansigt Introduktion til JumpStart – Maskinoversættelse
Indlejring af tekst Ja ingen TensorFlow, MXNet Introduktion til JumpStart – Tekstindlejring
Klassifikation i tabelform Ja Ja LightGBM, CatBoost, XGBoost, Linear Learner Introduktion til JumpStart – Tabelklassificering – LightGBM, CatBoost
Introduktion til JumpStart – Tabelklassificering – XGBoost, Linear Learner
Tabelregression Ja Ja LightGBM, CatBoost, XGBoost, Linear Learner Introduktion til JumpStart – Tabular Regression – LightGBM, CatBoost
Introduktion til JumpStart – Tabular Regression – XGBoost, Linear Learner

Afhængigt af opgaven kan prøvenotesbøgerne, der er linket i den foregående tabel, vejlede dig om alle eller en undergruppe af følgende processer:

  • Vælg en JumpStart-understøttet præ-trænet model til din specifikke opgave.
  • Vær vært for en forudtrænet model, få forudsigelser fra den i realtid, og vis resultaterne tilstrækkeligt.
  • Finjuster en fortrænet model med dit eget udvalg af hyperparametre, og implementer det til slutninger.

Finjuster og implementer en objektdetekteringsmodel med JumpStart API'er

I de følgende afsnit giver vi en trin-for-trin gennemgang af, hvordan man bruger de nye JumpStart API'er på den repræsentative opgave med objektdetektion. Vi viser, hvordan man bruger en forudtrænet objektdetekteringsmodel til at identificere objekter fra et foruddefineret sæt klasser i et billede med afgrænsningsfelter. Til sidst viser vi, hvordan du finjusterer en fortrænet model på dit eget datasæt for at detektere objekter i billeder, der er specifikke for din virksomheds behov, blot ved at medbringe dine egne data. Vi leverer en medfølgende notesbog til denne gennemgang.

Vi gennemgår følgende trin på højt niveau:

  1. Kør inferens på den fortrænede model.
    1. Hent JumpStart-artefakter og implementer et slutpunkt.
    2. Forespørg på slutpunktet, parse svaret, og vis modelforudsigelser.
  2. Finjuster den fortrænede model på dit eget datasæt.
    1. Hent træningsartefakter.
    2. Løb træning.

Kør inferens på den fortrænede model

I dette afsnit vælger vi en passende præ-trænet model i JumpStart, implementerer denne model til et SageMaker-slutpunkt og viser, hvordan man kører inferens på det implementerede slutpunkt. Alle trin er tilgængelige i medfølgende Jupyter notesbog.

Hent JumpStart-artefakter og implementer et slutpunkt

SageMaker er en platform baseret på Docker-containere. JumpStart bruger den tilgængelige rammespecifikke SageMaker Deep Learning Containere (DLC'er). Vi henter eventuelle yderligere pakker, samt scripts til at håndtere træning og slutninger til den valgte opgave. Til sidst hentes de fortrænede modelartefakter separat med model_uris, hvilket giver fleksibilitet til platformen. Du kan bruge et hvilket som helst antal modeller, der er foruddannet til den samme opgave med et enkelt trænings- eller inferensscript. 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")

Dernæst tilfører vi ressourcerne til en SageMaker model instans og implementer et slutpunkt:

# 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)

Endpoint-implementeringen kan tage et par minutter at fuldføre.

Forespørg på slutpunktet, parse svaret, og vis forudsigelser

For at få slutninger fra en implementeret model skal et inputbillede leveres i binært format sammen med en accepttype. I JumpStart kan du definere antallet af returnerede afgrænsningskasser. I det følgende kodestykke forudsiger vi ti afgrænsningsfelter pr. billede ved at tilføje ;n_predictions=10 til Accept. For at forudsige xx-bokse kan du ændre det til ;n_predictions=xx , eller få alle de forudsagte felter ved at udelade ;n_predictions=xx helt.

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 kodestykke giver dig et glimt af, hvordan objektgenkendelse ser ud. Den forudsagte sandsynlighed for hver objektklasse visualiseres sammen med dens afgrænsningsramme. Vi bruger parse_response , display_predictions hjælpefunktioner, som er defineret i den medfølgende notesbog.

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

Følgende skærmbillede viser outputtet af et billede med forudsigelsesetiketter og afgrænsningsfelter.

Amazon SageMaker JumpStart-modeller og algoritmer er nu tilgængelige via API PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Finjuster en fortrænet model på dit eget datasæt

Eksisterende objektdetektionsmodeller i JumpStart er fortrænede enten på COCO- eller VOC-datasættene. Men hvis du har brug for at identificere objektklasser, der ikke findes i det originale fortræningsdatasæt, skal du finjustere modellen på et nyt datasæt, der inkluderer disse nye objekttyper. For eksempel, hvis du har brug for at identificere køkkenredskaber og køre slutninger på en implementeret præ-trænet SSD-model, genkender modellen ikke nogen egenskaber ved de nye billedtyper, og outputtet er derfor forkert.

I dette afsnit demonstrerer vi, hvor nemt det er at finjustere en forudtrænet model til at opdage nye objektklasser ved hjælp af JumpStart API'er. Det fulde kodeeksempel med flere detaljer er tilgængeligt i medfølgende notesbog.

Hent træningsartefakter

Træningsartefakter ligner de slutningsartefakter, der er diskuteret i det foregående afsnit. Træning kræver en basis Docker-beholder, nemlig MXNet-beholderen i følgende eksempelkode. Eventuelle yderligere pakker, der kræves til træning, er inkluderet i træningsscripts i train_sourcer_uri. Den fortrænede model og dens parametre 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øb træning

For at køre træning fodrer vi blot de nødvendige artefakter sammen med nogle yderligere parametre til en SageMaker Estimator og ring til .fit fungere:

# 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 træner, kan du overvåge dens fremskridt enten i SageMaker notesbogen, hvor du kører selve koden, eller på amazoncloudwatch. Når træningen er afsluttet, uploades de finjusterede modelartefakter til Amazon Simple Storage Service (Amazon S3) outputplacering angivet i træningskonfigurationen. Du kan nu implementere modellen på samme måde som den fortrænede model. Du kan følge resten af ​​processen i medfølgende notesbog.

Konklusion

I dette indlæg beskrev vi værdien af ​​de nyligt udgivne JumpStart API'er, og hvordan man bruger dem. Vi leverede links til 17 eksempler på notesbøger til de forskellige ML-opgaver, der understøttes i JumpStart, og ledte dig gennem notesbogen til objektgenkendelse.

Vi ser frem til at høre fra dig, mens du eksperimenterer med JumpStart.


Om forfatterne

Amazon SageMaker JumpStart-modeller og algoritmer er nu tilgængelige via API PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Dr. Vivek Madan er en anvendt videnskabsmand hos Amazon SageMaker JumpStart-teamet. Han fik sin ph.d. fra University of Illinois i Urbana-Champaign og var en post-doktoral forsker ved Georgia Tech. Han er en aktiv forsker i maskinlæring og algoritmedesign og har publiceret artikler i EMNLP, ICLR, COLT, FOCS og SODA konferencer.

Amazon SageMaker JumpStart-modeller og algoritmer er nu tilgængelige via API PlatoBlockchain Data Intelligence. Lodret søgning. Ai.João Moura er AI/ML Specialist Solutions Architect hos Amazon Web Services. Han er mest fokuseret på NLP use-cases og hjælper kunder med at optimere Deep Learning modeltræning og implementering.

Amazon SageMaker JumpStart-modeller og algoritmer er nu tilgængelige via API PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Dr. Ashish Khetan er Senior Applied Scientist med Amazon SageMaker JumpStart , Amazon SageMaker indbyggede algoritmer og hjælper med at udvikle maskinlæringsalgoritmer. Han er en aktiv forsker i maskinlæring og statistisk inferens og har publiceret mange artikler i NeurIPS-, ICML-, ICLR-, JMLR- og ACL-konferencer.

Tidsstempel:

Mere fra AWS maskinindlæring