
## Paper

## [NatSight: A framework for building domain agnostic Natural Language Interface to Databases for next-gen Augmented Analytics](https://dcal.iimb.ac.in/baiconf2022/full_papers/2346.pdf)
Authors: *Rohit Sroch*, *Dhiraj Patnaik*, *Jayachandran Ramachandran*

## Abstract

In modern organizations, a large volume of customer, transactional, and operational data is stored in relational database management systems (RDBMS). It provides scalability and agility for various business use cases. However, the interaction between these databases and business users is limited as users often lack the knowledge of query languages such as SQL and they need to rely on technical experts to interact with the database for curating insights \& analytics. Recent advances in augmented analytics platforms have enabled business users to engage with data in natural language and consume insights in the form of data tables and charts. There are still limitations as the experience is still suboptimal.

The development of natural language interfaces to databases has long been a challenge as previous approaches rely on a considerable amount of human-labeled data for domain adaptation. Moreover, most interfaces provide a constrained environment and do not allow the users to freely and naturally interact with data.

In this work, we propose our framework for building domain-agnostic natural language (NL) interfaces to relational databases (NLIDBs) in few-shot and zero-shot scenarios. Also, recent advancements in the area of Transfer learning allowed us to leverage Transformer-based pre-trained language models (PLMs), resulting in various real-world applications in functional areas like CRM, Supply Chain, Ecommerce, Health Care, etc. for getting real-time insights. More specifically, our framework works in the following ways: First, it provides graph focused auto-suggestions to complete the natural language queries based on the graph representation of database schema, and Second, it uses an adaptive sequence-to-sequence translator model that translates natural language queries to corresponding SQL queries. Furthermore, a feedback loop is used to improve the system based on active learning.

Experiment results on benchmark datasets show that our approach achieves a state-of-the-art performance and can be effective in the few-shot and zero-shot scenarios for domain-agnostic applications.

