Microsoft AI Tour 2024 Paris

Roberto Navarro
12 min readMar 31, 2024

El Microsoft AI Tour ha sido un evento de alcance global enfocado en las nuevas oportunidades y el poder transformativo de la inteligencia artificial desplegada por Microsoft. Se ofrecieron dos modalidades: una dirigida a profesionales de negocios, o como denomino Microsoft “Decision Makers”, y otra más orientada a perfiles técnicos o desarrolladores. Este evento técnico ha recorrido diversas capitales mundiales.

Personalmente, no quise perderme esta oportunidad, y gracias al programa de Advanced Learning de Data & Analytics en NTT DATA, me embarqué rumbo a París.

Desde la entrada al evento, quedó claro que sería una experiencia imponente, ya que se celebraba en los bajos del Louvre.

El evento en sí resultó espectacular, con la presencia de participantes procedentes de diversas partes de Europa, aunque con una mayor representación francesa, mostrando un gran interés en conocer las ofertas actuales de Microsoft en el ámbito de la inteligencia artificial. En cuanto a oferta, para que os hagáis una idea, además de la Keynote, se organizaron 16 Breakout Sessions sobre temas específicos distribuidas en 4 tracks. También se llevaron a cabo 6 Workshops con temáticas diversas, todo ello simultáneamente. En el área de networking, se encontraban las Connection Hub, donde se desarrollaban charlas cortas sobre diversos temas relacionados, de forma paralela a las Breakout Sessions y los Workshops.

En cuanto a la temática:

  • Se abordaron diversos puntos relacionados con la inteligencia artificial generativa, incluyendo el Prompting, las arquitecturas RAGs, LLMOps, la multimodalidad con modelos de Visión, entre otros aspectos fundamentales para el desarrollo de modelos de IA generativa.
  • Los copilots también tuvieron su espacio, abordando temas como Github, Microsoft 365, seguridad, y otros aspectos relevantes.
  • Se presentaron y demostraron los diferentes servicios disponibles, como Azure AI Studio (modelos de IAG, Prompt Flow, entre otros), Microsoft Fabric y Copilot Studio.
  • También se trataron temas de Inteligencia Artificial Responsable (RAI), y NVIDIA ofreció varias charlas y workshops.

Así que como podéis imaginar, no me fue posible asistir a todas las charlas y workshops de este largo día. Por ello, fue necesario realizar una planificación detallada con alternativas para no perderse ningún detalle de lo más relevante, y que os contaré ahora.

Aquí os dejo la agenda, por si queréis echarla un vistazo Microsoft AI Tour -Paris.

Disclaimer: Pido perdón por adelantado por la calidad de las imágenes…

KeyNote

Como era de esperar, la Keynote estuvo a la altura de las expectativas, abordando todos los puntos relevantes relacionados con la inteligencia artificial y la IA generativa. En donde destacaría.

  • Durante la presentación, se hablo mucho sobre los Copilots y como son una pieza clave en el ecosistema de Microsoft. Se hizo hincapié en la versión específica para Microsoft 365, donde Microsoft Graph juega un papel fundamental al almacenar toda la información y documentación de los usuarios. Se presentó Security Copilot como la primera solución completa basada en IA generativa, así como Copilot Studio, que cuenta con más de 1100 plugins y conectores listos para su implementación en el desarrollo.
  • Posteriormente, se abordó el desarrollo de modelos de IA generativa, con una sorprendente demostración por parte de Seth Juarez, conocido por todos, quien realizó una impresionante demostración en vivo sobre el uso de Prompt Flow integrado con Visual Studio.
  • Microsoft ofrece múltiples bases de datos en la era de la inteligencia artificial, como Azure SQL, CosmosDB, Redis y MongoDB, adaptadas a la variabilidad de las cargas y del tráfico de datos, globalmente distribuidas y preparadas para procesos en tiempo real.
  • Se presentó Microsoft Fabric, que proporciona un entorno unificado donde todos los datos están unificados en OneLake o accesibles a través de shortcuts, y está listo para la IA generativa.
  • Se destacaron las ventajas de Azure AI Search, como la búsqueda vectorial, búsqueda por palabras clave, reordenamiento, entre otros.
  • Se hizo un repaso de las características más importantes en Azure AI Studio, como la disponibilidad de múltiples modelos como servicios, listos para usar a través de APIs, con capacidad de realizar ajustes finos e integrados con las herramientas LLM más importantes. Se destacó el ciclo completo del desarrollo, que abarca desde la integración de datos hasta búsquedas semánticas e híbridas, además de una capa de seguridad y RAI.
  • Por último, se subrayó nuevamente que Azure AI se basa en la confiabilidad y propiedad de los datos, así como en la cobertura legal para el uso de los servicios de Azure OpenAI.

Breakout session

La elección de las charlas fue un proceso complicado, como mencioné anteriormente, dado el amplio abanico de opciones. Opté por asistir a 2 charlas para dejar espacio para los workshops, aunque no puedo negar que me hubiera gustado poder asistir a más.

Vector search and state of the art retrieval for Generative AI apps

Esta charla fue impartida por Alvaro Videla, Senior Cloud Developer Advocate en Microsoft, un auténtico fenómeno. Nos brindó una charla magistral sobre la situación actual de los RAGs o Retrieval Augmented Generation. Sin exagerar, tomé más de 50 fotos durante la presentación, las cuales evidentemente no voy a compartir aquí, pero sí quiero resaltar los puntos que consideré más relevantes, aunque me quedaré corto al no poder incluir todos los detalles.

La charla comenzó con una explicación detallada sobre las arquitecturas RAGs y su importancia para que los LLMs puedan desempeñar su función. Se destacó que estos modelos de IA generativa no son capaces de almacenar toda la información del mundo, por lo que es necesario proporcionarles esta información a través del prompt. A partir de estos extractos de información, el modelo puede generar respuestas. Se resaltó que los modelos clásicos de búsqueda no funcionan adecuadamente en este contexto, ya que para localizar similitudes es necesario basarse en la similitud semántica en lugar de la similitud léxica, como se ilustró en el ejemplo presentado.

Por lo tanto, es crucial desarrollar sistemas que sean robustos, y para lograrlo, la calidad de los datos es fundamental. Es importante tener precaución con las búsquedas basadas en la similitud de palabras, ya que pueden presentar problemas. En cambio, las búsquedas basadas en vectores resultan más robustas ante las variaciones en las palabras, morfología, derivaciones, entre otros aspectos.

Para esto, se utilizan vectores o embeddings, donde el archivo se divide en trozos o “chunks”, generando un vector representativo para cada uno de estos fragmentos de texto. Esto nos permite representar la carga semántica de cada trozo de texto. Las bases de datos vectoriales nos permiten realizar búsquedas para localizar aquellos vectores más similares entre sí, gracias a la distancia del Coseno. En el siguiente repositorio de GitHub, se encuentra el código utilizado en la demo:

https://github.com/pamelafox/vector-search-demos

Hasta este punto, se cubrieron muchos conceptos básicos y muy interesantes, lamentablemente, no puedo compartir la charla de Alvaro, pero muchos de los conceptos que se abordaron los podéis revisar en un video que publique con las bases de las IAs Generativas.

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

Centrándonos en las bases de datos vectoriales, estas nos proporcionan un almacenamiento indexado de los vectores, así como la metadata asociada, diversas estrategias de indexación y recuperación, filtrado por metadatos, y control de accesos. Si os preguntáis qué significa “filtrado por metadato”, imaginad una situación en la que tenéis una gran cantidad de documentos en vuestra base de datos, pero solo queréis buscar uno de ellos. Entonces, podéis utilizar el nombre del archivo como un metadato, y al realizar la búsqueda, indicáis que pre-filtre por aquellos “chunks” que pertenezcan al fichero en cuestión.

Otro punto relevante al que a menudo se le presta poca atención son las estrategias de búsqueda vectorial. Además de la distancia del coseno y la estrategia mencionada anteriormente, existen otras estrategias, alternativas o aproximaciones, como las que Alvaro nos contó y de la cual les dejo algunas imágenes.

