Créez et entraînez des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Créer et former des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2

Il s'agit de la deuxième partie d'une série qui présente le cycle de vie de l'apprentissage automatique (ML) avec un modèle de conception de maillage de données pour une grande entreprise avec plusieurs secteurs d'activité (LOB) et un centre d'excellence (CoE) pour l'analyse et le ML.

In partie 1, nous avons abordé le personnage du gestionnaire de données et présenté une configuration de maillage de données avec plusieurs comptes de producteurs et de consommateurs de données AWS. Pour un aperçu du contexte métier et des étapes de mise en place d'un maillage de données avec Formation AWS Lake et enregistrer un produit de données, reportez-vous à la partie 1.

Dans cet article, nous nous adressons à l'équipe d'analyse et de plateforme ML en tant que consommateur dans le maillage de données. L'équipe de la plate-forme configure l'environnement ML pour les data scientists et les aide à accéder aux produits de données nécessaires dans le maillage de données. Les data scientists de cette équipe utilisent Amazon Sage Maker construire et former un modèle de prévision du risque de crédit en utilisant le produit de données partagées sur le risque de crédit du LoB de la banque de consommation.

Le code de cet exemple est disponible sur GitHub.

Consommateur d'analytique et de ML dans une architecture de maillage de données

Récapitulons l'architecture de haut niveau qui met en évidence les composants clés de l'architecture de maillage de données.

Dans le bloc producteur de données 1 (à gauche), il y a une étape de traitement des données pour s'assurer que les données partagées sont bien qualifiées et conservées. Le bloc central de gouvernance des données 2 (centre) agit comme un catalogue de données centralisé avec des métadonnées de divers produits de données enregistrés. Le bloc consommateur de données 3 (à droite) demande l'accès aux ensembles de données du catalogue central et interroge et traite les données pour créer et former des modèles ML.

Avec SageMaker, les data scientists et les développeurs du ML CoE peuvent créer et former rapidement et facilement des modèles ML, puis les déployer directement dans un environnement hébergé prêt pour la production. SageMaker offre un accès facile à vos sources de données pour l'exploration et l'analyse, et fournit également des algorithmes et des cadres ML courants qui sont optimisés pour s'exécuter efficacement sur des données extrêmement volumineuses dans un environnement distribué. Il est facile de commencer avec Amazon SageMakerStudio, un environnement de développement intégré (IDE) basé sur le Web, en complétant le domaine SageMaker Processus d'embarquement. Pour plus d'informations, reportez-vous au Guide du développeur Amazon SageMaker.

Consommation de produits de données par l'analyse et le ML CoE

Le diagramme d'architecture suivant décrit les étapes requises par le consommateur d'analyse et de ML CoE pour accéder au produit de données enregistré dans le catalogue de données central et traiter les données pour créer et former un modèle ML.

Créez et entraînez des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Le flux de travail comprend les composants suivants :

  1. Le gestionnaire de données du producteur fournit un accès dans le compte central à la base de données et à la table du compte du consommateur. La base de données est désormais reflétée en tant que base de données partagée dans le compte client.
  2. L'administrateur consommateur crée un lien de ressource dans le compte consommateur vers la base de données partagée par le compte central. La capture d'écran suivante montre un exemple dans le compte consommateur, avec rl_credit-card étant le lien de ressource du credit-card base de données.
    Créez et entraînez des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
    Créez et entraînez des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  3. L'administrateur consommateur fournit le Studio Gestion des identités et des accès AWS Accès du rôle d'exécution (IAM) à la base de données liée aux ressources et à la table identifiée dans la balise Lake Formation. Dans l'exemple suivant, l'administrateur consommateur fourni au rôle d'exécution SageMaker est autorisé à accéder rl_credit-card et la table satisfaisant l'expression de balise Lake Formation.
    Créez et entraînez des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  4. Une fois attribué un rôle d'exécution, les data scientists de SageMaker peuvent utiliser Amazone Athéna pour interroger la table via la base de données de liens de ressources dans Lake Formation.
    1. Pour l'exploration de données, ils peuvent utiliser des blocs-notes Studio pour traiter les données avec des requêtes interactives via Athena.
    2. Pour le traitement des données et l'ingénierie des fonctionnalités, ils peuvent exécuter des tâches de traitement SageMaker avec une source de données Athena et renvoyer les résultats vers Service de stockage simple Amazon (Amazon S3).
    3. Une fois les données traitées et disponibles dans Amazon S3 sur le compte ML CoE, les spécialistes des données peuvent utiliser les tâches de formation SageMaker pour former des modèles et Pipelines SageMaker pour automatiser les workflows de création de modèles.
    4. Les scientifiques des données peuvent également utiliser le registre de modèles SageMaker pour enregistrer les modèles.

Exploration de données

Le diagramme suivant illustre le workflow d'exploration de données dans le compte consommateur de données.

