En este momento estás viendo Análisis de la evaluación y verificación de Chatbots

Análisis de la evaluación y verificación de Chatbots

Introducción

La expansión de sistemas basados en Inteligencia Artificial (IA) y Modelos de Lenguaje Natural (NLP), como los chatbots o modelos tipo ChatGPT, ha generado una creciente necesidad de establecer metodologías rigurosas para su verificación y validación. Esto ha provocado una gran cantidad de interrogantes sobre la viabilidad y las técnicas aplicables para probar estos modelos, cuya base se sustenta en el aprendizaje automático (Machine Learning). La evaluación de estos sistemas no implica una alteración radical de la estrategia general de pruebas, sino la definición de procesos diferenciados y la adaptación de tipos de prueba específicos para abordar los factores inherentes a la tecnología de IA. El análisis que aquí te comparto detalla la arquitectura operativa de estos modelos, las técnicas de prueba implementables, y los desafíos y limitaciones que definen este campo emergente. Por otra parte también te permitirá identificar qué aprender y con qué grado de profundidad.

Fundamentos operacionales de los Chatbots: NLP y Tokenización

Los chatbots se fundamentan en modelos de Procesamiento de Lenguaje Natural (NLP). Estos modelos están diseñados para recibir texto legible por humanos (la entrada del usuario o prompt), procesarlo y generar una respuesta nuevamente en formato legible. El mecanismo central para este procesamiento es la tokenización.

Cuando un usuario introduce una oración o una consulta, incluso si contiene errores gramaticales o jerga específica, el texto inicial se convierte inmediatamente en una secuencia de tokens. Un token es la unidad básica de procesamiento; por ejemplo, un token equivale aproximadamente a cuatro caracteres o a 0.75 palabras. Este proceso de conversión es realizado por un sistema tokenizer. Una vez tokenizado, el modelo basado en NLP o el servidor de ChatGPT procesa estos tokens (cada uno asociado a un ID interno). La respuesta generada por el modelo, que puede recurrir a datos históricos o a la llamada de APIs y recursos de terceros, se emite inicialmente también en forma de tokens y luego se reconvierte a lenguaje humano legible para el usuario.

La tokenización no es solo un proceso técnico interno, sino también la base del modelo de negocio y tarificación de la mayoría de los sistemas de IA. Los precios se establecen por cada mil tokens procesados, distinguiendo a menudo entre los tokens utilizados para la solicitud (prompt) y los tokens generados en la respuesta (completion).

Metodologías de pruebas: Adaptación de la verificación API

La dirección aquí para la evaluación sistemática de los modelos de IA es a través de la interfaz de programación de aplicaciones (API) que exponen. Aunque se utilizan herramientas típicas de prueba de APIs (como Postman o Rest Assured), la verificación debe centrarse en la relevancia y precisión de los atributos generados, más allá de la funcionalidad básica de la llamada.

El proceso de verificación API requiere autenticación mediante una clave secreta o token (Bearer Token). En el cuerpo de la solicitud (request body), se definen parámetros obligatorios (como el modelo de IA y el mensaje o contenido del prompt, especificando el rol del solicitante, p. ej., «usuario»).

Sin embargo, para influir en la calidad y el tipo de respuesta, se utilizan atributos opcionales clave:

1. Temperatura (Temperature): Este parámetro (con valores entre 0 y 2) determina el grado de aleatoriedad del resultado. Valores más altos (p. ej., 0.8) generan respuestas más creativas y aleatorias, mientras que valores más bajos (p. ej., 0.2) resultan en contenido más determinista y enfocado.

2. Top_P: Este atributo gestiona el muestreo de datos, considerando solo los tokens que cumplen con una probabilidad definida (p. ej., 0.1 considera solo el 10% superior de la masa de probabilidad).

La evaluación exitosa de estas APIs implica verificar no solo que se reciba una respuesta (prueba funcional), sino que dicha respuesta sea precisa, apropiada y relevante. Esto es aplicable tanto a la generación de texto como a tareas específicas como la corrección de código o la creación de imágenes (que dependen de la descripción textual del resultado deseado).

Tipos de pruebas específicas para modelos de IA

Dada la naturaleza adaptativa y la complejidad del lenguaje de los chatbots, la estrategia de pruebas debe abarcar múltiples dimensiones:

1. Pruebas funcionales: Verifican que el bot opera según lo esperado y que se gestionan adecuadamente los errores ante entradas inválidas o inesperadas, proporcionando mensajes informativos y útiles.

2. Evaluación de precisión (Accuracy Assessment): Esta es fundamental. Implica cotejar las respuestas del chatbot con un conjunto predefinido de respuestas esperadas o con una base de conocimiento establecida, con el fin de identificar inconsistencias o interpretaciones incorrectas del prompt.