*Sroch, R. & Patnaik, D. & Ramachandran, J. (2022). [NatSight: A framework for building domain agnostic Natural Language Interface to Databases for next-gen Augmented Analytics](https://dcal.iimb.ac.in/baiconf2022/full_papers/2346.pdf). 
        9th International Conference on Business Analytics and Intelligence, IIM Banglore (BAI Conf’22).*

## NatSight-t5-small-wikisql

 For weights initialization, we used [t5-small](https://huggingface.co/t5-small) and fine-tune as sequence-to-sequence task.

## Using Transformers🤗

```python
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

tokenizer = AutoTokenizer.from_pretrained("course5i/NatSight-t5-small-wikisql")
model = AutoModelForSeq2SeqLM.from_pretrained("course5i/NatSight-t5-small-wikisql")

# define input
prefix = "translate English to Sql: "
raw_nat_query = "What Branding does WRKO calls use?"
query_mention_schema = "c2 | Branding <eom> c0 | calls <eom> v0 | WRKO"
table_header_schema = "c0 | Calls <eom> c1 | Frequency <eom> c2 | Branding <eom> c3 | Format <eom> c4 | Market/Rank <eom> c5 | Timeslot <eom> c6 | Group_owner"

encoder_input = prefix + raw_nat_query + " </s> " + query_mention_schema + " </s> " + table_header_schema
input_ids = tokenizer.encode(encoder_input, return_tensors="pt", add_special_tokens=True)

generated_ids = model.generate(input_ids=input_ids, num_beams=5, max_length=128)
preds = [tokenizer.decode(g, skip_special_tokens=True, clean_up_tokenization_spaces=True) for g in generated_ids]
output = preds[0]

print("Output generic SQL query: {}".format(output))

# output
"SELECT c2 FROM TABLE WHERE c0 = v0"

```

## Intended uses & limitations

More information needed

### Training hyperparameters

Please take a look at the `training_args.bin` file

```python
$ import torch
$ hyperparameters = torch.load(os.path.join('training_args.bin'))

```
        

### Evaluation results

|| NatSight-AdpSeq2Seq (T5-small) | | |
|:----|:----|:----|:----|
|| Dev || Test |
|Acc-(Logical form) %|Acc-(Execution) %|Acc-(Logical form) %|Acc-(Execution) %|
|82.31|85.7|83.5|85.38|

### Framework versions

- Transformers >=4.8.0
- Pytorch >=1.6.0
- TensorFlow >=2.5.0
- Datasets >=1.10.2
- Tokenizers >=0.11.6

If you use these models, please cite the following paper:


        ```
        @article{article, 
            author={Sroch, R. & Patnaik, D. & Ramachandran, J}, 
            title={NatSight: A framework for building domain agnostic Natural Language Interface to Databases for next-gen Augmented Analytics}, 
            journal={9th International Conference on Business Analytics and Intelligence, IIM Banglore (BAI Conf’22)},
            day={17},
            year={2022}, 
            month={Dec},
            url = {https://dcal.iimb.ac.in/baiconf2022/full_papers/2346.pdf}                                                  
        } 
        ```
{"language": ["en"], "license": "apache-2.0", "tags": ["NatSight-AdpSeq2Seq", "Text2SQL"], "datasets": ["wikisql"], "widget": [{"text": "translate English to Sql: What Branding does WRKO calls use? </s> c2 | Branding <eom> c0 | calls <eom> v0 | WRKO </s> c0 | Calls <eom> c1 | Frequency <eom> c2 | Branding <eom> c3 | Format <eom> c4 | Market/Rank <eom> c5 | Timeslot <eom> c6 | Group_owner"}]}
transformers pytorch tf safetensors t5 text2text-generation NatSight-AdpSeq2Seq Text2SQL en dataset:wikisql license:apache-2.0 autotrain_compatible endpoints_compatible text-generation-inference region:us
TAGS
#transformers #pytorch #tf #safetensors #t5 #text2text-generation #NatSight-AdpSeq2Seq #Text2SQL #en #dataset-wikisql #license-apache-2.0 #autotrain_compatible #endpoints_compatible #text-generation-inference #region-us 

Paper
-----


NatSight: A framework for building domain agnostic Natural Language Interface to Databases for next-gen Augmented Analytics
---------------------------------------------------------------------------------------------------------------------------


Authors: *Rohit Sroch*, *Dhiraj Patnaik*, *Jayachandran Ramachandran*


Abstract
--------


In modern organizations, a large volume of customer, transactional, and operational data is stored in relational database management systems (RDBMS). It provides scalability and agility for various business use cases. However, the interaction between these databases and business users is limited as users often lack the knowledge of query languages such as SQL and they need to rely on technical experts to interact with the database for curating insights & analytics. Recent advances in augmented analytics platforms have enabled business users to engage with data in natural language and consume insights in the form of data tables and charts. There are still limitations as the experience is still suboptimal.


The development of natural language interfaces to databases has long been a challenge as previous approaches rely on a considerable amount of human-labeled data for domain adaptation. Moreover, most interfaces provide a constrained environment and do not allow the users to freely and naturally interact with data.


In this work, we propose our framework for building domain-agnostic natural language (NL) interfaces to relational databases (NLIDBs) in few-shot and zero-shot scenarios. Also, recent advancements in the area of Transfer learning allowed us to leverage Transformer-based pre-trained language models (PLMs), resulting in various real-world applications in functional areas like CRM, Supply Chain, Ecommerce, Health Care, etc. for getting real-time insights. More specifically, our framework works in the following ways: First, it provides graph focused auto-suggestions to complete the natural language queries based on the graph representation of database schema, and Second, it uses an adaptive sequence-to-sequence translator model that translates natural language queries to corresponding SQL queries. Furthermore, a feedback loop is used to improve the system based on active learning.


Experiment results on benchmark datasets show that our approach achieves a state-of-the-art performance and can be effective in the few-shot and zero-shot scenarios for domain-agnostic applications.


*Sroch, R. & Patnaik, D. & Ramachandran, J. (2022). NatSight: A framework for building domain agnostic Natural Language Interface to Databases for next-gen Augmented Analytics.
9th International Conference on Business Analytics and Intelligence, IIM Banglore (BAI Conf’22).*


NatSight-t5-small-wikisql
-------------------------


For weights initialization, we used t5-small and fine-tune as sequence-to-sequence task.


Using Transformers
------------------


Intended uses & limitations
---------------------------


More information needed


### Training hyperparameters


Please take a look at the 'training\_args.bin' file


### Evaluation results



### Framework versions


* Transformers >=4.8.0
* Pytorch >=1.6.0
* TensorFlow >=2.5.0
* Datasets >=1.10.2
* Tokenizers >=0.11.6


If you use these models, please cite the following paper:



### Training hyperparameters


Please take a look at the 'training\_args.bin' file ### Evaluation results ### Framework versions


* Transformers >=4.8.0
* Pytorch >=1.6.0
* TensorFlow >=2.5.0
* Datasets >=1.10.2
* Tokenizers >=0.11.6


If you use these models, please cite the following paper:
TAGS
#transformers #pytorch #tf #safetensors #t5 #text2text-generation #NatSight-AdpSeq2Seq #Text2SQL #en #dataset-wikisql #license-apache-2.0 #autotrain_compatible #endpoints_compatible #text-generation-inference #region-us 
 ### Training hyperparameters


Please take a look at the 'training\_args.bin' file ### Evaluation results ### Framework versions


* Transformers >=4.8.0
* Pytorch >=1.6.0
* TensorFlow >=2.5.0
* Datasets >=1.10.2
* Tokenizers >=0.11.6


If you use these models, please cite the following paper:
TAGS
#transformers #pytorch #tf #safetensors #t5 #text2text-generation #NatSight-AdpSeq2Seq #Text2SQL #en #dataset-wikisql #license-apache-2.0 #autotrain_compatible #endpoints_compatible #text-generation-inference #region-us 
### Training hyperparameters


Please take a look at the 'training\_args.bin' file### Evaluation results### Framework versions


* Transformers >=4.8.0
* Pytorch >=1.6.0
* TensorFlow >=2.5.0
* Datasets >=1.10.2
* Tokenizers >=0.11.6


If you use these models, please cite the following paper: