En la última década, son muchas las empresas del sector que están invirtiendo en la Inteligencia Artificial, en lo que ya se conoce como una gran carrera para ver quién es el primero.

Si no quieres quedarte atrás, te contamos cómo podemos construir una solución completamente funcional en un tiempo récord gracias a dos productos de Machine Learning de la plataforma de Google Cloud, AutoML y Document AI.

Como este tema da para mucho, en este post nos centraremos en el primer servicio, AutoML: veremos sus características y las diferentes herramientas que contiene este servicio de GCP. Si estás listo, ¡súbete a la nube, despegamos!

Por qué usar Google Cloud / IA con Google

Si algo caracteriza a la nube de Google es su capacidad en el sector de la Inteligencia Artificial, ya que desde hace unos años Google ha invertido muchísimo dinero en este sector (colocándose justo detrás de Apple en cuanto a la adquisición de empresas relacionadas con la Inteligencia Artificial). Por eso, Google se ha situado como líder dentro de las tres grandes plataformas en la Nube en esta carrera.

Esta inversión se ve reflejada en un abanico de herramientas que cubren desde la preparación de los datos hasta el despliegue, pasando por la construcción y la validación, además de MLOps.

Servicios dentro de Auto ML

Cloud AutoML es un servicio que nos permite generar nuestro propio modelo de ML, incluso aunque nuestro conocimiento en este ámbito sea limitado o nulo. Este producto hace uso de algoritmos ya probados y optimizados por Google y utilizando nuestro conjunto de datos, de forma automática, genera el modelo que mejor se ajusta.

Para ello se puede hacer uso de la API o de una interfaz de usuario. En la familia Auto ML tenemos 5 productos dependiendo del tipo de solución que necesitemos:

AutoML Natural Language

Este servicio está centrado en modelos ML para clasificación, extracción de entidades y análisis de sentimiento de texto. Para entrenar los modelos por defecto, usarán una distribución 80% train, 10% test y 10% evaluación, aunque si se quiere es personalizable.

Para evaluar los modelos de clasificación AutoML hace uso de la precisión y recall; además, muestra una matriz de confusión del modelo, todo esto de forma automática, sin necesidad siquiera de saber lo que significan estos términos.

  1. AutoML Text & Document Classification

Permite generar tu propio modelo de clasificación de texto y documentos. Para ello, bastaría simplemente con tener un conjunto de datos con textos o documentos y las etiquetas que se deseen.

Además, se puede elegir entre dos tipos de modelos de clasificación, el de etiquetado único o el de multi-etiquetado. En el primero, al clasificar el elemento deseado este recibirá la etiqueta que mejor se adapte, mientras que en el segundo el elemento recibirá un porcentaje de prominencia (salience) para cada etiqueta.

Esto es muy útil, por ejemplo, si se quiere que un texto pueda pertenecer a varias categorías estableciendo un umbral mínimo. Una vez hemos elegido la configuración deseada, AutoML generará el modelo que mejor se adapte a tus necesidades y lo desplegará, de forma que podrá ser usado para predecir usando Python, Java o NodeJs.

  1. AutoML Entity Extraction

El modelo permite extraer las entidades de un documento o texto, además estas entidades podrán ser etiquetadas entre las categorías que se deseen. Para ello el conjunto de datos deberá contener el tipo de contenido, junto con muestras de segmentos que representen las entidades a analizar junto con las etiquetas o categorías que se desean asignar a las diferentes entidades, como se puede observar en el ejemplo de la documentación. Como en el caso anterior AutoML generará el modelo que mejor se adapte a nuestras necesidades y lo desplegará para que pueda ser usado para predecir como anteriormente.

  1. AutoML Sentiment Analysis

Permite generar un modelo que establece el sentimiento de un texto o documento, de forma que este modelo permite analizar y clasificar el sentimiento del autor cuando escribió el documento. Para entrenar tu propio modelo el conjunto de datos debe contener un campo Sentiment score que vaya de 0(negativo) a 2(positivo), pasando por 1(neutral). En caso de querer una mayor granularidad las puntuaciones pueden ir de 0 a 4.

Para evaluar el modelo, en este caso, Google, de forma automática sin que nosotros tengamos que configurar nada, hace uso del error absoluto medio (MAE) y del error cuadrático medio (MSE) para determinar la distancia entre el sentimiento predecido y el actual.

Por otra parte, también hace uso de Linear-weighted kappa y quadratic-weighted kappa para determinar lo cerca que está el sentimiento predecido del que predeciría un humano. Al igual que en los casos anteriores, AutoML generará el modelo que mejor se adapte a nuestro conjunto de datos.

AutoML Vision

Este bloque ofrece diferentes servicios que permiten integrar modelos de Machine Learning, especialmente diseñados para imágenes, como puede ser un clasificador de imágenes o un detector de objetos.

Para el primer caso, bastaría con tener un conjunto de datos con imágenes etiquetadas y AutoML generará el modelo automáticamente. Para este producto, nuestro compañero Tomás Calleja realizó un webinar sobre Goodlio, un modelo de clasificación de imágenes diseñado usando AutoML que era capaz de diferenciar entre dibujos de ninja o de dinosaurios.

