¡Un agradecimiento especial a Manas Singh y Evan Jolley por colaborar con nosotros en esta investigación!
Una posible aplicación de los LLM que ha atraído la atención y la inversión es su capacidad para generar consultas SQL. Consultar bases de datos grandes con lenguaje natural abre la puerta a varios casos prácticos atractivos, desde aumentar la transparencia de los datos hasta mejorar la accesibilidad para usuarios no técnicos.
Sin embargo, como ocurre con cualquier contenido generado por IA, la cuestión de la evaluación es importante. ¿Cómo podemos determinar si una consulta SQL generada por LLM es correcta y produce los resultados previstos? Nuestra investigación reciente se adentra en esta cuestión y explora la eficacia del uso de LLM como juez para evaluar la generación de SQL.
El uso de LLM como juez muestra un potencial inicial en la evaluación de la generación de SQL, con puntuaciones F1 entre 0,70 y 0,76 utilizando GPT-4 Turbo de OpenAI en este experimento. Incluir información relevante sobre el esquema en la solicitud de evaluación puede reducir significativamente los falsos positivos. Si bien persisten los desafíos (incluidos los falsos negativos debido a una interpretación incorrecta del esquema o suposiciones sobre los datos), LLM como juez proporciona un indicador sólido del rendimiento de la generación de SQL con IA, especialmente como una verificación rápida de los resultados.
Este estudio se basa en trabajos previos realizados por el equipo Defog.ai, que desarrolló un enfoque Evaluar consultas SQL mediante consultas y conjuntos de datos de referencia. El proceso implica utilizar una pregunta de conjunto de datos de referencia para la generación de SQL con IA, generar resultados de prueba “x” a partir del SQL generado por IA, utilizar una consulta de referencia preexistente en el mismo conjunto de datos para producir resultados “y” y luego comparar los resultados “x” e “y” para comprobar su precisión.
Para esta comparación, primero exploramos los métodos tradicionales de evaluación de SQL, como la coincidencia exacta de datos. Este enfoque implica una comparación directa de los datos de salida de las dos consultas. Por ejemplo, al evaluar una consulta sobre citas de autores, cualquier diferencia en la cantidad de autores o en sus recuentos de citas daría como resultado una discrepancia y un error. Si bien es sencillo, este método no maneja casos extremos, como la forma de manejar contenedores de recuento cero o ligeras variaciones en los resultados numéricos.
Luego probamos un enfoque más matizado: usar un LLM como juez. Nuestras pruebas iniciales con este método, utilizando GPT-4 Turbo de OpenAI sin incluir información del esquema de la base de datos en la solicitud de evaluación, arrojaron resultados prometedores con puntajes F1 entre 0,70 y 0,76. En esta configuración, el LLM juzgó el SQL generado examinando solo la pregunta y la consulta resultante.
En esta prueba notamos que hubo bastantes falsos positivos y negativos, muchos de ellos relacionados con errores o suposiciones sobre el esquema de la base de datos. En este caso de falso negativo, el LLM asumió que la respuesta estaría en una unidad diferente a la esperada (semestres en lugar de días).
Estas discrepancias nos llevaron a agregar el esquema de la base de datos en el mensaje de evaluación. Contrariamente a nuestras expectativas, esto dio como resultado un peor rendimiento. Sin embargo, cuando refinamos nuestro enfoque para incluir solo el esquema de las tablas a las que se hace referencia en las consultas, observamos una mejora significativa tanto en las tasas de falsos positivos como de falsos negativos.
Si bien el potencial de usar LLM para evaluar la generación de SQL es claro, aún quedan desafíos. A menudo, los LLM hacen suposiciones incorrectas sobre las estructuras y relaciones de datos o suponen incorrectamente unidades de medida o formatos de datos. Encontrar la cantidad y el tipo correctos de información de esquema para incluir en la solicitud de evaluación es importante para optimizar el rendimiento.
Cualquiera que explore un caso de uso de generación de SQL podría explorar varias otras áreas, como optimizar la inclusión de información de esquema, mejorar la comprensión de los LLM de los conceptos de base de datos y desarrollar métodos de evaluación híbridos que combinen el juicio de los LLM con técnicas tradicionales.
Con la capacidad de detectar errores matizados, LLM como juez se muestra prometedor como una herramienta rápida y eficaz para evaluar consultas SQL generadas por IA.
Seleccionar cuidadosamente qué información se proporciona al juez de LLM ayuda a aprovechar al máximo este método; al incluir detalles relevantes del esquema y refinar continuamente la Proceso de evaluación de LLMPodemos mejorar la precisión y confiabilidad de la evaluación de generación de SQL.
A medida que las interfaces de lenguaje natural con las bases de datos se vuelven cada vez más populares, la necesidad de métodos de evaluación eficaces no hará más que crecer. El enfoque de LLM como juez, si bien no es perfecto, proporciona una evaluación más matizada que la simple comparación de datos, capaz de comprender el contexto y la intención de una manera que los métodos tradicionales no pueden.
¿Tienes preguntas? No dudes en comunicarte aquí o en LinkedIn o Flojo.