abidlabs HF Staff commited on
Commit
8b02c3d
·
verified ·
1 Parent(s): bc630c6

Update logbook: Text-to-SQL Post-Training

Browse files
logbook.js CHANGED
@@ -455,7 +455,7 @@
455
  `<a class="embed-title" href="${esc(u)}" target="_blank" rel="noopener">${esc(id)}</a>` +
456
  `<a class="embed-open" href="${esc(u)}" target="_blank" rel="noopener">Open ↗</a>` +
457
  `</div>` +
458
- `<iframe class="embed-frame" src="https://${sub}.hf.space" loading="lazy" ` +
459
  `allow="clipboard-read; clipboard-write; fullscreen"></iframe>`;
460
  },
461
  },
 
455
  `<a class="embed-title" href="${esc(u)}" target="_blank" rel="noopener">${esc(id)}</a>` +
456
  `<a class="embed-open" href="${esc(u)}" target="_blank" rel="noopener">Open ↗</a>` +
457
  `</div>` +
458
+ `<iframe class="embed-frame" src="https://${sub}.hf.space/?sidebar=hidden&navbar=hidden" loading="lazy" ` +
459
  `allow="clipboard-read; clipboard-write; fullscreen"></iframe>`;
460
  },
461
  },
logbook.json CHANGED
@@ -3,18 +3,54 @@
3
  "title": "Text-to-SQL Post-Training",
4
  "emoji": "🎯",
5
  "space_id": "abidlabs/text2sql-logbook",
6
- "updated_at": "2026-07-02T06:19:56+00:00",
7
  "root": {
8
  "slug": "index",
9
  "title": "Text-to-SQL Post-Training",
10
  "file": "pages/index.md",
11
  "children": [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  {
13
  "slug": "prompt-format-ablation-chat-vs-completion",
14
  "title": "Prompt format ablation (chat vs completion)",
15
  "file": "pages/prompt-format-ablation-chat-vs-completion/page.md",
16
  "children": []
17
  },
 
 
 
 
 
 
18
  {
19
  "slug": "add-spider-wikisql-to-the-eval-suite",
20
  "title": "Add Spider + WikiSQL to the eval suite",
@@ -27,6 +63,12 @@
27
  "file": "pages/curriculum-order-by-join-complexity/page.md",
28
  "children": []
29
  },
 
 
 
 
 
 
30
  {
31
  "slug": "long-context-schema-eval-32k",
32
  "title": "Long-context schema eval @32k",
@@ -56,48 +98,6 @@
56
  "title": "Final model card + release",
57
  "file": "pages/final-model-card-release/page.md",
58
  "children": []
59
- },
60
- {
61
- "slug": "build-execution-accuracy-eval-harness",
62
- "title": "Build execution-accuracy eval harness",
63
- "file": "pages/build-execution-accuracy-eval-harness/page.md",
64
- "children": []
65
- },
66
- {
67
- "slug": "zero-shot-baselines-across-open-models",
68
- "title": "Zero-shot baselines across open models",
69
- "file": "pages/zero-shot-baselines-across-open-models/page.md",
70
- "children": []
71
- },
72
- {
73
- "slug": "clean-data-dedup-dialect-filtering",
74
- "title": "Clean data: dedup + dialect filtering",
75
- "file": "pages/clean-data-dedup-dialect-filtering/page.md",
76
- "children": []
77
- },
78
- {
79
- "slug": "qlora-sft-baseline",
80
- "title": "QLoRA SFT baseline",
81
- "file": "pages/qlora-sft-baseline/page.md",
82
- "children": []
83
- },
84
- {
85
- "slug": "lr-lora-rank-sweep",
86
- "title": "LR & LoRA-rank sweep",
87
- "file": "pages/lr-lora-rank-sweep/page.md",
88
- "children": []
89
- },
90
- {
91
- "slug": "synthetic-data-augmentation-self-instruct",
92
- "title": "Synthetic data augmentation (self-instruct)",
93
- "file": "pages/synthetic-data-augmentation-self-instruct/page.md",
94
- "children": []
95
- },
96
- {
97
- "slug": "distill-from-a-larger-open-model",
98
- "title": "Distill from a larger open model",
99
- "file": "pages/distill-from-a-larger-open-model/page.md",
100
- "children": []
101
  }
102
  ]
103
  }
 
3
  "title": "Text-to-SQL Post-Training",
4
  "emoji": "🎯",
5
  "space_id": "abidlabs/text2sql-logbook",
6
+ "updated_at": "2026-07-02T06:24:36+00:00",
7
  "root": {
8
  "slug": "index",
9
  "title": "Text-to-SQL Post-Training",
10
  "file": "pages/index.md",
11
  "children": [
12
+ {
13
+ "slug": "build-execution-accuracy-eval-harness",
14
+ "title": "Build execution-accuracy eval harness",
15
+ "file": "pages/build-execution-accuracy-eval-harness/page.md",
16
+ "children": []
17
+ },
18
+ {
19
+ "slug": "zero-shot-baselines-across-open-models",
20
+ "title": "Zero-shot baselines across open models",
21
+ "file": "pages/zero-shot-baselines-across-open-models/page.md",
22
+ "children": []
23
+ },
24
+ {
25
+ "slug": "clean-data-dedup-dialect-filtering",
26
+ "title": "Clean data: dedup + dialect filtering",
27
+ "file": "pages/clean-data-dedup-dialect-filtering/page.md",
28
+ "children": []
29
+ },
30
+ {
31
+ "slug": "qlora-sft-baseline",
32
+ "title": "QLoRA SFT baseline",
33
+ "file": "pages/qlora-sft-baseline/page.md",
34
+ "children": []
35
+ },
36
+ {
37
+ "slug": "lr-lora-rank-sweep",
38
+ "title": "LR & LoRA-rank sweep",
39
+ "file": "pages/lr-lora-rank-sweep/page.md",
40
+ "children": []
41
+ },
42
  {
43
  "slug": "prompt-format-ablation-chat-vs-completion",
44
  "title": "Prompt format ablation (chat vs completion)",
45
  "file": "pages/prompt-format-ablation-chat-vs-completion/page.md",
46
  "children": []
47
  },
48
+ {
49
+ "slug": "synthetic-data-augmentation-self-instruct",
50
+ "title": "Synthetic data augmentation (self-instruct)",
51
+ "file": "pages/synthetic-data-augmentation-self-instruct/page.md",
52
+ "children": []
53
+ },
54
  {
55
  "slug": "add-spider-wikisql-to-the-eval-suite",
56
  "title": "Add Spider + WikiSQL to the eval suite",
 
63
  "file": "pages/curriculum-order-by-join-complexity/page.md",
64
  "children": []
65
  },
66
+ {
67
+ "slug": "distill-from-a-larger-open-model",
68
+ "title": "Distill from a larger open model",
69
+ "file": "pages/distill-from-a-larger-open-model/page.md",
70
+ "children": []
71
+ },
72
  {
73
  "slug": "long-context-schema-eval-32k",
74
  "title": "Long-context schema eval @32k",
 
98
  "title": "Final model card + release",
99
  "file": "pages/final-model-card-release/page.md",
100
  "children": []
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
  }
102
  ]
103
  }
logbook.md CHANGED
@@ -27,29 +27,13 @@
27
  | planned | [CPU latency & throughput](#/cpu-latency-throughput) | to assign |
28
  | planned | [Final model card + release](#/final-model-card-release) | Ana |
29
 
30
- # Prompt format ablation (chat vs completion)
31
-
32
- # Add Spider + WikiSQL to the eval suite
33
-
34
- # Curriculum: order by join complexity
35
-
36
- # Long-context schema eval @32k
37
-
38
- # Full fine-tune vs LoRA comparison
39
-
40
- # Error taxonomy & failure analysis
41
-
42
- # CPU latency & throughput
43
-
44
- # Final model card + release
45
-
46
  # Build execution-accuracy eval harness
47
 
48
  ---
49
 
50
  ### Harness: execution accuracy over SQLite
51
 
52
- `Jul 02, 2026 · 06:19 UTC`
53
 
54
  Execution accuracy is the right metric: exact string match is near-zero because the model writes semantically-equivalent but syntactically-varied SQL. The harness builds an in-memory SQLite DB from each example's schema, runs gold and predicted queries, and compares result sets (order-aware only when the gold has ORDER BY).
55
 
@@ -82,7 +66,7 @@ def execution_accuracy(preds, golds, schemas):
82
 
83
  ### Baselines: 28.9% best zero-shot
84
 
85
- `Jul 02, 2026 · 06:19 UTC`
86
 
87
  Zero-shot execution accuracy on the 800-example held-out set. Instruct variants lead; the 1.5B instruct model is the best base to fine-tune from.
88
 
@@ -104,7 +88,7 @@ Target to beat with SFT: **28.9%**.
104
 
105
  ### Data: 42k clean SQLite-executable examples
106
 
107
- `Jul 02, 2026 · 06:19 UTC`
108
 
109
  Filtered the training set to examples whose gold query executes cleanly in SQLite (~78% do; the rest use non-SQLite dialects), then deduped against the eval prompts. Final training set: 42k examples.
110
 
@@ -114,7 +98,7 @@ Filtered the training set to examples whose gold query executes cleanly in SQLit
114
 
115
  ### QLoRA baseline: 51.3% exec acc
116
 
117
- `Jul 02, 2026 · 06:19 UTC`
118
 
119
  First SFT pass: QLoRA (r=16) on Qwen2.5-1.5B-Instruct, 3 epochs, completion-only loss. Execution accuracy 28.9% → **51.3%**. Live metrics on the Trackio dashboard.
120
 
@@ -146,20 +130,22 @@ if __name__ == "__main__":
146
 
147
  ### Sweep: r=16, lr=5e-4 wins
148
 
149
- `Jul 02, 2026 · 06:19 UTC`
150
 
151
  Swept learning rate {1e-4, 2e-4, 5e-4} × rank {8, 16, 32}. r=16 / lr=5e-4 is the clear winner; r=8 underfits and lr>5e-4 destabilizes late in training.
152
 
153
  - media/lr_rank_sweep.png
154
  - https://huggingface.co/spaces/abidlabs/gemma-text2sql-trackio
155
 
 
 
156
  # Synthetic data augmentation (self-instruct)
157
 
158
  ---
159
 
160
  ### Synth data: +3.1% exec acc (early)
161
 
162
- `Jul 02, 2026 · 06:19 UTC`
163
 
164
  Generating extra (question, SQL) pairs by prompting a larger open model on real schemas, keeping only pairs whose SQL executes. Running as an HF Job; outputs land in a bucket. Early signal: +3.1% exec acc when mixed 1:4 with real data.
165
 
@@ -191,12 +177,26 @@ def augment(schemas, n_per_schema=8):
191
  - https://huggingface.co/jobs/abidlabs/6a45b02733c08a2c0dae0348
192
  - https://huggingface.co/buckets/abidlabs/jobs-artifacts
193
 
 
 
 
 
194
  # Distill from a larger open model
195
 
196
  ---
197
 
198
  ### Plan & hypothesis
199
 
200
- `Jul 02, 2026 · 06:19 UTC`
201
 
202
  Plan: use the best open model as a teacher (rationale + SQL), distill into the 1.5B student. Hypothesis: closes most of the gap to the teacher at a fraction of the cost.
 
 
 
 
 
 
 
 
 
 
 
27
  | planned | [CPU latency & throughput](#/cpu-latency-throughput) | to assign |
28
  | planned | [Final model card + release](#/final-model-card-release) | Ana |
29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  # Build execution-accuracy eval harness
31
 
32
  ---
33
 
34
  ### Harness: execution accuracy over SQLite
35
 
36
+ `Jul 02, 2026 · 06:24 UTC`
37
 
38
  Execution accuracy is the right metric: exact string match is near-zero because the model writes semantically-equivalent but syntactically-varied SQL. The harness builds an in-memory SQLite DB from each example's schema, runs gold and predicted queries, and compares result sets (order-aware only when the gold has ORDER BY).
39
 
 
66
 
67
  ### Baselines: 28.9% best zero-shot
68
 
69
+ `Jul 02, 2026 · 06:24 UTC`
70
 
71
  Zero-shot execution accuracy on the 800-example held-out set. Instruct variants lead; the 1.5B instruct model is the best base to fine-tune from.
72
 
 
88
 
89
  ### Data: 42k clean SQLite-executable examples
90
 
91
+ `Jul 02, 2026 · 06:24 UTC`
92
 
93
  Filtered the training set to examples whose gold query executes cleanly in SQLite (~78% do; the rest use non-SQLite dialects), then deduped against the eval prompts. Final training set: 42k examples.
94
 
 
98
 
99
  ### QLoRA baseline: 51.3% exec acc
100
 
101
+ `Jul 02, 2026 · 06:24 UTC`
102
 
103
  First SFT pass: QLoRA (r=16) on Qwen2.5-1.5B-Instruct, 3 epochs, completion-only loss. Execution accuracy 28.9% → **51.3%**. Live metrics on the Trackio dashboard.
104
 
 
130
 
131
  ### Sweep: r=16, lr=5e-4 wins
132
 
133
+ `Jul 02, 2026 · 06:24 UTC`
134
 
135
  Swept learning rate {1e-4, 2e-4, 5e-4} × rank {8, 16, 32}. r=16 / lr=5e-4 is the clear winner; r=8 underfits and lr>5e-4 destabilizes late in training.
136
 
137
  - media/lr_rank_sweep.png
138
  - https://huggingface.co/spaces/abidlabs/gemma-text2sql-trackio
139
 
140
+ # Prompt format ablation (chat vs completion)
141
+
142
  # Synthetic data augmentation (self-instruct)
143
 
144
  ---
145
 
146
  ### Synth data: +3.1% exec acc (early)
147
 
148
+ `Jul 02, 2026 · 06:24 UTC`
149
 
150
  Generating extra (question, SQL) pairs by prompting a larger open model on real schemas, keeping only pairs whose SQL executes. Running as an HF Job; outputs land in a bucket. Early signal: +3.1% exec acc when mixed 1:4 with real data.
151
 
 
177
  - https://huggingface.co/jobs/abidlabs/6a45b02733c08a2c0dae0348
178
  - https://huggingface.co/buckets/abidlabs/jobs-artifacts
179
 
180
+ # Add Spider + WikiSQL to the eval suite
181
+
182
+ # Curriculum: order by join complexity
183
+
184
  # Distill from a larger open model
185
 
186
  ---
187
 
188
  ### Plan & hypothesis
189
 
190
+ `Jul 02, 2026 · 06:24 UTC`
191
 
192
  Plan: use the best open model as a teacher (rationale + SQL), distill into the 1.5B student. Hypothesis: closes most of the gap to the teacher at a fraction of the cost.
193
+
194
+ # Long-context schema eval @32k
195
+
196
+ # Full fine-tune vs LoRA comparison
197
+
198
+ # Error taxonomy & failure analysis
199
+
200
+ # CPU latency & throughput
201
+
202
+ # Final model card + release
pages/build-execution-accuracy-eval-harness/page.md CHANGED
@@ -3,8 +3,8 @@
3
  ---
4
 
5
  ### Harness: execution accuracy over SQLite
6
- <!-- entry ts=2026-07-02T06:19:56+00:00 -->
7
- `Jul 02, 2026 · 06:19 UTC`
8
 
9
  Execution accuracy is the right metric: exact string match is near-zero because the model writes semantically-equivalent but syntactically-varied SQL. The harness builds an in-memory SQLite DB from each example's schema, runs gold and predicted queries, and compares result sets (order-aware only when the gold has ORDER BY).
10
 
 
3
  ---
4
 
5
  ### Harness: execution accuracy over SQLite
6
+ <!-- entry ts=2026-07-02T06:24:36+00:00 -->
7
+ `Jul 02, 2026 · 06:24 UTC`
8
 
9
  Execution accuracy is the right metric: exact string match is near-zero because the model writes semantically-equivalent but syntactically-varied SQL. The harness builds an in-memory SQLite DB from each example's schema, runs gold and predicted queries, and compares result sets (order-aware only when the gold has ORDER BY).
10
 
pages/clean-data-dedup-dialect-filtering/page.md CHANGED
@@ -3,7 +3,7 @@
3
  ---
4
 
5
  ### Data: 42k clean SQLite-executable examples
6
- <!-- entry ts=2026-07-02T06:19:56+00:00 -->
7
- `Jul 02, 2026 · 06:19 UTC`
8
 
9
  Filtered the training set to examples whose gold query executes cleanly in SQLite (~78% do; the rest use non-SQLite dialects), then deduped against the eval prompts. Final training set: 42k examples.
 
3
  ---
4
 
5
  ### Data: 42k clean SQLite-executable examples
6
+ <!-- entry ts=2026-07-02T06:24:36+00:00 -->
7
+ `Jul 02, 2026 · 06:24 UTC`
8
 
9
  Filtered the training set to examples whose gold query executes cleanly in SQLite (~78% do; the rest use non-SQLite dialects), then deduped against the eval prompts. Final training set: 42k examples.
pages/distill-from-a-larger-open-model/page.md CHANGED
@@ -3,7 +3,7 @@
3
  ---
4
 
5
  ### Plan & hypothesis
6
- <!-- entry ts=2026-07-02T06:19:56+00:00 -->
7
- `Jul 02, 2026 · 06:19 UTC`
8
 
9
  Plan: use the best open model as a teacher (rationale + SQL), distill into the 1.5B student. Hypothesis: closes most of the gap to the teacher at a fraction of the cost.
 
3
  ---
4
 
5
  ### Plan & hypothesis
6
+ <!-- entry ts=2026-07-02T06:24:36+00:00 -->
7
+ `Jul 02, 2026 · 06:24 UTC`
8
 
9
  Plan: use the best open model as a teacher (rationale + SQL), distill into the 1.5B student. Hypothesis: closes most of the gap to the teacher at a fraction of the cost.
pages/lr-lora-rank-sweep/page.md CHANGED
@@ -3,8 +3,8 @@
3
  ---
4
 
5
  ### Sweep: r=16, lr=5e-4 wins
6
- <!-- entry ts=2026-07-02T06:19:56+00:00 -->
7
- `Jul 02, 2026 · 06:19 UTC`
8
 
9
  Swept learning rate {1e-4, 2e-4, 5e-4} × rank {8, 16, 32}. r=16 / lr=5e-4 is the clear winner; r=8 underfits and lr>5e-4 destabilizes late in training.
10
 
 
3
  ---
4
 
5
  ### Sweep: r=16, lr=5e-4 wins
6
+ <!-- entry ts=2026-07-02T06:24:36+00:00 -->
7
+ `Jul 02, 2026 · 06:24 UTC`
8
 
9
  Swept learning rate {1e-4, 2e-4, 5e-4} × rank {8, 16, 32}. r=16 / lr=5e-4 is the clear winner; r=8 underfits and lr>5e-4 destabilizes late in training.
10
 
pages/qlora-sft-baseline/page.md CHANGED
@@ -3,8 +3,8 @@
3
  ---
4
 
5
  ### QLoRA baseline: 51.3% exec acc
6
- <!-- entry ts=2026-07-02T06:19:56+00:00 -->
7
- `Jul 02, 2026 · 06:19 UTC`
8
 
9
  First SFT pass: QLoRA (r=16) on Qwen2.5-1.5B-Instruct, 3 epochs, completion-only loss. Execution accuracy 28.9% → **51.3%**. Live metrics on the Trackio dashboard.
10
 
 
3
  ---
4
 
5
  ### QLoRA baseline: 51.3% exec acc
6
+ <!-- entry ts=2026-07-02T06:24:36+00:00 -->
7
+ `Jul 02, 2026 · 06:24 UTC`
8
 
9
  First SFT pass: QLoRA (r=16) on Qwen2.5-1.5B-Instruct, 3 epochs, completion-only loss. Execution accuracy 28.9% → **51.3%**. Live metrics on the Trackio dashboard.
10
 
pages/synthetic-data-augmentation-self-instruct/page.md CHANGED
@@ -3,8 +3,8 @@
3
  ---
4
 
5
  ### Synth data: +3.1% exec acc (early)
6
- <!-- entry ts=2026-07-02T06:19:56+00:00 -->
7
- `Jul 02, 2026 · 06:19 UTC`
8
 
9
  Generating extra (question, SQL) pairs by prompting a larger open model on real schemas, keeping only pairs whose SQL executes. Running as an HF Job; outputs land in a bucket. Early signal: +3.1% exec acc when mixed 1:4 with real data.
10
 
 
3
  ---
4
 
5
  ### Synth data: +3.1% exec acc (early)
6
+ <!-- entry ts=2026-07-02T06:24:36+00:00 -->
7
+ `Jul 02, 2026 · 06:24 UTC`
8
 
9
  Generating extra (question, SQL) pairs by prompting a larger open model on real schemas, keeping only pairs whose SQL executes. Running as an HF Job; outputs land in a bucket. Early signal: +3.1% exec acc when mixed 1:4 with real data.
10
 
pages/zero-shot-baselines-across-open-models/page.md CHANGED
@@ -3,8 +3,8 @@
3
  ---
4
 
5
  ### Baselines: 28.9% best zero-shot
6
- <!-- entry ts=2026-07-02T06:19:56+00:00 -->
7
- `Jul 02, 2026 · 06:19 UTC`
8
 
9
  Zero-shot execution accuracy on the 800-example held-out set. Instruct variants lead; the 1.5B instruct model is the best base to fine-tune from.
10
 
 
3
  ---
4
 
5
  ### Baselines: 28.9% best zero-shot
6
+ <!-- entry ts=2026-07-02T06:24:36+00:00 -->
7
+ `Jul 02, 2026 · 06:24 UTC`
8
 
9
  Zero-shot execution accuracy on the 800-example held-out set. Instruct variants lead; the 1.5B instruct model is the best base to fine-tune from.
10