while-ai/text-to-sql-shop-sft-think
text-to-sql-shop-sft-think
<!-- while-ai: where this fits --> Recipe: [recipes/04-train/text-to-sql](https://github.com/whilehq/whileai-sdk/tree/main/recipes/04-train/text-to-sql) · Collection: [Analyst](https://huggingface.co/collections/while-ai/analyst-6aada4c396dfe31da497862d)
One rung of the text-to-SQL hill climb on Qwen3-4B, thinking on, graded by executing the query. Round sft-think starts from base: self-distillation: 199 verified traces, hosted SFT 2 epochs. The eval rows for this round are the eval-sft-think config of the text-to-sql-shop dataset.
Where it sits in the climb
81 held-out tasks, 4 samples each, temperature 0.7. The row in bold is this adapter.
Rounds r1 to r4 are within each other's intervals: two thousand GRPO steps did not move pass@1 on this holdout. The move came in r5, from a re-cut prompt band and masked truncation, and is the text-to-sql-shop-r5 repo. The recipe README explains what each round changed and why.
Arms in this repo
The root holds the arm the recipe README's headline number reports. Every other arm is a subfolder named after it. checkpoints/ never ships.
Load
from peft import PeftModel
from transformers import AutoModelForCausalLM
base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-4B")
model = PeftModel.from_pretrained(base, "while-ai/text-to-sql-shop-sft-think") # the headline armReproduce
git clone https://github.com/whilehq/whileai-sdk && cd whileai-sdk/recipes/04-train/text-to-sql
modal run train_grpo_modal.py --run-name t2s-r1The recipe README pins the seed, the library versions and the GPU, and its Checks table says what the eval verified. Read the Learned section before quoting a number from this card.
