rvk7895 commited on
Commit
f426a23
1 Parent(s): 9987956

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +112 -0
README.md ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ datasets:
4
+ - PipableAI/pip-txt-to-sql-spider-bird-dataset
5
+ language:
6
+ - en
7
+ metrics:
8
+ - accuracy
9
+ tags:
10
+ - sql
11
+ - code
12
+ - text2sql
13
+ - instruction_tuned
14
+ - basemodel
15
+ - jax
16
+ - pytorch
17
+ - tensorflow
18
+ - text-generation-inference
19
+ library_name: transformers
20
+ pipeline_tag: text-generation
21
+ ---
22
+ # pipSQL-1.3b
23
+ [pipableAi](https://www.linkedin.com/company/pipable.ai/about/)
24
+
25
+ ## What have we built?
26
+ A 1.3 bn SQL model that outperforms most SQL expert models and chatgpt on popular benchmarks.
27
+ This is a distilled model built on the deepseek base model.
28
+
29
+ ## How we built it?
30
+
31
+ We used softmax cross entropy and a modified form of policy grad along with Q loss, optimized in an EM set up.
32
+
33
+ ## Benchmarking :
34
+ For benchmarking purposes we are using Semantic Evaluation for Text-to-SQL with
35
+ Distilled Test Suites, an officially accepted evaluation framework for Spider, SParC, and CoSQL which was proposed by a research team of Yale and Berkeley.
36
+ The benchmark contains 2200 test data points
37
+ Here is the link to run the evaluation:
38
+
39
+
40
+ [Test Suite SQL Eval](https://github.com/taoyds/test-suite-sql-eval)
41
+
42
+ |model|easy|medium|hard|extra|
43
+ |-----|----|------|----|-----|
44
+ |sqlcoder-7b-2|72.0|58.0|40.6|37.3|
45
+ |pip-sql-1b-Qstar|74.0|54.0|36.5|30.0|
46
+ |pipSQL-7b|63.0|40.0|30.2|25.0|
47
+ |sqlcoder-7b|60.6|48.2|28.3|20.4|
48
+ |gpt-3.5|58.8|44.7|31.0|28.4|
49
+
50
+ We have also benchmarked it on defog eval.
51
+ It contains 200 test data points handpicked by defog team.
52
+ Here is the link to it:
53
+
54
+
55
+ [Defog SQL-Eval](https://github.com/defog-ai/sql-eval)
56
+ These are the results -
57
+
58
+ ![image/png](https://cdn-uploads.huggingface.co/production/uploads/64d32c6b921678fdc9de3302/ZU_YeKLEtHg7ImXI5LrXo.png)
59
+
60
+ ## License
61
+ The model is open source under apache 2.0. License
62
+
63
+ ## Usage
64
+
65
+ ### Installation
66
+
67
+ ```bash
68
+ pip install transformers
69
+ ```
70
+
71
+ ### Prompt
72
+ ```python
73
+ prompt = f"""<schema>{schema}</schema>
74
+ <question>{question}</question>
75
+ <sql>"""
76
+ ```
77
+
78
+ ### PyTorch
79
+ ```python
80
+ from transformers import AutoModelForCasualLM, AutoTokenizer
81
+ device = "cuda"
82
+ model = AutoModelForCausalLM.from_pretrained("PipableAI/pipSQL-1.3b")
83
+ tokenizer = AutoTokenizer.from_pretrained("PipableAI/pipSQL-1.3b")
84
+
85
+ inputs = tokenizer(text, return_tensors="pt")
86
+ outputs = model.generate(**inputs, max_new_tokens=200)
87
+ print(tokenizer.decode(outputs[0], skip_special_tokens=True).split('<sql>')[1].split('</sql>')[0])
88
+ ```
89
+
90
+ ### Flax
91
+ ```python
92
+ from transfomers import FlaxAutoModelForCausalLM, AutoTokenizer
93
+ device = "cuda"
94
+ model = FlaxAutoModelForCausalLM.from_pretrained("PipableAI/pipSQL-1.3b")
95
+ tokenizer = AutoTokenizer.from_pretrained("PipableAI/pipSQL-1.3b")
96
+
97
+ inputs = tokenizer(text, return_tensors="pt")
98
+ outputs = model.generate(**inputs, max_new_tokens=200)
99
+ print(tokenizer.decode(outputs[0], skip_special_tokens=True).split('<sql>')[1].split('</sql>')[0])
100
+ ```
101
+
102
+ ### TensorFlow
103
+ ```python
104
+ from transfomers import TFAutoModelForCausalLM, AutoTokenizer
105
+ device = "cuda"
106
+ model = TFAutoModelForCausalLM.from_pretrained("PipableAI/pipSQL-1.3b")
107
+ tokenizer = AutoTokenizer.from_pretrained("PipableAI/pipSQL-1.3b")
108
+
109
+ inputs = tokenizer(text, return_tensors="pt")
110
+ outputs = model.generate(**inputs, max_new_tokens=200)
111
+ print(tokenizer.decode(outputs[0], skip_special_tokens=True).split('<sql>')[1].split('</sql>')[0])
112
+ ```