Lär Er AI med Python · Lektion

Molndistribution: AWS SageMaker

SageMaker Model, EndpointConfig, Endpoint, realtidsinferens, batchtransformering.

Lektion 2 av 413 steg

Molndistribution: AWS SageMaker är en gratis lektion i Lär Er AI med Python på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Lär Er AI med Python, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.

Varför SageMaker

Amazon SageMaker är en hanterad tjänst för att träna och distribuera ML-modeller. I stället för att själva konfigurera servrar och lastbalanserare beskriver Ni en modell, så startar SageMaker en skalbar HTTPS-endpoint i bakgrunden.

De tre beståndsdelarna

En SageMaker-distribution behöver tre saker:

  • En containeravbildning i image_uri (er serveringsavbildning i ECR eller en inbyggd framework-avbildning)
  • De tränade vikterna som model_data, ett tar.gz-arkiv i S3
  • En IAM-roll som ger SageMaker åtkomst till dessa resurser

Definiera en modell

Objektet sagemaker.Model kopplar containeravbildningen till modellartefakten i S3.

import sagemaker
from sagemaker.model import Model

model = Model(
    image_uri="123456789012.dkr.ecr.us-east-1.amazonaws.com/my-model:latest",
    model_data="s3://my-bucket/models/model.tar.gz",
    role="arn:aws:iam::123456789012:role/SageMakerRole",
)

Vad finns i model.tar.gz

SageMaker hämtar och packar upp model_data i /opt/ml/model i containern när den startar. Er serveringskod läser vikterna därifrån. Arkivet innehåller vanligtvis den sparade modellfilen samt eventuella tillgångar för förbehandling.

# model.tar.gz contents
# model.pt
# tokenizer.json
# config.json

Distribuera en realtidsendpoint

model.deploy startar en eller flera instanser bakom en permanent HTTPS-endpoint. Ni väljer instance_type och det ursprungliga antalet instanser.

predictor = model.deploy(
    initial_instance_count=1,
    instance_type="ml.m5.xlarge",
    endpoint_name="my-model-endpoint",
)

Välja en instanstyp

Instanstypen styr kostnad och latens:

  • ml.m5.* CPU för generell användning, kostnadseffektiv för små modeller
  • ml.c5.* beräkningsoptimerad
  • ml.g4dn.* / ml.g5.* GPU för inferens inom deep learning

Anpassa instansen efter modellen: en GPU är slöseri för en liten scikit-learn-modell.

Anropa predict()

När modellen har distribuerats skickar predictor.predict() en nyttolast till endpointen och returnerar inferensresultatet. SageMaker serialiserar begäran och dirigerar den till en aktiv instans.

result = predictor.predict({
    "instances": [[5.1, 3.5, 1.4, 0.2]]
})
print(result)

Rensa bort endpoints

Realtidsendpoints debiteras per sekund medan de körs. Ta alltid bort endpoints som Ni inte längre behöver, annars fortsätter kostnaderna att öka även utan trafik.

predictor.delete_endpoint()

Batchtransformering för offlinejobb

Använd batchtransformering när Ni ska beräkna resultat för en stor datamängd en gång, i stället för att tillhandahålla en tjänst med låg latens. SageMaker startar instanser, bearbetar en hel S3-datamängd, skriver resultaten tillbaka till S3 och stänger sedan av instanserna. Ingen permanent endpoint och inga kostnader för inaktiva instanser.

Köra en batchtransformering

Ni skapar en transformerare från modellen och anger indata i S3.

transformer = model.transformer(
    instance_count=1,
    instance_type="ml.m5.xlarge",
    output_path="s3://my-bucket/predictions/",
)
transformer.transform(
    data="s3://my-bucket/input/batch.csv",
    content_type="text/csv",
)
transformer.wait()

Realtid jämfört med batch

Välj utifrån arbetsbelastningen:

  • Realtidsendpoint: kontinuerliga begäranden med låg latens (till exempel ett rekommendations-API)
  • Batchtransformering: periodisk beräkning av resultat för stora datamängder (till exempel nattliga prognoser för kundbortfall)

Batch är betydligt billigare när Ni inte behöver omedelbara svar.

Snabbtest

När bör Ni använda SageMaker-batchtransformering i stället för en realtidsendpoint?

Sammanfattning

Ni har distribuerat en modell till AWS SageMaker:

  • sagemaker.Model kopplar en image_uri till model_data i S3
  • model.deploy skapar en realtidsendpoint med en vald instance_type
  • predictor.predict() skickar inferensbegäranden
  • Batchtransformering hanterar stora offlinearbetsbelastningar kostnadseffektivt
  • Ta alltid bort inaktiva endpoints för att undvika kostnader
Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
53
Lektioner
225

Vanliga frågor

Är lektionen ”Molndistribution: AWS SageMaker” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lär Er AI med Python, inklusive ”Molndistribution: AWS SageMaker”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.

Vad lär jag mig i ”Molndistribution: AWS SageMaker”?

SageMaker Model, EndpointConfig, Endpoint, realtidsinferens, batchtransformering. Ni övar på Lär Er AI med Python med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Lär Er AI med Python?

Du behöver inga förkunskaper. Utbildningen i Lär Er AI med Python på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Molndistribution: AWS SageMaker”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Lär Er AI med Python-lektionen?

Ja. Varje Lär Er AI med Python-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Containerisera ML-modeller med Docker
  2. Molndistribution: AWS SageMaker
  3. Högpresterande tillhandahållande med Triton Inference Server
  4. Skalning och automatisk skalning av modellslutpunkter
← Tillbaka till Lär Er AI med Python