Bruk Amazon SageMaker-pipelinedeling for å se eller administrere pipelines på tvers av AWS-kontoer PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Bruk Amazon SageMaker-pipelinedeling for å se eller administrere pipelines på tvers av AWS-kontoer

9. august 2022 kunngjorde vi generell tilgjengelighet for deling på tvers av kontoer Amazon SageMaker Pipelines-enheter. Du kan nå bruke støtte på tvers av kontoer for Amazon SageMaker-rørledninger å dele pipeline-enheter på tvers av AWS-kontoer og få tilgang til delte pipelines direkte gjennom Amazon SageMaker API-kall.

Kunder adopterer i økende grad flerkontoarkitekturer for å distribuere og administrere arbeidsflyter for maskinlæring (ML) med SageMaker Pipelines. Dette innebærer å bygge arbeidsflyter i utviklings- eller eksperimenteringskontoer (dev), distribuere og teste dem i en test- eller preproduksjonskonto (testkonto), og til slutt promotere dem til produksjonskontoer (prod) for å integreres med andre forretningsprosesser. Du kan dra nytte av deling på tvers av kontoer av SageMaker-rørledninger i følgende brukstilfeller:

  • Når dataforskere bygger ML-arbeidsflyter i en utviklerkonto, distribueres disse arbeidsflytene av en ML-ingeniør som en SageMaker-pipeline til en dedikert testkonto. For å overvåke disse arbeidsflytene ytterligere krever dataforskere nå skrivebeskyttet tillatelse på tvers av kontoer til den distribuerte pipelinen i testkontoen.
  • ML-ingeniører, ML-administratorer og overholdelsesteam, som administrerer distribusjon og drift av disse ML-arbeidsflytene fra en delt tjenestekonto, krever også innsyn i den distribuerte pipelinen i testkontoen. De kan også kreve ytterligere tillatelser for å starte, stoppe og prøve disse ML-arbeidsflytene på nytt.

I dette innlegget presenterer vi et eksempel på flerkontoarkitektur for utvikling og distribusjon av ML-arbeidsflyter med SageMaker Pipelines.

Løsningsoversikt

En strategi for flere kontoer hjelper deg med å oppnå data-, prosjekt- og teamisolasjon samtidig som du støtter trinn i livssyklusen for programvareutvikling. Deling av pipeline på tvers av kontoer støtter en strategi for flere kontoer, fjerner omkostningene ved pålogging og ut av flere kontoer og forbedrer arbeidsflyter for ML-testing og distribusjon ved å dele ressurser direkte på tvers av flere kontoer.

I dette eksemplet har vi et datavitenskapsteam som bruker en dedikert utviklerkonto for den første utviklingen av SageMaker-pipelinen. Denne rørledningen blir deretter overlevert til en ML-ingeniør, som lager en kontinuerlig integrasjon og kontinuerlig levering (CI/CD) pipeline i deres delte tjenester-konto for å distribuere denne pipelinen til en testkonto. For fortsatt å kunne overvåke og kontrollere den distribuerte pipelinen fra deres respektive dev- og delte tjenester-kontoer, ressursandeler er satt opp med AWS Resource Access Manager i test- og utviklingskontoene. Med dette oppsettet kan ML-ingeniøren og dataforskeren nå overvåke og kontrollere rørledningene i utvikler- og testkontoene fra deres respektive kontoer, som vist i følgende figur.

Bruk Amazon SageMaker-pipelinedeling for å se eller administrere pipelines på tvers av AWS-kontoer PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

I arbeidsflyten utfører dataviteren og ML-ingeniøren følgende trinn:

  1. Dataforskeren (DS) bygger en modellpipeline i utviklerkontoen.
  2. ML-ingeniøren (MLE) produserer modellrørledningen og lager en rørledning, (for dette innlegget kaller vi det sagemaker-pipeline).
  3. sagemaker-pipeline koden er forpliktet til en AWS CodeCommit repository i kontoen for delte tjenester.
  4. Dataforskeren oppretter en AWS RAM-ressursandel for sagemaker-pipeline og deler den med kontoen for delte tjenester, som godtar ressursdelingen.
  5. Fra kontoen for delte tjenester kan ML-ingeniører nå beskrive, overvåke og administrere pipeline-kjøringene i utviklerkontoen ved å bruke SageMaker API-kall.
  6. En CI/CD-pipeline utløst i den delte tjenestekontoen bygger og distribuerer koden til testkontoen ved å bruke AWS CodePipeline.
  7. CI/CD-rørledningen opprettes og kjøres sagemaker-pipeline i testkontoen.
  8. Etter å ha kjørt sagemaker-pipeline i testkontoen oppretter CI/CD-pipelinen en ressursandel for sagemaker-pipeline i testkontoen.
  9. En ressursandel fra testen sagemaker-pipeline med skrivebeskyttede tillatelser opprettes med utviklerkontoen, som godtar ressursdelingen.
  10. Dataforskeren er nå i stand til å beskrive og overvåke testpipeline-kjøringsstatusen ved å bruke SageMaker API-kall fra utviklerkontoen.
  11. En ressursandel fra testen sagemaker-pipeline med utvidede tillatelser opprettes med kontoen for delte tjenester, som godtar ressursdelingen.
  12. ML-ingeniøren er nå i stand til å beskrive, overvåke og administrere testpipeline-kjøringen ved å bruke SageMaker API-kall fra den delte tjenestekontoen.

