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.
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.
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.
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.
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.
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
|
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
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.
Aprende a usar transformadores para extraer y escalar datos, y estimadores para entrenar algoritmos.
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.
Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.