Crear un flujo de procesamiento de aprendizaje automático de Apache Spark

Acelera tu proceso de aprendizaje automático distribuido creando un flujo de procesamiento de ML de Spark con entornos de ejecución sin configuración en Google Cloud.

¿Qué es el aprendizaje automático distribuido?

El aprendizaje automático distribuido permite a los científicos de datos y a los ingenieros de aprendizaje automático (ML) escalar el entrenamiento de modelos de aprendizaje automático más allá de las limitaciones de memoria y computación de una sola máquina. Al distribuir las particiones de datos y paralelizar las cargas de trabajo en un clúster de nodos de trabajo, puedes entrenar modelos complejos en conjuntos de datos masivos de forma significativamente más rápida.

¿Por qué usar Apache Spark?

Apache Spark es el estándar del sector para el procesamiento de datos distribuidos. Su biblioteca de aprendizaje automático nativa, MLlib, proporciona algoritmos distribuidos para la clasificación, la regresión, el agrupamiento en clústeres y el filtrado colaborativo, lo que te permite pasar de la ingestión de datos al despliegue de modelos en un único entorno unificado.

¿Qué es un flujo de procesamiento de ML de Spark?

Un flujo de procesamiento de ML de Spark es una API de alto nivel diseñada para ayudarte a combinar varios flujos de trabajo de aprendizaje automático en un flujo de procesamiento cohesionado. Te permite encadenar varias transformaciones de datos (como la extracción y el escalado de características) y algoritmos de aprendizaje automático (como el entrenamiento de modelos) en un flujo de trabajo estructurado y declarativo.


Al usar un flujo de procesamiento, te aseguras de que se aplique la misma secuencia de pasos de preprocesamiento de datos de forma coherente tanto durante el entrenamiento del modelo como durante la predicción, lo que es crucial para evitar la filtración de datos y garantizar resultados reproducibles. Los componentes clave de un flujo de procesamiento de ML de Spark son los transformadores y los estimadores.

¿Por qué elegir Google Cloud para tu transición a ML de Spark?

Escalar las cargas de trabajo de ML para aplicar la aceleración por hardware suele suponer un reto a la hora de gestionar las complejas dependencias de las GPUs de Spark. Aprovisionar instancias de máquinas virtuales, instalar los controladores de NVIDIA adecuados y asegurarse de que las versiones de CUDA y cuDNN coincidan con las bibliotecas de PyTorch o TensorFlow puede mermar la productividad de los desarrolladores durante días.


Google Cloud soluciona este problema con Managed Service for Apache Spark, que ofrece entornos de ejecución de aprendizaje automático preempaquetados. Estos entornos de ejecución, que se basan en imágenes estables de Ubuntu (a partir de la versión 2.3), vienen preinstalados y preconfigurados con los controladores de GPU (CUDA, cuDNN y NCCL) y los frameworks de aprendizaje automático estándar del sector (PyTorch, XGBoost, tokenizadores y transformadores) que necesitan tus cargas de trabajo. Este entorno sin configuración permite que tu equipo se centre en escribir código en lugar de configurar la infraestructura.

Preguntas frecuentes

En Spark MLlib, un transformador es un algoritmo que transforma un DataFrame en otro (por ejemplo, convierte texto en vectores numéricos). Un estimador es un algoritmo que se puede ajustar a un DataFrame para producir un transformador (por ejemplo, ajustar un algoritmo de regresión logística a los datos de entrenamiento para producir un modelo entrenado).

Al confiar en un flujo de procesamiento de ML de Spark, te aseguras de que la lógica de preparación de datos esté estrictamente vinculada a tu modelo. De esta forma, se garantiza que los datos de prueba o de inferencia se procesen de la misma forma que los datos de entrenamiento.

