Panda: IA para debugging en base de datos.
Tags: aws, ai, llm
Published: 2024-01-22 21:05:08

Si trabajas o alguna vez has trabajado como administrador de base de datos (o de sistemas), sabrás que un proceso de debugging puede ser una tarea complicada. Un grupo de investigadores de AWS propone facilitar ese proceso mediante el uso de modelos de lenguaje natural en este [paper](https://www.amazon.science/publications/panda-performance-debugging-for-databases-using-llm-agents) que recomiendo que leas.
La propuesta es sencilla, porque no usar los modelos LLM para que nos ayuden en este tipo de tareas?. Seguro que has usado ChatGPT para alguna que otra incidencia, y seguramente también que las respuestas que has obtenido a pesar de ser ciertas (en algunos casos) son muy genéricas y triviales. Y aquí es donde los investigadores de AWS, ponen el foco en 2 limitaciones claves de los modelos pre-entrenados para este tipo de soluciones y como Panda haciendo uso de ellas puede ayudar a perfeccionar este tipo de consultas:

- El contexto.

- El análisis de datos multimodales.

Y es que estos dos puntos, en cualquier proceso de debugging son fundamentales para poder dar una posible solución coherente y fundamentada. Un problema en dos bases de datos distintas, sus causas probablemente tendrán contextos distintos. Incluso una misma base de datos, en dos momentos distintos en el tiempo, la causa raíz de un problema de rendimiento puede ser distinta. De ahí la importancia del contexto.
Y sí el contexto es importante, no menos es el análisis de datos multimodales, es decir, datos de distintas fuentes como registros, documentos de resolución de problemas o telemetría propia de la base de datos

Si analizamos esta imagen incluida en el paper entenderemos fácilmente estos dos conceptos.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y2pjg67ehbppd3mnj789.png)

Como se puede observar en la imagen, ante una pregunta de un problema de rendimiento en un base de datos Aurora y que se observa un gran número de sesiones en waiting. La respuesta de un modelo GPT4 sin contexto y sin datos multimodales, se basa prácticamente en una serie de buenas practicas a seguir que no aportan mucho valor en este tipo de situaciones. En cambio Panda, consigue integrar datos de diversas fuentes, para construir un contexto multi-modal antes de generar las recomendaciones.

## **Arquitectura**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v6bdy4ukoo45azkljjdw.png)
Su arquitectura se basa en una serie de componentes  para alcanzar el objetivo final que es proporcionar recomendaciones especificas para el debugging en bases de datos:

**1. Question Verification Agent(QVA)**: Básicamente es un filtro para identificar y rechazar consultas irrelevantes, proporcionando una etiqueta binaria(Si o No) y se apoya en el modelo RAG para sugerir  un servicio o herramienta especifica.

**2. Grounding Mechanism**: Su función es integrar información de distintas fuentes como documentos de resolución de problemas, tickets, "best practices" consiguiendo así un contexto global. Este mecanismo genera otro contexto local que se logra con datos de la propia base de datos con métricas de la misma. Con ambos contexto se busca entender el problema y dar una solución útil.

**3. Feedback Mechanism**: Mediante un almacén de cache y respuestas binarias al usuario, se consigue una retroalimentación que mejora la respuestas con el tiempo.

**4. Verification Mechanism**: Panda usa modelos LLM precio-entrenados como verificador y añaden fuentes a las respuesta que ha generado, mejorando la confiabilidad.

**5. Affordance Mechanism**: El objetivo es que ante un cambio propuesto el usuario obtenga una estimación del impacto, resaltando las acciones de alto riesgo. Panda en esta versión lo orienta desde un punto más genérico (menos preciso).


Como se puede observar, la propuesta de los investigadores de AWS es muy interesante desde el punto de vista de nuevos casos de usos que muestran posibles casos prácticos en el uso de modelos LLM, así como el desarrollo de estas soluciones y su aplicación con nuevas arquitecturas. Desde luego, este tipo de soluciones es muy a tener en cuenta, ya que abren nuevos caminos en el desarrollo de nuevas soluciones en inteligencia artificial.