I de følgende delene går vi mer i detalj og gir en demonstrasjon av hvordan du setter opp deling på tvers av kontoer for SageMaker-rørledninger.

Hvordan lage og dele SageMaker-pipelines på tvers av kontoer

I denne delen går vi gjennom de nødvendige trinnene for å opprette og dele pipelines på tvers av kontoer ved å bruke AWS RAM og SageMaker API.

Sett opp miljøet

Først må vi sette opp et multikontomiljø for å demonstrere deling på tvers av kontoer av SageMaker-rørledninger:

  1. Sett opp to AWS-kontoer (utvikler og test). Du kan sette opp dette som medlemskontoer til en organisasjon eller som uavhengige kontoer.
  2. Hvis du setter opp kontoene dine som medlem av en organisasjon, kan du aktivere ressursdeling med organisasjonen din. Med denne innstillingen, når du deler ressurser i organisasjonen din, sender ikke AWS RAM invitasjoner til rektorer. Rektorer i organisasjonen din får tilgang til delte ressurser uten å utveksle invitasjoner.
  3. Start i testkontoen Amazon SageMaker Studio og kjør notatboken tog-register-deploy-pipeline-modell. Dette oppretter en eksempelpipeline i testkontoen din. For å forenkle demonstrasjonen bruker vi SageMaker Studio i testkontoen for å starte pipelinen. For virkelige prosjekter bør du bare bruke Studio i utviklerkontoen og starte SageMaker Pipeline i testkontoen ved å bruke CI/CD-verktøyet ditt.

Følg instruksjonene i neste avsnitt for å dele denne pipelinen med utviklerkontoen.

Sett opp en rørledningsressursandel

For å dele pipeline med utviklerkontoen, fullfør følgende trinn:

  1. På AWS RAM-konsollen velger du Opprett ressursandel.
  2. Til Velg ressurstype, velg SageMaker-rørledninger.
  3. Velg rørledningen du opprettet i forrige trinn.
  4. Velg neste.
  5. Til Tillatelser, velg dine tilknyttede tillatelser.
  6. Velg neste.
    Bruk Amazon SageMaker-pipelinedeling for å se eller administrere pipelines på tvers av AWS-kontoer PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Deretter bestemmer du hvordan du vil gi tilgang til rektorer.
  7. Hvis du bare trenger å dele rørledningen innenfor organisasjonskontoene dine, velger du Tillat deling kun innenfor organisasjonen din; ellers velg Tillat deling med hvem som helst.
  8. Til Rektorer, velg hovedtype (du kan bruke en AWS-konto, organisasjon eller organisasjonsenhet, basert på delingskravet ditt). For dette innlegget deler vi med alle på AWS-kontonivå.
  9. Velg hoved-ID.
  10. Velg neste.
    Bruk Amazon SageMaker-pipelinedeling for å se eller administrere pipelines på tvers av AWS-kontoer PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  11. Gjennomgå og opprett side, kontroller at informasjonen din er korrekt og velg Opprett ressursandel.
    Bruk Amazon SageMaker-pipelinedeling for å se eller administrere pipelines på tvers av AWS-kontoer PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  12. Naviger til målkontoen din (for dette innlegget, utviklerkontoen din).
  13. På AWS RAM-konsollen, under Delt med meg Velg navigasjonsruten Ressursandeler.
  14. Velg din ressursandel og velg Godta ressursdeling.
    Bruk Amazon SageMaker-pipelinedeling for å se eller administrere pipelines på tvers av AWS-kontoer PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Ressursdelingstillatelser

Når du oppretter ressursandelen din, kan du velge fra en av to støttede tillatelsespolicyer som kan knyttes til SageMaker-rørledningsressurstypen. Begge retningslinjene gir tilgang til en hvilken som helst valgt pipeline og alle dens kjøringer.

De AWSRAMDefaultPermissionSageMakerPipeline policyen tillater følgende skrivebeskyttede handlinger:

"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:Search"

