Anuncio de la disponibilidad general de Azure Machine Learning Service: funcionamiento interno

Publicado el 4 diciembre, 2018

Group Program Manager, Microsoft Azure

Hoy anunciamos la disponibilidad general de Azure Machine Learning Service.

Azure Machine Learning Service contiene numerosas características diseñadas para simplificar y agilizar el proceso de creación, entrenamiento e implementación de modelos de Machine Learning. El aprendizaje automático permite a los científicos de datos de todos los niveles de conocimiento identificar los algoritmos e hiperparámetros adecuados en menos tiempo. La compatibilidad con marcos de código abierto populares, como PyTorch, TensorFlow y scikit-learn, permite a los científicos de datos utilizar las herramientas que prefieran. La metodología DevOps para Machine Learning mejora aún más la productividad, porque permite hacer un seguimiento de los experimentos y administrar los modelos implementados en la nube y en el perímetro. A todas estas características se puede acceder desde cualquier entorno Python que se ejecute en cualquier parte, incluidas las estaciones de trabajo de los científicos de datos.

Hemos creado Azure Machine Learning Service en estrecha colaboración con nuestros clientes, miles de los cuales lo utilizan a diario para mejorar el servicio de atención al cliente, crear mejores productos y optimizar las operaciones. A continuación se incluyen dos ejemplos de estos clientes.

TAL, una reconocida compañía de seguros de vida de Australia con 150 años de antigüedad, está utilizando inteligencia artificial para mejorar el control de calidad y la experiencia de los clientes. Tradicionalmente, el equipo de control de calidad de TAL solo podía revisar un dos o tres por ciento de los casos seleccionados aleatoriamente. Ahora, con Azure Machine Learning Service, puede revisar el 100 % de los casos.

“Azure Machine Learning permite a los científicos de datos de TAL implementar modelos periódicamente en cuestión de horas en lugar de semanas o meses, de modo que se obtienen resultados en menos tiempo y la oportunidad de distribuir muchos más modelos de lo que antes era posible. No hay nada en el mercado que sea equiparable a Azure Machine Learning en este sentido”.

– Gregor Pacnik, director de Innovación, TAL

Elastacloud, una asesoría de ciencia de datos ubicada en Londres, utiliza Azure Machine Learning Service para crear y ejecutar el servicio Elastacloud Energy BSUoS Forecast, una solución basada en inteligencia artificial que ayuda a los proveedores de energías alternativas a predecir mejor la demanda y reducir costos.

“Con Azure Machine Learning, ejecutamos BSUoS Forecast sin máquinas virtuales y sin nada que administrar. Creamos un servicio altamente automatizado que oculta su complejidad en cajas sin servidor”.

– Andy Cross, director de Operaciones, Elastacloud

Principios de diseño de Azure Machine Learning Service

Con el fin de simplificar y agilizar el aprendizaje automático, se ha creado Azure Machine Learning con los siguientes principios de diseño, que se explican con más detalle en el resto de esta entrada de blog.

  • Permitir que los científicos de datos utilicen un conjunto de herramientas de ciencia de datos muy completo y con el que ya están familiarizados.
  • Simplificar el uso de marcos populares de aprendizaje automático y aprendizaje profundo.
  • Reducir el tiempo de rentabilización ofreciendo características para todo el ciclo de vida del aprendizaje automático.

Herramientas de ciencia de datos familiares

Los científicos de datos esperan poder utilizar el ecosistema completo de bibliotecas y marcos de Python, así como disponer de la capacidad de entrenar modelos localmente, en su portátil o estación de trabajo. En el sector, se utiliza una gran variedad de herramientas, pero, en líneas generales, se pueden agrupar en interfaces de línea de comandos, editores e IDE, y cuadernos. Azure Machine Learning Service se ha diseñado para admitir todas estas herramientas. Al SDK para Python se puede acceder desde cualquier entorno Python, entornos de desarrollo integrado como Visual Studio Code (VS Code) o PyCharm, o cuadernos como Jupyter Notebook y Azure Databricks. Veamos con más detalle la integración de Azure Machine Learning Service con dos de estas herramientas.

