Zephyrnet-logo

Inrichten en beheren van ML-omgevingen met Amazon SageMaker Canvas met behulp van AWS CDK en AWS Service Catalog

Datum:

De verspreiding van machine learning (ML) in een breed scala aan gebruiksscenario's komt steeds vaker voor in elke branche. Dit overtreft echter de toename van het aantal ML-beoefenaars die traditioneel verantwoordelijk waren voor het implementeren van deze technische oplossingen om bedrijfsresultaten te realiseren.

In de hedendaagse onderneming is er behoefte aan machine learning die kan worden gebruikt door niet-ML-beoefenaars die vaardig zijn met gegevens, wat de basis is van ML. Om dit te realiseren, wordt de waarde van ML in de hele onderneming gerealiseerd via no-code ML-platforms. Deze platforms stellen verschillende persona's, bijvoorbeeld bedrijfsanalisten, in staat om ML te gebruiken zonder een enkele regel code te schrijven en op een snelle, eenvoudige en intuïtieve manier oplossingen te bieden voor zakelijke problemen. Amazon SageMaker-canvas is een visuele point-and-click-service waarmee bedrijfsanalisten ML kunnen gebruiken om bedrijfsproblemen op te lossen door zelf nauwkeurige voorspellingen te genereren, zonder dat er enige ML-ervaring vereist is of een enkele regel code hoeft te schrijven. Canvas heeft het gebruik van ML in de onderneming uitgebreid met een gebruiksvriendelijke intuïtieve interface die bedrijven helpt bij het snel implementeren van oplossingen.

Hoewel Canvas de democratisering van ML mogelijk heeft gemaakt, blijft het een uitdaging om ML-omgevingen op een veilige manier in te richten en in te zetten. Meestal is dit de verantwoordelijkheid van centrale IT-teams in de meeste grote ondernemingen. In dit bericht bespreken we hoe IT-teams veilige ML-omgevingen kunnen beheren, inrichten en beheren met behulp van: Amazon SageMaker-canvas, AWS Cloud-ontwikkelingskit (AWS CDK) en AWS-servicecatalogus. De post presenteert een stapsgewijze handleiding voor IT-beheerders om dit snel en op grote schaal te bereiken.

Overzicht van de AWS CDK en AWS-servicecatalogus

De AWS CDK is een open-source softwareontwikkelingsraamwerk om uw cloudtoepassingsbronnen te definiëren. Het maakt gebruik van de vertrouwdheid en expressieve kracht van programmeertalen voor het modelleren van uw applicaties, terwijl het resources op een veilige en herhaalbare manier levert.

Met AWS Service Catalog kunt u de geïmplementeerde IT-services, applicaties, resources en metadata centraal beheren. Met AWS Service Catalog kunt u cloudresources maken, delen, organiseren en beheren met IaC-sjablonen (Infrastructure as Code) en snelle en ongecompliceerde provisioning mogelijk maken.

Overzicht oplossingen

We maken de inrichting van ML-omgevingen met Canvas mogelijk in drie stappen:

  1. Eerst delen we hoe je een portfolio van bronnen kunt beheren die nodig zijn voor het goedgekeurde gebruik van Canvas met behulp van AWS Service Catalog.
  2. Vervolgens implementeren we een voorbeeld van een AWS Service Catalog-portfolio voor Canvas met behulp van de AWS CDK.
  3. Tot slot laten we zien hoe je binnen enkele minuten Canvas-omgevingen on demand kunt inrichten.

Voorwaarden

Om ML-omgevingen in te richten met Canvas, de AWS CDK en AWS Service Catalogus, moet je het volgende doen:

  1. Toegang hebben tot het AWS-account waar de Service Catalog-portfolio zal worden geïmplementeerd. Zorg ervoor dat u over de inloggegevens en machtigingen beschikt om de AWS CDK-stack in uw account te implementeren. De AWS CDK-workshop is een nuttige bron die u kunt raadplegen als u ondersteuning nodig heeft.
  2. We raden u aan bepaalde best practices te volgen die worden benadrukt door de concepten die in de volgende bronnen worden beschreven:
  3. Kloon deze GitHub-opslagplaats in uw omgeving.

