Share via


Machine Learning con Apache Spark

Apache Spark en Azure Synapse Analytics permite el aprendizaje automático con macrodatos, lo que proporciona la capacidad de obtener información valiosa de grandes cantidades de datos estructurados y no estructurados, y en rápido movimiento.

En esta sección se incluye información general y tutoriales para flujos de trabajo de aprendizaje automático, incluido el análisis de datos exploratorio, la ingeniería de características, el entrenamiento de modelos, la puntuación de modelos y la implementación.

Tiempo de ejecución de Synapse

El tiempo de ejecución de Synapse es un entorno mantenido y optimizado para la ciencia de datos y el aprendizaje automático. El tiempo de ejecución de Synapse ofrece una variedad de bibliotecas de código abierto conocidas y compilaciones en el SDK de Azure Machine Learning de forma predeterminada. Asimismo, el tiempo de ejecución de Synapse también incluye gran variedad bibliotecas externas, como PyTorch, Scikit-Learn, XGBoost, etc.

Para obtener más información sobre las bibliotecas disponibles y sus versiones relacionadas, consulte el artículo publicado Tiempo de ejecución de Azure Synapse Analytics.

Análisis de datos exploratorios

Al usar Apache Spark en Azure Synapse Analytics, existen varias opciones integradas que le permitirán visualizar los datos, incluidas las opciones de gráfico del cuaderno de Synapse, el acceso a bibliotecas populares de código abierto como Seaborn y Matplotlib, y la integración con Synapse SQL y Power BI.

Para obtener más información sobre las opciones de visualización de datos y análisis de datos, consulte el artículo sobre cómo visualizar datos mediante Azure Synapse notebooks.

Ingeniería de características

De forma predeterminada, el tiempo de ejecución de Synapse incluye un conjunto de bibliotecas que se suelen usar para el diseño de características. Si trabaja con conjuntos de datos grandes, puede usar Spark SQL, MLlib y Koalas para la ingeniería de características. En el caso de conjuntos de datos más pequeños, las bibliotecas de terceros como NumPy, Pandas y Scikit-learn también proporcionan métodos útiles en estos escenarios.

Entrenamiento de modelos

Existen varias opciones al entrenar modelos de aprendizaje automático con Azure Spark en Azure Synapse Analytics: Apache Spark MLlib, Azure Machine Learning y otras bibliotecas de código abierto.

Para obtener más información sobre las funcionalidades de aprendizaje automático, consulte el artículo sobre cómo entrenar modelos en Azure Synapse Analytics.

SparkML y MLlib

Las capacidades de cálculo distribuido en memoria de Spark lo convierten en una buena opción para algoritmos iterativos en los cálculos de gráficos y aprendizaje automático. spark.ml proporciona un conjunto uniforme de API de alto nivel que ayudan a los usuarios a crear y optimizar canalizaciones de aprendizaje automático. Para obtener más información acerca de spark.ml, puede consultar la guía de programación de Apache Spark ML.

ML automatizado de Azure Machine Learning (en desuso)

ML automatizado de Azure Machine Learning (aprendizaje automático automatizado) le permite automatizar el proceso de desarrollo de modelos de Machine Learning. Permite que los desarrolladores, analistas y científicos de datos creen modelos de aprendizaje automático con un escalado, eficiencia y productividad altos, al mismo tiempo que mantiene la calidad del modelo. Los componentes para ejecutar el SDK de ML automatizado de Azure Machine Learning se compilan directamente en el tiempo de ejecución de Synapse.

Advertencia

  • A partir del 29 de septiembre de 2023, Azure Synapse interrumpirá el soporte técnico oficial con los entornos de ejecución de Spark 2.4. Después del 29 de septiembre de 2023, no solucionaremos ninguna incidencia de soporte técnico relacionada con Spark 2.4. No habrá ninguna canalización de versión en vigor para las correcciones de errores o de seguridad para Spark 2.4. El uso de Spark 2.4 después de la fecha límite de soporte técnico se lleva a cabo a riesgo propio. Se desaconseja encarecidamente continuar el uso debido a posibles problemas de seguridad y funcionalidad.
  • Como parte del proceso de desuso de Apache Spark 2.4, nos gustaría notificarle que AutoML en Azure Synapse Analytics también quedará en desuso. Esto incluye tanto la interfaz de código bajo como las API que se usan para crear pruebas de AutoML mediante código.
  • Tenga en cuenta que la funcionalidad de AutoML estaba disponible exclusivamente mediante el entorno de ejecución de Spark 2.4.
  • Para los clientes que quieran seguir aprovechando las funcionalidades de AutoML, se recomienda guardar los datos en su cuenta de Azure Data Lake Storage Gen2 (ADLSg2). Desde allí, se puede acceder sin problemas a la experiencia de AutoML mediante Azure Machine Learning (AzureML). Encontrará más información sobre esta solución alternativa aquí.

Bibliotecas de código abierto

Cada grupo de Apache Spark de Azure Synapse Analytics incluye un conjunto de bibliotecas de aprendizaje automático conocidas y precargadas. Algunas de las bibliotecas de aprendizaje automático relevantes que se incluyen de forma predeterminada son las siguientes:

  • Scikit-learn es una de las bibliotecas de aprendizaje automático de nodo único más populares para algoritmos de Machine Learning clásicos. Scikit-learn admite la mayoría de los algoritmos de aprendizaje supervisados y no supervisados y también se puede usar para la minería y el análisis de datos.

  • XGBoost es una conocida biblioteca de aprendizaje automático que contiene algoritmos optimizados para el entrenamiento de árboles de decisión y bosques aleatorios.

  • PyTorch y TensorFlow son bibliotecas de aprendizaje profundo de Python eficaces. En los grupos de Apache Spark de Azure Synapse Analytics, estas bibliotecas se pueden usar para compilar modelos de máquina única estableciendo el número de ejecutores del grupo en cero. Aunque Apache Spark no funciona con esta configuración, es una manera sencilla y rentable de crear modelos de máquina única.

Seguimiento del desarrollo de modelos

MLflow es una biblioteca de código abierto para administrar el ciclo de vida de los experimentos de aprendizaje automático. MLFlow Tracking es un componente de MLflow que registra las métricas de ejecución de entrenamiento y los artefactos de modelo y realiza un seguimiento de ellos. Para obtener más información sobre cómo puede usar el seguimiento de MLFlow a través de Azure Synapse Analytics y Azure Machine Learning, consulte este tutorial sobre cómo usar MLFlow.

Puntuación del modelo

La puntuación del modelo o la inferencia, es la fase en la que un modelo se usa para hacer predicciones. Para usar la puntuación del modelo con SparkML o MLLib, puede aprovechar los métodos de Spark nativos para realizar la inferencia directamente en una instancia de DataFrame de Spark. En cuanto a otras bibliotecas y tipos de modelo, puede crear una función definida por el usuario de Spark para escalar horizontalmente la inferencia en grandes conjuntos de datos. En el caso de conjuntos de datos más pequeños, también puede usar los métodos de inferencia de modelos nativos que proporciona la biblioteca.

Registrar y servir modelos

Al registrar un modelo, podrá almacenar, editar y realizar un seguimiento de los metadatos correspondientes a los modelos de su área de trabajo. Una vez que haya terminado de entrenar el modelo, puede registrarlo en el registro del modelo de Azure Machine Learning. Una vez registrados, los modelos de ONNX también se pueden usar para enriquecer los datos almacenados en grupos de SQL dedicados.

Pasos siguientes

Para empezar a trabajar con el aprendizaje automático en Azure Synapse Analytics, asegúrese de consultar los siguientes tutoriales: