|
--- |
|
base_model: unsloth/Llama-3.2-1B-Instruct |
|
library_name: peft |
|
license: llama3.2 |
|
datasets: |
|
- gretelai/synthetic_text_to_sql |
|
language: |
|
- en |
|
pipeline_tag: text2text-generation |
|
tags: |
|
- SQL |
|
- Text-to-SQL |
|
- SQL-generation |
|
--- |
|
|
|
# Model Card for Llama3.2-SQL-1B |
|
|
|
|
|
## Model Details |
|
|
|
This model is a fine-tuned version of Llama3.2-1B-Instruct, optimized for text-to-SQL generation tasks. |
|
It was trained on the **gretelai/synthetic_text_to_sql** dataset, which contains synthetic natural language questions and their corresponding SQL queries across a variety of domains. |
|
|
|
The model learns to: |
|
- Understand natural language instructions. |
|
- Generate syntactically correct and context-aware SQL queries. |
|
- Interpret structured schema information when included in the prompt. |
|
|
|
### Model Description |
|
|
|
|
|
- **Developed by:** Rustam Shiriyev |
|
- **Model type:** Instruction-tuned model on Text2SQL data |
|
- **Language(s) (NLP):** English |
|
- **License:** Llama3.2 |
|
- **Finetuned from model:** unsloth/Llama3.2-1B-Instruct |
|
|
|
|
|
## Uses |
|
|
|
|
|
### Direct Use |
|
|
|
- Natural Language to SQL translation |
|
- Educational or research applications |
|
- Lightweight inference for SQL query generation on small-scale tasks or apps |
|
|
|
## Bias, Risks, and Limitations |
|
|
|
- May not handle deeply nested or complex joins in SQL. |
|
|
|
## How to Get Started with the Model |
|
|
|
```python |
|
from huggingface_hub import login |
|
from transformers import AutoTokenizer, AutoModelForCausalLM |
|
from peft import PeftModel |
|
|
|
login(token="") |
|
|
|
tokenizer = AutoTokenizer.from_pretrained("unsloth/Llama3.2-1B-Instruct",) |
|
base_model = AutoModelForCausalLM.from_pretrained( |
|
"unsloth/Llama3.2-1B-Instruct", |
|
device_map={"": 0}, token="" |
|
) |
|
|
|
model = PeftModel.from_pretrained(base_model,"Rustamshry/Llama3.2-SQL-1B") |
|
|
|
|
|
question = "What are the vehicle safety testing organizations that operate in the UK and France?" |
|
|
|
context = |
|
""" |
|
CREATE TABLE SafetyOrgs (name VARCHAR(20), country VARCHAR(10)); |
|
INSERT INTO SafetyOrgs (name, country) VALUES ('Euro NCAP', 'UK'); |
|
INSERT INTO SafetyOrgs (name, country) VALUES ('ADAC', 'Germany'); |
|
INSERT INTO SafetyOrgs (name, country) VALUES ('UTAC', 'France'); |
|
""" |
|
|
|
instruction = ( |
|
"You are a skilled SQL assistant." |
|
"Using the given database context, generate the correct SQL query to answer the question.\n\n" |
|
f"Context: {context.strip()}" |
|
) |
|
|
|
prompt = ( |
|
f"### Instruction:\n{instruction}\n\n" |
|
f"### Question:\n{question}\n\n" |
|
f"### Response:\n" |
|
) |
|
|
|
input_ids = tokenizer(prompt, return_tensors="pt").to(model.device) |
|
|
|
outputs = model.generate( |
|
**input_ids, |
|
max_new_tokens=2048 |
|
) |
|
|
|
print(tokenizer.decode(outputs[0]),skip_special_tokens=True) |
|
``` |
|
|
|
## Training Details |
|
|
|
### Training Data |
|
|
|
- **Dataset**: gretelai/synthetic_text_to_sql which consists of 100,000 synthetic examples of natural language questions paired with corresponding SQL queries and explanations. |
|
|
|
### Training Procedure |
|
|
|
The model was fine-tuned using the Unsloth and LoRA. |
|
|
|
- LoRA rank: 8 |
|
- Aplha: 16 |
|
|
|
#### Training Hyperparameters |
|
|
|
- batch size:8, |
|
- gradient accumulation steps:4, |
|
- optimizer:adamw_torch, |
|
- learning rate:2e-5, |
|
- warmup_steps:100, |
|
- fp16:True, |
|
- epochs:2, |
|
- weight_decay:0.01, |
|
- lr_scheduler_type:linear |
|
|
|
#### Speeds, Sizes, Times [optional] |
|
|
|
- Training time: 8 hour |
|
- Speed: 0.22 steps/sec |
|
|
|
### Results |
|
|
|
- Final Loss: 1.42 >> 0.48 |
|
|
|
### Framework versions |
|
|
|
- PEFT 0.14.0 |