CoolFace
Modelpublic

craterlabs/Struct-SQL

sourceHugging Facecc-by-4.0updated 8mo agoView on Hugging Face
0likes31downloads
Model Card

Struct-SQL-8B: Knowledge Distillation with Structured Chain-of-Thought

Struct-SQL is a specialized Text-to-SQL model based on **Qwen3-4B-Instruct-2507**. It was trained using a novel Knowledge Distillation (KD) framework that transfers structured reasoning (Query Execution Plans) from a state-of-the-art teacher LLM (GPT-4o) to a smaller student model.

Unlike standard distillation methods that rely on unstructured Chain-of-Thought (CoT), Struct-SQL learns to generate a formal, logical blueprint (a query plan) before generating the final SQL. This approach significantly reduces syntactic errors and schema hallucinations.

๐Ÿ“„ Paper: Knowledge Distillation with Structured Chain-of-Thought for Text-to-SQL (Accepted at Canadian AI Conference 2026)

Performance

On the BIRD mini-dev benchmark, Struct-SQL achieves an Execution Accuracy (EX) of 45.0%, outperforming standard unstructured CoT distillation baselines by 8.1 points.

ModelDistillation MethodExecution Accuracy (EX)
Struct-SQL (Ours)Structured QP-CoT45.0%
ReasonSQL BaselineUnstructured CoT36.9%
FN-Gold BaselineNo Reasoning (SQL Only)34.3%
Base Student (Zero-shot)None17.0%

Methodology

The model was trained on a curated dataset of 1,000 samples generated by GPT-4o. The training data consists of:

  1. 1.Input: Natural Language Question + Database Schema.
  2. 2.Output: A structured Query Execution Plan (Reasoning) + Final SQL Query.

By forcing the model to explicitly plan the query execution (e.g., "Scan Table", "Filter by...", "Join with..."), the model learns the logical structure of SQL generation rather than just memorizing patterns.


Usage

You can use this model with the transformers library. It expects the input to be formatted with a specific system prompt or structure if you want to elicit the query plan.


python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "craterlabs/Struct-SQL"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id, 
    torch_dtype=torch.float16, 
    device_map="auto"
)

inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=1200)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Intended Use

Struct-SQL-4B is intended for research and academic use in tasks involving Text-to-SQL generation and semantic parsing over relational databases. The model is particularly suited for studying:

  • โ€”Knowledge distillation techniques that leverage structured intermediate representations
  • โ€”Explicit query planning as an alternative to unstructured chain-of-thought reasoning
  • โ€”Error reduction in SQL generation, including syntactic validity and schema grounding
  • โ€”Compact language models for complex reasoning under limited parameter budgets

The model is not optimized for direct deployment in production database systems without additional validation and safety constraints.


Limitations

  • โ€”Evaluation is confined to the SQLite-based BIRD benchmark
  • โ€”The model may generate logically plausible but incorrect SQL for highly complex multi-hop queries

Citation

bibtex
@article{thaker2025knowledge,
  title={Knowledge Distillation with Structured Chain-of-Thought for Text-to-SQL},
  author={Thaker, Khushboo and Bresler, Yony},
  journal={arXiv preprint arXiv:2512.17053},
  year={2025}
}
@inproceedings{thaker2026knowledge,
  title={Struct-SQL: Distilling Structured Reasoning for Small Text-to-SQL Models},
  author={Thaker, Khushboo and Bresler, Yony},
  booktitle={Proceedings of the 39th Canadian Conference on Artificial Intelligence},
  year={2026},
  note={To appear}
}