Los cuadernos Jupyter Notebook son un entorno de desarrollo muy popular entre los científicos de datos que trabajan en Python. Azure Machine Learning Service proporciona una compatibilidad muy sólida con cuadernos tanto locales como hospedados (por ejemplo, Azure Notebooks) y proporciona widgets integrados que permiten a los científicos de datos supervisar el progreso de los trabajos de entrenamiento casi en tiempo real, como se muestra en la imagen siguiente. Para los clientes que llevan a cabo aprendizaje automático en Azure Databricks, se pueden usar de igual forma los cuadernos de Azure Databricks.

Cuadernos Jupyter Notebook

Visual Studio Code es un editor de código fuente ligero pero muy eficaz que se ejecuta en el escritorio y está disponible para Windows, macOS y Linux. La extensión de Python para Visual Studio Code combina el potencial de los cuadernos Jupyter Notebook con el potencial de Visual Studio Code. Esto permite a los científicos de datos experimentar de forma incremental con “estilo de cuaderno”, al tiempo que obtienen toda la productividad que ofrece Visual Studio Code, como IntelliSense, un depurador integrado y Live Share, como se muestra en la imagen siguiente.

Extensión de Python para Visual Studio Code

Compatibilidad con los marcos más populares

Los marcos son las bibliotecas más importantes que utilizan los científicos de datos para crear modelos. Azure Machine Learning Service admite todos los marcos basados en Python. Los más populares (scikit-learn, PyTorch y TensorFlow) se han incluido en una clase Estimator para simplificar el envío de código de entrenamiento a recursos de proceso remotos, tanto si están en un único nodo como si están distribuidos en clústeres de GPU. Además, esto no se limita únicamente a los marcos de aprendizaje automático. Se pueden usar todos los paquetes del vasto ecosistema de Python.

Somos conscientes de que los clientes se enfrentan a menudo a varios desafíos cuando intentan utilizar varios marcos para crear modelos e implementarlos en una gran variedad de plataformas de hardware y sistemas operativos. Esto se debe a que los marcos no están diseñados para utilizarlos indistintamente y requieren algunas optimizaciones específicas para las plataformas de hardware y sistemas operativos. Con el fin de solucionar estos problemas, Microsoft ha colaborado con compañías destacadas del sector, como Facebook y AWS, así como empresas de hardware, para desarrollar la especificación Open Neural Network Exchange (ONNX) al objeto de describir modelos de aprendizaje automático con un formato abierto estándar. Azure Machine Learning Service admite ONNX y permite a los clientes implementar, administrar y supervisar modelos ONNX con facilidad. Además, con la idea de proporcionar una plataforma de software coherente para ejecutar modelos ONNX en la nube y en el perímetro, anunciamos que hoy se ofrecerá el entorno de ejecución de ONNX como código abierto. Nos gustaría que se uniera a la comunidad y colaborara en el proyecto ONNX.

Ciclo de vida integral del aprendizaje automático

Azure Machine Learning se integra sin problemas con los servicios de Azure para proporcionar características integrales para el ciclo de vida del aprendizaje automático, que incluye la preparación de los datos, experimentación y el entrenamiento, la administración, la implementación y la supervisión de los modelos.

Preparación de los datos

Los clientes pueden usar la completa funcionalidad de plataforma de datos de Azure, como Azure Databricks, para administrar y preparar los datos para el aprendizaje automático. El SDK para la preparación de los datos está disponible junto con el SDK de Azure Machine Learning para Python, con el fin de simplificar las transformaciones de los datos.

Formación

Azure Machine Learning Service proporciona funcionalidad para procesar los datos de forma distribuida sin problemas que permiten a los científicos de datos escalar horizontalmente el entrenamiento desde sus equipos portátiles o estaciones de trabajo a la nube. La capacidad de proceso se determina a petición. Los usuarios solo pagan por el tiempo de proceso y no tienen que administrar ni mantener clústeres de GPU y CPU.

Ejemplo de código de Azure Machine Learning

Los profesionales de los datos que ya han invertido en Apache Spark deberían entrenar los modelos en clústeres de Azure Databricks. El SDK de Azure Machine Learning Service se integra en el entorno de Azure Databricks y se puede ampliar sin problemas para experimentación e implementación y administración de modelos.

Experimentación

Los científicos de los datos crean un modelo con un proceso de experimentación en el que repiten los datos y el código de entrenamiento varias veces hasta que obtienen los resultados deseados del modelo. Azure Machine Learning Service proporciona características muy eficaces para mejorar la productividad de los científicos de datos y mejorar la gobernanza, la repetibilidad y la colaboración durante el proceso de desarrollo de los modelos.