De AWSRAMPermissionSageMakerPipelineAllowExecution policy inkluderer alle skrivebeskyttede tillatelser fra standardpolicyen, og lar også delte kontoer starte, stoppe og prøve pipelinekjøringer på nytt.

Tillatelsespolicyen for utvidet pipeline-kjøring tillater følgende handlinger:

"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:StartPipelineExecution"
"sagemaker:StopPipelineExecution"
"sagemaker:RetryPipelineExecution"
"sagemaker:Search"

Få tilgang til delte rørledningsenheter gjennom direkte API-kall

I denne delen går vi gjennom hvordan du kan bruke ulike SageMaker Pipeline API-kall for å få innsyn i pipelines som kjører på eksterne kontoer som har blitt delt med deg. For å teste API-ene mot pipelinen som kjører i testkontoen fra utviklerkontoen, logg inn på utviklerkontoen og bruk AWS CloudShell.

For SageMaker Pipeline API-kall på tvers av kontoer, må du alltid bruke pipeline-ARN som pipeline-identifikasjon. Det inkluderer også kommandoene som krever pipelinenavnet, der du må bruke pipeline-ARN som pipelinenavn.

For å få din pipeline ARN, i testkontoen din, naviger til pipeline-detaljene dine i Studio via SageMaker-ressurser.

Bruk Amazon SageMaker-pipelinedeling for å se eller administrere pipelines på tvers av AWS-kontoer PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Velg Rørledninger på ressurslisten din.

Bruk Amazon SageMaker-pipelinedeling for å se eller administrere pipelines på tvers av AWS-kontoer PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Velg din pipeline og gå til din pipeline innstillinger fanen. Du finner rørledningen ARN med din metadata informasjon. For dette eksemplet er din ARN definert som "arn:aws:sagemaker:us-east-1:<account-id>:pipeline/serial-inference-pipeline".

Bruk Amazon SageMaker-pipelinedeling for å se eller administrere pipelines på tvers av AWS-kontoer PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

ListPipelineExecutions

Dette API-kallet lister opp løpene av rørledningen din. Kjør følgende kommando, erstatt $SHARED_PIPELINE_ARN med din pipeline ARN fra CloudShell eller ved å bruke AWS kommandolinjegrensesnitt (AWS CLI) konfigurert med passende AWS identitets- og tilgangsadministrasjon (JEG ER) rolle:

aws sagemaker list-pipeline-executions --pipeline-name $SHARED_PIPELINE_ARN

Svaret viser alle løpene i rørledningen din med deres PipelineExecutionArn, StartTime, PipelineExecutionStatusog PipelineExecutionDisplayName:

{
  "PipelineExecutionSummaries": [
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:32:05.543000+00:00",
      "PipelineExecutionStatus": "Executing",
      "PipelineExecutionDisplayName": "execution-321"
    },
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:28:03.680000+00:00",
      "PipelineExecutionStatus": "Stopped",
      "PipelineExecutionDisplayName": "test"
    },
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:03:47.406000+00:00",
      "PipelineExecutionStatus": "Succeeded",
      "PipelineExecutionDisplayName": "execution-123"
    }
  ]
}

Beskriv Pipeline

Dette API-kallet beskriver detaljen av rørledningen din. Kjør følgende kommando, erstatt $SHARED_PIPELINE_ARN med rørledningen din ARN:

aws sagemaker describe-pipeline --pipeline-name $SHARED_PIPELINE_ARN

Svaret gir metadata for rørledningen din, samt informasjon om opprettelse og modifikasjoner av den:

Output(truncated): 
{
"PipelineArn": "arn:aws:sagemaker:<region>:<account-id>:pipeline/<pipeline_name>",
"PipelineName": "serial-inference-pipeline",
"PipelineDisplayName": "serial-inference-pipeline",
"PipelineDefinition": "{"Version": "2020-12-01", "Metadata": {}, "Parameters": [{"Name": "TrainingInstanceType", "Type": "String", "DefaultValue": "ml.m5.xlarge"}, {"Name": "ProcessingInstanceType", "Type": "String", "DefaultValue": "ml.m5.xlarge"}, {"Name": "ProcessingInstanceCount", "Type": "Integer", "DefaultValue": 1}, {"Name": "InputData", "Type":

..

"PipelineStatus": "Active",
"CreationTime": "2022-08-08T21:33:39.159000+00:00",
"LastModifiedTime": "2022-08-08T21:48:14.274000+00:00",
"CreatedBy": {},
"LastModifiedBy": {}
}

DescribePipelineExecution

Dette API-kallet beskriver detaljen av rørledningen din. Kjør følgende kommando, erstatt $SHARED_PIPELINE_ARN med rørledningen din ARN:

aws sagemaker describe-pipeline-execution 
--pipeline-execution-arn $PIPELINE_EXECUTION_ARN

