Transformers
Safetensors
English
bart
text2text-generation
natural language
SQL
text2sql
nl2sql
Eval Results (legacy)
Instructions to use SwastikM/bart-large-nl2sql with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use SwastikM/bart-large-nl2sql with Transformers:
# Load model directly from transformers import AutoTokenizer, AutoModelForSeq2SeqLM tokenizer = AutoTokenizer.from_pretrained("SwastikM/bart-large-nl2sql") model = AutoModelForSeq2SeqLM.from_pretrained("SwastikM/bart-large-nl2sql") - Notebooks
- Google Colab
- Kaggle
| widget: | |
| - text: >- | |
| sql_prompt: What is the monthly voice usage for each customer in the Mumbai | |
| region? sql_context: CREATE TABLE customers (customer_id INT, name | |
| VARCHAR(50), voice_usage_minutes FLOAT, region VARCHAR(50)); INSERT INTO | |
| customers (customer_id, name, voice_usage_minutes, region) VALUES (1, 'Aarav | |
| Patel', 500, 'Mumbai'), (2, 'Priya Shah', 700, 'Mumbai'); | |
| example_title: Example1 | |
| - text: >- | |
| sql_prompt: How many wheelchair accessible vehicles are there in the 'Train' | |
| mode of transport? sql_context: CREATE TABLE Vehicles(vehicle_id INT, | |
| vehicle_type VARCHAR(20), mode_of_transport VARCHAR(20), | |
| is_wheelchair_accessible BOOLEAN); INSERT INTO Vehicles(vehicle_id, | |
| vehicle_type, mode_of_transport, is_wheelchair_accessible) VALUES (1, | |
| 'Train_Car', 'Train', TRUE), (2, 'Train_Engine', 'Train', FALSE), (3, 'Bus', | |
| 'Bus', TRUE); | |
| example_title: Example2 | |
| - text: >- | |
| sql_prompt: Which economic diversification efforts in the 'diversification' | |
| table have a higher budget than the average budget for all economic | |
| diversification efforts in the 'budget' table? sql_context: CREATE TABLE | |
| diversification (id INT, effort VARCHAR(50), budget FLOAT); CREATE TABLE | |
| budget (diversification_id INT, diversification_effort VARCHAR(50), amount | |
| FLOAT); | |
| example_title: Example3 | |
| language: | |
| - en | |
| datasets: | |
| - gretelai/synthetic_text_to_sql | |
| metrics: | |
| - rouge | |
| library_name: transformers | |
| base_model: facebook/bart-large-cnn | |
| model-index: | |
| - name: SwastikM/bart-large-nl2sql | |
| results: | |
| - task: | |
| type: text2text-generation | |
| dataset: | |
| name: gretelai/synthetic_text_to_sql | |
| type: gretelai/synthetic_text_to_sql | |
| split: train, test | |
| metrics: | |
| - name: ROUGE-1 | |
| type: rouge | |
| value: 55.69 | |
| verified: true | |
| - name: ROUGE-2 | |
| type: rouge | |
| value: 42.99 | |
| verified: true | |
| - name: ROUGE-L | |
| type: rouge | |
| value: 51.43 | |
| verified: true | |
| - name: ROUGE-LSUM | |
| type: rouge | |
| value: 51.4 | |
| verified: true | |
| github: https://github.com/swastikmaiti/SwastikM-bart-large-nl2sql.git | |
| co2_eq_emissions: | |
| emissions: 160 | |
| source: ML CO2 Impact https://mlco2.github.io/impact/#home) | |
| training_type: fine-tuning | |
| hardware_used: TESLA P100 | |
| tags: | |
| - natural language | |
| - SQL | |
| - text2sql | |
| - nl2sql | |
| # BART-LARGE-CNN fine-tuned on SYNTHETIC_TEXT_TO_SQL | |
| Generate SQL query from Natural Language question with a SQL context. | |
| ## Model Details | |
| ### Model Description | |
| BART from facebook/bart-large-cnn is fintuned on gretelai/synthetic_text_to_sql dataset to generate SQL from NL and SQL context | |
| - **Model type:** BART | |
| - **Language(s) (NLP):** English | |
| - **License:** openrail | |
| - **Finetuned from model [facebook/bart-large-cnn](https://huggingface.co/facebook/bart-large-cnn?text=The+tower+is+324+metres+%281%2C063+ft%29+tall%2C+about+the+same+height+as+an+81-storey+building%2C+and+the+tallest+structure+in+Paris.+Its+base+is+square%2C+measuring+125+metres+%28410+ft%29+on+each+side.+During+its+construction%2C+the+Eiffel+Tower+surpassed+the+Washington+Monument+to+become+the+tallest+man-made+structure+in+the+world%2C+a+title+it+held+for+41+years+until+the+Chrysler+Building+in+New+York+City+was+finished+in+1930.+It+was+the+first+structure+to+reach+a+height+of+300+metres.+Due+to+the+addition+of+a+broadcasting+aerial+at+the+top+of+the+tower+in+1957%2C+it+is+now+taller+than+the+Chrysler+Building+by+5.2+metres+%2817+ft%29.+Excluding+transmitters%2C+the+Eiffel+Tower+is+the+second+tallest+free-standing+structure+in+France+after+the+Millau+Viaduct.)** | |
| - **Dataset:** [gretelai/synthetic_text_to_sql](https://huggingface.co/datasets/gretelai/synthetic_text_to_sql) | |
| ## Intended uses & limitations | |
| Addressing the power of LLM in fintuned downstream task. Implemented as a personal Project. | |
| ### How to use | |
| ```python | |
| query_question_with_context = """sql_prompt: Which economic diversification efforts in | |
| the 'diversification' table have a higher budget than the average budget for all economic diversification efforts in the 'budget' table? | |
| sql_context: CREATE TABLE diversification (id INT, effort VARCHAR(50), budget FLOAT); CREATE TABLE | |
| budget (diversification_id INT, diversification_effort VARCHAR(50), amount FLOAT);""" | |
| ``` | |
| # Use a pipeline as a high-level helper | |
| ```python | |
| from transformers import pipeline | |
| sql_generator = pipeline("text2text-generation", model="SwastikM/bart-large-nl2sql") | |
| sql = sql_generator(query_question_with_context)[0]['generated_text'] | |
| print(sql) | |
| ``` | |
| # Load model directly | |
| ```python | |
| from transformers import AutoTokenizer, AutoModelForSeq2SeqLM | |
| tokenizer = AutoTokenizer.from_pretrained("SwastikM/bart-large-nl2sql") | |
| model = AutoModelForSeq2SeqLM.from_pretrained("SwastikM/bart-large-nl2sql") | |
| inputs = tokenizer(query_question_with_context, return_tensors="pt").input_ids | |
| outputs = model.generate(inputs, max_new_tokens=100, do_sample=False) | |
| sql = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| print(sql) | |
| ``` | |
| ## Training Details | |
| ### Training Data | |
| [gretelai/synthetic_text_to_sql](https://huggingface.co/datasets/gretelai/synthetic_text_to_sql) | |
| ### Training Procedure | |
| HuggingFace Accelerate with Training Loop. | |
| #### Preprocessing | |
| - ***Encoder Input:*** "sql_prompt: " + data['sql_prompt']+" sql_context: "+data['sql_context'] | |
| - ***Decoder Input:*** data['sql'] | |
| #### Training Hyperparameters | |
| - **Optimizer:** AdamW | |
| - **lr:** 2e-5 | |
| - **decay:** linear | |
| - **num_warmup_steps:** 0 | |
| - **batch_size:** 8 | |
| - **num_training_steps:** 12500 | |
| #### Hardware | |
| - **GPU:** P100 | |
| ### Citing Dataset and BaseModel | |
| ``` | |
| @software{gretel-synthetic-text-to-sql-2024, | |
| author = {Meyer, Yev and Emadi, Marjan and Nathawani, Dhruv and Ramaswamy, Lipika and Boyd, Kendrick and Van Segbroeck, Maarten and Grossman, Matthew and Mlocek, Piotr and Newberry, Drew}, | |
| title = {{Synthetic-Text-To-SQL}: A synthetic dataset for training language models to generate SQL queries from natural language prompts}, | |
| month = {April}, | |
| year = {2024}, | |
| url = {https://huggingface.co/datasets/gretelai/synthetic-text-to-sql} | |
| } | |
| ``` | |
| ``` | |
| @article{DBLP:journals/corr/abs-1910-13461, | |
| author = {Mike Lewis and | |
| Yinhan Liu and | |
| Naman Goyal and | |
| Marjan Ghazvininejad and | |
| Abdelrahman Mohamed and | |
| Omer Levy and | |
| Veselin Stoyanov and | |
| Luke Zettlemoyer}, | |
| title = {{BART:} Denoising Sequence-to-Sequence Pre-training for Natural Language | |
| Generation, Translation, and Comprehension}, | |
| journal = {CoRR}, | |
| volume = {abs/1910.13461}, | |
| year = {2019}, | |
| url = {http://arxiv.org/abs/1910.13461}, | |
| eprinttype = {arXiv}, | |
| eprint = {1910.13461}, | |
| timestamp = {Thu, 31 Oct 2019 14:02:26 +0100}, | |
| biburl = {https://dblp.org/rec/journals/corr/abs-1910-13461.bib}, | |
| bibsource = {dblp computer science bibliography, https://dblp.org} | |
| } | |
| ``` | |
| ## Additional Information | |
| - ***Github:*** [Repository](https://github.com/swastikmaiti/SwastikM-bart-large-nl2sql.git) | |
| ## Acknowledgment | |
| Thanks to [@AI at Meta](https://huggingface.co/facebook) for adding the Pre Trained Model. | |
| Thanks to [@Gretel.ai](https://huggingface.co/gretelai) for adding the datset. | |
| ## Model Card Authors | |
| Swastik Maiti |