Battle of the AI Titans Part 3 - Microsoft Azure's AI Services

Chris Dunn,
April 4, 2018

Esta es la ˙ltima parte de una serie de cuatro sobre inteligencia artificial (IA). El primer art"culo de esta serie se centrÛ en los aspectos b·sicos de la IA. A continuaciÛn, publicamos art"culos sobre cada uno de los principales actores del sector: Google, Amazon y, hoy, Microsoft Azure.No se puede negar que Microsoft Azure se est· tomando en serio la inteligencia artificial. Por ejemplo, su grupo de servicios cognitivos incluye 28 servicios distintos, y es solo una parte de su cat·logo de IA global. Por tanto, tenemos mucho que comentar. °Empecemos!

Cognitive Services

Microsoft Azure divide sus servicios cognitivos (Cognitive Services) en 5 ·reas diferentes: visiÛn, voz, lenguaje, decisiÛn y search.

Servicios de IA de Microsoft Azure: VisiÛn

API de Computer Vision

Este servicio identifica objetos y acciones dentro de im·genes y v"deos. A partir de esta funcionalidad b·sica, puede realizar muchas tareas diferentes. Estas son algunas de ellas:

  • Leer textos impresos y escritos a mano.
  • Reconocer personas y lugares famosos.
  • Analizar v"deos para identificar objetos dentro de ellos.

Content Moderator

Este servicio ofrece moderaciÛn de textos, im·genes y v"deos. En los textos, Content Moderator detecta palabras potencialmente malsonantes en m·s de 100 idiomas. TambiÈn puede aplicar listas personalizadas con los tÈrminos que el desarrollador considere inapropiados. En v"deos, Content Moderator identifica el contenido para adultos. TambiÈn incluye la capacidad de integrar revisiones hechas por humanos para supervisar las operaciones.

Custom Vision Service (vista previa)

Este servicio se puede entrenar. Los usuarios pueden subir im·genes etiquetadas, o bien subirlas sin etiquetar y dejar que Custom Vision Service lo haga. Una vez que Custom Vision Service dispone de las im·genes etiquetadas, el usuario ´enseÒaª al servicio a reconocer aspectos de la im·genes, como una habitaciÛn o una comida concretas. Vea este v"deo para descubrir lo f·cil que es entrenar a Custom Vision Service:

https://www.youtube.com/watch?v=3sjInlJcpBs

API de Face

La API de Face puede establecer la probabilidad de que dos im·genes contengan a la misma persona. TambiÈn puede obtener detalles de la persona a partir de la imagen, incluyendo la edad, el gÈnero, la postura, la sonrisa, las emociones y el vello facial. Detecta dÛnde est· un rasgo facial en funciÛn de sus coordenadas, por ejemplo, ´la ceja izquierda est· en las coordenadas X e Yª. Lo probÈ con una foto m"a y era tan preciso que daba miedo.

Eso s", lo m·s interesante es que cuando sub" una imagen de hace varios aÒos y una del aÒo pasado, el programa me dio la misma edad. As" que aparentemente, °llevo aÒos sin envejecer!

API de Emotion

Este servicio va a retirarse, ya que su funcionalidad est· incluida en la API de Face. Como su nombre indica, detecta las emociones de las personas en las im·genes.

Video Indexer (vista previa)

Uno de los mejores aspectos de los servicios de IA de Microsoft Azure es que a˙nan varias tecnolog"as de IA subyacentes para ofrecer un servicio m·s amplio. Video Indexer es un gran ejemplo de ello. Este simple servicio incluye funciones muy potentes como:

  • TranscripciÛn de audio: convierte voz en texto en inglÈs, espaÒol, francÈs, alem·n, italiano, chino, portuguÈs (brasileÒo), japonÈs y ruso.
  • Seguimiento e identificaciÛn de caras: como su nombre indica, esta funcionalidad identifica caras de famosos. TambiÈn es posible entrenar a Video Indexer para reconocer otras caras e identificarlas en diferentes v"deos.
  • IdentificaciÛn de hablantes: indica quiÈn dijo quÈ palabras y cu·ndo.
  • Reconocimiento visual de textos: extrae texto de seÒales de tr·fico, documentos y otros elementos mostrados en un v"deo.
  • DetecciÛn de actividad de voz: identifica el sonido de fondo y separa las voces de Èl.
  • DetecciÛn de escenas: realiza un an·lisis visual del v"deo para determinar cu·ndo cambia una escena.
  • ExtracciÛn de fotogramas clave: identifica autom·ticamente los fotogramas clave en un v"deo.
  • An·lisis de opiniÛn: lo que su nombre indica.
  • TraducciÛn: traduce transcripciones de v"deos.
  • ModeraciÛn de contenidos: identifica el contenido para adultos en v"deos.
  • ExtracciÛn de palabras clave: identifica las palabras clave bas·ndose en una transcripciÛn.
  • AnotaciÛn: anota v"deos usando un modelo predefinido de 2000 objetos. Esta funciÛn es similar a otros gigantes de la IA.

