Zephyrnet-logo

Gebruik het delen van Amazon SageMaker-modelkaarten om het modelbeheer te verbeteren | Amazon-webservices

Datum:

Nu technologieën op het gebied van kunstmatige intelligentie (AI) en machine learning (ML) mainstream zijn geworden, zijn veel ondernemingen erin geslaagd om kritische bedrijfsapplicaties, aangedreven door ML-modellen, op grote schaal in productie te bouwen. Omdat deze ML-modellen echter cruciale zakelijke beslissingen voor het bedrijf nemen, is het belangrijk voor ondernemingen om tijdens hun ML-levenscyclus goede vangrails toe te passen. Guardrails zorgen ervoor dat de beveiliging, privacy en kwaliteit van de code, configuratie en gegevens- en modelconfiguratie die in de levenscyclus van modellen worden gebruikt, in versiebeheer zijn en behouden blijven.

Het implementeren van deze vangrails wordt steeds moeilijker voor ondernemingen omdat de ML-processen en -activiteiten binnen ondernemingen complexer worden door de integratie van diep betrokken processen die bijdragen vereisen van meerdere belanghebbenden en persona's. Naast data-ingenieurs en datawetenschappers zijn er operationele processen opgenomen om de ML-levenscyclus te automatiseren en te stroomlijnen. Bovendien hebben de toename van het aantal zakelijke belanghebbenden en in sommige gevallen juridische en nalevingsbeoordelingen mogelijkheden nodig om transparantie toe te voegen voor het beheer van toegangscontrole, het volgen van activiteiten en rapportage gedurende de gehele ML-levenscyclus.

Het raamwerk dat systematisch inzicht geeft in de ontwikkeling, validatie en het gebruik van ML-modellen wordt ML-governance genoemd. Tijdens AWS re:Invent 2022, AWS heeft nieuwe ML-governancetools geïntroduceerd For Amazon Sage Maker wat de toegangscontrole vereenvoudigt en de transparantie over uw ML-projecten vergroot. Een van de tools die beschikbaar zijn als onderdeel van ML-governance is Amazon SageMaker-modelkaarten, dat de mogelijkheid heeft om één enkele bron van waarheid voor modelinformatie te creëren door documentatie gedurende de hele levenscyclus van het model te centraliseren en te standaardiseren.

Met SageMaker-modelkaarten kunt u de manier waarop modellen worden gedocumenteerd standaardiseren, waardoor u inzicht krijgt in de levenscyclus van een model, vanaf het ontwerpen, bouwen, trainen en evalueren. Modelkaarten zijn bedoeld als enige bron van waarheid voor zakelijke en technische metadata over het model, die op betrouwbare wijze kan worden gebruikt voor audit- en documentatiedoeleinden. Ze bieden een factsheet van het model die belangrijk is voor modelbeheer.

Naarmate u uw modellen, projecten en teams schaalt, raden we u als best practice aan een strategie voor meerdere accounts te hanteren die project- en teamisolatie biedt voor de ontwikkeling en implementatie van ML-modellen. Voor meer informatie over het verbeteren van het beheer van uw ML-modellen raadpleegt u Verbeter het beheer van uw machine learning-modellen met Amazon SageMaker.

Architectuur overzicht

De architectuur is als volgt geïmplementeerd:

  • Data Science Account – Datawetenschappers voeren hun experimenten uit in SageMaker Studio en bouw een MLOps-installatie om modellen te implementeren in staging-/productieomgevingen met behulp van SageMaker-projecten.
  • ML Shared Services-account – De MLOps die zijn ingesteld vanuit het Data Science-account activeren pijplijnen voor continue integratie en continue levering (CI/CD) met behulp van AWS Codecommit en AWS CodePipeline.
  • Ontwikkelaarsaccount – De CI/CD-pijplijnen zullen verder ML-pijplijnen in dit account activeren voor de voorverwerking van gegevens, modeltraining en naverwerking, zoals modelevaluatie en registratie. De output van deze pijpleidingen zal het model inzetten SageMaker-eindpunten te gebruiken voor gevolgtrekkingsdoeleinden. Afhankelijk van uw governancevereisten kunnen Data Science & Dev-accounts worden samengevoegd tot één AWS-account.
  • Gegevensaccount: de ML-pijplijnen die in het ontwikkelaarsaccount worden uitgevoerd, halen de gegevens uit dit account.
  • Test- en productaccounts – De CI/CD-pijplijnen zullen de implementatie voortzetten na het ontwikkelaarsaccount om de SageMaker-eindpuntconfiguratie in deze accounts in te stellen.
  • Beveiliging en bestuur – Services zoals AWS Identity and Access Management (IAM), AWS IAM Identity Center, AWS CloudTrail, AWS Key Management Service (AWS KMS), Amazon CloudWatch en AWS Security Hub zullen voor deze accounts worden gebruikt als onderdeel van de beveiliging en bestuur.

