Brug Amazon SageMaker-pipelinedeling til at se eller administrere pipelines på tværs af AWS-konti PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Brug Amazon SageMaker-pipelinedeling til at se eller administrere pipelines på tværs af AWS-konti

Den 9. august 2022 annoncerede vi den generelle tilgængelighed af deling på tværs af konti Amazon SageMaker Pipelines-enheder. Du kan nu bruge support på tværs af konti til Amazon SageMaker Pipelines at dele pipeline-enheder på tværs af AWS-konti og få adgang til delte pipelines direkte igennem Amazon SageMaker API-kald.

Kunderne adopterer i stigende grad multi-konto arkitekturer til implementering og styring af maskinlæring (ML) arbejdsgange med SageMaker Pipelines. Dette involverer opbygning af arbejdsgange i udviklings- eller eksperimenteringskonti (dev), implementering og afprøvning af dem i en test- eller præproduktions- (test)konto og til sidst promovering af dem til produktions- (prod)konti for at integrere med andre forretningsprocesser. Du kan drage fordel af deling af SageMaker-pipelines på tværs af konti i følgende tilfælde:

  • Når dataforskere bygger ML-arbejdsgange på en udviklerkonto, implementeres disse arbejdsgange derefter af en ML-ingeniør som en SageMaker-pipeline til en dedikeret testkonto. For yderligere at overvåge disse arbejdsgange kræver dataforskere nu skrivebeskyttet tilladelse på tværs af konti til den implementerede pipeline i testkontoen.
  • ML-ingeniører, ML-administratorer og overholdelsesteams, som administrerer implementering og drift af disse ML-arbejdsgange fra en delt tjenestekonto, kræver også synlighed i den implementerede pipeline på testkontoen. De kan også kræve yderligere tilladelser for at starte, stoppe og prøve disse ML-arbejdsgange igen.

I dette indlæg præsenterer vi et eksempel på multi-account arkitektur til udvikling og implementering af ML workflows med SageMaker Pipelines.

Løsningsoversigt

En strategi med flere konti hjælper dig med at opnå data-, projekt- og teamisolering, samtidig med at den understøtter livscyklustrin i softwareudvikling. Pipelinedeling på tværs af konti understøtter en strategi for flere konti, der fjerner omkostningerne ved at logge ind og ud af flere konti og forbedrer ML-test- og implementeringsarbejdsgange ved at dele ressourcer direkte på tværs af flere konti.

I dette eksempel har vi et datavidenskabsteam, der bruger en dedikeret udviklerkonto til den indledende udvikling af SageMaker-pipelinen. Denne pipeline overdrages derefter til en ML-ingeniør, som opretter en kontinuerlig integration og kontinuerlig levering (CI/CD) pipeline på deres delte tjenester-konto for at implementere denne pipeline til en testkonto. For stadig at være i stand til at overvåge og kontrollere den implementerede pipeline fra deres respektive dev- og delte tjenester-konti, ressourceandele er sat op med AWS Resource Access Manager i test- og udviklerkontoen. Med denne opsætning kan ML-ingeniøren og dataforskeren nu overvåge og kontrollere pipelines i dev- og testkontiene fra deres respektive konti, som vist i følgende figur.

Brug Amazon SageMaker-pipelinedeling til at se eller administrere pipelines på tværs af AWS-konti PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

I arbejdsgangen udfører dataforskeren og ML-ingeniøren følgende trin:

  1. Dataforskeren (DS) bygger en modelpipeline i udviklerkontoen.
  2. ML-ingeniøren (MLE) producerer modelpipelinen og skaber en pipeline (for dette indlæg kalder vi det sagemaker-pipeline).
  3. sagemaker-pipeline kode er forpligtet til en AWS CodeCommit repository i den delte servicekonto.
  4. Dataforskeren opretter en AWS RAM-ressourceandel for sagemaker-pipeline og deler det med kontoen for delte tjenester, som accepterer ressourceandelen.
  5. Fra den delte tjenester-konto er ML-ingeniører nu i stand til at beskrive, overvåge og administrere pipeline-kørslerne på udviklerkontoen ved hjælp af SageMaker API-kald.
  6. En CI/CD-pipeline, der udløses i den delte tjenestekonto, bygger og implementerer koden til testkontoen ved hjælp af AWS CodePipeline.
  7. CI/CD-pipelinen opretter og kører sagemaker-pipeline på testkontoen.
  8. Efter at have kørt sagemaker-pipeline i testkontoen opretter CI/CD-pipelinen en ressourceandel for sagemaker-pipeline på testkontoen.
  9. En ressourceandel fra testen sagemaker-pipeline med skrivebeskyttede tilladelser oprettes med udviklerkontoen, som accepterer ressourceandelen.
  10. Dataforskeren er nu i stand til at beskrive og overvåge testpipeline-kørselsstatus ved hjælp af SageMaker API-kald fra udviklerkontoen.
  11. En ressourceandel fra testen sagemaker-pipeline med udvidede tilladelser oprettes med kontoen for delte tjenester, som accepterer ressourceandelen.
  12. ML-ingeniøren er nu i stand til at beskrive, overvåge og administrere testpipeline-kørslen ved hjælp af SageMaker API-kald fra den delte servicekonto.

