Aktiver CI/CD af multi-region Amazon SageMaker-endepunkter PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Aktiver CI/CD af Amazon SageMaker-endepunkter med flere regioner

Amazon SageMaker , SageMaker-slutpunkter give en mulighed for at træne og implementere dine AI- og maskinlærings (ML)-arbejdsbelastninger. Med inferensendepunkter kan du implementere dine modeller til realtids- eller batchslutning. Slutpunkterne understøtter forskellige typer ML-modeller, der hostes vha AWS Deep Learning-containere eller dine egne containere med tilpassede AI/ML-algoritmer. Når du starter SageMaker-slutningsendepunkter med flere forekomster, fordeler SageMaker forekomsterne på tværs af flere tilgængelighedszoner (i en enkelt region) for høj tilgængelighed.

I nogle tilfælde kan du dog, for at sikre lavest mulig latenstid for kunder i forskellige geografiske områder, kræve implementering af inferensendepunkter i flere regioner. Multiregional udrulning af SageMaker-slutpunkter og andre relaterede applikations- og infrastrukturkomponenter kan også være en del af en katastrofegendannelsesstrategi for dine missionskritiske arbejdsbelastninger med det formål at mindske risikoen for en regional fejl.

SageMaker projekter implementerer et sæt præbyggede MLOps-skabeloner, der kan hjælpe med at administrere endpoint-implementeringer. I dette indlæg viser vi, hvordan du kan udvide en MLOps SageMaker Projects-pipeline for at muliggøre multi-regional implementering af dine AI/ML-inferens-endepunkter.

Løsningsoversigt

SageMaker Projects implementerer både trænings- og implementerings-MLOPs pipelines; du kan bruge disse til at træne en model og implementere den ved hjælp af et slutningsendepunkt. For at reducere kompleksiteten og omkostningerne ved en multi-regionsløsning, antager vi, at du træner modellen i en enkelt region og implementerer inferensendepunkter i to eller flere regioner.

Dette indlæg præsenterer en løsning, der lidt ændrer en SageMaker-projektskabelon for at understøtte implementering i flere regioner. For bedre at illustrere ændringerne viser følgende figur både en standard MLOps-pipeline, der er oprettet automatisk af SageMaker (trin 1-5), samt ændringer, der er nødvendige for at udvide den til en sekundær region (trin 6-11).

SageMaker Projects-skabelonen implementerer automatisk en MLOps-løsning, som indeholder følgende komponenter:

  1. Amazon Eventbridge skærme AWS CodeCommit repositories for ændringer og starter en kørsel af AWS CodePipeline hvis der registreres en kode-commit.
  2. Hvis der er en kodeændring, AWS CodeBuild orkestrerer modeltræningen ved hjælp af SageMaker træningsjob.
  3. Efter at træningsjobbet er afsluttet, vil SageMaker modelregistrering registrerer og katalogiserer den trænede model.
  4. For at forberede sig til implementeringsstadiet udvider CodeBuild standarden AWS CloudFormation skabelonkonfigurationsfiler med parametre for en godkendt model fra modelregistret.
  5. Endelig kører CodePipeline CloudFormation-skabelonerne for at implementere den godkendte model til iscenesættelses- og produktionsslutningsendepunkterne.

Følgende yderligere trin ændrer MLOps-projektskabelonen for at aktivere AI/ML-modellen i den sekundære region:

  1. En kopi af Amazon Simple Storage Service (Amazon S3) spand i den primære region, der opbevarer modelartefakter, er påkrævet i den sekundære region.
  2. CodePipeline-skabelonen er udvidet med flere trin for at køre en tværregional implementering af den godkendte model.
  3. Som en del af implementeringsprocessen på tværs af regioner bruger CodePipeline-skabelonen en ny CloudFormation-skabelon til at implementere inferensendepunktet i en sekundær region. CloudFormation-skabelonen implementerer modellen fra modelartefakterne fra S3-replikaspanden, der blev oprettet i trin 6.

9–11 opret eventuelt ressourcer i Amazonrute 53, Amazon API Gatewayog AWS Lambda at dirigere applikationstrafik til inferensendepunkter i den sekundære region.

Forudsætninger

Opret et SageMaker-projekt i din primære region (us-east-2 i dette indlæg). Fuldfør trinene i Opbygning, automatisering, styring og skalering af ML-arbejdsgange ved hjælp af Amazon SageMaker Pipelines indtil afsnittet Ændring af eksempelkoden for en tilpasset brugssag.

Opdater din pipeline i CodePipeline