“Relevancia”, un término que, a pesar de conocer su significado, no había utilizado en este contexto. La calidad de los resultados que nos proporcione nuestro LLM está íntimamente relacionada con la calidad de la información que le proporcionamos. Si le pasamos muchos o pocos “prompts”, o si estos son muy largos o demasiado cortos, dependerá de nuestro caso de uso. Es conveniente aplicar diferentes técnicas de recuperación de información, como la aplicación de técnicas de RRF (Reciprocal Rank Fusion).

Este concepto de RRF es la base para las búsquedas hibridas y el reranking que podemos tener en Azure OpenAI

Prompt Engineering to Production with LLMOps

Esta sesión fue impartida por el gran Seth Juarez, a quien he estado siguiendo desde hace varios años. Su enfoque fue mucho más práctico que el del presentador anterior, por lo que lamentablemente no puedo ofrecer tantos detalles sobre todo lo que hizo durante su sesión, sin embargo, aquí os dejo el repositorio de la demo y algunas píldoras de su conocimiento.

https://aka.ms/aitour/contoso-chat

A la hora de poner en producción nuestra aplicación basada en IA Generativa, es crucial entender que la evaluación de nuestros flujos de “prompting” es fundamental y debe realizarse de forma regular. Para ello, herramientas como Prompt Flow nos ayudan a crear estas evaluaciones y aplicarlas de forma automatizada.

Los puntos principales a tener en cuenta a la hora de realizar la evaluación son la “Groundness”, la “Relevance” y la “Coherence”.

Para realizar esta automatización, disponemos de varias opciones:

  • Azure CLI
  • Azure ML CLI
  • PF Azure Cli

Un punto interesante que mostró Seth fue el de tener un flujo o “prompt Flow” RAG con un clasificador de intenciones. De esta manera, según la pregunta del usuario, podemos dividir el flujo según esa intención, por ejemplo, determinando si se requiere un enfoque de chat o de soporte.

En donde como resumen:

  • Utilizando técnicas de ingeniería de “prompt” para dividir la tarea en tareas más pequeñas, podemos mejorar la calidad de las respuestas. Esto se logra creando los flujos de soporte y chat por separado.
  • Dado que la gente suele hacer la misma pregunta de muchas maneras diferentes, reescribir la pregunta para “normalizarla” puede proporcionar resultados más precisos y coherentes.
  • Por último, para crear un endpoint que enrute el tráfico, podemos agregar un “prompt Flow” inicial que utilice un LLM para clasificar la intención y llamar al servicio correcto. Esto podría expandirse a muchas clases y utilizarse para llamar a cualquier tipo de endpoint.

Por último, debemos tener en cuenta que los flujos de LLMOps que tienen este tipo de aplicaciones basadas en IAG son diferentes que los que estamos acostumbrados en el ML, y que podemos ver en la siguiente imagen

Workshops

En cuanto a los workshops, asistí a dos, los cuales eran eminentemente prácticos, por lo que podré dar poca información al respecto. Sin embargo, os pasaré las direcciones de estos workshops, ya que están disponibles en Internet. Lo mejor, o con lo que me quedo, es con los instructores, siempre dispuestos a resolver todas nuestras dudas y ayudarnos.

Get started with data science in Microsoft Fabric

El objetivo de este laboratorio era explorar las capacidades principales que nos proporciona Microsoft Fabric para los Data Scientists. Como introducción, os dejo un enlace que la organización ha proporcionado con recursos para Fabric.

Fabric-Readiness/events/2024-microsoft-ai-tour.md

También os dejo el enlace a un video resumen de las capacidades de Fabric en el que publico uno de los instructores Ismael Mejia y que os recomiendo ver, son 10 minutos, y merece la pena

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

Centrándonos en los workshops, tuvimos 3 laboratorios distintos en donde vimos diferentes aspectos del desarrollo de modelos de Machine Learning en Fabric

1. 08a-data-science-explore-data

