Microsoft Build 2020: Novedades en IA & Realidad Mixta
El 19 y 20 de Mayo pasado la conferencia de Microsoft más importante para desarrolladores se ejecutó en un formato virtual, donde por 48 horas ininterrumpidas la compañía de Redmond brindó contenidos técnicos de todo tipo.
En esta publicación te vamos a contar lo más importante relacionado a Inteligencia Artificial, incluyendo: Inteligencia Artificial Responsable, la Supercomputadora anunciada por Microsoft, aplicaciones conversacionales, proyectos de uso industrial y HoloLens fueron algunos de los principales temas tratados.
Si querés ver un resumen general del Build 2020, visitá la siguiente publicación.
[toc]
Inteligencia Artificial Responsable
En colaboración con el comité de AETHER (AI and Ethics in Engineering and Research), que incluye a los principales líderes de las organizaciones legales, de investigación, de consultoría y de ingeniería de Microsoft, la marca está llevando la iniciativa de “Responsible AI” (Inteligencia Artificial responsable) hacia Azure, y puntualmente a través de kits de herramientas de código abierto.
El objetivo fundamental es brindar a los científicos de datos y desarrolladores la posibilidad de comprender modelos de aprendizaje automático, a la vez que se protege a las personas, sus datos, y se audita el proceso completo de extremo a extremo.
Entre los anuncios del Build 2020 relacionados a este tema, pondremos foco en tres: Interpret, Fairlearn y Differential Privacy.
Interpret
Interpret es un paquete open source que incorpora técnicas de interpretación, para que los científicos de datos y desarrolladores puedan entrenar los modelos a los que tenemos acceso, y brindar ciertas explicaciones sobre dicho modelo a los sistemas que lo consumen y a los que no se tiene acceso.
Podes brindar estas capacidades de interpretabilidad es esencial para podes responder a las siguientes preguntas:
- Depuración de modelos: ¿por qué mi modelo cometió este error?
- Detección de problemas de equidad: ¿discrimina mi modelo?
- Cooperación humano-IA: ¿cómo puedo entender y confiar en las decisiones del modelo?
- Cumplimiento normativo: ¿cumple mi modelo los requisitos legales?
Interpret puede ayudar a aplicaciones de alto riesgo para los ciudadanos: como asistencia sanitaria, finanzas y judicial, para resguardar a las personas y a la vez aprovechar la potencialidad de AI
Fairlearn
Fairlearn, por su parte, es otro paquete open source desarrollado en Python, que permite a los desarrolladores de AI evaluar la equidad de su sistema y mitigar problemas de injusticia.
Los sistemas de inteligencia artificial pueden comportarse injustamente por una variedad de razones. Farilearn ayuda a detectar esto en términos de su impacto en las personas, es decir, en términos de daños. Este paquete se enfoca en dos tipos de daños:
- Daños por Alocación: en el caso que los sistemas de IA amplíen o retengan oportunidades, recursos o información. Ejemplos prácticos: sistemas de inteligencia artificial que ayuden en contratación, préstamos, o selección de aspirantes para el sistema educativo.
- Daños por Calidad de Servicio: se refiere a si un sistema funciona tan bien para una persona como lo hace para otra, incluso si no se extienden o retienen oportunidades, recursos o información.
La pregunta que ayuda a desarrolladores y científicos de datos es: ¿qué grupos de personas están en riesgo de sufrir daños? De esta manera se pueden especificar grupos relevantes y son específicos de la aplicación.
Differential Privacy
El aprendizaje automático se usa, cada vez más, en escenarios que involucran información confidencial. Puede ser el caso de información médica de un paciente, datos económicos de clientes, e incluso datos de telemetría de usuarios.
La Privacidad Diferencial es un estándar para la protección de privacidad, desarrollado en conjunto por Microsoft, el Instituto de Ciencias Sociales Cuantitativas de Hardvard (Harvard’s Institute for Quantitative Social Science – IQSS) y la Escuela de Ingeniería y Ciencias aplicadas (School of Engineering and Applied Sciences – SEAS).
Según indica Microsoft, en los últimos años aprovechó la privacidad diferencial en escenarios de telemetría en Windows, las consultas de los anunciantes en LinkedIn, las respuestas sugeridas en Office y los paneles de los administradores en Workplace Analytics.
WhiteNoise está diseñado como una colección de componentes que se pueden configurar de manera flexible para permitir a los desarrolladores utilizar la combinación correcta para sus entornos. La biblioteca de código disponible en GitHub proporciona algoritmos y mecanismos con implementaciones basadas en investigaciones maduras de privacidad diferencial.
Se basa en dos pasos:
- Agrega una pequeña cantidad de ruido estadístico a cada resultado para enmascarar la contribución de los puntos de datos individuales. Este “ruido” es lo suficientemente significativo para proteger la privacidad de un individuo, pero lo suficientemente pequeño como para que no afecte la precisión de las respuestas extraídas por analistas e investigadores.
- La cantidad de información revelada de cada consulta se calcula y se deduce de un presupuesto general de pérdida de privacidad, lo que detendrá consultas adicionales cuando la privacidad personal pueda verse comprometida.
Supercomputer AI & Microsoft Turing
En colaboración con OpenAI, Microsoft ha creado una de las 5 supercomputadoras más potentes del mundo y la alojó en Azure.
Esta supercomputadora es capaz de entrenar modelos de inteligencia artificial extremadamente grandes, y representa un hito clave en la asociación anunciada el año pasado para crear, conjuntamente con OpenAI, nuevas tecnologías de supercomputación en Azure.
¿Qué tan grande es esta supercomputadora? Según información oficial, cuenta con más de 285 mil núcleos de CPU, 10 mil GPUs y 400 gigabits por segundo de conectividad de red para cada servidor GPU. Sorprendente ¿verdad? Y además, al “ser” Azure, cumple con todos los compromisos de emisiones libres de carbono.
¿Por qué es destacada esta noticia? Y, por otro lado: ¿por qué podría interesarte si eres desarrolador? Para poder responder esto, primero vamos a ponernos en contexto:
- Con cada vez más frecuencia, más y más organizaciones utilizan aprendizaje automático. ¿Cómo? A través de pequeños modelos de IA que utilizan muchos ejemplos etiquetados y repetitivos para aprender sobre una tarea en particular. Por ejemplo: saber si un operario tiene puesto un casco. Para ello se le dan al modelo (que es específico para esa tarea) miles de fotos con ejemplos de personas con cascos bien puestos, deficientemente puestos y sin ponerselo. De esta manera el modelo “aprende”.
- La comunidad de investigación de IA ha demostrado, en los últimos años, que se pueden tomar varias de esas tareas (pequeñas) con un solo modelo masivo y grande, que examina millones de registros de manera más eficiente. Por supuesto, para eso se necesita hardware, muy grande, para poder ejecutarlo.
- Como parte de una iniciativa de inteligencia artificial a gran escala, Microsoft desarrollo su propia familia de grandes modelos de inteligencia artificial. Uno de ellos, llamado “Microsoft Turing”, está enfocado en absorber profundamente los matices del lenguaje, la gramática y otros aspectos para la generación de lenguaje natural, y lo utilizó para mejorar varios de sus productos: entre ellos Bing, Office, Dynamics y otros.
- A principios de este año, Microsoft lanzó para los investigadores Microsoft Turing para investigadores de todo el mundo, convirtiéndolo (según dice la marca) el modelo de lenguaje AI más grande disponible públicamente en el mundo.
Luego de haber entrado en contexto, lo importante para todo desarrollador es que, según la compañía, están en curso planes para que sus grandes modelos de inteligencia artificial y recursos de supercomputación estén disponibles para todos a través de los servicios de inteligencia artificial de Azure y GitHub.
Hoy ya podrás acceder al Proyecto Turing con vista previa de aprobación, la cual se obtiene a través del siguiente enlace.
Proyectos Bonsai & Moab
Microsoft anunció la vista previa pública del Proyecto Bonsai, una plataforma para construir sistemas de control industrial autónomos. Asimismo, también presentó kit de hardware de enseñanza de máquina para sistemas autónomos llamado Projecto Moab diseñada para familiarizar a los ingenieros y desarrolladores con la funcionalidad de Bonsai.
Bonsai es un servicio de “Machine Teaching” (enseñanza a máquinas) destinado a los sistemas de control que forman parte de la maquinaria en sectores como la fabricación, procesamiento químico, construcción, energía y minería. El proyecto Bonsai combina aprendizaje automático, calibración y optimización para brindar autonomía a los sistemas de control a través de sus brazos robóticos, cuchillas niveladoras, carretas elevadoras, taladros subterráneos, vehículos de rescate, parques eólicos y muchos ejemplos más.
Por supuesto, no es una tarea fácil, y desarrollar algoritmos de inteligencia artificial y aprendizaje automático sobre este tipo de sistemas requiere de experiencia y personal calificado. Es aquí donde el Proyecto Bonsai intenta unir esta experiencia requerida con un kit de herramientas de simulación alojado en Microsoft Azure, y al que ya se puede tener acceso.
Para los ingenieros y desarrolladores interesados en comenzar a experimentar con el Bonsai, Microsoft creó el Projecto Moab, un kit de hardware que está disponible como simulador en MathWorks y pronto un kit físico para impresoras 3D. Los desarrolladores que no deseen imprimirlo ellos mismos podrán comprar unidades completamente ensambladas más adelante en el año.
Básicamente Moab es un robot de tres brazos con un controlador de joystick que intenta mantener una bola equilibrada en una placa transparente unida al imán, y está destinado a brindar a los usuarios un entorno en el que puedan aprender y experimentar con simulaciones.
El equilibrio de bolas es un desafío clásico de ingeniería mecánica que se conoce como un problema de control de tipo regulador.Dada cualquier condición, un sistema de autoequilibrio debe aprender una señal de control para producir el estado final deseado, es decir, una bola que descansa en el centro de la plataforma. Las formas más clásicas de resolverlo implican ecuaciones diferenciales, que representan cantidades físicas y sus tasas de cambio. Pero el Proyecto Moab busca descubrir soluciones de aprendizaje automático para el problema.
Bot Framework & Bot Service
Bot Framework & Azure Bot Service son dos componentes fundamentales para crear, administrar y conectar bots:
- Por un lado, Bot Framework se compone de un SDK de código abierto y herramientas para el desarrollo de bots que ayudan a los desarrolladores de extremo a extremo.
- Por otro lado, Azure Bot Service ayudan a administrar, conectar e implementar bots en dispositivos y canales populares.
Juntos, componen un starter kit fundamental para cualquier desarrollador que quiera generar aplicaciones conversacionales con tecnología Microsoft.
Vamos a explorar las novedades anunciadas en el Build 2020 sobre ellos.
Bot Framework Composer
Se anunció la disponibilidad general de Bot Framework Composer, un entorno que reune compoonentes claves para el desarrollo de chatbot, incluido LUIS (Language Understanding), QnA Maker (base de conocimientos con capacidades avanzadas) y Language Generation. Incluye:
- Editor de diálogo visual.
- Herramientas para capacitar y gestionar la comprensión del lenguaje.
- Sistema de generación de lenguage y plantillas.
Además, Composer nos ayuda en crear habilidades contextuales para nuestro bot, conocidas como “Skills”.
Para los desarrolladores experimentados en Bot Framework SDK, podrán notar las siguientes diferencias con respecto a Bot Framework Composer:
- Se puede simplificar el manejo de interrupciones y dar “caracter” a los bots, a través del uso de Diálogos Adaptativos (Adaptive Dialogs).
- El diseño visual de Composer elimina la necesidad de crear código repetitivo y centrarse más en la funcionalidad.
- Ahorro de tiempo para configurar el entorno de trabajo.
- Por último, las aplicaciones creadas con Composer usan el formato de Diálogo Adaptativo (Adaptive Dialog Format), que es una especificación JSON compartida por muchas herramientas proporcionadas por Bot Framework.
Human Hand-Off
¡Una gran noticia! Ahora Bot Service simplifica el esfuerzo requerido para admitir transferencia a humanos, gracias a la integración con canales populares de servicio de atención al cliente como LivePerson y Dynamics OmniChannel.
Independientemente de la cantidad de “inteligencia artificial” que posea un bot, aún pueden existir momentos en los que se necesite que nuestro clientes o usuario charle con un ser humano. Y en este caso, la capacidad anunciada “Human Hand-Off” nos brindará la posibilidad de entregar y proporcionar al usuario una transición sin problemas, y sin excesivo código personalizado como estabamos obligados a desarrollar hasta ahora.
En “Protocolo” de Hand-Off tiene dos componentes:
- El contexto de la solicitud de transferencia necesaria para enrutar la conversación al agente correcto.
- La transcripción de la conversación. El agente puede leer la conversación que tuvo lugar entre el cliente y el bot antes de que se iniciara la transferencia.
Bot Framework soporta dos modelos de integración con plataformas de agentes:
- Bot como Agente: en este caso, el bot se une “a las filas” de los agentes activos conectados al centro de atención al cliente, y responde solicitudes de los usuarios como si las solicitudes vinieran de cualquier otro canal. La conversación puede escalar a un agente humano, momento en el cual el bot se desconecta de la conversación activa.
- Bot como Proxy: En este caso, el usuario siempre habla directamente con el Bot, hasta que el bot “decide” que necesita la ayuda de un ser humano. En este caso, existe un componente enrutador (Message Router) que redirige la conversación a un concentrador de agentes, para luego hacer el hand-off a una persona real. En este caso, un poco más complejo que el anterior, el Bot sigue estando en el medio y actúa como un Proxy, de modo tal que el bot puede recopilar la transcripción de la conversación, filtrar mensajes o agregar contenido adicional tanto para el agente como para el usuario.
Azure Cognitive Services
Durante el Build se anunciaron las siguientes capacidades disponibles en forma general:
- Computer Vision – Advanced text extraction: Read 3.0, disponible en forma general para los siguientes idiomas: inglés, español, francés, alemán, portugués, italiano y holandés. Read 3.0 en contenedores está en preview.
- Contenedores: desplegar Servicios Cognitivos en cualquier lugar desde la nube hacia contenedores en el borde de la infraestructura. LUIS & Text Analytics con análisis de sentimientos en contenedores ahora está en vista pública.
- LUIS – Nuevo Portal: con una experiencia de etiquetado renovada, que facilitan la construcción de intenciones, expresiones y entidades.
- QnA Maker – Capacidades avanzadas de edición + colaboración: este servicio, que produce bases de conocimiento con un set de preguntas y respuestas, agregó la capacidad de RBAC (Role-based Access Control) y funciones de texto avanzadas en relación a su formato.
- Speech: novedades en Speech to Text para cubrir 27 nuevas localizaciones de idioma y una mejora de aproximadamente el 30% en la exactitud de transcripción. También novedades en Text to Speech neutral, con mayor localización y 15 nuevas voces.
Por otro lado, también se anunciaron las siguientes nuevas capacidades en preview:
- Personalizer – Modo Aprendiz: Azure Personalizer es un servicio que ayuda a nuestras aplicaciones a elegir el mejor contenido que se mostrará a cada usuario, en función a infomación que recolecta en tiempo real y basado en variables configurables. Esto, en el mundo real, requiere tiempo de aprendizaje para la herramienta. Microsoft anunció el “modo aprendiz”, que permite omitir la curva de aprendizaje inicial al implementar el servicio, permitiendo aprender en tiempo real junto con las aplicaciones existentes pero sin exponerse a los usuarios finales hasta que su rendimiento sea aceptable.
- Pronunciation Assessment: permite evaluar la pronunciación de alguien que habla y brinda comentarios en tiempo real sobre la precisión y fluidez del audio. Casos de uso: aprendizaje de idiomas. Actualmente admite inglés americano solamente, y pronto esperamos que se amplíe a más idiomas.
- Speaker Recognition: extendiendose a 8 idiomas, facilita la verificación de speakers y su identificación con sus características únicas.
Azure Cognitive Search
Azure Cognitive Search es un servicio de búsqueda basado en la nube con capacidades de inteligencia artificial integradas, que permiten enriquecer todo tipo de información para identificar y explorar contenido relevante.
Ya durante el Build 2019 realizado en Seattle se había presentado una demostración de sus capacidades con las 34 mil páginas de archivos desclasificados en el 2017 sobre el caso John F. Kennedy. Esta demostración aún está online y figura el final de esta sección.
En marco del Build 2020 se anunciaron capacidades en preview, destacando:
- Capacidad de Ranking con Machine Learning: como aprendizaje de refuerzo, para poder ajustar continuamente los resultados a medida que los usuarios interactúan con el contenido.
- Integración con Machine Learning Skills.
HoloLens 2
HoloLens es el dispositivo insignia de Windows Mixed Reality, anteriormente conocido como Windows Holographic. Es una plataforma de realidad mixta que proporciona experiencias holográficas y de realidad mixta. HoloLens permite presentar en vivo elementos físicos del mundo real con la de elementos virtuales (llamados “hologramas”. Es un dispositivo usado por muchos desarrolladores para crear nuevas experiencias para individuos y empresas.
HoloLens 2 es una nueva versión del hardware que fue anunciado en Febrero de 2019. En el Build 2020, Microsoft anunció una serie de nuevas características que incluyen:
- Lanzamiento en más mercados del mundo, inicialmente 25 nuevos.
- Soporte para 5G.
- Integración con Windows AutoPilot.
- Posibilidad de inscribir HoloLens en administración de dispositivos empresarial como MDM.
- Nuevo modo oscuro y comandos de voz a través de una futura actualización de software.
Azure Spatial Anchors
Azure Spatial Anchors es una capacidad que permite a los desarrolladores crear aplicaciones de realidad mixta que “mapean, persisten y comparten contenido 3D a escala del mundo real”.
Esta capacidad utiliza servicios de Microsoft Azure, y en el Build 2020 está generalmente disponible para todos, con los dispositivos compatibles que son: HoloLens, y también dispositivos iOS y Android.
¡Feedback!
Gracias por escuchar / ver / leer esta publicación. No dejes de brindarnos feedback o compartir tus experiencias con nosotros.
Sobre el Autor
Professor. Techie. Ice cream fan (dulce de leche). My favorite phrase: “Todos los días pueden no ser buenos … pero hay algo bueno en todos los días”.
Currently I´m Engineering Manager at MODO (https://modo.com.ar), the payment solution that allows you to connect your money and your world to simplify everyday life. Modo is a payment solution in which you can send, order and pay from your mobile device in the safest, most practical and convenient way.
I enjoy a lot of educational, technological talks and a good beer. If you want to talk, write me to pablodiloreto@hotmail.com.