Erstellen und trainieren Sie ML-Modelle mit einer Data-Mesh-Architektur auf AWS: Teil 2 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Erstellen und trainieren Sie ML-Modelle mithilfe einer Data-Mesh-Architektur auf AWS: Teil 2

Dies ist der zweite Teil einer Reihe, die den Lebenszyklus des maschinellen Lernens (ML) mit einem Data-Mesh-Designmuster für ein großes Unternehmen mit mehreren Geschäftsbereichen (LOBs) und einem Center of Excellence (CoE) für Analytik und ML vorstellt.

In Teil 1haben wir uns mit der Data-Steward-Persona befasst und ein Data-Mesh-Setup mit mehreren AWS-Datenproduzenten- und -verbraucherkonten vorgestellt. Für einen Überblick über den Geschäftskontext und die Schritte zum Einrichten eines Datennetzes AWS Lake-Formation und ein Datenprodukt registrieren, siehe Teil 1.

In diesem Beitrag sprechen wir das Analytics- und ML-Plattform-Team als Verbraucher im Datennetz an. Das Plattformteam richtet die ML-Umgebung für die Datenwissenschaftler ein und hilft ihnen, Zugang zu den erforderlichen Datenprodukten im Datennetz zu erhalten. Die Datenwissenschaftler in diesem Team verwenden Amazon Sage Maker Aufbau und Training eines Kreditrisikovorhersagemodells unter Verwendung des gemeinsamen Kreditrisikodatenprodukts der Verbraucherbank-LoB.

Der Code für dieses Beispiel ist verfügbar auf GitHub.

Analytics- und ML-Verbraucher in einer Data-Mesh-Architektur

Lassen Sie uns die High-Level-Architektur zusammenfassen, die die Schlüsselkomponenten in der Data-Mesh-Architektur hervorhebt.

Im Datenproduzentenblock 1 (links) gibt es eine Datenverarbeitungsphase, um sicherzustellen, dass die gemeinsam genutzten Daten gut qualifiziert und kuratiert sind. Der zentrale Data-Governance-Block 2 (Mitte) fungiert als zentraler Datenkatalog mit Metadaten verschiedener registrierter Datenprodukte. Der Datenverbraucherblock 3 (rechts) fordert den Zugriff auf Datensätze aus dem zentralen Katalog an und fragt die Daten ab und verarbeitet sie, um ML-Modelle zu erstellen und zu trainieren.

Mit SageMaker können Data Scientists und Entwickler im ML CoE schnell und einfach ML-Modelle erstellen und trainieren und diese dann direkt in einer produktionsbereiten gehosteten Umgebung bereitstellen. SageMaker bietet einfachen Zugriff auf Ihre Datenquellen zur Untersuchung und Analyse und bietet außerdem gängige ML-Algorithmen und -Frameworks, die für die effiziente Ausführung extrem großer Datenmengen in einer verteilten Umgebung optimiert sind. Der Einstieg ist einfach Amazon SageMaker-Studio, eine webbasierte integrierte Entwicklungsumgebung (IDE), durch Vervollständigung der SageMaker-Domäne Onboarding-Prozess. Weitere Informationen finden Sie unter Amazon SageMaker-Entwicklerhandbuch.

Datenproduktverbrauch durch Analytics und ML CoE

Das folgende Architekturdiagramm beschreibt die Schritte, die der Analyse- und ML-CoE-Verbraucher benötigt, um Zugriff auf das registrierte Datenprodukt im zentralen Datenkatalog zu erhalten und die Daten zu verarbeiten, um ein ML-Modell zu erstellen und zu trainieren.

