FraudFinder : passer des données brutes à l'IA avec Vertex AI et BigQuery

1. Présentation

Dans cet atelier, vous allez apprendre à créer un système de bout en bout permettant de passer des données à l'IA pour détecter les fraudes en temps réel sur Google Cloud. L'objectif est de comprendre comment passer des données brutes à un pipeline de ML prêt pour la production s'exécutant sur Google Cloud. Cet atelier utilise les produits Google Cloud suivants :

Points abordés

Créer un pipeline de ML de bout en bout peut s'avérer difficile. Dans cet atelier, vous allez apprendre à concevoir et à faire évoluer un pipeline de ML de bout en bout à l'aide de services Google Cloud, tels que BigQuery et Vertex AI. Vous découvrirez les différentes étapes pour passer des données brutes à l'IA en production. Objectifs globaux d'apprentissage :

  • Connaître les bonnes pratiques à suivre pour intégrer des données aux systèmes d'IA sur Google Cloud
  • Se familiariser avec l'extraction de caractéristiques avec BigQuery via SQL (pour le traitement par lots) et avec Apache Beam via Dataflow (pour le traitement en temps réel), ainsi qu'à l'utilisation de Vertex AI Feature Store
  • Découvrir comment analyser des données via BigQuery et des bibliothèques Python comme Pandas et Ploty
  • Maîtriser l'entraînement des modèles de ML avec BigQuery ML via SQL
  • Pouvoir exploiter Vertex AI à des fins de stockage, de déploiement et de surveillance de votre modèle
  • Savoir utiliser Vertex AI Pipelines pour formaliser vos données dans un workflow d'IA

IMPORTANT : Le coût de l'exécution de cet atelier sur Google Cloud est estimé à 100 $.

2. Passer des données brutes à l'IA avec Vertex AI et BigQuery

Cet atelier aborde les nouveaux produits d'analyse de données et d'IA disponibles sur Google Cloud, tels que Vertex AI and BigQuery ML. Vertex AI et BigQuery facilitent le passage des données brutes à l'IA et offrent une expérience de développement fluide pour vous aider à gagner en productivité lors de la mise en production de vos modèles. Pour obtenir de l'aide, veuillez consulter la page d'assistance.

Vertex AI offre une large gamme de produits variés qui permettent de gérer les workflows "des données à l'IA" de bout en bout. Découvrez ci-dessous une présentation de chacune des fonctionnalités Vertex AI :

Présentation des produits Vertex

3. Cas d'utilisation et données de FraudFinder

FraudFinder est une série de notebooks permettant de se familiariser avec l'ensemble du parcours des données vers l'IA sur Google Cloud en prenant pour exemple d'utilisation la détection des fraudes en temps réel. En parcourant les notebooks, vous allez découvrir comment lire les données historiques de transactions de paiement stockées dans un entrepôt de données, consulter un flux en direct de nouvelles transactions, effectuer une analyse exploratoire des données (AED), procéder à l'extraction de caractéristiques, ingérer des fonctionnalités dans un magasin, entraîner un modèle à l'aide de ce magasin de fonctionnalités, enregistrer votre modèle dans un registre de modèles, évaluer votre modèle, déployer votre modèle sur un point de terminaison, effectuer une opération d'inférence en temps réel sur votre modèle avec le magasin de fonctionnalités, et surveiller votre modèle.

La détection des fraudes englobe la classification et la détection d'anomalies, des domaines du machine learning incontestablement vastes. Il s'agit donc d'un cas d'utilisation idéal pour illustrer de manière simple et concrète le passage de bout en bout des données à une architecture d'IA sur Google Cloud. Vous n'avez pas besoin d'être un expert dans le domaine des fraudes pour comprendre l'architecture de bout en bout. Le modèle de l'architecture peut être appliqué à d'autres cas d'utilisation.

Découvrez ci-dessous un aperçu de l'architecture de FraudFinder :

Architecture de FraudFinder

Ensemble de données

L'ensemble de données est synthétisé à l'aide du code du projet Kaggle Machine Learning for Credit Card Fraud Detection - Practical Handbook (Machine learning pour la détection des utilisations frauduleuses de cartes de crédit - Guide pratique). En termes d'architecture, la détection des fraudes en temps réel est différente de la détection des fraudes basée sur le traitement par lot. Ses caractéristiques sont les suivantes :

  • Fréquence élevée des requêtes de prédiction (ex. : 1 000 par seconde)
  • Faible latence des requêtes de prédiction → réponses (ex. : < 1 sec/requête)
  • Prédictions effectuées par échantillon unique de requête de prédiction ou en "micro-lots" (ex. : 1 000 transactions envoyées par lot pour une inférence en temps quasi réel)
  • Extraction des caractéristiques pour l'inférence précalculée ou calculée en temps réel

Ensemble de données historiques FraudFinder

Des tables BigQuery publiques de données historiques de transactions de paiement sont mises à la disposition des utilisateurs pour l'entraînement de leurs modèles et l'extraction de caractéristiques grâce aux données dans BigQuery.

