|
|
--- |
|
|
library_name: peft |
|
|
base_model: Qwen/Qwen2.5-7B-Instruct |
|
|
tags: |
|
|
- sql |
|
|
- natural-language-to-sql |
|
|
- qlora |
|
|
- lora |
|
|
- rag |
|
|
- turkish |
|
|
- text2sql |
|
|
license: apache-2.0 |
|
|
language: |
|
|
- tr |
|
|
pipeline_tag: text-generation |
|
|
--- |
|
|
|
|
|
# SQL Coder – Türkçe NL → SQL LoRA Modeli |
|
|
|
|
|
<img src="https://huggingface.co/BMina/sql_coder/resolve/main/Untitled%20diagram-2025-11-28-111904.png" width="100%" /> |
|
|
|
|
|
|
|
|
## 🧠 Model Hakkında |
|
|
Bu model, Türkçe doğal dilde yazılmış soruları PostgreSQL şemasına uygun SQL komutlarına dönüştürmek için, |
|
|
**Qwen2.5-7B-Instruct** tabanı üzerine **QLoRA** yöntemiyle eğitilmiştir. |
|
|
|
|
|
## 🚀 Özellikler |
|
|
- Türkçe NL → SQL dönüşümü |
|
|
- PostgreSQL uyumlu çıktı |
|
|
- Şema farkındalığı (table + column awareness) |
|
|
- Güvenli sorgu üretimi (JOIN kuralları, yanlış tablo engelleme vb.) |
|
|
- LoRA ile hafif ve hızlı fine-tuning |
|
|
|
|
|
## 🏗️ Eğitim Detayları |
|
|
- Base Model: Qwen/Qwen2.5-7B-Instruct |
|
|
- Yöntem: 4-bit QLoRA |
|
|
- Epoch: 2 |
|
|
- LR: 2e-4 |
|
|
- Batch Size: 2 |
|
|
- Max Seq Length: 2048 |
|
|
- Dataset Boyutu: 2.8k NL→SQL örneği |
|
|
|
|
|
## 📁 Dosya Yapısı |
|
|
- adapter_model.safetensors |
|
|
- adapter_config.json |
|
|
- training_args.bin |
|
|
- tokenizer.model / tokenizer.json |
|
|
- README.md (bu dosya) |
|
|
|
|
|
## 🔧 Kullanım |
|
|
```python |
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
|
from peft import PeftModel |
|
|
|
|
|
base = "Qwen/Qwen2.5-7B-Instruct" |
|
|
lora = "BMina/sql_coder" |
|
|
|
|
|
tokenizer = AutoTokenizer.from_pretrained(base) |
|
|
model = AutoModelForCausalLM.from_pretrained(base) |
|
|
model = PeftModel.from_pretrained(model, lora) |
|
|
|
|
|
prompt = "Tüm müşterilerin ad ve soyadlarını getir." |
|
|
inputs = tokenizer(prompt, return_tensors="pt") |
|
|
outputs = model.generate(**inputs, max_new_tokens=150) |
|
|
print(tokenizer.decode(outputs[0])) |
|
|
``` |
|
|
|
|
|
## 📊 Örnek Sorgular |
|
|
| Soru | SQL | |
|
|
|------|------| |
|
|
| “Tüm kullanıcıları listele” | `SELECT * FROM users;` | |
|
|
| “Her departmandaki kişi sayısı nedir?” | `SELECT dept, COUNT(*) FROM users GROUP BY dept;` | |
|
|
|
|
|
## 📜 Lisans |
|
|
MIT License |
|
|
|
|
|
|