Zorg voor goedgekeurde ML-omgevingen met Amazon SageMaker Canvas met behulp van AWS Service Catalog

In gereguleerde sectoren en de meeste grote ondernemingen moet u voldoen aan de vereisten die worden opgelegd door IT-teams om ML-omgevingen in te richten en te beheren. Deze kunnen een beveiligd privénetwerk, gegevenscodering, controles omvatten om alleen geautoriseerde en geverifieerde gebruikers toe te staan, zoals: AWS Identiteits- en toegangsbeheer (IAM) voor toegang tot oplossingen zoals Canvas, en strikte logging en monitoring voor auditdoeleinden.

Als IT-beheerder kunt u AWS Service Catalog gebruiken om veilige, reproduceerbare ML-omgevingen te creëren en te organiseren met SageMaker Canvas in een productportfolio. Dit wordt beheerd met behulp van IaC-besturingselementen die zijn ingebouwd om te voldoen aan de eerder genoemde vereisten, en die binnen enkele minuten op aanvraag kunnen worden geleverd. U kunt ook de controle behouden over wie toegang heeft tot dit portfolio om producten te lanceren.

Het volgende diagram illustreert deze architectuur.

Voorbeeld stroom

In deze sectie demonstreren we een voorbeeld van een AWS Service Catalog-portfolio met SageMaker Canvas. Het portfolio bestaat uit verschillende aspecten van de Canvas-omgeving die onderdeel zijn van het Service Catalogus portfolio:

  • Studio domein – Canvas is een applicatie die draait binnen Studio-domeinen. Het domein bestaat uit een Amazon elastisch bestandssysteem (Amazon EFS)-volume, een lijst met geautoriseerde gebruikers en een reeks beveiligings-, applicatie-, beleids- en Amazon virtuele privécloud (VPC) configuraties. Een AWS-account is gekoppeld aan één domein per Regio.
  • Amazon S3-emmer – Nadat het Studio-domein is aangemaakt, Amazon eenvoudige opslagservice (Amazon S3) bucket is ingericht voor Canvas om het importeren van datasets uit lokale bestanden, ook wel bekend als het uploaden van lokale bestanden, mogelijk te maken. Deze bucket staat in het account van de klant en wordt eenmalig geleverd.
  • Canvas-gebruiker – SageMaker Canvas is een applicatie waar je gebruikersprofielen kunt toevoegen binnen het Studio-domein voor elke Canvas-gebruiker, die datasets kan importeren, ML-modellen kan bouwen en trainen zonder code te schrijven, en voorspellingen op het model kan uitvoeren.
  • Geplande afsluiting van Canvas-sessies – Canvas-gebruikers kunnen zich afmelden bij de Canvas-interface als ze klaar zijn met hun taken. Alternatief, beheerders kunnen Canvas-sessies afsluiten van het AWS-beheerconsole als onderdeel van het beheer van de Canvas-sessies. In dit deel van het AWS Service Catalog-portfolio wordt een AWS Lambda functie wordt gemaakt en ingericht om Canvas-sessies automatisch af te sluiten met gedefinieerde geplande intervallen. Dit helpt bij het beheren van open sessies en het afsluiten ervan wanneer ze niet in gebruik zijn.

Deze voorbeeldstroom is te vinden in de GitHub-repository voor snelle referentie.

Implementeer de stroom met de AWS CDK

In deze sectie implementeren we de eerder beschreven stroom met behulp van de AWS CDK. Nadat het is geïmplementeerd, kunt u ook versies bijhouden en het portfolio beheren.

De portfolio-stack is te vinden in: app.py en het product stapelt zich onder de products/ map. U kunt herhalen op de IAM-rollen, AWS Sleutelbeheerservice (AWS KMS)-toetsen en VPC-instellingen in de studio_constructs/ map. Voordat u de stapel in uw account implementeert, kunt u de volgende regels bewerken in: app.py en geef portfoliotoegang tot een IAM-rol naar keuze.