I de følgende afsnit går vi mere i detaljer og giver en demonstration af, hvordan man opsætter deling på tværs af konti for SageMaker-pipelines.

Sådan opretter og deler du SageMaker-pipelines på tværs af konti

I dette afsnit gennemgår vi de nødvendige trin for at oprette og dele pipelines på tværs af konti ved hjælp af AWS RAM og SageMaker API.

Indstil miljøet

Først skal vi opsætte et multi-konto miljø for at demonstrere deling på tværs af SageMaker pipelines:

  1. Konfigurer to AWS-konti (dev og test). Du kan konfigurere dette som medlemskonti i en organisation eller som uafhængige konti.
  2. Hvis du opretter dine konti som medlem af en organisation, kan du aktivere ressourcedeling med din organisation. Med denne indstilling, når du deler ressourcer i din organisation, sender AWS RAM ikke invitationer til rektorer. Rektorer i din organisation får adgang til delte ressourcer uden at udveksle invitationer.
  3. Start på testkontoen Amazon SageMaker Studio og kør notesbogen tog-register-deploy-pipeline-model. Dette opretter et eksempel på pipeline i din testkonto. For at forenkle demonstrationen bruger vi SageMaker Studio i testkontoen til at starte pipelinen. Til projekter i det virkelige liv bør du kun bruge Studio på udviklerkontoen og starte SageMaker Pipeline på testkontoen ved hjælp af dit CI/CD-værktøj.

Følg instruktionerne i næste afsnit for at dele denne pipeline med udviklerkontoen.

Konfigurer en pipeline-ressourceandel

For at dele din pipeline med udviklerkontoen skal du udføre følgende trin:

  1. På AWS RAM-konsollen skal du vælge Opret ressourceandel.
  2. Til Vælg ressourcetype, vælg SageMaker Pipelines.
  3. Vælg den pipeline, du oprettede i det forrige trin.
  4. Vælg Næste.
  5. Til Tilladelser, vælg dine tilknyttede tilladelser.
  6. Vælg Næste.
    Brug Amazon SageMaker-pipelinedeling til at se eller administrere pipelines på tværs af AWS-konti PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Dernæst bestemmer du, hvordan du vil give adgang til rektorer.
  7. Hvis du kun skal dele pipelinen inden for dine organisationskonti, skal du vælge Tillad kun deling inden for din organisation; ellers vælg Tillad deling med alle.
  8. Til Rektorer, vælg din hovedtype (du kan bruge en AWS-konto, organisation eller organisationsenhed baseret på dit delingskrav). For dette indlæg deler vi med alle på AWS-kontoniveau.
  9. Vælg dit hoved-id.
  10. Vælg Næste.
    Brug Amazon SageMaker-pipelinedeling til at se eller administrere pipelines på tværs af AWS-konti PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  11. Gennemgå og opret side, skal du kontrollere, at dine oplysninger er korrekte og vælge Opret ressourceandel.
    Brug Amazon SageMaker-pipelinedeling til at se eller administrere pipelines på tværs af AWS-konti PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  12. Naviger til din destinationskonto (for dette indlæg, din udviklerkonto).
  13. På AWS RAM-konsollen, under Delt med mig i navigationsruden skal du vælge Ressourceandele.
  14. Vælg din ressourceandel og vælg Accepter ressourceandel.
    Brug Amazon SageMaker-pipelinedeling til at se eller administrere pipelines på tværs af AWS-konti PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Tilladelser til ressourcedeling

Når du opretter din ressourceandel, kan du vælge mellem en af ​​to understøttede tilladelsespolitikker, der skal knyttes til SageMaker-pipelineressourcetypen. Begge politikker giver adgang til enhver valgt pipeline og alle dens kørsler.

AWSRAMDefaultPermissionSageMakerPipeline politik tillader følgende skrivebeskyttede handlinger:

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

AWSRAMPermissionSageMakerPipelineAllowExecution politik inkluderer alle skrivebeskyttede tilladelser fra standardpolitikken og tillader også delte konti at starte, stoppe og prøve pipelinekørsler igen.

Tilladelsespolitikken for udvidet pipelinekørsel tillader følgende handlinger:

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

Få adgang til delte pipeline-enheder gennem direkte API-kald

I dette afsnit gennemgår vi, hvordan du kan bruge forskellige SageMaker Pipeline API-kald til at få synlighed i pipelines, der kører på eksterne konti, som er blevet delt med dig. For at teste API'erne mod pipelinen, der kører i testkontoen fra udviklerkontoen, skal du logge ind på udviklerkontoen og bruge AWS CloudShell.

For SageMaker Pipeline API-kald på tværs af konti skal du altid bruge din pipeline-ARN som pipeline-identifikation. Det inkluderer også de kommandoer, der kræver pipelinenavnet, hvor du skal bruge din pipeline ARN som pipelinenavn.

For at få din pipeline ARN skal du på din testkonto navigere til dine pipeline detaljer i Studio via SageMaker Ressourcer.

