Avances en IA para escribir consultas SQL
La IA generativa está mejorando la forma en que los profesionales de datos escriben consultas SQL.
― 5 minilectura
Tabla de contenidos
La IA generativa se está convirtiendo en una herramienta importante en el análisis de datos, especialmente en la redacción de consultas SQL. SQL, que significa Lenguaje de Consulta Estructurado, se usa para comunicarse con bases de datos. Puede ser un poco complicado de escribir porque tiene reglas específicas y se puede hacer de varias maneras que no siempre son sencillas. Este artículo va a hablar sobre cómo los nuevos modelos están mejorando la forma en que escribimos SQL usando IA.
Desafíos con SQL
Escribir SQL puede ser complicado por varias razones. Primero, a menudo se escribe de una manera que no es lineal. Esto significa que los autores pueden rellenar partes de una consulta fuera de orden, como escribir una cláusula WHERE antes de decidir qué columnas seleccionar. Esto puede confundir tanto a humanos como a máquinas que intentan generar o completar declaraciones SQL.
Otro desafío es que SQL requiere un formato preciso. Las tablas y columnas tienen nombres específicos que deben usarse correctamente. Si un modelo diseñado para ayudar a escribir SQL se equivoca con estos nombres, toda la consulta puede fallar al ejecutarse correctamente.
Finalmente, SQL es un lenguaje declarativo. Esto significa que describe qué datos obtener, no cómo obtenerlos, a diferencia de otros lenguajes de programación donde los pasos son más explícitos. Esta naturaleza abstracta puede hacer que sea complejo para los modelos producir buenas sugerencias de SQL.
Desarrollando un Mejor Modelo SQL
Para abordar estos problemas, investigadores y desarrolladores crearon un modelo SQL que tiene en cuenta el contexto de la consulta. Construyeron un estándar para probar qué tan bien funcionaba el modelo en diferentes escenarios.
Primero empezaron con un modelo público existente y lo hicieron pasar por sus pruebas internas. Este estándar proporcionó una línea base de cómo debería funcionar el modelo. Las pruebas mostraron que el modelo tenía un puntaje BLEU del 53% para predicciones en una sola línea y del 24% para predicciones en varias líneas. Los puntajes BLEU se usan a menudo para medir qué tan similar es el texto producido al texto de referencia.
Ajustando para Mejores Resultados
Después de las pruebas iniciales, los desarrolladores ajustaron el modelo usando datos internos. Esto incluyó consultas SQL reales y la estructura de las bases de datos. El ajuste mejoró significativamente las predicciones y la precisión del modelo. De hecho, el modelo revisado superó al original por 16 puntos porcentuales en el puntaje BLEU.
También implementaron un nuevo enfoque conocido como modelo de llenar en el medio. Este modelo proporciona contexto antes y después de la parte del código que necesita ser completada. Esto fue una mejora notable porque permitió que el modelo hiciera predicciones más informadas, especialmente para consultas en varias líneas. El modelo de llenar en el medio mostró un aumento de 35 puntos porcentuales en comparación con el modelo anterior.
Retroalimentación de Usuarios y Adopción
A medida que se desarrollaba el modelo, se puso en uso práctico entre ingenieros y científicos de datos. La retroalimentación de los usuarios ayudó a identificar lo que funcionaba y lo que no. Los usuarios reportaron que la herramienta de IA era particularmente buena manejando tareas repetitivas de SQL y proporcionando código estándar. También ayudó a reducir la necesidad de recordar sintaxis complejas de SQL.
En general, el sistema de IA recibió respuestas positivas. Un número significativo de usuarios se involucró activamente con el modelo cada semana, lo que indica que se estaba integrando en su trabajo diario.
Midiendo el Éxito
Para evaluar el éxito del nuevo modelo de IA, se establecieron varias métricas. Las métricas incluían con qué frecuencia los usuarios aceptaban sugerencias, cuántos caracteres de código SQL se generaban y qué porcentaje de consultas se completaban correctamente.
Una medida innovadora fue los Caracteres Aceptados por Oportunidad (CPO). Esta métrica ayuda a entender cuántas sugerencias de calidad se hicieron en relación con el número de oportunidades que tuvo la IA para proporcionar una sugerencia.
Abordando Problemas
A pesar de los éxitos, también hubo desafíos que los usuarios experimentaron. Una queja común fue sobre nombres de tablas o nombres de columnas incorrectos, a los que se refirieron como "Alucinaciones". Estos errores seguían presentes, incluso después de las mejoras.
Otra área de retroalimentación se centró en la experiencia del usuario. Los desarrolladores tenían sus propias preferencias sobre cómo formatear sus consultas SQL, lo que generó cierta fricción con la forma en que la IA se integraba con herramientas existentes.
Conclusión
En conclusión, la IA generativa está haciendo avances en el campo del análisis de datos al mejorar la forma en que se escriben las consultas SQL. Los desafíos con SQL, como los estilos de escritura no lineales y la necesidad de precisión, han impulsado un enfoque receptivo en el desarrollo de herramientas de IA. Con ajustes continuos y retroalimentación de los usuarios, estas herramientas se están volviendo más eficientes, ahorrando tiempo y esfuerzo para los profesionales del campo.
A medida que la tecnología de IA avanza, podemos esperar más mejoras e innovaciones que harán que escribir SQL y gestionar datos sea aún más fácil. El futuro del análisis de datos parece prometedor con la integración de herramientas de IA generativa que mejoran la productividad y la precisión.
Título: AI-Assisted SQL Authoring at Industry Scale
Resumen: SqlCompose brings generative AI into the data analytics domain. SQL is declarative, has formal table schemas, and is often written in a non-linear manner. We address each of these challenges and develop a set of models that shows the importance of each problem. We first develop an internal SQL benchmark to perform offline tests at Meta. We evaluate how well the Public Llama model performs. We attain a BLEU score of 53% and 24% for single- and multi-line predictions, respectively. This performance is consistent with prior works on imperative languages. We then fine-tune Llama on our internal data and database schemas. SqlComposeSA substantially outperforms Llama by 16 percentage points on BLEU score. SQL is often written with multiple sub queries and in a non-sequential manner. We develop SqlComposeFIM which is aware of the context before and after the line(s) that need to be completed. This fill-in-the-middle model outperform SqlComposeFIM by 35 percentage points. We also measure how often the models get the correct table names, and SqlComposeFIM is able to do this 75% of the time. Aside from our scientific research, we also roll out SqlComposeFIM at Meta. SqlCompose is used on a weekly basis by over 10k users including data scientists and software engineers, less than 1% of users have disabled SqlCompose. We use the feedback from users to improve SqlCompose. Interesting positive themes include completing tedious or repetitive SQL clauses, suggesting boilerplate coding, and help in eliminate the need to remember difficult SQL syntax. The most significant negative themes was table and column name hallucinations, which has been reduced with the release of SqlComposeFIM. The SqlCompose models consistently outperform public and internal LLMs, despite being smaller (7 bn and 13 bn), which provides early indications that smaller specialist models can outperform larger general purpose models.
Autores: Chandra Maddila, Negar Ghorbani, Kosay Jabre, Vijayaraghavan Murali, Edwin Kim, Parth Thakkar, Nikolay Pavlovich Laptev, Olivia Harman, Diana Hsu, Rui Abreu, Peter C. Rigby
Última actualización: 2024-07-19 00:00:00
Idioma: English
Fuente URL: https://arxiv.org/abs/2407.13280
Fuente PDF: https://arxiv.org/pdf/2407.13280
Licencia: https://creativecommons.org/licenses/by/4.0/
Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.
Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.
Enlaces de referencia
- https://fb.workplace.com/notes/291323096818003
- https://orc.apache.org/
- https://docs.google.com/spreadsheets/d/1E5I-pQHNDhry3SdTBYl63r5E-EKWKalVOcitxFtFVaA/edit#gid=688076130
- https://aclanthology.org/2023.emnlp-main.868/
- https://arxiv.org/pdf/2305.03111
- https://arxiv.org/pdf/2312.03463
- https://conf.researchr.org/track/icse-2020/icse-2020-Artifact-Evaluation#for-replicated-and-reproduced-badges
- https://github.com/CESEL/CodeEntropyReplication
- https://excel2latex.com/