xingxm commited on
Commit
3c6d824
·
verified ·
1 Parent(s): 90876b3

Add designcoder_qwen3.8_27b_adamw_bs128_data41287_step400 (bench-200: 91.19, strongest in release)

Browse files
.gitattributes CHANGED
@@ -42,3 +42,4 @@ designcoder_qwen3.6_27b_adamw_bs32_step1900_r2/tokenizer.json filter=lfs diff=lf
42
  designcoder_qwen3.5_4b_adamw_bs256_data41287_step200/tokenizer.json filter=lfs diff=lfs merge=lfs -text
43
  designcoder_qwen3.5_4b_muon_bs256_data41287_step200/tokenizer.json filter=lfs diff=lfs merge=lfs -text
44
  designcoder_qwen3.5_9b_adamw_bs256_data41287_step200/tokenizer.json filter=lfs diff=lfs merge=lfs -text
 
 
42
  designcoder_qwen3.5_4b_adamw_bs256_data41287_step200/tokenizer.json filter=lfs diff=lfs merge=lfs -text
43
  designcoder_qwen3.5_4b_muon_bs256_data41287_step200/tokenizer.json filter=lfs diff=lfs merge=lfs -text
44
  designcoder_qwen3.5_9b_adamw_bs256_data41287_step200/tokenizer.json filter=lfs diff=lfs merge=lfs -text