Het volgende diagram illustreert deze architectuur.

Voor meer informatie over het instellen van een schaalbare ML-architectuur met meerdere accounts raadpleegt u Stichting MLOps voor ondernemingen met Amazon SageMaker.

Onze klanten hebben de mogelijkheid nodig om modelkaarten tussen accounts te delen om de zichtbaarheid en het beheer van hun modellen te verbeteren via informatie die op de modelkaart wordt gedeeld. Door het delen van modelkaarten voor meerdere accounts kunnen klanten nu genieten van de voordelen van een strategie voor meerdere accounts, terwijl ze toegang hebben tot de beschikbare modelkaarten in hun organisatie, zodat ze de samenwerking kunnen versnellen en het bestuur kunnen garanderen.

In dit bericht laten we zien hoe u modelkaarten kunt instellen en openen voor MDLC-accounts (Model Development Lifecycle) met behulp van de nieuwe functie voor delen tussen accounts van de modelkaart. Eerst zullen we een scenario en een architectuur beschrijven voor het opzetten van de functie voor het delen tussen accounts van de modelkaart, en vervolgens diep ingaan op elk onderdeel van het instellen en openen van gedeelde modelkaarten tussen accounts om de zichtbaarheid en het modelbeheer te verbeteren.

Overzicht oplossingen

Bij het bouwen van ML-modellen raden we aan een architectuur met meerdere accounts in te stellen om werklastisolatie te bieden, waardoor de beveiliging, betrouwbaarheid en schaalbaarheid worden verbeterd. Voor dit bericht gaan we ervan uit dat we een model bouwen en implementeren voor het gebruik van Customer Churn. Het architectuurdiagram dat volgt toont een van de aanbevolen benaderingen – gecentraliseerde modelkaart – voor het beheren van een modelkaart in een Machine Learning Model-Development Lifecycle (MDLC)-architectuur met meerdere accounts. U kunt echter ook een andere aanpak kiezen, een hub-and-spoke-modelkaart. In dit bericht zullen we ons alleen concentreren op een gecentraliseerde modelkaartbenadering, maar dezelfde principes kunnen worden uitgebreid naar een hub-and-spoke-benadering. Het belangrijkste verschil is dat elk spaakaccount zijn eigen versie van de modelkaart behoudt en over processen beschikt om te aggregeren en naar een gecentraliseerd account te kopiëren.

Het volgende diagram illustreert deze architectuur.

De architectuur is als volgt geïmplementeerd:

  1. Lead Data Scientist wordt op de hoogte gesteld om de Customer Churn-gebruikscasus op te lossen met behulp van ML, en zij starten het ML-project door het maken van een modelkaart voor het Customer Churn V1-model in Draft-status in het ML Shared Services-account
  2. Via automatisering wordt die modelkaart gedeeld met ML Dev Account
  3. Data Scientist bouwt het model en begint informatie via API's in de modelkaart in te vullen op basis van hun experimentresultaten en de status van de modelkaart wordt ingesteld op In afwachting van beoordeling
  4. Via automatisering wordt die modelkaart gedeeld met het ML-testaccount
  5. ML Engineer (MLE) voert integratie- en validatietests uit in het ML Test-account en het model in het centrale register wordt gemarkeerd in afwachting van goedkeuring
  6. Model Approver beoordeelt de modelresultaten met de ondersteunende documentatie op de centrale modelkaart en keurt de modelkaart goed voor productie-implementatie.
  7. Door automatisering wordt die modelkaart gedeeld met het ML Prod-account in de alleen-lezenmodus.

Voorwaarden

Voordat u aan de slag gaat, moet u ervoor zorgen dat u aan de volgende vereisten voldoet:

  • Twee AWS-accounts.
  • In beide AWS-accounts een IAM-federatierol met beheerderstoegang om het volgende te doen:
    • Maak, bewerk, bekijk en verwijder modelkaarten binnen Amazon SageMaker.
    • Creëer, bewerk, bekijk en verwijder resourceshare binnen AWS RAM.

Raadpleeg voor meer informatie Voorbeeld van IAM-beleid voor AWS RAM.

Het delen van modelkaarten instellen

De rekening waar de modelkaarten worden aangemaakt is de modelkaartrekening. Gebruikers in het modelkaartaccount delen deze met de gedeelde accounts waar ze kunnen worden bijgewerkt. Gebruikers in het modelkaartaccount kunnen hun modelkaarten delen via AWS Resource Access Manager (AWS RAM). Met AWS RAM kunt u bronnen delen tussen AWS-accounts.