I dette afsnit diskuterer vi, hvordan du tilføjer manuel CodePipeline-godkendelse og implementeringsstadier for tværregionale modeller til din eksisterende pipeline, der er oprettet for dig af SageMaker.

  1. På CodePipeline-konsollen i din primære region skal du finde og vælge den pipeline, der indeholder dit projektnavn og slutter med implementering. Denne pipeline er allerede blevet oprettet til dig af SageMaker Projects. Du ændrer denne pipeline for at tilføje AI/ML-slutpunktsimplementeringsstadier for den sekundære region.
  2. Vælg Redigere.
  3. Vælg Tilføj scene.
  4. Til Kunstnernavn, gå ind SecondaryRegionDeployment.
  5. Vælg Tilføj scene.
  6. I SecondaryRegionDeployment scene, vælg Tilføj handlingsgruppe.I denne handlingsgruppe tilføjer du et manuel godkendelsestrin til modelimplementering i den sekundære region.
  7. Til Handlingsnavn, gå ind ManualApprovaltoDeploytoSecondaryRegion.
  8. Til Handlingsudbyder, vælg Manuel godkendelse.
  9. Lad alle andre indstillinger stå som standard, og vælg Udført.
  10. I SecondaryRegionDeployment scene, vælg Tilføj handlingsgruppe (efter ManualApprovaltoDeploytoSecondaryRegion).I denne handlingsgruppe tilføjer du et tværregionalt AWS CloudFormation-implementeringstrin. Du angiver navnene på byggeartefakter, som du opretter senere i dette indlæg.
  11. Til Handlingsnavn, gå ind DeploytoSecondaryRegion.
  12. Til Handlingsudbyder, vælg AWS Cloud-formation.
  13. Til Område, indtast dit sekundære regionsnavn (f.eks. us-west-2).
  14. Til Input artefakter, gå ind BuildArtifact.
  15. Til ActionMode, gå ind CreateorUpdateStack.
  16. Til Staknavn, gå ind DeploytoSecondaryRegion.
  17. Under Skabelon, For Artefaktnavn, Vælg BuildArtifact.
  18. Under Skabelon, For File Name, gå ind template-export-secondary-region.yml.
  19. Drej Brug konfigurationsfil én.
  20. Under Skabelon, For Artefaktnavn, Vælg BuildArtifact.
  21. Under Skabelon, For File Name, gå ind secondary-region-config-export.json.
  22. Under Capabilities, vælg CAPABILITY_NAMED_IAM.
  23. Til roller, vælg AmazonSageMakerServiceCatalogProductsUseRole skabt af SageMaker Projects.
  24. Vælg Udført.
  25. Vælg Gem.
  26. Hvis en Gem pipelineændringer dialogboksen vises, vælg Gem igen.

Rediger IAM-rolle

Vi skal tilføje yderligere tilladelser til AWS identitets- og adgangsstyring (IAM) rolle AmazonSageMakerServiceCatalogProductsUseRole lavet af AWS servicekatalog for at aktivere CodePipeline og S3 bucket-adgang til implementering på tværs af regioner.

  1. På IAM-konsollen skal du vælge roller i navigationsruden.
  2. Søg efter og vælg AmazonSageMakerServiceCatalogProductsUseRole.
  3. Vælg IAM-politikken under Politikens navn: AmazonSageMakerServiceCatalogProductsUseRole-XXXXXXXXX.
  4. Vælg Rediger politik og så JSON.
  5. Rediger AWS CloudFormation-tilladelserne for at tillade CodePipeline at synkronisere S3-bøtten i den sekundære region. Du kan erstatte den eksisterende IAM-politik med den opdaterede fra følgende GitHub repo (se linjer:16-18, 198, 213)
  6. Vælg Gennemgå politik.
  7. Vælg Gem ændringer.

Tilføj installationsskabelonen for den sekundære region

For at skabe et slutningsendepunkt i den sekundære region, SecondaryRegionDeployment fase har brug for en CloudFormation-skabelon (til endpoint-config-template-secondary-region.yml) og en konfigurationsfil (secondary-region-config.json).

CloudFormation-skabelonen konfigureres udelukkende gennem parametre; du kan ændre det yderligere, så det passer til dine behov. På samme måde kan du bruge konfigurationsfilen til at definere parametrene for slutpunktstartkonfigurationen, såsom instanstype og instansantal:

