Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: Deel 2 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: deel 2

Dit is het tweede deel van een serie die de levenscyclus van machine learning (ML) laat zien met een data mesh-ontwerppatroon voor een grote onderneming met meerdere bedrijfstakken (LOB's) en een Center of Excellence (CoE) voor analyse en ML.

In deel 1, hebben we de persona van data steward aangesproken en een data mesh-configuratie getoond met meerdere AWS-gegevensproducenten en consumentenaccounts. Voor een overzicht van de zakelijke context en de stappen om een ​​data mesh op te zetten met AWS Lake-formatie en registreer een dataproduct, zie deel 1.

In dit bericht spreken we het analyse- en ML-platformteam aan als consument in de data mesh. Het platformteam richt de ML-omgeving in voor de datawetenschappers en helpt hen toegang te krijgen tot de benodigde dataproducten in de datamesh. De datawetenschappers in dit team gebruiken Amazon Sage Maker het bouwen en trainen van een kredietrisicovoorspellingsmodel met behulp van het gedeelde kredietrisicogegevensproduct van de LoB voor consumentenbankieren.

De code voor dit voorbeeld is beschikbaar op: GitHub.

Analytics en ML-consumenten in een data mesh-architectuur

Laten we de architectuur op hoog niveau samenvatten die de belangrijkste componenten in de data mesh-architectuur benadrukt.

In het gegevensproducentblok 1 (links) is er een gegevensverwerkingsfase om ervoor te zorgen dat gedeelde gegevens goed gekwalificeerd en beheerd worden. Het centrale data governance blok 2 (midden) fungeert als een gecentraliseerde datacatalogus met metadata van verschillende geregistreerde dataproducten. Het dataconsumentenblok 3 (rechts) vraagt ​​toegang tot datasets uit de centrale catalogus en vraagt ​​en verwerkt de data om ML-modellen te bouwen en te trainen.

Met SageMaker kunnen datawetenschappers en ontwikkelaars in de ML CoE snel en eenvoudig ML-modellen bouwen en trainen, en deze vervolgens direct implementeren in een productieklare gehoste omgeving. SageMaker biedt gemakkelijke toegang tot uw gegevensbronnen voor verkenning en analyse, en biedt ook algemene ML-algoritmen en -frameworks die zijn geoptimaliseerd om efficiënt te werken met extreem grote gegevens in een gedistribueerde omgeving. Het is gemakkelijk om mee te beginnen Amazon SageMaker Studio, een webgebaseerde geïntegreerde ontwikkelomgeving (IDE), door het SageMaker-domein in te vullen Onboarding proces. Raadpleeg voor meer informatie de Amazon SageMaker-ontwikkelaarsgids.

Gegevensproductverbruik door de analyse en ML CoE

Het volgende architectuurdiagram beschrijft de stappen die de analytics- en ML CoE-consument nodig hebben om toegang te krijgen tot het geregistreerde dataproduct in de centrale datacatalogus en de data te verwerken om een ​​ML-model te bouwen en te trainen.

Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: Deel 2 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

De workflow bestaat uit de volgende onderdelen:

  1. De producer data steward geeft in het centrale account toegang tot de database en tabel tot het consumentenaccount. De database wordt nu weergegeven als een gedeelde database in het consumentenaccount.
  2. De consumentenbeheerder maakt een bronkoppeling in het consumentenaccount naar de database die door het centrale account wordt gedeeld. De volgende schermafbeelding toont een voorbeeld in het consumentenaccount, met: rl_credit-card zijnde de bron link van de credit-card database.
    Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: Deel 2 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
    Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: Deel 2 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
  3. De consumentenbeheerder levert de Studio AWS Identiteits- en toegangsbeheer (IAM) toegang tot de uitvoeringsrol tot de resource gekoppelde database en de tabel die is geïdentificeerd in de Lake Formation-tag. In het volgende voorbeeld heeft de consumentenbeheerder die aan de uitvoeringsrol van SageMaker is geleverd, toegangsrechten: rl_credit-card en de tabel die voldoet aan de tag-expressie Lake Formation.
    Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: Deel 2 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
  4. Zodra een uitvoeringsrol is toegewezen, kunnen datawetenschappers in SageMaker gebruikmaken van Amazone Athene om de tabel op te vragen via de resource link-database in Lake Formation.
    1. Voor gegevensverkenning kunnen ze Studio-notebooks gebruiken om de gegevens te verwerken met interactieve query's via Athena.
    2. Voor gegevensverwerking en feature-engineering kunnen ze SageMaker-verwerkingstaken uitvoeren met een Athena-gegevensbron en resultaten terugsturen naar Amazon eenvoudige opslagservice (Amazone S3).
    3. Nadat de gegevens zijn verwerkt en beschikbaar zijn in Amazon S3 op het ML CoE-account, kunnen gegevenswetenschappers SageMaker-trainingstaken gebruiken om modellen en SageMaker-pijpleidingen om workflows voor modelbouw te automatiseren.
    4. Datawetenschappers kunnen ook het SageMaker-modelregister gebruiken om de modellen te registreren.

Gegevensverkenning

Het volgende diagram illustreert de werkstroom voor gegevensverkenning in het gegevensconsumentenaccount.

Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: Deel 2 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

De consument begint met het opvragen van een steekproef van de gegevens van de credit_risk tafel met Athena in een Studio notitieboekje. Bij het opvragen van gegevens via Athena worden de tussenresultaten ook opgeslagen in Amazon S3. U kunt de AWS Data Wrangler-bibliotheek om een ​​query uit te voeren op Athena in een Studio-notebook voor gegevensverkenning. Het volgende codevoorbeeld toont: hoe Athene te bevragen om de resultaten op te halen als een dataframe voor gegevensverkenning:

df= wr.athena.read_sql_query('SELECT * FROM credit_card LIMIT 10;', database="rl_credit-card", ctas_approach=False)

Nu u een subset van de gegevens als dataframe hebt, kunt u beginnen met het verkennen van de gegevens en zien welke technische updates van functies nodig zijn voor modeltraining. Een voorbeeld van gegevensverkenning wordt weergegeven in de volgende schermafbeelding.

Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: Deel 2 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Wanneer u de database opvraagt, kunt u de toegangslogboeken van de Lake Formation-console zien, zoals weergegeven in de volgende schermafbeelding. Deze logboeken geven u informatie over wie of welke service Lake Formation heeft gebruikt, inclusief de IAM-rol en het tijdstip van toegang. De schermafbeelding toont een logboek over SageMaker die toegang heeft tot de tabel credit_risk in AWS-lijm via Athena. In het logboek ziet u de aanvullende controlecontext die de query-ID bevat die overeenkomt met de query-ID in Athena.

Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: Deel 2 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

In de volgende schermafbeelding ziet u de Athena-queryuitvoerings-id die overeenkomt met de query-id uit het voorgaande logboek. Dit toont de gegevens die zijn geopend met de SQL-query. U kunt zien welke gegevens zijn opgevraagd door naar de Athena-console te gaan en de Recente zoekopdrachten en zoek vervolgens naar de uitvoerings-ID die overeenkomt met de query-ID uit de aanvullende controlecontext.

Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: Deel 2 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Gegevensverwerking

Na gegevensverkenning wilt u misschien de hele grote gegevensset voorbewerken voor feature-engineering voordat u een model traint. Het volgende diagram illustreert de gegevensverwerkingsprocedure.

Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: Deel 2 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

In dit voorbeeld gebruiken we een SageMaker-verwerkingstaak, waarin we een Athena-datasetdefinitie definiëren. De verwerkingstaak bevraagt ​​de gegevens via Athena en gebruikt een script om de gegevens op te splitsen in trainings-, test- en validatiegegevenssets. De resultaten van de verwerkingstaak worden opgeslagen in Amazon S3. Raadpleeg voor meer informatie over het configureren van een verwerkingstaak met Athena: Amazon Athena gebruiken in een verwerkingstaak met Amazon SageMaker.

In dit voorbeeld kunt u de Python SDK gebruiken om een ​​verwerkingstaak te activeren met het Scikit-learn framework. Voordat u activeert, kunt u de invoerparameter: om de invoergegevens te krijgen via de Athena-gegevenssetdefinitie, zoals weergegeven in de volgende code. De dataset bevat de locatie om de resultaten van Athena naar de verwerkingscontainer te downloaden en de configuratie voor de SQL-query. Wanneer de verwerkingstaak is voltooid, worden de resultaten opgeslagen in Amazon S3.

AthenaDataset = AthenaDatasetDefinition (
  catalog = 'AwsDataCatalog', 
  database = 'rl_credit-card', 
  query_string = 'SELECT * FROM "rl_credit-card"."credit_card""',                                
  output_s3_uri = 's3://sagemaker-us-east-1-********7363/athenaqueries/', 
  work_group = 'primary', 
  output_format = 'PARQUET')

dataSet = DatasetDefinition(
  athena_dataset_definition = AthenaDataset, 
  local_path='/opt/ml/processing/input/dataset.parquet')


sklearn_processor.run(
    code="processing/preprocessor.py",
    inputs=[ProcessingInput(
      input_name="dataset", 
      destination="/opt/ml/processing/input", 
      dataset_definition=dataSet)],
    outputs=[
        ProcessingOutput(
            output_name="train_data", source="/opt/ml/processing/train", destination=train_data_path
        ),
        ProcessingOutput(
            output_name="val_data", source="/opt/ml/processing/val", destination=val_data_path
        ),
        ProcessingOutput(
            output_name="model", source="/opt/ml/processing/model", destination=model_path
        ),
        ProcessingOutput(
            output_name="test_data", source="/opt/ml/processing/test", destination=test_data_path
        ),
    ],
    arguments=["--train-test-split-ratio", "0.2"],
    logs=False,
)

Modeltraining en modelregistratie

Na het voorbewerken van de gegevens, kunt u het model trainen met de voorverwerkte gegevens die zijn opgeslagen in Amazon S3. Het volgende diagram illustreert het modeltrainings- en registratieproces.

Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: Deel 2 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Voor gegevensverkenning en SageMaker-verwerkingstaken kunt u de gegevens in de data mesh ophalen via Athena. Hoewel de SageMaker Training API geen parameter bevat om een ​​Athena-gegevensbron te configureren, kunt u gegevens opvragen via Athena in het trainingsscript zelf.

In dit voorbeeld zijn de voorverwerkte gegevens nu beschikbaar in Amazon S3 en kunnen ze direct worden gebruikt om een ​​XGBoost-model te trainen met SageMaker Script Mode. U kunt het script, de hyperparameters, het exemplaartype en alle aanvullende parameters opgeven die nodig zijn om het model met succes te trainen. U kunt de SageMaker-schatter activeren met de trainings- en validatiegegevens in Amazon S3. Wanneer de modeltraining is voltooid, kunt u het model registreren in het SageMaker-modelregister voor het volgen van experimenten en implementatie in een productieaccount.

estimator = XGBoost(
    entry_point=entry_point,
    source_dir=source_dir,
    output_path=output_path,
    code_location=code_location,
    hyperparameters=hyperparameters,
    instance_type="ml.c5.xlarge",
    instance_count=1,
    framework_version="0.90-2",
    py_version="py3",
    role=role,
)

inputs = {"train": train_input_data, "validation": val_input_data}

estimator.fit(inputs, job_name=job_name)

Volgende stappen

U kunt de oplossing incrementeel bijwerken om te voldoen aan de vereisten rond gegevensupdates en hertraining van modellen, automatische verwijdering van tussentijdse gegevens in Amazon S3 en het integreren van een functiearchief. We bespreken elk van deze in meer detail in de volgende secties.

Gegevensupdates en triggers voor herscholing van modellen

Het volgende diagram illustreert het proces om de trainingsgegevens bij te werken en modelhertraining te activeren.

Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: Deel 2 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Het proces omvat de volgende stappen:

  1. De gegevensproducent werkt het gegevensproduct regelmatig bij met een nieuw schema of aanvullende gegevens.
  2. Nadat het dataproduct opnieuw is geregistreerd in de centrale datacatalogus, genereert dit een Amazon Cloud Watch evenement van Lake Formation.
  3. De CloudWatch-gebeurtenis activeert een AWS Lambda functie om het bijgewerkte dataproduct te synchroniseren met het consumentenaccount. U kunt deze trigger gebruiken om de gegevenswijzigingen weer te geven door het volgende te doen:
    1. Voer de AWS Glue-crawler opnieuw uit.
    2. Activeer het opnieuw trainen van het model als de gegevens een bepaalde drempel overschrijden.

Raadpleeg voor meer informatie over het instellen van een SageMaker MLOps-implementatiepijplijn voor driftdetectie de Amazon SageMaker Drift Detectie GitHub-opslagplaats.

Automatische verwijdering van tussentijdse gegevens in Amazon S3

U kunt tussentijdse gegevens die zijn gegenereerd door Athena-query's en die zijn opgeslagen in Amazon S3 in het consumentenaccount met regelmatige tussenpozen automatisch verwijderen met S3-objectlevenscyclusregels. Voor meer informatie, zie: Uw opslaglevenscyclus beheren.

SageMaker Feature Store-integratie

SageMaker-functiewinkel is speciaal gebouwd voor ML en kan beheerde functies opslaan, ontdekken en delen die worden gebruikt in trainings- en voorspellingsworkflows. Een feature store kan werken als een gecentraliseerde interface tussen verschillende dataproducerende teams en LoB's, waardoor feature-ontdekking en herbruikbaarheid voor meerdere consumenten mogelijk wordt. De feature store kan fungeren als alternatief voor de centrale datacatalogus in de eerder beschreven datamesh-architectuur. Raadpleeg voor meer informatie over architectuurpatronen voor meerdere accounts: Schakel het hergebruik van functies in verschillende accounts en teams in met Amazon SageMaker Feature Store.

Conclusie

In deze tweedelige serie hebben we laten zien hoe u ML-modellen kunt bouwen en trainen met een multi-account data mesh-architectuur op AWS. We beschreven de vereisten van een typische financiële dienstverlener met meerdere LoB's en een ML CoE, en illustreerden de oplossingsarchitectuur met Lake Formation en SageMaker. We gebruikten het voorbeeld van een kredietrisicogegevensproduct dat in Lake Formation is geregistreerd door de LoB voor consumentenbankieren en dat is gebruikt door het ML CoE-team om een ​​kredietrisico-ML-model te trainen met SageMaker.

Elk account voor gegevensproducenten definieert gegevensproducten die worden samengesteld door mensen die de gegevens en de toegangscontrole, het gebruik en de beperkingen ervan begrijpen. De dataproducten en de toepassingsdomeinen die ze verbruiken, zijn met elkaar verbonden om de data mesh te vormen. De data mesh-architectuur stelt de ML-teams in staat om deze samengestelde dataproducten te ontdekken en te openen.

Lake Formation biedt cross-account toegang tot Data Catalog-metadata en onderliggende data. U kunt Lake Formation gebruiken om een ​​data mesh-architectuur voor meerdere accounts te maken. SageMaker biedt een ML-platform met belangrijke mogelijkheden op het gebied van gegevensbeheer, experimenten op het gebied van gegevenswetenschap, modeltraining, modelhosting, workflowautomatisering en CI/CD-pijplijnen voor productie. U kunt een of meer analyse- en ML CoE-omgevingen opzetten om modellen te bouwen en te trainen met dataproducten die zijn geregistreerd voor meerdere accounts in een datamesh.

Probeer het AWS CloudFormatie sjablonen en code uit het voorbeeld bewaarplaats om aan de slag te gaan.


Over de auteurs

Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: Deel 2 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Karim Hammouda is Specialist Solutions Architect for Analytics bij AWS met een passie voor data-integratie, data-analyse en BI. Hij werkt samen met AWS-klanten om analyseoplossingen te ontwerpen en te bouwen die bijdragen aan hun bedrijfsgroei. In zijn vrije tijd kijkt hij graag tv-documentaires en speelt hij graag videogames met zijn zoon.

Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: Deel 2 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Hassan Poonawala is Senior AI/ML Specialist Solutions Architect bij AWS, Hasan helpt klanten bij het ontwerpen en implementeren van machine learning-applicaties in productie op AWS. Hij heeft meer dan 12 jaar werkervaring als datawetenschapper, beoefenaar van machine learning en softwareontwikkelaar. In zijn vrije tijd houdt Hasan ervan om de natuur te verkennen en tijd door te brengen met vrienden en familie.

Bouw en train ML-modellen met behulp van een data mesh-architectuur op AWS: Deel 2 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Benoït de Patoul is een AI/ML Specialist Solutions Architect bij AWS. Hij helpt klanten door begeleiding en technische assistentie te bieden bij het bouwen van oplossingen met betrekking tot AI/ML met behulp van AWS. In zijn vrije tijd speelt hij graag piano en brengt hij tijd door met vrienden.

Tijdstempel:

Meer van AWS-machine learning