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.
I arbetsflödet utför datavetaren och ML-ingenjören följande steg:
- Dataforskaren (DS) bygger en modellpipeline i utvecklarkontot.
- ML-ingenjören (MLE) producerar modellpipeline och skapar en pipeline, (för det här inlägget kallar vi det
sagemaker-pipeline
). sagemaker-pipeline
koden är förpliktad till en AWS CodeCommit arkivet i kontot för delade tjänster.- Dataforskaren skapar en AWS RAM-resursandel för
sagemaker-pipeline
och delar det med kontot för delade tjänster, som accepterar resursandelen. - 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.
- En CI/CD-pipeline som utlöses i det delade tjänstkontot bygger och distribuerar koden till testkontot med AWS CodePipeline.
- CI/CD-pipelinen skapas och körs
sagemaker-pipeline
i testkontot. - Efter körning
sagemaker-pipeline
i testkontot skapar CI/CD-pipeline en resursdelning försagemaker-pipeline
i testkontot. - En resursandel från testet
sagemaker-pipeline
med skrivskyddade behörigheter skapas med utvecklarkontot, som accepterar resursandelen. - Dataforskaren kan nu beskriva och övervaka testpipelinekörningens status med SageMaker API-anrop från utvecklarkontot.
- En resursandel från testet
sagemaker-pipeline
med utökade behörigheter skapas med kontot för delade tjänster, som accepterar resursdelningen. - 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:
- Konfigurera två AWS-konton (dev och test). Du kan ställa in detta som medlemskonton i en organisation eller som oberoende konton.
- 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.
- 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:
- På AWS RAM-konsolen väljer du Skapa resursandel.
- För Välj resurstypväljer SageMaker-rörledningar.
- Välj den pipeline du skapade i föregående steg.
- Välja Nästa.
- För behörigheter, välj dina associerade behörigheter.
- Välja Nästa.
Därefter bestämmer du hur du vill ge tillgång till huvudmän. - 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.
- 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å.
- Välj ditt huvud-ID.
- Välja Nästa.
- På Granska och skapa sida, kontrollera att din information är korrekt och välj Skapa resursandel.
- Navigera till ditt målkonto (för detta inlägg, ditt utvecklarkonto).
- På AWS RAM-konsolen, under Delade med mig välj i navigeringsfönstret Resursandelar.
- Välj din resursandel och välj Acceptera resursandel.
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:
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:
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.
Välja Rörledningar på din resurslista.
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"
.
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:
Svaret listar alla körningar av din pipeline med deras PipelineExecutionArn
, StartTime
, PipelineExecutionStatus
och PipelineExecutionDisplayName
:
Beskriv Pipeline
Detta API-anrop beskriver detaljen av din pipeline. Kör följande kommando, ersätt $SHARED_PIPELINE_ARN
med din pipeline ARN:
Svaret tillhandahåller metadata för din pipeline, samt information om att skapa och modifiera den:
DescribePipelineExecution
Detta API-anrop beskriver detaljen av din pipelinekörning. Kör följande kommando, ersätt $SHARED_PIPELINE_ARN
med din pipeline ARN:
Svaret ger detaljer om din pipelinekörning, inklusive PipelineExecutionStatus
, ExperimentName
och TrialName
:
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.
Som ett svar returnerar detta API-anrop PipelineExecutionArn
av den påbörjade körningen:
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.
Som ett svar returnerar detta API-anrop PipelineExecutionArn
av den stoppade rörledningen:
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
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.
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.
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.
- AI
- ai konst
- ai art generator
- har robot
- Amazon SageMaker
- artificiell intelligens
- artificiell intelligenscertifiering
- artificiell intelligens inom bankväsendet
- artificiell intelligens robot
- robotar med artificiell intelligens
- programvara för artificiell intelligens
- AWS maskininlärning
- blockchain
- blockchain konferens ai
- coingenius
- konversationskonstnärlig intelligens
- kryptokonferens ai
- dalls
- djupt lärande
- du har google
- maskininlärning
- plato
- plato ai
- Platon Data Intelligence
- Platon spel
- PlatonData
- platogaming
- skala ai
- syntax
- zephyrnet