Créez et entraînez des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Le consommateur commence par interroger un échantillon des données du credit_risk table avec Athéna dans un cahier Studio. Lors de l'interrogation de données via Athena, les résultats intermédiaires sont également enregistrés dans Amazon S3. Vous pouvez utiliser le Bibliothèque AWS Data Wrangler pour exécuter une requête sur Athena dans un bloc-notes Studio pour l'exploration de données. L'exemple de code suivant montre comment interroger Athéna pour récupérer les résultats sous forme de dataframe pour l'exploration de données :

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

Maintenant que vous disposez d'un sous-ensemble de données en tant que cadre de données, vous pouvez commencer à explorer les données et voir quelles mises à jour d'ingénierie de fonctionnalités sont nécessaires pour la formation du modèle. Un exemple d'exploration de données est illustré dans la capture d'écran suivante.

Créez et entraînez des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Lorsque vous interrogez la base de données, vous pouvez voir les journaux d'accès à partir de la console Lake Formation, comme illustré dans la capture d'écran suivante. Ces journaux vous donnent des informations sur qui ou quel service a utilisé Lake Formation, y compris le rôle IAM et l'heure d'accès. La capture d'écran montre un journal sur SageMaker accédant à la table credit_risk dans AWS Glue via Athena. Dans le journal, vous pouvez voir le contexte d'audit supplémentaire qui contient l'ID de requête correspondant à l'ID de requête dans Athena.

Créez et entraînez des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

La capture d'écran suivante montre l'ID d'exécution de requête Athena qui correspond à l'ID de requête du journal précédent. Cela montre les données accédées avec la requête SQL. Vous pouvez voir quelles données ont été interrogées en accédant à la console Athena, en choisissant l'option Requêtes récentes puis recherchez l'ID d'exécution qui correspond à l'ID de requête du contexte d'audit supplémentaire.

Créez et entraînez des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Traitement de l'information

Après l'exploration des données, vous souhaiterez peut-être prétraiter l'ensemble du grand jeu de données pour l'ingénierie des fonctionnalités avant de former un modèle. Le schéma suivant illustre la procédure de traitement des données.

Créez et entraînez des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Dans cet exemple, nous utilisons une tâche de traitement SageMaker, dans laquelle nous définissons une définition de jeu de données Athena. La tâche de traitement interroge les données via Athena et utilise un script pour diviser les données en jeux de données de formation, de test et de validation. Les résultats de la tâche de traitement sont enregistrés dans Amazon S3. Pour savoir comment configurer une tâche de traitement avec Athena, reportez-vous à Utiliser Amazon Athena dans une tâche de traitement avec Amazon SageMaker.

Dans cet exemple, vous pouvez utiliser le SDK Python pour déclencher une tâche de traitement avec le framework Scikit-learn. Avant le déclenchement, vous pouvez configurer le paramètre d'entrée pour obtenir les données d'entrée via la définition de l'ensemble de données Athena, comme indiqué dans le code suivant. L'ensemble de données contient l'emplacement pour télécharger les résultats d'Athena vers le conteneur de traitement et la configuration de la requête SQL. Lorsque la tâche de traitement est terminée, les résultats sont enregistrés dans 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,
)

Formation de modèle et enregistrement de modèle

Après le prétraitement des données, vous pouvez entraîner le modèle avec les données prétraitées enregistrées dans Amazon S3. Le diagramme suivant illustre le modèle de processus de formation et d'inscription.

Créez et entraînez des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Pour les travaux d'exploration de données et de traitement SageMaker, vous pouvez récupérer les données dans le maillage de données via Athena. Bien que l'API de formation SageMaker n'inclue pas de paramètre pour configurer une source de données Athena, vous pouvez interroger des données via Athena dans le script de formation lui-même.

Dans cet exemple, les données prétraitées sont désormais disponibles dans Amazon S3 et peuvent être utilisées directement pour former un modèle XGBoost avec le mode de script SageMaker. Vous pouvez fournir le script, les hyperparamètres, le type d'instance et tous les paramètres supplémentaires nécessaires pour former le modèle avec succès. Vous pouvez déclencher l'estimateur SageMaker avec les données de formation et de validation dans Amazon S3. Lorsque la formation du modèle est terminée, vous pouvez enregistrer le modèle dans le registre des modèles SageMaker pour le suivi des expériences et le déploiement sur un compte de production.

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)

Prochaines étapes

Vous pouvez effectuer des mises à jour incrémentielles de la solution pour répondre aux exigences relatives aux mises à jour des données et au recyclage des modèles, à la suppression automatique des données intermédiaires dans Amazon S3 et à l'intégration d'un magasin de fonctionnalités. Nous abordons chacun d'entre eux plus en détail dans les sections suivantes.

Mises à jour des données et déclencheurs de réentraînement du modèle

Le diagramme suivant illustre le processus de mise à jour des données d'apprentissage et de déclenchement du réapprentissage du modèle.