3. Pruebas de usabilidad (UX): Evalúan la experiencia del usuario, incluyendo la interfaz, el flujo de interacción y la facilidad de uso. Es crucial verificar la capacidad del bot para manejar y recordar el contexto conversacional a través de prompts conectados o en cascada.

4. Pruebas de NLP: Prueban las capacidades de comprensión lingüística del modelo, evaluando cómo interpreta diferentes idiomas, jerga, variaciones en el slang, y errores gramaticales o de ortografía.

5. Pruebas de rendimiento y escalabilidad: Evalúan la capacidad de respuesta del chatbot bajo diversas condiciones y alta concurrencia. Se debe asegurar que el sistema mantenga un tiempo de respuesta óptimo y sea capaz de escalar bajo cargas elevadas.

6. Pruebas de integración: Si el chatbot se conecta a sistemas de terceros (como bases de datos o fuentes externas como Stack Overflow), estas pruebas garantizan el correcto intercambio de datos y que las acciones desencadenadas se ejecuten como se espera.

7. Pruebas de escenarios del mundo real: Se incorporan entradas diversas de usuarios (no solo relacionadas con TI o código, sino de contenido, política, periodismo, etc.) para asegurar que el bot comprende patrones complejos y casos extremos (edge cases).

8. Pruebas de seguridad y privacidad: Aseguran que el chatbot maneje la información sensible del usuario de manera apropiada, cumpla con las regulaciones de protección de datos y prevenga el acceso no autorizado o la fuga de información.

Desafíos y limitaciones inherentes a la evaluación de IA

La prueba de chatbots es un proceso iterativo y continuo debido a su capacidad de aprendizaje y adaptación constante. Este carácter evolutivo introduce serias limitaciones metodológicas:

1. Dependencia de los datos de entrenamiento: Los chatbots exigen volúmenes masivos de datos de entrenamiento que sean diversos y representativos. La recopilación de conjuntos de datos adecuados resulta especialmente difícil para dominios especializados o nichos donde la disponibilidad de datos es limitada.

2. Manejo de conversaciones complejas y contexto: Los modelos a menudo luchan por gestionar interacciones complejas o multirrespuesta. Pueden perder la capacidad de mantener el contexto de solicitudes previas, resultando en respuestas irrelevantes o en la incapacidad de relacionar prompts conectados.

3. Ambigüedad y variabilidad del Lenguaje Natural: El lenguaje humano es intrínsecamente ambiguo. Los usuarios pueden expresar la misma intención de múltiples maneras, incluyendo errores tipográficos y jerga. Probar la robustez del chatbot frente a todas estas variaciones es sumamente difícil.

4. Falta de matrices de evaluación estandarizadas: La evaluación de la calidad de la conversación es subjetiva. Aunque existen métricas de precisión y recuperación (recall), estas no logran capturar la calidad conversacional completa ni la experiencia del usuario.

5. Requerimiento de especialización de dominio: Los testers deben poseer el conocimiento de dominio necesario (p. ej., finanzas, desarrollo de software) para determinar si la respuesta generada por el chatbot es correcta y relevante dentro de ese contexto específico. Sin esta experiencia, es imposible validar la exactitud de la salida (ejemplificado en la generación de código incorrecto).

6. Comportamiento impredecible del usuario: Los usuarios pueden introducir deliberadamente entradas no convencionales o intentar confundir o engañar al chatbot. Esta imprevisibilidad dificulta la anticipación de todos los posibles casos extremos durante el diseño de pruebas.

7. Aprendizaje continuo y adaptación: El comportamiento del chatbot evoluciona con el tiempo a medida que aprende de las interacciones. Esto exige un monitoreo regular y pruebas iterativas constantes para garantizar mejoras continuas y detectar efectos secundarios no intencionados en el sistema.

Conclusión (primera)

La verificación de los sistemas de IA como ChatGPT requiere un enfoque de pruebas multidisciplinario que trasciende la funcionalidad básica. Es imperativo que los profesionales de QA adapten sus técnicas, utilizando herramientas existentes para la automatización (principalmente a nivel de API) pero enfocando la mentalidad de prueba en la validación de la precisión de los datos, la seguridad y el rendimiento bajo carga. La prueba de modelos de IA es un compromiso en evolución, esencial para asegurar la madurez y la fiabilidad de estos sistemas que aprenden y se adaptan continuamente a la interacción con el usuario.


Relación del contenido con los conceptos de IA Generativa aplicada al Testing

Fundamentos operacionales: NLP y tokenización

  • “tokenización” como base de cómo funcionan los LLM.
  • tokenizer de OpenAI.
  • ¿Cómo una misma frase se descompone en tokens y cómo afecta al costo/longitud de contexto?
  • experimentar con frases equivalentes y contar tokens (variación de costo y truncamiento).

