Curso: Microsoft Azure INA. Tema03: Módulo 02: Elija el mejor servicio de IA para sus necesidades

https://docs.microsoft.com/es-mx/learn/modules/ai-machine-learning-fundamentals/2-identify-product-options

Unidad 1: Introducción

La inteligencia artificial (IA) es una categoría de la informática que adapta y mejora su capacidad de toma de decisiones a lo largo del tiempo en función de sus éxitos y errores. Microsoft Azure proporciona varias soluciones de IA entre las que puede elegir, cada una de las cuales depende del problema que esté tratando de resolver.

Tailwind Traders, un distribuidor tradicional con tiendas físicas que ha experimentado un crecimiento explosivo de sus ventas en línea, se enfrenta a desafíos emocionantes en su cometido para mejorar sus operaciones de comercio electrónico y servicio. Los servicios de inteligencia artificial de Microsoft pueden ser una buena elección para una de las nuevas iniciativas de la empresa, pero Tailwind Traders necesita ayuda para comprender mejor qué opción de producto es mejor para cada escenario.

Unidad 2: Identificación de las opciones de producto

  • La IA es una clasificación amplia de la informática que permite que un sistema de software perciba su entorno y tome medidas que maximicen sus probabilidades de éxito a la hora de lograr sus objetivos.
  • El objetivo de la IA es crear un sistema de software que pueda adaptarse o aprender algo por sí mismo sin estar programado explícitamente para hacerlo.
  • Existen dos enfoques básicos en la IA.
    • El primero consiste en emplear un sistema de aprendizaje profundo que se modela en la red neuronal de la mente humana, lo que le permite descubrir, aprender y crecer a través de la experiencia.
    • El segundo enfoque es el aprendizaje automático, una técnica de la ciencia de datos que usa los datos existentes para entrenar un modelo, probarlo y aplicarlo a nuevos datos para pronosticar comportamientos, resultados y tendencias futuros.
  • Las previsiones o predicciones del aprendizaje automático pueden hacer que las aplicaciones y los dispositivos sean más inteligentes.
  • Por ejemplo, al realizar una compra en línea, el aprendizaje automático impulsa los sistemas de recomendación de productos que ofrecen productos adicionales en función de lo que ha comprado y lo que han comprado otros compradores que han adquirido artículos similares en el pasado.
  • El aprendizaje automático también se usa para detectar fraudes de tarjetas de crédito analizando cada nueva transacción y usando lo que se ha aprendido a través del análisis de millones de transacciones fraudulentas.
  • Prácticamente cualquier dispositivo o sistema de software que recopila datos textuales, visuales y de audio podrían alimentar un modelo de aprendizaje automático que haga que ese dispositivo o sistema de software sea más inteligente en su funcionamiento en el futuro.

Opciones de producto de Azure

  • A grandes rasgos, Microsoft cuenta con tres ofertas de productos principales, cada una de las cuales está diseñada para una audiencia y un caso de uso concretos. Cada opción proporciona un conjunto diverso de herramientas, servicios y API de programación.

Azure Machine Learning

  • Azure Machine Learning es una plataforma para realizar predicciones
  • Consta de herramientas y servicios que le permiten conectarse a los datos para entrenar y probar modelos para encontrar el que prediga con mayor precisión un resultado futuro.
  • Una vez que ha ejecutado experimentos para probar el modelo, puede implementarlo y usarlo en tiempo real a través de un punto de conexión de API web.

