1. Descripción general
En este lab, aprenderás a crear un sistema de datos a IA de extremo a extremo para la detección de fraudes en tiempo real en Google Cloud. El objetivo es comprender cómo pasar de los datos sin procesar a una canalización del AA lista para la producción que se ejecuta en Google Cloud. En este lab, se usan los siguientes productos de Google Cloud:
Qué aprenderás
Crear canalizaciones del AA de extremo a extremo puede ser un proceso desafiante. En este lab, aprenderás a crear y escalar canalizaciones del AA de extremo a extremo mediante los servicios de Google Cloud como BigQuery y Vertex AI. Te llevaremos por un viaje en el que descubrirás cómo pasar los datos sin procesar a una IA en producción. Los objetivos de aprendizaje de alto nivel son los siguientes:
- Aprender las prácticas recomendadas para crear sistemas de datos a IA en Google Cloud
- Aprender a realizar la ingeniería de atributos con BigQuery mediante SQL (para el procesamiento por lotes) y Apache Beam con Dataflow (procesamiento en tiempo real), y usar Vertex AI Feature Store
- Cómo realizar análisis de datos mediante las bibliotecas de BigQuery y Python, como Pandas y Plotly
- Cómo entrenar un modelo de AA con BigQuery ML mediante SQL
- Cómo aprovechar Vertex AI para almacenar, implementar y supervisar tu modelo
- Cómo usar Vertex AI Pipelines para formalizar tu flujo de trabajo de datos a IA
IMPORTANTE: El costo de la ejecución de este lab en Google Cloud es de aproximadamente $100.
2. De los datos sin procesar a la IA con Vertex AI y BigQuery
En este lab, se abarcan los productos más recientes de IA y análisis de datos disponibles en Google Cloud, como Vertex AI y BigQuery ML. Vertex AI y BigQuery te permiten pasar de los datos sin procesar a la IA fácilmente, y te ofrecen una experiencia de desarrollo sin complicaciones que te ayudará a potenciar tu productividad cuando pongas tus modelos en producción. Si necesitas ayuda, consulta la página de asistencia.
Vertex AI incluye muchos productos distintos para respaldar flujos de trabajo de datos a IA de extremo a extremo. Aquí tienes una descripción general de todas las capacidades de Vertex AI:
3. Caso de uso y datos de FraudFinder
FraudFinder consiste en una serie de notebooks que enseñan el recorrido completo de los datos a la IA en Google Cloud mediante un caso de uso relacionado con la detección de fraudes en tiempo real. Con estos notebooks, aprenderás a leer datos históricos de transacciones de pagos almacenados en un almacén de datos, a leer desde un flujo en tiempo real de transacciones nuevas, a realizar análisis exploratorios de datos (EDA), a poner en marcha la ingeniería de atributos, a transferir atributos a un Feature Store, a entrenar un modelo mediante Feature Store, a registrar tu modelo en un registro de modelos, a evaluar el modelo y a implementarlo en un extremo, a realizar inferencias en tiempo real sobre tu modelo con Feature Store y a supervisarlo.
La detección de fraudes incluye la clasificación y la detección de anomalías, dos campos muy amplios dentro del aprendizaje automático. Por eso se constituye como un buen caso de uso aplicado a una historia real fácil de comprender y con potencial para demostrar una arquitectura de datos a IA de extremo a extremo en Google Cloud. No es necesario que tengas experiencia en fraudes para comprender la arquitectura de extremo a extremo. El patrón de la arquitectura se puede aplicar a otros casos de uso.
Aquí tienes una descripción general sobre la arquitectura de FraudFinder:
Conjunto de datos
El conjunto de datos se sintetiza mediante el código que se extrae del Manual de proyectos de Kaggle relacionado con el uso del aprendizaje automático para la detección de fraudes de tarjetas de crédito. A nivel de la arquitectura, la detección de fraudes en tiempo real es diferente de la detección de fraudes basada en lotes y tiene las siguientes características:
- Alta frecuencia (p. ej., 1,000 por segundo) de solicitudes de predicción
- Baja latencia (p. ej., menos de 1 s) de solicitudes de predicción → respuesta
- La predicción suele ser de 1 muestra por solicitud de predicción o en “microlotes” (p. ej., 1,000 transacciones enviadas como un lote para realizar inferencias casi en tiempo real)
- La entrega de ingeniería de atributos por deriva se debe procesar con anticipación o en tiempo real
Conjunto de datos histórico de FraudFinder
Existen tablas públicas de BigQuery con transacciones de pagos históricas para que los usuarios entrenen sus modelos y practiquen la ingeniería de atributos con datos en 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)
¿Por qué en tiempo real?
En este lab, aprenderás a aprovechar los datos en tiempo real y a aplicar ingeniería de atributos e inferencias en tiempo real. Las funciones en tiempo real pueden ayudar a tu modelo a mejorar aprovechando los indicadores que no hubieras podido usar durante la inferencia.
Transmisión de datos en vivo de FraudFinder
Dentro del lab de FraudFinder, se incluyen temas públicos de Pub/Sub con un flujo en tiempo real de transacciones de pagos para que los usuarios puedan probar los extremos de sus modelos y sus funciones de transmisión de forma conveniente. Pub/Sub es un servicio de mensajería escalable y asíncrono. Usarás estos temas para transmitir funciones y realizar inferencias en línea. Los usuarios también pueden alternar entre temas con un porcentaje de fraude bajo un modelo de referencia y otros más elevados para visualizar la supervisión de modelos. Están disponibles los siguientes temas públicos de Pub/Sub:
ff-tx
ff-txlabels
4. Configura tu instancia de proyecto y de notebook
Para ejecutar este lab, necesitarás un proyecto de Google Cloud Platform que tenga habilitada la facturación. Sigue las instrucciones para crear un proyecto.
IMPORTANTE: Te recomendamos ejecutar este lab en un proyecto nuevo. En este lab, descubrirás muchos productos diferentes, por lo que es más fácil borrar todo el proyecto luego de terminar el lab.
Cuando tengas listo el proyecto, sigue estos pasos que, además, encontrarás en el archivo README.md del repositorio.
Paso 1: Habilita las APIs
Primero, ve al proyecto que acabas de crear y abre Cloud Shell. Este paso puede demorar unos minutos porque aprovisionará un entorno de Cloud Shell nuevo, si es que no lo habilitaste antes.
Luego, copia y pega este código en Cloud Shell para ejecutarlo. La secuencia de comandos habilitará las APIs necesarias y creará suscripciones a Pub/Sub para leer transacciones de transmisión desde temas públicos de Pub/Sub. Debes esperar un tiempo para que se ejecuten todos los comandos.
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'
Paso 2: Crea una instancia de Vertex AI Workbench
Navega hasta la sección de Vertex AI en la consola de Cloud. Luego, ve a Workbench de la siguiente forma:
Habilita la API de Vertex AI Workbench (API de notebook) si no está habilitada.
Después de habilitarla, selecciona NOTEBOOKS ADMINISTRADOS POR EL USUARIO (USER-MANAGED NOTEBOOKS):
Luego, selecciona NUEVO NOTEBOOK (NEW NOTEBOOK). Puedes elegir Python 3.
Asígnale un nombre al notebook, como fraudfinder
y, luego, haz clic en Configuración avanzada (Advanced settings).
Importante: Asegúrate de seleccionar Service Account
en Permissions
.
Importante: En Seguridad (Security), selecciona la opción “Habilitar terminal” (Enable terminal) si aún no está habilitada.
Puedes dejar el resto de la configuración avanzada tal como está.
Luego, haz clic en Crear. La instancia tardará algunos minutos en aprovisionarse.
Una vez que se crea la instancia, selecciona Abrir JupyterLab (Open JupyterLab).
Paso 3: Define los roles de IAM
Para simplificar, imagina que usarás la cuenta de servicio predeterminada de Compute Engine. Aunque esta no es la práctica recomendada para las cargas de trabajo de producción. Recomendamos crear una cuenta de servicio exclusiva para cada aplicación y evitar el uso de cuentas de servicio predeterminadas. Obtén más información sobre las prácticas recomendadas relacionadas con la cuenta de servicio en nuestra documentación. La cuenta de servicio predeterminada para el procesamiento tendrá una apariencia similar a la siguiente: 123456789123-compute@developer.gserviceaccount.com
. Ve al Administrador de IAM y haz clic en ADD
. En la vista, busca y selecciona la cuenta de servicio predeterminada de Compute Engine y, luego, asigna los siguientes roles:
BigQuery Admin
Storage Admin
Storage Object Admin
Vertex AI Administrator
Pub/Sub Admin
Se debería ver de forma similar a lo siguiente: No olvides guardar los cambios de la nueva configuración.
Paso 4: Clona el repositorio de GitHub
Luego de que hayas creado la instancia de notebook y accedido a ella, debes configurar tu entorno. Primero, abre una ventana de terminal.
Copia, pega y ejecuta el siguiente comando en la terminal de tu notebook:
git clone https://github.com/GoogleCloudPlatform/fraudfinder.git
Cuando ejecutes este comando, se clonará el repositorio de FraudFinder en tu instancia de notebook. Después de ejecutar git clone
, encontrarás la carpeta de fraudfinder en tu instancia de notebook a la izquierda. Ahora navega a la carpeta fraudfinder
. Aquí encontrarás los notebooks necesarios para el lab.
A partir de las siguientes secciones, se espera que sigas las instrucciones de los notebooks. Sigue con la configuración del entorno.
5. Configuración del entorno
En esta sección, encontrarás los pasos que te ayudarán a configurar el entorno de tu proyecto, además, aprenderás los siguientes objetivos de aprendizaje:
- Configurar tu entorno, incluidos los paquetes
- Cargar datos en BigQuery
- Leer datos de los temas públicos de Pub/Sub
Sigue las instrucciones paso a paso del siguiente notebook:
00_environment_setup.ipynb
6. Análisis de datos exploratorio
En esta sección, aprenderás a realizar análisis de datos exploratorios para comprender mejor los datos fraudulentos. En esta sección, aprenderás los siguientes objetivos de aprendizaje:
- Extraer y explorar datos de BigQuery mediante SQL
- Marcar datos de transacciones mediante BigQuery y Plotly
- Aplicar agregaciones de datos y crear un diagrama de dispersión
Continúa con el próximo notebook y sigue las instrucciones paso a paso:
01_exploratory_data_analysis.ipynb
7. Ingeniería de atributos por lotes y transmisión
En esta sección, trabajarás en la ingeniería de atributos para generar funciones que te permitan entrenar modelos con los datos sin procesar. Usaremos las transmisiones y los lotes. Ambos casos de uso son importantes para la detección de fraudes. En esta sección, aprenderás los siguientes objetivos de aprendizaje:
- Cómo crear funciones con BigQuery y SQL
- Insertar datos y crear un Feature Store de Vertex AI
- Cómo tratar los datos de transmisión y transferirlos al Feature Store
Consulta los siguientes dos notebooks, en este orden, y sigue las instrucciones que aparecen en ellos:
02_feature_engineering_batch.ipynb
03_feature_engineering_streaming.ipynb
8. Entrenamiento de modelos, predicción, formalización y supervisión
En esta sección, entrenarás y, luego, implementarás tu primer modelo de BigQuery para detectar posibles casos de fraude. También aprenderás a tomar tu código de implementación y entrenamiento, y lo formalizarás en una canalización automatizada. Además, aprenderás a realizar predicciones en línea y a supervisar tu modelo en producción. En esta sección, aprenderás los siguientes objetivos de aprendizaje:
- Cómo entrenar un modelo de AA de BigQuery y registrarlo en Vertex AI Model Registry
- Implementar el modelo como un extremo en Vertex AI
- Cómo usar el SDK de Vertex AI
- Cómo puedes tomar el modelo de AA de BigQuery y crear una canalización de AA de extremo a extremo
- Cómo usar la supervisión de modelos de Vertex AI
Consulta los siguientes notebooks, en este orden, y sigue las instrucciones que aparecen en ellos: Encontrarás los notebooks en la carpeta BQML. Sigue los procesos de los notebooks paso a paso:
04_model_training_and_prediction.ipynb
05_model_training_pipeline_formalization.ipynb
06_model_monitoring.ipynb
07_model_inference.ipynb
🎉 Congratulations! 🎉
Aprendiste a crear una arquitectura de datos a IA en Google Cloud.
9. Realiza una limpieza
Te recomendamos ejecutar este lab en un proyecto nuevo. En este lab, descubrirás muchos productos diferentes, por lo que es más fácil borrar todo el proyecto luego de terminar el lab. En nuestra documentación puedes encontrar más información para borrar el proyecto.
Si, en su lugar, quieres borrar los servicios, sigue las instrucciones de los notebooks o borra los recursos que creaste.