--- 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))