ishaanranjan commited on
Commit
213fa5f
·
verified ·
1 Parent(s): fa758ed

Upload reproduced search_query_gen smollm2-135m specialist

Browse files
README.md ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - en
5
+ library_name: transformers
6
+ pipeline_tag: text-generation
7
+ base_model: HuggingFaceTB/SmolLM2-135M-Instruct
8
+ base_model_relation: finetune
9
+ tags:
10
+ - code
11
+ - coding-agent
12
+ - tool-use
13
+ - function-calling
14
+ - small-language-model
15
+ - full-parameter-finetuning
16
+ - supervised-fine-tuning
17
+ - deterministic-verification
18
+ - safetensors
19
+ - subroutine:search_query_gen
20
+ model-index:
21
+ - name: Code Search-Query Generator (SmolLM2 135M)
22
+ results:
23
+ - task:
24
+ type: text-generation
25
+ name: Code Search-Query Generator
26
+ dataset:
27
+ name: Held-out HTTPX and Jinja2 oracle benchmark
28
+ type: custom
29
+ metrics:
30
+ - type: accuracy
31
+ value: 0.648
32
+ name: Success after one schema-feedback retry
33
+ - type: accuracy
34
+ value: 1.0
35
+ name: First-pass schema validity
36
+ ---
37
+
38
+ # Code Search-Query Generator (SmolLM2 135M)
39
+
40
+ This is a **full-parameter supervised fine-tune** of
41
+ [`HuggingFaceTB/SmolLM2-135M-Instruct`](https://huggingface.co/HuggingFaceTB/SmolLM2-135M-Instruct) for one narrow,
42
+ schema-bound developer-agent subroutine:
43
+
44
+ > Write an executable search regex from a plain-words request.
45
+
46
+ The model is one cell from the
47
+ [Parameter Floors for Developer-Agent Subroutines](https://github.com/IshaanAyaan/slm-agents)
48
+ experiment. Labels are generated by deterministic oracles over real Python
49
+ repositories; no teacher model or human judge labels the data.
50
+
51
+ ## Intended Use
52
+
53
+ Use this checkpoint inside the repository's verified subroutine harness, which
54
+ renders the task-specific prompt, parses strict JSON, permits one localized
55
+ schema-feedback retry, applies deterministic guards, and falls back to rules
56
+ where appropriate. This is not a general coding assistant or chat model.
57
+
58
+ ## Evaluation
59
+
60
+ Evaluation uses up to 250 examples from HTTPX and Jinja2, both held out
61
+ entirely from training. Decoding is greedy.
62
+
63
+ | Metric | Result |
64
+ |---|---:|
65
+ | Success after one schema retry | 64.8% |
66
+ | First-pass success | 64.8% |
67
+ | First-pass schema validity | 100.0% |
68
+ | Base instruct success after retry | 0.0% for the base instruct model |
69
+ | Rules-only success | 23.7% |
70
+
71
+ Experiment verdict for this subroutine: **unsolved (best 0.88 @ qwen2.5-0.5b)**.
72
+
73
+ ## Training
74
+
75
+ - Training examples: 2000
76
+ - Epochs: 3.0
77
+ - Learning rate: 2e-05
78
+ - Effective batch configuration: 32 per device x
79
+ 1 gradient accumulation
80
+ - Maximum sequence length: 2048
81
+ - Seed: 0
82
+ - Final training loss: 0.529164
83
+ - Reproduction hardware: one NVIDIA A100 80GB PCIe
84
+ - Source revision:
85
+ [`d0fd7bf`](https://github.com/IshaanAyaan/slm-agents/commit/d0fd7bff420c2f2f0446599ca2b169cc4f03b06a)
86
+
87
+ The dataset was generated from pinned Flask, Click, and Rich repositories for
88
+ training/validation. HTTPX and Jinja2 were reserved for testing.
89
+
90
+ ## Limitations
91
+
92
+ The checkpoint is specialized to one closed JSON schema and should not be
93
+ expected to retain broad instruction-following ability. The experiment mixes
94
+ two base-model families across its size sweep. Some subroutines are better
95
+ served by deterministic rules; consult the verdict above before deployment.
96
+
97
+ ## License
98
+
99
+ Apache-2.0, following the base model. Experiment code is MIT licensed.
config.json ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_name_or_path": "HuggingFaceTB/SmolLM2-135M-Instruct",
3
+ "architectures": [
4
+ "LlamaForCausalLM"
5
+ ],
6
+ "attention_bias": false,
7
+ "attention_dropout": 0.0,
8
+ "bos_token_id": 1,
9
+ "eos_token_id": 2,
10
+ "head_dim": 64,
11
+ "hidden_act": "silu",
12
+ "hidden_size": 576,
13
+ "initializer_range": 0.041666666666666664,
14
+ "intermediate_size": 1536,
15
+ "is_llama_config": true,
16
+ "max_position_embeddings": 8192,
17
+ "mlp_bias": false,
18
+ "model_type": "llama",
19
+ "num_attention_heads": 9,
20
+ "num_hidden_layers": 30,
21
+ "num_key_value_heads": 3,
22
+ "pad_token_id": 2,
23
+ "pretraining_tp": 1,
24
+ "rms_norm_eps": 1e-05,
25
+ "rope_interleaved": false,
26
+ "rope_scaling": null,
27
+ "rope_theta": 100000,
28
+ "tie_word_embeddings": true,
29
+ "torch_dtype": "float32",
30
+ "transformers.js_config": {
31
+ "kv_cache_dtype": {
32
+ "fp16": "float16",
33
+ "q4f16": "float16"
34
+ }
35
+ },
36
+ "transformers_version": "4.48.3",
37
+ "use_cache": true,
38
+ "vocab_size": 49152
39
+ }
generation_config.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "bos_token_id": 1,
4
+ "eos_token_id": 2,
5
+ "pad_token_id": 2,
6
+ "transformers_version": "4.48.3"
7
+ }
merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3c119dd074c478c8a75648dc39769abfbe75062330f0d3fe980bf89ec42dbf7f
3
+ size 538090408
special_tokens_map.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<|im_start|>",
4
+ "<|im_end|>"
5
+ ],
6
+ "bos_token": {
7
+ "content": "<|im_start|>",
8
+ "lstrip": false,
9
+ "normalized": false,
10
+ "rstrip": false,
11
+ "single_word": false
12
+ },
13
+ "eos_token": {
14
+ "content": "<|im_end|>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false
19
+ },
20
+ "pad_token": {
21
+ "content": "<|im_end|>",
22
+ "lstrip": false,
23
+ "normalized": false,
24
+ "rstrip": false,
25
+ "single_word": false
26
+ },
27
+ "unk_token": {
28
+ "content": "<|endoftext|>",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false
33
+ }
34
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "added_tokens_decoder": {
4
+ "0": {
5
+ "content": "<|endoftext|>",
6
+ "lstrip": false,
7
+ "normalized": false,
8
+ "rstrip": false,
9
+ "single_word": false,
10
+ "special": true
11
+ },
12
+ "1": {
13
+ "content": "<|im_start|>",
14
+ "lstrip": false,
15
+ "normalized": false,
16
+ "rstrip": false,
17
+ "single_word": false,
18
+ "special": true
19
+ },
20
+ "2": {
21
+ "content": "<|im_end|>",
22
+ "lstrip": false,
23
+ "normalized": false,
24
+ "rstrip": false,
25
+ "single_word": false,
26
+ "special": true
27
+ },
28
+ "3": {
29
+ "content": "<repo_name>",
30
+ "lstrip": false,
31
+ "normalized": false,
32
+ "rstrip": false,
33
+ "single_word": false,
34
+ "special": true
35
+ },
36
+ "4": {
37
+ "content": "<reponame>",
38
+ "lstrip": false,
39
+ "normalized": false,
40
+ "rstrip": false,
41
+ "single_word": false,
42
+ "special": true
43
+ },
44
+ "5": {
45
+ "content": "<file_sep>",
46
+ "lstrip": false,
47
+ "normalized": false,
48
+ "rstrip": false,
49
+ "single_word": false,
50
+ "special": true
51
+ },
52
+ "6": {
53
+ "content": "<filename>",
54
+ "lstrip": false,
55
+ "normalized": false,
56
+ "rstrip": false,
57
+ "single_word": false,
58
+ "special": true
59
+ },
60
+ "7": {
61
+ "content": "<gh_stars>",
62
+ "lstrip": false,
63
+ "normalized": false,
64
+ "rstrip": false,
65
+ "single_word": false,
66
+ "special": true
67
+ },
68
+ "8": {
69
+ "content": "<issue_start>",
70
+ "lstrip": false,
71
+ "normalized": false,
72
+ "rstrip": false,
73
+ "single_word": false,
74
+ "special": true
75
+ },
76
+ "9": {
77
+ "content": "<issue_comment>",
78
+ "lstrip": false,
79
+ "normalized": false,
80
+ "rstrip": false,
81
+ "single_word": false,
82
+ "special": true
83
+ },
84
+ "10": {
85
+ "content": "<issue_closed>",
86
+ "lstrip": false,
87
+ "normalized": false,
88
+ "rstrip": false,
89
+ "single_word": false,
90
+ "special": true
91
+ },
92
+ "11": {
93
+ "content": "<jupyter_start>",
94
+ "lstrip": false,
95
+ "normalized": false,
96
+ "rstrip": false,
97
+ "single_word": false,
98
+ "special": true
99
+ },
100
+ "12": {
101
+ "content": "<jupyter_text>",
102
+ "lstrip": false,
103
+ "normalized": false,
104
+ "rstrip": false,
105
+ "single_word": false,
106
+ "special": true
107
+ },
108
+ "13": {
109
+ "content": "<jupyter_code>",
110
+ "lstrip": false,
111
+ "normalized": false,
112
+ "rstrip": false,
113
+ "single_word": false,
114
+ "special": true
115
+ },
116
+ "14": {
117
+ "content": "<jupyter_output>",
118
+ "lstrip": false,
119
+ "normalized": false,
120
+ "rstrip": false,
121
+ "single_word": false,
122
+ "special": true
123
+ },
124
+ "15": {
125
+ "content": "<jupyter_script>",
126
+ "lstrip": false,
127
+ "normalized": false,
128
+ "rstrip": false,
129
+ "single_word": false,
130
+ "special": true
131
+ },
132
+ "16": {
133
+ "content": "<empty_output>",
134
+ "lstrip": false,
135
+ "normalized": false,
136
+ "rstrip": false,
137
+ "single_word": false,
138
+ "special": true
139
+ }
140
+ },
141
+ "additional_special_tokens": [
142
+ "<|im_start|>",
143
+ "<|im_end|>"
144
+ ],
145
+ "bos_token": "<|im_start|>",
146
+ "chat_template": "{% for message in messages %}{% if loop.first and messages[0]['role'] != 'system' %}{{ '<|im_start|>system\nYou are a helpful AI assistant named SmolLM, trained by Hugging Face<|im_end|>\n' }}{% endif %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}",
147
+ "clean_up_tokenization_spaces": false,
148
+ "eos_token": "<|im_end|>",
149
+ "extra_special_tokens": {},
150
+ "model_max_length": 8192,
151
+ "pad_token": "<|im_end|>",
152
+ "tokenizer_class": "GPT2Tokenizer",
153
+ "unk_token": "<|endoftext|>",
154
+ "vocab_size": 49152
155
+ }
train_meta.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "base_model": "HuggingFaceTB/SmolLM2-135M-Instruct",
3
+ "train_path": "/root/slm-agents/slm_harness/results/subroutines/sft/search_query_gen/train.jsonl",
4
+ "n_train": 2000,
5
+ "epochs": 3.0,
6
+ "lr": 2e-05,
7
+ "batch_size": 32,
8
+ "grad_accum": 1,
9
+ "max_seq_len": 2048,
10
+ "seed": 0,
11
+ "train_seconds": 28.0,
12
+ "train_loss": 0.5291644927685853
13
+ }
training_args.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:05364494c394f3f25d0f17bf31bc6add9f798217ae800f8000f73c155259416f
3
+ size 5752
vocab.json ADDED
The diff for this file is too large to render. See raw diff