In het volgende gedeelte laten we zien hoe u modelkaarten kunt delen.

Maak eerst een modelkaart voor een Customer Churn-gebruiksscenario, zoals eerder beschreven. Vouw op de Amazon SageMaker-console de sectie Governance uit en kies Modelkaarten.

We maken de modelkaart aan Ontwerp status met de naam Klant-churn-model-kaart. Voor meer informatie, zie: Maak een modelkaart. In deze demonstratie kunt u de overige velden leeg laten en de modelkaart maken.

Als alternatief kunt u de volgende AWS CLI-opdracht gebruiken om de modelkaart te maken:

aws sagemaker create-model-card --model-card-name Customer-Churn-Model-Card --content "{"model_overview": {"model_owner": "model-owner","problem_type": "Customer Churn Model"}}" --model-card-status Draft

Maak nu de gedeelde account aan met AWS RAM. Selecteer in de AWS RAM-console Maak een resourceshare.

Voer een naam in voor de resourceshare, bijvoorbeeld 'Customer-Churn-Model-Card-Share'. In de bronnen – optioneel sectie, selecteer het resourcetype als SageMaker-modelkaarten. De modelkaart die we in de vorige stap hebben gemaakt, verschijnt in de aanbieding.

Selecteer dat model en het verschijnt in de sectie Geselecteerde bronnen. Selecteer die bron opnieuw zoals weergegeven in de volgende stappen en kies Volgende.

Op de volgende pagina kunt u de beheerde machtigingen selecteren. U kunt aangepaste machtigingen maken of de standaardoptie “AWSRAMPermissionSageMakerModelCards”En selecteer Volgende. Voor meer informatie, zie: Machtigingen beheren in AWS RAM.

Op de volgende pagina kunt u Principals selecteren. Kies onder Hoofdtype selecteren AWS-account en voer de ID in van de rekening van de deelmodelkaart. Selecteer Toevoegen en ga verder naar de volgende pagina.

Bekijk op de laatste pagina de informatie en selecteer 'Resourceshare maken'. Als alternatief kunt u het volgende gebruiken AWS CLI opdracht om een ​​resourceshare te maken:

aws ram create-resource-share --name <Name of the Model Card> aws ram associate-resource-share --resource-share-arn <ARN of resource share create from the previous command> --resource-arns <ARN of the Model Card>

Op de AWS RAM-console ziet u de kenmerken van de bronshare. Zorg ervoor dat gedeelde bronnen, beheerde machtigingen en gedeelde opdrachtgevers zich in de map 'Associated" toestand.

Nadat u AWS RAM hebt gebruikt om een ​​bronshare te maken, kunnen de in de bronshare gespecificeerde opdrachtgevers toegang krijgen tot de bronnen van de share.

  • Als u het delen van AWS RAM met AWS-organisaties inschakelt en uw opdrachtgevers waarmee u deelt zich in dezelfde organisatie bevinden als het deelaccount, kunnen die opdrachtgevers toegang krijgen zodra hun accountbeheerder hen toestemming verleent.
  • Als u het delen van AWS RAM met organisaties niet inschakelt, kunt u nog steeds bronnen delen met individuele AWS-accounts die zich in uw organisatie bevinden. De beheerder van het verbruikende account ontvangt een uitnodiging om deel te nemen aan de bronshare en moet de uitnodiging accepteren voordat de in de bronshare opgegeven principals toegang kunnen krijgen tot de gedeelde bronnen.
  • U kunt ook delen met accounts buiten uw organisatie als het resourcetype dit ondersteunt. De beheerder van het verbruikende account ontvangt een uitnodiging om deel te nemen aan de bronshare en moet de uitnodiging accepteren voordat de in de bronshare opgegeven opdrachtgevers toegang krijgen tot de gedeelde bronnen.

Voor meer informatie over AWS RAM raadpleegt u Termen en concepten voor AWS RAM.

Toegang tot gedeelde modelkaarten

Nu kunnen we inloggen op het gedeelde AWS-account om toegang te krijgen tot de modelkaart. Zorg ervoor dat u toegang krijgt tot de AWS-console met behulp van IAM-machtigingen (IAM-rol) die toegang tot AWS RAM mogelijk maken.

Met AWS RAM kunt u de bronshares bekijken waaraan u bent toegevoegd, de gedeelde bronnen waartoe u toegang hebt en de AWS-accounts die bronnen met u hebben gedeeld. U kunt een bronshare ook verlaten als u geen toegang meer nodig heeft tot de gedeelde bronnen.