Erstellen und trainieren Sie ML-Modelle mit einer Data-Mesh-Architektur auf AWS: Teil 2 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Der Workflow besteht aus folgenden Komponenten:

  1. Der Producer Data Steward bietet im zentralen Konto Zugriff auf die Datenbank und die Tabelle für das Consumer-Konto. Die Datenbank wird jetzt als gemeinsam genutzte Datenbank im Verbraucherkonto angezeigt.
  2. Der Verbraucheradministrator erstellt im Verbraucherkonto einen Ressourcenlink zu der vom zentralen Konto gemeinsam genutzten Datenbank. Der folgende Screenshot zeigt ein Beispiel im Verbraucherkonto, mit rl_credit-card ist der Ressourcenlink der credit-card Datenbank.
    Erstellen und trainieren Sie ML-Modelle mit einer Data-Mesh-Architektur auf AWS: Teil 2 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
    Erstellen und trainieren Sie ML-Modelle mit einer Data-Mesh-Architektur auf AWS: Teil 2 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
  3. Der Consumer-Admin stellt das Studio bereit AWS Identity and Access Management and (IAM)-Ausführungsrollenzugriff auf die ressourcenverknüpfte Datenbank und die im Lake-Formation-Tag identifizierte Tabelle. Im folgenden Beispiel hat der Consumer-Administrator, der der SageMaker-Ausführungsrolle zugewiesen wurde, die Zugriffsberechtigung rl_credit-card und die Tabelle, die den Lake-Formation-Tag-Ausdruck erfüllt.
    Erstellen und trainieren Sie ML-Modelle mit einer Data-Mesh-Architektur auf AWS: Teil 2 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
  4. Sobald eine Ausführungsrolle zugewiesen wurde, können Data Scientists in SageMaker diese verwenden Amazonas Athena um die Tabelle über die Ressource-Link-Datenbank in Lake Formation abzufragen.
    1. Für die Datenexploration können sie Studio-Notebooks verwenden, um die Daten mit interaktiven Abfragen über Athena zu verarbeiten.
    2. Für die Datenverarbeitung und das Feature-Engineering können sie SageMaker-Verarbeitungsjobs mit einer Athena-Datenquelle ausführen und die Ergebnisse zurückgeben Amazon Simple Storage-Service (Amazon S3).
    3. Nachdem die Daten verarbeitet wurden und in Amazon S3 auf dem ML CoE-Konto verfügbar sind, können Data Scientists SageMaker-Trainingsjobs verwenden, um Modelle zu trainieren und SageMaker-Pipelines Modellerstellungs-Workflows zu automatisieren.
    4. Data Scientists können auch die SageMaker-Modellregistrierung verwenden, um die Modelle zu registrieren.

Datenexploration

Das folgende Diagramm veranschaulicht den Arbeitsablauf zur Datenexploration im Datenkonsumentenkonto.

Erstellen und trainieren Sie ML-Modelle mit einer Data-Mesh-Architektur auf AWS: Teil 2 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Der Verbraucher beginnt mit der Abfrage einer Stichprobe der Daten aus der credit_risk Tisch mit Athena in einem Studio-Notizbuch. Bei der Datenabfrage über Athena werden auch die Zwischenergebnisse in Amazon S3 gespeichert. Du kannst den ... benutzen AWS Data Wrangler-Bibliothek um eine Abfrage auf Athena in einem Studio-Notebook zur Datenexploration auszuführen. Das folgende Codebeispiel zeigt wie man Athena abfragt So rufen Sie die Ergebnisse als Datenrahmen für die Datenexploration ab:

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

Nachdem Sie nun über eine Teilmenge der Daten als Datenrahmen verfügen, können Sie mit der Untersuchung der Daten beginnen und sehen, welche Feature-Engineering-Updates für das Modelltraining erforderlich sind. Ein Beispiel für die Datenexploration ist im folgenden Screenshot dargestellt.

Erstellen und trainieren Sie ML-Modelle mit einer Data-Mesh-Architektur auf AWS: Teil 2 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Wenn Sie die Datenbank abfragen, können Sie die Zugriffsprotokolle von der Lake Formation-Konsole anzeigen, wie im folgenden Screenshot gezeigt. Diese Protokolle geben Ihnen Informationen darüber, wer oder welcher Dienst Lake Formation verwendet hat, einschließlich der IAM-Rolle und der Zugriffszeit. Der Screenshot zeigt ein Protokoll über den Zugriff von SageMaker auf die Tabelle credit_risk in AWS Glue über Athena. Im Protokoll sehen Sie den zusätzlichen Überwachungskontext, der die Abfrage-ID enthält, die mit der Abfrage-ID in Athena übereinstimmt.

Erstellen und trainieren Sie ML-Modelle mit einer Data-Mesh-Architektur auf AWS: Teil 2 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Der folgende Screenshot zeigt die Ausführungs-ID der Athena-Abfrage, die mit der Abfrage-ID aus dem vorherigen Protokoll übereinstimmt. Dies zeigt die Daten, auf die mit der SQL-Abfrage zugegriffen wird. Sie können sehen, welche Daten abgefragt wurden, indem Sie zur Athena-Konsole navigieren und auswählen Letzte Abfragen und suchen Sie dann nach der Ausführungs-ID, die mit der Abfrage-ID aus dem zusätzlichen Überwachungskontext übereinstimmt.

Erstellen und trainieren Sie ML-Modelle mit einer Data-Mesh-Architektur auf AWS: Teil 2 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Datenverarbeitung

Nach der Datenexploration möchten Sie möglicherweise das gesamte große Dataset für das Feature-Engineering vorverarbeiten, bevor Sie ein Modell trainieren. Das folgende Diagramm veranschaulicht den Datenverarbeitungsprozess.

Erstellen und trainieren Sie ML-Modelle mit einer Data-Mesh-Architektur auf AWS: Teil 2 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

