Använd Amazon SageMaker pipeline-delning för att se eller hantera pipelines över AWS-konton PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Använd Amazon SageMaker pipeline-delning för att se eller hantera pipelines över AWS-konton

Den 9 augusti 2022 tillkännagav vi den allmänna tillgängligheten för delning över flera konton Amazon SageMaker Pipelines-enheter. Du kan nu använda support över flera konton för Amazon SageMaker-rörledningar att dela pipeline-enheter över AWS-konton och komma åt delade pipelines direkt genom Amazon SageMaker API-anrop.

Kunderna adopterar allt mer flerkontoarkitekturer för att distribuera och hantera maskininlärning (ML) arbetsflöden med SageMaker Pipelines. Detta innebär att bygga arbetsflöden i utvecklings- eller experimentkonton (dev), distribuera och testa dem i ett test- eller förproduktions- (test)konto, och slutligen marknadsföra dem till produktionskonton (prod) för att integreras med andra affärsprocesser. Du kan dra nytta av delning över flera konton av SageMaker pipelines i följande användningsfall:

  • När datavetare bygger ML-arbetsflöden i ett utvecklarkonto, distribueras dessa arbetsflöden av en ML-ingenjör som en SageMaker-pipeline till ett dedikerat testkonto. För att ytterligare övervaka dessa arbetsflöden kräver datavetare nu skrivskyddad behörighet över flera konton till den distribuerade pipelinen i testkontot.
  • ML-ingenjörer, ML-administratörer och efterlevnadsteam, som hanterar implementering och drift av dessa ML-arbetsflöden från ett konto för delade tjänster, kräver också insyn i den distribuerade pipelinen i testkontot. De kan också kräva ytterligare behörigheter för att starta, stoppa och försöka igen dessa ML-arbetsflöden.

I det här inlägget presenterar vi ett exempel på flerkontoarkitektur för att utveckla och distribuera ML-arbetsflöden med SageMaker Pipelines.

Lösningsöversikt

En strategi för flera konton hjälper dig att uppnå data-, projekt- och teamisolering samtidigt som du stödjer stegen i mjukvaruutvecklingens livscykel. Pipelinedelning över flera konton stöder en strategi för flera konton, vilket tar bort kostnaderna för att logga in och ut från flera konton och förbättra ML-testnings- och distributionsarbetsflöden genom att dela resurser direkt mellan flera konton.

I det här exemplet har vi ett datavetenskapsteam som använder ett dedikerat dev-konto för den initiala utvecklingen av SageMaker-pipeline. Denna pipeline överlämnas sedan till en ML-ingenjör, som skapar en kontinuerlig integration och kontinuerlig leverans (CI/CD) pipeline i deras konto för delade tjänster för att distribuera denna pipeline till ett testkonto. För att fortfarande kunna övervaka och kontrollera den distribuerade pipelinen från sina respektive dev- och delade tjänster-konton, resursandelar är inställda med AWS Resource Access Manager i test- och dev-kontona. Med denna inställning kan ML-ingenjören och datavetaren nu övervaka och kontrollera pipelines i utvecklings- och testkontona från sina respektive konton, som visas i följande figur.

Använd Amazon SageMaker pipeline-delning för att se eller hantera pipelines över AWS-konton PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

I arbetsflödet utför datavetaren och ML-ingenjören följande steg:

  1. Dataforskaren (DS) bygger en modellpipeline i utvecklarkontot.
  2. ML-ingenjören (MLE) producerar modellpipeline och skapar en pipeline, (för det här inlägget kallar vi det sagemaker-pipeline).
  3. sagemaker-pipeline koden är förpliktad till en AWS CodeCommit arkivet i kontot för delade tjänster.
  4. Dataforskaren skapar en AWS RAM-resursandel för sagemaker-pipeline och delar det med kontot för delade tjänster, som accepterar resursandelen.
  5. Från kontot för delade tjänster kan ML-ingenjörer nu beskriva, övervaka och administrera pipelinekörningarna i utvecklarkontot med SageMaker API-anrop.
  6. En CI/CD-pipeline som utlöses i det delade tjänstkontot bygger och distribuerar koden till testkontot med AWS CodePipeline.
  7. CI/CD-pipelinen skapas och körs sagemaker-pipeline i testkontot.
  8. Efter körning sagemaker-pipeline i testkontot skapar CI/CD-pipeline en resursdelning för sagemaker-pipeline i testkontot.
  9. En resursandel från testet sagemaker-pipeline med skrivskyddade behörigheter skapas med utvecklarkontot, som accepterar resursandelen.
  10. Dataforskaren kan nu beskriva och övervaka testpipelinekörningens status med SageMaker API-anrop från utvecklarkontot.
  11. En resursandel från testet sagemaker-pipeline med utökade behörigheter skapas med kontot för delade tjänster, som accepterar resursdelningen.
  12. ML-ingenjören kan nu beskriva, övervaka och administrera testpipelinekörningen med SageMaker API-anrop från kontot för delade tjänster.