Créez et entraînez des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Le processus comprend les étapes suivantes:

  1. Le producteur de données met à jour le produit de données avec un nouveau schéma ou des données supplémentaires à une fréquence régulière.
  2. Une fois que le produit de données est réenregistré dans le catalogue de données central, cela génère un Amazon Cloud Watch événement de Lake Formation.
  3. L'événement CloudWatch déclenche une AWS Lambda fonction pour synchroniser le produit de données mis à jour avec le compte du consommateur. Vous pouvez utiliser ce déclencheur pour refléter les modifications de données en procédant comme suit :
    1. Réexécutez l'analyseur AWS Glue.
    2. Déclenchez le réapprentissage du modèle si les données dérivent au-delà d'un seuil donné.

Pour plus de détails sur la configuration d'un pipeline de déploiement SageMaker MLOps pour la détection de dérive, reportez-vous au Détection de dérive Amazon SageMaker Repo GitHub.

Suppression automatique des données intermédiaires dans Amazon S3

Vous pouvez supprimer automatiquement les données intermédiaires générées par les requêtes Athena et stockées dans Amazon S3 dans le compte consommateur à intervalles réguliers avec les règles de cycle de vie des objets S3. Pour plus d'informations, reportez-vous à Gestion du cycle de vie de votre stockage.

Intégration du magasin de fonctionnalités SageMaker

Magasin de fonctionnalités SageMaker est spécialement conçu pour le ML et peut stocker, découvrir et partager des fonctionnalités organisées utilisées dans les flux de travail de formation et de prédiction. Un magasin de fonctionnalités peut fonctionner comme une interface centralisée entre différentes équipes de producteurs de données et LoBs, permettant la découverte et la réutilisation des fonctionnalités pour plusieurs consommateurs. Le magasin de fonctionnalités peut servir d'alternative au catalogue de données central dans l'architecture de maillage de données décrite précédemment. Pour plus d'informations sur les modèles d'architecture intercomptes, reportez-vous à Activer la réutilisation des fonctionnalités entre les comptes et les équipes à l'aide d'Amazon SageMaker Feature Store.

Conclusion

Dans cette série en deux parties, nous avons montré comment vous pouvez créer et former des modèles ML avec une architecture de maillage de données multicompte sur AWS. Nous avons décrit les exigences d'une organisation de services financiers typique avec plusieurs LoB et un ML CoE, et illustré l'architecture de la solution avec Lake Formation et SageMaker. Nous avons utilisé l'exemple d'un produit de données sur le risque de crédit enregistré dans Lake Formation par le LoB de la banque de consommation et auquel l'équipe ML CoE a accédé pour former un modèle ML de risque de crédit avec SageMaker.

Chaque compte de producteur de données définit des produits de données qui sont conservés par des personnes qui comprennent les données et leur contrôle d'accès, leur utilisation et leurs limites. Les produits de données et les domaines d'application qui les consomment sont interconnectés pour former le maillage de données. L'architecture de maillage de données permet aux équipes ML de découvrir et d'accéder à ces produits de données organisés.

Lake Formation permet un accès entre comptes aux métadonnées du catalogue de données et aux données sous-jacentes. Vous pouvez utiliser Lake Formation pour créer une architecture de maillage de données multi-comptes. SageMaker fournit une plate-forme ML avec des fonctionnalités clés autour de la gestion des données, de l'expérimentation de la science des données, de la formation de modèles, de l'hébergement de modèles, de l'automatisation des flux de travail et des pipelines CI/CD pour la production. Vous pouvez configurer un ou plusieurs environnements d'analyse et de ML CoE pour créer et former des modèles avec des produits de données enregistrés sur plusieurs comptes dans un maillage de données.

Essayez le AWS CloudFormation modèles et code de l'exemple dépôt pour commencer.


À propos des auteurs

Créez et entraînez des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Karim Hammouda est un architecte de solutions spécialisé pour l'analyse chez AWS avec une passion pour l'intégration de données, l'analyse de données et la BI. Il travaille avec les clients AWS pour concevoir et créer des solutions d'analyse qui contribuent à la croissance de leur entreprise. Pendant son temps libre, il aime regarder des documentaires télévisés et jouer à des jeux vidéo avec son fils.

Créez et entraînez des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Hassan Poonawala est architecte principal de solutions spécialisées en IA/ML chez AWS, Hasan aide les clients à concevoir et à déployer des applications d'apprentissage automatique en production sur AWS. Il a plus de 12 ans d'expérience professionnelle en tant que scientifique des données, praticien en apprentissage automatique et développeur de logiciels. Dans ses temps libres, Hasan aime explorer la nature et passer du temps avec ses amis et sa famille.

Créez et entraînez des modèles ML à l'aide d'une architecture de maillage de données sur AWS : partie 2 PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Benoît de Patoul est architecte de solutions spécialisées en IA/ML chez AWS. Il aide les clients en fournissant des conseils et une assistance technique pour créer des solutions liées à l'IA/ML à l'aide d'AWS. Pendant son temps libre, il aime jouer du piano et passer du temps avec des amis.

Horodatage:

Plus de Apprentissage automatique AWS