Objetivo: En este laboratorio, usaremos cuadernos para la exploración de datos. Los cuadernos son una herramienta eficaz para explorar y analizar datos de forma interactiva. Durante este ejercicio, aprenderemos a crear y usar cuadernos para explorar un conjunto de datos, generar estadísticas de resumen y crear visualizaciones para comprender mejor los datos. Al final de este laboratorio, comprenderá de forma sólida cómo usar cuadernos para la exploración y el análisis de datos.

2. 08c-data-science-train.html

Objetivo: En este laboratorio, entrenará un modelo de aprendizaje automático para predecir una medida cuantitativa de la diabetes. Entrenará un modelo de regresión con Scikit-learn, hará un seguimiento y comparará los modelos con MLflow.

Al completar este laboratorio, obtendrá experiencia práctica en aprendizaje automático y seguimiento de modelos, y aprenderá a trabajar con cuadernos, experimentos y modelos en Microsoft Fabric.

3. 08d-data-science-batch.html

Objetivo: En este laboratorio, usará un modelo de aprendizaje automático para predecir una medida cuantitativa de la diabetes.

Al completar este laboratorio, obtendrá experiencia práctica para generar predicciones y visualizar los resultados.

Developing a production-level RAG workflow

De cara a realizar este laboratorio, primero tuvimos una pequeña introducción en donde vimos los puntos mas relevantes o importantes a la hora de poner nuestro sistema RAG en producción.

Lo primero es entender el cambio de paradigma que se produce entre el MLOps y el LLMOps, ya que los actores, las tareas a realizar, los entregables, etc. son diferentes, en la siguiente imagen tienes cuales son los puntos principales.

En la charla de Seth Juarez “Prompt Engineering to Production with LLMOps”, que repitió como tutor en esta ocasión, tuvimos una primera aproximación al ciclo de vida para el desarrollo de los modelos LLM. Sin embargo, no entramos mucho en detalle. En este laboratorio, pudimos adentrarnos en cada uno de los pasos que componen este ciclo de vida.

Aquí podemos ver cómo debemos trabajar en primer lugar en la ideación y exploración de nuestros flujos de trabajo a través de Prompt Flow. Una vez que lo tenemos claro, debemos trabajar e iterar hasta conseguir que los flujos sean los adecuados y cubran todas las necesidades del caso de uso. Por último, tenemos la operacionalización de nuestro Prompt Flow, desplegándolo y monitorizándolo para que pueda ser consumido desde la aplicación que lo necesite.

En cuanto al laboratorio, el objetivo era implementar la aplicación “Contoso-chat”, la cual se basa en una arquitectura RAG como la mostrada en el siguiente flujo

Como premisas para el desarrollo debíamos tener en cuenta lo siguiente:

Aquí os dejo el enlace de github por si queréis ver el detalle del mismo o incluso haceroslo. Azure-Samples/contoso-chat

Que me llevo:

Aquí os dejo mis take aways de este fantástico día

  1. La importancia de aplicar técnicas de prompting Engineering para mejorar la calidad de las respuestas de los modelos de IA Generativa.
  2. La necesidad de evaluar y ajustar continuamente los flujos de prompting para garantizar su relevancia, coherencia y eficacia.
  3. La utilidad de herramientas como Prompt Flow para la creación, evaluación y automatización de flujos de prompting en aplicaciones basadas en IA Generativa.
  4. El enfoque práctico y detallado del ciclo de vida para el desarrollo de modelos LLM, destacando la importancia de la ideación, la iteración y la operacionalización.
  5. La disponibilidad de recursos en línea para profundizar en los conceptos y técnicas presentadas, lo que subraya la importancia del aprendizaje continuo en el ámbito de la IA Generativa.

Y a nivel personal

  • Mucho conocimiento, y ganas de seguir aprendiendo de este mundo de la IA y de la IA Generativa.
  • Compartir este conocimiento en post como este, y replicar los workshops con la comunidad, en breve montaremos el workshop de Fabric a través del meet-up de @Azurebrains, y el de Contoso para un poco más adelante.

https://www.meetup.com/azurebrains-comunidad-global-ai-spain/

  • Multitud de pegatinas, que repartiré en los eventos en los que participe.

--

--