Sviluppi nell'AI per scrivere query SQL
L'AI generativa sta migliorando il modo in cui i professionisti dei dati scrivono le query SQL.
― 4 leggere min
Indice
L'IA generativa sta diventando uno strumento importante nell'analisi dei dati, soprattutto per scrivere query SQL. SQL, che sta per Structured Query Language, viene usato per comunicare con i database. Scriverlo può essere un po' complicato perché ha regole specifiche e può essere fatto in vari modi che non sono sempre chiari. Questo articolo parlerà di come i nuovi modelli stanno migliorando il modo in cui scriviamo SQL usando l'IA.
Sfide con SQL
Scrivere SQL può essere difficile per diversi motivi. Prima di tutto, SQL è spesso scritto in modo non lineare. Questo significa che gli autori possono completare parti di una query in un ordine casuale, come scrivere una clausola WHERE prima di decidere quali colonne selezionare. Questo può confondere sia gli esseri umani che le macchine che cercano di generare o completare le istruzioni SQL.
Un’altra sfida è che SQL richiede una formattazione precisa. Tabelle e colonne hanno nomi specifici che devono essere usati correttamente. Se un modello progettato per aiutare a scrivere SQL sbaglia questi nomi, l'intera query potrebbe non funzionare correttamente.
Infine, SQL è un linguaggio dichiarativo. Questo significa che descrive quali dati ottenere, non come ottenerli, a differenza di altri linguaggi di programmazione dove i passaggi sono più espliciti. Questa natura astratta può rendere complesso per i modelli produrre buone suggerimenti SQL.
Sviluppare un Modello SQL Migliore
Per affrontare questi problemi, ricercatori e sviluppatori hanno creato un modello SQL che tiene conto del contesto della query. Hanno costruito un benchmark per testare quanto bene il modello funziona in diversi scenari.
Hanno iniziato con un modello pubblico esistente e l'hanno testato contro le loro prove interne. Questo benchmark ha fornito una base per valutare le prestazioni del modello. I test hanno mostrato che il modello aveva un punteggio BLEU del 53% per le previsioni su una sola riga e del 24% per quelle su più righe. I punteggi BLEU sono spesso usati per misurare quanto il testo prodotto assomigli a un testo di riferimento.
Affinamento per Risultati Migliori
Dopo i test iniziali, gli sviluppatori hanno affinato il modello usando dati interni. Questo includeva query SQL reali e la struttura dei database. L'affinamento ha migliorato notevolmente le previsioni e l'accuratezza del modello. Infatti, il modello revisionato ha superato l'originale di 16 punti percentuali nel punteggio BLEU.
Hanno anche implementato un nuovo approccio conosciuto come modello fill-in-the-middle. Questo modello fornisce contesto prima e dopo la parte del codice che deve essere completata. Questo è stato un miglioramento notevole perché ha permesso al modello di fare previsioni più informate, specialmente per le query su più righe. Il modello fill-in-the-middle ha mostrato un aumento di 35 punti percentuali rispetto al modello precedente.
Feedback degli Utenti e Adozione
Man mano che il modello si sviluppava, è stato rilasciato per uso pratico tra ingegneri e data scientist. Il feedback degli utenti ha aiutato a identificare cosa funzionava e cosa no. Gli utenti hanno segnalato che lo strumento IA era particolarmente bravo a gestire compiti SQL ripetitivi e a fornire codice standard. Ha anche aiutato a ridurre la necessità di ricordare la sintassi SQL complessa.
In generale, il sistema IA ha ricevuto risposte positive. Un numero significativo di utenti si è impegnato attivamente con il modello ogni settimana, indicando che veniva integrato nel loro lavoro quotidiano.
Misurare il Successo
Per valutare il successo del nuovo modello IA, sono stati stabiliti diversi metriche. Le metriche includevano quanto spesso gli utenti accettavano suggerimenti, quanti caratteri di codice SQL venivano generati e quale percentuale di query veniva completata correttamente.
Una misura innovativa era il Numero di Caratteri Accettati per Opportunità (CPO). Questa metrica aiuta a capire quante suggerimenti di qualità sono stati fatti rispetto al numero di occasioni che l’IA ha avuto per fornire un suggerimento.
Affrontare i Problemi
Nonostante i successi, ci sono state anche sfide che gli utenti hanno sperimentato. Una lamentela comune riguardava nomi di tabelle o colonne errati, noti come "Allucinazioni." Questi errori erano ancora presenti, anche dopo i miglioramenti.
Un'altra area di feedback si concentrava sull'esperienza utente. Gli sviluppatori avevano le loro preferenze su come formattare le loro query SQL, portando a qualche attrito con il modo in cui l'IA si integrava con gli strumenti esistenti.
Conclusione
In conclusione, l'IA generativa sta facendo progressi nel campo dell'analisi dei dati migliorando il modo in cui vengono scritte le query SQL. Le sfide con SQL, come gli stili di scrittura non lineari e la necessità di accuratezza, hanno spinto a un approccio reattivo nello sviluppo degli strumenti IA. Con un continuo affinamento e feedback degli utenti, questi strumenti stanno diventando più efficienti, risparmiando tempo e fatica ai professionisti del settore.
Con il progresso della tecnologia IA, ci aspettiamo ulteriori miglioramenti e innovazioni che renderanno ancora più facile scrivere SQL e gestire i dati. Il futuro dell'analisi dei dati appare promettente con l'integrazione di strumenti IA generativi che migliorano produttività e accuratezza.
Titolo: AI-Assisted SQL Authoring at Industry Scale
Estratto: 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.
Autori: Chandra Maddila, Negar Ghorbani, Kosay Jabre, Vijayaraghavan Murali, Edwin Kim, Parth Thakkar, Nikolay Pavlovich Laptev, Olivia Harman, Diana Hsu, Rui Abreu, Peter C. Rigby
Ultimo aggiornamento: 2024-07-19 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2407.13280
Fonte PDF: https://arxiv.org/pdf/2407.13280
Licenza: https://creativecommons.org/licenses/by/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.
Link di riferimento
- 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/