Llama3.2-SQL-1B / README.md
Rustamshry's picture
Update README.md
0318d07 verified
---
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