Ill-Ness commited on
Commit
bafa16b
·
verified ·
1 Parent(s): 500a1b6

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -1,35 +1,2 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
  *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz 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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  *.safetensors filter=lfs diff=lfs merge=lfs -text
2
+ Verus-4b-r2/tokenizer.json filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
LICENSE ADDED
@@ -0,0 +1,211 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship made available under
36
+ the License, as indicated by a copyright notice that is included in
37
+ or attached to the work (an example is provided in the Appendix below).
38
+
39
+ "Derivative Works" shall mean any work, whether in Source or Object
40
+ form, that is based on (or derived from) the Work and for which the
41
+ editorial revisions, annotations, elaborations, or other modifications
42
+ represent, as a whole, an original work of authorship. For the purposes
43
+ of this License, Derivative Works shall not include works that remain
44
+ separable from, or merely link (or bind by name) to the interfaces of,
45
+ the Work and Derivative Works thereof.
46
+
47
+ "Contribution" shall mean, as submitted to the Licensor for inclusion
48
+ in the Work by the copyright owner or by an individual or Legal Entity
49
+ authorized to submit on behalf of the copyright owner. For the purposes
50
+ of this definition, "submitted" means any form of electronic, verbal,
51
+ or written communication sent to the Licensor or its representatives,
52
+ including but not limited to communication on electronic mailing lists,
53
+ source code control systems, and issue tracking systems that are managed
54
+ by, or on behalf of, the Licensor for the purpose of discussing and
55
+ improving the Work, but excluding communication that is conspicuously
56
+ marked or otherwise designated in writing by the copyright owner as
57
+ "Not a Contribution."
58
+
59
+ "Contributor" shall mean Licensor and any Legal Entity on behalf of
60
+ whom a Contribution has been received by the Licensor and subsequently
61
+ incorporated within the Work.
62
+
63
+ 2. Grant of Copyright License. Subject to the terms and conditions of
64
+ this License, each Contributor hereby grants to You a perpetual,
65
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
66
+ copyright license to reproduce, prepare Derivative Works of,
67
+ publicly display, publicly perform, sublicense, and distribute the
68
+ Work and such Derivative Works in Source or Object form.
69
+
70
+ 3. Grant of Patent License. Subject to the terms and conditions of
71
+ this License, each Contributor hereby grants to You a perpetual,
72
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
73
+ (except as stated in this section) patent license to make, have made,
74
+ use, offer to sell, sell, import, and otherwise transfer the Work,
75
+ where such license applies only to those patent claims licensable
76
+ by such Contributor that are necessarily infringed by their
77
+ Contribution(s) alone or by combination of their Contribution(s)
78
+ with the Work to which such Contribution(s) was submitted. If You
79
+ institute patent litigation against any entity (including a cross-claim
80
+ or counterclaim in a lawsuit) alleging that the Work or any
81
+ Contribution embodied within the Work constitutes direct or
82
+ contributory patent infringement, then any patent licenses granted to
83
+ You under this License for that Work shall terminate as of the date
84
+ such litigation is filed.
85
+
86
+ 4. Redistribution. You may reproduce and distribute copies of the
87
+ Work or Derivative Works thereof in any medium, with or without
88
+ modifications, and in Source or Object form, provided that You
89
+ meet the following conditions:
90
+
91
+ (a) You must give any other recipients of the Work or
92
+ Derivative Works a copy of this License; and
93
+
94
+ (b) You must cause any modified files to carry prominent notices
95
+ stating that You changed the files; and
96
+
97
+ (c) You must retain, in the Source form of any Derivative Works
98
+ that You distribute, all copyright, patent, trademark, and
99
+ attribution notices from the Source form of the Work,
100
+ excluding those notices that do not pertain to any part of
101
+ the Derivative Works; and
102
+
103
+ (d) If the Work includes a "NOTICE" text file as part of its
104
+ distribution, You must include a readable copy of the
105
+ attribution notices contained within such NOTICE file, in
106
+ at least one of the following places: within a NOTICE text
107
+ file distributed as part of the Derivative Works; within
108
+ the Source form or documentation, if provided along with the
109
+ Derivative Works; or, within a display generated by the
110
+ Derivative Works, if and wherever such third-party notices
111
+ normally appear. The contents of the NOTICE file are for
112
+ informational purposes only and do not modify the License.
113
+ You may add Your own attribution notices within Derivative
114
+ Works that You distribute, alongside or as an addendum to
115
+ the NOTICE text from the Work, provided that such additional
116
+ attribution notices cannot be construed as modifying the License.
117
+
118
+ You may add Your own license statement for Your modifications and
119
+ may provide additional grant of rights to use, copy, modify, merge,
120
+ publish, distribute, sublicense, and/or sell copies of the Work,
121
+ and to permit persons to whom the Work is furnished to do so,
122
+ subject to the following conditions and in addition to any terms
123
+ and conditions the Licensor may impose on such Derivative Works
124
+ and Contributions.
125
+
126
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
127
+ any Contribution intentionally submitted for inclusion in the Work
128
+ by You to the Licensor shall be under the terms and conditions of
129
+ this License, without any additional terms or conditions.
130
+ Notwithstanding the above, nothing herein shall supersede or modify
131
+ the terms of any separate license agreement you may have executed
132
+ with Licensor regarding such Contributions.
133
+
134
+ 6. Trademarks. This License does not grant permission to use the trade
135
+ names, trademarks, service marks, or product names of the Licensor,
136
+ except as required for reasonable and customary use in describing the
137
+ origin of the Work and reproducing the content of the NOTICE file.
138
+
139
+ 7. Disclaimer of Warranty. Unless required by applicable law or
140
+ agreed to in writing, Licensor provides the Work (and each
141
+ Contributor provides its Contributions) on an "AS IS" BASIS,
142
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
143
+ implied, including, without limitation, any warranties or conditions
144
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
145
+ PARTICULAR PURPOSE. You are solely responsible for determining the
146
+ appropriateness of using or reproducing the Work and assume any
147
+ risks associated with Your exercise of permissions under this License.
148
+
149
+ 8. Limitation of Liability. In no event and under no legal theory,
150
+ whether in tort (including negligence), contract, or otherwise,
151
+ unless required by applicable law (such as deliberate and grossly
152
+ negligent acts) or agreed to in writing, shall any Contributor be
153
+ liable to You for damages, including any direct, indirect, special,
154
+ incidental, or exemplary damages of any character arising as a
155
+ result of this License or out of the use or inability to use the
156
+ Work (including but not limited to damages for loss of goodwill,
157
+ work stoppage, computer failure or malfunction, or all other
158
+ commercial damages or losses), even if such Contributor has been
159
+ advised of the possibility of such damages.
160
+
161
+ 9. Accepting Warranty or Additional Liability. While redistributing
162
+ the Work or Derivative Works thereof, You may choose to offer,
163
+ and charge a fee for, acceptance of support, warranty, indemnity,
164
+ or other liability obligations and/or rights consistent with this
165
+ License. However, in accepting such obligations, You may act only
166
+ on Your own behalf and on Your sole responsibility, not on behalf
167
+ of any other Contributor, and only if You agree to indemnify,
168
+ defend, and hold each Contributor harmless for any liability
169
+ incurred by, or claims asserted against, such Contributor by reason
170
+ of your accepting any such warranty or additional liability.
171
+
172
+ END OF TERMS AND CONDITIONS
173
+
174
+ APPENDIX: How to apply the Apache License to your work.
175
+
176
+ To apply the Apache License to your work, attach the following
177
+ boileristic notice, with the fields enclosed by brackets "[]"
178
+ replaced with your own identifying information. (Don't include
179
+ the brackets!) The text should be enclosed in the appropriate
180
+ comment syntax for the file format. Please also include a
181
+ "NOTICE" file with any third-party notices as required by law.
182
+
183
+ Copyright 2025 8F-ai
184
+
185
+ Licensed under the Apache License, Version 2.0 (the "License");
186
+ you may not use this file except in compliance with the License.
187
+ You may obtain a copy of the License at
188
+
189
+ http://www.apache.org/licenses/LICENSE-2.0
190
+
191
+ Unless required by applicable law or agreed to in writing, software
192
+ distributed under the License is distributed on an "AS IS" BASIS,
193
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
194
+ See the License for the specific language governing permissions and
195
+ limitations under the License.
196
+
197
+ ---
198
+
199
+ THIRD-PARTY NOTICES
200
+
201
+ This model is derived from Qwen/Qwen3.5-0.8B, which is also licensed
202
+ under the Apache License, Version 2.0.
203
+
204
+ Copyright 2025 Alibaba Cloud
205
+
206
+ The vision encoder components follow the CLIP architecture introduced by
207
+ OpenAI and are used under its respective open-source license terms.
208
+
209
+ The LLaVA-Next multimodal integration architecture is based on research
210
+ originally published by Haotian Liu et al. and adapted under the
211
+ Apache 2.0 License.
README.md CHANGED
@@ -1,3 +1,14 @@
1
- ---
2
- license: apache-2.0
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Verus-4B
2
+
3
+ This folder is a scaffold for a `Verus-4B` Hugging Face-style repository based on the file layout shown in the screenshot.
4
+
5
+ Included here:
6
+ - shared tokenizer and processor assets copied from the local `Verus-0.8b` folder
7
+ - a `chat_template.jinja` companion file
8
+ - placeholder metadata files for the missing `4B` weights/config
9
+
10
+ Not included yet:
11
+ - `model.safetensors-00001-of-00002.safetensors`
12
+ - `model.safetensors-00002-of-00002.safetensors`
13
+
14
+ Before using this as a real model repo, replace the placeholder `config.json`, `model.safetensors.index.json`, and `video_preprocessor_config.json` with the actual Verus-4B files.
Verus-4b-r2/chat_template.jinja ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- set image_count = namespace(value=0) %}
2
+ {%- set video_count = namespace(value=0) %}
3
+ {%- macro render_content(content, do_vision_count, is_system_content=false) %}
4
+ {%- if content is string %}
5
+ {{- content }}
6
+ {%- elif content is iterable and content is not mapping %}
7
+ {%- for item in content %}
8
+ {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}
9
+ {%- if is_system_content %}
10
+ {{- raise_exception('System message cannot contain images.') }}
11
+ {%- endif %}
12
+ {%- if do_vision_count %}
13
+ {%- set image_count.value = image_count.value + 1 %}
14
+ {%- endif %}
15
+ {%- if add_vision_id %}
16
+ {{- 'Picture ' ~ image_count.value ~ ': ' }}
17
+ {%- endif %}
18
+ {{- '<|vision_start|><|image_pad|><|vision_end|>' }}
19
+ {%- elif 'video' in item or item.type == 'video' %}
20
+ {%- if is_system_content %}
21
+ {{- raise_exception('System message cannot contain videos.') }}
22
+ {%- endif %}
23
+ {%- if do_vision_count %}
24
+ {%- set video_count.value = video_count.value + 1 %}
25
+ {%- endif %}
26
+ {%- if add_vision_id %}
27
+ {{- 'Video ' ~ video_count.value ~ ': ' }}
28
+ {%- endif %}
29
+ {{- '<|vision_start|><|video_pad|><|vision_end|>' }}
30
+ {%- elif 'text' in item %}
31
+ {{- item.text }}
32
+ {%- else %}
33
+ {{- raise_exception('Unexpected item type in content.') }}
34
+ {%- endif %}
35
+ {%- endfor %}
36
+ {%- elif content is none or content is undefined %}
37
+ {{- '' }}
38
+ {%- else %}
39
+ {{- raise_exception('Unexpected content type.') }}
40
+ {%- endif %}
41
+ {%- endmacro %}
42
+ {%- if not messages %}
43
+ {{- raise_exception('No messages provided.') }}
44
+ {%- endif %}
45
+ {%- if tools and tools is iterable and tools is not mapping %}
46
+ {{- '<|im_start|>system\n' }}
47
+ {{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
48
+ {%- for tool in tools %}
49
+ {{- "\n" }}
50
+ {{- tool | tojson }}
51
+ {%- endfor %}
52
+ {{- "\n</tools>" }}
53
+ {{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n<tool_call>\n<function=example_function_name>\n<parameter=example_parameter_1>\nvalue_1\n</parameter>\n<parameter=example_parameter_2>\nThis is the value for the second parameter\nthat can span\nmultiple lines\n</parameter>\n</function>\n</tool_call>\n\n<IMPORTANT>\nReminder:\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n</IMPORTANT>' }}
54
+ {%- if messages[0].role == 'system' %}
55
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
56
+ {%- if content %}
57
+ {{- '\n\n' + content }}
58
+ {%- endif %}
59
+ {%- endif %}
60
+ {{- '<|im_end|>\n' }}
61
+ {%- else %}
62
+ {%- if messages[0].role == 'system' %}
63
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
64
+ {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
65
+ {%- endif %}
66
+ {%- endif %}
67
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
68
+ {%- for message in messages[::-1] %}
69
+ {%- set index = (messages|length - 1) - loop.index0 %}
70
+ {%- if ns.multi_step_tool and message.role == "user" %}
71
+ {%- set content = render_content(message.content, false)|trim %}
72
+ {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}
73
+ {%- set ns.multi_step_tool = false %}
74
+ {%- set ns.last_query_index = index %}
75
+ {%- endif %}
76
+ {%- endif %}
77
+ {%- endfor %}
78
+ {%- if ns.multi_step_tool %}
79
+ {{- raise_exception('No user query found in messages.') }}
80
+ {%- endif %}
81
+ {%- for message in messages %}
82
+ {%- set content = render_content(message.content, true)|trim %}
83
+ {%- if message.role == "system" %}
84
+ {%- if not loop.first %}
85
+ {{- raise_exception('System message must be at the beginning.') }}
86
+ {%- endif %}
87
+ {%- elif message.role == "user" %}
88
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
89
+ {%- elif message.role == "assistant" %}
90
+ {%- set reasoning_content = '' %}
91
+ {%- if message.reasoning_content is string %}
92
+ {%- set reasoning_content = message.reasoning_content %}
93
+ {%- else %}
94
+ {%- if '</think>' in content %}
95
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
96
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
97
+ {%- endif %}
98
+ {%- endif %}
99
+ {%- set reasoning_content = reasoning_content|trim %}
100
+ {%- if loop.index0 > ns.last_query_index %}
101
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content + '\n</think>\n\n' + content }}
102
+ {%- else %}
103
+ {{- '<|im_start|>' + message.role + '\n' + content }}
104
+ {%- endif %}
105
+ {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
106
+ {%- for tool_call in message.tool_calls %}
107
+ {%- if tool_call.function is defined %}
108
+ {%- set tool_call = tool_call.function %}
109
+ {%- endif %}
110
+ {%- if loop.first %}
111
+ {%- if content|trim %}
112
+ {{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
113
+ {%- else %}
114
+ {{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
115
+ {%- endif %}
116
+ {%- else %}
117
+ {{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
118
+ {%- endif %}
119
+ {%- if tool_call.arguments is defined %}
120
+ {%- for args_name, args_value in tool_call.arguments|items %}
121
+ {{- '<parameter=' + args_name + '>\n' }}
122
+ {%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}
123
+ {{- args_value }}
124
+ {{- '\n</parameter>\n' }}
125
+ {%- endfor %}
126
+ {%- endif %}
127
+ {{- '</function>\n</tool_call>' }}
128
+ {%- endfor %}
129
+ {%- endif %}
130
+ {{- '<|im_end|>\n' }}
131
+ {%- elif message.role == "tool" %}
132
+ {%- if loop.previtem and loop.previtem.role != "tool" %}
133
+ {{- '<|im_start|>user' }}
134
+ {%- endif %}
135
+ {{- '\n<tool_response>\n' }}
136
+ {{- content }}
137
+ {{- '\n</tool_response>' }}
138
+ {%- if not loop.last and loop.nextitem.role != "tool" %}
139
+ {{- '<|im_end|>\n' }}
140
+ {%- elif loop.last %}
141
+ {{- '<|im_end|>\n' }}
142
+ {%- endif %}
143
+ {%- else %}
144
+ {{- raise_exception('Unexpected message role.') }}
145
+ {%- endif %}
146
+ {%- endfor %}
147
+ {%- if add_generation_prompt %}
148
+ {{- '<|im_start|>assistant\n' }}
149
+ {%- if enable_thinking is defined and enable_thinking is false %}
150
+ {{- '<think>\n\n</think>\n\n' }}
151
+ {%- else %}
152
+ {{- '<think>\n' }}
153
+ {%- endif %}
154
+ {%- endif %}
Verus-4b-r2/config.json ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "attention_bias": false,
3
+ "attention_dropout": 0.0,
4
+ "attn_output_gate": true,
5
+ "bos_token_id": null,
6
+ "dtype": "bfloat16",
7
+ "eos_token_id": 248044,
8
+ "full_attention_interval": 4,
9
+ "head_dim": 256,
10
+ "hidden_act": "silu",
11
+ "hidden_size": 2560,
12
+ "initializer_range": 0.02,
13
+ "intermediate_size": 9216,
14
+ "layer_types": [
15
+ "linear_attention",
16
+ "linear_attention",
17
+ "linear_attention",
18
+ "full_attention",
19
+ "linear_attention",
20
+ "linear_attention",
21
+ "linear_attention",
22
+ "full_attention",
23
+ "linear_attention",
24
+ "linear_attention",
25
+ "linear_attention",
26
+ "full_attention",
27
+ "linear_attention",
28
+ "linear_attention",
29
+ "linear_attention",
30
+ "full_attention",
31
+ "linear_attention",
32
+ "linear_attention",
33
+ "linear_attention",
34
+ "full_attention",
35
+ "linear_attention",
36
+ "linear_attention",
37
+ "linear_attention",
38
+ "full_attention",
39
+ "linear_attention",
40
+ "linear_attention",
41
+ "linear_attention",
42
+ "full_attention",
43
+ "linear_attention",
44
+ "linear_attention",
45
+ "linear_attention",
46
+ "full_attention"
47
+ ],
48
+ "linear_conv_kernel_dim": 4,
49
+ "linear_key_head_dim": 128,
50
+ "linear_num_key_heads": 16,
51
+ "linear_num_value_heads": 32,
52
+ "linear_value_head_dim": 128,
53
+ "mamba_ssm_dtype": "float32",
54
+ "max_position_embeddings": 262144,
55
+ "mlp_only_layers": [],
56
+ "model_type": "qwen3_5_text",
57
+ "mtp_num_hidden_layers": 1,
58
+ "mtp_use_dedicated_embeddings": false,
59
+ "num_attention_heads": 16,
60
+ "num_hidden_layers": 32,
61
+ "num_key_value_heads": 4,
62
+ "pad_token_id": null,
63
+ "partial_rotary_factor": 0.25,
64
+ "rms_norm_eps": 1e-06,
65
+ "rope_parameters": {
66
+ "mrope_interleaved": true,
67
+ "mrope_section": [
68
+ 11,
69
+ 11,
70
+ 10
71
+ ],
72
+ "partial_rotary_factor": 0.25,
73
+ "rope_theta": 10000000,
74
+ "rope_type": "default"
75
+ },
76
+ "tie_word_embeddings": true,
77
+ "transformers_version": "5.6.0.dev0",
78
+ "use_cache": false,
79
+ "vocab_size": 248320,
80
+ "_name_or_path": "8F-ai/Verus-4B"
81
+ }
Verus-4b-r2/model-00001-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aafde801cfc23ce8be9fda12533ca904d622e48652a354beba94ff7947e44780
3
+ size 4841472984
Verus-4b-r2/model-00002-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ec5104a9c0febba0f704ce55cd29208c7890875712b10341d8e87c63a47c0417
3
+ size 3570079736
Verus-4b-r2/model.safetensors.index.json ADDED
@@ -0,0 +1,443 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "metadata": {
3
+ "format": "pt",
4
+ "model_id": "8F-ai/Verus-4B",
5
+ "base_model": "./Verus-4b",
6
+ "datasets": "UltraChat + CodeFeedback + Magicoder",
7
+ "created_at": "2026-04-05T15:12:45.174183+00:00",
8
+ "train_time": "23.4 min",
9
+ "hardware": "Lightning AI H100 80GB",
10
+ "total_size": 8411552720,
11
+ "num_shards": 2
12
+ },
13
+ "weight_map": {
14
+ "model.embed_tokens.weight": "model-00001-of-00002.safetensors",
15
+ "model.layers.0.linear_attn.dt_bias": "model-00001-of-00002.safetensors",
16
+ "model.layers.0.linear_attn.A_log": "model-00001-of-00002.safetensors",
17
+ "model.layers.0.linear_attn.conv1d.weight": "model-00001-of-00002.safetensors",
18
+ "model.layers.0.linear_attn.norm.weight": "model-00001-of-00002.safetensors",
19
+ "model.layers.0.linear_attn.out_proj.weight": "model-00001-of-00002.safetensors",
20
+ "model.layers.0.linear_attn.in_proj_qkv.weight": "model-00001-of-00002.safetensors",
21
+ "model.layers.0.linear_attn.in_proj_z.weight": "model-00001-of-00002.safetensors",
22
+ "model.layers.0.linear_attn.in_proj_b.weight": "model-00001-of-00002.safetensors",
23
+ "model.layers.0.linear_attn.in_proj_a.weight": "model-00001-of-00002.safetensors",
24
+ "model.layers.0.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
25
+ "model.layers.0.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
26
+ "model.layers.0.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
27
+ "model.layers.0.input_layernorm.weight": "model-00001-of-00002.safetensors",
28
+ "model.layers.0.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
29
+ "model.layers.1.linear_attn.dt_bias": "model-00001-of-00002.safetensors",
30
+ "model.layers.1.linear_attn.A_log": "model-00001-of-00002.safetensors",
31
+ "model.layers.1.linear_attn.conv1d.weight": "model-00001-of-00002.safetensors",
32
+ "model.layers.1.linear_attn.norm.weight": "model-00001-of-00002.safetensors",
33
+ "model.layers.1.linear_attn.out_proj.weight": "model-00001-of-00002.safetensors",
34
+ "model.layers.1.linear_attn.in_proj_qkv.weight": "model-00001-of-00002.safetensors",
35
+ "model.layers.1.linear_attn.in_proj_z.weight": "model-00001-of-00002.safetensors",
36
+ "model.layers.1.linear_attn.in_proj_b.weight": "model-00001-of-00002.safetensors",
37
+ "model.layers.1.linear_attn.in_proj_a.weight": "model-00001-of-00002.safetensors",
38
+ "model.layers.1.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
39
+ "model.layers.1.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
40
+ "model.layers.1.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
41
+ "model.layers.1.input_layernorm.weight": "model-00001-of-00002.safetensors",
42
+ "model.layers.1.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
43
+ "model.layers.2.linear_attn.dt_bias": "model-00001-of-00002.safetensors",
44
+ "model.layers.2.linear_attn.A_log": "model-00001-of-00002.safetensors",
45
+ "model.layers.2.linear_attn.conv1d.weight": "model-00001-of-00002.safetensors",
46
+ "model.layers.2.linear_attn.norm.weight": "model-00001-of-00002.safetensors",
47
+ "model.layers.2.linear_attn.out_proj.weight": "model-00001-of-00002.safetensors",
48
+ "model.layers.2.linear_attn.in_proj_qkv.weight": "model-00001-of-00002.safetensors",
49
+ "model.layers.2.linear_attn.in_proj_z.weight": "model-00001-of-00002.safetensors",
50
+ "model.layers.2.linear_attn.in_proj_b.weight": "model-00001-of-00002.safetensors",
51
+ "model.layers.2.linear_attn.in_proj_a.weight": "model-00001-of-00002.safetensors",
52
+ "model.layers.2.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
53
+ "model.layers.2.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
54
+ "model.layers.2.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
55
+ "model.layers.2.input_layernorm.weight": "model-00001-of-00002.safetensors",
56
+ "model.layers.2.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
57
+ "model.layers.3.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
58
+ "model.layers.3.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
59
+ "model.layers.3.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
60
+ "model.layers.3.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
61
+ "model.layers.3.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
62
+ "model.layers.3.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
63
+ "model.layers.3.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
64
+ "model.layers.3.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
65
+ "model.layers.3.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
66
+ "model.layers.3.input_layernorm.weight": "model-00001-of-00002.safetensors",
67
+ "model.layers.3.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
68
+ "model.layers.4.linear_attn.dt_bias": "model-00001-of-00002.safetensors",
69
+ "model.layers.4.linear_attn.A_log": "model-00001-of-00002.safetensors",
70
+ "model.layers.4.linear_attn.conv1d.weight": "model-00001-of-00002.safetensors",
71
+ "model.layers.4.linear_attn.norm.weight": "model-00001-of-00002.safetensors",
72
+ "model.layers.4.linear_attn.out_proj.weight": "model-00001-of-00002.safetensors",
73
+ "model.layers.4.linear_attn.in_proj_qkv.weight": "model-00001-of-00002.safetensors",
74
+ "model.layers.4.linear_attn.in_proj_z.weight": "model-00001-of-00002.safetensors",
75
+ "model.layers.4.linear_attn.in_proj_b.weight": "model-00001-of-00002.safetensors",
76
+ "model.layers.4.linear_attn.in_proj_a.weight": "model-00001-of-00002.safetensors",
77
+ "model.layers.4.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
78
+ "model.layers.4.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
79
+ "model.layers.4.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
80
+ "model.layers.4.input_layernorm.weight": "model-00001-of-00002.safetensors",
81
+ "model.layers.4.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
82
+ "model.layers.5.linear_attn.dt_bias": "model-00001-of-00002.safetensors",
83
+ "model.layers.5.linear_attn.A_log": "model-00001-of-00002.safetensors",
84
+ "model.layers.5.linear_attn.conv1d.weight": "model-00001-of-00002.safetensors",
85
+ "model.layers.5.linear_attn.norm.weight": "model-00001-of-00002.safetensors",
86
+ "model.layers.5.linear_attn.out_proj.weight": "model-00001-of-00002.safetensors",
87
+ "model.layers.5.linear_attn.in_proj_qkv.weight": "model-00001-of-00002.safetensors",
88
+ "model.layers.5.linear_attn.in_proj_z.weight": "model-00001-of-00002.safetensors",
89
+ "model.layers.5.linear_attn.in_proj_b.weight": "model-00001-of-00002.safetensors",
90
+ "model.layers.5.linear_attn.in_proj_a.weight": "model-00001-of-00002.safetensors",
91
+ "model.layers.5.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
92
+ "model.layers.5.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
93
+ "model.layers.5.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
94
+ "model.layers.5.input_layernorm.weight": "model-00001-of-00002.safetensors",
95
+ "model.layers.5.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
96
+ "model.layers.6.linear_attn.dt_bias": "model-00001-of-00002.safetensors",
97
+ "model.layers.6.linear_attn.A_log": "model-00001-of-00002.safetensors",
98
+ "model.layers.6.linear_attn.conv1d.weight": "model-00001-of-00002.safetensors",
99
+ "model.layers.6.linear_attn.norm.weight": "model-00001-of-00002.safetensors",
100
+ "model.layers.6.linear_attn.out_proj.weight": "model-00001-of-00002.safetensors",
101
+ "model.layers.6.linear_attn.in_proj_qkv.weight": "model-00001-of-00002.safetensors",
102
+ "model.layers.6.linear_attn.in_proj_z.weight": "model-00001-of-00002.safetensors",
103
+ "model.layers.6.linear_attn.in_proj_b.weight": "model-00001-of-00002.safetensors",
104
+ "model.layers.6.linear_attn.in_proj_a.weight": "model-00001-of-00002.safetensors",
105
+ "model.layers.6.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
106
+ "model.layers.6.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
107
+ "model.layers.6.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
108
+ "model.layers.6.input_layernorm.weight": "model-00001-of-00002.safetensors",
109
+ "model.layers.6.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
110
+ "model.layers.7.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
111
+ "model.layers.7.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
112
+ "model.layers.7.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
113
+ "model.layers.7.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
114
+ "model.layers.7.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
115
+ "model.layers.7.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
116
+ "model.layers.7.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
117
+ "model.layers.7.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
118
+ "model.layers.7.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
119
+ "model.layers.7.input_layernorm.weight": "model-00001-of-00002.safetensors",
120
+ "model.layers.7.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
121
+ "model.layers.8.linear_attn.dt_bias": "model-00001-of-00002.safetensors",
122
+ "model.layers.8.linear_attn.A_log": "model-00001-of-00002.safetensors",
123
+ "model.layers.8.linear_attn.conv1d.weight": "model-00001-of-00002.safetensors",
124
+ "model.layers.8.linear_attn.norm.weight": "model-00001-of-00002.safetensors",
125
+ "model.layers.8.linear_attn.out_proj.weight": "model-00001-of-00002.safetensors",
126
+ "model.layers.8.linear_attn.in_proj_qkv.weight": "model-00001-of-00002.safetensors",
127
+ "model.layers.8.linear_attn.in_proj_z.weight": "model-00001-of-00002.safetensors",
128
+ "model.layers.8.linear_attn.in_proj_b.weight": "model-00001-of-00002.safetensors",
129
+ "model.layers.8.linear_attn.in_proj_a.weight": "model-00001-of-00002.safetensors",
130
+ "model.layers.8.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
131
+ "model.layers.8.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
132
+ "model.layers.8.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
133
+ "model.layers.8.input_layernorm.weight": "model-00001-of-00002.safetensors",
134
+ "model.layers.8.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
135
+ "model.layers.9.linear_attn.dt_bias": "model-00001-of-00002.safetensors",
136
+ "model.layers.9.linear_attn.A_log": "model-00001-of-00002.safetensors",
137
+ "model.layers.9.linear_attn.conv1d.weight": "model-00001-of-00002.safetensors",
138
+ "model.layers.9.linear_attn.norm.weight": "model-00001-of-00002.safetensors",
139
+ "model.layers.9.linear_attn.out_proj.weight": "model-00001-of-00002.safetensors",
140
+ "model.layers.9.linear_attn.in_proj_qkv.weight": "model-00001-of-00002.safetensors",
141
+ "model.layers.9.linear_attn.in_proj_z.weight": "model-00001-of-00002.safetensors",
142
+ "model.layers.9.linear_attn.in_proj_b.weight": "model-00001-of-00002.safetensors",
143
+ "model.layers.9.linear_attn.in_proj_a.weight": "model-00001-of-00002.safetensors",
144
+ "model.layers.9.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
145
+ "model.layers.9.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
146
+ "model.layers.9.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
147
+ "model.layers.9.input_layernorm.weight": "model-00001-of-00002.safetensors",
148
+ "model.layers.9.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
149
+ "model.layers.10.linear_attn.dt_bias": "model-00001-of-00002.safetensors",
150
+ "model.layers.10.linear_attn.A_log": "model-00001-of-00002.safetensors",
151
+ "model.layers.10.linear_attn.conv1d.weight": "model-00001-of-00002.safetensors",
152
+ "model.layers.10.linear_attn.norm.weight": "model-00001-of-00002.safetensors",
153
+ "model.layers.10.linear_attn.out_proj.weight": "model-00001-of-00002.safetensors",
154
+ "model.layers.10.linear_attn.in_proj_qkv.weight": "model-00001-of-00002.safetensors",
155
+ "model.layers.10.linear_attn.in_proj_z.weight": "model-00001-of-00002.safetensors",
156
+ "model.layers.10.linear_attn.in_proj_b.weight": "model-00001-of-00002.safetensors",
157
+ "model.layers.10.linear_attn.in_proj_a.weight": "model-00001-of-00002.safetensors",
158
+ "model.layers.10.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
159
+ "model.layers.10.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
160
+ "model.layers.10.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
161
+ "model.layers.10.input_layernorm.weight": "model-00001-of-00002.safetensors",
162
+ "model.layers.10.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
163
+ "model.layers.11.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
164
+ "model.layers.11.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
165
+ "model.layers.11.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
166
+ "model.layers.11.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
167
+ "model.layers.11.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
168
+ "model.layers.11.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
169
+ "model.layers.11.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
170
+ "model.layers.11.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
171
+ "model.layers.11.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
172
+ "model.layers.11.input_layernorm.weight": "model-00001-of-00002.safetensors",
173
+ "model.layers.11.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
174
+ "model.layers.12.linear_attn.dt_bias": "model-00001-of-00002.safetensors",
175
+ "model.layers.12.linear_attn.A_log": "model-00001-of-00002.safetensors",
176
+ "model.layers.12.linear_attn.conv1d.weight": "model-00001-of-00002.safetensors",
177
+ "model.layers.12.linear_attn.norm.weight": "model-00001-of-00002.safetensors",
178
+ "model.layers.12.linear_attn.out_proj.weight": "model-00001-of-00002.safetensors",
179
+ "model.layers.12.linear_attn.in_proj_qkv.weight": "model-00001-of-00002.safetensors",
180
+ "model.layers.12.linear_attn.in_proj_z.weight": "model-00001-of-00002.safetensors",
181
+ "model.layers.12.linear_attn.in_proj_b.weight": "model-00001-of-00002.safetensors",
182
+ "model.layers.12.linear_attn.in_proj_a.weight": "model-00001-of-00002.safetensors",
183
+ "model.layers.12.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
184
+ "model.layers.12.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
185
+ "model.layers.12.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
186
+ "model.layers.12.input_layernorm.weight": "model-00001-of-00002.safetensors",
187
+ "model.layers.12.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
188
+ "model.layers.13.linear_attn.dt_bias": "model-00001-of-00002.safetensors",
189
+ "model.layers.13.linear_attn.A_log": "model-00001-of-00002.safetensors",
190
+ "model.layers.13.linear_attn.conv1d.weight": "model-00001-of-00002.safetensors",
191
+ "model.layers.13.linear_attn.norm.weight": "model-00001-of-00002.safetensors",
192
+ "model.layers.13.linear_attn.out_proj.weight": "model-00001-of-00002.safetensors",
193
+ "model.layers.13.linear_attn.in_proj_qkv.weight": "model-00001-of-00002.safetensors",
194
+ "model.layers.13.linear_attn.in_proj_z.weight": "model-00001-of-00002.safetensors",
195
+ "model.layers.13.linear_attn.in_proj_b.weight": "model-00001-of-00002.safetensors",
196
+ "model.layers.13.linear_attn.in_proj_a.weight": "model-00001-of-00002.safetensors",
197
+ "model.layers.13.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
198
+ "model.layers.13.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
199
+ "model.layers.13.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
200
+ "model.layers.13.input_layernorm.weight": "model-00001-of-00002.safetensors",
201
+ "model.layers.13.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
202
+ "model.layers.14.linear_attn.dt_bias": "model-00001-of-00002.safetensors",
203
+ "model.layers.14.linear_attn.A_log": "model-00001-of-00002.safetensors",
204
+ "model.layers.14.linear_attn.conv1d.weight": "model-00001-of-00002.safetensors",
205
+ "model.layers.14.linear_attn.norm.weight": "model-00001-of-00002.safetensors",
206
+ "model.layers.14.linear_attn.out_proj.weight": "model-00001-of-00002.safetensors",
207
+ "model.layers.14.linear_attn.in_proj_qkv.weight": "model-00001-of-00002.safetensors",
208
+ "model.layers.14.linear_attn.in_proj_z.weight": "model-00001-of-00002.safetensors",
209
+ "model.layers.14.linear_attn.in_proj_b.weight": "model-00001-of-00002.safetensors",
210
+ "model.layers.14.linear_attn.in_proj_a.weight": "model-00001-of-00002.safetensors",
211
+ "model.layers.14.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
212
+ "model.layers.14.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
213
+ "model.layers.14.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
214
+ "model.layers.14.input_layernorm.weight": "model-00001-of-00002.safetensors",
215
+ "model.layers.14.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
216
+ "model.layers.15.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
217
+ "model.layers.15.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
218
+ "model.layers.15.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
219
+ "model.layers.15.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
220
+ "model.layers.15.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
221
+ "model.layers.15.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
222
+ "model.layers.15.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
223
+ "model.layers.15.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
224
+ "model.layers.15.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
225
+ "model.layers.15.input_layernorm.weight": "model-00001-of-00002.safetensors",
226
+ "model.layers.15.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
227
+ "model.layers.16.linear_attn.dt_bias": "model-00001-of-00002.safetensors",
228
+ "model.layers.16.linear_attn.A_log": "model-00002-of-00002.safetensors",
229
+ "model.layers.16.linear_attn.conv1d.weight": "model-00002-of-00002.safetensors",
230
+ "model.layers.16.linear_attn.norm.weight": "model-00002-of-00002.safetensors",
231
+ "model.layers.16.linear_attn.out_proj.weight": "model-00002-of-00002.safetensors",
232
+ "model.layers.16.linear_attn.in_proj_qkv.weight": "model-00002-of-00002.safetensors",
233
+ "model.layers.16.linear_attn.in_proj_z.weight": "model-00002-of-00002.safetensors",
234
+ "model.layers.16.linear_attn.in_proj_b.weight": "model-00002-of-00002.safetensors",
235
+ "model.layers.16.linear_attn.in_proj_a.weight": "model-00002-of-00002.safetensors",
236
+ "model.layers.16.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
237
+ "model.layers.16.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
238
+ "model.layers.16.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
239
+ "model.layers.16.input_layernorm.weight": "model-00002-of-00002.safetensors",
240
+ "model.layers.16.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
241
+ "model.layers.17.linear_attn.dt_bias": "model-00002-of-00002.safetensors",
242
+ "model.layers.17.linear_attn.A_log": "model-00002-of-00002.safetensors",
243
+ "model.layers.17.linear_attn.conv1d.weight": "model-00002-of-00002.safetensors",
244
+ "model.layers.17.linear_attn.norm.weight": "model-00002-of-00002.safetensors",
245
+ "model.layers.17.linear_attn.out_proj.weight": "model-00002-of-00002.safetensors",
246
+ "model.layers.17.linear_attn.in_proj_qkv.weight": "model-00002-of-00002.safetensors",
247
+ "model.layers.17.linear_attn.in_proj_z.weight": "model-00002-of-00002.safetensors",
248
+ "model.layers.17.linear_attn.in_proj_b.weight": "model-00002-of-00002.safetensors",
249
+ "model.layers.17.linear_attn.in_proj_a.weight": "model-00002-of-00002.safetensors",
250
+ "model.layers.17.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
251
+ "model.layers.17.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
252
+ "model.layers.17.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
253
+ "model.layers.17.input_layernorm.weight": "model-00002-of-00002.safetensors",
254
+ "model.layers.17.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
255
+ "model.layers.18.linear_attn.dt_bias": "model-00002-of-00002.safetensors",
256
+ "model.layers.18.linear_attn.A_log": "model-00002-of-00002.safetensors",
257
+ "model.layers.18.linear_attn.conv1d.weight": "model-00002-of-00002.safetensors",
258
+ "model.layers.18.linear_attn.norm.weight": "model-00002-of-00002.safetensors",
259
+ "model.layers.18.linear_attn.out_proj.weight": "model-00002-of-00002.safetensors",
260
+ "model.layers.18.linear_attn.in_proj_qkv.weight": "model-00002-of-00002.safetensors",
261
+ "model.layers.18.linear_attn.in_proj_z.weight": "model-00002-of-00002.safetensors",
262
+ "model.layers.18.linear_attn.in_proj_b.weight": "model-00002-of-00002.safetensors",
263
+ "model.layers.18.linear_attn.in_proj_a.weight": "model-00002-of-00002.safetensors",
264
+ "model.layers.18.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
265
+ "model.layers.18.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
266
+ "model.layers.18.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
267
+ "model.layers.18.input_layernorm.weight": "model-00002-of-00002.safetensors",
268
+ "model.layers.18.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
269
+ "model.layers.19.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
270
+ "model.layers.19.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
271
+ "model.layers.19.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
272
+ "model.layers.19.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
273
+ "model.layers.19.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
274
+ "model.layers.19.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
275
+ "model.layers.19.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
276
+ "model.layers.19.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
277
+ "model.layers.19.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
278
+ "model.layers.19.input_layernorm.weight": "model-00002-of-00002.safetensors",
279
+ "model.layers.19.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
280
+ "model.layers.20.linear_attn.dt_bias": "model-00002-of-00002.safetensors",
281
+ "model.layers.20.linear_attn.A_log": "model-00002-of-00002.safetensors",
282
+ "model.layers.20.linear_attn.conv1d.weight": "model-00002-of-00002.safetensors",
283
+ "model.layers.20.linear_attn.norm.weight": "model-00002-of-00002.safetensors",
284
+ "model.layers.20.linear_attn.out_proj.weight": "model-00002-of-00002.safetensors",
285
+ "model.layers.20.linear_attn.in_proj_qkv.weight": "model-00002-of-00002.safetensors",
286
+ "model.layers.20.linear_attn.in_proj_z.weight": "model-00002-of-00002.safetensors",
287
+ "model.layers.20.linear_attn.in_proj_b.weight": "model-00002-of-00002.safetensors",
288
+ "model.layers.20.linear_attn.in_proj_a.weight": "model-00002-of-00002.safetensors",
289
+ "model.layers.20.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
290
+ "model.layers.20.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
291
+ "model.layers.20.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
292
+ "model.layers.20.input_layernorm.weight": "model-00002-of-00002.safetensors",
293
+ "model.layers.20.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
294
+ "model.layers.21.linear_attn.dt_bias": "model-00002-of-00002.safetensors",
295
+ "model.layers.21.linear_attn.A_log": "model-00002-of-00002.safetensors",
296
+ "model.layers.21.linear_attn.conv1d.weight": "model-00002-of-00002.safetensors",
297
+ "model.layers.21.linear_attn.norm.weight": "model-00002-of-00002.safetensors",
298
+ "model.layers.21.linear_attn.out_proj.weight": "model-00002-of-00002.safetensors",
299
+ "model.layers.21.linear_attn.in_proj_qkv.weight": "model-00002-of-00002.safetensors",
300
+ "model.layers.21.linear_attn.in_proj_z.weight": "model-00002-of-00002.safetensors",
301
+ "model.layers.21.linear_attn.in_proj_b.weight": "model-00002-of-00002.safetensors",
302
+ "model.layers.21.linear_attn.in_proj_a.weight": "model-00002-of-00002.safetensors",
303
+ "model.layers.21.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
304
+ "model.layers.21.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
305
+ "model.layers.21.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
306
+ "model.layers.21.input_layernorm.weight": "model-00002-of-00002.safetensors",
307
+ "model.layers.21.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
308
+ "model.layers.22.linear_attn.dt_bias": "model-00002-of-00002.safetensors",
309
+ "model.layers.22.linear_attn.A_log": "model-00002-of-00002.safetensors",
310
+ "model.layers.22.linear_attn.conv1d.weight": "model-00002-of-00002.safetensors",
311
+ "model.layers.22.linear_attn.norm.weight": "model-00002-of-00002.safetensors",
312
+ "model.layers.22.linear_attn.out_proj.weight": "model-00002-of-00002.safetensors",
313
+ "model.layers.22.linear_attn.in_proj_qkv.weight": "model-00002-of-00002.safetensors",
314
+ "model.layers.22.linear_attn.in_proj_z.weight": "model-00002-of-00002.safetensors",
315
+ "model.layers.22.linear_attn.in_proj_b.weight": "model-00002-of-00002.safetensors",
316
+ "model.layers.22.linear_attn.in_proj_a.weight": "model-00002-of-00002.safetensors",
317
+ "model.layers.22.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
318
+ "model.layers.22.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
319
+ "model.layers.22.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
320
+ "model.layers.22.input_layernorm.weight": "model-00002-of-00002.safetensors",
321
+ "model.layers.22.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
322
+ "model.layers.23.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
323
+ "model.layers.23.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
324
+ "model.layers.23.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
325
+ "model.layers.23.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
326
+ "model.layers.23.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
327
+ "model.layers.23.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
328
+ "model.layers.23.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
329
+ "model.layers.23.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
330
+ "model.layers.23.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
331
+ "model.layers.23.input_layernorm.weight": "model-00002-of-00002.safetensors",
332
+ "model.layers.23.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
333
+ "model.layers.24.linear_attn.dt_bias": "model-00002-of-00002.safetensors",
334
+ "model.layers.24.linear_attn.A_log": "model-00002-of-00002.safetensors",
335
+ "model.layers.24.linear_attn.conv1d.weight": "model-00002-of-00002.safetensors",
336
+ "model.layers.24.linear_attn.norm.weight": "model-00002-of-00002.safetensors",
337
+ "model.layers.24.linear_attn.out_proj.weight": "model-00002-of-00002.safetensors",
338
+ "model.layers.24.linear_attn.in_proj_qkv.weight": "model-00002-of-00002.safetensors",
339
+ "model.layers.24.linear_attn.in_proj_z.weight": "model-00002-of-00002.safetensors",
340
+ "model.layers.24.linear_attn.in_proj_b.weight": "model-00002-of-00002.safetensors",
341
+ "model.layers.24.linear_attn.in_proj_a.weight": "model-00002-of-00002.safetensors",
342
+ "model.layers.24.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
343
+ "model.layers.24.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
344
+ "model.layers.24.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
345
+ "model.layers.24.input_layernorm.weight": "model-00002-of-00002.safetensors",
346
+ "model.layers.24.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
347
+ "model.layers.25.linear_attn.dt_bias": "model-00002-of-00002.safetensors",
348
+ "model.layers.25.linear_attn.A_log": "model-00002-of-00002.safetensors",
349
+ "model.layers.25.linear_attn.conv1d.weight": "model-00002-of-00002.safetensors",
350
+ "model.layers.25.linear_attn.norm.weight": "model-00002-of-00002.safetensors",
351
+ "model.layers.25.linear_attn.out_proj.weight": "model-00002-of-00002.safetensors",
352
+ "model.layers.25.linear_attn.in_proj_qkv.weight": "model-00002-of-00002.safetensors",
353
+ "model.layers.25.linear_attn.in_proj_z.weight": "model-00002-of-00002.safetensors",
354
+ "model.layers.25.linear_attn.in_proj_b.weight": "model-00002-of-00002.safetensors",
355
+ "model.layers.25.linear_attn.in_proj_a.weight": "model-00002-of-00002.safetensors",
356
+ "model.layers.25.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
357
+ "model.layers.25.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
358
+ "model.layers.25.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
359
+ "model.layers.25.input_layernorm.weight": "model-00002-of-00002.safetensors",
360
+ "model.layers.25.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
361
+ "model.layers.26.linear_attn.dt_bias": "model-00002-of-00002.safetensors",
362
+ "model.layers.26.linear_attn.A_log": "model-00002-of-00002.safetensors",
363
+ "model.layers.26.linear_attn.conv1d.weight": "model-00002-of-00002.safetensors",
364
+ "model.layers.26.linear_attn.norm.weight": "model-00002-of-00002.safetensors",
365
+ "model.layers.26.linear_attn.out_proj.weight": "model-00002-of-00002.safetensors",
366
+ "model.layers.26.linear_attn.in_proj_qkv.weight": "model-00002-of-00002.safetensors",
367
+ "model.layers.26.linear_attn.in_proj_z.weight": "model-00002-of-00002.safetensors",
368
+ "model.layers.26.linear_attn.in_proj_b.weight": "model-00002-of-00002.safetensors",
369
+ "model.layers.26.linear_attn.in_proj_a.weight": "model-00002-of-00002.safetensors",
370
+ "model.layers.26.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
371
+ "model.layers.26.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
372
+ "model.layers.26.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
373
+ "model.layers.26.input_layernorm.weight": "model-00002-of-00002.safetensors",
374
+ "model.layers.26.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
375
+ "model.layers.27.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
376
+ "model.layers.27.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
377
+ "model.layers.27.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
378
+ "model.layers.27.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
379
+ "model.layers.27.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
380
+ "model.layers.27.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
381
+ "model.layers.27.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
382
+ "model.layers.27.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
383
+ "model.layers.27.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
384
+ "model.layers.27.input_layernorm.weight": "model-00002-of-00002.safetensors",
385
+ "model.layers.27.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
386
+ "model.layers.28.linear_attn.dt_bias": "model-00002-of-00002.safetensors",
387
+ "model.layers.28.linear_attn.A_log": "model-00002-of-00002.safetensors",
388
+ "model.layers.28.linear_attn.conv1d.weight": "model-00002-of-00002.safetensors",
389
+ "model.layers.28.linear_attn.norm.weight": "model-00002-of-00002.safetensors",
390
+ "model.layers.28.linear_attn.out_proj.weight": "model-00002-of-00002.safetensors",
391
+ "model.layers.28.linear_attn.in_proj_qkv.weight": "model-00002-of-00002.safetensors",
392
+ "model.layers.28.linear_attn.in_proj_z.weight": "model-00002-of-00002.safetensors",
393
+ "model.layers.28.linear_attn.in_proj_b.weight": "model-00002-of-00002.safetensors",
394
+ "model.layers.28.linear_attn.in_proj_a.weight": "model-00002-of-00002.safetensors",
395
+ "model.layers.28.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
396
+ "model.layers.28.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
397
+ "model.layers.28.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
398
+ "model.layers.28.input_layernorm.weight": "model-00002-of-00002.safetensors",
399
+ "model.layers.28.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
400
+ "model.layers.29.linear_attn.dt_bias": "model-00002-of-00002.safetensors",
401
+ "model.layers.29.linear_attn.A_log": "model-00002-of-00002.safetensors",
402
+ "model.layers.29.linear_attn.conv1d.weight": "model-00002-of-00002.safetensors",
403
+ "model.layers.29.linear_attn.norm.weight": "model-00002-of-00002.safetensors",
404
+ "model.layers.29.linear_attn.out_proj.weight": "model-00002-of-00002.safetensors",
405
+ "model.layers.29.linear_attn.in_proj_qkv.weight": "model-00002-of-00002.safetensors",
406
+ "model.layers.29.linear_attn.in_proj_z.weight": "model-00002-of-00002.safetensors",
407
+ "model.layers.29.linear_attn.in_proj_b.weight": "model-00002-of-00002.safetensors",
408
+ "model.layers.29.linear_attn.in_proj_a.weight": "model-00002-of-00002.safetensors",
409
+ "model.layers.29.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
410
+ "model.layers.29.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
411
+ "model.layers.29.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
412
+ "model.layers.29.input_layernorm.weight": "model-00002-of-00002.safetensors",
413
+ "model.layers.29.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
414
+ "model.layers.30.linear_attn.dt_bias": "model-00002-of-00002.safetensors",
415
+ "model.layers.30.linear_attn.A_log": "model-00002-of-00002.safetensors",
416
+ "model.layers.30.linear_attn.conv1d.weight": "model-00002-of-00002.safetensors",
417
+ "model.layers.30.linear_attn.norm.weight": "model-00002-of-00002.safetensors",
418
+ "model.layers.30.linear_attn.out_proj.weight": "model-00002-of-00002.safetensors",
419
+ "model.layers.30.linear_attn.in_proj_qkv.weight": "model-00002-of-00002.safetensors",
420
+ "model.layers.30.linear_attn.in_proj_z.weight": "model-00002-of-00002.safetensors",
421
+ "model.layers.30.linear_attn.in_proj_b.weight": "model-00002-of-00002.safetensors",
422
+ "model.layers.30.linear_attn.in_proj_a.weight": "model-00002-of-00002.safetensors",
423
+ "model.layers.30.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
424
+ "model.layers.30.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
425
+ "model.layers.30.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
426
+ "model.layers.30.input_layernorm.weight": "model-00002-of-00002.safetensors",
427
+ "model.layers.30.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
428
+ "model.layers.31.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
429
+ "model.layers.31.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
430
+ "model.layers.31.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
431
+ "model.layers.31.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
432
+ "model.layers.31.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
433
+ "model.layers.31.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
434
+ "model.layers.31.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
435
+ "model.layers.31.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
436
+ "model.layers.31.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
437
+ "model.layers.31.input_layernorm.weight": "model-00002-of-00002.safetensors",
438
+ "model.layers.31.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
439
+ "model.norm.weight": "model-00002-of-00002.safetensors",
440
+ "model.rotary_emb.inv_freq": "model-00002-of-00002.safetensors",
441
+ "model.rotary_emb.original_inv_freq": "model-00002-of-00002.safetensors"
442
+ }
443
+ }
Verus-4b-r2/tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2dc51b3d1df32a61c278f91ef1f2adcdec3b75aff536bb29d9886249e354a311
3
+ size 19989621
Verus-4b-r2/tokenizer_config.json ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "audio_bos_token": "<|audio_start|>",
4
+ "audio_eos_token": "<|audio_end|>",
5
+ "audio_token": "<|audio_pad|>",
6
+ "backend": "tokenizers",
7
+ "bos_token": null,
8
+ "clean_up_tokenization_spaces": false,
9
+ "eos_token": "<|endoftext|>",
10
+ "errors": "replace",
11
+ "image_token": "<|image_pad|>",
12
+ "is_local": true,
13
+ "max_length": 512,
14
+ "model_max_length": 262144,
15
+ "model_specific_special_tokens": {
16
+ "audio_bos_token": "<|audio_start|>",
17
+ "audio_eos_token": "<|audio_end|>",
18
+ "audio_token": "<|audio_pad|>",
19
+ "image_token": "<|image_pad|>",
20
+ "video_token": "<|video_pad|>",
21
+ "vision_bos_token": "<|vision_start|>",
22
+ "vision_eos_token": "<|vision_end|>"
23
+ },
24
+ "pad_to_multiple_of": null,
25
+ "pad_token": "<|endoftext|>",
26
+ "pad_token_type_id": 0,
27
+ "padding_side": "right",
28
+ "pretokenize_regex": "(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?[\\p{L}\\p{M}]+|\\p{N}| ?[^\\s\\p{L}\\p{M}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+",
29
+ "split_special_tokens": false,
30
+ "stride": 0,
31
+ "tokenizer_class": "TokenizersBackend",
32
+ "truncation_side": "right",
33
+ "truncation_strategy": "longest_first",
34
+ "unk_token": null,
35
+ "video_token": "<|video_pad|>",
36
+ "vision_bos_token": "<|vision_start|>",
37
+ "vision_eos_token": "<|vision_end|>"
38
+ }
chat_template.jinja ADDED
@@ -0,0 +1 @@
 
 
1
+ {%- if messages[0]['role'] == 'system' %}{%- set system_message = messages[0]['content'] %}{%- set loop_messages = messages[1:] %}{%- else %}{%- set system_message = 'You are Verus, a helpful multimodal coding assistant. You specialize in converting UI mockups, wireframes, and architecture diagrams into production-ready code.' %}{%- set loop_messages = messages %}{%- endif %}{{- '<|im_start|>system\n' + system_message + '<|im_end|>\n' }}{%- for message in loop_messages %}{%- if message['role'] == 'user' %}{{- '<|im_start|>user\n' }}{%- if message['content'] is iterable and message['content'] is not string %}{%- for item in message['content'] %}{%- if item['type'] == 'image' %}{{- '<|vision_start|><|image_pad|><|vision_end|>' }}{%- elif item['type'] == 'text' %}{{- item['text'] }}{%- endif %}{%- endfor %}{%- else %}{{- message['content'] }}{%- endif %}{{- '<|im_end|>\n' }}{%- elif message['role'] == 'assistant' %}{{- '<|im_start|>assistant\n' }}{%- if message['content'] is not none %}{{- message['content'] }}{%- endif %}{%- if not loop.last or not add_generation_prompt %}{{- '<|im_end|>\n' }}{%- endif %}{%- endif %}{%- endfor %}{%- if add_generation_prompt %}{{- '<|im_start|>assistant\n' }}{%- endif %}
config.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_name_or_path": "8F-ai/Verus-4B",
3
+ "model_type": "llava_next",
4
+ "torch_dtype": "bfloat16",
5
+ "transformers_version": "4.52.0",
6
+ "architectures": [
7
+ "LlavaNextForConditionalGeneration"
8
+ ],
9
+ "note": "Placeholder scaffold created from the local Verus-0.8b repository. Replace this file with the actual Verus-4B config before loading the model."
10
+ }
merges.txt ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ e r
2
+ i n
3
+ r e
4
+ o n
5
+ a n
6
+ s e
7
+ a t
8
+ e n
9
+ a r
10
+ t i
11
+ a l
12
+ t e
13
+ i c
14
+ i s
15
+ i t
16
+ s t
17
+ e s
18
+ e d
19
+ f i
20
+ f o
21
+ c o
22
+ c l
23
+ t r
24
+ l i
25
+ l o
26
+ t h
27
+ n d
28
+ n t
29
+ r i
30
+ r o
31
+ l a
32
+ m e
33
+ p a
34
+ n c
35
+ p e
36
+ e x
37
+ u n
38
+ n g
39
+ p o
40
+ a c
41
+ m o
42
+ s i
43
+ Ġ Ġ
44
+ Ġ t
45
+ Ġ a
46
+ Ġ i
47
+ Ġ s
48
+ Ġ r
49
+ Ġ f
50
+ Ġ c
51
+ Ġ d
52
+ Ġ p
53
+ Ġ m
54
+ Ġ w
55
+ Ġ n
56
+ Ġ b
57
+ Ġ e
58
+ Ġ l
59
+ Ġ g
60
+ Ġ h
61
+ Ġ o
62
+ Ġ v
63
+ Ġ u
64
+ Ġ y
65
+ e r r
66
+ i ng
67
+ t ion
68
+ m ent
69
+ b le
70
+ d e
71
+ de f
72
+ Ġd ef
73
+ Ġde f
74
+ c la
75
+ cla s
76
+ clas s
77
+ Ġc lass
78
+ i m
79
+ im p
80
+ imp o
81
+ impo r
82
+ impor t
83
+ Ġi mport
84
+ r et
85
+ ret u
86
+ retu r
87
+ retur n
88
+ Ġr eturn
89
+ s el
90
+ sel f
91
+ Ġs elf
92
+ a s
93
+ as y
94
+ asy nc
95
+ Ġa sync
96
+ a w
97
+ aw a
98
+ awa i
99
+ awai t
100
+ Ġa wait
101
+ f un
102
+ fun c
103
+ func t
104
+ funct i
105
+ functi on
106
+ Ġf unction
107
+ c on
108
+ con s
109
+ cons t
110
+ Ġc onst
111
+ l et
112
+ Ġl et
113
+ e x
114
+ ex p
115
+ exp o
116
+ expo r
117
+ expor t
118
+ Ġe xport
119
+ = =
120
+ ! =
121
+ < =
122
+ > =
123
+ = >
124
+ - >
125
+ : :
126
+ * *
127
+ / /
128
+ & &
129
+ | |
130
+ ? ?
131
+ . .
132
+ . ..
133
+ T r
134
+ Tr u
135
+ Tru e
136
+ ĠT rue
137
+ F al
138
+ Fal s
139
+ Fals e
140
+ ĠF alse
141
+ N on
142
+ Non e
143
+ ĠN one
144
+ n ul
145
+ nul l
146
+ Ġn ull
147
+ ĠĠ ĠĠ
148
+ Ċ Ġ
149
+ ĊĠ Ġ
150
+ ĊĠĠ ĠĠ
151
+ f n
152
+ Ġf n
153
+ p ub
154
+ Ġp ub
155
+ i mp
156
+ imp l
157
+ Ġi mpl
158
+ s tr
159
+ str u
160
+ stru c
161
+ struc t
162
+ Ġs truct
163
+ m at
164
+ mat ch
165
+ Ġm atch
166
+ t rait
167
+ Ġt rait
168
+ ĠĠĠĠ ĠĠĠĠ
model.safetensors.index.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "metadata": {
3
+ "total_size": 0,
4
+ "note": "Placeholder index. Add the Verus-4B .safetensors shards later."
5
+ },
6
+ "weight_map": {}
7
+ }
preprocessor_config.json ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auto_map": {
3
+ "AutoImageProcessor": "Qwen2VLImageProcessor",
4
+ "AutoProcessor": "Qwen2_5_VLProcessor"
5
+ },
6
+ "do_normalize": true,
7
+ "do_rescale": true,
8
+ "do_resize": true,
9
+ "image_mean": [
10
+ 0.48145466,
11
+ 0.4578275,
12
+ 0.40821073
13
+ ],
14
+ "image_std": [
15
+ 0.26862954,
16
+ 0.26130258,
17
+ 0.27577711
18
+ ],
19
+ "image_processor_type": "Qwen2VLImageProcessor",
20
+ "max_pixels": 1003520,
21
+ "merge_size": 2,
22
+ "min_pixels": 3136,
23
+ "patch_size": 14,
24
+ "processor_class": "Qwen2_5_VLProcessor",
25
+ "resample": 3,
26
+ "rescale_factor": 0.00392156862745098,
27
+ "size": {
28
+ "max_pixels": 1003520,
29
+ "min_pixels": 3136
30
+ },
31
+ "temporal_patch_size": 2
32
+ }
tokenizer.json ADDED
@@ -0,0 +1,992 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "version": "1.0",
3
+ "truncation": null,
4
+ "padding": null,
5
+
6
+ "added_tokens": [
7
+ {
8
+ "id": 0,
9
+ "content": "<unk>",
10
+ "single_word": false,
11
+ "lstrip": false,
12
+ "rstrip": false,
13
+ "normalized": false,
14
+ "special": true
15
+ },
16
+ {
17
+ "id": 1,
18
+ "content": "<s>",
19
+ "single_word": false,
20
+ "lstrip": false,
21
+ "rstrip": false,
22
+ "normalized": false,
23
+ "special": true
24
+ },
25
+ {
26
+ "id": 2,
27
+ "content": "</s>",
28
+ "single_word": false,
29
+ "lstrip": false,
30
+ "rstrip": false,
31
+ "normalized": false,
32
+ "special": true
33
+ },
34
+ {
35
+ "id": 3,
36
+ "content": "<pad>",
37
+ "single_word": false,
38
+ "lstrip": false,
39
+ "rstrip": false,
40
+ "normalized": false,
41
+ "special": true
42
+ },
43
+ {
44
+ "id": 4,
45
+ "content": "<mask>",
46
+ "single_word": false,
47
+ "lstrip": false,
48
+ "rstrip": false,
49
+ "normalized": false,
50
+ "special": true
51
+ },
52
+ {
53
+ "id": 32000,
54
+ "content": "<|image|>",
55
+ "single_word": false,
56
+ "lstrip": false,
57
+ "rstrip": false,
58
+ "normalized": false,
59
+ "special": true
60
+ },
61
+ {
62
+ "id": 32001,
63
+ "content": "<|im_start|>",
64
+ "single_word": false,
65
+ "lstrip": false,
66
+ "rstrip": false,
67
+ "normalized": false,
68
+ "special": true
69
+ },
70
+ {
71
+ "id": 32002,
72
+ "content": "<|im_end|>",
73
+ "single_word": false,
74
+ "lstrip": false,
75
+ "rstrip": false,
76
+ "normalized": false,
77
+ "special": true
78
+ },
79
+ {
80
+ "id": 32003,
81
+ "content": "<|vision_start|>",
82
+ "single_word": false,
83
+ "lstrip": false,
84
+ "rstrip": false,
85
+ "normalized": false,
86
+ "special": true
87
+ },
88
+ {
89
+ "id": 32004,
90
+ "content": "<|vision_end|>",
91
+ "single_word": false,
92
+ "lstrip": false,
93
+ "rstrip": false,
94
+ "normalized": false,
95
+ "special": true
96
+ },
97
+ {
98
+ "id": 32005,
99
+ "content": "<|image_pad|>",
100
+ "single_word": false,
101
+ "lstrip": false,
102
+ "rstrip": false,
103
+ "normalized": false,
104
+ "special": true
105
+ },
106
+ {
107
+ "id": 32006,
108
+ "content": "<|fim_prefix|>",
109
+ "single_word": false,
110
+ "lstrip": false,
111
+ "rstrip": false,
112
+ "normalized": false,
113
+ "special": true
114
+ },
115
+ {
116
+ "id": 32007,
117
+ "content": "<|fim_middle|>",
118
+ "single_word": false,
119
+ "lstrip": false,
120
+ "rstrip": false,
121
+ "normalized": false,
122
+ "special": true
123
+ },
124
+ {
125
+ "id": 32008,
126
+ "content": "<|fim_suffix|>",
127
+ "single_word": false,
128
+ "lstrip": false,
129
+ "rstrip": false,
130
+ "normalized": false,
131
+ "special": true
132
+ },
133
+ {
134
+ "id": 32009,
135
+ "content": "<|fim_pad|>",
136
+ "single_word": false,
137
+ "lstrip": false,
138
+ "rstrip": false,
139
+ "normalized": false,
140
+ "special": true
141
+ },
142
+ {
143
+ "id": 32010,
144
+ "content": "<|endoftext|>",
145
+ "single_word": false,
146
+ "lstrip": false,
147
+ "rstrip": false,
148
+ "normalized": false,
149
+ "special": true
150
+ }
151
+ ],
152
+
153
+ "normalizer": {
154
+ "type": "NFC"
155
+ },
156
+
157
+ "pre_tokenizer": {
158
+ "type": "ByteLevel",
159
+ "add_prefix_space": false,
160
+ "trim_offsets": true,
161
+ "use_regex": true
162
+ },
163
+
164
+ "post_processor": {
165
+ "type": "TemplateProcessing",
166
+ "single": [
167
+ { "SpecialToken": { "id": "<s>", "type_id": 0 } },
168
+ { "Sequence": { "id": "A", "type_id": 0 } }
169
+ ],
170
+ "pair": [
171
+ { "SpecialToken": { "id": "<s>", "type_id": 0 } },
172
+ { "Sequence": { "id": "A", "type_id": 0 } },
173
+ { "Sequence": { "id": "B", "type_id": 0 } }
174
+ ],
175
+ "special_tokens": {
176
+ "<s>": { "id": "<s>", "ids": [1], "tokens": ["<s>"] }
177
+ }
178
+ },
179
+
180
+ "decoder": {
181
+ "type": "ByteLevel",
182
+ "add_prefix_space": false,
183
+ "trim_offsets": true,
184
+ "use_regex": true
185
+ },
186
+
187
+ "model": {
188
+ "type": "BPE",
189
+ "dropout": null,
190
+ "unk_token": "<unk>",
191
+ "continuing_subword_prefix": null,
192
+ "end_of_word_suffix": null,
193
+ "fuse_unk": false,
194
+ "byte_fallback": false,
195
+
196
+ "vocab": {
197
+ "<unk>": 0,
198
+ "<s>": 1,
199
+ "</s>": 2,
200
+ "<pad>": 3,
201
+ "<mask>": 4,
202
+
203
+ "!": 5, "\"": 6, "#": 7, "$": 8, "%": 9,
204
+ "&": 10, "'": 11, "(": 12, ")": 13, "*": 14,
205
+ "+": 15, ",": 16, "-": 17, ".": 18, "/": 19,
206
+ "0": 20, "1": 21, "2": 22, "3": 23, "4": 24,
207
+ "5": 25, "6": 26, "7": 27, "8": 28, "9": 29,
208
+ ":": 30, ";": 31, "<": 32, "=": 33, ">": 34,
209
+ "?": 35, "@": 36,
210
+ "A": 37, "B": 38, "C": 39, "D": 40, "E": 41,
211
+ "F": 42, "G": 43, "H": 44, "I": 45, "J": 46,
212
+ "K": 47, "L": 48, "M": 49, "N": 50, "O": 51,
213
+ "P": 52, "Q": 53, "R": 54, "S": 55, "T": 56,
214
+ "U": 57, "V": 58, "W": 59, "X": 60, "Y": 61,
215
+ "Z": 62,
216
+ "[": 63, "\\": 64, "]": 65, "^": 66, "_": 67,
217
+ "`": 68,
218
+ "a": 69, "b": 70, "c": 71, "d": 72, "e": 73,
219
+ "f": 74, "g": 75, "h": 76, "i": 77, "j": 78,
220
+ "k": 79, "l": 80, "m": 81, "n": 82, "o": 83,
221
+ "p": 84, "q": 85, "r": 86, "s": 87, "t": 88,
222
+ "u": 89, "v": 90, "w": 91, "x": 92, "y": 93,
223
+ "z": 94,
224
+ "{": 95, "|": 96, "}": 97, "~": 98,
225
+
226
+ "\u0120": 99,
227
+ "\u010a": 100,
228
+ "\u0109": 101,
229
+ "\u0100": 102,
230
+ "\u0101": 103,
231
+ "\u0102": 104,
232
+ "\u0103": 105,
233
+ "\u0104": 106,
234
+ "\u0105": 107,
235
+ "\u0106": 108,
236
+ "\u0107": 109,
237
+ "\u0108": 110,
238
+ "\u010b": 111,
239
+ "\u010c": 112,
240
+
241
+ "in": 200, "er": 201, "re": 202, "de": 203, "on": 204,
242
+ "an": 205, "se": 206, "at": 207, "en": 208, "or": 209,
243
+ "ar": 210, "ti": 211, "al": 212, "te": 213, "ic": 214,
244
+ "is": 215, "it": 216, "st": 217, "es": 218, "ed": 219,
245
+ "fi": 220, "fo": 221, "fu": 222, "pr": 223, "co": 224,
246
+ "cl": 225, "ch": 226, "tr": 227, "sp": 228, "li": 229,
247
+ "lo": 230, "th": 231, "nd": 232, "nt": 233, "le": 234,
248
+ "ri": 235, "ro": 236, "la": 237, "me": 238, "pa": 239,
249
+ "ma": 240, "nc": 241, "pe": 242, "ex": 243, "un": 244,
250
+ "ng": 245, "po": 246, "ac": 247, "mo": 248, "si": 249,
251
+
252
+ "ing": 250, "tion": 251, "ment": 252, "ble": 253, "ent": 254,
253
+ "pre": 255, "pro": 256, "con": 257, "com": 258, "str": 259,
254
+ "int": 260, "len": 261, "num": 262, "for": 263, "not": 264,
255
+ "get": 265, "set": 266, "add": 267, "new": 268, "key": 269,
256
+ "val": 270, "res": 271, "req": 272, "err": 273, "msg": 274,
257
+ "arg": 275, "var": 276, "ref": 277, "out": 278, "run": 279,
258
+ "log": 280, "buf": 281, "ctx": 282, "cfg": 283, "app": 284,
259
+ "api": 285, "url": 286, "src": 287, "dst": 288, "tmp": 289,
260
+ "idx": 290, "ptr": 291, "map": 292, "arr": 293, "obj": 294,
261
+ "cls": 295, "use": 296, "mod": 297, "pkg": 298, "lib": 299,
262
+
263
+ "def": 300,
264
+ "class": 301,
265
+ "import": 302,
266
+ "from": 303,
267
+ "return": 304,
268
+ "if": 305,
269
+ "else": 306,
270
+ "elif": 307,
271
+ "while": 308,
272
+ "try": 309,
273
+ "except": 310,
274
+ "with": 311,
275
+ "as": 312,
276
+ "lambda": 313,
277
+ "yield": 314,
278
+ "async": 315,
279
+ "await": 316,
280
+ "pass": 317,
281
+ "break": 318,
282
+ "continue": 319,
283
+ "raise": 320,
284
+ "True": 321,
285
+ "False": 322,
286
+ "None": 323,
287
+ "and": 324,
288
+ "global": 325,
289
+ "nonlocal": 326,
290
+ "assert": 327,
291
+ "del": 328,
292
+ "self": 329,
293
+ "super": 330,
294
+ "object": 331,
295
+ "print": 332,
296
+ "range": 333,
297
+ "list": 334,
298
+ "dict": 335,
299
+ "tuple": 336,
300
+ "bool": 337,
301
+ "float": 338,
302
+ "bytes": 339,
303
+ "open": 340,
304
+ "type": 341,
305
+ "isinstance": 342,
306
+ "hasattr": 343,
307
+ "getattr": 344,
308
+ "setattr": 345,
309
+ "property": 346,
310
+ "staticmethod": 347,
311
+ "classmethod": 348,
312
+ "abstractmethod": 349,
313
+
314
+ "function": 350,
315
+ "const": 351,
316
+ "let": 352,
317
+ "export": 353,
318
+ "default": 354,
319
+ "extends": 355,
320
+ "interface": 356,
321
+ "typeof": 357,
322
+ "instanceof": 358,
323
+ "undefined": 359,
324
+ "null": 360,
325
+ "switch": 361,
326
+ "case": 362,
327
+ "throw": 363,
328
+ "catch": 364,
329
+ "finally": 365,
330
+ "this": 366,
331
+ "void": 367,
332
+ "delete": 368,
333
+ "enum": 369,
334
+ "implements": 370,
335
+ "abstract": 371,
336
+ "readonly": 372,
337
+ "namespace": 373,
338
+ "declare": 374,
339
+ "keyof": 375,
340
+ "infer": 376,
341
+ "never": 377,
342
+ "unknown": 378,
343
+ "Promise": 379,
344
+ "Array": 380,
345
+ "Record": 381,
346
+ "Partial": 382,
347
+ "Required": 383,
348
+ "Omit": 384,
349
+ "Pick": 385,
350
+ "Exclude": 386,
351
+ "Extract": 387,
352
+ "NonNullable": 388,
353
+ "ReturnType": 389,
354
+ "Parameters": 390,
355
+ "InstanceType": 391,
356
+ "constructor": 392,
357
+ "prototype": 393,
358
+ "Symbol": 394,
359
+ "BigInt": 395,
360
+ "Map": 396,
361
+ "Set": 397,
362
+ "WeakMap": 398,
363
+ "WeakSet": 399,
364
+
365
+ "fn": 400,
366
+ "mut": 401,
367
+ "pub": 402,
368
+ "impl": 403,
369
+ "trait": 404,
370
+ "struct": 405,
371
+ "match": 406,
372
+ "where": 407,
373
+ "crate": 408,
374
+ "move": 409,
375
+ "Box": 410,
376
+ "Vec": 411,
377
+ "Option": 412,
378
+ "Result": 413,
379
+ "Ok": 414,
380
+ "Err": 415,
381
+ "Some": 416,
382
+ "func": 417,
383
+ "chan": 418,
384
+ "go": 419,
385
+ "defer": 420,
386
+ "select": 421,
387
+ "make": 422,
388
+ "append": 423,
389
+ "copy": 424,
390
+ "panic": 425,
391
+ "recover": 426,
392
+ "goroutine": 427,
393
+
394
+ "==": 430,
395
+ "!=": 431,
396
+ "<=": 432,
397
+ ">=": 433,
398
+ "=>": 434,
399
+ "->": 435,
400
+ "::": 436,
401
+ "**": 437,
402
+ "//": 438,
403
+ "&&": 439,
404
+ "||": 440,
405
+ "??": 441,
406
+ "?.": 442,
407
+ ":=": 443,
408
+ "+=": 444,
409
+ "-=": 445,
410
+ "*=": 446,
411
+ "/=": 447,
412
+ "%=": 448,
413
+ "**=": 449,
414
+ "//=": 450,
415
+ "&=": 451,
416
+ "|=": 452,
417
+ "^=": 453,
418
+ "<<": 454,
419
+ ">>": 455,
420
+ "<<=": 456,
421
+ ">>=": 457,
422
+ "...": 458,
423
+ "..": 459,
424
+ "/*": 460,
425
+ "*/": 461,
426
+ "/**": 462,
427
+ "///": 463,
428
+ "<!--": 464,
429
+ "-->": 465,
430
+ "${": 466,
431
+ "#{": 467,
432
+
433
+ "<div": 470,
434
+ "</div>": 471,
435
+ "<span": 472,
436
+ "</span>": 473,
437
+ "<p": 474,
438
+ "</p>": 475,
439
+ "<img": 476,
440
+ "<input": 477,
441
+ "<button": 478,
442
+ "<form": 479,
443
+ "<ul": 480,
444
+ "<li": 481,
445
+ "<h1": 482,
446
+ "<h2": 483,
447
+ "<h3": 484,
448
+ "<script": 485,
449
+ "<style": 486,
450
+ "<link": 487,
451
+ "<meta": 488,
452
+ "className": 489,
453
+ "onClick": 490,
454
+ "onChange": 491,
455
+ "onSubmit": 492,
456
+ "htmlFor": 493,
457
+ "padding": 494,
458
+ "margin": 495,
459
+ "display": 496,
460
+ "flex": 497,
461
+ "grid": 498,
462
+ "width": 499,
463
+ "height": 500,
464
+ "color": 501,
465
+ "background": 502,
466
+ "border": 503,
467
+ "position": 504,
468
+ "overflow": 505,
469
+ "transform": 506,
470
+ "transition": 507,
471
+ "animation": 508,
472
+ "z-index": 509,
473
+
474
+ "SELECT": 510,
475
+ "FROM": 511,
476
+ "WHERE": 512,
477
+ "INSERT": 513,
478
+ "INTO": 514,
479
+ "VALUES": 515,
480
+ "UPDATE": 516,
481
+ "DELETE": 517,
482
+ "CREATE": 518,
483
+ "TABLE": 519,
484
+ "INDEX": 520,
485
+ "JOIN": 521,
486
+ "LEFT": 522,
487
+ "RIGHT": 523,
488
+ "INNER": 524,
489
+ "OUTER": 525,
490
+ "ORDER": 526,
491
+ "GROUP": 527,
492
+ "HAVING": 528,
493
+ "LIMIT": 529,
494
+ "OFFSET": 530,
495
+ "DISTINCT": 531,
496
+ "PRIMARY": 532,
497
+ "FOREIGN": 533,
498
+ "REFERENCES": 534,
499
+ "CASCADE": 535,
500
+ "NOT": 536,
501
+ "NULL": 537,
502
+ "EXISTS": 538,
503
+ "BETWEEN": 539,
504
+
505
+ "useState": 540,
506
+ "useEffect": 541,
507
+ "useCallback": 542,
508
+ "useMemo": 543,
509
+ "useRef": 544,
510
+ "useContext": 545,
511
+ "useReducer": 546,
512
+ "React": 547,
513
+ "Component": 548,
514
+ "render": 549,
515
+ "props": 550,
516
+ "state": 551,
517
+ "dispatch": 552,
518
+ "axios": 553,
519
+ "fetch": 554,
520
+ "then": 555,
521
+ "resolve": 556,
522
+ "reject": 557,
523
+ "payload": 558,
524
+ "handler": 559,
525
+ "middleware": 560,
526
+ "router": 561,
527
+ "express": 562,
528
+ "FastAPI": 563,
529
+ "pydantic": 564,
530
+ "BaseModel": 565,
531
+ "SQLAlchemy": 566,
532
+ "session": 567,
533
+ "query": 568,
534
+ "filter": 569,
535
+ "numpy": 570,
536
+ "pandas": 571,
537
+ "torch": 572,
538
+ "tensorflow": 573,
539
+ "sklearn": 574,
540
+ "dataclass": 575,
541
+ "field": 576,
542
+ "frozen": 577,
543
+ "slots": 578,
544
+ "asyncio": 579,
545
+
546
+ "\u0120def": 580,
547
+ "\u0120class": 581,
548
+ "\u0120import": 582,
549
+ "\u0120from": 583,
550
+ "\u0120return": 584,
551
+ "\u0120if": 585,
552
+ "\u0120else": 586,
553
+ "\u0120for": 587,
554
+ "\u0120while": 588,
555
+ "\u0120try": 589,
556
+ "\u0120async": 590,
557
+ "\u0120await": 591,
558
+ "\u0120const": 592,
559
+ "\u0120let": 593,
560
+ "\u0120function": 594,
561
+ "\u0120export": 595,
562
+ "\u0120interface": 596,
563
+ "\u0120type": 597,
564
+ "\u0120struct": 598,
565
+ "\u0120impl": 599,
566
+ "\u0120fn": 600,
567
+ "\u0120pub": 601,
568
+ "\u0120func": 602,
569
+ "\u0120var": 603,
570
+ "\u0120new": 604,
571
+ "\u0120this": 605,
572
+ "\u0120super": 606,
573
+ "\u0120self": 607,
574
+ "\u0120yield": 608,
575
+ "\u0120raise": 609,
576
+ "\u0120throw": 610,
577
+ "\u0120switch": 611,
578
+ "\u0120case": 612,
579
+ "\u0120match": 613,
580
+ "\u0120where": 614,
581
+ "\u0120with": 615,
582
+ "\u0120pass": 616,
583
+ "\u0120break": 617,
584
+ "\u0120continue": 618,
585
+ "\u0120delete": 619,
586
+ "\u0120True": 620,
587
+ "\u0120False": 621,
588
+ "\u0120None": 622,
589
+ "\u0120null": 623,
590
+ "\u0120undefined": 624,
591
+ "\u0120true": 625,
592
+ "\u0120false": 626,
593
+ "\u0120void": 627,
594
+ "\u0120print": 628,
595
+ "\u0120len": 629,
596
+ "\u0120range": 630,
597
+ "\u0120list": 631,
598
+ "\u0120dict": 632,
599
+ "\u0120str": 633,
600
+ "\u0120int": 634,
601
+ "\u0120float": 635,
602
+ "\u0120bool": 636,
603
+ "\u0120isinstance": 637,
604
+ "\u0120append": 638,
605
+ "\u0120make": 639,
606
+ "\u0120map": 640,
607
+ "\u0120filter": 641,
608
+ "\u0120reduce": 642,
609
+ "\u0120sorted": 643,
610
+ "\u0120enumerate": 644,
611
+ "\u0120zip": 645,
612
+ "\u0120open": 646,
613
+ "\u0120read": 647,
614
+ "\u0120write": 648,
615
+ "\u0120close": 649,
616
+
617
+ " ": 650,
618
+ " ": 651,
619
+ "\u010a\u010a": 652,
620
+ "\u010a ": 653,
621
+ "\u010a ": 654,
622
+ "\u010a\u0109": 655,
623
+ "\u010a\u0109\u0109": 656,
624
+
625
+ "# ": 660,
626
+ "## ": 661,
627
+ "### ": 662,
628
+ "// ": 663,
629
+ " */": 664,
630
+ " * ": 665,
631
+ "\"\"\"": 666,
632
+ "'''": 667,
633
+ "#!": 668,
634
+ "# TODO": 669,
635
+ "# FIXME": 670,
636
+ "# NOTE": 671,
637
+ "# type: ignore": 672,
638
+ "# noqa": 673,
639
+ "@staticmethod": 674,
640
+ "@classmethod": 675,
641
+ "@property": 676,
642
+ "@abstractmethod": 677,
643
+ "@override": 678,
644
+ "@deprecated": 679,
645
+
646
+ "Optional": 680,
647
+ "Union": 681,
648
+ "List": 682,
649
+ "Dict": 683,
650
+ "Tuple": 684,
651
+ "Callable": 685,
652
+ "Generator": 686,
653
+ "Iterator": 687,
654
+ "Iterable": 688,
655
+ "TypeVar": 689,
656
+ "Generic": 690,
657
+ "Protocol": 691,
658
+ "overload": 692,
659
+ "typing": 693,
660
+ "dataclasses": 694,
661
+ ": int": 695,
662
+ ": str": 696,
663
+ ": bool": 697,
664
+ ": float": 698,
665
+ ": list": 699,
666
+ ": dict": 700,
667
+ ": None": 701,
668
+ ": Optional": 702,
669
+ ": List": 703,
670
+ ": Dict": 704,
671
+ ": Tuple": 705,
672
+ ": Union": 706,
673
+ ": Any": 707,
674
+
675
+ "config": 710,
676
+ "Config": 711,
677
+ "settings": 712,
678
+ "Settings": 713,
679
+ "model": 714,
680
+ "Model": 715,
681
+ "schema": 716,
682
+ "Schema": 717,
683
+ "database": 718,
684
+ "server": 719,
685
+ "client": 720,
686
+ "service": 721,
687
+ "repository": 722,
688
+ "controller": 723,
689
+ "request": 724,
690
+ "Request": 725,
691
+ "response": 726,
692
+ "Response": 727,
693
+ "error": 728,
694
+ "Error": 729,
695
+ "exception": 730,
696
+ "Exception": 731,
697
+ "logger": 732,
698
+ "Logger": 733,
699
+
700
+ "unittest": 740,
701
+ "pytest": 741,
702
+ "describe": 742,
703
+ "expect": 743,
704
+ "assertEquals": 744,
705
+ "assertTrue": 745,
706
+ "assertFalse": 746,
707
+ "assertRaises": 747,
708
+ "mock": 748,
709
+ "Mock": 749,
710
+ "patch": 750,
711
+ "fixture": 751,
712
+ "setUp": 752,
713
+ "tearDown": 753,
714
+ "beforeEach": 754,
715
+ "afterEach": 755,
716
+ "beforeAll": 756,
717
+ "afterAll": 757,
718
+
719
+ "__init__": 770,
720
+ "__str__": 771,
721
+ "__repr__": 772,
722
+ "__len__": 773,
723
+ "__iter__": 774,
724
+ "__next__": 775,
725
+ "__enter__": 776,
726
+ "__exit__": 777,
727
+ "__call__": 778,
728
+ "__getitem__": 779,
729
+ "__setitem__": 780,
730
+ "__contains__": 781,
731
+ "__add__": 782,
732
+ "__mul__": 783,
733
+ "__eq__": 784,
734
+ "__lt__": 785,
735
+ "__hash__": 786,
736
+ "__del__": 787,
737
+ "__new__": 788,
738
+ "__class__": 789,
739
+
740
+ "def __init__(self": 800,
741
+ "def __init__(self,": 801,
742
+ "self.": 802,
743
+ "cls.": 803,
744
+ "super().__init__": 804,
745
+ "if __name__ == \"__main__\":": 805,
746
+ "from __future__ import": 806,
747
+ "import os": 807,
748
+ "import sys": 808,
749
+ "import json": 809,
750
+ "import re": 810,
751
+ "import logging": 811,
752
+ "import asyncio": 812,
753
+ "from typing import": 813,
754
+ "from pathlib import": 814,
755
+ "from dataclasses import": 815,
756
+ "from collections import": 816,
757
+ "from functools import": 817,
758
+ "except Exception as e:": 818,
759
+ "raise ValueError": 819,
760
+ "raise TypeError": 820,
761
+ "raise RuntimeError": 821,
762
+ "raise NotImplementedError": 822,
763
+ "return None": 823,
764
+ "return True": 824,
765
+ "return False": 825,
766
+ "return self": 826,
767
+ "console.log": 830,
768
+ "console.error": 831,
769
+ "console.warn": 832,
770
+ "JSON.parse": 833,
771
+ "JSON.stringify": 834,
772
+ "Object.keys": 835,
773
+ "Object.values": 836,
774
+ "Object.entries": 837,
775
+ "Object.assign": 838,
776
+ "Array.from": 839,
777
+ "Array.isArray": 840,
778
+ "Promise.all": 841,
779
+ "Promise.resolve": 842,
780
+ "Promise.reject": 843,
781
+ "Math.floor": 844,
782
+ "Math.ceil": 845,
783
+ "Math.round": 846,
784
+
785
+ "tailwind": 850,
786
+ "webpack": 851,
787
+ "vite": 852,
788
+ "eslint": 853,
789
+ "prettier": 854,
790
+ "typescript": 855,
791
+ "docker": 856,
792
+ "kubernetes": 857,
793
+ "terraform": 858,
794
+ "github": 859,
795
+ "pipeline": 860,
796
+ "workflow": 861,
797
+ "json": 862,
798
+ "yaml": 863,
799
+ "toml": 864,
800
+ "protobuf": 865,
801
+ "graphql": 866,
802
+ "redis": 867,
803
+ "postgres": 868,
804
+ "mongodb": 869,
805
+ "sqlite": 870,
806
+ "kafka": 871,
807
+
808
+ "<|image|>": 32000,
809
+ "<|im_start|>": 32001,
810
+ "<|im_end|>": 32002,
811
+ "<|vision_start|>": 32003,
812
+ "<|vision_end|>": 32004,
813
+ "<|image_pad|>": 32005,
814
+ "<|fim_prefix|>": 32006,
815
+ "<|fim_middle|>": 32007,
816
+ "<|fim_suffix|>": 32008,
817
+ "<|fim_pad|>": 32009,
818
+ "<|endoftext|>": 32010
819
+ },
820
+
821
+ "merges": [
822
+ "e r",
823
+ "i n",
824
+ "r e",
825
+ "o n",
826
+ "a n",
827
+ "s e",
828
+ "a t",
829
+ "e n",
830
+ "a r",
831
+ "t i",
832
+ "a l",
833
+ "t e",
834
+ "i c",
835
+ "i s",
836
+ "i t",
837
+ "s t",
838
+ "e s",
839
+ "e d",
840
+ "f i",
841
+ "f o",
842
+ "c o",
843
+ "c l",
844
+ "t r",
845
+ "l i",
846
+ "l o",
847
+ "t h",
848
+ "n d",
849
+ "n t",
850
+ "r i",
851
+ "r o",
852
+ "l a",
853
+ "m e",
854
+ "p a",
855
+ "n c",
856
+ "p e",
857
+ "e x",
858
+ "u n",
859
+ "n g",
860
+ "p o",
861
+ "a c",
862
+ "m o",
863
+ "s i",
864
+ "\u0120 \u0120",
865
+ "\u0120 t",
866
+ "\u0120 a",
867
+ "\u0120 i",
868
+ "\u0120 s",
869
+ "\u0120 r",
870
+ "\u0120 f",
871
+ "\u0120 c",
872
+ "\u0120 d",
873
+ "\u0120 p",
874
+ "\u0120 m",
875
+ "\u0120 w",
876
+ "\u0120 n",
877
+ "\u0120 b",
878
+ "\u0120 e",
879
+ "\u0120 l",
880
+ "\u0120 g",
881
+ "\u0120 h",
882
+ "\u0120 o",
883
+ "\u0120 v",
884
+ "\u0120 u",
885
+ "\u0120 y",
886
+ "e r r",
887
+ "i ng",
888
+ "t ion",
889
+ "m ent",
890
+ "b le",
891
+ "d e",
892
+ "de f",
893
+ "\u0120d ef",
894
+ "\u0120de f",
895
+ "c la",
896
+ "cla s",
897
+ "clas s",
898
+ "\u0120c lass",
899
+ "i m",
900
+ "im p",
901
+ "imp o",
902
+ "impo r",
903
+ "impor t",
904
+ "\u0120i mport",
905
+ "r et",
906
+ "ret u",
907
+ "retu r",
908
+ "retur n",
909
+ "\u0120r eturn",
910
+ "s el",
911
+ "sel f",
912
+ "\u0120s elf",
913
+ "a s",
914
+ "as y",
915
+ "asy nc",
916
+ "\u0120a sync",
917
+ "a w",
918
+ "aw a",
919
+ "awa i",
920
+ "awai t",
921
+ "\u0120a wait",
922
+ "f un",
923
+ "fun c",
924
+ "func t",
925
+ "funct i",
926
+ "functi on",
927
+ "\u0120f unction",
928
+ "c on",
929
+ "con s",
930
+ "cons t",
931
+ "\u0120c onst",
932
+ "l et",
933
+ "\u0120l et",
934
+ "e x",
935
+ "ex p",
936
+ "exp o",
937
+ "expo r",
938
+ "expor t",
939
+ "\u0120e xport",
940
+ "= =",
941
+ "! =",
942
+ "< =",
943
+ "> =",
944
+ "= >",
945
+ "- >",
946
+ ": :",
947
+ "* *",
948
+ "/ /",
949
+ "& &",
950
+ "| |",
951
+ "? ?",
952
+ ". .",
953
+ ". ..",
954
+ "T r",
955
+ "Tr u",
956
+ "Tru e",
957
+ "\u0120T rue",
958
+ "F al",
959
+ "Fal s",
960
+ "Fals e",
961
+ "\u0120F alse",
962
+ "N on",
963
+ "Non e",
964
+ "\u0120N one",
965
+ "n ul",
966
+ "nul l",
967
+ "\u0120n ull",
968
+ "\u0120\u0120 \u0120\u0120",
969
+ "\u010a \u0120",
970
+ "\u010a\u0120 \u0120",
971
+ "\u010a\u0120\u0120 \u0120\u0120",
972
+ "f n",
973
+ "\u0120f n",
974
+ "p ub",
975
+ "\u0120p ub",
976
+ "i mp",
977
+ "imp l",
978
+ "\u0120i mpl",
979
+ "s tr",
980
+ "str u",
981
+ "stru c",
982
+ "struc t",
983
+ "\u0120s truct",
984
+ "m at",
985
+ "mat ch",
986
+ "\u0120m atch",
987
+ "t rait",
988
+ "\u0120t rait",
989
+ "\u0120\u0120\u0120\u0120 \u0120\u0120\u0120\u0120"
990
+ ]
991
+ }
992
+ }
tokenizer_config.json ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": false,
3
+ "add_prefix_space": false,
4
+ "added_tokens_decoder": {
5
+ "151643": {
6
+ "content": "<|endoftext|>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false,
11
+ "special": true
12
+ },
13
+ "151644": {
14
+ "content": "<|im_start|>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false,
19
+ "special": true
20
+ },
21
+ "151645": {
22
+ "content": "<|im_end|>",
23
+ "lstrip": false,
24
+ "normalized": false,
25
+ "rstrip": false,
26
+ "single_word": false,
27
+ "special": true
28
+ },
29
+ "151652": {
30
+ "content": "<|vision_start|>",
31
+ "lstrip": false,
32
+ "normalized": false,
33
+ "rstrip": false,
34
+ "single_word": false,
35
+ "special": true
36
+ },
37
+ "151653": {
38
+ "content": "<|vision_end|>",
39
+ "lstrip": false,
40
+ "normalized": false,
41
+ "rstrip": false,
42
+ "single_word": false,
43
+ "special": true
44
+ },
45
+ "151654": {
46
+ "content": "<|vision_pad|>",
47
+ "lstrip": false,
48
+ "normalized": false,
49
+ "rstrip": false,
50
+ "single_word": false,
51
+ "special": true
52
+ },
53
+ "151655": {
54
+ "content": "<|image_pad|>",
55
+ "lstrip": false,
56
+ "normalized": false,
57
+ "rstrip": false,
58
+ "single_word": false,
59
+ "special": true
60
+ },
61
+ "151656": {
62
+ "content": "<|video_pad|>",
63
+ "lstrip": false,
64
+ "normalized": false,
65
+ "rstrip": false,
66
+ "single_word": false,
67
+ "special": true
68
+ }
69
+ },
70
+ "additional_special_tokens": [
71
+ "<|im_start|>",
72
+ "<|im_end|>",
73
+ "<|vision_start|>",
74
+ "<|vision_end|>",
75
+ "<|vision_pad|>",
76
+ "<|image_pad|>",
77
+ "<|video_pad|>"
78
+ ],
79
+ "bos_token": null,
80
+ "chat_template": "{%- if messages[0]['role'] == 'system' %}{%- set system_message = messages[0]['content'] %}{%- set loop_messages = messages[1:] %}{%- else %}{%- set system_message = 'You are Verus, a helpful multimodal coding assistant. You specialize in converting UI mockups, wireframes, and architecture diagrams into production-ready code.' %}{%- set loop_messages = messages %}{%- endif %}{{- '<|im_start|>system\\n' + system_message + '<|im_end|>\\n' }}{%- for message in loop_messages %}{%- if message['role'] == 'user' %}{{- '<|im_start|>user\\n' }}{%- if message['content'] is iterable and message['content'] is not string %}{%- for item in message['content'] %}{%- if item['type'] == 'image' %}{{- '<|vision_start|><|image_pad|><|vision_end|>' }}{%- elif item['type'] == 'text' %}{{- item['text'] }}{%- endif %}{%- endfor %}{%- else %}{{- message['content'] }}{%- endif %}{{- '<|im_end|>\\n' }}{%- elif message['role'] == 'assistant' %}{{- '<|im_start|>assistant\\n' }}{%- if message['content'] is not none %}{{- message['content'] }}{%- endif %}{%- if not loop.last or not add_generation_prompt %}{{- '<|im_end|>\\n' }}{%- endif %}{%- endif %}{%- endfor %}{%- if add_generation_prompt %}{{- '<|im_start|>assistant\\n' }}{%- endif %}",
81
+ "clean_up_tokenization_spaces": false,
82
+ "eos_token": "<|im_end|>",
83
+ "errors": "replace",
84
+ "model_max_length": 125000,
85
+ "pad_token": "<|endoftext|>",
86
+ "padding_side": "left",
87
+ "split_special_tokens": false,
88
+ "tokenizer_class": "Qwen2Tokenizer",
89
+ "unk_token": null,
90
+ "image_token": "<|image_pad|>",
91
+ "video_token": "<|video_pad|>",
92
+ "vision_start_token": "<|vision_start|>",
93
+ "vision_end_token": "<|vision_end|>"
94
+ }
train.py ADDED
@@ -0,0 +1,450 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ╔══════════════════════════════════════════════════════════════════════════════╗
2
+ # ║ Verus-4B — Fine-Tune Training Script (Run 2) ║
3
+ # ║ 8F-ai | Apache 2.0 ║
4
+ # ╠══════════════════════════════════════════════════════════════════════════════╣
5
+ # ║ Base model : ./Verus-4b (your Run 1 local output) ║
6
+ # ║ Datasets : m-a-p/CodeFeedback-Filtered-Instruction (primary coding) ║
7
+ # ║ HuggingFaceH4/ultrachat_200k (general) ║
8
+ # ║ ise-uiuc/Magicoder-OSS-Instruct-75K (extra coding) ║
9
+ # ║ Target HW : Lightning AI H100 (80GB VRAM) ║
10
+ # ║ Time goal : ~30 minutes ║
11
+ # ║ Output : ./Verus-4b-r2/ ║
12
+ # ╠══════════════════════════════════════════════════════════════════════════════╣
13
+ # ║ Quickstart: ║
14
+ # ║ pip install git+https://github.com/huggingface/transformers.git ║
15
+ # ║ pip install datasets peft safetensors accelerate ║
16
+ # ║ export HF_TOKEN=hf_xxx ║
17
+ # ║ python train.py ║
18
+ # ╚══════════════════════════════════════════════════════════════════════════════╝
19
+
20
+ import os, re, sys, json, time, logging, warnings, threading
21
+ from pathlib import Path
22
+ from datetime import datetime, timezone
23
+
24
+ warnings.filterwarnings("ignore", category=UserWarning)
25
+ os.environ["TOKENIZERS_PARALLELISM"] = "false"
26
+ os.environ["PYTORCH_ALLOC_CONF"] = "expandable_segments:True"
27
+ os.environ["TORCHDYNAMO_DISABLE"] = "1"
28
+
29
+ # ── HF auth ───────────────────────────────────────────────────────────────────
30
+ _hf_token = os.environ.get("HF_TOKEN", "").strip()
31
+ if _hf_token:
32
+ try:
33
+ from huggingface_hub import login as _hf_login
34
+ _hf_login(token=_hf_token, add_to_git_credential=False)
35
+ print(f"[HF] Logged in ({_hf_token[:8]}{'*' * max(0, len(_hf_token)-8)})")
36
+ except Exception as e:
37
+ print(f"[HF] Login skipped: {e}")
38
+ else:
39
+ print("[HF] HF_TOKEN not set — export HF_TOKEN=hf_xxx")
40
+
41
+ import torch
42
+ from torch.utils.data import Dataset, DataLoader, ConcatDataset
43
+ from transformers import (
44
+ AutoTokenizer, AutoModelForCausalLM, set_seed,
45
+ get_cosine_schedule_with_warmup,
46
+ )
47
+ from datasets import load_dataset
48
+ from safetensors.torch import save_file
49
+
50
+ try:
51
+ from peft import LoraConfig, TaskType, get_peft_model
52
+ except ImportError:
53
+ print("[ERR] pip install peft"); sys.exit(1)
54
+
55
+ # ── Device ────────────────────────────────────────────────────────────────────
56
+ if torch.cuda.is_available():
57
+ DEVICE = torch.device("cuda")
58
+ gpu = torch.cuda.get_device_name(0)
59
+ vram = torch.cuda.get_device_properties(0).total_memory / 1e9
60
+ print(f"[GPU] {gpu} — {vram:.1f} GB VRAM")
61
+ else:
62
+ DEVICE = torch.device("cpu")
63
+ print("[WARN] No GPU found!")
64
+
65
+ # ══════════════════════════════════════════════════════════════════════════════
66
+ # CONFIG — 4B model on H100 80GB, target ~30 min
67
+ #
68
+ # Memory estimate:
69
+ # 4B params × 2 bytes (bf16) = ~8 GB model
70
+ # LoRA r=32 gradients + optimizer = ~12 GB
71
+ # Activations (batch 4, seq 512) = ~18 GB
72
+ # Total = ~38 GB ← well within 80GB
73
+ # ══════════════════════════════════════════════════════════════════════════════
74
+ CFG = {
75
+ "model_id": "8F-ai/Verus-4B",
76
+ "base_model": "./Verus-4b", # ← local Run 1 output
77
+
78
+ # ── Datasets ────────────────────────────────────────────────────────────
79
+ "ultra_samples": 2000, # UltraChat general conversation
80
+ "code_samples": 8000, # CodeFeedback coding
81
+ "magic_samples": 4000, # Magicoder extra coding
82
+
83
+ # ── Output ──────────────────────────────────────────────────────────────
84
+ "final_dir": "./Verus-4b-r2",
85
+
86
+ # ── Training ────────────────────────────────────────────────────────────
87
+ "total_budget_sec": 1800, # 30 min hard limit
88
+ "save_reserve_sec": 400, # ~7 min for 4B merge+save
89
+
90
+ "max_seq_len": 512, # stable, no OOM crashes
91
+ "per_device_batch": 4,
92
+ "grad_accum_steps": 8, # effective batch = 32
93
+ "learning_rate": 5e-5, # lower lr for run 2 — already a tuned model
94
+ "weight_decay": 0.01,
95
+ "max_grad_norm": 1.0,
96
+ "warmup_steps": 80, # shorter warmup for shorter run
97
+ "max_steps": 2500,
98
+
99
+ # ── LoRA ────────────────────────────────────────────────────────────────
100
+ "lora_r": 32,
101
+ "lora_alpha": 64,
102
+ "lora_dropout": 0.05,
103
+ "lora_targets": ["q_proj", "k_proj", "v_proj", "o_proj",
104
+ "gate_proj", "up_proj", "down_proj"],
105
+
106
+ "seed": 42,
107
+ "system_prompt": (
108
+ "You are Verus, a coding assistant made by 8F-ai. "
109
+ "You help with coding tasks and keep responses focused and clean. "
110
+ "For greetings respond briefly and redirect to coding."
111
+ ),
112
+ }
113
+
114
+ logging.basicConfig(
115
+ level=logging.INFO,
116
+ format="%(asctime)s %(levelname)-8s %(message)s",
117
+ datefmt="%H:%M:%S",
118
+ handlers=[logging.StreamHandler(sys.stdout)],
119
+ )
120
+ log = logging.getLogger("verus")
121
+ set_seed(CFG["seed"])
122
+
123
+ # ══════════════════════════════════════════════════════════════════════════════
124
+ # HEARTBEAT
125
+ # ══════════════════════════════════════════════════════════════════════════════
126
+ def _start_heartbeat(interval: int = 30):
127
+ def _beat():
128
+ while True:
129
+ print("[HEARTBEAT] alive …", flush=True)
130
+ time.sleep(interval)
131
+ threading.Thread(target=_beat, daemon=True).start()
132
+
133
+ # ══════════════════════════════════════════════════════════════════════════════
134
+ # DATASETS
135
+ # ══════════════════════════════════════════════════════════════════════════════
136
+ def _chatml(system: str, user: str, assistant: str) -> str:
137
+ return (
138
+ f"<|im_start|>system\n{system}<|im_end|>\n"
139
+ f"<|im_start|>user\n{user.strip()}<|im_end|>\n"
140
+ f"<|im_start|>assistant\n{assistant.strip()}<|im_end|>"
141
+ )
142
+
143
+ class TokenizedDataset(Dataset):
144
+ def __init__(self, texts, tokenizer, max_len):
145
+ log.info(f" Tokenising {len(texts):,} examples (max_len={max_len}) …")
146
+ enc = tokenizer(
147
+ texts,
148
+ max_length=max_len,
149
+ padding="max_length",
150
+ truncation=True,
151
+ return_attention_mask=True,
152
+ return_tensors=None,
153
+ )
154
+ pad = tokenizer.pad_token_id or 0
155
+ self.ids = enc["input_ids"]
156
+ self.mask = enc["attention_mask"]
157
+ self.lbls = [[(t if t != pad else -100) for t in s] for s in enc["input_ids"]]
158
+
159
+ def __len__(self): return len(self.ids)
160
+ def __getitem__(self, i):
161
+ return {
162
+ "input_ids": torch.tensor(self.ids[i], dtype=torch.long),
163
+ "attention_mask": torch.tensor(self.mask[i], dtype=torch.long),
164
+ "labels": torch.tensor(self.lbls[i], dtype=torch.long),
165
+ }
166
+
167
+ def load_ultrachat_dataset(tokenizer, cfg):
168
+ log.info("Loading HuggingFaceH4/ultrachat_200k …")
169
+ raw = load_dataset("HuggingFaceH4/ultrachat_200k", split="train_sft")
170
+ raw = raw.select(range(min(cfg["ultra_samples"], len(raw))))
171
+ texts = []
172
+ for ex in raw:
173
+ messages = ex.get("messages", [])
174
+ user_msg = next((m["content"] for m in messages if m["role"] == "user"), "")
175
+ asst_msg = next((m["content"] for m in messages if m["role"] == "assistant"), "")
176
+ if user_msg and asst_msg:
177
+ texts.append(_chatml(cfg["system_prompt"], user_msg, asst_msg))
178
+ log.info(f" {len(texts):,} ultrachat examples ready.")
179
+ return TokenizedDataset(texts, tokenizer, cfg["max_seq_len"])
180
+
181
+ def load_codefeedback_dataset(tokenizer, cfg):
182
+ log.info("Loading m-a-p/CodeFeedback-Filtered-Instruction …")
183
+ raw = load_dataset("m-a-p/CodeFeedback-Filtered-Instruction", split="train")
184
+ raw = raw.select(range(min(cfg["code_samples"], len(raw))))
185
+ texts = []
186
+ for ex in raw:
187
+ inst = ex.get("query", "").strip()
188
+ out = ex.get("answer", "").strip()
189
+ if inst and out:
190
+ texts.append(_chatml(cfg["system_prompt"], inst, out))
191
+ log.info(f" {len(texts):,} CodeFeedback examples ready.")
192
+ return TokenizedDataset(texts, tokenizer, cfg["max_seq_len"])
193
+
194
+ def load_magicoder_dataset(tokenizer, cfg):
195
+ log.info("Loading ise-uiuc/Magicoder-OSS-Instruct-75K …")
196
+ raw = load_dataset("ise-uiuc/Magicoder-OSS-Instruct-75K", split="train")
197
+ raw = raw.select(range(min(cfg["magic_samples"], len(raw))))
198
+ texts = []
199
+ for ex in raw:
200
+ inst = ex.get("problem", "").strip()
201
+ out = ex.get("solution", "").strip()
202
+ if inst and out:
203
+ texts.append(_chatml(cfg["system_prompt"], inst, out))
204
+ log.info(f" {len(texts):,} Magicoder examples ready.")
205
+ return TokenizedDataset(texts, tokenizer, cfg["max_seq_len"])
206
+
207
+ # ══════════════════════════════════════════════════════════════════════════════
208
+ # MODEL
209
+ # ══════════════════════════════════════════════════════════════════════════════
210
+ def load_model(cfg):
211
+ base = cfg["base_model"]
212
+ log.info(f"Loading tokenizer from {base} …")
213
+ tok = AutoTokenizer.from_pretrained(base, padding_side="right", use_fast=True)
214
+ if tok.pad_token_id is None:
215
+ tok.pad_token_id = tok.eos_token_id
216
+
217
+ log.info(f"Loading model (bfloat16) …")
218
+ model = AutoModelForCausalLM.from_pretrained(
219
+ base,
220
+ torch_dtype=torch.bfloat16,
221
+ low_cpu_mem_usage=True,
222
+ )
223
+ model.config.use_cache = False
224
+
225
+ log.info("Attaching LoRA …")
226
+ model = get_peft_model(model, LoraConfig(
227
+ task_type=TaskType.CAUSAL_LM,
228
+ r=cfg["lora_r"],
229
+ lora_alpha=cfg["lora_alpha"],
230
+ lora_dropout=cfg["lora_dropout"],
231
+ target_modules=cfg["lora_targets"],
232
+ bias="none",
233
+ inference_mode=False,
234
+ ))
235
+ model.print_trainable_parameters()
236
+ return model, tok
237
+
238
+ # ══════════════════════════════════════════════════════════════════════════════
239
+ # SAVE — 2-shard safetensors (HuggingFace standard format)
240
+ # ══════════════════════════════════════════════════════════════════════════════
241
+ def _save_checkpoint(peft_model, tokenizer, cfg, step, t0):
242
+ out = Path(cfg["final_dir"]) / f"checkpoint-{step}"
243
+ out.mkdir(parents=True, exist_ok=True)
244
+ peft_model.save_pretrained(str(out))
245
+ tokenizer.save_pretrained(str(out))
246
+ log.info(f" ✅ Checkpoint saved → {out}/")
247
+
248
+ def save_model(peft_model, tokenizer, cfg, t0):
249
+ out = Path(cfg["final_dir"])
250
+ out.mkdir(parents=True, exist_ok=True)
251
+
252
+ log.info("Merging LoRA into base weights …")
253
+ merged = peft_model.merge_and_unload()
254
+ merged.eval()
255
+
256
+ log.info("Collecting state dict …")
257
+ sd = {k: v.detach().to("cpu", dtype=torch.bfloat16).contiguous()
258
+ for k, v in merged.named_parameters()}
259
+ sd.update({k: v.detach().to("cpu").contiguous()
260
+ for k, v in merged.named_buffers()})
261
+
262
+ meta = {
263
+ "format": "pt",
264
+ "model_id": cfg["model_id"],
265
+ "base_model": cfg["base_model"],
266
+ "datasets": "UltraChat + CodeFeedback + Magicoder",
267
+ "created_at": datetime.now(timezone.utc).isoformat(),
268
+ "train_time": f"{(time.time()-t0)/60:.1f} min",
269
+ "hardware": "Lightning AI H100 80GB",
270
+ }
271
+
272
+ # ── Split state dict into 2 shards ──────────────────────────────────────
273
+ log.info("Splitting into 2 shards …")
274
+ all_keys = list(sd.keys())
275
+ mid = len(all_keys) // 2
276
+ shard1_sd = {k: sd[k] for k in all_keys[:mid]}
277
+ shard2_sd = {k: sd[k] for k in all_keys[mid:]}
278
+
279
+ shard1_name = "model-00001-of-00002.safetensors"
280
+ shard2_name = "model-00002-of-00002.safetensors"
281
+ shard1_path = out / shard1_name
282
+ shard2_path = out / shard2_name
283
+
284
+ log.info(f"Writing {shard1_name} ({len(shard1_sd)} tensors) …")
285
+ save_file(shard1_sd, str(shard1_path), metadata=meta)
286
+ size1 = shard1_path.stat().st_size
287
+ log.info(f" {size1/1e9:.3f} GB written.")
288
+
289
+ log.info(f"Writing {shard2_name} ({len(shard2_sd)} tensors) …")
290
+ save_file(shard2_sd, str(shard2_path), metadata=meta)
291
+ size2 = shard2_path.stat().st_size
292
+ log.info(f" {size2/1e9:.3f} GB written.")
293
+
294
+ total_size = size1 + size2
295
+
296
+ # ── Write the index file ─────────────────────────────────────────────────
297
+ weight_map = {}
298
+ for k in all_keys[:mid]:
299
+ weight_map[k] = shard1_name
300
+ for k in all_keys[mid:]:
301
+ weight_map[k] = shard2_name
302
+
303
+ index = {
304
+ "metadata": {
305
+ **meta,
306
+ "total_size": total_size,
307
+ "num_shards": 2,
308
+ },
309
+ "weight_map": weight_map,
310
+ }
311
+ index_path = out / "model.safetensors.index.json"
312
+ with open(index_path, "w") as f:
313
+ json.dump(index, f, indent=2)
314
+ log.info(f" Index written → {index_path}")
315
+ log.info(f" Total size: {total_size/1e9:.3f} GB across 2 shards")
316
+
317
+ # ── Save tokenizer + config ──────────────────────────────────────────────
318
+ tokenizer.save_pretrained(str(out))
319
+ merged.config.save_pretrained(str(out))
320
+
321
+ cfg_p = out / "config.json"
322
+ if cfg_p.exists():
323
+ with open(cfg_p) as f: doc = json.load(f)
324
+ doc["_name_or_path"] = cfg["model_id"]
325
+ with open(cfg_p, "w") as f: json.dump(doc, f, indent=2)
326
+
327
+ log.info(f"All files saved to {out}/")
328
+ log.info(f" {shard1_name}")
329
+ log.info(f" {shard2_name}")
330
+ log.info(f" model.safetensors.index.json")
331
+
332
+ # ══════════════════════════════════════════════════════════════════════════════
333
+ # TRAINING LOOP
334
+ # ══════════════════════════════════════════════════════════════════════════════
335
+ def train_loop(model, dataset, cfg, t0, tokenizer):
336
+ deadline = t0 + cfg["total_budget_sec"] - cfg["save_reserve_sec"]
337
+ loader = DataLoader(
338
+ dataset,
339
+ batch_size=cfg["per_device_batch"],
340
+ shuffle=True,
341
+ drop_last=True,
342
+ num_workers=4,
343
+ pin_memory=True,
344
+ )
345
+ opt = torch.optim.AdamW(
346
+ model.parameters(),
347
+ lr=cfg["learning_rate"],
348
+ weight_decay=cfg["weight_decay"],
349
+ )
350
+ sched = get_cosine_schedule_with_warmup(
351
+ opt,
352
+ num_warmup_steps=cfg["warmup_steps"],
353
+ num_training_steps=cfg["max_steps"],
354
+ )
355
+
356
+ model.to(DEVICE)
357
+ model.train()
358
+ opt.zero_grad()
359
+
360
+ step = 0; total_loss = 0.0
361
+ log.info("─" * 68)
362
+ log.info("Training started …")
363
+ log.info("─" * 68)
364
+
365
+ for _ in range(9999):
366
+ for batch in loader:
367
+ if step >= cfg["max_steps"] or time.time() >= deadline:
368
+ break
369
+
370
+ ids = batch["input_ids"].to(DEVICE, non_blocking=True)
371
+ mask = batch["attention_mask"].to(DEVICE, non_blocking=True)
372
+ lbls = batch["labels"].to(DEVICE, non_blocking=True)
373
+
374
+ with torch.amp.autocast("cuda", dtype=torch.bfloat16):
375
+ loss = model(input_ids=ids, attention_mask=mask, labels=lbls).loss
376
+
377
+ (loss / cfg["grad_accum_steps"]).backward()
378
+ total_loss += loss.item()
379
+
380
+ if (step + 1) % cfg["grad_accum_steps"] == 0:
381
+ torch.nn.utils.clip_grad_norm_(
382
+ model.parameters(), cfg["max_grad_norm"]
383
+ )
384
+ opt.step(); sched.step(); opt.zero_grad()
385
+
386
+ step += 1
387
+
388
+ if step % 50 == 0 or step == 1:
389
+ avg = total_loss / step
390
+ lr_ = sched.get_last_lr()[0]
391
+ mins = (time.time() - t0) / 60
392
+ remaining = (deadline - time.time()) / 60
393
+ log.info(
394
+ f" step {step:>5}/{cfg['max_steps']} "
395
+ f"loss {avg:.4f} lr {lr_:.2e} "
396
+ f"{mins:.1f}min ({remaining:.0f}min left)"
397
+ )
398
+
399
+ if step % 1000 == 0:
400
+ log.info(f"Saving checkpoint at step {step} …")
401
+ _save_checkpoint(model, tokenizer, cfg, step, t0)
402
+
403
+ if step >= cfg["max_steps"] or time.time() >= deadline:
404
+ break
405
+
406
+ avg = total_loss / max(step, 1)
407
+ log.info(f"Training done — steps: {step} avg loss: {avg:.4f} time: {(time.time()-t0)/60:.1f} min")
408
+ return step, avg
409
+
410
+ # ══════════════════════════════════════════════════════════════════════════════
411
+ # MAIN
412
+ # ══════════════════════════════════════════════════════════════════════════════
413
+ def main():
414
+ t0 = time.time()
415
+ _start_heartbeat(30)
416
+
417
+ log.info("=" * 68)
418
+ log.info(" Verus-4b Run 2 | 8F-ai | H100 Run")
419
+ log.info(f" Base : {CFG['base_model']}")
420
+ log.info(f" Device : {DEVICE}")
421
+ log.info(f" Data : {CFG['ultra_samples']} ultrachat + {CFG['code_samples']} CodeFeedback + {CFG['magic_samples']} Magicoder")
422
+ log.info(f" seq : {CFG['max_seq_len']} batch: {CFG['per_device_batch']} accum: {CFG['grad_accum_steps']} steps: {CFG['max_steps']}")
423
+ log.info(f" LoRA : r={CFG['lora_r']} alpha={CFG['lora_alpha']} targets={len(CFG['lora_targets'])} modules")
424
+ log.info(f" Budget : {CFG['total_budget_sec']//60} min (checkpoints every 1000 steps)")
425
+ log.info("=" * 68)
426
+
427
+ model, tok = load_model(CFG)
428
+
429
+ ultra_ds = load_ultrachat_dataset(tok, CFG)
430
+ code_ds = load_codefeedback_dataset(tok, CFG)
431
+ magic_ds = load_magicoder_dataset(tok, CFG)
432
+ mixed = ConcatDataset([ultra_ds, code_ds, magic_ds])
433
+ log.info(f"Mixed dataset: {len(mixed):,} total ({len(ultra_ds):,} ultrachat + {len(code_ds):,} codefeedback + {len(magic_ds):,} magic)")
434
+
435
+ steps, loss = train_loop(model, mixed, CFG, t0, tok)
436
+ save_model(model, tok, CFG, t0)
437
+
438
+ out = Path(CFG["final_dir"])
439
+ s1 = (out / "model-00001-of-00002.safetensors")
440
+ s2 = (out / "model-00002-of-00002.safetensors")
441
+ size = (s1.stat().st_size if s1.exists() else 0) + (s2.stat().st_size if s2.exists() else 0)
442
+
443
+ log.info("=" * 68)
444
+ log.info(" DONE")
445
+ log.info(f" Time : {(time.time()-t0)/60:.1f} min | Steps: {steps} | Loss: {loss:.4f}")
446
+ log.info(f" Size : {size/1e9:.3f} GB across 2 shards → {CFG['final_dir']}/")
447
+ log.info("=" * 68)
448
+
449
+ if __name__ == "__main__":
450
+ main()
upload_to_hf.py ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from huggingface_hub import HfApi
3
+
4
+ def upload_folder_to_hf():
5
+ token = os.getenv("HF_TOKEN")
6
+ if not token:
7
+ print("Error: Run 'export HF_TOKEN=your_token_here' first.")
8
+ return
9
+
10
+ api = HfApi()
11
+
12
+ # "." means "upload everything in the folder I am currently in"
13
+ local_path = "."
14
+ repo_id = "8F-ai/Verus-4B"
15
+
16
+ print(f"Starting upload from current directory to {repo_id}...")
17
+
18
+ try:
19
+ api.upload_folder(
20
+ folder_path=local_path,
21
+ repo_id=repo_id,
22
+ repo_type="model",
23
+ token=token
24
+ )
25
+ print("Upload successful!")
26
+ except Exception as e:
27
+ print(f"An error occurred: {e}")
28
+
29
+ if __name__ == "__main__":
30
+ upload_folder_to_hf()
video_preprocessor_config.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "processor_class": "Qwen2_5_VLProcessor",
3
+ "video_processor_type": "Qwen2VLVideoProcessor",
4
+ "temporal_patch_size": 2,
5
+ "note": "Placeholder scaffold. Replace with the actual Verus-4B video preprocessor config when available."
6
+ }
vocab.json ADDED
@@ -0,0 +1,858 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "<unk>": 0,
3
+ "<s>": 1,
4
+ "</s>": 2,
5
+ "<pad>": 3,
6
+ "<mask>": 4,
7
+
8
+ "!": 5,
9
+ "\"": 6,
10
+ "#": 7,
11
+ "$": 8,
12
+ "%": 9,
13
+ "&": 10,
14
+ "'": 11,
15
+ "(": 12,
16
+ ")": 13,
17
+ "*": 14,
18
+ "+": 15,
19
+ ",": 16,
20
+ "-": 17,
21
+ ".": 18,
22
+ "/": 19,
23
+ "0": 20,
24
+ "1": 21,
25
+ "2": 22,
26
+ "3": 23,
27
+ "4": 24,
28
+ "5": 25,
29
+ "6": 26,
30
+ "7": 27,
31
+ "8": 28,
32
+ "9": 29,
33
+ ":": 30,
34
+ ";": 31,
35
+ "<": 32,
36
+ "=": 33,
37
+ ">": 34,
38
+ "?": 35,
39
+ "@": 36,
40
+ "A": 37,
41
+ "B": 38,
42
+ "C": 39,
43
+ "D": 40,
44
+ "E": 41,
45
+ "F": 42,
46
+ "G": 43,
47
+ "H": 44,
48
+ "I": 45,
49
+ "J": 46,
50
+ "K": 47,
51
+ "L": 48,
52
+ "M": 49,
53
+ "N": 50,
54
+ "O": 51,
55
+ "P": 52,
56
+ "Q": 53,
57
+ "R": 54,
58
+ "S": 55,
59
+ "T": 56,
60
+ "U": 57,
61
+ "V": 58,
62
+ "W": 59,
63
+ "X": 60,
64
+ "Y": 61,
65
+ "Z": 62,
66
+ "[": 63,
67
+ "\\": 64,
68
+ "]": 65,
69
+ "^": 66,
70
+ "_": 67,
71
+ "`": 68,
72
+ "a": 69,
73
+ "b": 70,
74
+ "c": 71,
75
+ "d": 72,
76
+ "e": 73,
77
+ "f": 74,
78
+ "g": 75,
79
+ "h": 76,
80
+ "i": 77,
81
+ "j": 78,
82
+ "k": 79,
83
+ "l": 80,
84
+ "m": 81,
85
+ "n": 82,
86
+ "o": 83,
87
+ "p": 84,
88
+ "q": 85,
89
+ "r": 86,
90
+ "s": 87,
91
+ "t": 88,
92
+ "u": 89,
93
+ "v": 90,
94
+ "w": 91,
95
+ "x": 92,
96
+ "y": 93,
97
+ "z": 94,
98
+ "{": 95,
99
+ "|": 96,
100
+ "}": 97,
101
+ "~": 98,
102
+
103
+ "\u0120": 99,
104
+ "\u010a": 100,
105
+ "\u0109": 101,
106
+ "\u0100": 102,
107
+ "\u0101": 103,
108
+ "\u0102": 104,
109
+ "\u0103": 105,
110
+ "\u0104": 106,
111
+ "\u0105": 107,
112
+ "\u0106": 108,
113
+ "\u0107": 109,
114
+ "\u0108": 110,
115
+ "\u010b": 111,
116
+ "\u010c": 112,
117
+
118
+ "in": 200,
119
+ "er": 201,
120
+ "re": 202,
121
+ "de": 203,
122
+ "on": 204,
123
+ "an": 205,
124
+ "se": 206,
125
+ "at": 207,
126
+ "en": 208,
127
+ "or": 209,
128
+ "ar": 210,
129
+ "ti": 211,
130
+ "al": 212,
131
+ "te": 213,
132
+ "ic": 214,
133
+ "is": 215,
134
+ "it": 216,
135
+ "st": 217,
136
+ "es": 218,
137
+ "ed": 219,
138
+ "fi": 220,
139
+ "fo": 221,
140
+ "fu": 222,
141
+ "pr": 223,
142
+ "co": 224,
143
+ "cl": 225,
144
+ "ch": 226,
145
+ "tr": 227,
146
+ "sp": 228,
147
+ "li": 229,
148
+ "lo": 230,
149
+ "th": 231,
150
+ "nd": 232,
151
+ "nt": 233,
152
+ "le": 234,
153
+ "ri": 235,
154
+ "ro": 236,
155
+ "la": 237,
156
+ "me": 238,
157
+ "pa": 239,
158
+ "ma": 240,
159
+ "nc": 241,
160
+ "pe": 242,
161
+ "ex": 243,
162
+ "un": 244,
163
+ "ng": 245,
164
+ "po": 246,
165
+ "ac": 247,
166
+ "mo": 248,
167
+ "si": 249,
168
+
169
+ "ing": 250,
170
+ "tion": 251,
171
+ "ment": 252,
172
+ "ble": 253,
173
+ "ent": 254,
174
+ "pre": 255,
175
+ "pro": 256,
176
+ "con": 257,
177
+ "com": 258,
178
+ "str": 259,
179
+ "int": 260,
180
+ "len": 261,
181
+ "num": 262,
182
+ "for": 263,
183
+ "not": 264,
184
+ "get": 265,
185
+ "set": 266,
186
+ "add": 267,
187
+ "new": 268,
188
+ "key": 269,
189
+ "val": 270,
190
+ "res": 271,
191
+ "req": 272,
192
+ "err": 273,
193
+ "msg": 274,
194
+ "arg": 275,
195
+ "var": 276,
196
+ "ref": 277,
197
+ "out": 278,
198
+ "run": 279,
199
+ "log": 280,
200
+ "buf": 281,
201
+ "ctx": 282,
202
+ "cfg": 283,
203
+ "app": 284,
204
+ "api": 285,
205
+ "url": 286,
206
+ "src": 287,
207
+ "dst": 288,
208
+ "tmp": 289,
209
+ "idx": 290,
210
+ "ptr": 291,
211
+ "map": 292,
212
+ "arr": 293,
213
+ "obj": 294,
214
+ "cls": 295,
215
+ "mod": 296,
216
+ "pkg": 297,
217
+ "lib": 298,
218
+ "use": 299,
219
+
220
+ "def": 300,
221
+ "class": 301,
222
+ "import": 302,
223
+ "from": 303,
224
+ "return": 304,
225
+ "if": 305,
226
+ "else": 306,
227
+ "elif": 307,
228
+ "while": 308,
229
+ "try": 309,
230
+ "except": 310,
231
+ "with": 311,
232
+ "as": 312,
233
+ "lambda": 313,
234
+ "yield": 314,
235
+ "async": 315,
236
+ "await": 316,
237
+ "pass": 317,
238
+ "break": 318,
239
+ "continue": 319,
240
+ "raise": 320,
241
+ "True": 321,
242
+ "False": 322,
243
+ "None": 323,
244
+ "and": 324,
245
+ "or": 325,
246
+ "not": 326,
247
+ "global": 327,
248
+ "nonlocal": 328,
249
+ "assert": 329,
250
+ "del": 330,
251
+ "self": 331,
252
+ "super": 332,
253
+ "object": 333,
254
+ "print": 334,
255
+ "range": 335,
256
+ "list": 336,
257
+ "dict": 337,
258
+ "tuple": 338,
259
+ "bool": 339,
260
+ "float": 340,
261
+ "bytes": 341,
262
+ "open": 342,
263
+ "type": 343,
264
+ "isinstance": 344,
265
+ "hasattr": 345,
266
+ "getattr": 346,
267
+ "setattr": 347,
268
+ "property": 348,
269
+ "staticmethod": 349,
270
+
271
+ "function": 350,
272
+ "const": 351,
273
+ "let": 352,
274
+ "export": 353,
275
+ "default": 354,
276
+ "extends": 355,
277
+ "interface": 356,
278
+ "typeof": 357,
279
+ "instanceof": 358,
280
+ "undefined": 359,
281
+ "null": 360,
282
+ "switch": 361,
283
+ "case": 362,
284
+ "throw": 363,
285
+ "catch": 364,
286
+ "finally": 365,
287
+ "this": 366,
288
+ "void": 367,
289
+ "delete": 368,
290
+ "enum": 369,
291
+ "implements": 370,
292
+ "abstract": 371,
293
+ "readonly": 372,
294
+ "namespace": 373,
295
+ "declare": 374,
296
+ "keyof": 375,
297
+ "infer": 376,
298
+ "never": 377,
299
+ "unknown": 378,
300
+ "readonly": 379,
301
+ "optional": 380,
302
+ "Promise": 381,
303
+ "Array": 382,
304
+ "Record": 383,
305
+ "Partial": 384,
306
+ "Required": 385,
307
+ "Omit": 386,
308
+ "Pick": 387,
309
+ "Exclude": 388,
310
+ "Extract": 389,
311
+ "NonNullable": 390,
312
+ "ReturnType": 391,
313
+ "Parameters": 392,
314
+ "InstanceType": 393,
315
+ "constructor": 394,
316
+ "prototype": 395,
317
+ "Symbol": 396,
318
+ "BigInt": 397,
319
+ "Map": 398,
320
+ "Set": 399,
321
+
322
+ "fn": 400,
323
+ "mut": 401,
324
+ "pub": 402,
325
+ "impl": 403,
326
+ "trait": 404,
327
+ "struct": 405,
328
+ "enum": 406,
329
+ "match": 407,
330
+ "where": 408,
331
+ "use": 409,
332
+ "mod": 410,
333
+ "crate": 411,
334
+ "move": 412,
335
+ "Box": 413,
336
+ "Vec": 414,
337
+ "Option": 415,
338
+ "Result": 416,
339
+ "Ok": 417,
340
+ "Err": 418,
341
+ "Some": 419,
342
+ "func": 420,
343
+ "chan": 421,
344
+ "go": 422,
345
+ "defer": 423,
346
+ "select": 424,
347
+ "goroutine": 425,
348
+ "make": 426,
349
+ "append": 427,
350
+ "copy": 428,
351
+ "panic": 429,
352
+
353
+ "==": 430,
354
+ "!=": 431,
355
+ "<=": 432,
356
+ ">=": 433,
357
+ "=>": 434,
358
+ "->": 435,
359
+ "::": 436,
360
+ "**": 437,
361
+ "//": 438,
362
+ "&&": 439,
363
+ "||": 440,
364
+ "??": 441,
365
+ "?.": 442,
366
+ ":=": 443,
367
+ "+=": 444,
368
+ "-=": 445,
369
+ "*=": 446,
370
+ "/=": 447,
371
+ "%=": 448,
372
+ "**=": 449,
373
+ "//=": 450,
374
+ "&=": 451,
375
+ "|=": 452,
376
+ "^=": 453,
377
+ "<<": 454,
378
+ ">>": 455,
379
+ "<<=": 456,
380
+ ">>=": 457,
381
+ "...": 458,
382
+ "..": 459,
383
+ "/*": 460,
384
+ "*/": 461,
385
+ "/**": 462,
386
+ "*/": 463,
387
+ "///": 464,
388
+ "<!--": 465,
389
+ "-->": 466,
390
+ "${": 467,
391
+ "#{": 468,
392
+ "#{": 469,
393
+
394
+ "<div": 470,
395
+ "</div>": 471,
396
+ "<span": 472,
397
+ "</span>": 473,
398
+ "<p": 474,
399
+ "</p>": 475,
400
+ "<img": 476,
401
+ "<input": 477,
402
+ "<button": 478,
403
+ "<form": 479,
404
+ "<ul": 480,
405
+ "<li": 481,
406
+ "<h1": 482,
407
+ "<h2": 483,
408
+ "<h3": 484,
409
+ "<script": 485,
410
+ "<style": 486,
411
+ "<link": 487,
412
+ "<meta": 488,
413
+ "className": 489,
414
+ "onClick": 490,
415
+ "onChange": 491,
416
+ "onSubmit": 492,
417
+ "htmlFor": 493,
418
+ "padding": 494,
419
+ "margin": 495,
420
+ "display": 496,
421
+ "flex": 497,
422
+ "grid": 498,
423
+ "width": 499,
424
+ "height": 500,
425
+ "color": 501,
426
+ "background": 502,
427
+ "border": 503,
428
+ "position": 504,
429
+ "overflow": 505,
430
+ "transform": 506,
431
+ "transition": 507,
432
+ "animation": 508,
433
+ "z-index": 509,
434
+
435
+ "SELECT": 510,
436
+ "FROM": 511,
437
+ "WHERE": 512,
438
+ "INSERT": 513,
439
+ "INTO": 514,
440
+ "VALUES": 515,
441
+ "UPDATE": 516,
442
+ "DELETE": 517,
443
+ "CREATE": 518,
444
+ "TABLE": 519,
445
+ "INDEX": 520,
446
+ "JOIN": 521,
447
+ "LEFT": 522,
448
+ "RIGHT": 523,
449
+ "INNER": 524,
450
+ "OUTER": 525,
451
+ "ORDER": 526,
452
+ "GROUP": 527,
453
+ "HAVING": 528,
454
+ "LIMIT": 529,
455
+ "OFFSET": 530,
456
+ "DISTINCT": 531,
457
+ "PRIMARY": 532,
458
+ "FOREIGN": 533,
459
+ "REFERENCES": 534,
460
+ "CASCADE": 535,
461
+ "DEFAULT": 536,
462
+ "NOT": 537,
463
+ "NULL": 538,
464
+ "EXISTS": 539,
465
+
466
+ "useState": 540,
467
+ "useEffect": 541,
468
+ "useCallback": 542,
469
+ "useMemo": 543,
470
+ "useRef": 544,
471
+ "useContext": 545,
472
+ "useReducer": 546,
473
+ "React": 547,
474
+ "Component": 548,
475
+ "render": 549,
476
+ "props": 550,
477
+ "state": 551,
478
+ "dispatch": 552,
479
+ "axios": 553,
480
+ "fetch": 554,
481
+ "async": 555,
482
+ "await": 556,
483
+ "then": 557,
484
+ "catch": 558,
485
+ "finally": 559,
486
+ "resolve": 560,
487
+ "reject": 561,
488
+ "payload": 562,
489
+ "handler": 563,
490
+ "middleware": 564,
491
+ "router": 565,
492
+ "express": 566,
493
+ "FastAPI": 567,
494
+ "pydantic": 568,
495
+ "BaseModel": 569,
496
+ "SQLAlchemy": 570,
497
+ "session": 571,
498
+ "query": 572,
499
+ "filter": 573,
500
+ "numpy": 574,
501
+ "pandas": 575,
502
+ "torch": 576,
503
+ "tensorflow": 577,
504
+ "sklearn": 578,
505
+ "dataclass": 579,
506
+
507
+ "\u0120def": 580,
508
+ "\u0120class": 581,
509
+ "\u0120import": 582,
510
+ "\u0120from": 583,
511
+ "\u0120return": 584,
512
+ "\u0120if": 585,
513
+ "\u0120else": 586,
514
+ "\u0120for": 587,
515
+ "\u0120while": 588,
516
+ "\u0120try": 589,
517
+ "\u0120async": 590,
518
+ "\u0120await": 591,
519
+ "\u0120const": 592,
520
+ "\u0120let": 593,
521
+ "\u0120function": 594,
522
+ "\u0120export": 595,
523
+ "\u0120interface": 596,
524
+ "\u0120type": 597,
525
+ "\u0120struct": 598,
526
+ "\u0120impl": 599,
527
+ "\u0120fn": 600,
528
+ "\u0120pub": 601,
529
+ "\u0120func": 602,
530
+ "\u0120var": 603,
531
+ "\u0120new": 604,
532
+ "\u0120this": 605,
533
+ "\u0120super": 606,
534
+ "\u0120self": 607,
535
+ "\u0120yield": 608,
536
+ "\u0120raise": 609,
537
+ "\u0120throw": 610,
538
+ "\u0120switch": 611,
539
+ "\u0120case": 612,
540
+ "\u0120match": 613,
541
+ "\u0120where": 614,
542
+ "\u0120with": 615,
543
+ "\u0120pass": 616,
544
+ "\u0120break": 617,
545
+ "\u0120continue": 618,
546
+ "\u0120delete": 619,
547
+
548
+ "\u0120True": 620,
549
+ "\u0120False": 621,
550
+ "\u0120None": 622,
551
+ "\u0120null": 623,
552
+ "\u0120undefined": 624,
553
+ "\u0120true": 625,
554
+ "\u0120false": 626,
555
+ "\u0120void": 627,
556
+
557
+ "\u0120print": 628,
558
+ "\u0120len": 629,
559
+ "\u0120range": 630,
560
+ "\u0120list": 631,
561
+ "\u0120dict": 632,
562
+ "\u0120str": 633,
563
+ "\u0120int": 634,
564
+ "\u0120float": 635,
565
+ "\u0120bool": 636,
566
+ "\u0120isinstance": 637,
567
+ "\u0120append": 638,
568
+ "\u0120make": 639,
569
+ "\u0120map": 640,
570
+ "\u0120filter": 641,
571
+ "\u0120reduce": 642,
572
+ "\u0120sorted": 643,
573
+ "\u0120enumerate": 644,
574
+ "\u0120zip": 645,
575
+ "\u0120open": 646,
576
+ "\u0120read": 647,
577
+ "\u0120write": 648,
578
+ "\u0120close": 649,
579
+
580
+ " ": 650,
581
+ " ": 651,
582
+ " ": 652,
583
+ " ": 653,
584
+ "\t": 654,
585
+ "\u010a\u010a": 655,
586
+ "\u010a ": 656,
587
+ "\u010a ": 657,
588
+ "\u010a\t": 658,
589
+ "\u010a\t\t": 659,
590
+
591
+ "# ": 660,
592
+ "## ": 661,
593
+ "### ": 662,
594
+ "// ": 663,
595
+ "/* ": 664,
596
+ " */": 665,
597
+ "/** ": 666,
598
+ " * ": 667,
599
+ "\"\"\"": 668,
600
+ "'''": 669,
601
+ "#!": 670,
602
+ "#!/usr/bin/env": 671,
603
+ "# type: ignore": 672,
604
+ "# noqa": 673,
605
+ "# TODO": 674,
606
+ "# FIXME": 675,
607
+ "# NOTE": 676,
608
+ "# pylint": 677,
609
+ "@staticmethod": 678,
610
+ "@classmethod": 679,
611
+ "@property": 680,
612
+ "@abstractmethod": 681,
613
+ "@override": 682,
614
+ "@deprecated": 683,
615
+
616
+ "->": 684,
617
+ ": int": 685,
618
+ ": str": 686,
619
+ ": bool": 687,
620
+ ": float": 688,
621
+ ": list": 689,
622
+ ": dict": 690,
623
+ ": None": 691,
624
+ ": Optional": 692,
625
+ ": List": 693,
626
+ ": Dict": 694,
627
+ ": Tuple": 695,
628
+ ": Union": 696,
629
+ ": Any": 697,
630
+ ": bytes": 698,
631
+ ": callable": 699,
632
+
633
+ "Optional": 700,
634
+ "Union": 701,
635
+ "List": 702,
636
+ "Dict": 703,
637
+ "Tuple": 704,
638
+ "Callable": 705,
639
+ "Generator": 706,
640
+ "Iterator": 707,
641
+ "Iterable": 708,
642
+ "TypeVar": 709,
643
+ "Generic": 710,
644
+ "Protocol": 711,
645
+ "overload": 712,
646
+ "typing": 713,
647
+ "dataclasses": 714,
648
+ "field": 715,
649
+ "frozen": 716,
650
+ "slots": 717,
651
+
652
+ "config": 718,
653
+ "Config": 719,
654
+ "settings": 720,
655
+ "Settings": 721,
656
+ "model": 722,
657
+ "Model": 723,
658
+ "schema": 724,
659
+ "Schema": 725,
660
+ "database": 726,
661
+ "Database": 727,
662
+ "server": 728,
663
+ "Server": 729,
664
+ "client": 730,
665
+ "Client": 731,
666
+ "service": 732,
667
+ "Service": 733,
668
+ "repository": 734,
669
+ "Repository": 735,
670
+ "controller": 736,
671
+ "Controller": 737,
672
+ "middleware": 738,
673
+ "Middleware": 739,
674
+ "request": 740,
675
+ "Request": 741,
676
+ "response": 742,
677
+ "Response": 743,
678
+ "error": 744,
679
+ "Error": 745,
680
+ "exception": 746,
681
+ "Exception": 747,
682
+ "logger": 748,
683
+ "Logger": 749,
684
+
685
+ "unittest": 750,
686
+ "pytest": 751,
687
+ "describe": 752,
688
+ "it(": 753,
689
+ "test(": 754,
690
+ "expect": 755,
691
+ "assert": 756,
692
+ "assertEquals": 757,
693
+ "assertTrue": 758,
694
+ "assertFalse": 759,
695
+ "assertRaises": 760,
696
+ "mock": 761,
697
+ "Mock": 762,
698
+ "patch": 763,
699
+ "fixture": 764,
700
+ "setUp": 765,
701
+ "tearDown": 766,
702
+ "beforeEach": 767,
703
+ "afterEach": 768,
704
+ "beforeAll": 769,
705
+ "afterAll": 770,
706
+
707
+ "__init__": 780,
708
+ "__str__": 781,
709
+ "__repr__": 782,
710
+ "__len__": 783,
711
+ "__iter__": 784,
712
+ "__next__": 785,
713
+ "__enter__": 786,
714
+ "__exit__": 787,
715
+ "__call__": 788,
716
+ "__get__": 789,
717
+ "__set__": 790,
718
+ "__delete__": 791,
719
+ "__getitem__": 792,
720
+ "__setitem__": 793,
721
+ "__contains__": 794,
722
+ "__add__": 795,
723
+ "__mul__": 796,
724
+ "__eq__": 797,
725
+ "__lt__": 798,
726
+ "__hash__": 799,
727
+
728
+ "tailwind": 800,
729
+ "Tailwind": 801,
730
+ "styled": 802,
731
+ "css-in-js": 803,
732
+ "scss": 804,
733
+ "less": 805,
734
+ "webpack": 806,
735
+ "vite": 807,
736
+ "rollup": 808,
737
+ "esbuild": 809,
738
+ "turbopack": 810,
739
+ "eslint": 811,
740
+ "prettier": 812,
741
+ "typescript": 813,
742
+ "babel": 814,
743
+ "node": 815,
744
+ "npm": 816,
745
+ "yarn": 817,
746
+ "pnpm": 818,
747
+ "docker": 819,
748
+ "kubernetes": 820,
749
+ "terraform": 821,
750
+ "ansible": 822,
751
+ "github": 823,
752
+ "gitlab": 824,
753
+ "ci": 825,
754
+ "cd": 826,
755
+ "pipeline": 827,
756
+ "workflow": 828,
757
+ "action": 829,
758
+
759
+ "json": 830,
760
+ "yaml": 831,
761
+ "toml": 832,
762
+ "xml": 833,
763
+ "csv": 834,
764
+ "parquet": 835,
765
+ "arrow": 836,
766
+ "protobuf": 837,
767
+ "grpc": 838,
768
+ "graphql": 839,
769
+ "rest": 840,
770
+ "websocket": 841,
771
+ "mqtt": 842,
772
+ "redis": 843,
773
+ "postgres": 844,
774
+ "mysql": 845,
775
+ "mongodb": 846,
776
+ "sqlite": 847,
777
+ "kafka": 848,
778
+ "rabbitmq": 849,
779
+
780
+ "def __init__(self": 900,
781
+ "def __init__(self,": 901,
782
+ "self.": 902,
783
+ "cls.": 903,
784
+ "super().__init__": 904,
785
+ "if __name__": 905,
786
+ "__name__ == \"__main__\"": 906,
787
+ "if __name__ == \"__main__\":": 907,
788
+ "from __future__": 908,
789
+ "import os": 909,
790
+ "import sys": 910,
791
+ "import json": 911,
792
+ "import re": 912,
793
+ "import math": 913,
794
+ "import time": 914,
795
+ "import datetime": 915,
796
+ "import pathlib": 916,
797
+ "import logging": 917,
798
+ "import asyncio": 918,
799
+ "from typing import": 919,
800
+ "from pathlib import": 920,
801
+ "from dataclasses import": 921,
802
+ "from collections import": 922,
803
+ "from functools import": 923,
804
+ "from itertools import": 924,
805
+ "from contextlib import": 925,
806
+ "try:": 926,
807
+ "except Exception as e:": 927,
808
+ "except Exception as": 928,
809
+ "raise ValueError": 929,
810
+ "raise TypeError": 930,
811
+ "raise RuntimeError": 931,
812
+ "raise NotImplementedError": 932,
813
+ "raise KeyError": 933,
814
+ "raise IndexError": 934,
815
+ "raise AttributeError": 935,
816
+ "return None": 936,
817
+ "return True": 937,
818
+ "return False": 938,
819
+ "return self": 939,
820
+ "return result": 940,
821
+ "return response": 941,
822
+ "return {}": 942,
823
+ "return []": 943,
824
+
825
+ "console.log": 944,
826
+ "console.error": 945,
827
+ "console.warn": 946,
828
+ "console.info": 947,
829
+ "JSON.parse": 948,
830
+ "JSON.stringify": 949,
831
+ "Object.keys": 950,
832
+ "Object.values": 951,
833
+ "Object.entries": 952,
834
+ "Object.assign": 953,
835
+ "Array.from": 954,
836
+ "Array.isArray": 955,
837
+ "Promise.all": 956,
838
+ "Promise.resolve": 957,
839
+ "Promise.reject": 958,
840
+ "Math.floor": 959,
841
+ "Math.ceil": 960,
842
+ "Math.round": 961,
843
+ "Math.max": 962,
844
+ "Math.min": 963,
845
+ "Date.now": 964,
846
+
847
+ "<|image|>": 32000,
848
+ "<|im_start|>": 32001,
849
+ "<|im_end|>": 32002,
850
+ "<|vision_start|>": 32003,
851
+ "<|vision_end|>": 32004,
852
+ "<|image_pad|>": 32005,
853
+ "<|fim_prefix|>": 32006,
854
+ "<|fim_middle|>": 32007,
855
+ "<|fim_suffix|>": 32008,
856
+ "<|fim_pad|>": 32009,
857
+ "<|endoftext|>": 32010
858
+ }