Cómo crear productos de IA confiables con la guía de PAIR

1. Antes de comenzar

En este codelab, aplicarás las prácticas recomendadas de la nueva edición de la guía de People + AI Research (PAIR) para diseñar un producto nuevo con IA, con un enfoque en las prácticas de datos centradas en las personas y en la confianza del usuario correctamente calibrada.

Requisitos previos

  • Conocimientos básicos sobre qué es la IA
  • Conocimiento del flujo de trabajo de desarrollo de productos

Qué aprenderás

En este codelab, aprenderás a usar la guía de People + AI de Google Research para crear productos de IA confiables y centrados en el usuario.

Específicamente, harás lo siguiente:

  • Descubre las novedades de la segunda edición de la Guía de PAIR.
  • Realizar una serie de ejercicios que destaquen las oportunidades en el proceso de desarrollo de la IA para calibrar la confianza del usuario, con un enfoque en los datos y la explicabilidad para el usuario
  • Obtén una introducción a un kit de herramientas más amplio de materiales y recursos disponibles para profundizar en el tema.

Requisitos

2. Comenzar

Este año, en Google I/O, presentamos la segunda edición de la Guía de PAIR. La primera edición se lanzó hace dos años y, desde entonces, la han utilizado más de un cuarto de millón de personas de todo el mundo en diferentes roles (desarrolladores, diseñadores, administradores de productos, estudiantes, etc.). Ahora nos complace presentar un conjunto de actualizaciones para que sea aún más útil.

Específicamente, en esta segunda edición, proporcionamos una nueva forma de navegar por la Guía y encontrar contenido por tarea. Elaboramos una lista de preguntas clave que tú y tu equipo pueden tener cuando desarrollen un producto con un enfoque de IA centrado en el usuario, y que los ayudará a encontrar el contenido que necesitan, cuando lo necesiten:

  1. ¿Cuándo y cómo usar la IA en mi producto?
  2. ¿Cómo puedo crear mi conjunto de datos de forma responsable?
  3. ¿Cómo ayudar a los usuarios a generar y calibrar la confianza en mi sistema de IA?
  4. ¿Cómo incorporo a los usuarios a las nuevas funciones potenciadas por IA?
  5. ¿Cómo explicar mi sistema de IA a los usuarios?
  6. ¿Cuál es el equilibrio adecuado entre el control del usuario y la automatización?
  7. ¿Cómo puedo brindar asistencia a los usuarios cuando algo sale mal?

dd1277d752e60684.png

Una vez que selecciones una pregunta, obtendrás contenido pertinente en unidades más pequeñas y prácticas.

También actualizamos la Guía de PAIR con contenido nuevo:

  1. Un conjunto de patrones de diseño basados en IA
  2. Casos de éxito
  3. Capítulos actualizados
  4. Nuevos ejercicios y un kit de taller

En este codelab, verás algunos de estos patrones de diseño en acción en un flujo de trabajo a medida que desarrollas una nueva función con IA.

Comencemos.

3. Traducir las necesidades del usuario en un problema de IA

Imagina la siguiente situación:

Estás desarrollando una app para mirar películas y te gustaría brindarles a los usuarios una experiencia mejorada y personalizada que los ayude a encontrar más películas que les gusten.

Actualmente, la página de destino de la app incluye las siguientes secciones:

  • Una lista de películas nuevas, ordenadas por fecha de lanzamiento
  • Un catálogo de todas las películas, organizado por género
  • Un cuadro de búsqueda en el que los usuarios pueden buscar por título de película, elenco, etcétera

81efa53fac12f607.png

App de películas sin recomendaciones personalizadas

Quieres agregar una nueva sección con recomendaciones de películas para el usuario y crees que la IA podría ser una buena opción para implementar esta función. Antes de comenzar con cualquier implementación, te recomendamos que hagas lo siguiente:

  • Revisa los flujos de trabajo existentes: ¿Cómo interactúan los usuarios actualmente con la app y cómo crees que se podría mejorar su experiencia?
  • Determina si la IA puede agregar valor único: ¿tu problema se relaciona con uno que se puede resolver bien con la IA? ¿Es probable que la IA mejore la experiencia del usuario de tu producto?