U kunt de toegang tot het portfolio beheren voor de relevante IAM-gebruikers, groepen en rollen. Zien Toegang verlenen aan gebruikers voor meer details.

Implementeer de portfolio in uw account

U kunt nu de volgende opdrachten uitvoeren om de AWS CDK te installeren en ervoor te zorgen dat u over de juiste afhankelijkheden beschikt om de portfolio te implementeren:

npm install -g aws-cdk@2.27.0
python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt

Voer de volgende opdrachten uit om de portfolio in uw account te implementeren:

ACCOUNT_ID=$(aws sts get-caller-identity --query Account | tr -d '"')
AWS_REGION=$(aws configure get region)
cdk bootstrap aws://${ACCOUNT_ID}/${AWS_REGION}
cdk deploy --require-approval never

De eerste twee opdrachten halen uw account-ID en huidige regio op met behulp van de AWS-opdrachtregelinterface (AWS CLI) op uw computer. Naar aanleiding hiervan, cdk bootstrap en cdk deploy bouw assets lokaal en implementeer de stack in een paar minuten.

Het portfolio is nu te vinden in AWS Service Catalog, zoals weergegeven in de volgende schermafbeelding.

Provisioning op aanvraag

De producten binnen het portfolio kunnen snel en eenvoudig on demand worden gelanceerd vanuit de Provisioning menu op de AWS Service Catalog-console. Een typische procedure is om eerst het Studio-domein en de automatische uitschakeling van Canvas te starten, omdat dit meestal een eenmalige actie is. Vervolgens kun je Canvas-gebruikers aan het domein toevoegen. De domein-ID en gebruikers-IAM-rol ARN worden opgeslagen in AWS-systeembeheerder en worden automatisch gevuld met de gebruikersparameters zoals weergegeven in de volgende schermafbeelding.

U kunt ook kostentoewijzingstags gebruiken die aan elke gebruiker zijn gekoppeld. Bijvoorbeeld, UserCostCenter is een voorbeeldtag waar u de naam van elke gebruiker kunt toevoegen.

Belangrijkste overwegingen voor het beheren van ML-omgevingen met Canvas

Nu we een AWS-servicecatalogusportfolio hebben ingericht en geïmplementeerd, gericht op Canvas, willen we enkele overwegingen benadrukken om de op Canvas gebaseerde ML-omgevingen gericht op het domein en het gebruikersprofiel te beheersen.

Hieronder volgen overwegingen met betrekking tot het Studio-domein:

  • Networking for Canvas wordt beheerd op Studio-domeinniveau, waarbij het domein wordt geïmplementeerd op een privé VPC-subnet voor veilige connectiviteit. Zien Amazon SageMaker Studio-connectiviteit beveiligen met behulp van een privé-VPC om meer te leren.
  • Een standaard IAM-uitvoeringsrol wordt gedefinieerd op domeinniveau. Deze standaardrol wordt toegewezen aan alle Canvas-gebruikers in het domein.
  • Versleuteling gebeurt met AWS KMS door het EFS-volume in het domein te versleutelen. Voor aanvullende controles kunt u uw eigen beheerde sleutel opgeven, ook wel een door de klant beheerde sleutel (CMK) genoemd. Zien Bescherm gegevens in rust met versleuteling om meer te leren.
  • De mogelijkheid om bestanden van je lokale schijf te uploaden wordt gedaan door een cross-origin resource sharing (CORS)-beleid toe te voegen aan de S3-bucket die door Canvas wordt gebruikt. Zien Geef uw gebruikers toestemming om lokale bestanden te uploaden om meer te leren.