Servicios de IA de Microsoft Azure: Voz

API de Translator Speech

Este servicio es similar a Google Cloud Translate. Lo m·s destacable del servicio es que est· integrado en algunas de las aplicaciones populares de Microsoft, incluyendo Skype y PowerPoint. Volveremos sobre este tema en breve.

Como su nombre indica, la API de Translator Speech traduce voz a travÈs de 5 pasos:

  1. Reconoce que se ha dicho algo.
  2. Identifica el idioma.
  3. Transcribe las palabras a texto.
  4. Traduce el texto.
  5. Reproduce la traducciÛn en voz.

La p·gina web de Microsoft incluye muchos casos de uso, que pueden consultarse aqu". Uno de los m·s interesantes incluye el uso de lo que Microsoft llama ´live featureª (´funciÛn en directoª).

Con esta funcionalidad, los desarrolladores pueden incluir traducciones autom·ticas en directo en sus aplicaciones. Cabe destacar que Microsoft emplea la API de Translator Speech tanto en Skype como en Powerpoint. Ahora, las personas que estÈn hablando por Skype en diferentes idiomas pueden traducir sus conversaciones en tiempo real con Speech API.

øTiene que dar una presentaciÛn a personas que no hablan su idioma nativo? °No hay problema! Los equipos de Microsoft han colaborado para aÒadir la API de Translator Speech a Powerpoint. Este plugin nuevo le permite ofrecer subt"tulos en otro idioma mientras realiza su presentaciÛn.

Si desea m·s informaciÛn sobre esta tecnolog"a, puede descargar la aplicaciÛn de Microsoft Translate en su telÈfono. Est· disponible en Android y iOS.

La aplicaciÛn se basa en la API de Translator Speech y ofrece una traducciÛn en directo durante una conversaciÛn entre dos personas. Tanto mi colega (hablante nativo de espaÒol) como yo (hablante nativo de inglÈs) probamos la aplicaciÛn y la encontramos sorprendentemente precisa. Adem·s, °nos divertimos un montÛn!

TraducciÛn de voz en directo

API de Speaker Recognition

Este servicio tiene el nombre bien puesto, ya que identifica a los hablantes bas·ndose en la voz. øRecuerda Video Indexer, que mencionamos anteriormente? Este es el servicio que le proporciona la capacidad de reconocer quiÈn est· hablando y cu·ndo.

Custom Speech Service

A nivel global, este servicio le permite crear su propio modelo de reconocimiento de voz. Profundizando un poco m·s, puede crear modelos de lenguaje y ac˙sticos personalizados. Aqu" puede encontrar una buena explicaciÛn de Microsoft sobre la diferencia entre ambos niveles. He incluido un extracto a continuaciÛn:

´El modelo ac˙stico es un clasificador que etiqueta fragmentos breves de audio como uno de los fonemas o unidades de sonido de un lenguaje espec"fico. Por ejemplo, la palabra ´hablaª est· compuesta de cuatro fonemas: ´'a ?laª. Estas clasificaciones se hacen a un ritmo de 100 veces por segundo.

El modelo de lenguaje es una distribuciÛn de probabilidades de secuencias de palabras. Ayuda al sistema a decidir entre secuencias de palabras que suenan parecidas, en funciÛn de la probabilidad de esas secuencias. Por ejemplo, en inglÈs, "recognize speech" ("reconocer voz") y "wreck a nice beach" ("destrozar una playa bonita") suenan parecido, pero es mucho m·s probable que se trate de la primera opciÛn, por lo que el modelo de lenguaje le asignar· una puntuaciÛn m·s altaª.

Custom Speech Service es genial para aplicaciones que cuentan con tÈrminos propios, as" que es una gran opciÛn para los que estamos buscando crear aplicaciones. Y eso nos lleva al siguiente bloque de servicios de AI de Microsoft Azure: lenguaje.

Servicios de IA de Microsoft Azure: Lenguaje

Language Understanding (LUIS)