Brug Amazon SageMaker-pipelinedeling til at se eller administrere pipelines på tværs af AWS-konti PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Vælg Rørledninger på din ressourceliste.

Brug Amazon SageMaker-pipelinedeling til at se eller administrere pipelines på tværs af AWS-konti PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Vælg din pipeline og gå til din pipeline Indstillinger fanen. Du kan finde rørledningen ARN med din Metadata Information. I dette eksempel er dit ARN defineret som "arn:aws:sagemaker:us-east-1:<account-id>:pipeline/serial-inference-pipeline".

Brug Amazon SageMaker-pipelinedeling til at se eller administrere pipelines på tværs af AWS-konti PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

ListPipelineExecutions

Dette API-kald lister kørslerne af din pipeline. Kør følgende kommando, udskift $SHARED_PIPELINE_ARN med din pipeline ARN fra CloudShell eller ved hjælp af AWS kommandolinjegrænseflade (AWS CLI) konfigureret med den passende AWS identitets- og adgangsstyring (JEG ER) rolle:

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

Svaret viser alle kørsler af din pipeline 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-kald beskriver detaljen af din pipeline. Kør følgende kommando, udskift $SHARED_PIPELINE_ARN med din pipeline ARN:

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

Svaret giver metadata for din pipeline samt oplysninger om oprettelse og ændringer af 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-kald beskriver detaljen af dit rørledningsforløb. Kør følgende kommando og udskift $SHARED_PIPELINE_ARN med din pipeline ARN:

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

Svaret giver detaljer om din pipeline-kørsel, herunder 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-kald starter et rørledningsforløb. Kør følgende kommando og udskift $SHARED_PIPELINE_ARN med din pipeline ARN og $CLIENT_REQUEST_TOKEN med et unikt id, der skelner mellem store og små bogstaver, som du genererer til denne kørsel. Identifikationen skal have mellem 32-128 tegn. For eksempel kan du generere en streng ved hjælp af AWS CLI kms generer tilfældig kommando.

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

Som et svar returnerer dette API-kald PipelineExecutionArn af den påbegyndte kørsel:

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

StopPipelineExecution

Dette API-kald stopper et rørledningsforløb. Kør følgende kommando og udskift $PIPELINE_EXECUTION_ARN med pipeline run ARN for din løbende pipeline og $CLIENT_REQUEST_TOKEN med et unikt id, der skelner mellem store og små bogstaver, som du genererer til denne kørsel. Identifikationen skal have mellem 32-128 tegn. For eksempel kan du generere en streng ved hjælp af AWS CLI kms generer tilfældig kommando.

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

Som et svar returnerer dette API-kald PipelineExecutionArn af den stoppede rørledning:

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

Konklusion

Deling på tværs af SageMaker-pipelines giver dig mulighed for sikkert at dele pipeline-enheder på tværs af AWS-konti og få adgang til delte pipelines gennem direkte API-kald uden at skulle logge ind og ud af flere konti.

I dette indlæg dykkede vi ned i funktionaliteten for at vise, hvordan du kan dele pipelines på tværs af konti og få adgang til dem via SageMaker API-kald.

Som et næste trin kan du bruge denne funktion til dit næste ML-projekt.

Ressourcer

For at komme i gang med SageMaker Pipelines og deling af pipelines på tværs af konti, se følgende ressourcer:


Om forfatterne

Brug Amazon SageMaker-pipelinedeling til at se eller administrere pipelines på tværs af AWS-konti PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Ram Vittal er ML Specialist Solutions Architect hos AWS. Han har over 20 års erfaring med at arkitekte og bygge distribuerede, hybride og cloud-applikationer. Han brænder for at bygge sikker og skalerbar AI/ML og big data-løsninger for at hjælpe virksomhedskunder med deres cloud-adoption og optimeringsrejse for at forbedre deres forretningsresultater. I sin fritid nyder han tennis, fotografering og actionfilm.

Brug Amazon SageMaker-pipelinedeling til at se eller administrere pipelines på tværs af AWS-konti PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Maira Ladeira Tanke er ML Specialist Solutions Architect hos AWS. Med en baggrund i data science har hun 9 års erfaring med at arkitekte og bygge ML-applikationer med kunder på tværs af brancher. Som teknisk leder hjælper hun kunder med at accelerere deres opnåelse af forretningsværdi gennem nye teknologier og innovative løsninger. I sin fritid nyder Maira at rejse og tilbringe tid med sin familie et varmt sted.

Brug Amazon SageMaker-pipelinedeling til at se eller administrere pipelines på tværs af AWS-konti PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Gabriel Zylka er Professional Services Consultant hos AWS. Han arbejder tæt sammen med kunderne for at fremskynde deres cloud-adoptionsrejse. Han er specialiseret i MLOps-domænet og fokuserer på at producere maskinlæringsarbejdsbelastninger ved at automatisere end-to-end maskinlærings-livscyklusser og hjælpe med at opnå de ønskede forretningsresultater. I sin fritid nyder han at rejse og vandre i de bayerske alper.

Tidsstempel:

Mere fra AWS maskinindlæring