Amazon SageMaker JumpStart-modeller och algoritmer är nu tillgängliga via API PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Amazon SageMaker JumpStart-modeller och algoritmer är nu tillgängliga via API

I december 2020, AWS meddelade den allmänna tillgängligheten of Amazon SageMaker JumpStart, en förmåga av Amazon SageMaker som hjälper dig att snabbt och enkelt komma igång med maskininlärning (ML). JumpStart tillhandahåller finjustering och distribution med ett klick av en mängd olika förtränade modeller över populära ML-uppgifter, samt ett urval av helhetslösningar som löser vanliga affärsproblem. Dessa funktioner tar bort de tunga lyften från varje steg i ML-processen, vilket gör det lättare att utveckla högkvalitativa modeller och minskar tiden till implementering.

Tidigare var allt JumpStart-innehåll endast tillgängligt via Amazon SageMaker Studio, som ger en användarvänligt grafiskt gränssnitt att interagera med funktionen. Idag är vi glada över att kunna tillkännage lanseringen av lättanvänd JumpStart API:er som en förlängning av SageMaker Python SDK. Dessa API:er låter dig programmera distribuera och finjustera ett stort urval av JumpStart-stödda förtränade modeller på dina egna datamängder. Den här lanseringen låser upp användningen av JumpStart-funktioner i dina kodarbetsflöden, MLOps-pipelines och överallt där du interagerar med SageMaker via SDK.

I det här inlägget ger vi en uppdatering om det aktuella läget för JumpStarts kapacitet och guidar dig genom användningsflödet för JumpStart API med ett exempel på användningsfall.

JumpStart översikt

JumpStart är en mångfacetterad produkt som innehåller olika funktioner som hjälper dig att snabbt komma igång med ML på SageMaker. I skrivande stund låter JumpStart dig göra följande:

  • Distribuera förutbildade modeller för vanliga ML-uppgifter – JumpStart gör att du kan lösa vanliga ML-uppgifter utan utvecklingsansträngning genom att tillhandahålla enkel distribution av modeller som är förutbildade på allmänt tillgängliga stora datamängder. ML-forskarsamhället har lagt ner mycket arbete på att göra en majoritet av de nyligen utvecklade modellerna allmänt tillgängliga för användning. JumpStart är värd för en samling av över 300 modeller som spänner över de 15 mest populära ML-uppgifterna som objektdetektering, textklassificering och textgenerering, vilket gör det enkelt för nybörjare att använda dem. Dessa modeller är hämtade från populära modellnav, som TensorFlow, PyTorch, Hugging Face och MXNet Hub.
  • Finjustera förtränade modeller – JumpStart låter dig finjustera förtränade modeller utan att behöva skriva din egen träningsalgoritm. I ML kallas förmågan att överföra den kunskap som lärts i en domän till en annan domän överför lärande. Du kan använda transfer learning för att producera exakta modeller på dina mindre datauppsättningar, med mycket lägre utbildningskostnader än de som är involverade i att träna den ursprungliga modellen från början. JumpStart inkluderar också populära träningsalgoritmer baserade på LightGBM, CatBoost, XGBoost och Scikit-learn som du kan träna från grunden för tabelldataregression och klassificering.
  • Använd färdigbyggda lösningar – JumpStart tillhandahåller en uppsättning av 17 färdigbyggda lösningar för vanliga ML-användningsfall, såsom efterfrågeprognoser och industriella och finansiella applikationer, som du kan implementera med bara några få klick. Lösningarna är end-to-end ML-applikationer som sammanfogar olika AWS-tjänster för att lösa ett visst affärsanvändningsfall. De använder AWS molnformation mallar och referensarkitekturer för snabb implementering, vilket innebär att de är helt anpassningsbara.
  • Använd exempel på anteckningsbok för SageMaker-algoritmer – SageMaker tillhandahåller en svit av inbyggda algoritmer för att hjälpa datavetare och ML-utövare att snabbt komma igång med utbildning och implementering av ML-modeller. JumpStart tillhandahåller exempel på anteckningsböcker som du kan använda för att snabbt använda dessa algoritmer.
  • Dra nytta av träningsvideor och bloggar – JumpStart tillhandahåller också många blogginlägg och videor som lär dig hur du använder olika funktioner inom SageMaker.

JumpStart accepterar anpassade VPC-inställningar och KMS-krypteringsnycklar, så att du kan använda de tillgängliga modellerna och lösningarna på ett säkert sätt i din företagsmiljö. Du kan skicka dina säkerhetsinställningar till JumpStart i SageMaker Studio eller via SageMaker Python SDK.

JumpStart-stödda ML-uppgifter och API-exempel anteckningsböcker