Si est· buscando incorporar acciones basadas en lenguaje en su aplicaciÛn, °este es el servicio para usted! Usa la API de Bing Speech (que veremos en m·s detalle a continuaciÛn) para traducir voz a texto. A continuaciÛn, este texto es procesado por LUIS. LUIS descifra las intenciones, esto es, las acciones que un usuario tiene intenciÛn de realizar, y las entidades sobre las que act˙an estos objetos.

DespuÈs, devuelve un archivo JSON con toda la informaciÛn que necesita para tomar acciones en sus aplicaciones. El servicio tambiÈn es compatible con Azure Bot Service, as" que puede crear bots para sus aplicaciones r·pidamente.

øY sabe lo que es realmente genial? Han adoptado un enfoque similar al de DialogFlow de Google y facilitan lo que llaman ´modelos de dominios creados previamenteª. Estos modelos vienen con intenciones, entidades y lo que Azure llama ´expresionesª. As", crear un bot o aÒadir comprensiÛn de lenguaje a las apps es mucho m·s r·pido. Ofrecen 21 modelos de dominios, una cifra impresionante.

Y por cierto, tengo que dar la enhorabuena a Microsoft por su impresionante trabajo de documentaciÛn. Todo lo que necesita para ponerse en marcha con sus servicios est· disponible y f·cilmente accesible, incluyendo una explicaciÛn de las intenciones, entidades y expresiones, en caso de que le interese.

Vea la comprensiÛn del lenguaje en acciÛn

API de Bing Spell Check

La mayor"a de los servicios de IA de Microsoft Azure tienen nombres que se ajustan fielmente a su funciÛn, y este no es una excepciÛn. Bing Spell Check se asegura de que las palabras de los documentos y las b˙squedas web se escriban correctamente. Usted introduce un fragmento de texto en el servicio y este responde con un mensaje en formato JSON que destaca las palabras mal escritas y la puntuaciÛn de confianza del resultado.

API de Text Analytics

Estaba diciendo lo bueno que es Microsoft a la hora de poner nombre a sus servicios, pero puede que este sea la excepciÛn a la regla :).

La API de Text Analytics hace 3 cosas: an·lisis de opiniÛn, extracciÛn de frases clave y detecciÛn de idioma. No es exactamente lo que hubiera adivinado a partir del nombre ´Text Analyticsª. La API devuelve una puntuaciÛn de opiniÛn de 0 a 1 (1 es la m·s positiva).

Adem·s del lenguaje detectado, la API ofrece una puntuaciÛn de confianza entre 0 y 1, en la que 1 es (°lo ha adivinado!) 100% seguro. Hasta ahora, la extracciÛn de frases clave de Microsoft solo es compatible con unos pocos idiomas, pero hay una lista impresionante disponible en la vista previa. Puede ver la lista completa aqu".

API de Translator Text

La API de Translator Text entra dentro de la misma categor"a que la API de Translator Speech y Microsoft Translator. Como probablemente haya adivinado, la diferencia es que este servicio solo trabaja con textos. Detecta el idioma del texto y despuÈs lleva a cabo la traducciÛn solicitada. En la actualidad, Microsoft emplea traducciÛn con m·quinas neuronales (NMT) para este servicio, lo que les pone a la altura de AWS y Google desde un punto de vista tÈcnico.

Servicios de IA de Microsoft Azure: DecisiÛn

QnA Maker (vista previa)

QnA Maker es el servicio de preguntas frecuentes de Azure. Con Èl, crear una secciÛn de preguntas frecuentes es sorprendentemente f·cil. Solo tiene que dirigirlo a una fuente de preguntas y respuestas en online o subir un documento (admite .tsv, .pdf, .doc, .docx, y .xlsx) que estÈ bien formateado y tenga una tabla de contenidos y ponerle nombre a su servicio. °Listo! Azure se encarga del resto.

Este servicio est· diseÒado para combinarse con Azure Bot Service y proporcionar respuestas para un bot.

Custom Decision Service (vista previa)

Sugerir contenidos en funciÛn del historial de lectura de un usuario se ha vuelto cada vez m·s com˙n en diferentes sitios web y proveedores de contenido. Ahora, gracias a Custom Decision Service, esta funcionalidad est· disponible para los desarrolladores de a pie como yo a travÈs de una sencilla llamada a la API.

Custom Decision Service se esfuerza por entender el contexto de la informaciÛn que necesita. A medida que lo usa, va aprendiendo para ofrecer mejores sugerencias. TambiÈn va un paso m·s all· y experimenta con opciones nuevas, de manera que puede ajustarse a las tendencias emergentes.

Project Knowledge Exploration

