
IA Conversacional en el desarrollo de apps: retos y oportunidades
La Inteligencia Artificial (IA) Conversacional, el paraguas de tecnologías basadas en IA que dan “vida” a asistentes de voz, chatbots como ChatGPT y otras interfaces con las que nos comunicamos, está revolucionando el panorama del desarrollo de aplicaciones.
Estas tecnologías no sólo están cambiando la forma en que las personas interactuamos con interfaces conversacionales y nuestras expectativas cuando lo hacemos, sino que también está redefiniendo los procesos de desarrollo, que ahora incorporan a las interfaces conversaciones como apoyo (copilots como el de Github) y las habilidades requeridas por los desarrolladores de las mismas, entre las cuales están conocimientos sobre IA aplicada a chatbots y voz.
Las aplicaciones tienden a ser más “conversacionales”, y es aparentemente sencillo crear un chatbot en nuestra app para que los usuarios puedan acceder a información o servicios. Los grandes modelos de lenguaje (LLMs) como ChatGPT y familia, están estableciéndose como una nueva herramienta en el desarrollo de aplicaciones conversacionales. Estos modelos ofrecen capacidades avanzadas de generación y comprensión del lenguaje natural, abriendo nuevas posibilidades para quienes desarrollamos software.
Veamos cómo la IA Conversacional está transformando el desarrollo de aplicaciones, los desafíos que presenta y las oportunidades que ofrece para el futuro.
Impacto en el desarrollo de aplicaciones
¿Cómo cambian las tecnologías de la IA Conversacional el desarrollo de apps?
1. Interfaces (UI) más naturales: La IA Conversacional nos permite a los desarrolladores crear interfaces de usuario más intuitivas y accesibles. Esto supone un beneficio claro y un valor añadido para nuestros usuarios.
2. Reducción de la complejidad de la UI: Al utilizar interfaces conversacionales, los desarrolladores pueden simplificar significativamente el diseño visual de la interfaz de usuario. Eso sí, hay que trabajar el diseño conversacional, que nos ayuda a crear experiencias conversacionales buenas con nuestros usuarios.
3. Personalización dinámica: Los desarrolladores pueden implementar sistemas que se adaptan en tiempo real a las preferencias y comportamientos del usuario. Es el usuario que interactúa con nuestra app, quien a través de la conversación, nos está dando detalles que nos ayudan a conversar de manera personal y adaptada.
4. Elección tecnológica especializada: Para diseñar una app que converse, podemos utilizar tecnologías tradicionales basadas en aprendizaje automático (ML) o procesamiento del lenguaje natural, o apoyarnos directamente en las capacidades de generación de texto de un modelo del lenguaje (LLM), incluso utilizando un enfoque híbrido que una lo tradicional y LLMs. Muchos proveedores ofrecen APIs que permiten a los desarrolladores integrar capacidades de modelos de lenguaje en sus aplicaciones. La elección se complica si en el equipo no hay conocimiento previo de estas tecnologías. En este artículo puedes profundizar más en la tecnología.
5. Desarrollo Low-Code/No-Code: También hay plataformas que permiten a quienes no tienen conocimiento de programación, o de IA Conversacional y sus tecnologías, crear aplicaciones conversacionales de manera sencilla.
Te presento ejemplos de frameworks que merece la pena conocer.
- Code: El framework Rasa permite a los desarrolladores crear chatbots personalizados con procesamiento de lenguaje natural y modelos del lenguaje. Es una herramienta open source con muchos tutoriales.
- Low-code: La plataforma Dialogflow CX facilita la creación de interfaces conversacionales para aplicaciones web y móviles.
- No-code: Voiceflow te permite tener chatbots o asistentes de voz sin programar, aunque si sabes programar puedes sacarle más partido.
Desafíos en el desarrollo de apps
¿Qué retos surgen cuando desarrollamos apps conversacionales?
1. Gestión de conversaciones complejas: Si utilizas tecnologías tradicionales o enfoques híbridos, la gestión de la conversación se complica. Diseñar flujos de conversación que manejen eficazmente el contexto, consultas complejas y además a través de múltiples turnos es un reto.
2. Gestión de la Incertidumbre en LLMs: Los modelos de lenguaje pueden generar respuestas impredecibles o inapropiadas. Los LLMs son buenos generando lenguaje en base a un contexto, aunque hay que tener en cuenta que pueden darnos información imprecisa e incorrecta si no utilizamos el método RAG (Retrieval-Augmented Generation), que mejora la respuesta de los LLMs utilizando una base de conocimiento, y otros elementos que mejoren la fiabilidad de estos sistemas para dar respuesta a preguntas sobre información propia y datos. También se puede utilizar clasificadores de contenido para detectar y filtrar respuestas inapropiadas.
3. Integración de procesamiento del lenguaje: Incorporar y ajustar modelos de procesamiento de lenguaje natural en las aplicaciones requiere de conocimientos lingüísticos, de análisis sintáctico y semántico del idioma con el que nuestros usuarios interactuarán con nuestra app. La biblioteca spaCy proporciona herramientas de NLP de código abierto para múltiples lenguajes.
4. Gestión de errores y desviaciones de la conversación: Desarrollar sistemas robustos que puedan manejar entradas inesperadas o erróneas en una conversación sigue siendo un reto, sobre todo si se utilizan tecnologías tradicionales. De hecho, en estos casos hay que implementar estrategias de "fallback", situaciones en las que no entendemos a los usuarios, y sistemas de aprendizaje para mejorar las respuestas en este tipo de situaciones. La capacidad de generación de lenguaje de los LLMs en este aspecto ayuda a crear conversaciones más naturales, que den respuesta a estos casos, y que no respondan simplemente con un “perdona, no te he entendido”.
5. El contexto a largo plazo: Para un usuario que habla con nuestra app, es clave que podamos mantener la coherencia en conversaciones largas o con múltiples turnos. En LLMs tenemos la limitación de la ventana de contexto y tendremos que implementar técnicas de optimización para asegurar la coherencia entre conversaciones. LangChain proporciona herramientas para manejar contextos extensos en aplicaciones de IA. En sistemas tradicionales, tendremos que hacer uso de bases de datos para almacenar la información necesaria para acordarnos de lo que hablamos con el usuario.
6. Pruebas y depuración: El testing sigue siendo importante en apps conversacionales. Crear métodos efectivos para probar y depurar sistemas de IA conversacional, los múltiples caminos en la conversación, y sus respuestas, puede llegar a ser una tarea interminable.
7. Recursos computacionales: los sistemas basados en modelos del lenguaje tienen un impacto en cuanto a coste de computación, latencia e impacto energético que tenemos que valorar. A veces los sistemas tradicionales resuelven los mismos problemas igual de bien o suficientemente bien. Tendremos que balancear la calidad de las respuestas con los costes de computación y latencia.
LLMs en el desarrollo de apps: ventajas y desventajas
Por lo que estamos viendo, queda claro que la irrupción de los LLMs en el desarrollo de interfaces conversacionales cambia la manera de trabajar y los conocimientos que tenemos que tener de estas tecnologías. ¿Qué ventajas y desventajas encontramos en este enfoque?
Ventajas:
1. Flexibilidad y versatilidad: Los modelos de lenguaje pueden adaptarse a una amplia gama de tareas sin necesidad de entrenamiento específico para cada una. Los modelos de OpenAI como GPT 4 pueden generar código, responder preguntas y realizar tareas de traducción sin entrenamiento adicional
2. Generación de respuestas: Producen respuestas más naturales y contextualmente más apropiadas que los sistemas tradicionales, que para la gestión del contexto requieren de un desarrollo más complejo, como mencionamos anteriormente.
3. Reducción del tiempo de desarrollo: Pueden disminuir significativamente el tiempo necesario para desarrollar y desplegar aplicaciones conversacionales, en muchos casos gracias al uso de APIs y frameworks que simplifican el uso de estos modelos.
4. Capacidad de aprendizaje y adaptación: Los LLMs pueden adaptarse a nuevas tareas con pocos ejemplos (few-shot learning). Esto facilita que podamos tener sistemas conversacionales adaptados a nuestras necesidades con poco esfuerzo. También podemos hacer fine-tuning para ajustar estos modelos a tareas más específicas cuando con ejemplos no obtenemos el resultado deseado, mejorando el rendimiento de LLMs en dominios particulares. Hugging Face proporciona herramientas para fine-tuning de modelos de lenguaje.
Desventajas:
1. Caja negra y falta de control: El funcionamiento interno de estos modelos del lenguaje es difícil de interpretar, lo que puede llevar a resultados o respuestas inesperadas e incontrolables. Esto es un desafío para la puesta en producción de estos sistemas, en entornos o apps donde es necesario que nuestra interfaz conversacional sea fiable y robusta en sus respuestas.
2. Costes computacionales y de servicios: El uso de estos modelos puede ser computacionalmente costoso, especialmente para aplicaciones a gran escala. También el uso de estos modelos a través de API. Es necesario entender cómo podemos optimizar estos costes, y sobre todo, entender si tenemos que usar modelos del lenguaje o podemos resolver el problema con técnicas de IA conversacional tradicionales.
3. Sesgos y problemas éticos: Pueden perpetuar o amplificar sesgos presentes en los datos de entrenamiento y proporcionar respuestas con estereotipos. La biblioteca AI Fairness 360 ayuda a detectar y mitigar sesgos en modelos de IA.
4. Dependencia de proveedores externos: El acceso a modelos de última generación a menudo depende de unos pocos proveedores privados. Proyectos de código abierto como Llama o BLOOM ofrecen modelos de lenguaje de gran escala accesibles a todo el mundo.
Oportunidades y tendencias futuras
1. Integración de IA Multimodal: Combinar texto, voz y visión en interfaces conversacionales hacen que la experiencia de usuario sea mucho más potente, no solo para entender a los usuarios, sino para poder dar respuestas a sus peticiones en múltiples modos. La multimodalidad es el futuro, pues combina lo mejor de cada método y hace que podamos dar una buena experiencia de uso en cualquier contexto o momento.
2. Aplicaciones híbridas: Para hacer frente a los retos de las tecnologías tradicionales y los LLMs, la tendencia es hacer apps híbridas. Combinar modelos de lenguaje con sistemas tradicionales puede ofrecer lo mejor de ambos mundos.
3. Automatización de tareas complejas: las posibilidades de estas tecnologías, sobre todo las basadas en agentes LLMs para automatizar tareas complejas, se están abriendo camino en el desarrollo de apps.
4. Democratización de las interfaces conversacionales: la facilidad de implementación de apps que usen APIs de LLMs o con herramientas no-code nos permiten desarrollar apps sin prácticamente tener experiencia en IA (machine learning, procesamiento del lenguaje) y podemos crear aplicaciones avanzadas.
5. Ética y privacidad: Incorporar consideraciones éticas y de privacidad desde las primeras etapas del desarrollo es importante para desarrollar apps conversacionales confiables. Avisa de que el usuario está hablando con un sistema basado en IA, de cómo se van a tratar sus datos y de cómo se van a utilizar para mejorar la app. La ley de la IA (AI Act) ya menciona algunas pautas, y también está la guía de ética para IA de la IEEE que proporciona principios para el desarrollo ético de sistemas de IA.
En resumen
El paraguas de la IA Conversacional representa una nueva frontera en el desarrollo de aplicaciones. La integración de modelos de lenguaje (LLMs) en el desarrollo de apps conversacionales ofrece además muchas oportunidades para crear experiencias de usuario más naturales y personalizadas, pero también plantea desafíos en términos de diseño, implementación y pruebas por un lado, y de conocimiento, costes y ética por otro lado.
Quienes dominen estas nuevas habilidades y herramientas en el mundo del desarrollo, y quienes puedan navegar efectivamente estas aguas o surfear la ola, combinando las fortalezas de los modelos de lenguaje con las tecnologías tradicionales de la IA conversacional junto con prácticas de desarrollo sólidas y consideraciones éticas, estarán bien posicionados para liderar la próxima generación de aplicaciones conversacionales.
Nieves Ábalos
Cofundadora de Monoceros Labs y Fonos. Ingeniera informática experta en IA Conversacional.