{
  "Parameters": {
    "StageName": "secondary-prod",
    "EndpointInstanceCount": "1",
    "EndpointInstanceType": "ml.m5.large",
    "SamplingPercentage": "100",
    "EnableDataCapture": "true"
  }

For at tilføje disse filer til dit projekt skal du downloade dem fra de medfølgende links og uploade dem til Amazon SageMaker Studio i primærregionen. Vælg i Studio Filbrowser og derefter mappen, der indeholder dit projektnavn og slutter med modeldeploy.

Upload disse filer til implementeringslagerets rodmappe ved at vælge upload-ikonet. Sørg for, at filerne er placeret i rodmappen som vist på det følgende skærmbillede.

Skærmbillede af konfigurationsfiler

Rediger build Python-filen

Dernæst skal vi justere implementeringen build.py fil for at aktivere SageMaker-slutpunktsimplementering i den sekundære region for at gøre følgende:

  • Hent placeringen af ​​modelartefakter og Amazon Elastic Container Registry (Amazon ECR) URI for modelbilledet i den sekundære region
  • Forbered en parameterfil, der bruges til at sende de modelspecifikke argumenter til CloudFormation-skabelonen, der implementerer modellen i den sekundære region

Du kan downloade den opdaterede build.py fil og erstat den eksisterende i din mappe. Vælg i Studio Filbrowser og derefter mappen, der indeholder dit projektnavn og slutter med modeldeploy. Find filen build.py, og erstat den med den, du downloadede.

CloudFormation-skabelonen bruger modelartefakter, der er gemt i en S3-bøtte, og Amazon ECR-billedstien til at implementere inferensendepunktet i den sekundære region. Dette er forskelligt fra implementeringen fra modelregistret i den primære region, fordi du ikke behøver at have et modelregistrering i den sekundære region.

Skærmbillede af primære og sekundære miljøparametre

Rediger buildspec-filen

buildspec.yml indeholder instruktioner drevet af CodeBuild. Vi ændrer denne fil til at gøre følgende:

  • Installer det SageMaker Python-bibliotek, der er nødvendigt for at understøtte kodekørslen
  • Gennemgå den –sekundære region og modelspecifikke parametre til build.py
  • Tilføj synkronisering af S3-bucket-indhold fra de primære til sekundære regioner
  • Eksporter den sekundære Region CloudFormation-skabelon og tilhørende parameterfil som artefakter af CodeBuild-trinnet

Åbne buildspec.yml fil fra modelimplementeringsmappen og foretag de fremhævede ændringer som vist på det følgende skærmbillede.

Skærmbillede af build yaml-fil

Alternativt kan du downloade følgende buildspec.yml fil for at erstatte standardfilen.

Tilføj CodeBuild miljøvariabler

I dette trin tilføjer du konfigurationsparametre, der kræves for, at CodeBuild kan oprette konfigurationsfilerne for modelinstallation i den sekundære region.

  1. På CodeBuild-konsollen i den primære region skal du finde projektet, der indeholder dit projektnavn og slutter med implementering. Dette projekt er allerede blevet skabt til dig af SageMaker Projects.

Skærmbillede af kodepipeline

  1. Vælg projektet og på Redigere menu, vælg Miljø.

Skærmbillede af konfigurationer

  1. I Avanceret konfiguration sektion, fravælg Tillad AWS CodeBuild at ændre denne servicerolle, så den kan bruges med dette byggeprojekt.
  2. Tilføj følgende miljøvariabler, som definerer navnene på de yderligere CloudFormation-skabeloner, sekundær region og modelspecifikke parametre:
    1. EXPORT_TEMPLATE_NAME_SECONDARY_REGION - Til Værdi, gå ind template-export-secondary-region.yml og for Type, vælg Simpel tekst.
    2. EXPORT_TEMPLATE_SECONDARY_REGION_CONFIG - Til Værdi, gå ind secondary-region-config-export.json og for Type, vælg Simpel tekst.
    3. AWS_SECONDARY_REGION - Til Værdi, indtast us-west-2 og for Type, vælg Simpel tekst.
    4. RAMME - Til Værdi, gå ind xgboost (erstat med din ramme) og for Type, vælg Simpel tekst.
    5. MODEL_VERSION - Til Værdi, indtast 1.0-1 (erstat med din modelversion) og for Type, vælg Simpel tekst.
  3. Kopier værdien af ARTIFACT_BUCKET ind i Notesblok eller en anden teksteditor. Du skal bruge denne værdi i det næste trin.
  4. Vælg Opdater miljø.

Du skal bruge de værdier, du har angivet til modeltræning FRAMEWORK , MODEL_VERSION. For f.eks. at finde disse værdier for Abalone-modellen, der bruges i MLOps boilerplate-implementering, skal du åbne Studio og på Filbrowser menuen, åbn mappen med dit projektnavn og slutter med modelbuild. Naviger til pipelines/abalone og åbne pipeline.py fil. Søge efter sagemaker.image_uris.retrieve og kopier de relevante værdier.

Skærmbillede af ML framework

Opret en S3-replikaspand i den sekundære region

Vi skal lave en S3-spand til at holde modelartefakterne i den sekundære region. SageMaker bruger denne spand til at få den seneste version af modellen til at spinne et slutningsendepunkt op. Du behøver kun at gøre dette én gang. CodeBuild synkroniserer automatisk indholdet af bucket i den primære region til replikerings bucket med hver pipelinekørsel.

  1. På Amazon S3-konsollen skal du vælge Opret spand.
  2. Til Navn på spand, indtast værdien af ARTEFACT_BUCKET kopieret i det forrige trin og tilføjet -replica til slutningen (f.eks. sagemaker-project-X-XXXXXXXX-replica.
  3. Til AWS-regionen, indtast din sekundære region (us-west-2).
  4. Lad alle andre værdier stå som standard og vælg Opret spand.

Godkend en model til implementering

Implementeringsfasen af ​​rørledningen kræver en godkendt model for at starte. Dette er påkrævet for indsættelsen i den primære Region.

  1. Vælg i Studio (primær region). SageMaker ressourcer i navigationsruden.
  2. Til Vælg den ressource, du vil se, vælg Modelregistrering.
  3. Vælg modelgruppenavn begyndende med dit projektnavn.
  4. I højre rude skal du kontrollere modelversionen, scenen og status.
  5. Hvis status viser afventende, skal du vælge modelversionen og derefter vælge Opdater status.
  6. Skift status til godkendt, Og vælg derefter Opdater status.

Implementer og bekræft ændringerne

Alle de ændringer, der kræves til multi-region-implementering af dit SageMaker-inference-slutpunkt, er nu fuldført, og du kan starte implementeringsprocessen.

  1. I Studio, gem alle de filer, du har redigeret, vælg Git, og vælg det lager, der indeholder dit projektnavn og slutter med implementering.
  2. Vælg plustegnet for at foretage ændringer.
  3. Under Ændret, Tilsættes build.py , buildspec.yml.
  4. Under Usporet, Tilsættes endpoint-config-template-secondary-region.yml , secondary-region-config.json.
  5. Indtast en kommentar i Resumé felt og vælg Commit.
  6. Skub ændringerne til lageret ved at vælge Skub ud.

Ved at skubbe disse ændringer til CodeCommit-lageret udløses en ny pipelinekørsel, fordi en EventBridge-hændelse overvåger for pushede commits. Efter et par øjeblikke kan du overvåge kørslen ved at navigere til pipelinen på CodePipeline-konsollen.

Sørg for at give manuel godkendelse til udrulning til produktion og den sekundære region.

Du kan bekræfte, at det sekundære Region-slutpunkt er oprettet på SageMaker-konsollen ved at vælge Hovedmenu i navigationsruden og bekræfter slutpunktstatus i Seneste aktivitet.

Skærmbillede af sage maker dashboard

Tilføj API Gateway og Route 53 (valgfrit)

Du kan valgfrit følge instruktionerne i Kald et Amazon SageMaker-modelslutpunkt ved hjælp af Amazon API Gateway og AWS Lambda at afsløre SageMaker-slutningsendepunktet i den sekundære region som en API ved hjælp af API Gateway og Lambda.

Ryd op

For at slette SageMaker-projektet, se Slet et MLOps-projekt ved hjælp af Amazon SageMaker Studio. For at sikre, at det sekundære inferensslutpunkt er ødelagt, skal du gå til AWS CloudFormation-konsollen og slette de relaterede stakke i dine primære og sekundære regioner; dette ødelægger SageMaker-slutningsendepunkterne.

Konklusion

I dette indlæg viste vi, hvordan en MLOps-specialist kan ændre en forudkonfigureret MLOps-skabelon til deres egen multi-regionale implementeringsbrug, såsom implementering af arbejdsbelastninger i flere geografier eller som en del af implementeringen af ​​en multi-regional katastrofegendannelsesstrategi. Med denne implementeringstilgang behøver du ikke at konfigurere tjenester i den sekundære region og kan genbruge CodePipeline- og CloudBuild-opsætningerne i den primære region til tværregional implementering. Derudover kan du spare på omkostningerne ved at fortsætte træningen af ​​dine modeller i den primære region, mens du bruger SageMaker-inferens i flere regioner til at skalere din AI/ML-implementering globalt.

Fortæl os venligst din feedback i kommentarfeltet.


Om forfatterne

Aktiver CI/CD af multi-region Amazon SageMaker-endepunkter PlatoBlockchain Data Intelligence. Lodret søgning. Ai. Mehran Najafi, PhD, er en Senior Solutions Architect for AWS med fokus på AI/ML og SaaS-løsninger i skala.

Aktiver CI/CD af multi-region Amazon SageMaker-endepunkter PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Steven Alyekhin er en Senior Solutions Architect for AWS med fokus på MLOps i skala.

Tidsstempel:

Mere fra AWS maskinindlæring