Zephyrnet-logo

Implementatie van meerdere accounts met Amazon SageMaker Pipelines

Datum:

Amazon SageMaker-pijpleidingen is de eerste speciaal gebouwde CI/CD service voor machine learning (ML). Het helpt je bij het bouwen, automatiseren, beheren en schalen van end-to-end ML-workflows en het toepassen van DevOps best practices van CI / CD op ML (ook bekend als MLOps).

Meerdere accounts maken om alle bronnen van uw organisatie te ordenen is een goede DevOps-praktijk. Een multi-accountstrategie is niet alleen belangrijk om het bestuur te verbeteren, maar ook om de beveiliging en controle van de middelen die de bedrijfsactiviteiten van uw organisatie ondersteunen, te vergroten. Met deze strategie kunnen veel verschillende teams binnen uw organisatie sneller experimenteren, innoveren en integreren, terwijl de productieomgeving veilig en beschikbaar blijft voor uw klanten.

Pijplijnen maken het gemakkelijk om dezelfde strategie toe te passen op het implementeren van ML-modellen. Stel je een use-case voor waarin je drie verschillende AWS-accounts hebt, één voor elke omgeving: data science, staging en productie. De datawetenschapper heeft de vrijheid om op elk moment in zijn eigen account experimenten uit te voeren en verschillende modellen te trainen en te optimaliseren. Wanneer een model goed genoeg is om in productie te worden genomen, hoeft de datawetenschapper alleen de goedkeuringsstatus van het model om te zetten naar Approved. Daarna implementeert een geautomatiseerd proces het model op de staging-account. Hier kunt u het testen van het model automatiseren met unit tests of integratietesten of het model handmatig testen. Na een handmatige of geautomatiseerde goedkeuring wordt het model geïmplementeerd in het productieaccount, een beter gecontroleerde omgeving die wordt gebruikt om gevolgtrekkingen op gegevens uit de echte wereld weer te geven. Met Pipelines implementeer je een kant-en-klare multi-account omgeving.

In dit bericht leer je hoe je Pipelines kunt gebruiken om je eigen ML-pipeline met meerdere accounts te implementeren. Eerst leert u hoe u uw omgeving configureert en voorbereidt om een ​​voorgedefinieerde sjabloon als een SageMaker-project voor het trainen en inzetten van een model in twee verschillende accounts: enscenering en productie. Vervolgens ziet u in detail hoe deze aangepaste sjabloon is gemaakt en hoe u sjablonen voor uw eigen SageMaker-projecten kunt maken en aanpassen.

De omgeving voorbereiden

In deze sectie configureert u drie verschillende AWS-accounts en gebruikt u SageMaker Studio om een ​​project te maken dat een CI / CD-pijplijn integreert met de ML-pijplijn die is gemaakt door een datawetenschapper. Het volgende diagram toont de referentiearchitectuur van de omgeving die is gemaakt door het aangepaste SageMaker-project en hoe AWS-organisaties integreert de verschillende accounts.

Het volgende diagram toont de referentiearchitectuur van de omgeving die is gemaakt door het SageMaker-aangepaste project en hoe AWS Organisations de verschillende accounts integreert.

Het diagram bevat drie verschillende accounts, beheerd door organisaties. Er zijn ook drie verschillende gebruikersrollen (die dezelfde persoon kunnen zijn) in deze omgeving:

  • ML-ingenieur - Verantwoordelijk voor het leveren van het SageMaker Studio-project dat de CI / CD-pijplijn, het modelregister en andere bronnen maakt
  • Data scientist - Verantwoordelijk voor het creëren van de ML-pijplijn die eindigt met een getraind model geregistreerd bij de modelgroep (ook wel model pakketgroep)
  • Approver - Verantwoordelijk voor het testen van het model geïmplementeerd op het staging-account en het goedkeuren van de productie-implementatie

Het is mogelijk om een ​​vergelijkbare oplossing uit te voeren zonder organisaties, als u dat wilt (hoewel niet aanbevolen). Maar u moet de machtigingen en de vertrouwensrelatie tussen uw accounts handmatig voorbereiden en de sjabloon wijzigen om de afhankelijkheid van de organisatie te verwijderen. Als u een onderneming bent met meerdere AWS-accounts en -teams, wordt het ten zeerste aanbevolen om AWS-verkeerstoren voor het inrichten van de accounts en organisaties. AWS Control Tower biedt de gemakkelijkste manier om een ​​nieuwe en veilige AWS-omgeving met meerdere accounts in te stellen en te beheren. Voor dit bericht bespreken we alleen de implementatie van de oplossing met organisaties.

