Amazon SageMaker Autopilot bygger, træner og tuner automatisk de bedste maskinlæringsmodeller (ML) baseret på dine data, samtidig med at du kan bevare fuld kontrol og synlighed. Autopiloten kan også implementere trænede modeller til endepunkter i realtid automatisk.
Hvis du har arbejdsbelastninger med spidse eller uforudsigelige trafikmønstre, der kan tolerere koldstarter, ville det være mere omkostningseffektivt at implementere modellen til et serverløst slutpunkt.
Amazon SageMaker Serverless Inference er en specialbygget slutningsmulighed, der er ideel til arbejdsbelastninger med uforudsigelige trafikmønstre, og som kan tolerere koldstart. I modsætning til et slutpunkt i realtid, som understøttes af en langvarig beregningsinstans, leverer serverløse slutpunkter ressourcer efter behov med indbygget automatisk skalering. Serverløse slutpunkter skalerer automatisk baseret på antallet af indgående anmodninger og skalerer ressourcer ned til nul, når der ikke er nogen indgående anmodninger, hvilket hjælper dig med at minimere dine omkostninger.
I dette indlæg viser vi, hvordan man implementerer autopilottrænede modeller til serverløse slutningspunkter ved hjælp af Boto3 biblioteker forum Amazon SageMaker.
Autopilot træningstilstande
Før du opretter et autopiloteksperiment, kan du enten lade autopilot vælge træningstilstand automatisk, eller du kan vælge træningstilstand manuelt.
Autopilot understøtter i øjeblikket tre træningstilstande:
- Auto – Baseret på datasætstørrelsen vælger Autopilot automatisk enten ensembling eller HPO-tilstand. For datasæt større end 100 MB vælger Autopilot HPO; ellers vælger den ensembling.
- Ensembling – Autopiloten bruger AutoGluon ensembling teknik ved hjælp af model stabling og producerer en optimal prædiktiv model.
- Hyperparameter optimering (HPO) – Autopilot finder den bedste version af en model ved at tune hyperparametre ved hjælp af Bayesiansk optimering eller multi-fidelity-optimering, mens du kører træningsjob på dit datasæt. HPO-tilstand vælger de algoritmer, der er mest relevante for dit datasæt og vælger det bedste udvalg af hyperparametre til at tune dine modeller.
For at lære mere om autopilottræningstilstande, se Træningstilstande.
Løsningsoversigt
I dette indlæg bruger vi UCI Bank Marketing datasæt til at forudsige, om en kunde vil abonnere på et tidsindskud, der tilbydes af banken. Dette er en binær klassifikationsproblemtype.
Vi lancerer to autopilotjob ved hjælp af Boto3-biblioteker til SageMaker. Det første job bruger ensembling som den valgte træningstilstand. Vi implementerer derefter den enkelte ensemblemodel, der er genereret til et serverløst slutpunkt og sender inferensanmodninger til dette hostede slutpunkt.
Det andet job bruger HPO-træningstilstanden. For klassificeringsproblemtyper genererer Autopilot tre inferensbeholdere. Vi udtrækker disse tre inferensbeholdere og implementerer dem til separate serverløse slutpunkter. Derefter sender vi slutningsanmodninger til disse hostede slutpunkter.
For mere information om regressions- og klassifikationsproblemtyper, se Inferensbeholderdefinitioner for regressions- og klassifikationsproblemtyper.
Vi kan også starte autopilotjob fra Amazon SageMaker Studio UI. Hvis du starter job fra brugergrænsefladen, skal du sørge for at deaktivere Automatisk implementering valgmulighed i Implementering og avancerede indstillinger afsnit. Ellers vil Autopilot implementere den bedste kandidat til et slutpunkt i realtid.
Forudsætninger
Sørg for, at du har den seneste version af Boto3 og SageMaker Python-pakkerne installeret:
pip install -U boto3 sagemaker
Vi har brug for SageMaker-pakkeversionen >= 2.110.0
og Boto3 version >= boto3-1.24.84.
Start et autopilotjob med ensemblingstilstand
For at starte et autopilotjob ved hjælp af SageMaker Boto3-bibliotekerne bruger vi oprette_auto_ml_job API. Så går vi ind AutoMLJobConfig
, InputDataConfig
og AutoMLJobObjective
som input til create_auto_ml_job
. Se følgende kode:
Autopilot returnerer BestCandidate
modelobjekt, der har InferenceContainers
påkrævet for at implementere modellerne til at slutte endepunkter. For at få BestCandidate
til det foregående job bruger vi describe_automl_job
fungere:
Implementer den trænede model
Vi implementerer nu den foregående inferensbeholder til et serverløst slutpunkt. Det første trin er at oprette en model fra inferensbeholderen og derefter oprette en slutpunktskonfiguration, hvori vi angiver MemorySizeInMB
, MaxConcurrency
værdier for det serverløse slutpunkt sammen med modelnavnet. Til sidst opretter vi et slutpunkt med den ovenfor oprettede slutpunktskonfiguration.
Vi anbefaler at vælge din endepunktets hukommelsesstørrelse i henhold til din modelstørrelse. Hukommelsesstørrelsen skal være mindst lige så stor som din modelstørrelse. Dit serverløse slutpunkt har en minimum RAM-størrelse på 1024 MB (1 GB), og den maksimale RAM-størrelse, du kan vælge, er 6144 MB (6 GB).
De hukommelsesstørrelser, du kan vælge, er 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB eller 6144 MB.
For at hjælpe med at afgøre, om et serverløst slutpunkt er den rigtige implementeringsmulighed ud fra et omkostnings- og ydeevneperspektiv, opfordrer vi dig til at henvise til SageMaker Serverless Inference Benchmarking Toolkit, som tester forskellige slutpunktskonfigurationer og sammenligner den mest optimale med en sammenlignelig realtidshostinginstans.
Bemærk, at serverløse endepunkter kun accepterer SingleModel
til slutningsbeholdere. Autopilot i ensembling-tilstand genererer en enkelt model, så vi kan implementere denne modelbeholder, som den er, til slutpunktet. Se følgende kode:
Når det serverløse slutningspunkt er InService
, kan vi teste slutpunktet ved at sende en slutningsanmodning og observere forudsigelserne. Følgende diagram illustrerer denne opsætnings arkitektur.
Bemærk, at vi kan sende rådata som en nyttelast til slutpunktet. Ensemblemodellen, der genereres af Autopilot, inkorporerer automatisk alle nødvendige funktionstransformations- og invers-labeltransformationstrin, sammen med algoritmemodellen og -pakkerne, i en enkelt model.
Send slutningsanmodning til den trænede model
Brug følgende kode til at sende slutninger om din model trænet i ensembling-tilstand:
Start et autopilotjob med HPO-tilstand
I HPO-tilstand, for CompletionCriteria
derudover MaxRuntimePerTrainingJobInSeconds
, MaxAutoMLJobRuntimeInSeconds,
vi kunne også specificere MaxCandidates
for at begrænse antallet af kandidater, som et autopilotjob genererer. Bemærk, at disse er valgfrie parametre og kun er indstillet til at begrænse jobkørselstiden til demonstration. Se følgende kode:
At hente BestCandidate
til det foregående job, kan vi igen bruge describe_automl_job
fungere:
Implementer den trænede model
Autopilot i HPO-tilstand for klassificeringsproblemtypen genererer tre inferensbeholdere.
Den første beholder håndterer funktionstransformeringstrinene. Dernæst genererer algoritmebeholderen predicted_label
med størst sandsynlighed. Til sidst udfører efterbehandlingsbeholderen en invers transformation på den forudsagte etiket og tilknytter den til den originale etiket. For mere information, se Inferensbeholderdefinitioner for regressions- og klassifikationsproblemtyper.
Vi uddrager disse tre inferensbeholdere og implementerer dem til et separat serverløst slutpunkt. For at slutninge påberåber vi endepunkterne i rækkefølge ved at sende nyttelasten først til feature-transform containeren, derefter sende output fra denne container til algoritme containeren og til sidst sende output fra den forrige inferens container til post-processing containeren, som udsender den forudsagte etiket.
Følgende diagram illustrerer denne opsætnings arkitektur.
Vi uddrager de tre inferensbeholdere fra BestCandidate
med følgende kode:
Send slutningsanmodning til den trænede model
For at konkludere, sender vi nyttelasten i rækkefølge: først til feature-transform containeren, derefter til model containeren og til sidst til invers label transformation containeren.
Se følgende kode:
Den fulde implementering af dette eksempel er tilgængelig i følgende jupyter notesbog.
Ryd op
For at rydde op i ressourcer kan du slette de oprettede serverløse endepunkter, endepunktskonfigurationer og modeller:
Konklusion
I dette indlæg viste vi, hvordan vi kan implementere autopilotgenererede modeller både i ensemble- og HPO-tilstande til serverløse inferensendepunkter. Denne løsning kan fremskynde din evne til at bruge og drage fordel af omkostningseffektive og fuldt administrerede ML-tjenester som Autopilot til at generere modeller hurtigt ud fra rå data og derefter implementere dem til fuldt administrerede serverløse slutpunkter med indbygget automatisk skalering for at reducere omkostningerne .
Vi opfordrer dig til at prøve denne løsning med et datasæt, der er relevant for din virksomheds KPI'er. Du kan henvise til løsningen implementeret i en Jupyter-notesbog i GitHub repo.
Yderligere referencer
Om forfatteren
Praveen Chamarthi er en senior AI/ML-specialist med Amazon Web Services. Han brænder for AI/ML og alt, hvad der har med AWS at gøre. Han hjælper kunder i hele Nord- og Sydamerika med at skalere, innovere og drive ML-arbejdsbelastninger effektivt på AWS. I sin fritid elsker Praveen at læse og nyder sci-fi-film.
- Avanceret (300)
- AI
- ai kunst
- ai kunst generator
- en robot
- Amazon SageMaker
- Amazon SageMaker Autopilot
- kunstig intelligens
- certificering af kunstig intelligens
- kunstig intelligens i banksektoren
- kunstig intelligens robot
- kunstig intelligens robotter
- software til kunstig intelligens
- AWS maskinindlæring
- blockchain
- blockchain konference ai
- coingenius
- samtale kunstig intelligens
- kryptokonference ai
- dalls
- dyb læring
- du har google
- machine learning
- plato
- platon ai
- Platon Data Intelligence
- Platon spil
- PlatoData
- platogaming
- skala ai
- syntaks
- Teknisk vejledning
- zephyrnet