Desde el amanecer de los microprocesadores y el lenguaje ensamblador, el 99% de todas las aplicaciones que hemos estado construyendo y usando entran en la categoría de Aplicaciones Deterministas.
Una Aplicación Determinista es aquella en la que para una entrada dada, la salida es siempre la misma.
Sin embargo, con el amanecer de la IA Generativa, habrá un cambio fundamental ya que la mayoría de las aplicaciones que construiremos y consumiremos caerán en la categoría de Aplicaciones Probabilísticas.
Una aplicación probabilística es donde para una entrada dada, podríamos obtener una salida ampliamente similar pero no necesariamente la salida exacta para esa entrada dada.
El cambio al pasar de aplicaciones deterministas a predictivas
| Aplicaciones Deterministas | Aplicaciones Probabilísticas |
|---|---|
| Enfoque en Precisión: Cada parte del sistema funciona exactamente como se espera. | Aceptar Variabilidad: Aceptar y planificar para una gama de resultados posibles. |
| Manejo de Errores: Considerar todos los errores posibles y manejarlos de manera predecible. | Razonamiento Estadístico: Usar probabilidad y estadística para entender y guiar el comportamiento del sistema. |
| Expectativas del Usuario: Los usuarios esperan 100% de precisión y fiabilidad. | Expectativas del Usuario: Los usuarios deben prepararse para la variabilidad y entender que la aplicación aprende y mejora con el tiempo. |
Abrazar la incertidumbre con Aplicaciones Probabilísticas
Las aplicaciones probabilísticas incorporan aleatoriedad y teoría de la probabilidad para predecir resultados. Pueden producir resultados diferentes bajo las mismas condiciones, haciéndolas inherentemente inciertas. Estas aplicaciones han sido prevalenteds por un tiempo en sistemas complejos como modelos de pronóstico del clima, motores de recomendación, ciencia de datos, aplicaciones de pronóstico y ahora aplicaciones de IA generativa. Sin embargo, hasta ahora (es decir, con el amanecer de las aplicaciones de IA Generativa), la mayoría de nosotros no las hemos estado construyendo ni usando.
Algunos de los desafíos inmediatos que encontramos al construir Aplicaciones Probabilísticas con GenAI son:
Replantear nuestro enfoque de UI/UX
- Los diseñadores de UI/UX necesitarán replantear las interfaces y flujos de navegación para aplicaciones GenAI. Simplemente pegar una interfaz de chat a la derecha o izquierda de una aplicación existente no será suficiente. Los usuarios necesitarán ser sutilmente guiados para proporcionar los tipos correctos de prompts de entrada; se necesitarán implementar salvaguardas de entrada para evitar que los usuarios intenten hacer preguntas irrelevantes o dañinas.
Los diseñadores necesitarán idear formas creativas de incorporar el Aprendizaje por Refuerzo a partir de Retroalimentación Humana (RLHF) en las interacciones de usuario, de modo que las salidas de los LLMs se optimicen.
A medida que avanzamos hacia aplicaciones multimodelo, será interesante ver cómo aseguramos que nuestras aplicaciones GenAI cumplan con las pautas de accesibilidad.
Replantear nuestro enfoque de pruebas
Hasta ahora, nuestro enfoque de pruebas ha sido proporcionar al sistema un conjunto dado de entradas y asegurarnos de tener una salida consistente. Escribimos casos de prueba y usamos herramientas de automatización como Selenium, etc., para ejecutar pruebas automatizadas de salidas deterministas.
Este enfoque no funcionará para probar aplicaciones GenAI. Necesitaremos un nuevo conjunto de herramientas o nuevas formas de validar salidas que involucren cierto grado de varianza.
Un enfoque común sería verificar diferentes patrones y metadatos de las salidas para ascertain una mayor probabilidad o puntaje de precisión de las salidas.
Otro enfoque sería construir una colección de agentes o bots de QE que realicen los pasos de prueba y luego usen inferencia para validar si la salida se siente precisa. Puede que necesitemos asegurarnos de que los agentes utilicen diferentes metodologías y perspectivas, similar a un sistema de revisión multifacético. Esto podría involucrar la incorporación de paradigmas de prueba variados e introducir elementos estocásticos en los procedimientos de prueba para imitar la impredecibilidad del mundo real.
Además, integrar un bucle de retroalimentación donde las salidas se reevalúan continuamente y los criterios de prueba se ajustan dinámicamente en función de resultados anteriores podría ser vital. Esta estrategia de prueba adaptativa puede ayudar a lidiar con la naturaleza en evolución de las salidas de GenAI, asegurando que nuestros mecanismos de prueba se mantengan robustos y relevantes.
Más aún, la colaboración con expertos en el dominio para comprender los matices de las salidas esperadas, y usar sus conocimientos para informar nuestras métricas de prueba, puede proporcionar una capa adicional de validación. Este enfoque humano-en-el-bucle garantiza que las salidas de la IA no sean solo técnicamente sólidas sino también apropiadas contextualmente y significativas.
En resumen, probar aplicaciones GenAI requiere un cambio de paradigma desde los métodos tradicionales. Debemos abrazar la complejidad, la adaptabilidad y una mezcla de procesos automatizados y dirigidos por humanos para garantizar la confiabilidad y relevancia de las salidas de GenAI en escenarios del mundo real.