Maar voordat u verder gaat, moet u de volgende stappen voltooien, die in de volgende secties worden beschreven:

  1. Maak een AWS-account aan voor gebruik door de datawetenschappers (data science-account).
  2. Maak en configureer een SageMaker Studio-domein in het data science-account.
  3. Maak twee extra accounts voor productie en enscenering.
  4. Maak een organisatiestructuur met behulp van Organisaties, nodig vervolgens de extra accounts uit en integreer ze.
  5. Configureer de machtigingen die nodig zijn om de pijplijnen uit te voeren en modellen te implementeren op externe accounts.
  6. Importeer de SageMaker-projectsjabloon om modellen in meerdere accounts te implementeren en maak deze beschikbaar voor SageMaker Studio.

SageMaker Studio configureren in uw account

Pijpleidingen bieden ingebouwde ondersteuning voor MLOps-sjablonen om het u gemakkelijk te maken om CI / CD te gebruiken voor uw ML-projecten. Deze MLOps-sjablonen zijn gedefinieerd als Amazon CloudFormatie sjablonen en gepubliceerd via AWS-servicecatalogus. Deze worden beschikbaar gesteld aan datawetenschappers via SageMaker Studio, een IDE voor ML. Om Studio in uw account te configureren, voert u de volgende stappen uit:

  1. Bereid uw SageMaker Studio-domein voor.
  2. Schakel SageMaker-projectsjablonen en SageMaker JumpStart in voor dit account en Studio-gebruikers.

Als u een bestaand domein heeft, kunt u eenvoudig de instellingen voor het domein of individuele gebruikers bewerken om deze optie in te schakelen. Als u deze optie inschakelt, ontstaan ​​er twee verschillende AWS identiteits- en accountbeheer (IAM) -rollen in uw AWS-account:

  • AmazonSageMakerServiceCatalogusProductenLanceringRol - Gebruikt door SageMaker om de projectsjablonen uit te voeren en de vereiste infrastructuurbronnen te creëren
  • AmazonSageMakerServiceCatalogusProductenGebruikRol - Gebruikt door de CI / CD-pijplijn om een ​​taak uit te voeren en de modellen op de doelaccounts te implementeren

Als u uw SageMaker Studio-domein heeft gemaakt vóór re: Invent 2020, is het raadzaam uw omgeving te vernieuwen door al het lopende werk op te slaan. Op de Dien in menu, kies stillegging, en bevestig uw keuze.

  1. Maak en bereid twee andere AWS-accounts voor voor enscenering en productie, als je die nog niet hebt.

Organisaties configureren

U moet het data science-account en de twee extra accounts toevoegen aan een structuur in Organisaties. Organisaties helpen u bij het centraal beheren en besturen van uw omgeving terwijl u groeit en uw AWS-resources opschaalt. Het is gratis en komt ten goede aan uw bestuursstrategie.

Elke rekening moet aan een andere worden toegevoegd organisatie-eenheid (OE).

  1. Maak in de organisatieconsole een structuur van OE's, zoals de volgende:
  • Root
    • multi-account-deployment (OE)
      • 111111111111 (data science-account: SageMaker Studio)
      • production (OE)
        • 222222222222 (AWS-account)
      • staging (OE)
        • 333333333333 (AWS-account)

Na het configureren van de organisatie ontvangt elke accounteigenaar een uitnodiging. De eigenaren moeten de uitnodigingen accepteren, anders worden de accounts niet opgenomen in de organisatie.

  1. Nu moet je schakel vertrouwde toegang met AWS-organisaties in ('Schakel alle functies in' en 'Schakel vertrouwde toegang in de StackSets in').

Met dit proces kan uw Data Science-account bronnen in de doelaccounts leveren. Als u dat niet doet, mislukt het implementatieproces. Deze functieset is ook de beste manier om met organisaties samen te werken, en omvat functies voor consolidatie van facturering.

  1. Kies vervolgens in de organisatieconsole Organiseer accounts.
  2. Kies regie.
  3. Noteer de OE-ID.
  4. Herhaal dit proces voor het production OE.

Herhaal dit proces voor de productie-OE.

De machtigingen configureren

U moet in elk extra account een uitvoeringsrol van SageMaker maken. Deze rollen worden vervuld door AmazonSageMakerServiceCatalogProductsUseRole in het data science-account om de eindpunten in de doelaccounts te implementeren en te testen.

  1. Log in op AWS-beheerconsole met het staging-account.
  2. Voer het volgende uit CloudFormation-sjabloon.

Met deze sjabloon wordt een nieuwe SageMaker-rol voor u gemaakt.

  1. Geef de volgende parameters op:
    1. SageMakerRolSuffix - Een korte string (maximaal 10 kleine letters zonder spaties of alfanumerieke tekens) die wordt toegevoegd aan de rolnaam na het volgende voorvoegsel: sagemaker-role-. De laatste rolnaam is sagemaker-role-<<sagemaker_role_suffix>>.
    2. PijplijnUitvoeringRolArn - Het ARN van de rol van het data science-account dat de SageMaker-rol aanneemt die u maakt. Log in op de console met het data science-account om het ARN te vinden. Kies op de IAM-console rollen en zoek naar AmazonSageMakerServiceCatalogProductsUseRole. Kies deze rol en kopieer het ARN (arn:aws:iam::<<data_science_acccount_id>>:role/service-role/AmazonSageMakerServiceCatalogProductsUseRole).
  2. Herhaal dit proces voor het productieaccount nadat u deze rol in het staging-account hebt gemaakt.

In het data science-account configureert u nu het beleid van het Amazon eenvoudige opslagservice (Amazon S3) emmer gebruikt om het getrainde model op te slaan. Voor dit bericht gebruiken we de standaard SageMaker-bucket van de huidige regio. Het heeft het volgende naamformaat: sagemaker-<<region>>-<<aws_account_id>>.

  1. Zoek op de Amazon S3-console naar deze bucket en geef de regio die u gebruikt en de ID van het data science-account op.

Als u het niet kunt vinden, maakt u een nieuwe bucket volgens deze naamindeling.

  1. Op de machtigingen tabblad, voeg het volgende beleid toe:
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<<staging_account_id>>:root", "arn:aws:iam::<<production_account_id>>:root" ] }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::sagemaker-<<region>>-<<aws_account_id>>", "arn:aws:s3:::sagemaker-<<region>>-<<aws_account_id>>/*" ] } ]
    }

  1. Bewaar je instellingen.

De doelaccounts hebben nu toestemming om het getrainde model tijdens de implementatie te lezen.