JumpStart stöder för närvarande 15 av de mest populära ML-uppgifterna; 13 av dem är vision- och NLP-baserade uppgifter, varav 8 stöder no-code finjustering. Den stöder också fyra populära algoritmer för tabellformad datamodellering. Uppgifterna och länkarna till deras exempelanteckningsböcker sammanfattas i följande tabell.

uppgift Slutledning med förtränade modeller Utbildning i anpassad dataset Ramar som stöds Exempel på anteckningsböcker
Bildklassificering ja ja PyTorch, TensorFlow Introduktion till JumpStart – Bildklassificering
Objektdetektion ja ja PyTorch, TensorFlow, MXNet Introduktion till JumpStart – Objektdetektion
Semantisk segmentering ja ja MX Net Introduktion till JumpStart – Semantisk segmentering
Instanssegmentering ja Nej MX Net Introduktion till JumpStart – Instanssegmentering
Bildinbäddning ja Nej TensorFlow, MXNet Introduktion till JumpStart – Bildinbäddning
Textklassificering ja ja TensorFlow Introduktion till JumpStart – Textklassificering
Klassificering av meningspar ja ja TensorFlow, kramande ansikte Introduktion till JumpStart – Klassificering av meningspar
Frågeställning ja ja PyTorch Introduktion till JumpStart – Frågesvar
Namngivet enhet erkännande ja Nej Kramande ansikte Introduktion till JumpStart – Named Entity Recognition
Textsammanfattning ja Nej Kramande ansikte Introduktion till JumpStart – Textsammanfattning
Textgenerering ja Nej Kramande ansikte Introduktion till JumpStart – Textgenerering
Maskinöversättning ja Nej Kramande ansikte Introduktion till JumpStart – Maskinöversättning
Textinbäddning ja Nej TensorFlow, MXNet Introduktion till JumpStart – Textinbäddning
Tabellklassificering ja ja LightGBM, CatBoost, XGBoost, Linear Learner Introduktion till JumpStart – Tabellklassificering – LightGBM, CatBoost
Introduktion till JumpStart – Tabellklassificering – XGBoost, Linear Learner
Tabellregression ja ja LightGBM, CatBoost, XGBoost, Linear Learner Introduktion till JumpStart – Tabular Regression – LightGBM, CatBoost
Introduktion till JumpStart – tabellregression – XGBoost, linjär inlärare

Beroende på uppgiften kan exempelanteckningsböckerna som är länkade i föregående tabell vägleda dig om alla eller en delmängd av följande processer:

  • Välj en JumpStart-stödd förtränad modell för din specifika uppgift.
  • Värd för en förtränad modell, få förutsägelser från den i realtid och visa resultaten på ett adekvat sätt.
  • Finjustera en förtränad modell med ditt eget urval av hyperparametrar och distribuera den för slutledning.

Finjustera och distribuera en objektdetekteringsmodell med JumpStart API:er

I följande avsnitt ger vi en steg-för-steg-genomgång av hur man använder de nya JumpStart API:erna för den representativa uppgiften att identifiera objekt. Vi visar hur man använder en förtränad objektdetekteringsmodell för att identifiera objekt från en fördefinierad uppsättning klasser i en bild med begränsningsrutor. Slutligen visar vi hur du finjusterar en förtränad modell på din egen datauppsättning för att upptäcka objekt i bilder som är specifika för dina affärsbehov, helt enkelt genom att ta med din egen data. Vi tillhandahåller en medföljande anteckningsbok för denna genomgång.

Vi går igenom följande steg på hög nivå:

  1. Kör slutledning på den förtränade modellen.
    1. Hämta JumpStart-artefakter och distribuera en slutpunkt.
    2. Fråga slutpunkten, analysera svaret och visa modellförutsägelser.
  2. Finjustera den förtränade modellen på din egen datauppsättning.
    1. Hämta träningsartefakter.
    2. Löpträning.

Kör slutledning på den förtränade modellen

I det här avsnittet väljer vi en lämplig förtränad modell i JumpStart, distribuerar den här modellen till en SageMaker-slutpunkt och visar hur man kör inferens på den distribuerade slutpunkten. Alla steg är tillgängliga i medföljande Jupyter anteckningsbok.

Hämta JumpStart-artefakter och distribuera en slutpunkt

SageMaker är en plattform baserad på Docker-containrar. JumpStart använder den tillgängliga ramspecifika SageMaker Deep Learning Containers (DLC). Vi hämtar eventuella ytterligare paket, samt skript för att hantera utbildning och slutledning för den valda uppgiften. Slutligen hämtas de förtränade modellartefakterna separat med model_uris, vilket ger flexibilitet till plattformen. Du kan använda valfritt antal modeller som är förutbildade för samma uppgift med ett enda tränings- eller slutledningsskript. Se följande kod:

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