Om de modelkaart in het gedeelde AWS-account te bekijken:

  1. Navigeer naar de Gedeeld met mij: gedeelde bronnen pagina in de AWS RAM-console.
  2. Zorg ervoor dat u in dezelfde AWS-regio actief bent als waar de share is gemaakt.
  3. Het model dat via het modelaccount wordt gedeeld, zal beschikbaar zijn in de aanbieding. Als er een lange lijst met bronnen is, kunt u een filter toepassen om specifieke gedeelde bronnen te vinden. U kunt meerdere filters toepassen om uw zoekopdracht te verfijnen.
  4. De volgende informatie is beschikbaar:
    1. Bron-ID – De ID van de bron. Dit is de naam van de modelkaart die we eerder in het modelkaartaccount hebben aangemaakt.
    2. Resource type – Het type bron.
    3. Laatste deeldatum – De datum waarop de bron met u is gedeeld.
    4. Resource-aandelen – Het aantal resourceshares waarin de resource is opgenomen. Kies de waarde om de resourceshares te bekijken.
    5. Eigenaar-ID – De ID van de opdrachtgever die eigenaar is van de resource.

U kunt ook toegang krijgen tot de modelkaart via de AWS CLI-optie. Zorg ervoor dat u machtigingen heeft om modelkaarten in Amazon SageMaker te maken, bewerken en verwijderen, zodat het AWS IAM-beleid is geconfigureerd met de juiste inloggegevens. Voor meer informatie, zie Configureer de AWS CLI.

U kunt het volgende AWS IAM-machtigingenbeleid als sjabloon gebruiken:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:DescribeModelCard", "sagemaker:UpdateModelCard", "sagemaker:CreateModelCardExportJob", "sagemaker:ListModelCardVersions", "sagemaker:DescribeModelCardExportJob" ], "Resource": [ "arn:aws:sagemaker:AWS-Region:AWS-model-card-account-id:model-card/example-model-card-name-0", "arn:aws:sagemaker:AWS-Region:AWS-model-card-account-id:model-card/example-model-card-name-1/*" ] }, { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::Amazon-S3-bucket-storing-the-pdf-of-the-model-card/model-card-name/*" } ]
}

U kunt de volgende AWS CLI-opdracht uitvoeren om toegang te krijgen tot de details van de gedeelde modelkaart.

aws sagemaker describe-model-card --model-card-name <ARN of the model card>

Nu kunt u vanuit dit account wijzigingen aanbrengen in deze modelkaart.

aws sagemaker update-model-card --model-card-name <ARN of the Model Card> --content "{"model_overview": {"model_owner": "model-owner","problem_type": "Customer Churn Model"}}"

Nadat u wijzigingen heeft aangebracht, gaat u terug naar het modelkaartaccount om de wijzigingen te bekijken die we in dit gedeelde account hebben aangebracht.

Het probleemtype is bijgewerkt naar “Customer Churn Model'die we hadden verstrekt als onderdeel van de AWS CLI-opdrachtinvoer.

Opruimen

U kunt nu de door u gemaakte modelkaart verwijderen. Zorg ervoor dat u de AWS RAM-bronshare verwijdert die u hebt gemaakt om de modelkaart te delen.

Conclusie

In dit bericht hebben we een overzicht gegeven van de architectuur met meerdere accounts voor het veilig en betrouwbaar schalen en beheren van uw ML-workloads. We bespraken de architectuurpatronen voor het opzetten van het delen van modelkaarten en illustreerden hoe gecentraliseerde patronen voor het delen van modelkaarten werken. Ten slotte hebben we het delen van modelkaarten over meerdere accounts opgezet om de zichtbaarheid en het beheer van de levenscyclus van uw modelontwikkeling te verbeteren. We raden u aan de nieuwe functie voor het delen van modelkaarten uit te proberen en ons uw feedback te laten weten.


Over de auteurs

Vishal Naik is Sr. Solutions Architect bij Amazon Web Services (AWS). Hij is een bouwer die het leuk vindt om klanten te helpen hun zakelijke behoeften te vervullen en complexe uitdagingen op te lossen met AWS-oplossingen en best practices. Zijn belangrijkste aandachtsgebied omvat Machine Learning, DevOps en Containers. In zijn vrije tijd maakt Vishal graag korte films over tijdreizen en alternatieve universum-thema's.

Ram VitalRam Vital is een Principal ML Solutions Architect bij AWS. Hij heeft meer dan 20 jaar ervaring met het ontwerpen en bouwen van gedistribueerde, hybride en cloudapplicaties. Hij heeft een passie voor het bouwen van veilige en schaalbare AI/ML- en big data-oplossingen om zakelijke klanten te helpen met hun cloudadoptie en optimalisatietraject om hun bedrijfsresultaten te verbeteren. In zijn vrije tijd rijdt hij op zijn motor en wandelt hij met zijn 2-jarige schaapjes-a-doodle!

spot_img

Laatste intelligentie

spot_img