Hieronder volgen overwegingen met betrekking tot het gebruikersprofiel:

  • Authenticatie in Studio kan zowel via single sign-on (SSO) als IAM. Als u een bestaande identiteitsprovider hebt om gebruikers te bundelen voor toegang tot de console, kunt u met IAM een Studio-gebruikersprofiel toewijzen aan elke federatieve identiteit. Zie de sectie Het beleid toewijzen aan Studio-gebruikers in Amazon SageMaker Studio configureren voor teams en groepen met volledige isolatie van bronnen om meer te leren.
  • U kunt IAM-uitvoeringsrollen toewijzen aan elk gebruikersprofiel. Tijdens het gebruik van Studio neemt een gebruiker de rol aan die is toegewezen aan zijn gebruikersprofiel en die de standaarduitvoeringsrol overschrijft. Dit kun je gebruiken voor fijnmazige toegangscontroles binnen een team.
  • U kunt isolatie bereiken met behulp van op attributen gebaseerde toegangscontroles (ABAC) om ervoor te zorgen dat gebruikers alleen toegang hebben tot de bronnen voor hun team. Zien Amazon SageMaker Studio configureren voor teams en groepen met volledige isolatie van bronnen om meer te leren.
  • U kunt gedetailleerde kostenregistratie uitvoeren door kostentoewijzingstags toe te passen op gebruikersprofielen.

Opruimen

Om de bronnen die door de AWS CDK-stack hierboven zijn gemaakt op te schonen, navigeert u naar de pagina AWS CloudFormation-stacks en verwijdert u de Canvas-stacks. Je kunt ook rennen cdk destroy vanuit de repository-map om hetzelfde te doen.

Conclusie

In dit bericht hebben we gedeeld hoe je snel en eenvoudig ML-omgevingen kunt inrichten met Canvas met behulp van AWS Service Catalog en de AWS CDK. We hebben besproken hoe u een portfolio kunt maken op AWS Service Catalog, het portfolio kunt inrichten en in uw account kunt implementeren. IT-beheerders kunnen deze methode gebruiken om gebruikers, sessies en bijbehorende kosten te implementeren en te beheren tijdens het inrichten van Canvas.

Meer informatie over Canvas op de product pagina en Handleiding voor ontwikkelaars. Om verder te lezen, kunt u leren hoe u: stelt bedrijfsanalisten in staat om toegang te krijgen tot SageMaker Canvas met AWS SSO zonder de console. Je kunt ook leren hoe bedrijfsanalisten en datawetenschappers kunnen sneller samenwerken met Canvas en Studio.


Over de auteurs

David Gallitelli is Specialist Solutions Architect voor AI/ML in de EMEA-regio. Hij is gevestigd in Brussel en werkt nauw samen met klanten in de hele Benelux. Hij is een ontwikkelaar sinds hij heel jong was en begon te coderen op 7-jarige leeftijd. Hij begon AI/ML te leren op de universiteit en is er sindsdien verliefd op geworden.

Sofia Hamiti is een AI / ML-specialist Solutions Architect bij AWS. Hij helpt klanten in verschillende bedrijfstakken hun AI / ML-traject te versnellen door hen te helpen bij het bouwen en operationaliseren van end-to-end machine learning-oplossingen.

Shyam Srinivasan is Principal Product Manager in het AWS AI/ML-team en leidt productbeheer voor Amazon SageMaker Canvas. Shyam wil de wereld verbeteren door middel van technologie en is gepassioneerd over hoe AI en ML een katalysator kunnen zijn in deze reis.

Avi Patel werkt als software-engineer in het Amazon SageMaker Canvas-team. Zijn achtergrond bestaat uit full stack werken met een frontend focus. In zijn vrije tijd draagt ​​hij graag bij aan open source-projecten in de crypto-ruimte en leert hij over nieuwe DeFi-protocollen.

Jared Heywood is Senior Business Development Manager bij AWS. Hij is een wereldwijde AI/ML-specialist die klanten helpt met machine learning zonder code. Hij heeft de afgelopen 5 jaar in de AutoML-ruimte gewerkt en producten gelanceerd bij Amazon zoals Amazon SageMaker JumpStart en Amazon SageMaker Canvas.

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?