| --- |
| license: cc-by-nc-sa-4.0 |
| language: |
| - en |
| library_name: transformers |
| tags: |
| - text-to-sql |
| - text2sql |
| - nlp2sql |
| - nlp-to-sql |
| - SQL |
| --- |
| # Model Card for text2sql |
|
|
| <!-- Provide a quick summary of what the model is/does. --> |
|
|
| LLM instruction finetuned for Text-to-SQL task. |
|
|
|
|
| ## How to Get Started with the Model |
|
|
| Use the code below to get started with the model. |
|
|
| ``` |
| import torch |
| from transformers import AutoModelForCausalLM, AutoTokenizer |
| |
| model = AutoModelForCausalLM.from_pretrained( |
| "dataeaze/dataeaze-text2sql-codellama_7b_instruct-clinton_text_to_sql_v1", |
| torch_dtype=torch.bfloat16, |
| device_map='auto' |
| ) |
| |
| tokenizer = AutoTokenizer.from_pretrained("dataeaze/dataeaze-text2sql-codellama_7b_instruct-clinton_text_to_sql_v1") |
| # print("model device :", model.device) |
| tokenizer.pad_token = tokenizer.eos_token |
| model.eval() |
| |
| prompt = """ Below are sql tables schemas paired with instruction that describes a task. |
| Using valid SQLite, write a response that appropriately completes the request for the provided tables. |
| ### Instruction: How many transactions were made by a customer in a specific month? |
| ### Database: RewardsProgramDB61 |
| ### Input: |
| CREATE SCHEMA RewardsProgram; |
| |
| CREATE TABLE Customer ( |
| CustomerID INT NOT NULL AUTO_INCREMENT, |
| FirstName VARCHAR(50) NOT NULL, |
| LastName VARCHAR(50) NOT NULL, |
| Email VARCHAR(100) UNIQUE NOT NULL, |
| Phone VARCHAR(20) UNIQUE, |
| DateOfBirth DATE, |
| PRIMARY KEY (CustomerID) |
| ); |
| |
| CREATE TABLE Membership ( |
| MembershipID INT NOT NULL AUTO_INCREMENT, |
| MembershipType VARCHAR(50) NOT NULL, |
| DiscountPercentage DECIMAL(5, 2) NOT NULL, |
| ValidFrom DATETIME, |
| ValidTo DATETIME, |
| CustomerID INT NOT NULL, |
| PRIMARY KEY (MembershipID), |
| FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID) |
| ); |
| |
| CREATE TABLE Transaction ( |
| TransactionID INT NOT NULL AUTO_INCREMENT, |
| TransactionDate TIMESTAMP, |
| TotalAmount DECIMAL(10, 2) NOT NULL, |
| CustomerID INT NOT NULL, |
| PRIMARY KEY (TransactionID), |
| FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID) |
| ); |
| |
| CREATE TABLE TransactionDetail ( |
| TransactionDetailID INT NOT NULL AUTO_INCREMENT, |
| TransactionID INT NOT NULL, |
| ProductID INT NOT NULL, |
| Quantity INT NOT NULL, |
| UnitPrice DECIMAL(10, 2) NOT NULL, |
| PRIMARY KEY (TransactionDetailID), |
| FOREIGN KEY (TransactionID) REFERENCES Transaction(TransactionID), |
| FOREIGN KEY (ProductID) REFERENCES Product(ProductID) |
| ); |
| |
| CREATE TABLE Product ( |
| ProductID INT NOT NULL AUTO_INCREMENT, |
| ProductName VARCHAR(100) NOT NULL, |
| UnitPrice DECIMAL(10, 2) NOT NULL, |
| AvailableQuantity INT NOT NULL, |
| CreatedDate DATETIME, |
| PRIMARY KEY (ProductID) |
| ); |
| |
| ALTER TABLE Membership ADD CONSTRAINT FK_Membership_Customer FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID); |
| |
| ALTER TABLE TransactionDetail ADD CONSTRAINT FK_TransactionDetail_Transaction FOREIGN KEY (TransactionID) REFERENCES Transaction(TransactionID); |
| |
| ALTER TABLE TransactionDetail ADD CONSTRAINT FK_TransactionDetail_Product FOREIGN KEY (ProductID) REFERENCES Product(ProductID);" |
| """ |
| |
| input_ids = tokenizer(prompt, padding=True, return_tensors='pt') |
| outputs = model.generate( |
| input_ids=input_ids['input_ids'].to(model.device), |
| attention_mask=input_ids['attention_mask'].to(model.device), |
| max_new_tokens=3072, |
| ) |
| |
| generated_query = tokenizer.decode(outputs[0], skip_special_tokens=True) |
| print(generated_query) |
| |
| |
| ``` |
|
|
|
|
|
|
| ### Results |
|
|
| ``` |
| model-index: |
| - name: dataeaze/dataeaze-text2sql-codellama_7b_instruct-dzsql |
| results: |
| - task: |
| type: text-to-sql |
| dataset: |
| name: SPIDER 1.0 |
| type: text-to-sql |
| metrics: |
| - name: Execution with Values |
| type: Execution with Values |
| value: 64.3 |
| - name: Exact Set Match without Values |
| type: Exact Set Match without Values |
| value: 29.6 |
| source: |
| name: Spider 1.0 - Leaderboard |
| url: https://yale-lily.github.io/spider |
| ``` |
|
|