cymbal-fraudfinder (project)
|-`tx` (dataset)
  |-`tx` (table: transactions without labels)
  |-`txlabels` (table: transactions with fraud labels (1 or 0))
|-demographics
  |-`customers` (table: profiles of customers)
  |-`terminals` (table: profiles of terminals)
  |-`customersterminals` (table: profiles of customers and terminals within their radius)

Pourquoi en temps réel ?

Dans cet atelier, vous allez apprendre à exploiter des données en temps réel et à pratiquer l'extraction de caractéristiques et l'inférence en temps réel. Avec les fonctionnalités en temps réel, vous pouvez améliorer votre modèle en exploitant des signaux que vous ne pourriez pas utiliser au moment de l'inférence.

Données FraudFinder en direct et sous forme de flux

Dans le cadre de l'atelier FraudFinder, des sujets Pub/Sub publics permettent d'accéder à des transactions de paiement en direct. Ainsi, les utilisateurs peuvent facilement tester les points de terminaison de leurs modèles et diffuser des caractéristiques. Pub/Sub est un service de messagerie asynchrone et évolutif. Vous allez utiliser ces sujets pour diffuser des caractéristiques et effectuer des opérations d'inférence en ligne. Les utilisateurs peuvent également basculer entre des sujets avec des taux de fraude plus ou moins élevés pour afficher la surveillance du modèle. Les sujets Pub/Sub publics suivants sont disponibles :

  • ff-tx
  • ff-txlabels

4. Configurer votre projet et votre instance de notebook

Pour suivre cet atelier, vous aurez besoin d'un projet Google Cloud Platform pour lequel la facturation est activée. Pour créer un projet, suivez ces instructions.

IMPORTANT : Nous vous conseillons de suivre cet atelier dans un nouveau projet. Étant donné que cet atelier aborde de nombreux produits différents, il vous sera plus simple de supprimer l'intégralité du projet une fois l'atelier terminé.

Lorsque votre projet est prêt, veuillez suivre les étapes suivantes (également disponibles dans le fichier README.md du dépôt).

Étape 1 : activez les API

