aysinghal commited on
Commit
54aeb85
·
verified ·
1 Parent(s): bb007bc

Checkpoint at step 2000

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
1_Pooling/config.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "word_embedding_dimension": 1024,
3
+ "pooling_mode_cls_token": false,
4
+ "pooling_mode_mean_tokens": false,
5
+ "pooling_mode_max_tokens": false,
6
+ "pooling_mode_mean_sqrt_len_tokens": false,
7
+ "pooling_mode_weightedmean_tokens": false,
8
+ "pooling_mode_lasttoken": true,
9
+ "include_prompt": true
10
+ }
README.md ADDED
@@ -0,0 +1,204 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ license: apache-2.0
5
+ library_name: sentence-transformers
6
+ tags:
7
+ - sentence-transformers
8
+ - sentence-similarity
9
+ - feature-extraction
10
+ - code-retrieval
11
+ - embeddings
12
+ base_model: Qwen/Qwen3-Embedding-0.6B
13
+ datasets:
14
+ - aysinghal/code-retrieval-training-dataset
15
+ pipeline_tag: sentence-similarity
16
+ ---
17
+
18
+ # ide-code-retrieval-qwen3-0.6b-ebs128
19
+
20
+ A [SentenceTransformer](https://www.sbert.net/) model fine-tuned from
21
+ [Qwen/Qwen3-Embedding-0.6B](https://huggingface.co/Qwen/Qwen3-Embedding-0.6B) for **IDE code retrieval** --
22
+ mapping natural-language commit queries to relevant source code documents via
23
+ dense vector similarity.
24
+
25
+ > **Note:** This is an intermediate checkpoint at step 2,000 / 8,000
26
+ > (25.0% through 3 epochs). Training loss is still decreasing,
27
+ > so a later checkpoint may perform better.
28
+
29
+ ## Model Description
30
+
31
+ This model encodes both short natural-language queries (commit messages, search
32
+ queries) and longer code documents into a shared embedding space. Retrieval is
33
+ performed by computing cosine similarity between the query embedding and
34
+ candidate code embeddings.
35
+
36
+ - **Base model:** [Qwen/Qwen3-Embedding-0.6B](https://huggingface.co/Qwen/Qwen3-Embedding-0.6B) (0.6B parameters)
37
+ - **Max sequence length:** 1024 tokens
38
+ - **Output dimensionality:** 1024 (normalized)
39
+ - **Similarity function:** Cosine similarity
40
+
41
+ ## Training Details
42
+
43
+ ### Dataset
44
+
45
+ - **Source:** [aysinghal/code-retrieval-training-dataset](https://huggingface.co/datasets/aysinghal/code-retrieval-training-dataset)
46
+ - **Total pairs:** 2,465,694
47
+ - **Train split:** 2,342,409 pairs (95%)
48
+ - **Eval split:** 123,285 pairs (5%)
49
+ - **Text strategy:** truncate (max 4096 chars)
50
+ - **Negatives:** Explicit hard negatives from the dataset
51
+ - **Pre-tokenized:** Yes (token IDs stored on disk for zero-overhead data loading)
52
+
53
+ ### Loss Function
54
+
55
+ [MultipleNegativesRankingLoss](https://www.sbert.net/docs/package_reference/sentence_transformer/losses.html#multiplenegativesrankingloss)
56
+ (InfoNCE) with explicit hard negatives. Each training example consists of an
57
+ anchor (query), a positive (relevant code), and a hard negative (similar but
58
+ irrelevant code). In-batch negatives provide additional contrast.
59
+
60
+ ### Hyperparameters
61
+
62
+ | Parameter | Value |
63
+ |:---|:---|
64
+ | Base model | `Qwen/Qwen3-Embedding-0.6B` |
65
+ | Learning rate | 2e-05 |
66
+ | LR schedule | Linear with warmup |
67
+ | Warmup ratio | 0.1 |
68
+ | Epochs | 3 |
69
+ | Effective batch size | 128 |
70
+ | Per-GPU batch size | 64 |
71
+ | Gradient accumulation | 1 |
72
+ | Max sequence length | 1024 tokens |
73
+ | Precision | BFloat16 |
74
+ | Gradient checkpointing | True |
75
+ | torch.compile | Enabled (max-autotune) |
76
+ | Seed | 42 |
77
+ | Eval strategy | Every 1600 steps |
78
+ | Early stopping patience | 3 |
79
+
80
+ ### Hardware
81
+
82
+ - **GPUs:** 2x NVIDIA L40S
83
+ - **Total training steps:** 8,000 (3 epochs)
84
+
85
+ ### Training Progress (at checkpoint step 2,000)
86
+
87
+ - **Training loss:** 2.8207 (step 50) → 0.7387 (step 2000)
88
+ - **Best eval loss:** 0.2037 (step 1,600)
89
+ - **Progress:** 2,000 / 8,000 steps (25.0%)
90
+
91
+ #### Evaluation Results
92
+
93
+ | Step | Epoch | Eval Loss |
94
+ |---:|---:|---:|
95
+ | 0 | 0.00 | 1.4170 |
96
+ | 1,600 | 0.09 | 0.2037 |
97
+
98
+ <details>
99
+ <summary>Full training loss history (click to expand)</summary>
100
+
101
+ | Step | Epoch | Loss | Learning Rate |
102
+ |---:|---:|---:|---:|
103
+ | 50 | 0.0027 | 2.8207 | 1.23e-06 |
104
+ | 100 | 0.0055 | 2.6561 | 2.48e-06 |
105
+ | 150 | 0.0082 | 2.1570 | 3.73e-06 |
106
+ | 200 | 0.0109 | 1.8427 | 4.98e-06 |
107
+ | 250 | 0.0137 | 1.6992 | 6.23e-06 |
108
+ | 300 | 0.0164 | 1.5763 | 7.48e-06 |
109
+ | 350 | 0.0191 | 1.5178 | 8.73e-06 |
110
+ | 400 | 0.0219 | 1.4620 | 9.98e-06 |
111
+ | 450 | 0.0246 | 1.3918 | 1.12e-05 |
112
+ | 500 | 0.0273 | 1.3362 | 1.25e-05 |
113
+ | 550 | 0.0301 | 1.2610 | 1.37e-05 |
114
+ | 600 | 0.0328 | 1.2662 | 1.50e-05 |
115
+ | 650 | 0.0355 | 1.1824 | 1.62e-05 |
116
+ | 700 | 0.0383 | 1.1612 | 1.75e-05 |
117
+ | 750 | 0.0410 | 1.1657 | 1.87e-05 |
118
+ | 800 | 0.0437 | 1.1154 | 2.00e-05 |
119
+ | 850 | 0.0464 | 1.0884 | 1.99e-05 |
120
+ | 900 | 0.0492 | 1.0507 | 1.97e-05 |
121
+ | 950 | 0.0519 | 1.0255 | 1.96e-05 |
122
+ | 1,000 | 0.0546 | 0.9912 | 1.94e-05 |
123
+ | 1,050 | 0.0574 | 0.9509 | 1.93e-05 |
124
+ | 1,100 | 0.0601 | 0.9108 | 1.92e-05 |
125
+ | 1,150 | 0.0628 | 0.9017 | 1.90e-05 |
126
+ | 1,200 | 0.0656 | 0.8805 | 1.89e-05 |
127
+ | 1,250 | 0.0683 | 0.8652 | 1.88e-05 |
128
+ | 1,300 | 0.0710 | 0.8438 | 1.86e-05 |
129
+ | 1,350 | 0.0738 | 0.8249 | 1.85e-05 |
130
+ | 1,400 | 0.0765 | 0.8118 | 1.83e-05 |
131
+ | 1,450 | 0.0792 | 0.8413 | 1.82e-05 |
132
+ | 1,500 | 0.0820 | 0.8085 | 1.81e-05 |
133
+ | 1,550 | 0.0847 | 0.7821 | 1.79e-05 |
134
+ | 1,600 | 0.0874 | 0.8028 | 1.78e-05 |
135
+ | 1,650 | 0.0902 | 0.7820 | 1.76e-05 |
136
+ | 1,700 | 0.0929 | 0.7595 | 1.75e-05 |
137
+ | 1,750 | 0.0956 | 0.7295 | 1.74e-05 |
138
+ | 1,800 | 0.0984 | 0.7334 | 1.72e-05 |
139
+ | 1,850 | 0.1011 | 0.7484 | 1.71e-05 |
140
+ | 1,900 | 0.1038 | 0.7308 | 1.69e-05 |
141
+ | 1,950 | 0.1066 | 0.7228 | 1.68e-05 |
142
+ | 2,000 | 0.1093 | 0.7387 | 1.67e-05 |
143
+
144
+ </details>
145
+
146
+ ## Usage
147
+
148
+ ### Loading the Model
149
+
150
+ ```python
151
+ from sentence_transformers import SentenceTransformer
152
+
153
+ model = SentenceTransformer("aysinghal/ide-code-retrieval-qwen3-0.6b-ebs128")
154
+ ```
155
+
156
+ ### Computing Embeddings
157
+
158
+ ```python
159
+ queries = [
160
+ "fix null pointer exception in user authentication",
161
+ "add retry logic to API client",
162
+ ]
163
+ code_docs = [
164
+ "def authenticate(user):\n if user is None:\n raise ValueError...",
165
+ "class APIClient:\n def request(self, url, retries=3):\n ...",
166
+ ]
167
+
168
+ query_embeddings = model.encode(queries)
169
+ code_embeddings = model.encode(code_docs)
170
+
171
+ # Compute cosine similarities
172
+ from sentence_transformers.util import cos_sim
173
+ similarities = cos_sim(query_embeddings, code_embeddings)
174
+ print(similarities)
175
+ ```
176
+
177
+ ## Intended Use
178
+
179
+ - **Primary use case:** Retrieving relevant code files/functions given a
180
+ natural-language query (commit message, bug description, feature request)
181
+ - **Search pipeline:** Encode a corpus of code documents offline, then at query
182
+ time encode the query and find nearest neighbors via cosine similarity
183
+
184
+ ## Limitations
185
+
186
+ - This is an **early checkpoint** (25.0% through training). The
187
+ loss curve is still decreasing, so later checkpoints will likely perform
188
+ better.
189
+ - Trained on a specific code retrieval dataset; may not generalize to all
190
+ programming languages or query styles without further fine-tuning.
191
+ - Max context is 1024 tokens -- very long
192
+ files are truncated.
193
+
194
+ ## Citation
195
+
196
+ If you use this model, please cite the base model:
197
+
198
+ ```bibtex
199
+ @article{qwen3embedding,
200
+ title={Qwen3-Embedding},
201
+ author={Qwen Team},
202
+ year={2025}
203
+ }
204
+ ```
chat_template.jinja ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0].role == 'system' %}
4
+ {{- messages[0].content + '\n\n' }}
5
+ {%- endif %}
6
+ {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
7
+ {%- for tool in tools %}
8
+ {{- "\n" }}
9
+ {{- tool | tojson }}
10
+ {%- endfor %}
11
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
12
+ {%- else %}
13
+ {%- if messages[0].role == 'system' %}
14
+ {{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}
15
+ {%- endif %}
16
+ {%- endif %}
17
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
18
+ {%- for message in messages[::-1] %}
19
+ {%- set index = (messages|length - 1) - loop.index0 %}
20
+ {%- if ns.multi_step_tool and message.role == "user" and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}
21
+ {%- set ns.multi_step_tool = false %}
22
+ {%- set ns.last_query_index = index %}
23
+ {%- endif %}
24
+ {%- endfor %}
25
+ {%- for message in messages %}
26
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
27
+ {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }}
28
+ {%- elif message.role == "assistant" %}
29
+ {%- set content = message.content %}
30
+ {%- set reasoning_content = '' %}
31
+ {%- if message.reasoning_content is defined and message.reasoning_content is not none %}
32
+ {%- set reasoning_content = message.reasoning_content %}
33
+ {%- else %}
34
+ {%- if '</think>' in message.content %}
35
+ {%- set content = message.content.split('</think>')[-1].lstrip('\n') %}
36
+ {%- set reasoning_content = message.content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
37
+ {%- endif %}
38
+ {%- endif %}
39
+ {%- if loop.index0 > ns.last_query_index %}
40
+ {%- if loop.last or (not loop.last and reasoning_content) %}
41
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
42
+ {%- else %}
43
+ {{- '<|im_start|>' + message.role + '\n' + content }}
44
+ {%- endif %}
45
+ {%- else %}
46
+ {{- '<|im_start|>' + message.role + '\n' + content }}
47
+ {%- endif %}
48
+ {%- if message.tool_calls %}
49
+ {%- for tool_call in message.tool_calls %}
50
+ {%- if (loop.first and content) or (not loop.first) %}
51
+ {{- '\n' }}
52
+ {%- endif %}
53
+ {%- if tool_call.function %}
54
+ {%- set tool_call = tool_call.function %}
55
+ {%- endif %}
56
+ {{- '<tool_call>\n{"name": "' }}
57
+ {{- tool_call.name }}
58
+ {{- '", "arguments": ' }}
59
+ {%- if tool_call.arguments is string %}
60
+ {{- tool_call.arguments }}
61
+ {%- else %}
62
+ {{- tool_call.arguments | tojson }}
63
+ {%- endif %}
64
+ {{- '}\n</tool_call>' }}
65
+ {%- endfor %}
66
+ {%- endif %}
67
+ {{- '<|im_end|>\n' }}
68
+ {%- elif message.role == "tool" %}
69
+ {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
70
+ {{- '<|im_start|>user' }}
71
+ {%- endif %}
72
+ {{- '\n<tool_response>\n' }}
73
+ {{- message.content }}
74
+ {{- '\n</tool_response>' }}
75
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
76
+ {{- '<|im_end|>\n' }}
77
+ {%- endif %}
78
+ {%- endif %}
79
+ {%- endfor %}
80
+ {%- if add_generation_prompt %}
81
+ {{- '<|im_start|>assistant\n' }}
82
+ {%- if enable_thinking is defined and enable_thinking is false %}
83
+ {{- '<think>\n\n</think>\n\n' }}
84
+ {%- endif %}
85
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen3Model"
4
+ ],
5
+ "attention_bias": false,
6
+ "attention_dropout": 0.0,
7
+ "bos_token_id": 151643,
8
+ "dtype": "bfloat16",
9
+ "eos_token_id": 151643,
10
+ "head_dim": 128,
11
+ "hidden_act": "silu",
12
+ "hidden_size": 1024,
13
+ "initializer_range": 0.02,
14
+ "intermediate_size": 3072,
15
+ "layer_types": [
16
+ "full_attention",
17
+ "full_attention",
18
+ "full_attention",
19
+ "full_attention",
20
+ "full_attention",
21
+ "full_attention",
22
+ "full_attention",
23
+ "full_attention",
24
+ "full_attention",
25
+ "full_attention",
26
+ "full_attention",
27
+ "full_attention",
28
+ "full_attention",
29
+ "full_attention",
30
+ "full_attention",
31
+ "full_attention",
32
+ "full_attention",
33
+ "full_attention",
34
+ "full_attention",
35
+ "full_attention",
36
+ "full_attention",
37
+ "full_attention",
38
+ "full_attention",
39
+ "full_attention",
40
+ "full_attention",
41
+ "full_attention",
42
+ "full_attention",
43
+ "full_attention"
44
+ ],
45
+ "max_position_embeddings": 32768,
46
+ "max_window_layers": 28,
47
+ "model_type": "qwen3",
48
+ "num_attention_heads": 16,
49
+ "num_hidden_layers": 28,
50
+ "num_key_value_heads": 8,
51
+ "pad_token_id": null,
52
+ "rms_norm_eps": 1e-06,
53
+ "rope_parameters": {
54
+ "rope_theta": 1000000,
55
+ "rope_type": "default"
56
+ },
57
+ "sliding_window": null,
58
+ "tie_word_embeddings": true,
59
+ "transformers_version": "5.3.0",
60
+ "use_cache": true,
61
+ "use_sliding_window": false,
62
+ "vocab_size": 151669
63
+ }
config_sentence_transformers.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "prompts": {
3
+ "query": "Instruct: Given a web search query, retrieve relevant passages that answer the query\nQuery:",
4
+ "document": ""
5
+ },
6
+ "default_prompt_name": null,
7
+ "similarity_fn_name": "cosine",
8
+ "model_type": "SentenceTransformer",
9
+ "__version__": {
10
+ "sentence_transformers": "5.2.3",
11
+ "transformers": "5.3.0",
12
+ "pytorch": "2.10.0+cu128"
13
+ }
14
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1f136b8d148ee0452689b1ff967deb0a12b43a73bb34a8c5f64d59b5c870040f
3
+ size 1191586416
modules.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "idx": 0,
4
+ "name": "0",
5
+ "path": "",
6
+ "type": "sentence_transformers.models.Transformer"
7
+ },
8
+ {
9
+ "idx": 1,
10
+ "name": "1",
11
+ "path": "1_Pooling",
12
+ "type": "sentence_transformers.models.Pooling"
13
+ },
14
+ {
15
+ "idx": 2,
16
+ "name": "2",
17
+ "path": "2_Normalize",
18
+ "type": "sentence_transformers.models.Normalize"
19
+ }
20
+ ]
sentence_bert_config.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "max_seq_length": 1024,
3
+ "do_lower_case": false
4
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:642b05b6b6732f9ef1189d89d58c713112ac377bc857b9633423ced970a111ae
3
+ size 11423968
tokenizer_config.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "backend": "tokenizers",
4
+ "bos_token": null,
5
+ "clean_up_tokenization_spaces": false,
6
+ "eos_token": "<|im_end|>",
7
+ "errors": "replace",
8
+ "is_local": false,
9
+ "model_max_length": 131072,
10
+ "pad_token": "<|endoftext|>",
11
+ "split_special_tokens": false,
12
+ "tokenizer_class": "Qwen2Tokenizer",
13
+ "unk_token": null
14
+ }
trainer_state.json ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "best_global_step": 1600,
3
+ "best_metric": 0.20368987321853638,
4
+ "best_model_checkpoint": "./output/run_20260415_015154_truncate_hard/checkpoint-1600",
5
+ "epoch": 0.1092896174863388,
6
+ "eval_steps": 1600,
7
+ "global_step": 2000,
8
+ "is_hyper_param_search": false,
9
+ "is_local_process_zero": true,
10
+ "is_world_process_zero": true,
11
+ "log_history": [
12
+ {
13
+ "epoch": 0,
14
+ "eval_loss": 1.4169917106628418,
15
+ "eval_runtime": 2162.9853,
16
+ "eval_samples_per_second": 56.998,
17
+ "eval_steps_per_second": 3.563,
18
+ "step": 0
19
+ },
20
+ {
21
+ "epoch": 0.00273224043715847,
22
+ "grad_norm": 38.5,
23
+ "learning_rate": 1.2250000000000001e-06,
24
+ "loss": 2.8207391357421874,
25
+ "step": 50
26
+ },
27
+ {
28
+ "epoch": 0.00546448087431694,
29
+ "grad_norm": 32.0,
30
+ "learning_rate": 2.475e-06,
31
+ "loss": 2.656055908203125,
32
+ "step": 100
33
+ },
34
+ {
35
+ "epoch": 0.00819672131147541,
36
+ "grad_norm": 18.75,
37
+ "learning_rate": 3.7250000000000003e-06,
38
+ "loss": 2.157032318115234,
39
+ "step": 150
40
+ },
41
+ {
42
+ "epoch": 0.01092896174863388,
43
+ "grad_norm": 18.125,
44
+ "learning_rate": 4.975000000000001e-06,
45
+ "loss": 1.8427268981933593,
46
+ "step": 200
47
+ },
48
+ {
49
+ "epoch": 0.01366120218579235,
50
+ "grad_norm": 18.625,
51
+ "learning_rate": 6.225000000000001e-06,
52
+ "loss": 1.6992074584960937,
53
+ "step": 250
54
+ },
55
+ {
56
+ "epoch": 0.01639344262295082,
57
+ "grad_norm": 20.5,
58
+ "learning_rate": 7.475000000000001e-06,
59
+ "loss": 1.5763182067871093,
60
+ "step": 300
61
+ },
62
+ {
63
+ "epoch": 0.01912568306010929,
64
+ "grad_norm": 19.625,
65
+ "learning_rate": 8.725000000000002e-06,
66
+ "loss": 1.5177923583984374,
67
+ "step": 350
68
+ },
69
+ {
70
+ "epoch": 0.02185792349726776,
71
+ "grad_norm": 22.125,
72
+ "learning_rate": 9.975000000000002e-06,
73
+ "loss": 1.461956787109375,
74
+ "step": 400
75
+ },
76
+ {
77
+ "epoch": 0.02459016393442623,
78
+ "grad_norm": 26.125,
79
+ "learning_rate": 1.1225000000000002e-05,
80
+ "loss": 1.3917791748046875,
81
+ "step": 450
82
+ },
83
+ {
84
+ "epoch": 0.0273224043715847,
85
+ "grad_norm": 20.5,
86
+ "learning_rate": 1.2475000000000002e-05,
87
+ "loss": 1.3361837768554687,
88
+ "step": 500
89
+ },
90
+ {
91
+ "epoch": 0.030054644808743168,
92
+ "grad_norm": 20.25,
93
+ "learning_rate": 1.3725000000000002e-05,
94
+ "loss": 1.2610369110107422,
95
+ "step": 550
96
+ },
97
+ {
98
+ "epoch": 0.03278688524590164,
99
+ "grad_norm": 22.125,
100
+ "learning_rate": 1.4975000000000001e-05,
101
+ "loss": 1.2662028503417968,
102
+ "step": 600
103
+ },
104
+ {
105
+ "epoch": 0.03551912568306011,
106
+ "grad_norm": 20.125,
107
+ "learning_rate": 1.6225e-05,
108
+ "loss": 1.1824015808105468,
109
+ "step": 650
110
+ },
111
+ {
112
+ "epoch": 0.03825136612021858,
113
+ "grad_norm": 21.0,
114
+ "learning_rate": 1.7475e-05,
115
+ "loss": 1.1612301635742188,
116
+ "step": 700
117
+ },
118
+ {
119
+ "epoch": 0.040983606557377046,
120
+ "grad_norm": 29.25,
121
+ "learning_rate": 1.8725e-05,
122
+ "loss": 1.1656887817382813,
123
+ "step": 750
124
+ },
125
+ {
126
+ "epoch": 0.04371584699453552,
127
+ "grad_norm": 19.625,
128
+ "learning_rate": 1.9975e-05,
129
+ "loss": 1.1154251098632812,
130
+ "step": 800
131
+ },
132
+ {
133
+ "epoch": 0.04644808743169399,
134
+ "grad_norm": 19.375,
135
+ "learning_rate": 1.9863888888888892e-05,
136
+ "loss": 1.0884272003173827,
137
+ "step": 850
138
+ },
139
+ {
140
+ "epoch": 0.04918032786885246,
141
+ "grad_norm": 18.5,
142
+ "learning_rate": 1.9725000000000002e-05,
143
+ "loss": 1.0506919097900391,
144
+ "step": 900
145
+ },
146
+ {
147
+ "epoch": 0.05191256830601093,
148
+ "grad_norm": 19.0,
149
+ "learning_rate": 1.958611111111111e-05,
150
+ "loss": 1.0255317687988281,
151
+ "step": 950
152
+ },
153
+ {
154
+ "epoch": 0.0546448087431694,
155
+ "grad_norm": 17.75,
156
+ "learning_rate": 1.9447222222222224e-05,
157
+ "loss": 0.9911944580078125,
158
+ "step": 1000
159
+ },
160
+ {
161
+ "epoch": 0.05737704918032787,
162
+ "grad_norm": 17.875,
163
+ "learning_rate": 1.9308333333333336e-05,
164
+ "loss": 0.9508729553222657,
165
+ "step": 1050
166
+ },
167
+ {
168
+ "epoch": 0.060109289617486336,
169
+ "grad_norm": 21.75,
170
+ "learning_rate": 1.9169444444444445e-05,
171
+ "loss": 0.9108209228515625,
172
+ "step": 1100
173
+ },
174
+ {
175
+ "epoch": 0.06284153005464481,
176
+ "grad_norm": 18.625,
177
+ "learning_rate": 1.9030555555555558e-05,
178
+ "loss": 0.9017164611816406,
179
+ "step": 1150
180
+ },
181
+ {
182
+ "epoch": 0.06557377049180328,
183
+ "grad_norm": 18.375,
184
+ "learning_rate": 1.8891666666666667e-05,
185
+ "loss": 0.8805242919921875,
186
+ "step": 1200
187
+ },
188
+ {
189
+ "epoch": 0.06830601092896176,
190
+ "grad_norm": 17.75,
191
+ "learning_rate": 1.875277777777778e-05,
192
+ "loss": 0.8652438354492188,
193
+ "step": 1250
194
+ },
195
+ {
196
+ "epoch": 0.07103825136612021,
197
+ "grad_norm": 24.375,
198
+ "learning_rate": 1.8613888888888893e-05,
199
+ "loss": 0.8438261413574218,
200
+ "step": 1300
201
+ },
202
+ {
203
+ "epoch": 0.07377049180327869,
204
+ "grad_norm": 15.8125,
205
+ "learning_rate": 1.8475000000000002e-05,
206
+ "loss": 0.8248822021484375,
207
+ "step": 1350
208
+ },
209
+ {
210
+ "epoch": 0.07650273224043716,
211
+ "grad_norm": 20.0,
212
+ "learning_rate": 1.833611111111111e-05,
213
+ "loss": 0.8117513275146484,
214
+ "step": 1400
215
+ },
216
+ {
217
+ "epoch": 0.07923497267759563,
218
+ "grad_norm": 17.75,
219
+ "learning_rate": 1.8197222222222224e-05,
220
+ "loss": 0.8413444519042969,
221
+ "step": 1450
222
+ },
223
+ {
224
+ "epoch": 0.08196721311475409,
225
+ "grad_norm": 19.5,
226
+ "learning_rate": 1.8058333333333336e-05,
227
+ "loss": 0.8084825134277344,
228
+ "step": 1500
229
+ },
230
+ {
231
+ "epoch": 0.08469945355191257,
232
+ "grad_norm": 21.125,
233
+ "learning_rate": 1.7919444444444446e-05,
234
+ "loss": 0.7820854949951171,
235
+ "step": 1550
236
+ },
237
+ {
238
+ "epoch": 0.08743169398907104,
239
+ "grad_norm": 17.25,
240
+ "learning_rate": 1.7780555555555555e-05,
241
+ "loss": 0.8028193664550781,
242
+ "step": 1600
243
+ },
244
+ {
245
+ "epoch": 0.08743169398907104,
246
+ "eval_loss": 0.20368987321853638,
247
+ "eval_runtime": 1970.35,
248
+ "eval_samples_per_second": 62.57,
249
+ "eval_steps_per_second": 3.911,
250
+ "step": 1600
251
+ },
252
+ {
253
+ "epoch": 0.09016393442622951,
254
+ "grad_norm": 22.75,
255
+ "learning_rate": 1.7641666666666667e-05,
256
+ "loss": 0.7820030212402344,
257
+ "step": 1650
258
+ },
259
+ {
260
+ "epoch": 0.09289617486338798,
261
+ "grad_norm": 19.125,
262
+ "learning_rate": 1.750277777777778e-05,
263
+ "loss": 0.7595337677001953,
264
+ "step": 1700
265
+ },
266
+ {
267
+ "epoch": 0.09562841530054644,
268
+ "grad_norm": 16.625,
269
+ "learning_rate": 1.7363888888888893e-05,
270
+ "loss": 0.7295108795166015,
271
+ "step": 1750
272
+ },
273
+ {
274
+ "epoch": 0.09836065573770492,
275
+ "grad_norm": 21.75,
276
+ "learning_rate": 1.7225000000000002e-05,
277
+ "loss": 0.7333818054199219,
278
+ "step": 1800
279
+ },
280
+ {
281
+ "epoch": 0.10109289617486339,
282
+ "grad_norm": 20.875,
283
+ "learning_rate": 1.708611111111111e-05,
284
+ "loss": 0.748420181274414,
285
+ "step": 1850
286
+ },
287
+ {
288
+ "epoch": 0.10382513661202186,
289
+ "grad_norm": 21.5,
290
+ "learning_rate": 1.6947222222222224e-05,
291
+ "loss": 0.7308194732666016,
292
+ "step": 1900
293
+ },
294
+ {
295
+ "epoch": 0.10655737704918032,
296
+ "grad_norm": 21.375,
297
+ "learning_rate": 1.6808333333333336e-05,
298
+ "loss": 0.7228285217285156,
299
+ "step": 1950
300
+ },
301
+ {
302
+ "epoch": 0.1092896174863388,
303
+ "grad_norm": 21.125,
304
+ "learning_rate": 1.6669444444444446e-05,
305
+ "loss": 0.7387281036376954,
306
+ "step": 2000
307
+ }
308
+ ],
309
+ "logging_steps": 50,
310
+ "max_steps": 8000,
311
+ "num_input_tokens_seen": 0,
312
+ "num_train_epochs": 1,
313
+ "save_steps": 400,
314
+ "stateful_callbacks": {
315
+ "EarlyStoppingCallback": {
316
+ "args": {
317
+ "early_stopping_patience": 3,
318
+ "early_stopping_threshold": 0.0
319
+ },
320
+ "attributes": {
321
+ "early_stopping_patience_counter": 0
322
+ }
323
+ },
324
+ "TrainerControl": {
325
+ "args": {
326
+ "should_epoch_stop": false,
327
+ "should_evaluate": false,
328
+ "should_log": false,
329
+ "should_save": true,
330
+ "should_training_stop": false
331
+ },
332
+ "attributes": {}
333
+ }
334
+ },
335
+ "total_flos": 0.0,
336
+ "train_batch_size": 64,
337
+ "trial_name": null,
338
+ "trial_params": null
339
+ }