Migliorare la traduzione da linguaggio naturale a SQL
Nuovo metodo migliora la traduzione delle query SQL potando gli schemi del database.
― 6 leggere min
Indice
Tradurre il linguaggio naturale in query SQL può essere un compito difficile, specialmente quando il testo è lungo. Una delle principali sfide è che il metodo usato per l'attenzione nei trasformatori può occupare molta memoria, rendendo complicato elaborare sequenze di input lunghe. Questo è particolarmente importante quando si combina una domanda in linguaggio naturale con uno schema di database, il che può portare a testi molto lunghi.
In questo contesto, presentiamo un metodo che migliora il processo di traduzione rendendo più facile gestire testi più lunghi. Il nostro approccio utilizza una tecnica chiamata potatura dello schema di database, il che significa che rimuoviamo le parti non necessarie dello schema di database che non aiutano con la specifica query che vogliamo. Questo consente al nostro metodo di lavorare con input che hanno fino a 512 token.
Panoramica del Metodo
Abbiamo usato un approccio Multilingue nel nostro studio. Il modello che abbiamo scelto si chiama mT5-large, che è una versione di un modello più grande progettato per tradurre numerose lingue. Abbiamo addestrato questo modello con un dataset variegato noto come Spider dataset, che contiene query in inglese, portoghese, spagnolo e francese.
L'obiettivo di questo lavoro è mostrare come la potatura dello schema di database possa aiutare con i compiti di traduzione e migliorare le prestazioni, specialmente in un contesto multilingue.
La Sfida dei Testi Lunghi
I trasformatori hanno fatto notevoli progressi nell'elaborazione del linguaggio naturale, ma faticano con sequenze di testo lunghe. Il limite standard di input è di 512 token. Anche se è possibile alzare questo limite, farlo porta a un aumento dell'uso della memoria, che può disperdere l'attenzione su vari token.
Esistono vari metodi per gestire i testi lunghi più efficacemente, come Big Bird e Longformer. Questi metodi puntano a mantenere l'uso della memoria gestibile mentre si mantiene una buona prestazione. La nostra ricerca si concentra sul miglioramento dei trasformatori per la traduzione da linguaggio naturale a SQL specificamente.
Importanza dello Schema nella Traduzione
I parser esistenti da linguaggio naturale a SQL, soprattutto quelli basati su trasformatori, combinano la domanda con lo schema di database correlato. Sfortunatamente, molte parole nello schema potrebbero non essere necessarie per generare una corretta query SQL. Concentrandoci solo su tabelle e colonne rilevanti per ogni domanda, possiamo ridurre la dimensione dell'input.
Il dataset Spider è stata una risorsa significativa nello sviluppo di questi parser. Include una varietà di database e query complesse. I recenti progressi nelle tecniche NL2SQL hanno sfruttato le caratteristiche di questo dataset.
Potatura dello Schema
La potatura dello schema implica tagliare tabelle e colonne dallo schema di database che non sono rilevanti per la domanda in questione. Questo aiuta a mantenere sotto controllo la lunghezza del testo di input. Quando le domande vengono elaborate, le parti non necessarie dello schema possono essere eliminate, consentendo alle parti rilevanti di rientrare nel limite di 512 token.
Per raggiungere questo obiettivo, abbiamo analizzato le domande di addestramento relative al database e identificato quali tabelle e colonne venivano utilizzate regolarmente. Concentrandoci su queste, possiamo creare uno schema più corto e gestibile.
Aumento dei Dati Multilingue
L'elaborazione del linguaggio naturale ha fatto molta strada, specialmente in inglese. Tuttavia, gestire più lingue pone sfide a causa dei modelli linguistici limitati. I modelli multilingue sono utili in questi casi.
Sulla base di scoperte precedenti, abbiamo scoperto che lavorare con modelli multilingue dava risultati migliori rispetto all'uso di modelli monolingue. Pertanto, abbiamo scelto mT5, progettato per più lingue e pre-addestrato su 101 lingue, incluse quelle del nostro studio.
Il dataset Spider stesso consiste in più file, con un numero significativo di domande tradotte in portoghese, spagnolo e francese. Mantenendo lo schema di database originale in inglese, abbiamo garantito che le traduzioni corrispondessero alle query previste.
Esperimenti e Risultati
Abbiamo condotto vari esperimenti per verificare i nostri metodi. Prima, abbiamo confrontato i nostri risultati con modelli esistenti. Abbiamo constatato che il modello base raggiungeva buoni risultati. Il nostro approccio multilingue ha migliorato i risultati quando abbiamo usato un dataset che combinava diverse lingue.
Quando abbiamo eseguito il fine-tuning del modello con il nostro dataset potato, i risultati hanno mostrato un aumento notevole dell'accuratezza. La potatura dello schema ha aiutato il modello a concentrarsi meglio e ottenere un punteggio di corrispondenza esatta più alto. Questo indica che includere informazioni schemative non necessarie può avere un impatto negativo sulle prestazioni.
Risultati del Fine-Tuning
Per capire l'impatto della potatura dello schema, abbiamo condotto ulteriori esperimenti con due diversi dataset: uno con lo schema di database standard e l'altro con la versione potata.
Dopo il fine-tuning con il dataset potato, abbiamo visto un notevole miglioramento delle prestazioni. Il modello addestrato sul dataset potato ha ottenuto risultati migliori rispetto a quello addestrato sullo schema completo. Questo è stato evidente a diversi livelli di complessità delle domande.
Prestazioni Specifiche per Lingua
Quando abbiamo esaminato come il modello si comportava con le diverse lingue, abbiamo trovato che i risultati erano generalmente più bassi per le lingue diverse dall'inglese. Questo è probabilmente dovuto al fatto che il modello era stato addestrato principalmente su dati in inglese, portando a una differenza di prestazioni quando si inferivano query in altre lingue.
Tuttavia, il modello addestrato con lo schema potato ha mostrato miglioramenti in tutte le lingue rispetto al dataset di addestramento standard. I risultati hanno rafforzato l'importanza di potare gli elementi non necessari dallo schema.
Conclusione
La nostra ricerca ha introdotto preziose intuizioni nella traduzione del linguaggio naturale in query SQL, particolarmente in un contesto multilingue. Potando lo schema di database, abbiamo dimostrato come potremmo migliorare le prestazioni e gestire sequenze di input più lunghe.
I miglioramenti nella precisione evidenziano l’efficacia del nostro approccio. Il lavoro futuro comporterà l'applicazione delle tecniche sviluppate qui ad altri dataset e modelli per valutarne l'usabilità generale e l'impatto sui compiti di traduzione.
Potando lo schema e adottando un approccio di addestramento multilingue, non solo abbiamo migliorato le prestazioni di traduzione, ma abbiamo anche aperto nuove strade per i ricercatori che cercano di avanzare in questo campo. La capacità di elaborare testi più lunghi senza superare i limiti di memoria e mantenendo l'accuratezza è cruciale per sviluppare strumenti che possano tradurre efficacemente il linguaggio umano in query SQL strutturate.
Titolo: A Multilingual Translator to SQL with Database Schema Pruning to Improve Self-Attention
Estratto: Long sequences of text are challenging in the context of transformers, due to quadratic memory increase in the self-attention mechanism. As this issue directly affects the translation from natural language to SQL queries (as techniques usually take as input a concatenated text with the question and the database schema), we present techniques that allow long text sequences to be handled by transformers with up to 512 input tokens. We propose a training process with database schema pruning (removal of tables and columns names that are useless for the query of interest). In addition, we used a multilingual approach with the mT5-large model fine-tuned with a data-augmented Spider dataset in four languages simultaneously: English, Portuguese, Spanish, and French. Our proposed technique used the Spider dataset and increased the exact set match accuracy results from 0.718 to 0.736 in a validation dataset (Dev). Source code, evaluations, and checkpoints are available at: \underline{https://github.com/C4AI/gap-text2sql}.
Autori: Marcelo Archanjo Jose, Fabio Gagliardi Cozman
Ultimo aggiornamento: 2023-06-25 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2306.14256
Fonte PDF: https://arxiv.org/pdf/2306.14256
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://github.com/C4AI/gap-text2sql
- https://yale-lily.github.io/spider
- https://github.com/awslabs/gap-text2sql
- https://huggingface.co/google/mt5-large
- https://github.com/taoyds/test-suite-sql-eval
- https://doi.org/10.48550/arXiv.2203.06958
- https://doi.org/10.1007/s41870-022-00884-2
- https://doi.org/10.14778/3401960.3401970
- https://doi.org/10.1145/3318464.3383128