Servicios de machine learning. Una comparativa entre Google Cloud y Microsoft Azure


La integración de machine learning (ML) se está volviendo esencial para las compañías con el fin de proporcionar mejores soluciones en las áreas de toma de decisiones y automatización. Como consecuencia, los frameworks y plataformas disponibles que proporcionan diferentes grados de servicios de explotación de datos y diseño de servicios de ML están aumentando y volviéndose más sofisticados. La diversidad de estos frameworks abarca un amplio espectro, desde bibliotecas simples que proporcionan algoritmos a plataformas con un nivel de alcance más elevado.

El tipo más completo de soluciones es el denominado machine learning as a service (MLaaS). Este término incluye un conjunto de plataformas en la nube automatizadas y semiautomáticas que cubren la mayoría de los problemas operativos, como el procesamiento previo de datos, el entrenamiento de modelos, la evaluación de modelos y su implementación. Estas plataformas proporcionan infraestructura de hardware, módulos predefinidos y herramientas para automatizar muchos de los pasos en el proceso de diseño, prueba e implementación de un servicio de ML. Esto provoca que este tipo de plataforma sea un entorno ideal para las empresas que no cuentan con los recursos ni la experiencia necesarios para crear y mantener un entorno de LD sofisticado.

En el centro de competencia de inteligencia artificial de GFT, hemos estudiado dos de los principales MLaaS disponibles en el mercado para determinar cuáles son las ventajas de estas plataformas en el desarrollo de soluciones para nuestros clientes.

Microsoft Azure Machine Learning Studio. Una zona de pruebas para diferentes niveles de experiencia

Microsoft Azure Machine Learning Studio es una herramienta colaborativa que, con la herramienta drag-and-drop, se puede utilizar para crear, probar y desplegar soluciones predictivas de ML. Azure publica modelos como servicios web que pueden ser usados fácilmente por aplicaciones personalizadas o soluciones de software. La interfaz principal de Microsoft Azure ML Studio presenta un entorno de pruebas gráfico donde los usuarios pueden combinar diferentes módulos predefinidos para crear experimentos destinados a analizar datos y realizar diferentes tipos de predicciones y deducciones. La colección de módulos predefinidos es bastante extensa, ofrece funcionalidades para la conversión de datos, transformación y selección, y algoritmos de machine learning para diferentes tareas como clustering, clasificación o regresión. Usando estos módulos, un usuario casi sin experiencia puede crear un proyecto relativamente sofisticado de inteligencia artificial o data science.

Esquema de un experimento ML en Microsoft Azure Machine Learning Studio. Los diferentes cuadros representan diferentes módulos que realizan diferentes tareas (dividir datos, definir clasificador ML, modelo de tren, etc.) Las flechas muestran el flujo de datos desde los diferentes módulos. Esta representación hace que la función y los objetivos de un proyecto sean muy completos para los usuarios no experimentados.

 

Pero, si un data scientist desea introducir operaciones más complejas en un proyecto, puede usar los módulos de scripts Python y R para hacerlo. Esto lo convierte en un servicio bastante flexible, ya que se puede adaptar al grado de experiencia del usuario. También proporciona acceso a las libretas Jupyter, donde el usuario puede escribir y probar sus scripts, facilitando su adaptación al entorno Azure. El único inconveniente de esto son las restricciones en la entrada y la salida de los módulos de scripts (solo las colecciones de datos almacenadas en dataframes) y el menor soporte para frameworks de ML típicos como TensorFlow y Keras. Con respecto a este último aspecto, el framework admite por defecto Microsoft Cognitive Toolkit de Microsoft (CNTK) que proporciona funcionalidades similares a TensorFlow.

Finalmente, la implantación de la solución desarrollada como un servicio web es realmente fácil de realizar a través de las opciones aplicadas en el servicio, haciendo que el proceso de desarrollo sea muy intuitivo.

Google Cloud. Diferentes herramientas para distintos niveles

Google Cloud ofrece capacidades de ML para clientes con un conjunto de herramientas diferentes. En un primer nivel, Google proporciona diferentes API para realizar operaciones automáticas simples como rutinas de clasificación ML en las áreas de reconocimiento de visión, reconocimiento de lenguaje natural, reconocimiento de voz y traducción. Estas API son realmente fáciles de usar y no requieren experiencia en ML, pero presentan el inconveniente de la rigidez, ya que las opciones para manipular las API y adaptarlas a las necesidades específicas son muy limitadas. Recientemente, se ha introducido un enfoque más flexible para el reconocimiento visual con la herramienta AutoML Visio, pero esto todavía tiene limitaciones y solo cubre un solo campo de ML.

Las diferentes herramientas proporcionadas por Google Cloud. Cuanto más fácil sea de usar la herramienta, menos flexibilidad tendrá para las necesidades del usuario.

Por otro lado, Google proporciona un motor de machine learning completo. El desarrollo es muy flexible, pero está orientado a expertos en datos con experiencia en programación. Básicamente, un usuario debe programar los servicios completos de ML utilizando cualquier framework que prefiera (aunque TensorFlow, al ser un framework desarrollado en Google, facilitará las cosas). El entrenamiento y las pruebas pueden ser tanto internas como a través de los recursos de la nube de Google, y la implementación como un servicio de Google se puede realizar siguiendo algunas instrucciones básicas. Google Machine Learning Engine carece de cualquier tipo de herramienta visual para representar proyectos y, como se señaló anteriormente, todas las operaciones de datos deben estar codificadas en scripts, por lo que esta herramienta no es apta para usuarios con experiencia limitada en ML. Por otro lado, el desarrollo del enfoque complejo solo está limitado por el conocimiento del usuario.

Una comparación básica

Microsoft AzureGoogle Cloud
Una única plataforma con una combinación variada de conocimientos (Machine Learning Studio)Diferentes herramientas para distintos conocimientos (APIs, autoML, Machine Learning Engine)
Diseño visual de los servicios. Muy intuitivoSólo scripting para servicios complejos
Limitaciones en la interfaz y los frameworksSin limitaciones en el uso de frameworks

Desde el punto de vista del desarrollo, las principales ventajas del Microsoft Azure Machine Learning Studio son su exhaustividad, facilidad de uso y la versatilidad de la experiencia requerida. Un usuario con experiencia limitada en proyectos ML puede desarrollar soluciones bastante complejas en poco tiempo utilizando estas herramientas. En el caso de las herramientas en la nube de Google, su flexibilidad es muy limitada por un lado (API), o muy compleja de usar en el otro (Machine Learning Engine). Las últimas herramientas tienen la ventaja de una solución realmente abierta y flexible, que permite diseñar soluciones muy complejas, pero con la desventaja asociada de una alta experiencia requerida. Por estas razones, el Microsoft Azure Machine Learning Studio debe ser la opción para usar al desarrollar proyectos con una dificultad media-media, mientras que Google Machine Learning Engine será más útil para proyectos más complejos.