|
|
|
|
|
--- |
|
|
language: en |
|
|
license: apache-2.0 |
|
|
tags: |
|
|
- mistral |
|
|
- sql |
|
|
- lora |
|
|
- instruction-tuning |
|
|
datasets: |
|
|
- custom_sql_dataset |
|
|
--- |
|
|
|
|
|
# SQL Query Generation Model |
|
|
|
|
|
This model is a fine-tuned version of mistralai/Mistral-7B-Instruct-v0.3 specialized for SQL query generation. |
|
|
|
|
|
## Model Details |
|
|
|
|
|
- **Base Model**: mistralai/Mistral-7B-Instruct-v0.3 |
|
|
- **Training Method**: LoRA (Rank=16, Alpha=32) |
|
|
- **Task**: SQL query generation from natural language instructions |
|
|
- **Training Framework**: Unsloth |
|
|
|
|
|
## Usage |
|
|
|
|
|
```python |
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
|
from peft import PeftModel |
|
|
|
|
|
# Load the model |
|
|
tokenizer = AutoTokenizer.from_pretrained("exaler/aaa-2-sql-2") |
|
|
model = AutoModelForCausalLM.from_pretrained("exaler/aaa-2-sql-2") |
|
|
|
|
|
# Format your prompt |
|
|
instruction = """You are an expert SQL query generator. Database schema: |
|
|
Table: [dbo].[Users] |
|
|
Columns: [ID], [Name], [Email], [CreatedDate] |
|
|
Table: [dbo].[Orders] |
|
|
Columns: [OrderID], [UserID], [Amount], [Status], [OrderDate] |
|
|
""" |
|
|
|
|
|
input_text = "Find all users who placed orders with amount greater than 1000" |
|
|
|
|
|
prompt = f"<s>[INST] {instruction}\n\n{input_text} [/INST]" |
|
|
|
|
|
# Generate SQL |
|
|
inputs = tokenizer(prompt, return_tensors="pt").to(model.device) |
|
|
outputs = model.generate(inputs=inputs.input_ids, max_new_tokens=512, temperature=0.0) |
|
|
response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True) |
|
|
print(response) |
|
|
``` |
|
|
|
|
|
## Training Dataset |
|
|
|
|
|
The model was trained on a custom dataset of SQL queries with their corresponding natural language descriptions. |
|
|
|
|
|
## Limitations |
|
|
|
|
|
- The model is optimized for the specific SQL database schema it was trained on |
|
|
- Performance may vary for database schemas significantly different from the training data |
|
|
|