De volgende stap is het toevoegen van nieuwe machtigingen aan de rollen AmazonSageMakerServiceCatalogProductsUseRole en AmazonSageMakerServiceCatalogProductsLaunchRole.

  1. Kies in het data science-account op de IAM-console rollen.
  2. Vind de AmazonSageMakerServiceCatalogProductsUseRole rol en kies het.
  3. Voeg een nieuw beleid toe en voer het volgende in JSON-code.
  4. Sla uw wijzigingen op.
  5. Zoek nu het AmazonSageMakerServiceCatalogProductsLaunchRole rol, kies deze en voeg een nieuw beleid toe met de volgende inhoud:
    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::aws-ml-blog/artifacts/sagemaker-pipeline-blog-resources/*" } ]
    }

  1. Sla uw wijzigingen op.

Dat is het! Je omgeving is bijna klaar. U heeft nog maar één stap nodig en u kunt beginnen met het trainen en implementeren van modellen in verschillende accounts.

De aangepaste SageMaker Studio-projectsjabloon importeren

In deze stap importeert u uw aangepaste projectsjabloon.

  1. Log in op de console met het data science-account.
  2. Op de AWS-servicecatalogus-console, onder Administratie, kiezen Portfolio's.
  3. Kies Maak een nieuw portfolio.
  4. Geef de portfolio een naam SageMaker Organization Templates.
  5. Download het volgende sjabloon naar uw computer.
  6. Kies het nieuwe portfolio.
  7. Kies Upload een nieuw product.
  8. Voor Productnaam¸ invoeren Multi Account Deployment.
  9. Voor Omschrijving, ga naar binnen Multi account deployment project.
  10. Voor Eigenaar, Vul uw naam in.
  11. Onder Versie detailsvoor Methode, kiezen Gebruik een sjabloonbestand.
  12. Kies Upload een sjabloon.
  13. Upload de sjabloon die u heeft gedownload.
  14. Voor Versie titel, kiezen 1.0.

De overige parameters zijn optioneel.

  1. Kies Beoordeling.
  2. Controleer uw instellingen en kies Maak een product.
  3. Kies verversen om het nieuwe product te vermelden.
  4. Kies het product dat u zojuist heeft gemaakt.
  5. Op de Tags tab, voeg de volgende tag toe aan het product:
    1. sleutel - sagemaker:studio-visibility
    2. Waarde - True

Terug in de portfoliodetails zie je iets dat lijkt op de volgende schermafbeelding (met verschillende ID's).

Terug in de portfoliodetails zie je iets dat lijkt op de volgende schermafbeelding (met verschillende ID's).

  1. Op de beperkingen tabblad, kies Creëer een beperking.
  2. Voor Product, kiezen Implementatie van meerdere accounts (het product dat u zojuist hebt gemaakt).
  3. Voor Beperkingstype, kiezen Lancering.
  4. Onder Start Beperkingvoor Methode, kiezen Selecteer IAM-rol.
  5. Kies AmazonSageMakerServiceCatalogusProductenLanceringRol.
  6. Kies creëren.
  7. Op de Groepen, rollen en gebruikers tabblad, kies Voeg groepen, rollen, gebruikers toe.
  8. Op de rollen Selecteer de rol die u gebruikte bij het configureren van uw SageMaker Studio-domein.
  9. Kies Toegang toevoegen.

Als je niet meer weet welke rol je hebt geselecteerd, ga dan in je data science-account naar de SageMaker-console en kies Amazon SageMaker Studio. In de studio Samengevat zoek het attribuut Uitvoeringsrol. Zoek naar de naam van deze rol in de vorige stap.

U bent klaar! Nu is het tijd om een ​​project te maken met behulp van deze sjabloon.

Uw project maken

In de vorige secties hebt u de omgeving met meerdere accounts voorbereid. De volgende stap is om een ​​project te maken met uw nieuwe sjabloon.

  1. Log in op de console met het data science-account.
  2. Open SageMaker Studio met uw gebruiker op de SageMaker-console.
  3. Kies de Componenten en registers
  4. Kies in het vervolgkeuzemenu Projecten.
  5. Kies Maak een project aan.

Kies Project maken.

Op de Maak een project aan pagina, SageMaker-sjablonen wordt standaard gekozen. Deze optie toont de ingebouwde sjablonen. U wilt echter de sjabloon gebruiken die u hebt voorbereid voor de implementatie met meerdere accounts.

  1. Kies Organisatie sjablonen.
  2. Kies Implementatie van meerdere accounts.
  3. Kies Selecteer projectsjabloon.

Als u de sjabloon niet kunt zien, zorg er dan voor dat u alle stappen in de vorige sectie correct heeft uitgevoerd.

Als u de sjabloon niet kunt zien, zorg er dan voor dat u alle stappen in de vorige sectie correct heeft uitgevoerd.

  1. In het project details sectie, voor Naam, voer iris-multi-01 in.

De projectnaam mag maximaal 15 tekens lang zijn.

  1. In het Parameters van projectsjabloon, gebruik de namen van de rollen die je in elk doelaccount hebt gemaakt (staging en productie) en geef de volgende eigenschappen op:
    1. SageMakerExecutionRoleStagingName
    2. SageMakerExecutionRoleProdName
  2. Haal de OE-ID's op die u eerder hebt gemaakt voor de staging- en productie-OE's en geef de volgende eigenschappen op:
    1. OrganizationalUnitStagingId
    2. OrganizationalUnitProdId
  3. Kies Maak een project aan.

Kies Project maken.

Het inrichten van alle resources duurt enkele minuten, waarna het project wordt vermeld in het Projecten sectie. Wanneer u het project kiest, wordt een tabblad geopend met de metagegevens van het project. De Modelgroepen tab voert een modelgroep uit met dezelfde naam als uw project. Het is ook gemaakt tijdens het inrichten van het project.

Het inrichten van alle bronnen duurt een paar minuten, waarna het project wordt vermeld in de sectie Projecten.

De omgeving is nu klaar voor de datawetenschapper om het model te gaan trainen.

Een model trainen

Nu je project klaar is, is het tijd om een ​​model te trainen.

  1. Download de voorbeeld notebook om te gebruiken voor deze walkthrough.
  2. Kies de Map pictogram om het werkgebied te wijzigen in bestandsbeheer.
  3. Kies de Maak een map
  4. Voer een naam in voor de map.
  5. Kies de mapnaam.
  6. Kies de Upload bestand
  7. Kies de Jupyter-notebook die u hebt gedownload en upload deze naar de nieuwe map.
  8. Kies het notitieboek om een ​​nieuw tabblad te openen.

Kies het notitieboek om een ​​nieuw tabblad te openen.

U wordt gevraagd om een ​​kernel te kiezen.

  1. Kies Python3 (Data Science)).
  2. Kies kies.

Kies Selecteren.

  1. Vervang in de tweede cel van de notebook de project_name variabele met de naam die je je project hebt gegeven (voor dit bericht, iris-multi-01).

U kunt nu de Jupyter-notebook uitvoeren. Dit notitieboekje creëert een heel eenvoudige pijplijn met slechts twee stappen: model trainen en registreren. Het gebruikt de iris-gegevensset en XGBoost ingebouwde container als het algoritme.

  1. Voer het hele notitieblok uit.

Het proces duurt enige tijd nadat u de cel met de volgende code hebt uitgevoerd:

start_response = pipeline.start(parameters={ "TrainingInstanceCount": "1"
})

Hiermee begint de trainingstaak, die ongeveer 3 minuten in beslag neemt. Nadat de training is voltooid, krijgt de volgende cel van de Jupyter-notebook de nieuwste versie van het model in het modelregister en wordt deze gemarkeerd als Approved. U kunt ook een model goedkeuren vanuit de gebruikersinterface van SageMaker Studio. Op de Modelgroepen tabblad, kies de modelgroep en de gewenste versie. Kiezen Update status en Goedkeuren voordat u opslaat.

Kies Status bijwerken en goedkeuren voordat u opslaat

Dit is het einde van het werk van de datawetenschapper, maar het begin van het runnen van de CI / CD-pijplijn.

Amazon EventBridge bewaakt het modelregister. De listener start een nieuwe implementatietaak met het ingerichte AWS CodePipeline workflow (gemaakt met u startte het SageMaker Studio-project).

  1. Kies op de CodePipeline-console de pijplijn die begint met het voorvoegsel sagemaker-, gevolgd door de naam van uw project.

Kies in de CodePipeline-console de pijplijn die begint met het voorvoegsel sagemaker-, gevolgd door de naam van uw project.

Kort nadat u uw model heeft goedgekeurd, wordt de implementatiepijplijn gestart. Wacht tot de pijplijn de staat heeft bereikt DeployStaging. Die fase kan ongeveer 10 minuten duren. Nadat het eerste eindpunt in het staging-account is geïmplementeerd, wordt de pijplijn getest en gaat vervolgens naar de volgende stap, ApproveDeployment. In deze stap wacht het op handmatige goedkeuring.

  1. Kies Beoordeling.
  2. Voer een goedkeuringsreden in het tekstvak in.
  3. Kies Goedkeuren.

Het model is nu geïmplementeerd in het productieaccount.

U kunt ook de pijplijn op de AWS CloudFormation-console bewaken om de stapels en stapelsets te zien die de pijplijn maakt om eindpunten in de doelaccounts te implementeren. Om de geïmplementeerde eindpunten voor elk account te zien, meldt u zich aan bij de SageMaker-console als het staging-account of het productieaccount en kiest u Eindpunten in het navigatievenster.

Schoonmaken

Voer de volgende stappen uit om alle bronnen op te schonen die u in dit voorbeeld hebt ingericht:

  1. Log in op de console met uw hoofdaccount.
  2. Klik op de AWS CloudFormation-console op StackSets en delete de volgende items (eindpunten):
    1. Porren - sagemaker-<<sagemaker-project-name>>-<<project-id>>-deploy-prod
    2. Regie - sagemaker-<<sagemaker-project-name>>-<<project-id>>-deploy-staging
  3. Gebruik in uw laptop of werkstationterminal de AWS-opdrachtregelinterface (AWS CLI) en voer de volgende code in om uw project te verwijderen:
    aws sagemaker delete-project --project-name iris-multi-01

Zorg ervoor dat u de nieuwste versie van de AWS CLI.

Een sjabloon bouwen en aanpassen voor uw eigen SageMaker-project

SageMaker-projecten en SageMaker MLOps-projectsjablonen zijn krachtige functies die u kunt gebruiken om automatisch de volledige infrastructuur te creëren en configureren die nodig is om ML-modellen te trainen, optimaliseren, evalueren en implementeren. Een SageMaker-project is een door AWS Service Catalog ingericht product waarmee u eenvoudig een end-to-end ML-oplossing kunt maken. Zie voor meer informatie het AWS Servicecatalogus Beheerdershandleiding.

Een product is een CloudFormation-sjabloon die wordt beheerd door AWS Service Catalog. Zie voor meer informatie over sjablonen en hun vereisten AWS CloudFormation-sjabloonindelingen.

ML-ingenieurs kunnen meerdere omgevingen ontwerpen en alle details van deze opstelling uitdrukken als een CloudFormation-sjabloon, met behulp van het concept van infrastructuur als code (IaC). U kunt deze verschillende omgevingen en taken ook integreren met behulp van een CI / CD-pijplijn. SageMaker-projecten bieden een gemakkelijke, veilige en ongecompliceerde manier om de infrastructuurcomplexiteit in de vorm van een eenvoudig project te verpakken, dat vele malen kan worden gestart door de andere ML-ingenieurs en datawetenschappers.

Het volgende diagram illustreert de belangrijkste stappen die u moet doorlopen om uw aangepaste SageMaker-projectsjabloon te maken en te publiceren.

Het volgende diagram illustreert de belangrijkste stappen die u moet doorlopen om uw aangepaste SageMaker-projectsjabloon te maken en te publiceren.

We hebben deze stappen in de secties in meer detail beschreven De aangepaste SageMaker Studio-projectsjabloon importeren en Uw project maken.

Als ML-ingenieur kunt u en maak een nieuwe CloudFormation-sjabloon Maak voor het project een AWS-servicecatalogusportfolio en voeg er een nieuw product aan toe.

Zowel datawetenschappers als ML-ingenieurs kunnen SageMaker Studio gebruiken om een ​​nieuw project te maken met de aangepaste sjabloon. SageMaker roept AWS Service Catalog aan en begint met het inrichten van de infrastructuur die wordt beschreven in de CloudFormation-sjabloon.

Als datawetenschapper kun je nu beginnen met het trainen van het model. Nadat u het in het modelregister hebt geregistreerd, wordt de CI / CD-pijplijn automatisch uitgevoerd en wordt het model op de doelaccounts geïmplementeerd.

Als je de CloudFormation-sjabloon uit dit bericht in een teksteditor bekijkt, kun je zien dat het de architectuur implementeert die we in dit bericht schetsen.

De volgende code is een fragment van de sjabloon:

Description: Toolchain template which provides the resources needed to represent infrastructure as code. This template specifically creates a CI/CD pipeline to deploy a given inference image and pretrained Model to two stages in CD -- staging and production.
Parameters: SageMakerProjectName: Type: String SageMakerProjectId: Type: String
…
<<other parameters>>
…
Resources: MlOpsArtifactsBucket: Type: AWS::S3::Bucket DeletionPolicy: Retain Properties: BucketName: …
… ModelDeployCodeCommitRepository: Type: AWS::CodeCommit::Repository Properties: RepositoryName: … RepositoryDescription: … Code: S3: Bucket: … Key: …
… ModelDeployBuildProject: Type: AWS::CodeBuild::Project
… ModelDeployPipeline: Type: AWS::CodePipeline::Pipeline
…

De sjabloon heeft twee belangrijke secties: Parameters (invoerparameters van de sjabloon) en Resources. Voor SageMaker-projectsjablonen moet u twee invoerparameters aan uw sjabloon toevoegen: SageMakerProjectName en SageMakerProjectId. Deze parameters worden intern gebruikt door SageMaker Studio. U kunt indien nodig andere parameters toevoegen.

In het gedeelte Bronnen van het fragment kunt u zien dat het het volgende creëert:

  • Een nieuwe S3-bucket die door de CI / CD-pijplijn wordt gebruikt om de tussenliggende artefacten op te slaan die van de ene fase naar de andere zijn gegaan.
  • An AWS Codecommit repository om de artefacten op te slaan die zijn gebruikt tijdens de implementatie- en testfasen.
  • An AWS CodeBuild project om de artefacten op te halen, valideer en configureer ze voor het project. In de sjabloon voor meerdere accounts maakt dit project ook een nieuw modelregister aan, dat door de CI / CD-pijplijn wordt gebruikt om nieuwe modellen te implementeren.
  • Een CodePipeline-workflow die alle stappen van de CI / CD-pijplijnen orkestreert.

Elke keer dat u een nieuw model in het modelregister registreert of een nieuw artefact naar de CodeCommit-opslagplaats pusht, wordt deze CodePipeline-workflow gestart. Deze gebeurtenissen worden vastgelegd door een EventBridge-regel, ingericht door dezelfde sjabloon. De CI / CD-pijplijn bevat de volgende fasen:

  • bron - Leest de artefacten uit de CodeCommit-repository en deelt met de andere stappen.
  • Bouw - Voert het CodeBuild-project uit om het volgende te doen:
    • Controleer of er al een modelregister is gemaakt en maak er indien nodig een aan.
    • Bereid een nieuwe CloudFormation-sjabloon voor die wordt gebruikt door de volgende twee implementatiefasen.
  • Staging implementeren - Bevat de volgende componenten:
    • ResourcesStaging implementeren - Haalt de CloudFormation-sjabloon op die is voorbereid in het Build step en plaatst een nieuwe stapel. Deze stack implementeert een nieuw SageMaker-eindpunt in het doelaccount.
    • Teststaging - Roept een tweede CodeBuild-project op dat een aangepast Python-script uitvoert dat het geïmplementeerde eindpunt test.
    • Goedkeuren implementatie - Een handmatige goedkeuringsstap. Indien goedgekeurd, gaat het naar de volgende fase om een ​​eindpunt in productie te implementeren, of beëindigt het de workflow als het niet is goedgekeurd.
  • ImplementeerProd - vergelijkbaar met DeployStaging, gebruikt het dezelfde CloudFormation-sjabloon maar met verschillende invoerparameters. Het implementeert een nieuw SageMaker-eindpunt in het productieaccount. 

U kunt een nieuw trainingsproces starten en uw model registreren in het modelregister dat is gekoppeld aan het SageMaker-project. Gebruik de Jupyter-notebook die in dit bericht wordt geleverd en pas je eigen notitieboek aan ML-pijplijn om uw dataset voor te bereiden en uw modellen te trainen, optimaliseren en testen voordat u ze implementeert. Zie voor meer informatie over deze functies Automatiseer MLOps met SageMaker-projecten. Zie het GitHub repo.

Conclusies en volgende stappen

In dit bericht heb je gezien hoe je je eigen omgeving voorbereidt om ML-modellen te trainen en te implementeren in meerdere AWS-accounts met behulp van SageMaker Pipelines.

Met SageMaker-projecten kunnen het beheer en de beveiliging van uw omgeving aanzienlijk worden verbeterd als u uw ML-projecten gaat beheren als een bibliotheek met SageMaker-projectsjablonen.

Probeer als volgende stap de SageMaker-projectsjabloon aan te passen en aan te passen aan de behoeften van uw organisatie. Voeg zoveel stappen toe als u wilt en onthoud dat u de CI / CD-gebeurtenissen kunt vastleggen en gebruikers kunt informeren of andere services kunt bellen om uitgebreide oplossingen te bouwen.


Over de auteur

Samir Araújo is een AI / ML Solutions Architect bij AWS. Hij helpt klanten bij het maken van AI / ML-oplossingen om hun zakelijke uitdagingen op te lossen met behulp van het AWS-platform. Hij heeft gewerkt aan verschillende AI / ML-projecten met betrekking tot computervisie, verwerking van natuurlijke taal, prognoses, ML aan de rand en meer. In zijn vrije tijd speelt hij graag met hardware- en automatiseringsprojecten en heeft hij een bijzondere interesse voor robotica.

Bron: https://aws.amazon.com/blogs/machine-learning/multi-account-model-deployment-with-amazon-sagemaker-pipelines/

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?