Amazon SageMaker lar deg nå sammenligne ytelsen til en ny versjon av en modellserveringsstabel med den gjeldende utrullede versjonen før en full produksjonsutrulling ved å bruke en utrullingssikkerhetspraksis kjent som skyggetesting. Skyggetesting kan hjelpe deg med å identifisere potensielle konfigurasjonsfeil og ytelsesproblemer før de påvirker sluttbrukere. Med SageMaker trenger du ikke å investere i å bygge din skyggetestinginfrastruktur, slik at du kan fokusere på modellutvikling. SageMaker tar seg av å distribuere den nye versjonen sammen med den nåværende versjonen som betjener produksjonsforespørsler, og dirigerer en del av forespørslene til skyggeversjonen. Du kan deretter sammenligne ytelsen til de to versjonene ved å bruke beregninger som ventetid og feilfrekvens. Dette gir deg større tillit til at produksjonsutrullinger til SageMaker-inferensendepunkter ikke vil forårsake ytelsesregresjoner, og hjelper deg med å unngå avbrudd på grunn av utilsiktede feilkonfigurasjoner.
I dette innlegget demonstrerer vi denne nye SageMaker-evnen. Den tilsvarende eksempelnotisboken er tilgjengelig i denne GitHub Repository.
Oversikt over løsning
Modellserveringsinfrastrukturen din består av maskinlæringsmodellen (ML), serveringsbeholderen eller dataforekomsten. La oss vurdere følgende scenarier:
- Du vurderer å promotere en ny modell som har blitt validert offline til produksjon, men ønsker å evaluere operasjonelle ytelsesberegninger, for eksempel ventetid, feilfrekvens og så videre, før du tar denne avgjørelsen.
- Du vurderer endringer i serveringsinfrastrukturbeholderen din, for eksempel oppdatering av sårbarheter eller oppgradering til nyere versjoner, og ønsker å vurdere virkningen av disse endringene før markedsføring til produksjon.
- Du vurderer å endre ML-forekomsten din og ønsker å evaluere hvordan den nye forekomsten vil fungere med direkte slutningsforespørsler.
Følgende diagram illustrerer løsningsarkitekturen.
For hvert av disse scenariene, velg en produksjonsvariant du vil teste mot, og SageMaker distribuerer automatisk den nye varianten i skyggemodus og ruter en kopi av slutningsforespørslene til den i sanntid innenfor samme endepunkt. Bare svarene fra produksjonsvarianten returneres til den anropende applikasjonen. Du kan velge å forkaste eller logge svarene til skyggevarianten for sammenligning uten nett. Eventuelt kan du overvåke variantene gjennom et innebygd dashbord med en side-ved-side-sammenligning av ytelsesberegningene. Du kan bruke denne funksjonen enten gjennom SageMaker inference update-endpoint APIs eller gjennom SageMaker-konsollen.
Shadow-varianter bygger på toppen av produksjonsvariantens evne i SageMaker-slutningsendepunkter. For å gjenta, a produksjonsvariant består av ML-modellen, serveringsbeholderen og ML-instansen. Fordi hver variant er uavhengig av andre, kan du ha forskjellige modeller, beholdere eller forekomsttyper på tvers av varianter. SageMaker lar deg spesifisere retningslinjer for automatisk skalering på en per-variant basis, slik at de kan skaleres uavhengig basert på innkommende belastning. SageMaker støtter opptil 10 produksjonsvarianter per endepunkt. Du kan enten konfigurere en variant til å motta en del av den innkommende trafikken ved å angi variantvekter, eller spesifisere målvarianten i den innkommende forespørselen. Svaret fra produksjonsvarianten sendes tilbake til invokeren.
A skyggevariant (ny) har samme komponenter som en produksjonsvariant. En brukerspesifisert del av forespørslene, kjent som trafikkprøveprosent, videresendes til skyggevarianten. Du kan velge å logge inn responsen til skyggevarianten Amazon enkel lagringstjeneste (Amazon S3) eller kast den.
Merk at SageMaker støtter maksimalt én skyggevariant per endepunkt. For et endepunkt med en skyggevariant kan det maksimalt være én produksjonsvariant.
Etter at du har satt opp produksjons- og skyggevariantene, kan du overvåke påkallingsberegninger for både produksjon og skyggevarianter i Amazon CloudWatch under AWS/SageMaker
navneområde. Alle oppdateringer til SageMaker-endepunktet er orkestrert ved hjelp av blå/grønne utplasseringer og skje uten tap i tilgjengelighet. Endepunktene dine vil fortsette å svare på produksjonsforespørsler når du legger til, endrer eller fjerner skyggevarianter.
Du kan bruke denne funksjonen på en av to måter:
- Administrert skyggetesting ved hjelp av SageMaker-konsollen – Du kan utnytte konsollen for en guidet opplevelse for å administrere ende-til-ende-reisen med skyggetesting. Dette lar deg sette opp skyggetester for en forhåndsdefinert varighet, overvåke fremdriften gjennom et direkte dashbord, rydde opp etter fullføring og følge resultatene.
- Selvbetjent skyggetesting ved hjelp av SageMaker Inference API-er – Hvis distribusjonsarbeidsflyten din allerede bruker opprette/oppdater/slett-endepunkt-APIer, kan du fortsette å bruke dem til å administrere Shadow Variants.
I de følgende avsnittene går vi gjennom hvert av disse scenariene.
Scenario 1 – Administrert skyggetesting ved hjelp av SageMaker-konsollen
Hvis du ønsker å velge SageMaker for å administrere ende-til-ende-arbeidsflyten for å lage, administrere og handle på resultatene av skyggetestene, bør du vurdere å bruke Shadow-testenes funksjon i Inferens-delen av SageMaker-konsollen. Som nevnt tidligere, lar dette deg sette opp skyggetester for en forhåndsdefinert varighet, overvåke fremdriften gjennom et direkte dashbord, presentere oppryddingsalternativer ved fullføring og handle på resultatene. For å lære mer, vennligst besøk skyggetestene seksjon av vår dokumentasjon for en trinnvis gjennomgang av denne funksjonen.
Forutsetninger
Modellene for produksjon og skygge må lages på SageMaker. Vennligst referer til CreateModel
API her..
Trinn 1 – Lag en skyggetest
Naviger til slutning delen av venstre navigasjonspanel på SageMaker-konsollen og velg deretter Shadow tests. Dette tar deg til et dashbord med alle de planlagte, kjørende og fullførte skyggetestene. Klikk 'lag en skyggetest'. Skriv inn et navn for testen og velg neste.
Dette tar deg til siden for skyggetestinnstillinger. Du kan velge en eksisterende IAM-rolle eller opprette en som har AmazonSageMakerFullAccess
IAM-policy vedlagt. Deretter velger du 'Opprett et nytt endepunkt' og skriv inn et navn (xgb-prod-shadow-1). Du kan legge til én produksjon og én skyggevariant knyttet til dette endepunktet ved å klikke på 'Legge til' i Varianter-delen. Du kan velge modellene du har laget i 'Legg til modell' dialogboks. Dette skaper en produksjon eller variant. Eventuelt kan du endre forekomsttypen og antallet knyttet til hver variant.
All trafikken går til produksjonsvarianten og den svarer på invokasjonsforespørsler. Du kan kontrollere en del av forespørslene som rutes til skyggevarianten ved å endre Traffic Sampling Percentage
.
Du kan kontrollere varigheten av testen fra en time til 30 dager. Hvis det ikke er spesifisert, er det som standard 7 dager. Etter denne perioden markeres testen som fullført. Hvis du kjører en test på et eksisterende endepunkt, vil den bli rullet tilbake til tilstanden før testen starter ved fullføring.
Du kan eventuelt fange opp forespørslene og svarene til Shadow-varianten ved å bruke Datafangst alternativer. Hvis det ikke er spesifisert, blir svarene til skyggevarianten forkastet.
Trinn 2 – Overvåk en skyggetest
Du kan se listen over skyggetester ved å navigere til Shadow Tests
delen under Inferens. Klikk på skyggetesten som ble opprettet i forrige trinn for å se detaljene for en skyggetest og overvåke den mens den pågår eller etter at den er fullført.
Metrikk-delen gir en sammenligning av nøkkelberegningene og gir overliggende grafer mellom produksjons- og skyggevariantene, sammen med beskrivende statistikk. Du kan sammenligne påkallingsberegninger som f.eks ModelLatency
og Invocation4xxErrors
samt instansberegninger som f.eks CPUUtilization
og DiskUtilization
.
Trinn 3 – Markedsfør Shadow-varianten til den nye produksjonsvarianten
Ved sammenligning kan du enten velge å promotere skyggevarianten til å være den nye produksjonsvarianten eller fjerne skyggevarianten. For begge disse alternativene, velg 'Merk fullført' øverst på siden. Dette gir deg muligheten til å enten fremme eller fjerne skyggevarianten.
Hvis du velger å promotere, vil du bli tatt til en distribusjonsside, der du kan bekrefte variantinnstillingene før distribusjon. Før distribusjon anbefaler vi å dimensjonere skyggevariantene dine slik at de kan håndtere 100 % av påkallingstrafikken. Hvis du ikke bruker skyggetesting for å evaluere alternative forekomsttyper eller -størrelser, kan du bruke "beholde produksjonsvariantinnstillingene. Ellers kan du velge å 'beholde innstillingene for skyggevarianter. Hvis du velger dette alternativet, må du sørge for at trafikksamplingen er satt til 100 %. Alternativt kan du spesifisere forekomsttype og antall hvis du ønsker å overstyre disse innstillingene.
Når du bekrefter distribusjonen, vil SageMaker starte en oppdatering av endepunktet ditt for å promotere skyggevarianten til den nye produksjonsvarianten. Som med SageMaker alle oppdateringer, vil endepunktet ditt fortsatt være operativt under oppdateringen.
Scenario 2: Skyggetesting ved bruk av SageMaker-inferens-APIer
Denne delen dekker hvordan du bruker de eksisterende SageMaker create/update/delete-endpoint APIene for å distribuere skyggevarianter.
For dette eksemplet har vi to XGBoost-modeller som representerer to forskjellige versjoner av modellene som er forhåndsopplært. model.tar.gz
er modellen som for tiden brukes i produksjon. model2
er den nyere modellen, og vi ønsker å teste ytelsen i form av operasjonelle beregninger som latens før vi bestemmer oss for å bruke den i produksjon. Vi utplasserer model2
som en skyggevariant av model.tar.gz
. Begge ferdigtrente modellene oppbevares i den offentlige S3-bøtten s3://sagemaker-sample-files
. Vi laster først ned modellen vår lokale dataforekomst og laster deretter opp til S3.
Modellene i dette eksemplet brukes til å forutsi sannsynligheten for at en mobilkunde forlater sin nåværende mobiloperatør. Datasettet vi bruker er offentlig tilgjengelig og ble nevnt i boken Oppdage kunnskap i data av Daniel T. Larose. Disse modellene ble trent ved hjelp av XGB Churn Prediction Notebook i SageMaker. Du kan også bruke dine egne ferdigtrente modeller, i så fall kan du hoppe over nedlasting fra s3://sagemaker-sample-files
og kopier dine egne modeller direkte til modell/mappe.
Trinn 1 – Lag modeller
Vi laster opp modellfilene til vår egen S3-bøtte og lager to SageMaker-modeller. Se følgende kode:
Trinn 2 – Distribuer de to modellene som produksjons- og skyggevarianter til et endepunkt i sanntid
Vi lager en endepunktkonfigurasjon med produksjons- og skyggevariantene. De ProductionVariants
og ShadowProductionVariants
er av spesiell interesse. Begge disse variantene har ml.m5.xlarge forekomster med 4 vCPUer og 16 GiB minne, og den første forekomsttellingen er satt til 1. Se følgende kode:
Til slutt lager vi produksjons- og skyggevarianten:
Trinn 3 – Påkall endepunktet for testing
Etter at endepunktet er opprettet, kan du begynne å kalle det. Vi sender rundt 3,000 forespørsler på en sekvensiell måte:
Trinn 4 – Sammenlign beregninger
Nå som vi har distribuert både produksjons- og skyggemodellene, la oss sammenligne påkallingsberegningene. For en liste over påkallingsberegninger som er tilgjengelige for sammenligning, se Overvåk Amazon SageMaker med Amazon CloudWatch. La oss starte med å sammenligne påkallelser mellom produksjons- og skyggevariantene.
De InvocationsPerInstance
metrisk refererer til antall påkallinger sendt til produksjonsvarianten. En brøkdel av disse påkallelsene, spesifisert i variantvekten, sendes til skyggevarianten. Påkallingen per instans beregnes ved å dele det totale antallet påkallinger på antall instanser i en variant. Som vist i de følgende diagrammene, kan vi bekrefte at både produksjons- og skyggevariantene mottar invokasjonsforespørsler i henhold til vektene spesifisert i endepunktkonfigurasjonen.
La oss deretter sammenligne modellforsinkelsen (ModelLatency
metrisk) mellom produksjons- og skyggevariantene. Modelllatens er tiden det tar en modell å svare, sett fra SageMaker. Vi kan observere hvordan modelllatensen til skyggevarianten er sammenlignet med produksjonsvarianten uten å utsette sluttbrukere for skyggevarianten.
Vi forventer overhead latens (OverheadLatency
metrisk) for å være sammenlignbare på tvers av produksjons- og skyggevarianter. Overhead latency er intervallet målt fra det tidspunktet SageMaker mottar forespørselen til den returnerer et svar til klienten, minus modelllatensen.
Trinn 5- Markedsfør din skyggevariant
For å promotere skyggemodellen til produksjon, lag en ny endepunktkonfigurasjon med gjeldende ShadowProductionVariant
som den nye ProductionVariant
og fjern ShadowProductionVariant
. Dette vil fjerne strømmen ProductionVariant
og fremme skyggevarianten til å bli den nye produksjonsvarianten. Som alltid er alle SageMaker-oppdateringer orkestrert som blå/grønne distribusjoner under panseret, og det er ingen tap av tilgjengelighet mens du utfører oppdateringen.
Eventuelt kan du utnytte Utplasseringsrekkverk hvis du vil bruke alt på en gang trafikkskifting og automatisk tilbakeføring under oppdateringen.
Trinn 6 – Rydd opp
Hvis du ikke planlegger å bruke dette endepunktet videre, bør du slette endepunktet for å unngå ekstra kostnader og rydde opp i andre ressurser som er opprettet i denne bloggen.
konklusjonen
I dette innlegget introduserte vi en ny funksjon for SageMaker-inferens for å sammenligne ytelsen til en ny versjon av en modellserveringsstabel med den for øyeblikket utplasserte versjonen før en full produksjonsutrulling ved å bruke en utrullingssikkerhetspraksis kjent som skyggetesting. Vi ledet deg gjennom fordelene ved å bruke skyggevarianter og metoder for å konfigurere variantene med en ende-til-ende eksempel. For å lære mer om skyggevarianter, se skyggetester dokumentasjon.
Om forfatterne
Raghu Ramesha er en maskinlæringsløsningsarkitekt med Amazon SageMaker Service-teamet. Han fokuserer på å hjelpe kunder med å bygge, distribuere og migrere ML-produksjonsarbeidsmengder til SageMaker i stor skala. Han spesialiserer seg på maskinlæring, AI og datasynsdomener, og har en mastergrad i informatikk fra UT Dallas. På fritiden liker han å reise og fotografere.
Qingwei Li er maskinlæringsspesialist hos Amazon Web Services. Han fikk sin doktorgrad. i Operations Research etter at han brøt sin rådgivers forskningsbevilgningskonto og ikke klarte å levere Nobelprisen han lovet. For tiden hjelper han kunder i finans- og forsikringsbransjen med å bygge maskinlæringsløsninger på AWS. På fritiden liker han å lese og undervise.
Qiyun Zhao er en senior programvareutviklingsingeniør med Amazon SageMaker Inference Platform-teamet. Han er hovedutvikleren av Deployment Guardrails og Shadow Deployments, og han fokuserer på å hjelpe kunder med å administrere ML-arbeidsbelastninger og distribusjoner i stor skala med høy tilgjengelighet. Han jobber også med utvikling av plattformarkitektur for rask og sikker distribusjon av ML-jobber og kjører ML-eksperimenter på nett på en enkel måte. På fritiden liker han å lese, spille og reise.
Tarun Sairam er senior produktsjef for Amazon SageMaker Inference. Han er interessert i å lære om de siste trendene innen maskinlæring og hjelpe kunder med å utnytte dem. På fritiden liker han å sykle, stå på ski og spille tennis.
- AI
- ai kunst
- ai art generator
- du har en robot
- Amazon maskinlæring
- Amazon SageMaker
- Amazon SageMaker Autopilot
- kunstig intelligens
- sertifisering av kunstig intelligens
- kunstig intelligens i bankvirksomhet
- kunstig intelligens robot
- kunstig intelligens roboter
- programvare for kunstig intelligens
- AWS maskinlæring
- blockchain
- blockchain konferanse ai
- coingenius
- samtale kunstig intelligens
- kryptokonferanse ai
- dall sin
- dyp læring
- google det
- maskinlæring
- plato
- plato ai
- Platon Data Intelligence
- Platon spill
- PlatonData
- platogaming
- skala ai
- Skyggetesting
- syntaks
- zephyrnet