Este servicio est· dirigido a acadÈmicos y se ubica dentro de lo que Microsoft llama Cognitive Services Labs. Toma una solicitud en lenguaje natural y la convierte en una expresiÛn de consulta estructurada para buscar en publicaciones acadÈmicas. TambiÈn tiene otras funcionalidades para ayudar a los investigadores, como el autocompletado.

Project Academic Knowledge

Otro servicio ubicado en Cognitive Services Labs. A partir de una solicitud en lenguaje natural, averigua la intenciÛn acadÈmica y recupera la informaciÛn solicitada usando Microsoft Academic Graph (MAG). En un minuto volveremos sobre este tema.

Este servicio tambiÈn calcula el grado de similitud entre dos art"culos, no solo en funciÛn de las palabras que contienen sino tambiÈn de su intenciÛn.

Quiz· se estÈ preguntando en quÈ consiste MAG. Seguramente Microsoft sea el m·s capacitado para responderle:

´Microsoft Academic Graph es un gr·fico heterogÈneo que contiene los registros de publicaciones cient"ficas y las relaciones de citas entre esas publicaciones, as" como los autores, instituciones, revistas, conferencias y ·reas de estudio. El gr·fico se usa para alimentar experiencias en Bing, Cortana, Word y Microsoft Academic. En la actualidad, el gr·fico se actualiza de manera semanalª.

Project Entity Linking

Este servicio es genial para dar contexto a la informaciÛn facilitada. Identifica ´entidadesª como la Tierra, EE.UU. o la Universidad de Florida (mi favorita :) ). DespuÈs, aÒade autom·ticamente un enlace a la p·gina de la entidad en Wikipedia para ofrecer contexto de manera autom·tica.

Servicios de IA de Microsoft Azure: Search

API de Bing Autosuggest

Este es simple: le permite ofrecer funcionalidades de escritura anticipada inteligentes en su aplicaciÛn. øA que ha sido f·cil de explicar?

API de Bing News Search

Otro servicio relativamente simple. Esta API devuelve:

  • Una imagen de la noticia.
  • Un enlace al art"culo.
  • InformaciÛn sobre la fuente.

API de b˙squeda web de Bing

Otro servicio sencillo: busca la web y devuelve el n˙mero de art"culos disponibles que coinciden con el tema y un subconjunto de estos art"culos en funciÛn del t"tulo, el enlace y la ˙ltima fecha de rastreo. Puede modificar varios par·metros, incluyendo si la b˙squeda debe ser ´seguraª y quÈ contenido quiere obtener (p. ej. noticias, im·genes, etc.).

API de Bing Entity Search

Este es otro servicio especializado, en l"nea con otras ofertas de Bing. Ofrece enlaces e informaciÛn sobre entidades (empresas, lugares, personas, libros, etc.) en lugar de enlaces a sitios web que mencionen las entidades.

API de Bing Image Search

La API de Bing Image Search obtiene im·genes en miniatura, URL, metadatos y m·s a partir de una solicitud.

API de Bing Video Search

Este servicio ofrece nombres y enlaces a los v"deos que coincidan con los tÈrminos de b˙squeda. La API de b˙squeda de v"deos de Bing tambiÈn permite ver vistas previas de los v"deos en los resultados y una gran cantidad de metadatos, como imagen, medio al que se atribuye, lugar donde fue grabado el v"deo, quiÈn lo publica, etc.

API de Bing Custom Search

Este servicio pone el poder de Bing Search en manos de los desarrolladores. Hay dos maneras principales de usar Bing Custom Search: Site Search y Custom Vertical Search. En ambos casos, las b˙squedas se llevan a cabo a travÈs de la interfaz gr·fica de Custom Search.

Con ella, puede aÒadir una lista de los sitios web en los que quiere buscar y solo aparecer·n resultados de estos sitios. TambiÈn puede destacar un sitio web en concreto. De esta manera, se asegura de que los resultados de su sitio web destacado que coincidan con la palabra clave aparezcan en primer lugar y los del resto de sitios a continuaciÛn.

Para buscar dentro de un sitio, solo tiene que introducir la direcciÛn del sitio web y Bing Custom Search se encargar· del resto. Para hacer una b˙squeda vertical personalizada, solo tiene que aÒadir las p·ginas web concretas que quiere rastrear y, una vez m·s, Bing Custom Search se encargar· del resto.

Microsoft ofrece incluso una interfaz de usuario alojada para que la use una vez que haya creado su b˙squeda. Puede hacer algunos pequeÒos cambios de diseÒo para ajustarse mejor a su sitio web. Para m·s informaciÛn, vea este fant·stico v"deo de demostraciÛn de Mahesh Balachandran