Därefter matar vi resurserna till en SageMaker modell instans och distribuera en 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-distributionen kan ta några minuter att slutföra.

Fråga slutpunkten, analysera svaret och visa förutsägelser

För att få slutsatser från en utplacerad modell måste en indatabild tillhandahållas i binärt format tillsammans med en accepttyp. I JumpStart kan du definiera antalet begränsningsrutor som returneras. I följande kodavsnitt förutsäger vi tio begränsningsrutor per bild genom att lägga till ;n_predictions=10 till Accept. För att förutsäga xx-rutor kan du ändra det till ;n_predictions=xx , eller få alla predikterade rutor genom att utelämna ;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öljande kodavsnitt ger dig en glimt av hur objektdetektering ser ut. Sannolikheten som förutspås för varje objektklass visualiseras, tillsammans med dess begränsningsram. Vi använder parse_response och display_predictions hjälparfunktioner, som definieras i den medföljande anteckningsbok.

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

Följande skärmdump visar resultatet av en bild med prediktionsetiketter och begränsningsrutor.

Amazon SageMaker JumpStart-modeller och algoritmer är nu tillgängliga via API PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Finjustera en förtränad modell på din egen datauppsättning

Befintliga objektdetekteringsmodeller i JumpStart är förtränade antingen på COCO- eller VOC-datauppsättningarna. Men om du behöver identifiera objektklasser som inte finns i den ursprungliga förträningsdatauppsättningen måste du finjustera modellen på en ny datauppsättning som inkluderar dessa nya objekttyper. Om du till exempel behöver identifiera köksredskap och dra slutsatser på en utplacerad förtränad SSD-modell, känner inte modellen igen några egenskaper hos de nya bildtyperna och därför är utmatningen felaktig.

I det här avsnittet visar vi hur lätt det är att finjustera en förtränad modell för att upptäcka nya objektklasser med hjälp av JumpStart API:er. Det fullständiga kodexemplet med mer information finns tillgängligt i medföljande anteckningsbok.

Hämta träningsartefakter

Träningsartefakter liknar de slutledningsartefakter som diskuterades i föregående avsnitt. Utbildning kräver en bas Docker-behållare, nämligen MXNet-behållaren i följande exempelkod. Eventuella ytterligare paket som krävs för utbildning ingår i utbildningsskripten i train_sourcer_uri. Den förtränade modellen och dess parametrar är förpackade 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)

Kör utbildning

För att köra träning matar vi helt enkelt de nödvändiga artefakterna tillsammans med några ytterligare parametrar till en SageMaker Estimator och ring .fit fungera:

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

Medan algoritmen tränar kan du övervaka dess framsteg antingen i SageMaker-anteckningsboken där du kör själva koden, eller på amazoncloudwatch. När utbildningen är klar laddas de finjusterade modellartefakterna upp till Amazon enkel lagringstjänst (Amazon S3) utgångsplats som anges i träningskonfigurationen. Du kan nu distribuera modellen på samma sätt som den förtränade modellen. Du kan följa resten av processen i medföljande anteckningsbok.

Slutsats

I det här inlägget beskrev vi värdet av de nyligen släppta JumpStart API:erna och hur man använder dem. Vi gav länkar till 17 exempel anteckningsböcker för de olika ML-uppgifter som stöds i JumpStart, och ledde dig genom anteckningsboken för objektidentifiering.

Vi ser fram emot att höra från dig när du experimenterar med JumpStart.


Om författarna

Amazon SageMaker JumpStart-modeller och algoritmer är nu tillgängliga via API PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Dr. Vivek Madan är en tillämpad forskare med Amazon SageMaker JumpStart-teamet. Han tog sin doktorsexamen från University of Illinois i Urbana-Champaign och var en postdoktorand forskare vid Georgia Tech. Han är en aktiv forskare inom maskininlärning och algoritmdesign och har publicerat artiklar i EMNLP, ICLR, COLT, FOCS och SODA-konferenser.

Amazon SageMaker JumpStart-modeller och algoritmer är nu tillgängliga via API PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.João Moura är en AI/ML Specialist Solutions Architect på Amazon Web Services. Han är mestadels fokuserad på NLP-användningsfall och att hjälpa kunder att optimera utbildning och implementering av Deep Learning-modeller.

Amazon SageMaker JumpStart-modeller och algoritmer är nu tillgängliga via API PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Dr Ashish Khetan är senior tillämpad forskare med Amazon SageMaker JumpStart och Amazon SageMaker inbyggda algoritmer och hjälper till att utveckla maskininlärningsalgoritmer. Han är en aktiv forskare inom maskininlärning och statistisk slutledning och har publicerat många artiklar i NeurIPS-, ICML-, ICLR-, JMLR- och ACL-konferenser.

Tidsstämpel:

Mer från AWS maskininlärning