Con Azure Machine Learning, puede realizar lo siguiente:

  • Crear un proceso que defina cómo obtener los datos, cómo tratar los datos que faltan o que son incorrectos, cómo dividir los datos en un conjunto de entrenamiento o de pruebas y cómo enviar los datos al proceso de entrenamiento.
  • Entrenar y evaluar modelos predictivos mediante herramientas y lenguajes de programación conocidos por los científicos de datos.
  • Crear canalizaciones que definan dónde y cuándo ejecutar los experimentos de proceso intensivo necesarios para puntuar los algoritmos en función de los datos de entrenamiento y de prueba.
  • Implementar el algoritmo de mejor rendimiento como una API en un punto de conexión para que otras aplicaciones puedan consumirlo en tiempo real.
  • Implementar el algoritmo de mejor rendimiento como una API en un punto de conexión para que otras aplicaciones puedan consumirlo en tiempo real.
  • En el vídeo siguiente se describen los pasos básicos necesarios para configurar un sistema de aprendizaje automático.
  • Un Sistema de Machine Learning aprende de datos que le permiten tomar acciones y decisiones
  • Para configurar un SML primero debe definir una meta
  • Por ejemplo cuando una transacción es frauduenta o una máquina requiere mantenimiento
  • Luego obtenga información de ejemplo que contengan factores que podría correlacionarse con una decisión positiva o negativa
  • La cantidad y la calidad de los datos es de vital importancia ya que será utilizada para tratar y evaluar el sistema
  • Los datos deben contener una respuesta correlacionada con nuestro objetivo
  • En un ejemplo debemos determinar cual transacción es fraudulenta o legitima o cuando una máquina requiere mantenimiento
  • Debemos asegurar que los datos no tienen sesgos y que la muestra representa toda la población de datos y que no existe un orden ni peso implícito
  • Una vez que tenemos los datos, los dividimos en datos de entrenamiento para construir el algoritmo y evaluación de los datos que serán utilizados para probar el algoritmo
  • Luego debe escoger el modelo
  • Científicos de datos y investigadores han creado diferentes modelos para diferentes propósitos
  • Algunos modelos sirven con datos visuales
  • Otros con una secuencia de datos o datos de texto
  • Estos datos serán utilizados para generar el algoritmo, las reglas para tomar nuevas decisiones basadas en datos similares en el futuro
  • Una vez que tengamos el modelo lo podemos probar, agregando datos de pruebas y dejando que el modelo genere el algoritmo y que los correlacione con varios factores que los lleve a una decisión
  • El modelo decide que factores deben tener mayor peso y bajo que circunstancias
  • Se prueba el nuevo algoritmo y verifique que tan preciso es
  • Luego de probarlo, seguramente deseará retocarlo a mano, modificando ciertos parámetros y volviendo a probar
  • Y finalmente publique el sistema en un ambiente de producción, donde las conclusiones pueden ser utilizadas por su negocio,
  • puede utilizar el sistema, los resultados para seguir entrenando el modelo

Azure Cognitive Services

  • Azure Cognitive Services proporciona modelos de aprendizaje automático creados previamente que permiten a las aplicaciones ver, oír, hablar, comprender e incluso empezar a pensar. 
  • Use Azure Cognitive Services para solucionar problemas generales, como el análisis de texto para detectar opiniones o el análisis de imágenes para reconocer objetos o caras. 
  • No es necesario tener conocimientos de aprendizaje automático ni ciencia de datos para usar estos servicios. 
  • Los desarrolladores acceden a Azure Cognitive Services mediante API y pueden incluir fácilmente estas características en solo unas pocas líneas de código.
  • Si bien Azure Machine Learning requiere que traiga sus propios datos y entrene modelos a partir de esos datos, Azure Cognitive Services, en su mayor parte, proporciona modelos previamente entrenados para que pueda traer sus datos en directo a fin de obtener predicciones.

Azure Cognitive Services se puede dividir en las categorías siguientes:

  • Servicios de lenguaje: permita que las aplicaciones procesen lenguaje natural con scripts precompilados, evalúen opiniones y aprendan a reconocer lo que quieren los usuarios.
  • Servicios de voz: convierta voz en texto y texto en voz de sonido natural. Traduzca de un idioma a otro y habilite el reconocimiento y la verificación del hablante.
  • Servicios de visión: agregue capacidades de reconocimiento e identificación al analizar imágenes, vídeos y otro contenido visual.
  • Servicios de decisión: agregue recomendaciones personalizadas para cada usuario que mejoren automáticamente cada vez que se usen, modere contenido para supervisar y quitar el contenido ofensivo o arriesgado y detecte anomalías en los datos de series temporales.

