El aprendizaje automático distribuido permite que los ingenieros de AA y los científicos de datos escalen el entrenamiento de modelos de aprendizaje automático (AA) más allá de las limitaciones de memoria y cómputo de una sola máquina. Si distribuyes particiones de datos y paralelizas cargas de trabajo en un clúster de nodos trabajadores, puedes entrenar modelos complejos con conjuntos de datos masivos de forma mucho más rápida.
Apache Spark es el estándar de la industria 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 transferencia de datos a la implementación de modelos en un único entorno unificado.
Una canalización de AA de Spark es una API de alto nivel diseñada para ayudarte a combinar varios flujos de trabajo de aprendizaje automático en una canalización coherente. Te permite encadenar varias transformaciones de datos (como la extracción y el ajuste de atributos) y algoritmos de aprendizaje automático (como el entrenamiento de modelos) dentro de un flujo de trabajo estructurado y declarativo.
Con una canalización, te aseguras de que la misma secuencia de pasos de procesamiento previo de datos se aplique de forma coherente durante el entrenamiento de modelos y la predicción, lo que es fundamental para evitar la filtración de datos y garantizar resultados reproducibles. Los componentes clave de una canalización de Spark ML son los transformadores y los estimadores.
Escalar las cargas de trabajo de AA para aplicar la aceleración de hardware suele introducir el desafío de administrar dependencias complejas de GPU de Spark. El hecho de aprovisionar instancias de VM, instalar los controladores de NVIDIA correctos y garantizar que las versiones de CUDA y cuDNN coincidan con tus bibliotecas de PyTorch o TensorFlow puede detener la productividad de los desarrolladores durante días.
Google Cloud resuelve esto con Managed Service para Apache Spark, que ofrece entornos de ejecución de aprendizaje automático empaquetados previamente. Estos entornos de ejecución, creados con imágenes estables basadas en Ubuntu (a partir de la versión 2.3), vienen preinstalados y preconfigurados con los controladores de GPU exactos (CUDA, cuDNN, NCCL) y los frameworks de AA estándar de la industria (PyTorch, XGBoost, tokenizadores y transformadores) que requieren tus cargas de trabajo. Este entorno sin configuración permite que tu equipo se enfoque 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 en un DataFrame para producir un transformador (por ejemplo, ajustar un algoritmo de regresión logística en datos de entrenamiento para producir un modelo entrenado).
Si usas una canalización de Spark ML, te aseguras de que la lógica de preparación de datos esté estrictamente vinculada a tu modelo. Esto garantiza que los datos de prueba o inferencia se procesen de forma idéntica a los datos de entrenamiento.
Con los entornos de ejecución de AA de Google Cloud en Managed Service para Apache Spark, se elimina la administración de dependencias. Google actualiza continuamente las imágenes personalizadas basadas en Ubuntu, que están 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 AA distribuidos.
Comprender los componentes básicos de Spark MLlib y las herramientas de datos de Google Cloud es esencial para ejecutar el AA distribuido a gran escala.
Componente | Descripción | Caso de uso principal | Consideraciones sobre el precio |
Spark MLlib | La biblioteca de aprendizaje automático escalable de Apache Spark contiene algoritmos de aprendizaje comunes, herramientas de caracterización y utilidades de canalización. | Ejecutar el entrenamiento de modelos de AA a gran escala en un clúster distribuido sin depender de bibliotecas de un solo nodo. | Los costos se generan a través de los servicios subyacentes de Google Cloud que se usan para ejecutar Apache Spark, principalmente Managed Service para Apache Spark. Los precios dependen de los recursos de Compute Engine (CPU virtuales, memoria, GPU, disco) aprovisionados y de la duración de la ejecución del trabajo. * Consulta los precios de Managed Service para Apache Spark. |
Ensamblador de vectores | Un transformador de atributos principal en Spark MLlib que combina varias columnas (números continuos, categorías con codificación one-hot, etcétera) 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 costos de cómputo generales de ejecutar tus cargas de trabajo de Spark en Managed Service para Apache Spark. |
Canalización de Spark ML | Una API de alto nivel compilada a partir de DataFrames que ayuda a los usuarios a encadenar varios pasos y modelos de ingeniería de atributos. | Agrupar transformadores y estimadores en una canalización unificada para garantizar un procesamiento de datos idéntico durante el entrenamiento y la inferencia. | Al igual que otros componentes de Spark MLlib, los costos forman parte de los cargos de ejecución de Managed Service para Apache Spark. |
BigQuery ML | Un servicio que te permite crear y ejecutar modelos de aprendizaje automático en BigQuery con consultas en SQL estándar. | Entrenar modelos directamente donde se encuentran tus datos antes de mover trabajos distribuidos iterativos y altamente complejos a Spark. | BigQuery ML tiene su propio modelo de precios. Se te cobra por lo siguiente:
|
Componente
Descripción
Caso de uso principal
Consideraciones sobre el precio
Spark MLlib
La biblioteca de aprendizaje automático escalable de Apache Spark contiene algoritmos de aprendizaje comunes, herramientas de caracterización y utilidades de canalización.
Ejecutar el entrenamiento de modelos de AA a gran escala en un clúster distribuido sin depender de bibliotecas de un solo nodo.
Los costos se generan a través de los servicios subyacentes de Google Cloud que se usan para ejecutar Apache Spark, principalmente Managed Service para Apache Spark. Los precios dependen de los recursos de Compute Engine (CPU virtuales, memoria, GPU, disco) aprovisionados y de la duración de la ejecución del trabajo.
* Consulta los precios de Managed Service para Apache Spark.
Ensamblador de vectores
Un transformador de atributos principal en Spark MLlib que combina varias columnas (números continuos, categorías con codificación one-hot, etcétera) 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 costos de cómputo generales de ejecutar tus cargas de trabajo de Spark en Managed Service para Apache Spark.
Canalización de Spark ML
Una API de alto nivel compilada a partir de DataFrames que ayuda a los usuarios a encadenar varios pasos y modelos de ingeniería de atributos.
Agrupar transformadores y estimadores en una canalización unificada para garantizar un procesamiento de datos idéntico durante el entrenamiento y la inferencia.
Al igual que otros componentes de Spark MLlib, los costos forman parte de los cargos de ejecución de Managed Service para Apache Spark.
BigQuery ML
Un servicio que te permite crear y ejecutar modelos de aprendizaje automático en BigQuery con consultas en SQL estándar.
Entrenar modelos directamente donde se encuentran tus datos antes de mover trabajos distribuidos iterativos y altamente complejos a Spark.
BigQuery ML tiene su propio modelo de precios. Se te cobra por lo siguiente:
Managed Service para Apache Spark de Google Cloud abstrae las complejidades de la infraestructura, lo que te permite ejecutar tu canalización de AA de Spark para el entrenamiento de modelos a gran escala con entornos sin servidores o clústeres administrados personalizables.
Para eliminar las dependencias de GPU de Spark complejas, el servicio utiliza entornos de ejecución de AA empaquetados previamente y completamente equipados con controladores de NVIDIA, kits de herramientas de CUDA y frameworks distribuidos compatibles de forma nativa, lo que te brinda una ruta sin configuración para implementar cargas de trabajo aceleradas por hardware.
Aprende a usar transformadores para extraer y escalar datos, y estimadores para entrenar algoritmos.
Inicia clústeres de Spark acelerados por GPU sin administrar la infraestructura subyacente. Los entornos de ejecución de AA de Google Cloud vienen preconfigurados para que puedas omitir las dependencias complejas de GPU de Spark.
Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.