Con los entornos de ejecución de ML de Google Cloud en Managed Service for Apache Spark, la gestión de dependencias se descarga. Google actualiza continuamente las imágenes personalizadas basadas en Ubuntu, que vienen preempaquetadas con las versiones correctas y compatibles de forma nativa de los controladores de NVIDIA, los kits de herramientas de CUDA y los frameworks de ML distribuido.

Componentes de Spark MLlib y herramientas de datos de Google Cloud

Para ejecutar el ML distribuido a escala, es fundamental conocer los componentes básicos de Spark MLlib y las herramientas de datos de Google Cloud.

Componente

Descripción

Caso práctico principal


Consideraciones sobre los precios

Spark MLlib

Biblioteca escalable de aprendizaje automático de Apache Spark que contiene algoritmos de aprendizaje comunes, herramientas de caracterización y utilidades de flujos de procesamiento.

Ejecutar un entrenamiento de modelos de ML a gran escala en un clúster distribuido sin depender de bibliotecas de un solo nodo.


Los costes se generan a través de los servicios de Google Cloud subyacentes que se utilizan para ejecutar Apache Spark, principalmente Managed Service for Apache Spark. Los precios dependen de los recursos de Compute Engine (vCPUs, memoria, GPUs y disco) aprovisionados y de la duración de la tarea.


* Consulta los precios de Managed Service for Apache Spark.

Ensamblador de vectores

Un transformador de características principal en Spark MLlib que combina varias columnas (números continuos, categorías codificadas en one-hot, etc.) en una sola columna de vectores.

Preparar datos tabulares sin procesar en el formato de vector denso o disperso específico que esperan los algoritmos de aprendizaje automático de Spark MLlib.

Como componente de Spark MLlib, su ejecución contribuye a los costes generales de computación de ejecutar tus cargas de trabajo de Spark en Managed Service for Apache Spark.

Flujo de procesamiento de ML de Spark

Una API de alto nivel basada en DataFrames que ayuda a los usuarios a encadenar varios pasos y modelos de ingeniería de funciones.

Agrupar transformadores y estimadores en un flujo de procesamiento unificado para garantizar un procesamiento de datos idéntico durante el entrenamiento y la inferencia.

Al igual que con otros componentes de Spark MLlib, los costes forman parte de los cargos de ejecución de Managed Service for Apache Spark.

BigQuery ML


Servicio que te permite crear y ejecutar modelos de aprendizaje automático en BigQuery mediante consultas de SQL estándar.

Entrenar modelos directamente donde se encuentran tus datos antes de transferir tareas distribuidas iterativas y muy complejas a Spark.


BigQuery ML tiene su propio modelo de precios. Se te cobra por

  1. Entrenamiento de modelos (basado en los datos procesados durante las consultas CREATE MODEL)
  2. Predicción de modelos (precios de consulta estándar de BigQuery)
  3. Almacenamiento de modelos (se factura según las tarifas de almacenamiento estándar de BigQuery).

Componente

Descripción

Caso práctico principal


Consideraciones sobre los precios

Spark MLlib

Biblioteca escalable de aprendizaje automático de Apache Spark que contiene algoritmos de aprendizaje comunes, herramientas de caracterización y utilidades de flujos de procesamiento.

Ejecutar un entrenamiento de modelos de ML a gran escala en un clúster distribuido sin depender de bibliotecas de un solo nodo.


Los costes se generan a través de los servicios de Google Cloud subyacentes que se utilizan para ejecutar Apache Spark, principalmente Managed Service for Apache Spark. Los precios dependen de los recursos de Compute Engine (vCPUs, memoria, GPUs y disco) aprovisionados y de la duración de la tarea.


* Consulta los precios de Managed Service for Apache Spark.

Ensamblador de vectores

Un transformador de características principal en Spark MLlib que combina varias columnas (números continuos, categorías codificadas en one-hot, etc.) en una sola columna de vectores.

Preparar datos tabulares sin procesar en el formato de vector denso o disperso específico que esperan los algoritmos de aprendizaje automático de Spark MLlib.

