From this repository, you can view the latest advancements in NL2SQL. This handbook corresponds to our survey paper: A Survey of NL2SQL with Large Language Models: Where are we, and where are we going?. We also provide tutorial slides to summarize the key points of this survey. Based on the trends in the development of language models, we have created a river diagram of NL2SQL methods to trace the evolution of the NL2SQL field.
If you are a novice, don't worry—we have prepared a practical guide for you, covering a wide range of foundational materials here.
@misc{liu2024surveynl2sqllargelanguage,
title={A Survey of NL2SQL with Large Language Models: Where are we, and where are we going?},
author={Xinyu Liu and Shuyu Shen and Boyan Li and Peixian Ma and Runzhi Jiang and Yuyu Luo and Yuxin Zhang and Ju Fan and Guoliang Li and Nan Tang},
year={2024},
eprint={2408.05109},
archivePrefix={arXiv},
primaryClass={cs.DB},
url={https://arxiv.org/abs/2408.05109},
}
Translating users' natural language queries (NL) into SQL queries can significantly reduce barriers to accessing relational databases and support various commercial applications. The performance of NL2SQL has been greatly improved with the emergence of language models (LMs). In this context, it is crucial to assess our current position, determine the NL2SQL solutions that should be adopted for specific scenarios by practitioners, and identify the research topics that researchers should explore next.
-
Model: NL2SQL translation techniques that tackle not only NL ambiguity and under-specification, but also properly map NL with database schema and instances;
-
Data: From the collection of training data, data synthesis due to training data scarcity, to NL2SQL benchmarks;
-
Evaluation: Evaluating NL2SQL methods from multiple angles using different metrics and granularities;
-
Error Analysis: analyzing NL2SQL errors to find the root cause and guiding NL2SQL models to evolve.
we categorize the challenges of NL2SQL into five levels, each addressing specific hurdles. The first three levels cover challenges that have been or are currently being addressed, reflecting the progressive development of NL2SQL. The fourth level represents the challenges we aim to tackle in the LLMs stage, while the fifth level outlines our vision for NL2SQL system in the next five years.
We describe the evolution of NL2SQL solutions from the perspective of language models, categorizing it into four stages. For each stage of NL2SQL, we analyze the changes in target users and the extent to which challenges are addressed.
We summarize the key modules of NL2SQL solutions utilizing the language model.
- Pre-processing serves as an enhancement to the model’s inputs in the NL2SQL parsing process. You can get more details from this chapter: Pre-Processing
- NL2SQL translation methods constitute the core of the NL2SQL solution, responsible for converting input natural language queries into SQL queries. You can get more details from this chapter: NL2SQL Translation Methods
- Post-processing is a crucial step to refine the generated SQL queries, ensuring they meet user expectations more accurately. You can get more details from this chapter: Post-Processing
- The Dawn of Natural Language to SQL: Are We Fully Ready?
- Text-to-SQL Empowered by Large Language Models: A Benchmark Evaluation.
- Interleaving Pre-Trained Language Models and Large Language
Models for Zero-Shot NL2SQL Generation.
- Generating Succinct Descriptions of Database Schemata for Cost-Efficient Prompting of Large Language Models.
- CodeS: Towards Building Open-source Language Models for Text-to-SQL.
- FinSQL: Model-Agnostic LLMs-based Text-to-SQL Framework for Financial Analysis.
- PURPLE: Making a Large Language Model a Better SQL Writer.
- METASQL: A Generate-then-Rank Framework for Natural Language to SQL Translation.
- The Death of Schema Linking? Text-to-SQL in the Age of Well-Reasoned Language Models.
- DBCopilot: Scaling Natural Language Querying to Massive Databases.
- CHESS: Contextual Harnessing for Efficient SQL Synthesis.
- PET-SQL: A Prompt-Enhanced Two-Round Refinement of Text-to-SQL with Cross-consistency.
- CoE-SQL: In-Context Learning for Multi-Turn Text-to-SQL with Chain-of-Editions.
- Few-shot Text-to-SQL Translation using Structure and Content Prompt Learning.
- CatSQL: Towards Real World Natural Language to SQL Applications.
- DIN-SQL: Decomposed In-Context Learning of Text-to-SQL with Self-Correction.
- ACT-SQL: In-Context Learning for Text-to-SQL with Automatically-Generated Chain-of-Thought.
- Selective Demonstrations for Cross-domain Text-to-SQL.
- RESDSQL: Decoupling Schema Linking and Skeleton Parsing for Text-to-SQL.
- Graphix-T5: Mixing Pre-trained Transformers with Graph-Aware Layers for Text-to-SQL Parsing.
- Improving Generalization in Language Model-based Text-to-SQL Semantic Parsing: Two Simple Semantic Boundary-based Techniques.
- G3R: A Graph-Guided Generate-and-Rerank Framework for Complex and Cross-domain Text-to-SQL Generation.
- Importance of Synthesizing High-quality Data for Text-to-SQL Parsing.
- C3: Zero-shot Text-to-SQL with ChatGPT
- MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL.
- SQLformer: Deep Auto-Regressive Query Graph Generation for Text-to-SQL Translation.
We create a timeline of the benchmark's development and mark relevant milestones. You can get more details from this chapter: 📊 Benchmark
- 🎯Sovle Open NL2SQL Problem
- 🎯Develop Cost-effective NL2SQL Methods
- 🎯Make NL2SQL Solutions Trustworthy
- 🎯NL2SQL with Ambiguous and Unspecified NL Queries
- 🎯Adaptive Training Data Synthesis
You can get more information from our subsection. We introduce representative papers on related concepts:
- We collect NL2SQL benchmark features and download links for you. You can get more details from this chapter: Benchmark
- The analysis code for benchmarks is available in the
src/dataset_analysis
directory. Benchmark analysis reports can be found in thereport/
directory.
-
Litgpt Repository Link
This repository offers access to over 20 high-performance large language models (LLMs) with comprehensive guides for pretraining, fine-tuning, and deploying at scale. It is designed to be beginner-friendly with from-scratch implementations and no complex abstractions.
-
Fine-tuning and In-Context learning for BIRD-SQL benchmark Repository Link
A tutorial for both Fine-tuning and In-Context Learning is provided by the BIRD-SQL benchmark.
We collect NL2SQL evaluation metrics for you. You can get more details from this chapter: Evaluation
-
NLSQL360 Repository Link
NL2SQL360 is a testbed for fine-grained evaluation of NL2SQL solutions. Our testbed integrates existing NL2SQL benchmarks, a repository of NL2SQL models, and various evaluation metrics, which aims to provide an intuitive and user-friendly platform to enable both standard and customized performance evaluations.
-
Test-suite-sql-eval Repository Link
This repo contains a test suite evaluation metric for 11 text-to-SQL tasks. It is now the official metric of Spider, SParC, and CoSQL, and is also now available for Academic, ATIS, Advising, Geography, IMDB, Restaurants, Scholar, and Yelp (building on the amazing work by Catherine and Jonathan).
-
BIRD-SQL-Official Repository Link
It is now the official tool of BIRD-SQL. It is the first tool to propose VES and give an official test suite.
You can get some inspiration from the Roadmap and Decision Flow.