Tout d'abord, accédez au projet que vous venez de créer et ouvrez une session Cloud Shell. Cette étape peut prendre quelques minutes, car elle entraîne le provisionnement d'une nouvelle session Cloud Shell (si aucune n'était déjà activée).

Cloud Shell

Ensuite, copiez et collez le code suivant dans votre session Cloud Shell, puis exécutez-le. Le script active les API nécessaires et crée des abonnements Pub/Sub pour lire les transactions sous forme de flux à partir de sujets Pub/Sub publics. Veuillez patienter jusqu'à l'exécution de toutes les commandes.

gcloud services enable notebooks.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable pubsub.googleapis.com
gcloud services enable run.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable dataflow.googleapis.com
gcloud services enable bigquery.googleapis.com

gcloud pubsub subscriptions create "ff-tx-sub" --topic="ff-tx" --topic-project="cymbal-fraudfinder"
gcloud pubsub subscriptions create "ff-txlabels-sub" --topic="ff-txlabels" --topic-project="cymbal-fraudfinder"

# Run the following command to grant the Compute Engine default service account access to read and write pipeline artifacts in Google Cloud Storage.
PROJECT_ID=$(gcloud config get-value project)
PROJECT_NUM=$(gcloud projects list --filter="$PROJECT_ID" --format="value(PROJECT_NUMBER)")
gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member="serviceAccount:${PROJECT_NUM}-compute@developer.gserviceaccount.com"\
      --role='roles/storage.admin'

Étape 2 : créez une instance Vertex AI Workbench

Accédez à la section Vertex AI de la console Cloud. Ensuite, accédez à Workbench :

Menu Vertex AI

Si l'API Vertex AI Workbench (API pour les notebooks) n'est pas déjà activée, activez-la.

Notebook_api

Lorsque vous avez terminé, sélectionnez USER-MANAGED NOTEBOOKS :

Notebooks_UI

Sélectionnez ensuite NOUVEAU NOTEBOOK. Vous pouvez choisir Python 3.

new_notebook

Attribuez un nom à votre notebook, comme fraudfinder, puis cliquez sur Paramètres avancés.

create_notebook

Important : Veillez à sélectionner Service Account sous Permissions.

Compte de service

Important : Dans la section Sécurité, sélectionnez "Activer le terminal" si ce n'est pas déjà fait.

enable_terminal

Vous pouvez conserver tous les autres paramètres avancés tels quels.

Cliquez ensuite sur Créer. Le provisionnement de l'instance prend quelques minutes.

Une fois l'instance créée, sélectionnez Ouvrir JupyterLab.

open_jupyterlab

Étape 3 : définissez les rôles IAM

Par souci de simplicité, supposons que vous utilisez le compte de service par défaut de Compute Engine. L'utilisation de ce compte est déconseillée pour les charges de travail de production. Il est recommandé de créer des comptes de service pour chaque application et d'éviter l'utilisation de comptes de service par défaut. Pour en savoir plus sur les bonnes pratiques liées aux comptes de service, consultez notre documentation. Le compte de service de calcul par défaut doit ressembler à l'exemple suivant : 123456789123-compute@developer.gserviceaccount.com. Accédez à l'outil d'administration IAM, puis cliquez sur ADD. Dans la vue, recherchez et sélectionnez le compte de service par défaut de Compute Engine, puis attribuez les rôles suivants :

  • BigQuery Admin
  • Storage Admin
  • Storage Object Admin
  • Vertex AI Administrator
  • Pub/Sub Admin

Les paramètres devraient ressembler à ceci : N'oubliez pas d'enregistrer les nouveaux paramètres.

iam-roles.png

Étape 4 : clonez le dépôt GitHub

Une fois que votre instance de notebook est créée et que vous y avez accédé, il est temps de configurer votre environnement. Ouvrez d'abord une fenêtre de terminal.

Ouvrir le terminal

Copiez, collez et exécutez la commande suivante dans le terminal de votre notebook :

git clone https://github.com/GoogleCloudPlatform/fraudfinder.git

L'exécution de cette commande entraîne le clonage du dépôt FraudFinder dans votre instance de notebook. Après avoir exécuté git clone, vous trouverez le dossier FraudFinder dans votre instance de notebook à gauche. Ensuite, accédez au dossier fraudfinder. Vous y trouverez les notebooks nécessaires pour suivre l'atelier.

À partir des sections suivantes, vous devez suivre les instructions fournies dans les notebooks. Veuillez passer à la configuration de l'environnement.

5. Configuration de l'environnement

Cette section vous guide tout au long des étapes de configuration de l'environnement de votre projet. Objectifs d'apprentissage :

  • Configurer votre environnement, y compris vos packages
  • Charger des données dans BigQuery
  • Lire les données des sujets Pub/Sub publics

Veuillez accéder au notebook suivant et suivre les instructions étape par étape :

  • 00_environment_setup.ipynb

6. Analyse exploratoire des données

Dans cette section, vous allez découvrir comment effectuer une analyse exploratoire des données sur les fraudes pour mieux les comprendre. Objectifs d'apprentissage :

  • Extraire et explorer les données de BigQuery à l'aide de SQL
  • Tracer les données sur les transactions à l'aide de BigQuery et Plotly
  • Appliquer des agrégations de données et créer un graphique à nuage de points

Veuillez accéder au notebook suivant et suivre les instructions étape par étape :

  • 01_exploratory_data_analysis.ipynb

7. Extraction de caractéristiques par lot et par flux

Dans cette section, vous allez travailler sur l'extraction de caractéristiques pour générer des fonctionnalités d'entraînement de modèles à partir de données brutes. Vous utiliserez le traitement par lot et par flux. Ces deux cas d'utilisation sont importants à connaître pour détecter les fraudes. Objectifs d'apprentissage :

  • Créer des fonctionnalités à l'aide de BigQuery et SQL
  • Créer un Feature Store Vertex AI et insérer des données
  • Gérer les données par flux et procéder à leur ingestion dans le Feature Store

Veuillez accéder aux deux notebooks suivants dans l'ordre indiqué et suivre les instructions :

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

8. Entraînement, prédiction, formalisation et surveillance de modèles

Dans cette section, vous allez entraîner et déployer votre premier modèle BigQuery pour détecter d'éventuels cas de fraude. Vous apprendrez également à formaliser votre code d'entraînement et de déploiement dans un pipeline automatisé, et découvrirez comment effectuer des prédictions en ligne et surveiller votre modèle en production. Objectifs d'apprentissage :

  • Maîtriser l'entraînement d'un modèle BigQuery ML et son enregistrement sur Vertex AI Model Registry
  • Déployer le modèle en tant que point de terminaison sur Vertex AI
  • Savoir utiliser le SDK Vertex AI
  • Être capable d'exploiter le modèle BigQuery ML pour créer un pipeline de ML de bout en bout
  • Savoir utiliser la surveillance du modèle Vertex AI

Veuillez accéder aux notebooks suivants (disponibles dans le dossier BQML) dans l'ordre indiqué et suivre les instructions. Suivez les instructions étape par étape :

  • 04_model_training_and_prediction.ipynb
  • 05_model_training_pipeline_formalization.ipynb
  • 06_model_monitoring.ipynb
  • 07_model_inference.ipynb
🎉 Congratulations! 🎉

Vous avez appris à créer une architecture "des données à l'IA" sur Google Cloud.

9. Nettoyage

Nous vous recommandons de suivre cet atelier dans un nouveau projet. Étant donné que cet atelier aborde de nombreux produits différents, il vous sera plus simple de supprimer l'intégralité du projet une fois l'atelier terminé. Pour savoir comment supprimer le projet, consultez notre documentation.

Si vous souhaitez supprimer les services, veuillez suivre les instructions fournies dans les notebooks ou supprimer les ressources créées.