Con el capítulo de la guía de PAIR, User Needs + Defining Success, revisas la lista de casos de uso en los que la IA probablemente sea una buena solución y descubres que la necesidad de tus usuarios se encuentra entre los siguientes tipos de problemas:

  • Recomendar contenido diferente a usuarios diferentes
  • La personalización mejora la experiencia del usuario
  • Mostrar contenido dinámico es más eficiente que una interfaz predecible

Asegúrate de revisar también la lista de casos en los que la IA probablemente no sea una mejor solución.

Ahora que puedes ver que una solución potenciada por IA parece ser una buena candidata para abordar esta necesidad del usuario, querrás evaluar si realmente proporcionará una mejor experiencia del usuario.

Patrón:

17c84836936a7adc.png

Antes de comenzar a crear con IA, asegúrate de que el producto o la función que tienes en mente requieran IA o se mejoren con ella.

La IA es adecuada para aplicaciones como las siguientes:

  • Recomendar contenido diferente a distintos usuarios, como sugerencias de películas
  • Predecir eventos futuros, como eventos climáticos o cambios en los precios de los vuelos
  • Comprensión del lenguaje natural
  • Reconocimiento de imágenes

Una solución basada en reglas o heurísticas puede ser mejor en los siguientes casos:

  • Es importante mantener la previsibilidad
  • Los usuarios, los clientes o los desarrolladores necesitan transparencia total
  • Las personas no quieren que se automatice una tarea

Consulta el capítulo sobre las necesidades del usuario para obtener más información sobre cuándo usar (o no) la IA.

Vínculo al patrón completo: https://pair.withgoogle.com/guidebook/patterns#determine-if-ai-adds-value

Puedes agregar valor a la app destacando para cada usuario las películas que probablemente le gusten, lo que le proporcionará una experiencia del usuario más enriquecida que si solo se le muestran las películas más recientes o las mejor calificadas en general. También sospechas que podrías ahorrarles tiempo explorando un catálogo de películas en rápido crecimiento con esta función.

Ahora que decidiste implementar una solución potenciada por IA, puedes comenzar a planificar los próximos pasos.

4. Crea un conjunto de datos para la tarea

Para entrenar un sistema de recomendación que proporcione sugerencias de películas a los usuarios, deberás crear un conjunto de datos a partir del cual aprenderá tu modelo de IA.

Lo primero que debes hacer es correlacionar las necesidades del usuario con las necesidades de datos.

Con el ejercicio de correlación del capítulo Recopilación y evaluación de datos de la Guía de PAIR, determinas lo siguiente:

  • Usuario: Usuarios que miran películas (usuarios de la app de películas)
  • Necesidad del usuario: Encontrar más películas que le gusten de forma más fácil y rápida
  • Acción del usuario: Seleccionar y mirar películas a través de la app
  • Salida del sistema de IA: Qué películas sugerir y por qué (etiquetas de opinión o etiquetas)
  • Aprendizaje del sistema de IA: Patrones de comportamiento en torno a la aceptación de recomendaciones de películas, la visualización de películas completas, la escritura de opiniones sobre películas y la asignación de calificaciones altas a estas películas
  • Conjuntos de datos necesarios: Datos de visualización de películas de la app, información de películas, y calificaciones y opiniones de películas
  • Funciones clave necesarias en el conjunto de datos: Preferencias de películas y historial de visualización de los usuarios, información de películas (p. ej., género, reparto), calificaciones por estrellas de películas, reseñas de películas
  • Etiquetas clave necesarias en el conjunto de datos: Tasa de aceptación o rechazo de la sugerencia de la app por parte del usuario, tasa de finalización de películas por parte del usuario, calificaciones y opiniones del usuario, y comentarios del usuario sobre por qué se rechazó una sugerencia

Ahora que completaste este ejercicio, puedes comenzar a ver varias fuentes de datos potenciales:

  • Datos del usuario de la app (preferencias especificadas y historial de visualizaciones)
  • Información de la película desde la app (título, año, duración, elenco, etcétera)
  • Opiniones sobre películas y calificaciones de otras fuentes, como IMDB y MovieLens