Como componente de Spark MLlib, su ejecución contribuye a los costes generales de computación de ejecutar tus cargas de trabajo de Spark en Managed Service for Apache Spark.

Flujo de procesamiento de ML de Spark

Una API de alto nivel basada en DataFrames que ayuda a los usuarios a encadenar varios pasos y modelos de ingeniería de funciones.

Agrupar transformadores y estimadores en un flujo de procesamiento unificado para garantizar un procesamiento de datos idéntico durante el entrenamiento y la inferencia.

Al igual que con otros componentes de Spark MLlib, los costes forman parte de los cargos de ejecución de Managed Service for Apache Spark.

BigQuery ML


Servicio que te permite crear y ejecutar modelos de aprendizaje automático en BigQuery mediante consultas de SQL estándar.

Entrenar modelos directamente donde se encuentran tus datos antes de transferir tareas distribuidas iterativas y muy complejas a Spark.


BigQuery ML tiene su propio modelo de precios. Se te cobra por

  1. Entrenamiento de modelos (basado en los datos procesados durante las consultas CREATE MODEL)
  2. Predicción de modelos (precios de consulta estándar de BigQuery)
  3. Almacenamiento de modelos (se factura según las tarifas de almacenamiento estándar de BigQuery).

Cómo funciona

Managed Service for Apache Spark de Google Cloud abstrae las complejidades de la infraestructura, lo que te permite ejecutar tu flujo de procesamiento de ML de Spark para entrenar modelos a gran escala mediante entornos sin servidor o clústeres gestionados personalizables.


Para eliminar las difíciles dependencias de las GPUs de Spark, el servicio utiliza entornos de ejecución de ML preempaquetados y totalmente equipados con controladores de NVIDIA, kits de herramientas de CUDA y frameworks distribuidos compatibles de forma nativa, lo que te permite desplegar cargas de trabajo aceleradas por hardware sin necesidad de configuración.

Más información sobre el aprendizaje automático con Spark

Casos prácticos habituales

Crea un flujo de trabajo de ingeniería de funciones resiliente

Aprende a usar transformadores para extraer y escalar datos, y estimadores para entrenar algoritmos.

Guías prácticas

  • Crear un flujo de procesamiento de Spark ML: para obtener directrices generales sobre cómo usar Spark en Google Cloud, consulta la documentación de Managed Service for Apache Spark.
  • Estimadores de flujos de procesamiento en PySpark: consulta los ejemplos de la API de Python que se proporcionan en la documentación de Managed Service for Apache Spark. Estas muestras incluyen patrones para usar componentes de Spark MLlib. También puedes encontrar ejemplos de Spark ML en guías como la documentación sobre cómo conectar GPUs a clústeres.

Recursos adicionales

Despliega entornos de ejecución de ML sin configuración

Lanza clústeres de Spark acelerados por GPU sin gestionar la infraestructura subyacente. Los entornos de ejecución de aprendizaje automático de Google Cloud vienen preconfigurados para que puedas evitar las complejas dependencias de GPU de Spark.

Guías prácticas

  • Descripción general de los entornos de ejecución de aprendizaje automático de Managed Service for Apache Spark: consulta más información sobre las versiones de imágenes de entornos de ejecución de Managed Service for Apache Spark, que detallan las bibliotecas preinstaladas, como TensorFlow, PyTorch y XGBoost, junto con las bibliotecas específicas de GPU.


Recursos adicionales

  • Aprendizaje profundo distribuido en Google Cloud: para obtener una perspectiva arquitectónica más amplia sobre el escalado del aprendizaje automático, consulta la documentación sobre prácticas recomendadas para implementar el aprendizaje automático. En este documento se ofrecen recomendaciones para desarrollar modelos entrenados de forma personalizada, como el entrenamiento distribuido y el uso de aceleradores en Google Cloud, integrados con el registro de modelos de Gemini Enterprise Agent Platform.

Empieza tu prueba de concepto

Ve un paso más allá

Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.

Google Cloud