1. El uso de Machine Learning permite a los científicos de datos apuntar al conjunto de datos y a un escenario (regresión, clasificación o previsión), y Machine Learning utiliza técnicas avanzadas para proponer un nuevo modelo haciendo ingeniería de características, seleccionando el algoritmo y optimizando los hiperparámetros.

2. Con la optimización de los hiperparámetros de los modelos actuales se puede hacer una exploración rápida e inteligente de los hiperparámetros que permite la terminación temprana de los trabajos de entrenamiento que no rinden bien, lo que ayuda a mejorar la precisión de los modelos.

3. Las canalizaciones de Machine Learning permiten a los científicos de datos dividir el entrenamiento de los modelos en diferentes pasos, como el movimiento de los datos, la transformación de los datos, la extracción de características, el entrenamiento y la evaluación. Las canalizaciones de Machine Learning son un mecanismo para automatizar, compartir y reproducir los modelos. También proporcionan más rendimiento porque almacenan en caché las salidas intermedias a medida que el científico de datos repite el bucle interno de desarrollo del modelo.

Canalizaciones de Machine Learning

4. Finalmente, el historial de ejecución captura cada ejecución del entrenamiento, el rendimiento del modelo y las métricas relacionadas. Hacemos un seguimiento del código, el proceso y los conjuntos de datos usados en el entrenamiento del modelo. El científico de datos puede comparar las ejecuciones y seleccionar el “mejor” modelo para su planteamiento del problema. Una vez seleccionado, el modelo se registra en el registro de modelos, que permite auditar (incluida la procedencia) los modelos en producción.

Implementación, administración y supervisión de modelos

Una vez que los científicos de datos completan el desarrollo del modelo, hay que ponerlo en producción, administrarlo y supervisarlo. El registro de modelos de Azure Machine Learning Service hace un seguimiento de los modelos y de su historial de versiones, junto con el linaje y los artefactos del modelo. 

Azure Machine Learning Service proporciona capacidad para implementar los modelos tanto en la nube como en el perímetro, emitiendo puntuaciones en tiempo real y por lotes según las necesidades de los clientes. En la nube, Azure Machine Learning Service aprovisiona y escala un clúster de Kubernetes, donde aplica equilibrio de carga, usando Azure Kubernetes Service (AKS), o bien asocia el propio clúster de AKS del cliente. Esto permite implementar varios modelos en producción. El clúster se escala automáticamente con la carga. Las actividades de administración de modelos se pueden llevar a cabo tanto con la experiencia de usuario del SDK para Python como con la interfaz de la línea de comandos (CLI) y API REST, a las que se puede llamar desde Azure DevOps. Estas características integran totalmente el ciclo de vida de los modelos con el resto del ciclo de vida de las aplicaciones de nuestros clientes.

Ejemplo de código

Los modelos del registro se pueden implementar también en dispositivos perimetrales gracias a la integración con el servicio Azure IoT Edge (en versión preliminar).

Una vez que un modelo está en producción, el servicio recopila telemetría de la aplicación y del modelo que permite supervisar el modelo en producción para comprobar que funciona correctamente. Los datos capturados durante la inferencia se vuelven a mostrar a los científicos de datos, que pueden usar esta información para determinar el rendimiento del modelo, la desviación de los datos y el deterioro del modelo.

Para llevar a cabo inferencias extremadamente rápidas y económicas, Azure Machine Learning Service ofrece modelos acelerados mediante hardware (en versión preliminar) que proporcionan aceleración de modelos de visión mediante matrices FPGA. Esta funcionalidad es exclusiva de Azure Machine Learning Service y ofrece ventajas de latencia extraordinarias, además de otras ventajas económicas y transaccionales para los trabajos de procesamiento sin conexión.

Únase a nosotros

Idear, crear y ofrecer Azure Machine Learning Service ha sido posible gracias a la estrecha colaboración con ustedes, nuestros clientes y asociados. Esperamos poder ayudarle a simplificar y agilizar sus procesos de aprendizaje automático ofreciendo la plataforma de aprendizaje automático en la nube más abierta, productiva y fácil de usar.

Visite la guía de inicio rápido para comenzar este fascinante viaje con nosotros.