I följande avsnitt går vi in ​​mer i detalj och ger en demonstration om hur man ställer in delning över flera konton för SageMaker-pipelines.

Hur man skapar och delar SageMaker-pipelines mellan konton

I det här avsnittet går vi igenom de nödvändiga stegen för att skapa och dela pipelines mellan konton med hjälp av AWS RAM och SageMaker API.

Ställ in miljön

Först måste vi ställa in en miljö med flera konton för att demonstrera delning av SageMaker-pipelines över flera konton:

  1. Konfigurera två AWS-konton (dev och test). Du kan ställa in detta som medlemskonton i en organisation eller som oberoende konton.
  2. Om du ställer in dina konton som medlem i en organisation kan du aktivera resursdelning med din organisation. Med den här inställningen, när du delar resurser i din organisation, skickar AWS RAM inte inbjudningar till rektorer. Rektorer i din organisation får tillgång till delade resurser utan att byta inbjudningar.
  3. Starta i testkontot Amazon SageMaker Studio och kör anteckningsboken tåg-register-deploy-pipeline-modell. Detta skapar en exempelpipeline i ditt testkonto. För att förenkla demonstrationen använder vi SageMaker Studio i testkontot för att lansera pipeline. För verkliga projekt bör du endast använda Studio i utvecklarkontot och starta SageMaker Pipeline i testkontot med ditt CI/CD-verktyg.

Följ instruktionerna i nästa avsnitt för att dela denna pipeline med utvecklarkontot.

Konfigurera en pipelineresursandel

För att dela din pipeline med utvecklarkontot, utför följande steg:

  1. På AWS RAM-konsolen väljer du Skapa resursandel.
  2. För Välj resurstypväljer SageMaker-rörledningar.
  3. Välj den pipeline du skapade i föregående steg.
  4. Välja Nästa.
  5. För behörigheter, välj dina associerade behörigheter.
  6. Välja Nästa.
    Använd Amazon SageMaker pipeline-delning för att se eller hantera pipelines över AWS-konton PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Därefter bestämmer du hur du vill ge tillgång till huvudmän.
  7. Om du bara behöver dela pipeline inom dina organisationskonton, välj Tillåt delning endast inom din organisation; välj annars Tillåt delning med vem som helst.
  8. För Main, välj din huvudtyp (du kan använda ett AWS-konto, en organisation eller en organisationsenhet, baserat på ditt delningskrav). För det här inlägget delar vi med alla på AWS-kontonivå.
  9. Välj ditt huvud-ID.
  10. Välja Nästa.
    Använd Amazon SageMaker pipeline-delning för att se eller hantera pipelines över AWS-konton PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  11. Granska och skapa sida, kontrollera att din information är korrekt och välj Skapa resursandel.
    Använd Amazon SageMaker pipeline-delning för att se eller hantera pipelines över AWS-konton PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  12. Navigera till ditt målkonto (för detta inlägg, ditt utvecklarkonto).
  13. På AWS RAM-konsolen, under Delade med mig välj i navigeringsfönstret Resursandelar.
  14. Välj din resursandel och välj Acceptera resursandel.
    Använd Amazon SageMaker pipeline-delning för att se eller hantera pipelines över AWS-konton PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Behörigheter för resursdelning

När du skapar din resursandel kan du välja från en av två tillståndspolicyer som stöds för att associera med SageMaker pipeline-resurstyp. Båda policyerna ger åtkomst till valfri vald pipeline och alla dess körningar.

Smakämnen AWSRAMDefaultPermissionSageMakerPipeline policyn tillåter följande skrivskyddade åtgärder:

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

Smakämnen AWSRAMPermissionSageMakerPipelineAllowExecution policy inkluderar alla skrivskyddade behörigheter från standardpolicyn, och tillåter även delade konton att starta, stoppa och försöka igen pipelinekörningar.

Tillståndspolicyn för utökad pipelinekörning tillåter följande åtgärder:

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

Få åtkomst till delade pipeline-enheter genom direkta API-anrop

I det här avsnittet går vi igenom hur du kan använda olika SageMaker Pipeline API-anrop för att få insyn i pipelines som körs på fjärrkonton som har delats med dig. För att testa API:erna mot pipeline som körs i testkontot från dev-kontot, logga in på dev-kontot och använd AWS CloudShell.

För SageMaker Pipeline API-anrop över flera konton måste du alltid använda din pipeline-ARN som pipeline-identifiering. Det inkluderar också de kommandon som kräver pipelinenamnet, där du måste använda din pipeline ARN som pipelinenamn.

För att få din pipeline ARN, i ditt testkonto, navigera till dina pipelinedetaljer i Studio via SageMaker resurser.

Använd Amazon SageMaker pipeline-delning för att se eller hantera pipelines över AWS-konton PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Välja Rörledningar på din resurslista.

Använd Amazon SageMaker pipeline-delning för att se eller hantera pipelines över AWS-konton PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Välj din pipeline och gå till din pipeline Inställningar flik. Du kan hitta pipeline ARN med din metadata information. I det här exemplet definieras ditt ARN som "arn:aws:sagemaker:us-east-1:<account-id>:pipeline/serial-inference-pipeline".

Använd Amazon SageMaker pipeline-delning för att se eller hantera pipelines över AWS-konton PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

ListPipelineExecutions

Detta API-anrop listar körningarna av din pipeline. Kör följande kommando, ersätt $SHARED_PIPELINE_ARN med din pipeline ARN från CloudShell eller med hjälp av AWS-kommandoradsgränssnitt (AWS CLI) konfigurerad med lämplig AWS identitets- och åtkomsthantering (JAG ÄR) roll:

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

Svaret listar alla körningar av din pipeline med deras PipelineExecutionArn, StartTime, PipelineExecutionStatusoch 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

Detta API-anrop beskriver detaljen av din pipeline. Kör följande kommando, ersätt $SHARED_PIPELINE_ARN med din pipeline ARN:

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

Svaret tillhandahåller metadata för din pipeline, samt information om att skapa och modifiera 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

Detta API-anrop beskriver detaljen av din pipelinekörning. Kör följande kommando, ersätt $SHARED_PIPELINE_ARN med din pipeline ARN:

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

Svaret ger detaljer om din pipelinekörning, inklusive PipelineExecutionStatus, ExperimentNameoch 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

Detta API-anrop startar en rörledning. Kör följande kommando, ersätt $SHARED_PIPELINE_ARN med din pipeline ARN och $CLIENT_REQUEST_TOKEN med en unik, skiftlägeskänslig identifierare som du genererar för denna körning. Identifieraren ska ha mellan 32–128 tecken. Du kan till exempel skapa en sträng med hjälp av AWS CLI kms generera-slumpmässigt kommando.

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

Som ett svar returnerar detta API-anrop PipelineExecutionArn av den påbörjade körningen:

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

StopPipelineExecution

Detta API-anrop stoppar en rörledning. Kör följande kommando, ersätt $PIPELINE_EXECUTION_ARN med pipelinekörningen ARN för din löpande pipeline och $CLIENT_REQUEST_TOKEN med en unik, skiftlägeskänslig identifierare som du genererar för den här körningen. Identifieraren ska ha mellan 32–128 tecken. Du kan till exempel skapa en sträng med hjälp av AWS CLI kms generera-slumpmässigt kommando.

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

Som ett svar returnerar detta API-anrop PipelineExecutionArn av den stoppade rörledningen:

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

Slutsats

Korskontodelning av SageMaker-pipelines gör att du kan dela pipeline-enheter på ett säkert sätt över AWS-konton och komma åt delade pipelines genom direkta API-anrop, utan att behöva logga in och ut från flera konton.

I det här inlägget dyker vi in ​​på funktionaliteten för att visa hur du kan dela pipelines mellan konton och komma åt dem via SageMaker API-anrop.

Som nästa steg kan du använda den här funktionen för ditt nästa ML-projekt.

Resurser

För att komma igång med SageMaker Pipelines och dela pipelines mellan konton, se följande resurser:


Om författarna

Använd Amazon SageMaker pipeline-delning för att se eller hantera pipelines över AWS-konton PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Ram Vittal är en ML Specialist Solutions Architect på AWS. Han har över 20 års erfarenhet av att bygga och bygga distribuerade, hybrid- och molnapplikationer. Han brinner för att bygga säkra och skalbara AI/ML- och big data-lösningar för att hjälpa företagskunder med deras molnanpassning och optimeringsresa för att förbättra deras affärsresultat. På fritiden tycker han om tennis, fotografering och actionfilmer.

Använd Amazon SageMaker pipeline-delning för att se eller hantera pipelines över AWS-konton PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Maira Ladeira Tanke är en ML Specialist Solutions Architect på AWS. Med en bakgrund inom datavetenskap har hon 9 års erfarenhet av att arkitektur och bygga ML-applikationer med kunder över branscher. Som teknisk ledare hjälper hon kunder att accelerera deras uppnående av affärsvärde genom framväxande teknologier och innovativa lösningar. På fritiden tycker Maira om att resa och umgås med sin familj på en varm plats.

Använd Amazon SageMaker pipeline-delning för att se eller hantera pipelines över AWS-konton PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Gabriel Zylka är konsult för professionella tjänster på AWS. Han arbetar nära kunderna för att påskynda deras molnanpassningsresa. Specialiserad på MLOps-domänen fokuserar han på att producera maskininlärningsarbetsbelastningar genom att automatisera end-to-end maskininlärningslivscykler och hjälpa till att uppnå önskade affärsresultat. På fritiden tycker han om att resa och vandra i de bayerska alperna.

Tidsstämpel:

Mer från AWS maskininlärning