Downloads · 30 days
0
ri7elyass/qwen2.5-coder-text2sql
qwen2.5-coder-text2sql is a machine learning model from ri7elyass. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as apache-2.0.
Fine-tuning di Qwen2.5-Coder-1.5B-Instruct per generare query SQL a partire da domande in linguaggio naturale, dato lo schema di un database.
Downloads · 30 days
0
Access
Public
Updated Aug 24, 2026
Repo size
15.8 MB
Likes
0
Public
Click a slice to open those files.
.json11.4 MB · 72%
From the Hugging Face model README
Fine-tuning di Qwen2.5-Coder-1.5B-Instruct per generare query SQL a partire da domande in linguaggio naturale, dato lo schema di un database.
Questo modello è un adapter LoRA che estende Qwen2.5-Coder-1.5B-Instruct con la capacità di tradurre domande in linguaggio naturale in query SQL eseguibili, dato lo schema del database come contesto nel prompt.
Generazione di query SQL a partire da una domanda in linguaggio naturale e uno schema di database fornito nel prompt. Pensato per prototipi di interfacce "chiedi al database in linguaggio naturale" e per scopi di portfolio/dimostrativi.
Non pensato per essere usato in produzione senza validazione delle query generate (es. controllo sintattico, sandboxing dell'esecuzione). Non gestisce in modo affidabile query SQL molto complesse (subquery annidate multiple, window functions avanzate) o schemi molto diversi da quelli visti nel dataset Spider.
Il modello è stato fine-tuned solo su Spider, un dataset generalista in inglese — su schemi di dominio molto specifico o in altre lingue le prestazioni possono degradare. Essendo stato allenato per 1 sola epoca, c'è margine di miglioramento. Come ogni sistema Text-to-SQL, le query generate vanno validate prima dell'esecuzione su dati reali (rischio di query errate o, in contesti non controllati, potenzialmente dannose).
Validare sempre la query generata (sintassi + logica) prima di eseguirla su un database reale, specialmente in contesti con permessi di scrittura.
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import torch
base_model = "Qwen/Qwen2.5-Coder-1.5B-Instruct"
adapter = "ri7elyass/qwen2.5-coder-text2sql"
tokenizer = AutoTokenizer.from_pretrained(base_model)
model = AutoModelForCausalLM.from_pretrained(base_model, torch_dtype=torch.bfloat16, device_map="auto")
model = PeftModel.from_pretrained(model, adapter)
prompt = """Schema: singer : Singer_ID (number), Name (text), Country (text)
Domanda: How many singers are there?
SQL:"""
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=100, do_sample=False, pad_token_id=tokenizer.eos_token_id)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
Spider — dataset Text-to-SQL con 7.000 esempi domanda→query su 166 database diversi. Schema dei database ottenuto da richardr1126/spider-schema.
Ogni esempio è stato costruito concatenando schema del DB (formato testuale) + domanda come prompt, con la query SQL come completion target. Loss calcolata solo sui token della completion (loss masking sul prompt).
Tokenizzazione con il tokenizer nativo di Qwen2.5-Coder, troncamento a 512 token, padding dinamico per batch.
Split di validation di Spider (1.034 esempi, database mai visti durante il training).
Loss (cross-entropy) e ispezione qualitativa delle query generate (correttezza semantica, non solo match testuale esatto).
SELECT count(*), country FROM singer GROUP BY country (semanticamente equivalente al ground truth, con solo l'ordine delle colonne diverso)Architettura Transformer decoder-only (Qwen2.5-Coder-1.5B), con adapter LoRA applicati alle proiezioni Query e Value dell'attention, in ogni layer. Obiettivo: causal language modeling, con loss calcolata solo sui token della query SQL target.
1x NVIDIA Tesla T4 (16GB VRAM)
Elyass Rochdi
huggingface.co/ri7elyass