Para el segundo caso nuestro conjunto de datos debe tener imágenes con cuadros delimitadores que estén etiquetados con las categorías de objetos que se deseen detectar.

AutoML Video Intelligence

Este servicio se centra en los videos como conjunto de datos y permite generar modelos para clasificar segmentos de vídeos o detectar objetos dentro de tus videos. Se trata de un producto que está en beta y puede ser consumido mediante la consola de Google o vía API.

Al igual que en los casos anteriores en el caso de querer un modelo de clasificación bastará con tener un conjunto de datos (en este caso videos) correctamente etiquetado, mientras que para la detección de objetos, el conjunto de datos deberá contener videos que contenga cuadros delimitadores de los objetos a clasificar, correctamente etiquetados, tal y como se muestra en la documentación.

Una vez tengamos los el conjunto de datos, AutoML generará el modelo que mejor se ajuste, usando para ello, sin que nos demos cuenta y sin necesidad de configurarlo, el Área bajo la curva (de precisión o recall según convenga) y Intersección sobre Unión, una métrica utilizada en el seguimiento de objetos para medir la superposición de un cuadro delimitador predicho versus el real para una instancia de objeto en un fotograma de vídeo concreto.

AutoML Translation

En este caso, es un producto que permite generar tu propio modelo de traducción. Esto tiene sentido, por ejemplo, cuando queremos ajustar la traducción a un contexto como el mundo de los automóviles, la medicina, los seguros, etc.

Para ello busca semejanzas de las diferentes oraciones con pares de oraciones de los lenguajes destino y origen. Estas oraciones son tratadas de forma independiente sin asumir ningún tipo de correlación entre ellas.

El conjunto de datos tiene que estar en formato .tsv o .tmx y debe contener diferentes traducciones entre los idiomas origen y destino deseados.

AutoML Tables

Es un producto en estado beta que permite generar modelos de ML cuando el conjunto de datos está estructurado. Estos datos pueden estar en csv o en tablas de Bigquery. Bastará con elegir la columna objetivo que deseamos predecir en el conjunto de datos y AutoML generará el modelo que mejor se adapte (como ocurría en todos los casos anteriores).

Revisión datos de entrenamiento

En este caso al tratarse de datos estructurados, Google aconseja revisar los datos que se van a usar para el entrenamiento del modelo, por ejemplo:

Objetivos de optimización del modelo

Dependiendo del objetivo del modelo, podemos elegir entre una serie de posibilidades que afectarán en el entrenamiento del modelo. Para ello disponemos de una tabla en la documentación, donde podemos elegir el objetivo de optimización que mejor se ajuste a nuestro objetivo del modelo.

En la tabla podemos observar que principalmente tenemos dos tipos de problemas, los de clasificación y los de regresión.

Selección del modelo

AutoML tables dispone de diferentes modelos segun su arquitectura:

Para seleccionar el modelo que mejor se ajusta a nuestro conjunto de datos y nuestro problema, AutoML automáticamente entrena de forma paralela diferentes modelos, permitiendo poder comparar los resultados y seleccionar el más óptimo de una forma rápida.

¿Qué pasa si no dispones de un conjunto de datos etiquetado?

En muchas ocasiones no disponemos de un conjunto de datos, de forma que no podemos generar nuestro propio modelo. En estos casos Google Cloud tiene APIs que están fuera de AutoML y que permiten hacer uso de modelos genéricos que pueden llegar a cubrir nuestras necesidades.

Por ejemplo, en el caso de uso en cuestión, que veremos en un próximo post, se usó la API de Natural Language, haciendo uso de la librería de clientes, para el análisis de sentimiento y de entidades.

El uso de esta API nos sirvió para extraer una puntuación de -1 a 1 con el sentimiento general del texto y analizar el texto para extraer las entidades más relevantes del mismo.

Conclusión

Cloud AutoML es un producto que ha llegado para quedarse ya que permite, optimizando costes y tiempo, desarrollar tus propios modelos, basados en algoritmos probados y optimizados por Google, teniendo una experiencia limitada en este ámbito, aunque, obviamente, existen un sin fin de soluciones para las que el desarrollo de modelos, de forma manual, es necesario.

Si miramos las soluciones que se hacen a día de hoy, es fácil ver que la Inteligencia Artificial es el futuro y poder ofrecer productos que hacen uso de ella de una forma sencilla puede marcar la diferencia, desde Goodly seguiremos muy atentos la evolución de estos servicios, para contaros todas las novedades.

No os perdáis el siguiente post en el que hablaremos sobre Document AI, otro producto de Google, relacionado con la Inteligencia Artificial que forma parte de la arquitectura del caso de uso que mostraremos en la última entrega.

Bonus

¿Te has quedado con ganas de más? No te pierdas nuestros podcast sobre AutoML: la manera de hacer fácil Machine Learning.

Cuéntanos qué te parece.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.

Suscríbete