WideWorldImporters SQL Assistant — LoRA Fine-tune

Domain-specific SQL asistanı. Qwen2.5-Coder-7B-Instruct üzerine LoRA ile eğitilmiştir.

Model Hakkında

WideWorldImporters (Microsoft örnek veritabanı) stored procedure'leri için Türkçe ve İngilizce soru-cevap, NL2SQL çevirisi ve SQL sonuç özetleme yetenekleri kazandırılmıştır.

Yetenekler

  • SP Asistanı: 42 stored procedure hakkında TR/EN soru-cevap
  • NL2SQL: Türkçe soruları T-SQL SELECT sorgusuna çevirme
  • SP Yazımı: CREATE OR ALTER PROCEDURE şablonları
  • Intent Sınıflandırma: SP_QUERY / NL2SQL / EXPLAIN / CHITCHAT
  • Sonuç Özetleme: SQL sorgu sonuçlarını Türkçe özetleme
  • Correlated Subquery: EXISTS / NOT EXISTS kalıpları
  • Temporal Tablo: FOR SYSTEM_TIME AS OF sorguları

Eğitim Detayları

Parametre Değer
Base model Qwen2.5-Coder-7B-Instruct
LoRA rank 32
LoRA alpha 64
Hedef modüller q/k/v/o_proj + gate/up/down_proj (7 modül)
Eğitilebilir parametre %1.05
Dataset 2718 örnek (TR+EN bilingual)
Epoch 15
Batch size (eff.) 8
Final loss ~0.05
Donanım RTX 5090 (WSL2)

Kullanım

from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

base = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen2.5-Coder-7B-Instruct",
    dtype=torch.bfloat16,
    device_map="auto",
)
model = PeftModel.from_pretrained(base, "alifgokce/wwi-sql-assistant-lora")
tok   = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-Coder-7B-Instruct")

messages = [
    {"role": "system", "content": "Sen WideWorldImporters veritabanı için uzman bir SQL asistanısın."},
    {"role": "user",   "content": "Website.SearchForCustomers nasıl çalıştırılır?"},
]
prompt = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tok(prompt, return_tensors="pt").to(model.device)

with torch.inference_mode():
    out = model.generate(**inputs, max_new_tokens=256, do_sample=False)

print(tok.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))

Örnek Çıktılar

SP Sorusu (TR):

Website.SearchForCustomers hangi parametreleri alır?

Website.SearchForCustomers aşağıdaki parametreleri alır:
• @SearchText (nvarchar)
• @MaximumRowsToReturn (int)

EXEC Website.SearchForCustomers @SearchText=<deger>, @MaximumRowsToReturn=<deger>;

NL2SQL (TR):

En çok sipariş veren 10 müşteriyi listele.

SELECT TOP 10
    c.CustomerID,
    c.CustomerName,
    COUNT(o.OrderID) AS OrderCount
FROM Sales.Customers c
JOIN Sales.Orders o ON o.CustomerID = c.CustomerID
GROUP BY c.CustomerID, c.CustomerName
ORDER BY OrderCount DESC;

Dataset

Eğitim dataseti aynı repoda finetune_dataset_v4.jsonl olarak mevcuttur. Kategoriler: explain, exec, param_explain, nl2sql, sp_writing, intent_classification, correlated_subquery, dynamic_schema, realtime_data, result_summary

Lisans

Apache 2.0

Downloads last month
16
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for alifgokce/wwi-sql-assistant-lora

Base model

Qwen/Qwen2.5-7B
Adapter
(606)
this model