Een van de belangrijkste uitdagingen bij de implementatie van een machine learning (ML)-project is de verscheidenheid en het grote aantal gebruikte ontwikkelingsartefacten en -tools. Dit omvat code in notebooks, modules voor gegevensverwerking en -transformatie, omgevingsconfiguratie, inferentiepijplijn en orkestratiecode. Bij productieworkloads is het ML-model dat binnen uw ontwikkelingsframework is gemaakt bijna nooit het einde van het werk, maar maakt het deel uit van een grotere applicatie of workflow.
Een andere uitdaging is de gevarieerde aard van ML-ontwikkelingsactiviteiten die door verschillende gebruikersrollen worden uitgevoerd. De DevOps-ingenieur ontwikkelt bijvoorbeeld infrastructuurcomponenten, zoals CI/CD-automatisering, bouwt productie-inferentiepijplijnen en configureert de beveiliging en netwerken. De data-engineer is doorgaans gefocust op dataverwerking en transformatieworkflows. De datawetenschapper of ML-ingenieur levert ML-modellen en pijplijnen voor modelbouw, training en validatie.
Deze uitdagingen vragen om een architectuur en een raamwerk dat de scheiding van belangen faciliteert door elke ontwikkelingsrol aan zijn eigen deel van het systeem te laten werken, en de complexiteit van integratie, beveiliging en omgevingsconfiguratie te verbergen.
Dit bericht illustreert hoe u een modulaire, op componenten gebaseerde architectuur in uw ML-toepassing introduceert door herbruikbare, op zichzelf staande en consistente componenten te implementeren met Amazon Sage Maker.
Overzicht oplossingen
Als voorbeeld van een ML-workflow die verschillende ontwikkelingsdomeinen omvat, implementeert de voorgestelde oplossing een gebruiksscenario van een geautomatiseerde pijplijn voor gegevenstransformatie, extractie van functies en opname in Amazon SageMaker Feature Store.
Op een hoog niveau omvat de workflow de volgende functionele stappen:
- Een upstream-component voor gegevensopname uploadt gegevensobjecten naar een Amazon eenvoudige opslagservice (Amazon S3) emmer.
- De gegevensuploadgebeurtenis start een gegevensverwerkings- en transformatieproces.
- Het datatransformatieproces extraheert, verwerkt en transformeert functies, en neemt deze op in een aangewezen feature groep in de Feature Store.
Terminologie
In dit gedeelte worden de volgende belangrijke concepten en definities geïntroduceerd.
ML-component
An ML-component is een constructie-eenheid die alle benodigde resources, configuratie en workflows bevat om een specifieke ML-taak uit te voeren. De voorgestelde datatransformatie- en opnamepijplijn kan bijvoorbeeld worden geleverd als een ML-component. ML-componenten hebben een betere integratiemogelijkheid om u te helpen reproduceerbare, beheerde en veilige ML-applicaties te implementeren. Een ML-component kan alle standaardcode bevatten die nodig is om de toegangsrechten voor gegevens, beveiligingssleutels, tagging, naamgeving en logboekvereisten voor alle bronnen correct in te stellen.
Bij het implementeren van een ML-component wordt ervan uitgegaan dat een speciaal DevOps- of MLOps-team het ontwerp, de bouw, het testen en de distributie van componenten uitvoert. De ontvangers van ML-componenten zijn datawetenschappers, data-ingenieurs en ML-ingenieurs.
Deze scheiding van ontwikkelingsverantwoordelijkheden zorgt voor meer flexibiliteit, een snellere time-to-market en minder handmatig zwaar werk, en resulteert in een hogere kwaliteit en consistentie van uw ML-workflows.
Amazon SageMaker-project
SageMaker faciliteert de ontwikkeling en distributie van ML-componenten met SageMaker-projecten.
Een SageMaker project is een zelfvoorzienende verzameling bronnen, die kan worden geïnstantieerd en gebruikt door de bevoegde gebruikers. Een project bevat alle bronnen, artefacten, broncode, orkestratie en machtigingen die nodig zijn om een aangewezen ML-taak of workflow uit te voeren. SageMaker biedt bijvoorbeeld MLOps-projectsjablonen om de installatie en implementatie van MLOps voor uw toepassingen te automatiseren.
U kunt een aangepaste SageMaker-projectsjabloon om een verpakte ML-workflow te leveren, die kan worden gedistribueerd en ingericht via een Amazon SageMaker Studio IDE.
Wanneer u aangepaste herbruikbare componenten implementeert met SageMaker-projecten, kunt u het ontwikkelings-, test- en distributieproces voor ML-componenten scheiden van hun gebruik, en de best practices van MLOps volgen.
Productportfolio
Een project werkt samen met twee andere AWS-diensten, AWS-servicecatalogus en AWS CloudFormatie, om een end-to-end, gebruiksvriendelijke integratie in uw SageMaker-omgeving en Studio te bieden. Je kunt meerdere projecten combineren in een portfolio. Er wordt een SageMaker-project aangeroepen artikel in het portefeuillebereik. Een productportfolio wordt via AWS Service Catalog in Studio geleverd. U kunt bepalen wie specifieke producten kan bekijken en inrichten door gebruikersrollen aan een aangewezen portfolio te koppelen.
Oplossingsarchitectuur
De gedetailleerde componentarchitectuur van de oplossing wordt weergegeven in het volgende diagram.
Een productportfolio (1) definieert het geautomatiseerde Feature Store-gegevensopnameproduct (2) samen met de bijbehorende gebruikersrollen die het portfolio en de daarin opgenomen producten mogen gebruiken. CloudFormation-sjablonen definiëren zowel het productportfolio (1) als het product (2). Een CloudFormation-sjabloon (3) bevat alle bronnen, broncode, configuratie en machtigingen die nodig zijn om het product in uw SageMaker-omgeving in te richten.
Wanneer AWS CloudFormation het product implementeert, wordt er een nieuw SageMaker-project gemaakt (4).
Het SageMaker-project implementeert de workflow voor het opnemen van functies (5). De werkstroom bevat een AWS Lambda functie, die wordt gelanceerd door een Amazon EventBridge regel elke keer dat nieuwe objecten worden geüpload naar een bewaakte S3-bucket. De Lambda-functie start a SageMaker-pijplijn (6), dat is gedefinieerd en ingericht als onderdeel van het SageMaker-project. De pijplijn implementeert gegevenstransformatie en -opname in Feature Store.
Het project voorziet ook in CI/CD-automatisering (7) met een AWS Codecommit repository met broncode, AWS CodeBuild met een pijplijnbuildscript, en AWS CodePipeline om de bouw en implementatie van de SageMaker-pijplijn te orkestreren (6).
ML-pijplijn
Deze oplossing implementeert een ML-pijplijn met behulp van Amazon SageMaker-pijpleidingen, een raamwerk voor het maken en orkestreren van ML-workflows. De pijplijn bevat één stap met een Amazon SageMaker-gegevens Wrangler processor voor gegevenstransformatie en opname in een functiegroep in Feature Store. In het volgende diagram ziet u een pijplijn voor gegevensverwerking die door deze oplossing is geïmplementeerd.
Verwijzen naar Bouw, stem af en implementeer een end-to-end voorspellingsmodel voor klantverloop met behulp van Amazon SageMaker Pipelines voor een voorbeeld van hoe u een SageMaker-pijplijn bouwt en gebruikt.
De rest van dit bericht begeleidt u bij de implementatie van een aangepast SageMaker-project. We bespreken hoe we het volgende kunnen doen:
- Creëer een project met uw middelen
- Begrijp de levenscyclus van het project
- Bekijk projectbronnen
- Maak een Studio-domein en implementeer een productportfolio
- Werk met het project en voer een pijplijn voor gegevenstransformatie en opname uit
De GitHub-repository biedt de volledige broncode voor de end-to-end oplossing. U kunt deze code gebruiken als uitgangspunt voor uw eigen aangepaste ML-componenten die u kunt implementeren met dezelfde referentiearchitectuur.
Schrijf een SageMaker-projectsjabloon
Om aan de slag te gaan met een aangepast SageMaker-project heeft u de volgende bronnen, artefacten en AWS Identiteits- en toegangsbeheer (IAM) rollen en machtigingen:
- Een CloudFormation-sjabloon die een AWS-servicecatalogus definieert portfolio.
- Een CloudFormation-sjabloon die een SageMaker-project definieert.
- IAM-rollen en -machtigingen die nodig zijn om uw projectcomponenten uit te voeren en de taken en workflows van het project uit te voeren.
- Als uw project broncode bevat die als onderdeel van het project is geleverd, moet deze code ook worden geleverd. De oplossing verwijst naar deze broncode als de zaadcode.
Bestanden in deze oplossing
Deze oplossing bevat alle broncode die nodig is om uw aangepaste SageMaker-project te maken. De structuur van de coderepository is als volgt:
- map cfn-templates: Deze map bevat het volgende:
- project-s3-fs-opname.yaml – Een CloudFormation-sjabloon met het SageMaker-project
- sm-project-sc-portfolio.yaml – Een CloudFormation-sjabloon met het productportfolio en beheerd beleid met de benodigde machtigingen om het product te implementeren
- map project-seed-code/s3-fs-ingestion – Bevat de project-seedcode, inclusief de SageMaker-pijplijndefinitiecode, build-scripts voor het CI/CD CodeBuild-project en broncode voor de Lambda-functie
- map notitieboekjes – Bevat de SageMaker-notebooks om met het project te experimenteren
De volgende secties beschrijven elk onderdeel van het projectontwerpproces en geven voorbeelden van de broncode.
AWS-servicecatalogusportfolio
Een AWS Service Catalog-portfolio wordt geleverd als een CloudFormation-sjabloon, waarin de volgende bronnen worden gedefinieerd:
- Portefeuilledefinitie.
- Product definitie.
- Product-naar-portfoliokoppeling voor elk product.
- Portefeuille aan IAM-principe vereniging. Hierin wordt gedefinieerd welke IAM-principes portfolioproducten mogen inzetten.
- Beperking van de rol van productlancering. Dit definieert welke IAM-rol AWS CloudFormation op zich neemt wanneer een gebruiker de sjabloon inricht.
Om uw projectsjabloon beschikbaar te maken in Studio, moet u de volgende tag aan het product toevoegen:
Verwijzen naar Maak aangepaste projectsjablonen voor meer informatie over aangepaste projectsjablonen.
Deze oplossing bevat een voorbeeld van een AWS Service Catalog-portfolio dat één enkel product bevat.
Product CloudFormation-sjabloon
Een CloudFormation-sjabloon definieert het product. De sjabloon van het product is zelfvoorzienend en bevat alle bronnen, machtigingen en artefacten die nodig zijn om de functionaliteit van het product te leveren.
Om het product te laten werken met SageMaker-projecten, moet u de volgende parameters aan uw productsjabloon toevoegen:
Deze oplossing bevat een productsjabloon waardoor verschillende hulpbronnen ontstaan.
Voor de gegevenstransformatie- en opnamepijplijn maakt de sjabloon het volgende:
- Een SageMaker-pijplijndefinitiebroncode.
- Een Lambda-functie om de SageMaker-pijplijn te starten telkens wanneer een nieuw object wordt geüpload naar de bewaakte S3-bucket.
- Een IAM-uitvoeringsrol voor de Lambda-functie.
- Een S3-emmer om een AWS CloudTrail loggen. U hebt een CloudTrail-logboek nodig om EventBridge-meldingen in te schakelen voor objectplaatsgebeurtenissen in de bewaakte bucket. U gebruikt de op CloudTrail gebaseerde melding in plaats van Amazon S3-meldingen, omdat u een bestaande Amazon S3-melding op de bewaakte bucket niet mag overschrijven.
- Een CloudTrail-logboek geconfigureerd om vast te leggen
WriteOnly
gebeurtenissen op S3-objecten onder een opgegeven S3-voorvoegsel. - Een EventBridge-regel om de Lambda-functie te starten telkens wanneer een nieuw object wordt geüpload naar de bewaakte S3-bucket. Het EventBridge-regelpatroon bewaakt de gebeurtenissen
PutObject
enCompleteMultipartUpload
.
Voor CI/CD-automatisering creëert de sjabloon het volgende:
- Een S3-bucket om CodePipeline-artefacten op te slaan
- Een CodeCommit-repository met de SageMaker-pijplijndefinitie
- Een EventBridge-regel om CodePipeline te starten wanneer de CodeCommit-repository wordt bijgewerkt
- Een CodeBuild-project om de SageMaker-pijplijn te bouwen
- Een CodePipeline-pijplijn om de bouw van de SageMaker-pijplijn te orkestreren
IAM-rollen en -machtigingen
Om een SageMaker-project te starten en te gebruiken, hebt u twee IAM-rollen nodig:
- Een IAM-rol om een product uit de AWS Service Catalog te lanceren – Deze regel wordt overgenomen door de AWS Service Catalog en bevat toestemming die specifiek nodig is om bronnen te implementeren met behulp van CloudFormation-sjablonen. Dankzij de op AWS Service Catalog gebaseerde aanpak kunnen datawetenschappers en ML-ingenieurs aangepaste ML-componenten en workflows centraal inrichten zonder dat elke ML-gebruiker een spraakmakend machtigingsbeleid hoeft te hebben of een handmatig en niet-reproduceerbaar individueel implementatieproces hoeft te doorlopen.
- Een IAM-rol om bronnen te gebruiken die zijn gemaakt door een SageMaker-project – Deze bronnen omvatten een CodePipeline-pijplijn, een SageMaker-pijplijn en een EventBridge-regel. De CloudFormation-sjabloon van het project specificeert expliciet welke resource welke rol gebruikt.
Wanneer u SageMaker-projecten inschakelt voor Studio-gebruikers, creëert het inrichtingsproces twee IAM-rollen in uw AWS-account: AmazonSageMakerServiceCatalogProductsLaunchRole
en AmazonSageMakerServiceCatalogProductsUseRole
. De Door SageMaker geleverde projectsjablonen gebruik deze rollen om de gemaakte resources in te zetten en te beheren. U kunt deze rollen gebruiken voor uw aangepaste SageMaker-projecten, of u kunt uw eigen rollen maken met een specifieke set IAM-machtigingen die passen bij uw vereisten. Zorg ervoor dat deze rollen alle benodigde machtigingen krijgen, met name S3-buckettoegang, om hun taken uit te voeren.
Verwijzen naar Door AWS beheerd beleid voor SageMaker-projecten en JumpStart voor meer informatie over de standaardrollen.
Als u IAM-rollen maakt en toewijst aan bronnen die zijn gemaakt door de projectinrichting via AWS Service Catalog en AWS CloudFormation, wordt de rol AmazonSageMakerServiceCatalogProductsLaunchRole
moet hebben iam:PassRole
toestemming voor een rol die u doorgeeft aan een resource. Deze oplossing creëert bijvoorbeeld een IAM-uitvoeringsrol voor de Lambda-functie. Het beheerde beleid voor AmazonSageMakerServiceCatalogProductsLaunchRole
bevat de bijbehorende toestemmingsverklaring:
Het volgende diagram toont alle betrokken IAM-rollen en welke dienst of resource welke rol op zich neemt.
De architectuur bevat de volgende componenten:
- De lanceringsrol van de SageMaker Service Catalog-producten. Deze rol noemt de
iam:PassRole
API voor de SageMaker Service Catalog-producten gebruiken rol (2) en de Lambda-uitvoeringsrol (4). - De SageMaker Service Catalog-producten gebruiken rol. Projectresources nemen deze rol op zich om hun taken uit te voeren.
- De uitvoeringsrol van SageMaker. Studio-notebooks gebruiken deze rol om toegang te krijgen tot alle bronnen, inclusief S3-buckets.
- De Lambda-uitvoeringsrol. De Lambda-functie neemt deze rol over.
- De Lambda-functie grondstoffenbeleid staat EventBridge toe de functie aan te roepen.
Verwijzen naar SageMaker Studio-machtigingen vereist om projecten te gebruiken voor meer informatie over het instellen van Studio-machtigingen voor projecten.
Project-seedcode
Als uw aangepaste SageMaker-project gebruikmaakt van CI/CD-workflowautomatisering of op broncode gebaseerde bronnen bevat, kunt u de zaadcode aanleveren als een CodeCommit of Git-repository van derden, zoals GitHub en Bitbucket. De projectgebruiker is eigenaar van de code en kan deze aanpassen om zijn of haar vereisten te implementeren.
Deze oplossing levert de zaadcode, die een SageMaker-pijplijndefinitie bevat. Het project creëert ook een CI/CD-workflow om de SageMaker-pijplijn te bouwen. Elke commit naar de broncoderepository lanceert de CodePipeline-pijplijn.
Projectlevenscyclus
Een project doorloopt verschillende levenscyclusfasen: u maakt een project, gebruikt het en de bijbehorende bronnen, en verwijdert het project wanneer u het niet meer nodig heeft. Studio UX integreert end-to-end SageMaker-projecten, inclusief projectbronnen, data-afstamming en levenscycluscontrole.
Maak een project
U kunt een SageMaker-project rechtstreeks in uw Studio IDE of via de SageMaker-API.
Voer de volgende stappen uit om een nieuw SageMaker-project in Studio te maken:
- Op de SageMaker-bronnen pagina, kies Projecten in het vervolgkeuzemenu.
- Kies Maak een project aan.
- Kies Organisatie sjablonen.
- Kies de sjabloon voor het project dat u wilt inrichten.
- Voer een naam en optionele beschrijving voor uw project in.
- Onder Parameters van projectsjabloon, geef uw projectspecifieke parameters op.
U kunt de Python SDK ook gebruiken om programmatisch een project te maken, zoals weergegeven in dit codefragment uit de 01-feature-store-ingest-pipeline
notitieboekje:
Elk project wordt ingericht via een AWS Service Catalog en AWS CloudFormation-proces. Omdat u bijvoorbeeld het bijbehorende IAM-toegangsbeleid heeft AWSCloudFormationReadOnlyAccess, kunt u de projectimplementatie bekijken op de AWS CloudFormation-console. Zoals u in de volgende schermafbeelding kunt zien, kunt u door stapelinformatie, gebeurtenissen, bronnen, uitvoer, parameters en de sjabloon bladeren.
Bekijk projectbronnen
Nadat u het project hebt ingericht, kunt u door SageMaker-specifieke projectbronnen bladeren in de Studio IDE.
U kunt ook alle bronnen zien die door het projectimplementatieproces zijn gemaakt op de AWS CloudFormation-console.
Elke bron die door het project wordt gemaakt, wordt automatisch getagd met twee tags: sagemaker:project-name
en sagemaker:project-id
, waarbij rekening wordt gehouden met de afstamming van gegevens en bronnen.
U kunt bijvoorbeeld uw eigen tags aan projectresources toevoegen om aan uw specifieke vereisten voor tagging en naamgeving van resources te voldoen.
Project verwijderen
Als u het ingerichte project niet meer nodig heeft, moet u het verwijderen om de bronnen op te schonen die door het project zijn gemaakt, om te voorkomen dat er kosten in rekening worden gebracht.
Op het moment dat u dit bericht schrijft, moet u de SageMaker-API om een project te verwijderen. Een voorbeeld van een Python-code ziet er als volgt uit:
Het verwijderen van het project initieert ook het verwijderen van de CloudFormation-stack met de projectsjabloon.
Een project kan andere bronnen maken, zoals objecten in S3-buckets, ML-modellen, functiegroepen, inferentie-eindpunten of CloudFormation-stacks. Deze bronnen mogen niet worden verwijderd bij het verwijderen van een project. Raadpleeg de specifieke projectdocumentatie voor informatie over het uitvoeren van een volledige opschoning.
Deze oplossing biedt een Studio notitieboekje om alle bronnen te verwijderen die door het project zijn gemaakt.
Implementeer de oplossing
Om de oplossing te implementeren, moet u beheerdersmachtigingen (of hoofdgebruikers) hebben om de CloudFormation-sjablonen te verpakken, de sjablonen naar uw S3-bucket te uploaden en de implementatieopdrachten uit te voeren.
Als u wilt gaan werken met de notebooks van de oplossing, een project wilt inrichten en een pijplijn voor gegevenstransformatie en -opname wilt uitvoeren, moet u de volgende implementatiestappen voltooien vanuit de oplossing: GitHub README-bestand:
- Kloon de oplossing GitHub repo naar uw lokale ontwikkelingsomgeving.
- Maak een Studio-domein (instructies in de LEESMIJ-bestand).
- Implementeer het SageMaker-projectportfolio (instructies in de LEESMIJ-bestand).
- Voeg aangepaste machtigingen toe aan het starten van de AWS Service Catalog en het uitvoeren van IAM-rollen door SageMaker (instructies in de LEESMIJ-bestand).
- Start Studio en kloon de GitHub-repository naar uw SageMaker-omgeving (instructies in de LEESMIJ-bestand).
Oplossingsoverzicht
De geleverde notitieboekjes leidt u door de volgende oplossingsstappen:
- Setup:
- Zet de werkomgeving op, creëer een S3-bucket voor het uploaden, downloaden en verkennen van de testdataset
- Maak optioneel een Data Wrangler-stroom voor gegevenstransformatie en opname van functies
- Maak een functiegroep in Feature Store waar functies worden bewaard
- Query's uitvoeren op de gegevens uit de functiegroep
- Feature Store-opnamepijplijn:
- Richt een SageMaker-project in met een gegevenspijplijn
- Verken de projectbronnen
- Test de gegevenspijplijn door nieuwe gegevens te uploaden naar de bewaakte S3-bucket
- Voer de gegevenspijplijn op aanvraag uit via Python SDK
- Query's uitvoeren op de gegevens uit de functiegroep
- Opruimen:
- Verwijder het project en de projectbronnen
- Verwijder de functiegroep
- Verwijder door het project ingerichte S3-buckets en S3-objecten
Opruimen
Om kosten te voorkomen, moet u alle door het project geleverde en gegenereerde bronnen uit uw AWS-account verwijderen.
Volg de instructies in de oplossing LEESMIJ-bestand.
Oproep tot actie
In dit bericht hebt u geleerd hoe u ML-componenten voor uw modulaire architectuur kunt maken met behulp van SageMaker-projecten. SageMaker-projecten bieden een handige en AWS-native methode voor het verpakken en leveren van herbruikbare eenheden om ML-workflows te implementeren. Door SageMaker-projecten te integreren met SageMaker Pipelines en CI/CD CodePipeline-automatisering beschikt u over krachtige tools om de best practices van MLOps te volgen en de snelheid en kwaliteit van uw ontwikkelingswerk te verhogen.
Uw ML-workflows en -pijplijnen kunnen er baat bij hebben als ze worden ingekapseld in een herbruikbare en parametreerbare component. Nu kunt u dit onderdeel implementeren met behulp van de beschreven aanpak met SageMaker-projecten.
Aanvullende referenties
Zie de volgende bronnen voor meer praktische voorbeelden van het gebruik van SageMaker-projecten en -pijplijnen voor verschillende gebruiksscenario's:
Over de auteur
Jevgeni Iljin is Solutions Architect bij AWS. Hij heeft meer dan 20 jaar ervaring in het werken op alle niveaus van softwareontwikkeling en oplossingsarchitectuur en heeft programmeertalen gebruikt van COBOL en Assembler tot .NET, Java en Python. Hij ontwikkelt en codeert cloud-native oplossingen met een focus op big data, analytics en data engineering.
- '
- 7
- 9
- toegang
- Account
- Actie
- activiteiten
- Alles
- Het toestaan
- Amazone
- Amazon Sage Maker
- analytics
- api
- Aanvraag
- toepassingen
- architectuur
- geautomatiseerde
- Automatisering
- AWS
- BEST
- 'best practices'
- Big data
- bouw
- Gebouw
- Bellen
- gevallen
- uitdagen
- lasten
- Cloud
- wolk native
- code
- bestanddeel
- bouw
- gegevens
- toegang tot data
- gegevensverwerking
- data scientist
- Vraag
- Design
- Ontwikkeling
- DevOps
- domeinen
- werk
- ingenieur
- Engineering
- Ingenieurs
- Milieu
- Event
- EVENTS
- uitvoering
- ervaring
- experiment
- extractie
- extracten
- Kenmerk
- Voordelen
- stroom
- Focus
- volgen
- Achtergrond
- vervullen
- vol
- functie
- Git
- GitHub
- Groep
- Verbergen
- Hoge
- Hoe
- How To
- HTTPS
- IAM
- Identiteit
- Inclusief
- Laat uw omzet
- info
- Infrastructuur
- integratie
- betrokken zijn
- IT
- Java
- sleutel
- toetsen
- Talen
- lancering
- lanceert
- geleerd
- leren
- Niveau
- lokaal
- machine learning
- Markt
- ML
- MLops
- model
- modulaire
- netto
- netwerken
- laptops
- notificatie
- bieden
- Overige
- Patronen
- beleidsmaatregelen door te lezen.
- beleidsmaatregelen
- portfolio
- energie
- voorspelling
- Product
- productie
- Producten
- Programming
- programmeertalen
- project
- projecten
- Python
- kwaliteit
- Voorwaarden
- hulpbron
- Resources
- REST
- Resultaten
- lopen
- sagemaker
- wetenschappers
- sdk
- veiligheid
- zaad
- Diensten
- reeks
- Eenvoudig
- Software
- software development
- Oplossingen
- snelheid
- begin
- gestart
- Statement
- mediaopslag
- shop
- system
- proef
- Testen
- De Bron
- niet de tijd of
- Trainingen
- Transformatie
- gebruikers
- ux
- waarde
- Bekijk
- WIE
- binnen
- Mijn werk
- workflow
- workflow automatisering
- Bedrijven
- het schrijven van
- jaar