In diesem Beispiel verwenden wir einen SageMaker-Verarbeitungsjob, in dem wir eine Athena-Dataset-Definition definieren. Der Verarbeitungsauftrag fragt die Daten über Athena ab und verwendet ein Skript, um die Daten in Trainings-, Test- und Validierungsdatensätze aufzuteilen. Die Ergebnisse des Verarbeitungsauftrags werden in Amazon S3 gespeichert. Informationen zum Konfigurieren eines Verarbeitungsauftrags mit Athena finden Sie unter Verwenden Sie Amazon Athena in einem Verarbeitungsauftrag mit Amazon SageMaker.

In diesem Beispiel können Sie das Python-SDK verwenden, um einen Verarbeitungsauftrag mit dem Scikit-learn-Framework auszulösen. Vor dem Auslösen können Sie die konfigurieren Eingabeparameter um die Eingabedaten über die Athena-Datensatzdefinition abzurufen, wie im folgenden Code gezeigt. Das Dataset enthält den Speicherort zum Herunterladen der Ergebnisse von Athena in den Verarbeitungscontainer und die Konfiguration für die SQL-Abfrage. Wenn der Verarbeitungsauftrag abgeschlossen ist, werden die Ergebnisse in Amazon S3 gespeichert.

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 und Modelregistrierung

Nach der Vorverarbeitung der Daten können Sie das Modell mit den in Amazon S3 gespeicherten vorverarbeiteten Daten trainieren. Das folgende Diagramm veranschaulicht den Modelltrainings- und Registrierungsprozess.

Erstellen und trainieren Sie ML-Modelle mit einer Data-Mesh-Architektur auf AWS: Teil 2 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Für Datenexplorations- und SageMaker-Verarbeitungsaufträge können Sie die Daten im Datennetz über Athena abrufen. Obwohl die SageMaker-Trainings-API keinen Parameter zum Konfigurieren einer Athena-Datenquelle enthält, können Sie Daten über Athena im Trainingsskript selbst abfragen.

In diesem Beispiel sind die vorverarbeiteten Daten nun in Amazon S3 verfügbar und können direkt verwendet werden, um ein XGBoost-Modell mit dem SageMaker-Skriptmodus zu trainieren. Sie können das Skript, die Hyperparameter, den Instance-Typ und alle zusätzlichen Parameter bereitstellen, die zum erfolgreichen Trainieren des Modells erforderlich sind. Sie können den SageMaker-Estimator mit den Trainings- und Validierungsdaten in Amazon S3 auslösen. Wenn das Modelltraining abgeschlossen ist, können Sie das Modell in der SageMaker-Modellregistrierung registrieren, um Experimente nachzuverfolgen und in einem Produktionskonto bereitzustellen.

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)

Nächste Schritte

Sie können inkrementelle Aktualisierungen an der Lösung vornehmen, um Anforderungen in Bezug auf Datenaktualisierungen und Modellneutraining, automatisches Löschen von Zwischendaten in Amazon S3 und die Integration eines Funktionsspeichers zu erfüllen. In den folgenden Abschnitten besprechen wir diese ausführlicher.

Datenaktualisierungen und Auslöser für das Neutraining von Modellen

Das folgende Diagramm veranschaulicht den Prozess zum Aktualisieren der Trainingsdaten und zum Auslösen des Modellneutrainings.

Erstellen und trainieren Sie ML-Modelle mit einer Data-Mesh-Architektur auf AWS: Teil 2 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Der Prozess umfasst die folgenden Schritte:

  1. Der Datenproduzent aktualisiert das Datenprodukt in regelmäßigen Abständen entweder mit einem neuen Schema oder zusätzlichen Daten.
  2. Nach der Neuregistrierung des Datenprodukts im zentralen Datenkatalog generiert dieser eine Amazon CloudWatch Ereignis von Lake Formation.
  3. Das CloudWatch-Ereignis löst eine aus AWS Lambda Funktion zum Synchronisieren des aktualisierten Datenprodukts mit dem Verbraucherkonto. Sie können diesen Trigger verwenden, um die Datenänderungen widerzuspiegeln, indem Sie wie folgt vorgehen:
    1. Führen Sie den AWS Glue-Crawler erneut aus.
    2. Lösen Sie ein Neutraining des Modells aus, wenn die Daten einen bestimmten Schwellenwert überschreiten.

Weitere Einzelheiten zum Einrichten einer SageMaker-MLOps-Bereitstellungspipeline zur Abweichungserkennung finden Sie in der Amazon SageMaker Drift-Erkennung GitHub Repo.

Automatisches Löschen von Zwischendaten in Amazon S3

Sie können Zwischendaten, die von Athena-Abfragen generiert und in Amazon S3 im Verbraucherkonto in regelmäßigen Abständen mit S3-Objektlebenszyklusregeln gespeichert werden, automatisch löschen. Weitere Informationen finden Sie unter Verwaltung Ihres Speicherlebenszyklus.

