Downloads · 30 days
38
1% of all-time downloads
XGenerationLab/XiYanSQL-QwenCoder-14B-2502
XiYanSQL-QwenCoder-14B-2502 is a text generation model from XGenerationLab. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
🤖Github | 🤗ModelScope | 📖XiYan-SQL | 🌕析言GBI | 📄Paper
Downloads · 30 days
38
1% of all-time downloads
All-time downloads
5K
Public
Parameters
14.8B
14.9 GB on disk
Likes
3
Public
Click a slice to open those files.
.safetensors29.5 GB · 100%
From the Hugging Face model README
🤖Github | 🤗ModelScope | 📖XiYan-SQL | 🌕析言GBI | 📄Paper
We are excited to open source the XiYanSQL-QwenCoder series model, dedicated to advancing the development of LLMs in the text-to-SQL domain. As of now, XiYanSQL-QwenCoder covers four mainstream model sizes: 3B, 7B, 14B, and 32B parameters, to meet the needs of different developers.
| Model | Download Latest |
|---|---|
| XiYanSQL-QwenCoder-3B | 💻HuggingFace 🤗Modelscope |
| XiYanSQL-QwenCoder-7B | 💻HuggingFace 🤗Modelscope |
| XiYanSQL-QwenCoder-14B | 💻HuggingFace 🤗Modelscope |
| XiYanSQL-QwenCoder-32B | 💻HuggingFace 🤗Modelscope |
The XiYanSQL-QwenCoder models, as multi-dialect SQL base models, demonstrating robust SQL generation capabilities. The following presents the evaluation results at the time of release. We conducted a comprehensive evaluation of the model's performance under two schema formats, M-Schema, and original DDL, using the BIRD and Spider benchmarks in the Text-to-SQL domain.
| Model name | BIRD Dev@M-Schema | BIRD Dev@DDL | Spider Test@M-Schema | Spider Test@DDL |
|---|---|---|---|---|
| Codellama-34b | 33.05% | - | 67.74% | - |
| Deepseek-coder-33b | 47.52% | 44.72% | 72.39% | - |
| TableGPT2 | 46.35% | 47.07% | 74.76% | 77.28% |
| Codestral 22b | 50.52% | 47.00% | 78.45% | 75.47% |
| GLM-4-plus | 54.37% | - | 79.40% | - |
| Claude35_sonnet-1022 | 53.32% | 50.46% | 76.27% | 73.04% |
| Deepseek(v2.5-1210) | 55.74% | 55.61% | 82.08% | 80.57% |
| Gemini-1.5-pro | 61.34% | 57.89% | 85.11% | 84.00% |
| GPT-4o-0806 | 58.47% | 54.82% | 82.89% | 78.45% |
| XiYanSQL-QwenCoder-3B | 54.11% | 53.19% | 82.69% | 78.85% |
| XiYanSQL-QwenCoder-7B | 59.78% | 56.58% | 84.86% | 80.31% |
| XiYanSQL-QwenCoder-14B | 63.10% | 60.37% | 85.76% | 82.79% |
| XiYanSQL-QwenCoder-32B | 67.01% | 63.04% | 88.39% | 85.46% |
transformers >= 4.37.0
Here is a simple code snippet for quickly using XiYanSQL-QwenCoder model. We provide a Chinese version of the prompt, and you just need to replace the placeholders for "question," "db_schema," and "evidence" to get started. We recommend using our M-Schema format for the schema; other formats such as DDL are also acceptable, but they may affect performance. Currently, we mainly support mainstream dialects like SQLite, PostgreSQL, and MySQL.
nl2sqlite_template_cn = """你是一名{dialect}专家,现在需要阅读并理解下面的【数据库schema】描述,以及可能用到的【参考信息】,并运用{dialect}知识生成sql语句回答【用户问题】。
【用户问题】
{question}
【数据库schema】
{db_schema}
【参考信息】
{evidence}
【用户问题】
{question}
```sql"""
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "XGenerationLab/XiYanSQL-QwenCoder-14B-2502"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.bfloat16,
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
## dialects -> ['SQLite', 'PostgreSQL', 'MySQL']
prompt = nl2sqlite_template_cn.format(dialect="", db_schema="", question="", evidence="")
message = [{'role': 'user', 'content': prompt}]
text = tokenizer.apply_chat_template(
message,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id,
max_new_tokens=1024,
temperature=0.1,
top_p=0.8,
do_sample=True,
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
model_path = "XGenerationLab/XiYanSQL-QwenCoder-14B-2502"
llm = LLM(model=model_path, tensor_parallel_size=8)
tokenizer = AutoTokenizer.from_pretrained(model_path)
sampling_params = SamplingParams(
n=1,
temperature=0.1,
max_tokens=1024
)
## dialects -> ['SQLite', 'PostgreSQL', 'MySQL']
prompt = nl2sqlite_template_cn.format(dialect="", db_schema="", question="", evidence="")
message = [{'role': 'user', 'content': prompt}]
text = tokenizer.apply_chat_template(
message,
tokenize=False,
add_generation_prompt=True
)
outputs = llm.generate([text], sampling_params=sampling_params)
response = outputs[0].outputs[0].text
If you find our work useful, please give us a citation or a like, so we can make a greater contribution to the open-source community!
@article{XiYanSQL,
title={XiYan-SQL: A Novel Multi-Generator Framework For Text-to-SQL},
author={Yifu Liu and Yin Zhu and Yingqi Gao and Zhiling Luo and Xiaoxia Li and Xiaorong Shi and Yuntao Hong and Jinyang Gao and Yu Li and Bolin Ding and Jingren Zhou},
year={2025},
eprint={2507.04701},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2507.04701},
}