Instructions to use j2521402/SQL-R1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use j2521402/SQL-R1 with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
| base_model: Qwen/Qwen3-4B-Base | |
| library_name: peft | |
| pipeline_tag: text-generation | |
| language: | |
| - en | |
| tags: | |
| - base_model:adapter:Qwen/Qwen3-4B-Base | |
| - peft | |
| - lora | |
| - text-to-sql | |
| - sql | |
| - supervised-fine-tuning | |
| # SQL-R1-SFT | |
| SQL-R1-SFT is a LoRA adapter for | |
| [Qwen3-4B-Base](https://huggingface.co/Qwen/Qwen3-4B-Base), trained to | |
| translate a SQLite schema, optional evidence, and a natural-language question | |
| into exactly one read-only SQL query. | |
| This is an adapter-only repository. The Qwen3-4B-Base weights are required for | |
| inference. | |
| ## Training | |
| - **Method:** completion-only supervised fine-tuning | |
| - **Training data:** filtered BIRD and Spider training examples | |
| - **Records:** 12,976 train / 608 database-disjoint validation | |
| - **LoRA:** rank 32, alpha 64, dropout 0.05 | |
| - **Target modules:** all attention and MLP projections | |
| - **Trainable parameters:** 66.1M (1.62%) | |
| - **Precision:** BF16 | |
| - **Epochs:** 1 | |
| - **Learning rate:** 1e-4 | |
| - **Effective batch size:** 16 | |
| Only target SQL tokens contribute to the loss. Schema, evidence, and question | |
| tokens are masked. The final assistant completion uses Qwen3-4B-Base's native | |
| `<|endoftext|>` EOS rather than the ChatML turn separator. | |
| ## Evaluation | |
| Execution accuracy (EX) and execution-valid rate were measured with a common | |
| read-only SQLite evaluator on the public development sets. | |
| | Model | BIRD Dev EX | BIRD valid | Spider Dev EX | Spider valid | | |
| |---|---:|---:|---:|---:| | |
| | Qwen3-4B-Base | 23.21% | 55.61% | 55.51% | 77.66% | | |
| | SQL-R1-SFT | **42.37%** | **87.29%** | **77.27%** | **96.62%** | | |
| These are public Dev results produced by the SQL-R1 evaluator, not official | |
| hidden-test leaderboard submissions. | |
| ## Usage | |
| ```python | |
| import torch | |
| from peft import PeftModel | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| base_id = "Qwen/Qwen3-4B-Base" | |
| repo_id = "j2521402/SQL-R1" | |
| adapter_subfolder = "sft" | |
| tokenizer = AutoTokenizer.from_pretrained( | |
| repo_id, | |
| subfolder=adapter_subfolder, | |
| ) | |
| base_model = AutoModelForCausalLM.from_pretrained( | |
| base_id, | |
| dtype=torch.bfloat16, | |
| device_map="auto", | |
| ) | |
| model = PeftModel.from_pretrained( | |
| base_model, | |
| repo_id, | |
| subfolder=adapter_subfolder, | |
| ).eval() | |
| messages = [ | |
| { | |
| "role": "system", | |
| "content": ( | |
| "You are a Text-to-SQL assistant. Given a SQLite database schema, " | |
| "optional evidence, and a question, return exactly one read-only " | |
| "SQLite query. Do not include explanations or Markdown fences." | |
| ), | |
| }, | |
| { | |
| "role": "user", | |
| "content": ( | |
| 'Database schema:\nTABLE "singer" ("id" INT, "name" TEXT);\n\n' | |
| "Question:\nHow many singers are there?" | |
| ), | |
| }, | |
| ] | |
| inputs = tokenizer.apply_chat_template( | |
| messages, | |
| tokenize=True, | |
| add_generation_prompt=True, | |
| enable_thinking=False, | |
| return_dict=True, | |
| return_tensors="pt", | |
| ).to(model.device) | |
| with torch.inference_mode(): | |
| outputs = model.generate( | |
| **inputs, | |
| max_new_tokens=512, | |
| do_sample=False, | |
| eos_token_id=[ | |
| tokenizer.eos_token_id, | |
| tokenizer.convert_tokens_to_ids("<|im_end|>"), | |
| ], | |
| ) | |
| sql = tokenizer.decode( | |
| outputs[0, inputs["input_ids"].shape[1]:], | |
| skip_special_tokens=True, | |
| ).strip() | |
| print(sql) | |
| ``` | |
| ## Limitations | |
| - Training and evaluation target SQLite and English Text-to-SQL benchmarks. | |
| - Prompts contain schema metadata but not database row contents. | |
| - The adapter does not implement tool calling or an autonomous SQL agent. | |
| - Generated SQL should be validated and executed through a read-only, | |
| resource-limited database connection. | |
| ## Project | |
| Training code, preprocessing, evaluator, and reproducibility details: | |
| [j2521402/SQL-R1](https://github.com/j2521402/SQL-R1). | |
| ### Framework versions | |
| - PyTorch 2.8.0+cu128 | |
| - Transformers 5.14.1 | |
| - PEFT 0.19.1 | |