SageMaker Feature Store-Integration

SageMaker Feature Store wurde speziell für ML entwickelt und kann kuratierte Funktionen speichern, entdecken und freigeben, die in Trainings- und Vorhersage-Workflows verwendet werden. Ein Feature Store kann als zentralisierte Schnittstelle zwischen verschiedenen Datenproduzententeams und LoBs fungieren und die Auffindbarkeit und Wiederverwendbarkeit von Features für mehrere Verbraucher ermöglichen. Der Feature Store kann als Alternative zum zentralen Datenkatalog in der zuvor beschriebenen Data-Mesh-Architektur fungieren. Weitere Informationen zu kontenübergreifenden Architekturmustern finden Sie unter Aktivieren Sie die Wiederverwendung von Funktionen für Konten und Teams mithilfe des Amazon SageMaker Feature Store.

Zusammenfassung

In dieser zweiteiligen Serie haben wir gezeigt, wie Sie ML-Modelle mit einer Data-Mesh-Architektur mit mehreren Konten auf AWS erstellen und trainieren können. Wir haben die Anforderungen einer typischen Finanzdienstleistungsorganisation mit mehreren LoBs und einem ML CoE beschrieben und die Lösungsarchitektur mit Lake Formation und SageMaker veranschaulicht. Wir haben das Beispiel eines Kreditrisikodatenprodukts verwendet, das in Lake Formation vom Consumer Banking LoB registriert wurde und auf das das ML CoE-Team zugegriffen hat, um ein Kreditrisiko-ML-Modell mit SageMaker zu trainieren.

Jedes Datenproduzentenkonto definiert Datenprodukte, die von Personen kuratiert werden, die die Daten und ihre Zugriffskontrolle, Verwendung und Einschränkungen verstehen. Die Datenprodukte und die Anwendungsdomänen, die sie nutzen, sind miteinander verbunden, um das Datennetz zu bilden. Die Data-Mesh-Architektur ermöglicht es den ML-Teams, diese kuratierten Datenprodukte zu entdecken und darauf zuzugreifen.

Lake Formation ermöglicht den kontenübergreifenden Zugriff auf Data Catalog-Metadaten und zugrunde liegende Daten. Sie können Lake Formation verwenden, um eine Multi-Account-Data-Mesh-Architektur zu erstellen. SageMaker bietet eine ML-Plattform mit Schlüsselfunktionen rund um Datenmanagement, Data-Science-Experimente, Modelltraining, Modell-Hosting, Workflow-Automatisierung und CI/CD-Pipelines für die Produktion. Sie können eine oder mehrere Analyse- und ML CoE-Umgebungen einrichten, um Modelle mit Datenprodukten zu erstellen und zu trainieren, die über mehrere Konten in einem Datennetz registriert sind.

Probieren Sie das aus AWS CloudFormation Vorlagen und Code aus dem Beispiel Quelle um zu starten.


Über die Autoren

Erstellen und trainieren Sie ML-Modelle mit einer Data-Mesh-Architektur auf AWS: Teil 2 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Karim Hammuda ist Specialist Solutions Architect for Analytics bei AWS mit einer Leidenschaft für Datenintegration, Datenanalyse und BI. Er arbeitet mit AWS-Kunden zusammen, um Analyselösungen zu entwickeln und zu entwickeln, die zu ihrem Geschäftswachstum beitragen. In seiner Freizeit schaut er gerne TV-Dokumentationen und spielt mit seinem Sohn Videospiele.

Erstellen und trainieren Sie ML-Modelle mit einer Data-Mesh-Architektur auf AWS: Teil 2 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Hasan Poonawala ist Senior AI/ML Specialist Solutions Architect bei AWS und unterstützt Kunden bei der Entwicklung und Bereitstellung von Anwendungen für maschinelles Lernen in der Produktion auf AWS. Er verfügt über mehr als 12 Jahre Berufserfahrung als Datenwissenschaftler, Praktiker des maschinellen Lernens und Softwareentwickler. In seiner Freizeit liebt Hasan es, die Natur zu erkunden und Zeit mit Freunden und Familie zu verbringen.

Erstellen und trainieren Sie ML-Modelle mit einer Data-Mesh-Architektur auf AWS: Teil 2 PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Benoît de Patoul ist AI/ML Specialist Solutions Architect bei AWS. Er hilft Kunden, indem er Anleitungen und technische Unterstützung bereitstellt, um Lösungen im Zusammenhang mit KI/ML mit AWS zu entwickeln. In seiner Freizeit spielt er gerne Klavier und verbringt Zeit mit Freunden.

Zeitstempel:

Mehr von AWS Maschinelles Lernen