Azure Bot Service

  • Azure Bot Service y Bot Framework son plataformas para crear agentes virtuales que comprenden y responden a preguntas como un ser humano. 
  • Azure Bot Service se diferencia de Azure Machine Learning y Azure Cognitive Services en que tiene un caso de uso concreto: crear un agente virtual que pueda comunicarse de forma inteligente con los usuarios.
  • En segundo plano, el bot que crea usa otros servicios de Azure, como Azure Cognitive Services, para comprender lo que solicitan sus homólogos humanos.
  • Los bots se pueden usar para convertir tareas sencillas y repetitivas, como tomar una reserva de cena o recopilar información de perfil, en sistemas automatizados que ya no requieran la intervención humana directa.
  • Los usuarios conversan con un bot mediante texto, tarjetas interactivas y voz. 
  • Una interacción con un bot puede ser tanto una pregunta y una respuesta rápidas como una conversación sofisticada que proporciona acceso a servicios de forma inteligente.

Unidad 3: Análisis de los criterios de decisión

En esta unidad, analizará los criterios que emplean los expertos para elegir un servicio de IA para una determinada necesidad empresarial. Comprender estos criterios también puede ayudar a entender mejor las diferencias entre los productos.

¿Está creando un agente virtual que interactúa con seres humanos mediante el lenguaje natural?

  • Use Azure Bot Service cuando necesite crear un agente virtual para interactuar con los usuarios mediante el lenguaje natural. 
  • Bot Service integra orígenes de conocimiento, procesamiento de lenguaje natural y factores de forma para permitir la interacción entre distintos canales.
  • Las soluciones de Bot Service normalmente se basan en otros servicios de IA para cuestiones como la comprensión del lenguaje natural o incluso la traducción para localizar las respuestas al idioma preferido del cliente.
  • Antes de entrar de pleno en la creación de una experiencia de chat personalizada con Bot Service, puede que sea mejor buscar soluciones precompiladas sin código que abarquen los escenarios habituales
  • Por ejemplo, puede emplear QnA Maker, disponible en Azure Marketplace, para crear, entrenar y publicar un bot sofisticado que use páginas de preguntas más frecuentes, sitios web de soporte técnico, manuales de productos, documentos de SharePoint o contenido editorial a través de una interfaz de usuario fácil de usar o mediante las API de REST.
  • De forma similar, Power Virtual Agents se integra con Microsoft Power Platform, lo que le permite usar cientos de conectores prediseñados para la entrada de datos. Puede ampliar Power Virtual Agents si crea flujos de trabajo personalizados con Power Automate y, si la experiencia rápida le parece demasiado limitada, puede crear interacciones más complejas con Microsoft Bot Framework.

¿Necesita un servicio que pueda comprender el contenido y el significado de imágenes, vídeos y audios o traducir texto a un idioma diferente?

  • Use Azure Cognitive Services cuando necesite realizar tareas de uso general, como la conversión de voz en texto, la integración con búsquedas o la identificación de objetos en una imagen
  • Azure Cognitive Services es de uso general, lo que significa que muchos tipos diferentes de clientes pueden beneficiarse del trabajo que Microsoft ya ha llevado a cabo para entrenar y probar estos modelos y ofrecerlos de forma económica a escala.

¿Necesita predecir el comportamiento del usuario o proporcionar a los usuarios recomendaciones personalizadas en la aplicación?

  • El servicio Azure Cognitive Services Personalizer supervisa las acciones de los usuarios en una aplicación. 
  • Puede usar Personalizer para predecir su comportamiento y proporcionar experiencias relevantes a medida que identifique patrones de uso.
  • De nuevo, podría capturar y almacenar el comportamiento del usuario y crear su propia solución de Azure Machine Learning personalizada para realizar estas acciones, pero este enfoque requeriría mucho esfuerzo y gastos.

¿La aplicación predecirá resultados futuros a partir de datos históricos privados?

  • Elija Azure Machine Learning cuando necesite analizar datos para predecir resultados futuros. 
  • Por ejemplo, supongamos que necesita analizar transacciones financieras realizadas durante años para detectar nuevos patrones que podrían ayudarle a crear nuevos productos y servicios para los clientes de su empresa y ofrecer esos nuevos servicios durante las llamadas rutinarias del servicio al cliente.
  • Al trabajar con datos de propiedad, es probable que necesite crear un modelo de aprendizaje automático más personalizado y adaptado.

¿Necesita crear un modelo con sus propios datos o realizar una tarea distinta de las mencionadas anteriormente?

  • Use Azure Machine Learning para obtener la máxima flexibilidad.
  • Los científicos de datos y los ingenieros de IA pueden usar las herramientas con las que están familiarizados y los datos que les proporcione para desarrollar modelos de aprendizaje profundo y de aprendizaje automático adaptados a sus requisitos particulares.

Unidad 4: Uso de Machine Learning para sistemas de ayuda a la toma de decisiones

El sitio web de comercio electrónico de Tailwind Traders permite a los clientes examinar y comprar artículos que se pueden entregar o recoger en la tienda de venta directa más cercana a su ubicación.

El equipo de marketing está convencido de que puede aumentar drásticamente las ventas si sugiere productos adicionales que complementen los artículos del carro del comprador en el momento de finalizar la compra. El equipo podría codificar estas sugerencias de forma rígida, pero considera que un enfoque más orgánico sería usar los datos de ventas de varios años, así como las nuevas tendencias de compra, para decidir qué productos se muestran al comprador. Además, las sugerencias pueden verse influidas por la disponibilidad del producto o su rentabilidad, entre otros factores.

Los expertos en ciencia de datos del equipo de marketing ya han realizado algún análisis inicial del dominio del problema y han determinado que pueden tardar meses en crear un prototipo y, posiblemente, un año en implementarlo.

¿Qué servicio debe elegir?

Vamos a aplicar los criterios de decisión que hemos aprendido en la unidad anterior para encontrar la opción adecuada.

En primer lugar, ¿Tailwind Traders está creando un agente virtual que interactúa con seres humanos mediante el lenguaje natural? No, por lo que Azure Bot Service no es un buen candidato para este escenario.

En segundo lugar, ¿Tailwind Traders necesita un servicio que pueda comprender el contenido y el significado de imágenes, vídeos y audios o traducir texto a un idioma diferente? No, por lo que Cognitive Services no ayudará a la empresa.

En tercer lugar, ¿Tailwind Traders necesita predecir el comportamiento del usuario o proporcionar recomendaciones personalizadas a los usuarios? Sí. Sin embargo, la creación de recomendaciones basadas en el comportamiento del usuario es solo una parte del requisito. Tailwind Traders necesita crear un modelo complejo que incorpore datos históricos de ventas, datos de tendencias de ventas, inventario, etc. Es posible que el servicio Azure Cognitive Services Personalizer pueda desempeñar una función, pero no podría abordar toda la amplitud del proyecto por sí solo.

En cuarto lugar, ¿la aplicación de Tailwind Traders predecirá resultados futuros a partir de datos históricos privados? Sí, y por este motivo, en este escenario, Azure Machine Learning es probablemente la mejor opción.

El éxito de este esfuerzo dependerá principalmente de la capacidad del modelo para seleccionar con precisión los productos de venta adecuados que se sugieren al comprador. Dado que el modelo tendría que ajustarse y retocarse con el tiempo, es probable que un producto listo para usarse no sea suficiente.

Por último, parece que el equipo de marketing ya cuenta con algunos expertos en ciencia de datos, y el equipo está dispuesto a realizar al menos un compromiso de un año para compilar, probar y retocar los modelos que se van a usar.

Unidad 5: Uso de Cognitive Services para el análisis de datos

La primera generación del sitio web de comercio electrónico de Tailwind Traders solo se encontraba disponible en inglés. Pero cuando el equipo de marketing patrocinó un estudio demográfico para las tiendas físicas de la empresa, descubrió que, de media, solo el 80 % de los clientes potenciales hablan inglés. En algunos barrios, ese número se reduce al 50 %. El equipo considera que agregar varios idiomas es una oportunidad magnífica para proporcionar a los clientes que no hablan en inglés la misma experiencia de comercio electrónico que se ofrece a los clientes anglófonos.

¿Qué servicio debe elegir?

Al igual que en la unidad anterior, debe aplicar los criterios de decisión que ha aprendido para encontrar la opción adecuada.

En primer lugar, ¿Tailwind Traders está creando un agente virtual que interactúa con seres humanos mediante el lenguaje natural? No, por lo que Azure Bot Service no es un buen candidato para este escenario. Aun así, en el caso de que Tailwind Traders implemente un agente de servicio al cliente, es posible que quiera considerar el uso de la API Translator para proporcionar traducción en tiempo real con el fin de ayudar a los clientes que no son anglófonos.

En segundo lugar, ¿Tailwind Traders necesita un servicio que pueda comprender el contenido y el significado de imágenes, vídeos y audios o traducir texto a un idioma diferente? Sí. La traducción de contenido textual de un idioma a otro es una tarea de uso general que se puede simplificar mediante el servicio Translator de Azure Cognitive Services. El servicio es fácil de integrar en sus aplicaciones, sitios web, herramientas y soluciones. Permite agregar experiencias de usuario multilingües en más de 60 idiomas y se puede usar en cualquier plataforma de hardware con cualquier sistema operativo para la traducción de texto a texto.

Azure Cognitive Services es probablemente la mejor opción para este escenario, pero vamos a seguir aplicando los criterios de decisión para asegurarnos.

En tercer lugar, ¿Tailwind Traders necesita predecir el comportamiento del usuario o proporcionar recomendaciones personalizadas a los usuarios? No, por lo que el servicio Personalizer de Azure Cognitive Services no es un buen candidato para este escenario.

Por último, ¿la aplicación de Tailwind Traders necesitará predecir resultados futuros a partir de datos históricos privados? No. Aunque sería posible crear un modelo de aprendizaje automático para realizar la traducción a varios idiomas, sería costoso y lento para Tailwind Traders intentar compilar sus propios modelos de traducción. El equipo no tienen la competencia en aprendizaje profundo ni los datos lingüísticos necesarios para entrenar los modelos.

Ahora que ha examinado todos los criterios de los expertos, puede seleccionar con confianza Cognitive Services como la mejor opción de producto para este escenario.

Unidad 6: Uso de Bot Service para experiencias interactivas de chat

El equipo de servicio al cliente ha solicitado durante mucho tiempo un agente virtual para que se ocupe de la inmensa mayoría de las preguntas que se le pidan. A pesar de destacar las respuestas a las preguntas más frecuentes en el sitio web, los compradores son impacientes y creen que contactar mediante una ventana de chat les ahorra tiempo.

El equipo quiere que los compradores se sientan como si estuvieran interactuando con un ser humano real. Cuando quede claro que el agente virtual no puede proporcionar una respuesta, la sesión de chat se debería transferir a un agente humano.

El hecho de ofrecer un agente virtual reduciría la cantidad de tiempo que tardan los compradores en recibir respuestas. El agente virtual podría responder a la mayoría de las preguntas, lo que permitiría a los agentes del servicio de atención al cliente proporcionar soporte técnico a preguntas más difíciles o problemas relacionados con las cuentas.

¿Qué servicio debe elegir?

Una vez más, aplique los criterios de decisión con los que ya está familiarizado para encontrar el producto adecuado.

En primer lugar, ¿Tailwind Traders está creando un agente virtual que interactúa con seres humanos mediante el lenguaje natural? Sí. Azure Bot Service debería usarse en este escenario para implementar una experiencia de chat de agente virtual. Bot Service podría beneficiarse de información incluida en la página de preguntas más frecuentes del sitio web, junto con miles de sesiones de chat almacenadas entre compradores y representantes del servicio al cliente. Los supervisores del servicio de atención al cliente pueden probar y retocar las respuestas para seguir refinando la experiencia de chat.

Aunque es probable que ya haya encontrado la mejor opción para este escenario, siga aplicando los criterios de decisión para ver si hay opciones adicionales que también funcionen.

En segundo lugar, ¿Tailwind Traders necesita un servicio que pueda comprender el contenido y el significado de imágenes, vídeos y audios o traducir texto a un idioma diferente? Posiblemente, sí. En este escenario, Azure Cognitive Services podría usarse junto con Bot Service para compilar la solución. Para acelerar la implementación, los desarrolladores podrían explorar el uso de soluciones precompiladas, como QnA Maker (parte de Cognitive Services) o Power Virtual Agents. Además, cualquier solución de bot de Azure podría implementar varios servicios de Azure Cognitive Services, como Language Understanding (LUIS) y, posiblemente, Translator para traducir del idioma del comprador al inglés y viceversa.

En tercer lugar, ¿Tailwind Traders necesita predecir el comportamiento del usuario o proporcionar recomendaciones personalizadas a los usuarios? No. Azure Cognitive Services Personalizer no es un buen candidato para este escenario.

Por último, ¿la aplicación de Tailwind Traders necesitará predecir resultados futuros a partir de datos históricos privados? No. Aunque Tailwind Traders tiene datos históricos para alimentar un modelo, lo que permitiría usar Azure Machine Learning para crear una solución de chat, ya existe otra opción que está adaptada a la experiencia del bot de chat.

Video 3.2.1: Elija el mejor servicio de IA para sus necesidades

  • En Azure la AI es un conjunto de recursos y servicios que permiten a la tecnología adaptarse y mejorar su precisión
  • Se aplican en la predicción de eventos, toma de decisiones o dotar a un dispositivo electrónico de capacidades humanas, para que pueda aprender a percibir datos o inclusive simularlos desde algún medio como una fotografía, audio o cualquier archivo digital
  • Aquí es importante comprender cual va ser la meta o objetivo de la empresa y cual es el alcance de estos servicios para poder aplicarlos correctamente en su caso de uso
  • La AI se puede clasificar con el siguiente esquema donde la AI tiene 2 ramas

Aprendizaje Automático (ML): Machine Learning

  • Consiste en una técnica que proviene de la ciencia de datos que se centra en el uso de datos históricos o existentes para entrena algo que se le conoce como «modelo» que intenta predecir o estimar un resultado a partir de un conjunto datos
  • Por ejemplo cada vez que se ve una serie en una plataforma de vídeo o la detección de fraudes
  • Con forme mayor cantidad de datos el aprendizaje será más exacto

Aprendizaje Profundo (DL)

  • Se modela a partir red neuronal lo cual tiene como objetivo la simular como piensa la mente humana
  • Este tipo de aprendizaje permite descubrir, aprender y crecer a través de la experiencia
  • Por ejemplo un niño toma en cuenta lo aprendido con la experiencia en el sonido, piel, color, pelo, patas, razas, etc para determinar si es un perro o un gato

AI en Azure

  • Se dan en 3 ofertas
    • Azure Machine Learning
    • Azure Cognitive Services
    • Azure Bot Service
  • Son servicios creados y diseñados para concretos y particulares, con el objetivo de proporcionar recursos, herramientas y servicios integrables por medio de programación dentro de aplicaciones y proyectos

Azure Machine Learning

  • Es una plataforma que permite realizar predicciones a partir de un conjunto de datos
  • Es una plataforma que permite crear, diseñar, entrenar, probar y desplegar proyectos de modelos de proyección
  • Principalmente es para científicos de datos y profesionales de la industria que necesitan disponer de un control completo sobre el diseño y entrenamiento de un algoritmo con sus propios datos

Azure Cognitive Services

  • Esto brindan modelo automáticos de aprendizaje pre entrenados, es decir que que fueron creados, entrenados, con un conjunto de datos genéricos
  • Y entonces como ya están listos se pueden utilizar para: toma de decisiones, procesamiento del lenguaje o voz, visión y búsqueda en la Web
  • Y cada categoría tiene un objetivo principal

Azure Bot Service

  • Permite el desarrollo y creación de agentes virtuales que tendrán las habilidades de comprender y contestar mensajes o preguntas realizadas por un ser humano
  • Por ejemplos se pueden crear agentes virtuales que se pueden comunicar con los usuarios de manera inteligentes desde distintos canales como se ven en la imágen
  • Y además se le pueden agregar funcionalidades adicionales a un bot como las habilidades cognitivas como ver escuchar, hablar
  • El bot Framework incluye una serie de elementos que se pueden incluir e integrar dentro de tu chat bot
  • Configurando distintas entradas y dispositivos de entrada, canales, diferentes orígenes de para base de conocimiento y así adquiera diferentes habilidades, todos son modulares e integrables