Svaret gir detaljer om rørledningen din, inkludert PipelineExecutionStatus, ExperimentNameog TrialName:

{
  "PipelineArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>",
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
  "PipelineExecutionDisplayName": "execution-123",
  "PipelineExecutionStatus": "Succeeded",
  "PipelineExperimentConfig": {
  "ExperimentName": "<pipeline_name>",
  "TrialName": "<execution_id>"
},
  "CreationTime": "2022-08-10T11:03:47.406000+00:00",
  "LastModifiedTime": "2022-08-10T11:15:01.102000+00:00",
  "CreatedBy": {},
  "LastModifiedBy": {}
}

StartPipelineExecution

Dette API-kallet starter et rørledningsløp. Kjør følgende kommando, erstatt $SHARED_PIPELINE_ARN med rørledningen din ARN og $CLIENT_REQUEST_TOKEN med en unik identifikator som skiller mellom store og små bokstaver som du genererer for denne kjøringen. Identifikatoren skal ha mellom 32–128 tegn. Du kan for eksempel generere en streng ved å bruke AWS CLI kms generer tilfeldig kommando.

aws sagemaker start-pipeline-execution 
  --pipeline-name $SHARED_PIPELINE_ARN 
  --client-request-token $CLIENT_REQUEST_TOKEN

Som et svar returnerer dette API-kallet PipelineExecutionArn av det påbegynte løpet:

{
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>"
}

StopPipelineExecution

Dette API-kallet stopper et rørledningsløp. Kjør følgende kommando, erstatt $PIPELINE_EXECUTION_ARN med rørledningen ARN for din løpende rørledning og $CLIENT_REQUEST_TOKEN med en unik identifikator som skiller mellom store og små bokstaver som du genererer for denne kjøringen. Identifikatoren skal ha mellom 32–128 tegn. Du kan for eksempel generere en streng ved å bruke AWS CLI kms generer tilfeldig kommando.

aws sagemaker stop-pipeline-execution 
  --pipeline-execution-arn $PIPELINE_EXECUTION_ARN 
  --client-request-token $CLIENT_REQUEST_TOKEN

Som et svar returnerer dette API-kallet PipelineExecutionArn av den stoppede rørledningen:

{
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>"
}

konklusjonen

Deling på tvers av kontoer av SageMaker-pipelines lar deg trygt dele pipeline-enheter på tvers av AWS-kontoer og få tilgang til delte pipelines gjennom direkte API-kall, uten å måtte logge inn og ut av flere kontoer.

I dette innlegget dykket vi inn i funksjonaliteten for å vise hvordan du kan dele pipelines på tvers av kontoer og få tilgang til dem via SageMaker API-kall.

Som et neste trinn kan du bruke denne funksjonen for ditt neste ML-prosjekt.

Ressurser

For å komme i gang med SageMaker Pipelines og dele pipelines på tvers av kontoer, se følgende ressurser:


Om forfatterne

Bruk Amazon SageMaker-pipelinedeling for å se eller administrere pipelines på tvers av AWS-kontoer PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Ram Vittal er en ML Specialist Solutions Architect hos AWS. Han har over 20 års erfaring med å bygge og bygge distribuerte, hybride og skyapplikasjoner. Han brenner for å bygge sikre og skalerbare AI/ML- og big data-løsninger for å hjelpe bedriftskunder med deres skyadopsjon og optimaliseringsreise for å forbedre forretningsresultatene deres. På fritiden liker han tennis, fotografering og actionfilmer.

Bruk Amazon SageMaker-pipelinedeling for å se eller administrere pipelines på tvers av AWS-kontoer PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Maira Ladeira Tanke er en ML Specialist Solutions Architect hos AWS. Med bakgrunn innen datavitenskap, har hun 9 års erfaring med å arkitekte og bygge ML-applikasjoner med kunder på tvers av bransjer. Som teknisk leder hjelper hun kunder med å akselerere oppnåelsen av forretningsverdi gjennom nye teknologier og innovative løsninger. På fritiden liker Maira å reise og tilbringe tid med familien et varmt sted.

Bruk Amazon SageMaker-pipelinedeling for å se eller administrere pipelines på tvers av AWS-kontoer PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Gabriel Zylka er en profesjonell tjenestekonsulent hos AWS. Han jobber tett med kunder for å akselerere deres skyadopsjonsreise. Spesialisert seg på MLOps-domenet, fokuserer han på produksjon av maskinlæringsarbeidsbelastninger ved å automatisere ende-til-ende maskinlæringslivssykluser og bidra til å oppnå ønskede forretningsresultater. På fritiden liker han å reise og vandre i de bayerske alpene.

Tidstempel:

Mer fra AWS maskinlæring