https://www.youtube.com/watch?v=d5skeIApBo4

Servicios de IA de Microsoft Azure: Aprendizaje autom·tico

Workbench

Workbench es la herramienta definitiva para los cient"ficos de datos. Es una aplicaciÛn de escritorio que permite a los cient"ficos de datos preparar datos, crear modelos de IA y revisar los resultados. Esta aplicaciÛn tambiÈn incluye varias visualizaciones ˙tiles de los datos. Incluye Jupyter Notebooks, una herramienta de uso obligado para los cient"ficos de datos.

Workbench tambiÈn admite lo que Azure llama ´By Example Transformationsª (´transformaciones a partir de ejemploª). Esta potente funcionalidad le permite visualizar una tabla con sus datos y, en una columna al lado de ellos, escribir cÛmo quiere que aparezca cada elemento de los mismos. Es m·s f·cil de entender viendo cÛmo funciona, as" que vea este v"deo. °Yo soy fan!

https://www.youtube.com/watch?v=9KG0Sc2B2KI

Para ver r·pidamente cÛmo funciona Workbench, eche un vistazo a este v"deo:

https://www.youtube.com/watch?v=tW1JV6bHXFA

Servicio de experimentos de Azure Machine Learning

Al combinar este servicio, Workbench y el servicio de gestiÛn de modelos (explicado en la secciÛn a continuaciÛn), puede obtener algo similar a SageMaker de AWS. Si este producto no le resulta familiar, consulte mi art"culo donde se resumen las funcionalidades de inteligencia artificial de AWS.

El servicio de experimentaciÛn funciona con Workbench y ofrece gestiÛn de proyectos, integraciÛn con Git, control de accesos, roaming y funciones para compartir. Le permite ejecutar sus modelos exactamente en el mismo entorno cada vez, solo que con diferentes algoritmos.

A continuaciÛn, registra el historial de ejecuciÛn y le ofrece la capacidad de ver el modelo que mejor se ajusta a sus necesidades. A la hora de hacer experimentos, es compatible con m·quinas nativas, Docker local, Docker en m·quinas virtuales y cl˙steres de Spark escalados (m·s sobre Spark a continuaciÛn).

Servicio de gestiÛn de modelos de Azure Machine Learning

Este servicio le permite implantar sus modelos en una amplia variedad de entornos. Requiere el uso de interfaces de l"nea de comandos, que almacenan sus modelos en im·genes de Docker. Una vez hecho esto, puede implantar sus modelos en m·quinas locales, servidores in situ, la nube y dispositivos perimetrales con internet de las cosas. Este servicio tiene mucho que ofrecer. Puede consultar m·s informaciÛn aqu".

Biblioteca de Microsoft Machine Learning para Apache Spark (MMLSpark)

Esta biblioteca incluye una integraciÛn de las canalizaciones de SparkML con Microsoft Cognitive Toolkit y OpenCV. Si est· usando Workbench y ejecutando sus experimentos en Docker, no necesita hacer nada m·s. Workbench emplea MMLSpark de manera autom·tica.

Data Science Virtual Machines (DSVM)

De la misma manera en que AWS cuenta con AMI de aprendizaje profundo prediseÒadas con componentes para realizar tareas de IA y aprendizaje autom·tico, los servicios de IA de Microsoft Azure incluyen m·quinas virtuales prediseÒadas listas para tareas de IA. Azure ofrece variedades para Linux y Windows con un n˙mero impresionante de aplicaciones preinstaladas, como Jupyter Notebooks, bases de datos (SQL y PostgreSQL), R, Python, etc. Puede ver la lista completa en su sitio web aqu".

Y lo mejor de todo, las DSVM de Azure ofrecen una variedad de ejemplos prediseÒados y Jupyter Notebooks de muestra para que pueda ponerse en marcha r·pidamente.

Data Science Virtual Machines (DSVM)

Azure Batch

Este potente servicio automatiza la ejecuciÛn de algoritmos de aprendizaje autom·tico en m˙ltiples conjuntos de datos. Activa los recursos necesarios para ejecutar c·lculos en paralelo y los desactiva inmediatamente cuando la tarea ha finalizado.

Este es el servicio de referencia para cualquier programador que necesite ejecutar algoritmos de aprendizaje autom·tico con grandes cantidades de datos.

___________________________________________________________________________________

En resumen, estos son los servicios de IA de Microsoft Azure.

Si quiere aprender trucos y estrategias pr·cticos para sacar todo el partido a la IA, °eche un vistazo a nuestro webinar a demanda!Chris Dunn