¿Qué es SynapseML?
SynapseML (anteriormente conocido como MMLSpark) es una biblioteca de código abierto que simplifica la creación de canalizaciones de aprendizaje automático (ML) escalables de forma masiva. SynapseML proporciona API sencillas, que admiten composición y distribuidas para una amplia variedad de tareas de aprendizaje automático diferentes, como análisis de texto, visión, detección de anomalías y muchas otras. SynapseML se basa en el marco de computación distribuida Apache Spark y comparte la misma API que la biblioteca SparkML/MLLib, lo que le permite insertar sin problemas modelos de SynapseML en flujos de trabajo de Apache Spark existentes.
Con SynapseML, puede crear sistemas escalables e inteligentes para resolver desafíos en dominios como detección de anomalías, visión artificial, aprendizaje profundo, análisis de texto y otros. SynapseML puede entrenar y evaluar modelos en clústeres de equipos de un solo nodo, de varios nodos y de tamaño elástico. Esto le permite escalar el trabajo sin desperdiciar recursos. SynapseML se puede usar en Python, R, Scala, Java y .NET. Además, su API tiene abstracciones para una amplia variedad de bases de datos, sistemas de archivos y almacenes de datos en la nube para simplificar los experimentos independientemente de dónde se encuentren los datos.
SynapseML requiere Scala 2.12, Spark 3.0+ y Python 3.6+.
Características principales de SynapseML
Una API unificada para crear, entrenar y puntuar modelos
SynapseML ofrece una API unificada que simplifica el desarrollo de programas distribuidos tolerantes a errores. Específicamente, SynapseML expone muchos marcos de aprendizaje automático diferentes en una sola API que es escalable, independiente de los datos y del lenguaje, y funciona para aplicaciones por lotes, de streaming y de servicio.
Una API unificada estandariza muchas herramientas, marcos y algoritmos, y simplifica la experiencia del aprendizaje automático distribuido. Permite a los desarrolladores crear rápidamente marcos de aprendizaje automático dispares, mantener el código limpio y habilitar flujos de trabajo que requieren más de un marco. Por ejemplo, los flujos de trabajo como el aprendizaje supervisado por web o la creación de motores de búsqueda requieren varios servicios y marcos. SynapseML evita a los usuarios esta complejidad adicional.
Uso de modelos inteligentes creados previamente
Muchas herramientas de SynapseML no requieren un gran conjunto de datos de entrenamiento con etiquetas. En su lugar, SynapseML proporciona API sencillas para servicios inteligentes creados previamente, como los servicios de Azure AI, para resolver rápidamente los desafíos de inteligencia artificial a gran escala relacionados con la empresa y la investigación. SynapseML permite a los desarrolladores insertar más de 50 servicios de ML de última generación directamente en sus sistemas y bases de datos. Estos algoritmos listos para usar pueden analizar una amplia variedad de documentos, transcribir conversaciones de varios hablantes en tiempo real y traducir texto a más de 100 idiomas diferentes. Para obtener más ejemplos de cómo usar la inteligencia artificial creada previamente para resolver tareas rápidamente, consulte los ejemplos de “cognitivos” de SynapseML.
Para que la integración de SynapseML con los servicios de Azure AI sea rápida y eficaz, SynapseML presenta muchas optimizaciones para flujos de trabajo orientados a servicios. Específicamente, SynapseML analiza automáticamente las respuestas comunes de limitación para asegurarse de que los trabajos no sobrecarguen los servicios de back-end. Además, usa retrocesos exponenciales para controlar las conexiones de red no confiables y las respuestas con errores. Por último, las máquinas de trabajo de Spark permanecen ocupadas con nuevas primitivas de paralelismo asincrónico para Spark. El paralelismo asincrónico permite que las máquinas de trabajo envíen solicitudes mientras esperan una respuesta del servidor y pueden multiplicar por diez el rendimiento.
Amplia compatibilidad del ecosistema con ONNX
SynapseML permite a los desarrolladores usar modelos de muchos ecosistemas de ML diferentes mediante el marco Open Neural Network Exchange (ONNX). Con esta integración, puede ejecutar una amplia variedad de modelos de aprendizaje clásico y profundo a gran escala con solo unas pocas líneas de código. SynapseML controla automáticamente la distribución de modelos de ONNX a los nodos de trabajo, el procesamiento por lotes y el almacenamiento en búfer de los datos de entrada para logar un alto rendimiento, y la programación de los trabajos en aceleradores de hardware.
La incorporación de ONNX a Spark no solo ayuda a los desarrolladores a escalar los modelos de aprendizaje profundo, sino que también permite la inferencia distribuida en una amplia variedad de ecosistemas de aprendizaje automático. Específicamente, ONNXMLTools convierte modelos de TensorFlow, scikit-learn, Core ML, LightGBM, XGBoost, H2O y PyTorch a ONNX para la inferencia acelerada y distribuida mediante SynapseML.
Creación de sistemas de inteligencia artificial responsable
Después de crear un modelo, es imperativo que los investigadores e ingenieros comprendan sus limitaciones y su comportamiento antes de la implementación. SynapseML ayuda a los desarrolladores e investigadores a crear sistemas de inteligencia artificial responsable mediante la introducción de nuevas herramientas que revelan por qué los modelos realizan determinadas predicciones y cómo mejorar el conjunto de datos de entrenamiento para eliminar sesgos. SynapseML acelera drásticamente el proceso de comprensión del modelo entrenado de un usuario al permitir a los desarrolladores distribuir el cálculo entre cientos de máquinas. Más específicamente, SynapseML incluye implementaciones distribuidas de las Explicaciones aditivas de Shapley (SHAP) y las Explicaciones independientes del modelo interpretables localmente (LIME) para explicar las predicciones de los modelos de visión, texto y tabulares. También incluye herramientas como la Expectativa condicional individual (ICE) y el Análisis de dependencia parcial para conjuntos de datos sesgados reconocidos.
Soporte técnico empresarial en Azure Synapse Analytics
SynapseML está disponible con carácter general en Azure Synapse Analytics con soporte técnico empresarial. Puede crear canalizaciones de aprendizaje automático a gran escala mediante los servicios de Azure AI, LightGBM, ONNX y otras características de SynapseML seleccionadas. Incluso incluye plantillas para crear rápidamente prototipos de sistemas de aprendizaje automático distribuido, como motores de búsqueda visual, canalizaciones de mantenimiento predictivo, traducción de documentos, etc.
Pasos siguientes
Para más información sobre SynapseML, consulte SynapseML: una biblioteca de aprendizaje automático simple, multilingüe y masivamente paralela.