Una vez que tengas una idea del tipo de datos que necesitarás, considera los principios de la IA de Google y las prácticas de IA responsable como ejemplos de marcos de trabajo que te ayudarán a abordar consideraciones clave, como la privacidad (p.ej., brindar oportunidades de notificación y consentimiento") y equidad (p.ej., "Realiza pruebas de usuario iterativas para incorporar un conjunto diverso de necesidades de los usuarios en los ciclos de desarrollo").

Por último, cuando prepares tu conjunto de datos de entrenamiento, asegúrate de recopilar datos realistas que reflejen los datos "ruidosos" que hay en el mundo. Por ejemplo, asegúrate de incluir opiniones sobre películas con errores ortográficos, abreviaturas, emojis y caracteres inusuales o inesperados, ya que es muy probable que los usuarios de tu app aporten opiniones igualmente reales y "ruidosas" en el futuro, en lugar de opiniones con un formato perfecto.

Patrón:

4617730ca248f081.png

A medida que desarrolles tu conjunto de datos de entrenamiento, no te esfuerces por crear algo perfectamente seleccionado. En cambio, permite algo de "ruido" para que los datos sean lo más similares posible a los datos del mundo real que esperas obtener de tus usuarios. Esto puede ayudarte a evitar errores y recomendaciones de baja calidad una vez que lances tu modelo al mundo real.

Para ello, piensa en los tipos de datos que esperas obtener de tus usuarios y, luego, asegúrate de que esos datos estén representados en tu conjunto de entrenamiento.

Por ejemplo, en el caso de un sistema de reconocimiento de imágenes, considera los datos que podrías obtener de tus usuarios. Si es probable que no tengan tiempo para tomar fotografías de alta calidad y tu modelo tendrá que trabajar con imágenes borrosas de teléfonos inteligentes, incluye imágenes borrosas en tus datos de entrenamiento.

Vínculo al patrón completo: https://pair.withgoogle.com/guidebook/patterns#embrace-noisy-data

Con las necesidades del usuario asignadas a un problema de IA y a las necesidades del conjunto de datos, ya puedes entrenar la IA para que proporcione recomendaciones y etiquete películas para los usuarios de tu app. Si bien no abordaremos esta parte del proceso en este codelab, puedes obtener más información sobre los sistemas de recomendación y el análisis de opiniones en los siguientes recursos:

5. Comunica las capacidades y limitaciones del sistema

A medida que diseñes la experiencia del usuario de tu app, deberás planificar la integración de los usuarios en la nueva función potenciada por IA y ayudarlos a establecer sus expectativas de manera adecuada. Los usuarios no deben confiar implícitamente en tu sistema de IA en todas las circunstancias, sino que deben calibrar su confianza correctamente.

Establecer expectativas con los usuarios es un proceso deliberado que comenzará incluso antes de su primera interacción con tu producto. Deberás proporcionar explicaciones de diversas maneras a lo largo de la experiencia del producto y fuera de ella:

  • Explicar en el momento Cuando corresponda, proporciona motivos para una inferencia, recomendación, sugerencia, etcétera.
  • Proporciona explicaciones adicionales en el producto. Aprovecha otros momentos en el producto, como la incorporación, para explicar los sistemas de IA.
  • Ve más allá de la experiencia del producto. Es posible que la información del producto no sea suficiente, pero puedes complementarla con una variedad de recursos adicionales, como campañas de marketing para aumentar el reconocimiento y materiales educativos y campañas de alfabetización para desarrollar modelos mentales.

Veamos un ejemplo: un usuario accedió a la app y seleccionó una película recomendada de la nueva lista que se agregó a su página de destino. Además de la información habitual sobre la película que pueden esperar encontrar allí, es posible que desees incluir una explicación de por qué ven esta película específica en su lista de recomendaciones.

Si usas la búsqueda por pregunta de la guía de PAIR y seleccionas "¿Cómo explicar mi sistema de IA a los usuarios?", encontrarás el siguiente patrón: Explica para que se comprenda, no para que se complete.

Patrón:

a75dc18115d636a9.png

Cuando expliques las recomendaciones de tu sistema de IA, enfócate en compartir la información que los usuarios necesitan para tomar decisiones y seguir adelante. No intentes explicar todo lo que sucede en el sistema.

A menudo, la explicación detrás de una predicción en particular es desconocida o demasiado compleja para resumirse en una frase o una oración simple. Es posible que los usuarios tampoco quieran sentirse abrumados o distraídos por explicaciones superfluas mientras usan tu producto.

El capítulo Explicabilidad y confianza ofrece ejemplos de diferentes enfoques para elaborar explicaciones concisas y fáciles de usar, que incluyen explicaciones parciales, divulgación progresiva y visualizaciones de la confianza del modelo.

Si quieres compartir explicaciones más largas o detalladas sobre cómo funciona el sistema en general, hazlo fuera del flujo de usuarios activo, por ejemplo, en materiales de marketing o contenido de incorporación.

Vínculo al patrón completo: https://pair.withgoogle.com/guidebook/patterns#explain-for-understanding

Si aplicas las prácticas recomendadas que se describen en este patrón, decides mostrar una explicación como la siguiente:

a534f48eeffaaa40.png

Recomendación de película, que incluye la justificación de la recomendación

En este ejemplo de explicación, aplicarás la guía de PAIR en Explicabilidad y confianza y usarás fuentes de datos para proporcionar una explicación al usuario con las tres opiniones de los usuarios con más votos.

Además, destacaste las palabras específicas que más contribuyeron al sentimiento positivo sobre esta película, que son factores importantes para el usuario a la hora de elegir una película. Puedes obtener más información para explorar un clasificador de opiniones en esta demostración de la Herramienta de interpretabilidad del lenguaje (LIT) de PAIR.

b8fc8bd717f7742f.png

Captura de pantalla de la herramienta de interpretabilidad del aprendizaje (LIT)

LIT puede ayudarte a inspeccionar el comportamiento del modelo de procesamiento de lenguaje natural (PLN) a través de una herramienta visual, interactiva y extensible, que te permite probar hipótesis y validarlas en un conjunto de datos con métricas relevantes y explicaciones locales (p.ej., mapas de relevancia y visualizaciones de predicciones). Los equipos de productos pueden usar LIT en los siguientes casos de uso de ejemplo:

  • Antes de implementar un modelo
  • Cuándo realizar pruebas de equidad
  • Cómo depurar predicciones individuales
  • Cuando se compara un modelo nuevo con uno anterior

6. Determina cómo mostrar la confianza

Otra forma de establecer expectativas con los usuarios es mostrar la confianza del modelo en las recomendaciones. En lugar de indicar por qué o cómo la IA llegó a una determinada decisión, las pantallas de confianza del modelo muestran qué tan segura está la IA de su predicción y las alternativas que consideró. Como la mayoría de los modelos pueden generar las n mejores clasificaciones y puntuaciones de confianza, las pantallas de confianza del modelo suelen ser una explicación disponible de inmediato.

Antes de agregar confianza a las páginas de películas recomendadas que se muestran al usuario, deberás determinar si esta confianza es útil para el usuario y, si es así, cuál es la mejor manera de mostrarla.

Patrón:

33a1b5ab6fff1c06.png

En algunas situaciones, puedes ayudar a los usuarios a evaluar el nivel de confianza que deben depositar en el resultado de la IA con visualizaciones de la confianza del modelo que explican qué tan segura está la IA de su predicción y las alternativas que consideró.

Sin embargo, en otros contextos, las pantallas de confianza pueden ser difíciles de entender para los usuarios.

Si decides usarlos, prueba diferentes tipos de pantallas al principio del proceso de desarrollo del producto para descubrir qué funciona mejor para tus usuarios.

Vínculo al patrón completo: https://pair.withgoogle.com/guidebook/patterns#how-to-show-model-confidence

Al revisar los enfoques recomendados para mostrar confianza en el capítulo sobre Explicabilidad y confianza de la Guía de PAIR, encontrarás las siguientes opciones:

  • Las N clasificaciones más probables
  • Nivel de confianza numérico

Dado que le presentas al usuario una lista de películas recomendadas en la página de destino de la app, optas por una lista ordenada, en la que se muestran las películas más probables en orden.

8b3181335ece9a09.png

Carrusel de películas recomendadas, con las recomendaciones más probables que se muestran primero

7. Proporcionar al usuario una forma de avanzar desde los errores

En los últimos pasos, aprendiste algunas prácticas recomendadas para establecer expectativas y brindar explicaciones a los usuarios, mientras los ayudas a generar y calibrar su confianza en el producto.

Otra pregunta importante que querrás responder es: ¿Cómo es la experiencia del usuario cuando se produce un error? La forma en que los usuarios avanzan también es importante. Enfocarse en lo que pueden hacer los usuarios después de que falla el sistema los empodera y, al mismo tiempo, mantiene la utilidad de tu producto.

Como se explica en el capítulo sobre Errores y fallas elegantes de la Guía de PAIR, primero debes definir qué es un error para tu producto y qué tipo de error es (usuario, sistema o contexto).

Considera los siguientes ejemplos:

  1. El usuario recibe una recomendación de una película que ya vio en el cine. Si bien esta recomendación puede no ser incorrecta, tampoco es muy útil para el usuario.
  2. El usuario recibe una recomendación de una película que ya vio en el cine y que no le gustó. Esta recomendación puede considerarse un error para el usuario, según sus preferencias de películas.
  3. El usuario recibe una recomendación de una película de un género que no suele disfrutar. Es posible que el usuario considere que esto es un error.
  4. El usuario recibe una recomendación de una película que ya no está alojada en la app. Este es un error claro del sistema.

En el segundo y tercer ejemplo mencionados anteriormente, la IA proporcionó una recomendación que no es útil para este usuario. En caso de que se produzcan errores de este tipo, deberás brindarles a los usuarios la oportunidad de enviar comentarios sobre la predicción y comunicar el tiempo de impacto, como se recomienda en el capítulo sobre Comentarios y control de la Guía de PAIR.

Patrón:

2a01f1bf6b24a241.png

Cuando tu sistema potenciado por IA se comporte de una manera que un usuario no espera o no desea, asegúrate de que tenga la opción de compartir comentarios. Y, en la medida de lo posible, usa esos comentarios para mejorar tu modelo.

Los comentarios en los sistemas de IA pueden adoptar diversas formas, como las siguientes:

  • Cómo indicar si te gusta o no una recomendación
  • Cómo ocultar recomendaciones no deseadas
  • Cómo marcar o denunciar recomendaciones problemáticas
  • Flujos de comentarios más tradicionales, en los que un usuario informa manualmente un problema a través de un formulario o algún otro mecanismo

Una vez que un usuario proporcione comentarios, confirma que los recibiste. Si es posible, infórmale cómo responderá el sistema a los comentarios.

Vínculo al patrón completo: https://pair.withgoogle.com/guidebook/patterns#let-users-give-feedback

En el caso de tu app, podría verse así:

e990b5a272085f20.png

Los usuarios pueden dejar comentarios sobre las recomendaciones…

f81d3f378792640f.png

…y se les notifica lo que sucederá a continuación

8. Felicitaciones

¡Felicitaciones! Acabas de ver un ejemplo de flujo de trabajo que muestra cómo usar algunos de los recursos nuevos de la Guía de PAIR.

Resumen

En este codelab aprendiste a hacer lo siguiente:

  • Traducir las necesidades del usuario en un problema de IA
  • Crea un conjunto de datos para la tarea
  • Incorpora usuarios a la nueva función
  • Explica el sistema y establece las expectativas del usuario
  • Proporcionar al usuario una forma de avanzar desde los errores
  • Recopila comentarios para mejorar el producto

Próximos pasos

Puedes encontrar todos los recursos destacados en este codelab y muchos más en los siguientes vínculos: