saadkhi's picture
Update README.md
d983985 verified
---
language:
- en
license: apache-2.0
library_name: peft
tags:
- text-generation
- sql
- chat
- peft
- lora
- transformers
- phi-3
- instruction-tuning
base_model: unsloth/Phi-3-mini-4k-instruct-bnb-4bit
pipeline_tag: text-generation
inference: false
---
# 🧠 SQL Chat – Phi-3-mini SQL Assistant
**Model ID:** `saadkhi/SQL_Chat_finetuned_model`
**Base model:** `unsloth/Phi-3-mini-4k-instruct-bnb-4bit`
**Model type:** LoRA (merged)
**Task:** Natural Language → SQL query generation + conversational SQL assistance
**Language:** English
**License:** Apache 2.0
This model is a fine-tuned version of **Phi-3-mini-4k-instruct** (4-bit quantized) specialized in understanding natural language questions about databases and generating correct, clean SQL queries.
## ✨ Key Features
- Very good balance between size, speed and SQL generation quality
- Works well with common database dialects (PostgreSQL, MySQL, SQLite, SQL Server, etc.)
- Can explain queries, suggest improvements and handle follow-up questions
- Fast inference even on consumer hardware (especially with 4-bit quantization)
## 🎯 Intended Use & Capabilities
**Best for:**
- Converting natural language questions → SQL queries
- Helping beginners learn SQL through explanations
- Quick prototyping of SQL queries in development
- Building SQL chat interfaces / tools / assistants
- Educational purposes
**Limitations / Not recommended for:**
- Extremely complex analytical/business intelligence queries
- Real-time query optimization advice
- Very database-specific or proprietary SQL extensions
- Production systems without human review (always validate generated SQL!)
## 🛠️ Quick Start (merged LoRA version)
```python
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "saadkhi/SQL_Chat_finetuned_model"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True
)
# Simple prompt style (chat template is recommended)
prompt = """Show all customers who placed more than 5 orders in 2024"""
messages = [{"role": "user", "content": prompt}]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
outputs = model.generate(
inputs,
max_new_tokens=180,
do_sample=False,
temperature=0.0,
pad_token_id=tokenizer.eos_token_id
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))