No determinismo y control de salida (temperature / top-p)

  • parámetros de muestreo (creatividad vs. previsibilidad).
  • “Comportamiento no determinista” + usar temperatura para ganar consistencia de estructura.
  • ¿Cómo cambia la respuesta al variar temperature y top_p frente al mismo prompt?
  • definir un formato de salida fijo y medir el % de cumplimiento a distintas configuraciones.

Verificación por API (autenticación, roles, request body)

  • pruebas vía API con enfoque en calidad del resultado (no sólo 200 OK).
  • impacto de la interfaz/capa de interacción (web, cliente/servidor, llamada a API) en el diseño de pruebas
  • usar una colección de Postman para variar system/user, temperature y top_p; definir aserciones sobre el JSON de salida (contenido y forma).
  • contrato mínimo de respuesta (campos obligatorios) + aserciones de precisión.

Ingeniería de prompts (patrones + Markdown)

  • guiar al modelo, estructurar salidas y controlar formato.
  • patrones de prompting (persona, CoT, “consulta-comando”), uso de Markdown y mnemotecnia C.R.E.A.T.E. para diseñar prompts.
  • contrastar un prompt “plano” vs. uno con estructura Markdown y campos de salida.
  • mini-taller “rehacer el prompt” con CREATE para obtener una tabla de métricas.

Tipos de prueba funcionales y de calidad de respuesta (Accuracy)

  • pruebas funcionales + evaluación de precisión contra oráculos/KB.
  • beneficios y casos de uso: generación de casos, análisis de cobertura, reporting; y desafíos (falta de precisión, verificación continua).
  • definir un conjunto de “golden answers” y medir exactitud/adecuación por rúbrica.
  • rubricar 20 respuestas (escala 1–5) y discutir discrepancias de evaluadores.

Pruebas de NLP (idioma, jerga, errores)

  • robustez lingüística (slang, faltas, variantes).
  • técnicas de prompting + límites de contexto; dependencia de calidad de insumos.
  • batería de prompts “ruidosos” y medición del deterioro de la calidad.

Diseño sistemático de pruebas (funcionales)

  • ECP, BVA, pairwise, tablas de decisión, estados; adaptar al canal (UI/API).
  • módulos (ECP, BVA, pairwise…) y formatos (Gherkin, listas, tablas, ISO 29119-5).
  • tomar una intent de chatbot y derivar casos con ECP/BVA + variaciones por interfaz.

Pruebas no funcionales (rendimiento, usabilidad, accesibilidad, seguridad)

  • performance/escala, UX, seguridad y privacidad.
  • generación exploratoria de pruebas no funcionales (checklists, taxonomías, 5W1H) y desafíos de seguridad/privacidad/IP.
  • plan de pruebas de carga (picos/concurrencia) y checklist de privacidad (PII, retención, logging).

Integraciones y escenarios del mundo real

  • pruebas de integración con fuentes externas y casos “open-domain”.
  • beneficios/casos de uso (planeación, reporting, cobertura) y “fecha de corte” de los modelos (necesidad de complementar).
  • simular búsquedas o RAG cuando el conocimiento del modelo es insuficiente.

Datos de prueba y automatización (Data-Driven, Regex)

  • separar datos de ideas de prueba; generación y formateo; regex para validación y datos sintéticos.
  • DDT (CSV/tabla) + casos de uso de RegEx con LLM.
  • diseñar una matriz de datos (válidos/inválidos) y validarla con regex generadas por el LLM.

Riesgos: alucinaciones, sesgos, medición de productividad

  • límites metodológicos y gobernanza
  • lista de desafíos (hallucinations, sesgo/equidad, precisión, no determinismo, productividad).
  • “reality filter” y evidencias: exigir fuentes, reproducibilidad y contra-ejemplos.

Hoja de ruta de adopción (Prompting → GPTs → RAG → Fine-tuning)

  • madurez progresiva y foco en datos contextuales.
  • roadmap de adopción para equipos de prueba.
  • evaluar el nivel actual del equipo y elegir el siguiente paso (p.ej., estandarizar plantillas de salida antes de RAG).

Punto para reflexionar

Al momento de escribir este artículo, la mayoría de los puntos listados aquí que se relacionan con el contenido central (chatbots) lo estoy cubriendo por así decirlo en lo que refiere al conocimiento y práctica, y quedan otros que aún debo seguir investigando para luego realizar pruebas de concepto como la verificación por API (autenticación, roles, request body) y algunos otros más. A modo de una primera conclusión rescato todo lo que hay que aprender y seguir investigan, es impresionante.

Gus Terrera

Apasionado por el agile testing y la ia.