45
+ designcoder_qwen3.8_27b_adamw_bs128_data41287_step400/tokenizer.json filter=lfs diff=lfs merge=lfs -text
designcoder_qwen3.8_27b_adamw_bs128_data41287_step400/README.md ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ base_model: Qwen/Qwen3.8-27B
4
+ tags:
5
+ - designcoder
6
+ - ui-generation
7
+ - front-end
8
+ - sft
9
+ language:
10
+ - en
11
+ ---
12
+
13
+ # DesignCoder v2 - 27B (AdamW, step 400)
14
+
15
+ Supervised fine-tune of **Qwen3.8-27B** for design-to-code generation (landing pages and
16
+ dashboards) from the DesignCoder v2 agent trajectories.
17
+
18
+ ## Training
19
+
20
+ | Field | Value |
21
+ |---|---|
22
+ | Base model | `Qwen/Qwen3.8-27B` |
23
+ | Dataset | `designcoder_sft_v2_train` — **41,287 samples** (`data41287`) |
24
+ | Optimizer | AdamW |
25
+ | Learning rate | 1.0e-5 |
26
+ | Global batch size | 128 |
27
+ | Exported step | 400 |
28
+ | Epoch at export | 1.51 |
29
+ | Hardware | 8 nodes x 8 H20 |
30
+ | Source run | `designcoder_v2_27b_qwen38_newdata_8n64g_20260917_0228/checkpoint-400` |
31
+
32
+ > **Dataset note:** this checkpoint is trained on the **41,287-sample** revision
33
+ > (`ckpt_data41287`). The earlier checkpoints in this repository (`*_step1900`,
34
+ > `*_step3800`) come from the **37,865-sample** revision (`ckpt_data37865`) and are
35
+ > *not* directly comparable.
36
+
37
+ ## Benchmark
38
+
39
+ Evaluated on the frozen 200-case DesignCoder bench (`bench_data/test-prompts-200.jsonl`
40
+ + `test-rubrics-200.jsonl`). Every rubric item is a binary screenshot check, judged by a
41
+ vision model over full-page screenshots; the score is the unweighted mean of Prompt Fit
42
+ and the six rubric dimensions.
43
+
44
+ **Score: 91.19**
45
+
46
+ Strongest checkpoint in this release (+10 over 9B on the same subset).
47
+
48
+ ### Why this step and not the last one
49
+
50
+ Checkpoint selection was done by running the benchmark, not by picking the lowest
51
+ training loss. Across all four runs in this release the best checkpoint sits at roughly
52
+ 75% of training, and loss kept decreasing while benchmark scores fell. The most extreme
53
+ case: 4B AdamW loss improved from 0.2696 (step 200) to 0.2682 (step 266) while its score
54
+ collapsed from 84.22 to 68.35.
55
+
56
+ ## Usage
57
+
58
+ The model is trained as a tool-using agent. Each case runs
59
+ `design_search` -> (`websearch`, landing only) -> a final answer with exactly three code
60
+ blocks in this order: `html`, `css`, `js`. Reproduce the system prompts and tool
61
+ observation format from `examples/designcoder/runtime/infer_designcoder.py`; feeding a
62
+ bare instruction without the tool turns will not match the training distribution.
63
+
64
+ ```python
65
+ from transformers import AutoModelForCausalLM, AutoTokenizer
66
+
67
+ repo = "xingxm/DesignCoder"
68
+ sub = "designcoder_qwen3.8_27b_adamw_bs128_data41287_step400"
69
+ tok = AutoTokenizer.from_pretrained(repo, subfolder=sub)
70
+ model = AutoModelForCausalLM.from_pretrained(
71
+ repo, subfolder=sub, dtype="bfloat16", device_map="auto"
72
+ )
73
+ ```
designcoder_qwen3.8_27b_adamw_bs128_data41287_step400/chat_template.jinja ADDED
@@ -0,0 +1,170 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ {%- set reasoning_instructions = '' %}
46
+ {%- if enable_thinking is undefined or enable_thinking is true %}
47
+ {%- set resolved_reasoning_effort = reasoning_effort|default('xhigh') %}
48
+ {%- if resolved_reasoning_effort not in ('xhigh', 'medium', 'low') %}
49
+ {{- raise_exception('Unexpected reasoning effort ' ~ reasoning_effort ~ '. Supported types are xhigh (default), medium, and low.') }}
50
+ {%- endif %}
51
+ {%- if resolved_reasoning_effort == 'xhigh' %}
52
+ {%- set reasoning_instructions = 'Reasoning effort is set to xhigh. Please think carefully through the task, validate key assumptions, consider plausible alternatives, and prioritize correctness, consistency, and clarity in the final answer.' %}
53
+ {%- elif resolved_reasoning_effort == 'low' %}
54
+ {%- set reasoning_instructions = 'Reasoning effort is set to low. Keep your thinking brief and focused, moving directly to the conclusion without unnecessary elaboration.' %}
55
+ {%- endif %}
56
+ {%- endif %}
57
+ {%- if tools and tools is iterable and tools is not mapping %}
58
+ {{- '<|im_start|>system\n' }}
59
+ {%- if reasoning_instructions %}
60
+ {{- reasoning_instructions + '\n\n' }}
61
+ {%- endif %}
62
+ {{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
63
+ {%- for tool in tools %}
64
+ {{- "\n" }}
65
+ {{- tool | tojson }}
66
+ {%- endfor %}
67
+ {{- "\n</tools>" }}
68
+ {{- '\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>' }}
69
+ {%- if messages[0].role == 'system' %}
70
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
71
+ {%- if content %}
72
+ {{- '\n\n' + content }}
73
+ {%- endif %}
74
+ {%- endif %}
75
+ {{- '<|im_end|>\n' }}
76
+ {%- else %}
77
+ {%- if messages[0].role == 'system' %}
78
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
79
+ {%- if content %}
80
+ {{- '<|im_start|>system\n' + (reasoning_instructions + '\n\n' if reasoning_instructions else '') + content + '<|im_end|>\n' }}
81
+ {%- elif reasoning_instructions %}
82
+ {{- '<|im_start|>system\n' + reasoning_instructions + '<|im_end|>\n' }}
83
+ {%- endif %}
84
+ {%- elif reasoning_instructions %}
85
+ {{- '<|im_start|>system\n' + reasoning_instructions + '<|im_end|>\n' }}
86
+ {%- endif %}
87
+ {%- endif %}
88
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
89
+ {%- for message in messages[::-1] %}
90
+ {%- set index = (messages|length - 1) - loop.index0 %}
91
+ {%- if ns.multi_step_tool and message.role == "user" %}
92
+ {%- set content = render_content(message.content, false)|trim %}
93
+ {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}
94
+ {%- set ns.multi_step_tool = false %}
95
+ {%- set ns.last_query_index = index %}
96
+ {%- endif %}
97
+ {%- endif %}
98
+ {%- endfor %}
99
+ {%- if ns.multi_step_tool %}
100
+ {{- raise_exception('No user query found in messages.') }}
101
+ {%- endif %}
102
+ {%- for message in messages %}
103
+ {%- set content = render_content(message.content, true)|trim %}
104
+ {%- if message.role == "system" %}
105
+ {%- if not loop.first %}
106
+ {{- raise_exception('System message must be at the beginning.') }}
107
+ {%- endif %}
108
+ {%- elif message.role == "user" %}
109
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
110
+ {%- elif message.role == "assistant" %}
111
+ {%- set reasoning_content = '' %}
112
+ {%- if message.reasoning_content is string %}
113
+ {%- set reasoning_content = message.reasoning_content %}
114
+ {%- endif %}
115
+ {%- set reasoning_content = reasoning_content|trim %}
116
+ {%- if preserve_thinking is undefined or preserve_thinking is true or loop.index0 > ns.last_query_index %}
117
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content + '\n</think>\n\n' + content }}
118
+ {%- else %}
119
+ {{- '<|im_start|>' + message.role + '\n' + content }}
120
+ {%- endif %}
121
+ {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
122
+ {%- for tool_call in message.tool_calls %}
123
+ {%- if tool_call.function is defined %}
124
+ {%- set tool_call = tool_call.function %}
125
+ {%- endif %}
126
+ {%- if loop.first %}
127
+ {%- if content|trim %}
128
+ {{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
129
+ {%- else %}
130
+ {{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
131
+ {%- endif %}
132
+ {%- else %}
133
+ {{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
134
+ {%- endif %}
135
+ {%- if tool_call.arguments is defined and tool_call.arguments != '' %}
136
+ {%- for args_name, args_value in tool_call.arguments|items %}
137
+ {{- '<parameter=' + args_name + '>\n' }}
138
+ {%- set args_value = args_value | string if args_value is string else args_value | tojson | safe %}
139
+ {{- args_value }}
140
+ {{- '\n</parameter>\n' }}
141
+ {%- endfor %}
142
+ {%- endif %}
143
+ {{- '</function>\n</tool_call>' }}
144
+ {%- endfor %}
145
+ {%- endif %}
146
+ {{- '<|im_end|>\n' }}
147
+ {%- elif message.role == "tool" %}
148
+ {%- if loop.previtem and loop.previtem.role != "tool" %}
149
+ {{- '<|im_start|>user' }}
150
+ {%- endif %}
151
+ {{- '\n<tool_response>\n' }}
152
+ {{- content }}
153
+ {{- '\n</tool_response>' }}
154
+ {%- if not loop.last and loop.nextitem.role != "tool" %}
155
+ {{- '<|im_end|>\n' }}
156
+ {%- elif loop.last %}
157
+ {{- '<|im_end|>\n' }}
158
+ {%- endif %}
159
+ {%- else %}
160
+ {{- raise_exception('Unexpected message role.') }}
161
+ {%- endif %}
162
+ {%- endfor %}
163
+ {%- if add_generation_prompt %}
164
+ {{- '<|im_start|>assistant\n' }}
165
+ {%- if enable_thinking is defined and enable_thinking is false %}
166
+ {{- '<think>\n\n</think>\n\n' }}
167
+ {%- else %}
168
+ {{- '<think>\n' }}
169
+ {%- endif %}
170
+ {%- endif %}
designcoder_qwen3.8_27b_adamw_bs128_data41287_step400/config.json ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen3_5ForConditionalGeneration"
4
+ ],
5
+ "bos_token_id": null,
6
+ "dtype": "bfloat16",
7
+ "eos_token_id": 248046,
8
+ "hidden_size": 5120,
9
+ "image_token_id": 248056,
10
+ "language_model_only": false,
11
+ "model_type": "qwen3_5",
12
+ "pad_token_id": 248044,
13
+ "text_config": {
14
+ "attention_bias": false,
15
+ "attention_dropout": 0.0,
16
+ "attn_output_gate": true,
17
+ "bos_token_id": 248044,
18
+ "dtype": "bfloat16",
19
+ "eos_token_id": 248044,
20
+ "full_attention_interval": 4,
21
+ "head_dim": 256,
22
+ "hidden_act": "silu",
23
+ "hidden_size": 5120,
24
+ "initializer_range": 0.02,
25
+ "intermediate_size": 17408,
26
+ "layer_types": [
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
+ "linear_attention",
48
+ "linear_attention",
49
+ "linear_attention",
50
+ "full_attention",
51
+ "linear_attention",
52
+ "linear_attention",
53
+ "linear_attention",
54
+ "full_attention",
55
+ "linear_attention",
56
+ "linear_attention",
57
+ "linear_attention",
58
+ "full_attention",
59
+ "linear_attention",
60
+ "linear_attention",
61
+ "linear_attention",
62
+ "full_attention",
63
+ "linear_attention",
64
+ "linear_attention",
65
+ "linear_attention",
66
+ "full_attention",
67
+ "linear_attention",
68
+ "linear_attention",
69
+ "linear_attention",
70
+ "full_attention",
71
+ "linear_attention",
72
+ "linear_attention",
73
+ "linear_attention",
74
+ "full_attention",
75
+ "linear_attention",
76
+ "linear_attention",
77
+ "linear_attention",
78
+ "full_attention",
79
+ "linear_attention",
80
+ "linear_attention",
81
+ "linear_attention",
82
+ "full_attention",
83
+ "linear_attention",
84
+ "linear_attention",
85
+ "linear_attention",
86
+ "full_attention",
87
+ "linear_attention",
88
+ "linear_attention",
89
+ "linear_attention",
90
+ "full_attention"
91
+ ],
92
+ "linear_conv_kernel_dim": 4,
93
+ "linear_key_head_dim": 128,
94
+ "linear_num_key_heads": 16,
95
+ "linear_num_value_heads": 48,
96
+ "linear_value_head_dim": 128,
97
+ "mamba_ssm_dtype": "float32",
98
+ "max_position_embeddings": 262144,
99
+ "model_type": "qwen3_5_text",
100
+ "mtp_num_hidden_layers": 1,
101
+ "mtp_use_dedicated_embeddings": false,
102
+ "num_attention_heads": 24,
103
+ "num_hidden_layers": 64,
104
+ "num_key_value_heads": 4,
105
+ "output_gate_type": "swish",
106
+ "pad_token_id": null,
107
+ "partial_rotary_factor": 0.25,
108
+ "rms_norm_eps": 1e-06,
109
+ "rope_parameters": {
110
+ "mrope_interleaved": true,
111
+ "mrope_section": [
112
+ 11,
113
+ 11,
114
+ 10
115
+ ],
116
+ "partial_rotary_factor": 0.25,
117
+ "rope_theta": 10000000,
118
+ "rope_type": "default"
119
+ },
120
+ "tie_word_embeddings": false,
121
+ "use_cache": false,
122
+ "vocab_size": 248320
123
+ },
124
+ "tie_word_embeddings": false,
125
+ "transformers_version": "5.8.0",
126
+ "use_cache": false,
127
+ "video_token_id": 248057,
128
+ "vision_config": {
129
+ "deepstack_visual_indexes": [],
130
+ "depth": 27,
131
+ "dtype": "bfloat16",
132
+ "hidden_act": "gelu_pytorch_tanh",
133
+ "hidden_size": 1152,
134
+ "in_channels": 3,
135
+ "initializer_range": 0.02,
136
+ "intermediate_size": 4304,
137
+ "model_type": "qwen3_5_vision",
138
+ "num_heads": 16,
139
+ "num_position_embeddings": 2304,
140
+ "out_hidden_size": 5120,
141
+ "patch_size": 16,
142
+ "spatial_merge_size": 2,
143
+ "temporal_patch_size": 2
144
+ },
145
+ "vision_end_token_id": 248054,
146
+ "vision_start_token_id": 248053
147
+ }
designcoder_qwen3.8_27b_adamw_bs128_data41287_step400/generation_config.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "do_sample": true,
3
+ "eos_token_id": [
4
+ 248046,
5
+ 248046,
6
+ 248044
7
+ ],
8
+ "pad_token_id": 248044,
9
+ "temperature": 1.0,
10
+ "top_k": 20,
11
+ "top_p": 0.95,
12
+ "transformers_version": "5.8.0"
13
+ }
designcoder_qwen3.8_27b_adamw_bs128_data41287_step400/model-00001-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3896fe78fb0acedf991083d47ce1cf47081686db6ddb78c3dad5ae651168a7d2
3
+ size 49825162976
designcoder_qwen3.8_27b_adamw_bs128_data41287_step400/model-00002-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b8b87c6756f5f3eddf7ca739d06cd4c340fcdc4ac463e20bda5b31b169cc1552
3
+ size 4888445168
designcoder_qwen3.8_27b_adamw_bs128_data41287_step400/model.safetensors.index.json ADDED
The diff for this file is too large to render. See raw diff
 
designcoder_qwen3.8_27b_adamw_bs128_data41287_step400/processor_config.json ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "image_processor": {
3
+ "do_convert_rgb": true,
4
+ "do_normalize": true,
5
+ "do_rescale": true,
6
+ "do_resize": true,
7
+ "image_mean": [
8
+ 0.5,
9
+ 0.5,
10
+ 0.5
11
+ ],
12
+ "image_processor_type": "Qwen2VLImageProcessor",
13
+ "image_std": [
14
+ 0.5,
15
+ 0.5,
16
+ 0.5
17
+ ],
18
+ "merge_size": 2,
19
+ "patch_size": 16,
20
+ "resample": 3,
21
+ "rescale_factor": 0.00392156862745098,
22
+ "size": {
23
+ "longest_edge": 16777216,
24
+ "shortest_edge": 65536
25
+ },
26
+ "temporal_patch_size": 2
27
+ },
28
+ "processor_class": "Qwen3VLProcessor",
29
+ "video_processor": {
30
+ "do_convert_rgb": true,
31
+ "do_normalize": true,
32
+ "do_rescale": true,
33
+ "do_resize": true,
34
+ "do_sample_frames": true,
35
+ "fps": 2,
36
+ "image_mean": [
37
+ 0.5,
38
+ 0.5,
39
+ 0.5
40
+ ],
41
+ "image_std": [
42
+ 0.5,
43
+ 0.5,
44
+ 0.5
45
+ ],
46
+ "max_frames": 768,
47
+ "merge_size": 2,
48
+ "min_frames": 4,
49
+ "patch_size": 16,
50
+ "resample": 3,
51
+ "rescale_factor": 0.00392156862745098,
52
+ "return_metadata": false,
53
+ "size": {
54
+ "longest_edge": 25165824,
55
+ "shortest_edge": 4096
56
+ },
57
+ "temporal_patch_size": 2,
58
+ "video_processor_type": "Qwen3VLVideoProcessor"
59
+ }
60
+ }
designcoder_qwen3.8_27b_adamw_bs128_data41287_step400/tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523
3
+ size 19989325
designcoder_qwen3.8_27b_adamw_bs128_data41287_step400/tokenizer_config.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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": "<|im_end|>",
10
+ "errors": "replace",
11
+ "image_token": "<|image_pad|>",
12
+ "is_local": true,
13
+ "local_files_only": false,
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_token": "<|endoftext|>",
25
+ "padding_side": "right",
26
+ "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+",
27
+ "processor_class": "Qwen3VLProcessor",
28
+ "split_special_tokens": false,
29
+ "tokenizer_class": "Qwen2Tokenizer",
30
+ "unk_token": null,
31
+ "video_token": "<|video_pad|>",
32
+ "vision_bos_token": "<|vision_start|>",
33
+ "vision_eos_token": "<|vision_end|>"
34
+ }
designcoder_qwen3.8_27b_adamw_bs128_data41287_step400/trainer_log.jsonl ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"current_steps": 20, "total_steps": 530, "loss": 0.32881975173950195, "lr": 3.5849056603773586e-06, "epoch": 0.07561436672967864, "percentage": 3.77, "elapsed_time": "0:44:47", "remaining_time": "19:02:13"}
2
+ {"current_steps": 40, "total_steps": 530, "loss": 0.2864610910415649, "lr": 7.358490566037736e-06, "epoch": 0.15122873345935728, "percentage": 7.55, "elapsed_time": "1:27:00", "remaining_time": "17:45:47"}
3
+ {"current_steps": 60, "total_steps": 530, "loss": 0.26258695125579834, "lr": 9.99609654676786e-06, "epoch": 0.22684310018903592, "percentage": 11.32, "elapsed_time": "2:09:28", "remaining_time": "16:54:13"}
4
+ {"current_steps": 80, "total_steps": 530, "loss": 0.24955542087554933, "lr": 9.92687124249773e-06, "epoch": 0.30245746691871456, "percentage": 15.09, "elapsed_time": "2:51:48", "remaining_time": "16:06:23"}
5
+ {"current_steps": 100, "total_steps": 530, "loss": 0.24457950592041017, "lr": 9.772283630189727e-06, "epoch": 0.3780718336483932, "percentage": 18.87, "elapsed_time": "3:33:59", "remaining_time": "15:20:09"}
6
+ {"current_steps": 120, "total_steps": 530, "loss": 0.24043033123016358, "lr": 9.535012074008688e-06, "epoch": 0.45368620037807184, "percentage": 22.64, "elapsed_time": "4:16:14", "remaining_time": "14:35:28"}
7
+ {"current_steps": 140, "total_steps": 530, "loss": 0.23635098934173585, "lr": 9.219167509002526e-06, "epoch": 0.5293005671077504, "percentage": 26.42, "elapsed_time": "4:58:40", "remaining_time": "13:52:00"}
8
+ {"current_steps": 160, "total_steps": 530, "loss": 0.23346784114837646, "lr": 8.83022221559489e-06, "epoch": 0.6049149338374291, "percentage": 30.19, "elapsed_time": "5:41:05", "remaining_time": "13:08:46"}
9
+ {"current_steps": 180, "total_steps": 530, "loss": 0.2315444231033325, "lr": 8.374915007591053e-06, "epoch": 0.6805293005671077, "percentage": 33.96, "elapsed_time": "6:23:29", "remaining_time": "12:25:39"}
10
+ {"current_steps": 200, "total_steps": 530, "loss": 0.2285059690475464, "lr": 7.861134476396903e-06, "epoch": 0.7561436672967864, "percentage": 37.74, "elapsed_time": "7:05:46", "remaining_time": "11:42:31"}
11
+ {"current_steps": 220, "total_steps": 530, "loss": 0.22735247611999512, "lr": 7.297782314345972e-06, "epoch": 0.831758034026465, "percentage": 41.51, "elapsed_time": "7:48:05", "remaining_time": "10:59:35"}
12
+ {"current_steps": 240, "total_steps": 530, "loss": 0.2246119737625122, "lr": 6.694619085176159e-06, "epoch": 0.9073724007561437, "percentage": 45.28, "elapsed_time": "8:30:30", "remaining_time": "10:16:51"}
13
+ {"current_steps": 260, "total_steps": 530, "loss": 0.22438063621520996, "lr": 6.062095113816069e-06, "epoch": 0.9829867674858223, "percentage": 49.06, "elapsed_time": "9:12:50", "remaining_time": "9:34:05"}
14
+ {"current_steps": 280, "total_steps": 530, "loss": 0.21316697597503662, "lr": 5.411169425461822e-06, "epoch": 1.056710775047259, "percentage": 52.83, "elapsed_time": "9:54:03", "remaining_time": "8:50:24"}
15
+ {"current_steps": 300, "total_steps": 530, "loss": 0.2103102684020996, "lr": 4.753119870981486e-06, "epoch": 1.1323251417769375, "percentage": 56.6, "elapsed_time": "10:36:34", "remaining_time": "8:08:02"}
16
+ {"current_steps": 320, "total_steps": 530, "loss": 0.20908036231994628, "lr": 4.0993477283888264e-06, "epoch": 1.2079395085066162, "percentage": 60.38, "elapsed_time": "11:18:56", "remaining_time": "7:25:33"}
17
+ {"current_steps": 340, "total_steps": 530, "loss": 0.20854945182800294, "lr": 3.46118016583494e-06, "epoch": 1.283553875236295, "percentage": 64.15, "elapsed_time": "12:01:10", "remaining_time": "6:43:00"}
18
+ {"current_steps": 360, "total_steps": 530, "loss": 0.2070488691329956, "lr": 2.8496739886173994e-06, "epoch": 1.3591682419659734, "percentage": 67.92, "elapsed_time": "12:43:30", "remaining_time": "6:00:32"}
19
+ {"current_steps": 380, "total_steps": 530, "loss": 0.20638427734375, "lr": 2.275424070459803e-06, "epoch": 1.434782608695652, "percentage": 71.7, "elapsed_time": "13:25:53", "remaining_time": "5:18:06"}
20
+ {"current_steps": 400, "total_steps": 530, "loss": 0.20667724609375, "lr": 1.7483797881556175e-06, "epoch": 1.5103969754253308, "percentage": 75.47, "elapsed_time": "14:08:22", "remaining_time": "4:35:43"}
21
+ {"current_steps": 420, "total_steps": 530, "loss": 0.2058406114578247, "lr": 1.277672640004936e-06, "epoch": 1.5860113421550095, "percentage": 79.25, "elapsed_time": "14:55:42", "remaining_time": "3:54:35"}
22
+ {"current_steps": 440, "total_steps": 530, "loss": 0.20571742057800294, "lr": 8.714580347039491e-07, "epoch": 1.6616257088846882, "percentage": 83.02, "elapsed_time": "15:38:01", "remaining_time": "3:11:52"}
23
+ {"current_steps": 460, "total_steps": 530, "loss": 0.20586738586425782, "lr": 5.367739918315068e-07, "epoch": 1.7372400756143667, "percentage": 86.79, "elapsed_time": "16:20:27", "remaining_time": "2:29:12"}
24
+ {"current_steps": 480, "total_steps": 530, "loss": 0.20640807151794432, "lr": 2.7941920206915443e-07, "epoch": 1.8128544423440454, "percentage": 90.57, "elapsed_time": "17:02:43", "remaining_time": "1:46:32"}
25
+ {"current_steps": 500, "total_steps": 530, "loss": 0.20689654350280762, "lr": 1.0385255986682718e-07, "epoch": 1.888468809073724, "percentage": 94.34, "elapsed_time": "17:45:14", "remaining_time": "1:03:54"}
26
+ {"current_steps": 520, "total_steps": 530, "loss": 0.2059170961380005, "lr": 1.3115909237734203e-08, "epoch": 1.9640831758034025, "percentage": 98.11, "elapsed_time": "18:27:43", "remaining_time": "0:21:18"}
27
+ {"current_steps": 530, "total_steps": 530, "epoch": 2.0, "percentage": 100.0, "elapsed_time": "18:52:41", "remaining_time": "0:00:00"}
designcoder_qwen3.8_27b_adamw_bs128_data41287_step400/trainer_state.json ADDED
@@ -0,0 +1,174 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "best_global_step": null,
3
+ "best_metric": null,
4
+ "best_model_checkpoint": null,
5
+ "epoch": 1.5103969754253308,
6
+ "eval_steps": 500,
7
+ "global_step": 400,
8
+ "is_hyper_param_search": false,
9
+ "is_local_process_zero": true,
10
+ "is_world_process_zero": true,
11
+ "log_history": [
12
+ {
13
+ "epoch": 0.07561436672967864,
14
+ "grad_norm": 0.438688559712995,
15
+ "learning_rate": 3.5849056603773586e-06,
16
+ "loss": 0.32881975173950195,
17
+ "step": 20
18
+ },
19
+ {
20
+ "epoch": 0.15122873345935728,
21
+ "grad_norm": 0.26188054914423636,
22
+ "learning_rate": 7.358490566037736e-06,
23
+ "loss": 0.2864610910415649,
24
+ "step": 40
25
+ },
26
+ {
27
+ "epoch": 0.22684310018903592,
28
+ "grad_norm": 0.19747259082184018,
29
+ "learning_rate": 9.99609654676786e-06,
30
+ "loss": 0.26258695125579834,
31
+ "step": 60
32
+ },
33
+ {
34
+ "epoch": 0.30245746691871456,
35
+ "grad_norm": 0.20162042813979253,
36
+ "learning_rate": 9.92687124249773e-06,
37
+ "loss": 0.24955542087554933,
38
+ "step": 80
39
+ },
40
+ {
41
+ "epoch": 0.3780718336483932,
42
+ "grad_norm": 0.2201760211691365,
43
+ "learning_rate": 9.772283630189727e-06,
44
+ "loss": 0.24457950592041017,
45
+ "step": 100
46
+ },
47
+ {
48
+ "epoch": 0.45368620037807184,
49
+ "grad_norm": 0.24687833355840075,
50
+ "learning_rate": 9.535012074008688e-06,
51
+ "loss": 0.24043033123016358,
52
+ "step": 120
53
+ },
54
+ {
55
+ "epoch": 0.5293005671077504,
56
+ "grad_norm": 0.20426757729854475,
57
+ "learning_rate": 9.219167509002526e-06,
58
+ "loss": 0.23635098934173585,
59
+ "step": 140
60
+ },
61
+ {
62
+ "epoch": 0.6049149338374291,
63
+ "grad_norm": 0.19826035580661108,
64
+ "learning_rate": 8.83022221559489e-06,
65
+ "loss": 0.23346784114837646,
66
+ "step": 160
67
+ },
68
+ {
69
+ "epoch": 0.6805293005671077,
70
+ "grad_norm": 1.543676430006464,
71
+ "learning_rate": 8.374915007591053e-06,
72
+ "loss": 0.2315444231033325,
73
+ "step": 180
74
+ },
75
+ {
76
+ "epoch": 0.7561436672967864,
77
+ "grad_norm": 0.172012105399833,
78
+ "learning_rate": 7.861134476396903e-06,
79
+ "loss": 0.2285059690475464,
80
+ "step": 200
81
+ },
82
+ {
83
+ "epoch": 0.831758034026465,
84
+ "grad_norm": 0.18799022262823806,
85
+ "learning_rate": 7.297782314345972e-06,
86
+ "loss": 0.22735247611999512,
87
+ "step": 220
88
+ },
89
+ {
90
+ "epoch": 0.9073724007561437,
91
+ "grad_norm": 0.21107031510244956,
92
+ "learning_rate": 6.694619085176159e-06,
93
+ "loss": 0.2246119737625122,
94
+ "step": 240
95
+ },
96
+ {
97
+ "epoch": 0.9829867674858223,
98
+ "grad_norm": 0.23034246682096834,
99
+ "learning_rate": 6.062095113816069e-06,
100
+ "loss": 0.22438063621520996,
101
+ "step": 260
102
+ },
103
+ {
104
+ "epoch": 1.056710775047259,
105
+ "grad_norm": 0.21596770970128068,
106
+ "learning_rate": 5.411169425461822e-06,
107
+ "loss": 0.21316697597503662,
108
+ "step": 280
109
+ },
110
+ {
111
+ "epoch": 1.1323251417769375,
112
+ "grad_norm": 0.19025452942157067,
113
+ "learning_rate": 4.753119870981486e-06,
114
+ "loss": 0.2103102684020996,
115
+ "step": 300
116
+ },
117
+ {
118
+ "epoch": 1.2079395085066162,
119
+ "grad_norm": 0.17938436574500397,
120
+ "learning_rate": 4.0993477283888264e-06,
121
+ "loss": 0.20908036231994628,
122
+ "step": 320
123
+ },
124
+ {
125
+ "epoch": 1.283553875236295,
126
+ "grad_norm": 0.2933161689615977,
127
+ "learning_rate": 3.46118016583494e-06,
128
+ "loss": 0.20854945182800294,
129
+ "step": 340
130
+ },
131
+ {
132
+ "epoch": 1.3591682419659734,
133
+ "grad_norm": 0.1899593498390556,
134
+ "learning_rate": 2.8496739886173994e-06,
135
+ "loss": 0.2070488691329956,
136
+ "step": 360
137
+ },
138
+ {
139
+ "epoch": 1.434782608695652,
140
+ "grad_norm": 0.1620339039368721,
141
+ "learning_rate": 2.275424070459803e-06,
142
+ "loss": 0.20638427734375,
143
+ "step": 380
144
+ },
145
+ {
146
+ "epoch": 1.5103969754253308,
147
+ "grad_norm": 0.1664725209694028,
148
+ "learning_rate": 1.7483797881556175e-06,
149
+ "loss": 0.20667724609375,
150
+ "step": 400
151
+ }
152
+ ],
153
+ "logging_steps": 20,
154
+ "max_steps": 530,
155
+ "num_input_tokens_seen": 0,
156
+ "num_train_epochs": 2,
157
+ "save_steps": 400,
158
+ "stateful_callbacks": {
159
+ "TrainerControl": {
160
+ "args": {
161
+ "should_epoch_stop": false,
162
+ "should_evaluate": false,
163
+ "should_log": false,
164
+ "should_save": true,
165
+ "should_training_stop": false
166
+ },
167
+ "attributes": {}
168
+ }
169
+ },
170
+ "total_flos": 6.427951752883995e+18,
171
+ "train_batch_size": 1,
172
+ "trial_name": null,
173
+ "trial_params": null
174
+ }
designcoder_qwen3.8_27b_adamw_bs128_data41287_step400/training_loss.png ADDED