iTheresaApocalypse commited on
Commit
e88656b
·
verified ·
1 Parent(s): 5a81b05

Move the eight checkpoints to their own repos (THUSI-Lab/GameScaling-<size>-<mix>)

Browse files

The Hub counts model downloads on the root config.json only, so checkpoints in models/<name>/ never registered a download. Each checkpoint now lives at the root of its own repo; this repo keeps the client, prompts and scripts.

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. README.md +38 -42
  2. examples/run_example.py +1 -1
  3. models/0p8b_s1_1600h_gs6736/chat_template.jinja +0 -134
  4. models/0p8b_s1_1600h_gs6736/config.json +0 -104
  5. models/0p8b_s1_1600h_gs6736/generation_config.json +0 -9
  6. models/0p8b_s1_1600h_gs6736/model.safetensors +0 -3
  7. models/0p8b_s1_1600h_gs6736/preprocessor_config.json +0 -21
  8. models/0p8b_s1_1600h_gs6736/processor_config.json +0 -60
  9. models/0p8b_s1_1600h_gs6736/tokenizer.json +0 -3
  10. models/0p8b_s1_1600h_gs6736/tokenizer_config.json +0 -33
  11. models/0p8b_s1_1600h_gs6736/video_preprocessor_config.json +0 -21
  12. models/0p8b_s3_1600h_gs6760/chat_template.jinja +0 -134
  13. models/0p8b_s3_1600h_gs6760/config.json +0 -104
  14. models/0p8b_s3_1600h_gs6760/generation_config.json +0 -9
  15. models/0p8b_s3_1600h_gs6760/model.safetensors +0 -3
  16. models/0p8b_s3_1600h_gs6760/preprocessor_config.json +0 -21
  17. models/0p8b_s3_1600h_gs6760/processor_config.json +0 -60
  18. models/0p8b_s3_1600h_gs6760/tokenizer.json +0 -3
  19. models/0p8b_s3_1600h_gs6760/tokenizer_config.json +0 -33
  20. models/0p8b_s3_1600h_gs6760/video_preprocessor_config.json +0 -21
  21. models/27b_s1_1600h_gs6995/chat_template.jinja +0 -134
  22. models/27b_s1_1600h_gs6995/config.json +0 -144
  23. models/27b_s1_1600h_gs6995/generation_config.json +0 -13
  24. models/27b_s1_1600h_gs6995/model-00001-of-00002.safetensors +0 -3
  25. models/27b_s1_1600h_gs6995/model-00002-of-00002.safetensors +0 -3
  26. models/27b_s1_1600h_gs6995/model.safetensors.index.json +0 -0
  27. models/27b_s1_1600h_gs6995/preprocessor_config.json +0 -21
  28. models/27b_s1_1600h_gs6995/processor_config.json +0 -60
  29. models/27b_s1_1600h_gs6995/tokenizer.json +0 -3
  30. models/27b_s1_1600h_gs6995/tokenizer_config.json +0 -33
  31. models/27b_s1_1600h_gs6995/video_preprocessor_config.json +0 -21
  32. models/27b_s3_1600h_gs7020/chat_template.jinja +0 -134
  33. models/27b_s3_1600h_gs7020/config.json +0 -144
  34. models/27b_s3_1600h_gs7020/generation_config.json +0 -13
  35. models/27b_s3_1600h_gs7020/model-00001-of-00002.safetensors +0 -3
  36. models/27b_s3_1600h_gs7020/model-00002-of-00002.safetensors +0 -3
  37. models/27b_s3_1600h_gs7020/model.safetensors.index.json +0 -0
  38. models/27b_s3_1600h_gs7020/preprocessor_config.json +0 -21
  39. models/27b_s3_1600h_gs7020/processor_config.json +0 -60
  40. models/27b_s3_1600h_gs7020/tokenizer.json +0 -3
  41. models/27b_s3_1600h_gs7020/tokenizer_config.json +0 -33
  42. models/27b_s3_1600h_gs7020/video_preprocessor_config.json +0 -21
  43. models/2b_s1_1600h_gs6736/chat_template.jinja +0 -134
  44. models/2b_s1_1600h_gs6736/config.json +0 -104
  45. models/2b_s1_1600h_gs6736/generation_config.json +0 -9
  46. models/2b_s1_1600h_gs6736/model.safetensors +0 -3
  47. models/2b_s1_1600h_gs6736/preprocessor_config.json +0 -21
  48. models/2b_s1_1600h_gs6736/processor_config.json +0 -60
  49. models/2b_s1_1600h_gs6736/tokenizer.json +0 -3
  50. models/2b_s1_1600h_gs6736/tokenizer_config.json +0 -33
README.md CHANGED
@@ -60,50 +60,42 @@ frames and actions) and returns the next **200 ms of keyboard and mouse actions*
60
  33 ms each, plus one mouse movement and scroll for the whole chunk. The model may think before it
61
  acts.
62
 
63
- This repository contains eight checkpoints, the inference client, and the standard system-prompt
64
- template. It is everything needed to serve a checkpoint and run it in a game; it contains no
65
- training code. Paper results and analysis are on the [project page](https://gamescaling.github.io).
66
 
67
  ## Checkpoints
68
 
69
- | Model | Folder | Weights | GPUs (bf16) |
70
- |---|---|---:|:---:|
71
- | GameScaling-0.8B-S1 | `models/0p8b_s1_1600h_gs6736` | 2.2 GB | 1 |
72
- | GameScaling-0.8B-S3 | `models/0p8b_s3_1600h_gs6760` | 2.2 GB | 1 |
73
- | GameScaling-2B-S1 | `models/2b_s1_1600h_gs6736` | 5.4 GB | 1 |
74
- | GameScaling-2B-S3 | `models/2b_s3_1600h_gs6760` | 5.4 GB | 1 |
75
- | GameScaling-9B-S1 | `models/9b_s1_1600h_gs6736` | 18.8 GB | 1 |
76
- | GameScaling-9B-S3 | `models/9b_s3_1600h_gs6760` | 18.8 GB | 1 |
77
- | GameScaling-27B-S1 | `models/27b_s1_1600h_gs6995` | 54.7 GB | 2 (tensor parallel) |
78
- | GameScaling-27B-S3 | `models/27b_s3_1600h_gs7020` | 54.7 GB | 2 (tensor parallel) |
79
 
80
  - **S1** is trained on Minecraft gameplay only. **S3** is a balanced mixture: 27% Minecraft, the
81
  rest from other games. All checkpoints use 1,600 h of gameplay.
82
- - Folder names are `<size>_<mixture>_<hours>h_gs<training steps>`. Weights are bfloat16, from the
83
- Qwen3.5-0.8B / 2B / 9B / 27B backbones.
84
 
85
  ## File tree
86
 
87
  ```text
 
 
 
 
 
 
 
 
 
 
 
88
  THUSI-Lab/GameScaling
89
- ├── models/ eight checkpoints, one folder each
90
- │ ├── 0p8b_s1_1600h_gs6736/
91
- │ │ ├── config.json Qwen3.5 architecture, bfloat16
92
- │ │ ├── model.safetensors weights (27B: 2 shards + index)
93
- │ │ ├── chat_template.jinja required, renders history turns
94
- │ │ ├── tokenizer.json
95
- │ │ ├── tokenizer_config.json
96
- │ │ ├── generation_config.json
97
- │ │ ├── preprocessor_config.json
98
- │ │ ├── processor_config.json
99
- │ │ └── video_preprocessor_config.json
100
- │ ├── 0p8b_s3_1600h_gs6760/
101
- │ ├── 2b_s1_1600h_gs6736/
102
- │ ├── 2b_s3_1600h_gs6760/
103
- │ ├── 9b_s1_1600h_gs6736/
104
- │ ├── 9b_s3_1600h_gs6760/
105
- │ ├── 27b_s1_1600h_gs6995/
106
- │ └── 27b_s3_1600h_gs7020/
107
  ├── prompts/
108
  │ ├── system_prompt_template.txt standard prompt, 3 slots (§2)
109
  │ └── example_doom_battle1.txt complete Doom prompt (§2)
@@ -125,23 +117,27 @@ THUSI-Lab/GameScaling
125
 
126
  ## 1. Download and serve
127
 
128
- Download only the checkpoint you need:
129
 
130
  ```bash
131
  pip install -U huggingface_hub
132
- huggingface-cli download THUSI-Lab/GameScaling \
133
- --include "models/9b_s1_1600h_gs6736/*" "gamescaling/*" "prompts/*" "scripts/*" \
134
- "examples/*" "tests/*" "requirements.txt" \
135
- --local-dir ./GameScaling
136
  cd GameScaling
137
  ```
138
 
139
- Serve it with vLLM (tested with 0.17.0):
140
 
141
  ```bash
142
  pip install "vllm>=0.17"
143
- bash scripts/serve_vllm.sh models/9b_s1_1600h_gs6736 8000 # 0.8B-9B fit on one GPU
144
- bash scripts/serve_vllm.sh models/27b_s1_1600h_gs6995 8000 2 # 27B: tensor parallel 2
 
 
 
 
 
 
 
145
  ```
146
 
147
  `serve_vllm.sh CKPT [PORT] [TP]` starts vLLM with `--served-model-name gamescaling`, bfloat16,
@@ -159,7 +155,7 @@ python tests/test_core.py # offline checks, no server ne
159
 
160
  Things to keep as shipped:
161
 
162
- - **Chat template.** Use the `chat_template.jinja` in the checkpoint folder (vLLM loads it by
163
  default). Do not replace it with the stock Qwen template: this one renders past turns without
164
  reasoning as `<think>\n\n</think>\n\n<|action_start|>...`, token-for-token as in training.
165
  - **Special tokens.** Requests must set `skip_special_tokens: false`, or the server strips the
 
60
  33 ms each, plus one mouse movement and scroll for the whole chunk. The model may think before it
61
  acts.
62
 
63
+ This repository contains the inference client and the standard system-prompt template; each of the
64
+ eight checkpoints is its own repository (below). Together they are everything needed to serve a
65
+ checkpoint and run it in a game; there is no training code. Paper results and analysis are on the [project page](https://gamescaling.github.io).
66
 
67
  ## Checkpoints
68
 
69
+ | Model | Training steps | Weights | GPUs (bf16) |
70
+ |---|---:|---:|:---:|
71
+ | [GameScaling-0.8B-S1](https://huggingface.co/THUSI-Lab/GameScaling-0.8B-S1) | 6,736 | 2.2 GB | 1 |
72
+ | [GameScaling-0.8B-S3](https://huggingface.co/THUSI-Lab/GameScaling-0.8B-S3) | 6,760 | 2.2 GB | 1 |
73
+ | [GameScaling-2B-S1](https://huggingface.co/THUSI-Lab/GameScaling-2B-S1) | 6,736 | 5.4 GB | 1 |
74
+ | [GameScaling-2B-S3](https://huggingface.co/THUSI-Lab/GameScaling-2B-S3) | 6,760 | 5.4 GB | 1 |
75
+ | [GameScaling-9B-S1](https://huggingface.co/THUSI-Lab/GameScaling-9B-S1) | 6,736 | 18.8 GB | 1 |
76
+ | [GameScaling-9B-S3](https://huggingface.co/THUSI-Lab/GameScaling-9B-S3) | 6,760 | 18.8 GB | 1 |
77
+ | [GameScaling-27B-S1](https://huggingface.co/THUSI-Lab/GameScaling-27B-S1) | 6,995 | 54.7 GB | 2 (tensor parallel) |
78
+ | [GameScaling-27B-S3](https://huggingface.co/THUSI-Lab/GameScaling-27B-S3) | 7,020 | 54.7 GB | 2 (tensor parallel) |
79
 
80
  - **S1** is trained on Minecraft gameplay only. **S3** is a balanced mixture: 27% Minecraft, the
81
  rest from other games. All checkpoints use 1,600 h of gameplay.
82
+ - Weights are bfloat16, from the Qwen3.5-0.8B / 2B / 9B / 27B backbones.
 
83
 
84
  ## File tree
85
 
86
  ```text
87
+ THUSI-Lab/GameScaling-<size>-<mixture> one repository per checkpoint
88
+ ├── config.json Qwen3.5 architecture, bfloat16
89
+ ├── model.safetensors weights (27B: 2 shards + index)
90
+ ├── chat_template.jinja required, renders history turns
91
+ ├── tokenizer.json
92
+ ├── tokenizer_config.json
93
+ ├── generation_config.json
94
+ ├── preprocessor_config.json
95
+ ├── processor_config.json
96
+ └── video_preprocessor_config.json
97
+
98
  THUSI-Lab/GameScaling
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  ├── prompts/
100
  │ ├── system_prompt_template.txt standard prompt, 3 slots (§2)
101
  │ └── example_doom_battle1.txt complete Doom prompt (§2)
 
117
 
118
  ## 1. Download and serve
119
 
120
+ Download the client and scripts from this repository:
121
 
122
  ```bash
123
  pip install -U huggingface_hub
124
+ huggingface-cli download THUSI-Lab/GameScaling --exclude "assets/*" --local-dir ./GameScaling
 
 
 
125
  cd GameScaling
126
  ```
127
 
128
+ Serve a checkpoint with vLLM (tested with 0.17.0); vLLM fetches the weights from its repository:
129
 
130
  ```bash
131
  pip install "vllm>=0.17"
132
+ bash scripts/serve_vllm.sh THUSI-Lab/GameScaling-9B-S1 8000 # 0.8B-9B fit on one GPU
133
+ bash scripts/serve_vllm.sh THUSI-Lab/GameScaling-27B-S1 8000 2 # 27B: tensor parallel 2
134
+ ```
135
+
136
+ To keep the weights in a local folder instead, download the checkpoint repository and pass its path:
137
+
138
+ ```bash
139
+ huggingface-cli download THUSI-Lab/GameScaling-9B-S1 --local-dir ./GameScaling-9B-S1
140
+ bash scripts/serve_vllm.sh ./GameScaling-9B-S1 8000
141
  ```
142
 
143
  `serve_vllm.sh CKPT [PORT] [TP]` starts vLLM with `--served-model-name gamescaling`, bfloat16,
 
155
 
156
  Things to keep as shipped:
157
 
158
+ - **Chat template.** Use the `chat_template.jinja` in the checkpoint repository (vLLM loads it by
159
  default). Do not replace it with the stock Qwen template: this one renders past turns without
160
  reasoning as `<think>\n\n</think>\n\n<|action_start|>...`, token-for-token as in training.
161
  - **Special tokens.** Requests must set `skip_special_tokens: false`, or the server strips the
examples/run_example.py CHANGED
@@ -5,7 +5,7 @@ GameScaling-9B-S3, and `examples/doom_battle1_action.txt` is the reply the model
5
  gave on that frame (a monster just left of the crosshair: turn left and fire).
6
 
7
  python examples/run_example.py --offline # parse the reference reply only
8
- bash scripts/serve_vllm.sh models/9b_s3_1600h_gs6760 8000
9
  python examples/run_example.py # prefill <think>
10
  python examples/run_example.py --no-reasoning # prefill <think>\\n\\n</think>
11
 
 
5
  gave on that frame (a monster just left of the crosshair: turn left and fire).
6
 
7
  python examples/run_example.py --offline # parse the reference reply only
8
+ bash scripts/serve_vllm.sh THUSI-Lab/GameScaling-9B-S3 8000
9
  python examples/run_example.py # prefill <think>
10
  python examples/run_example.py --no-reasoning # prefill <think>\\n\\n</think>
11
 
models/0p8b_s1_1600h_gs6736/chat_template.jinja DELETED
@@ -1,134 +0,0 @@
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
- {#- ICLR27-GameScaling CPT permissive template:
43
- - 去掉原 Qwen3.5 模板对 "user query" 的强制断言(逐轮套模板会遇到无 user 的单轮)。
44
- - 去掉 assistant 轮的 <think> 注入(该注入依赖全局 last_query_index, 会使
45
- "逐轮拼接 != 整体" 从而破坏 MultiTurnSFTDataset.sanity_check 与 loss 掩码对齐)。
46
- - 去掉原模板的 `{%- if not messages %}` 空判断: 本管线把 messages 以 numpy object-array
47
- 传入, `not <ndarray>` 会触发 "truth value of an array ... is ambiguous"。 #}
48
- {%- if tools and tools is iterable and tools is not mapping %}
49
- {{- '<|im_start|>system\n' }}
50
- {{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
51
- {%- for tool in tools %}
52
- {{- "\n" }}
53
- {{- tool | tojson }}
54
- {%- endfor %}
55
- {{- "\n</tools>" }}
56
- {{- '\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>' }}
57
- {%- if messages[0].role == 'system' %}
58
- {%- set content = render_content(messages[0].content, false, true)|trim %}
59
- {%- if content %}
60
- {{- '\n\n' + content }}
61
- {%- endif %}
62
- {%- endif %}
63
- {{- '<|im_end|>\n' }}
64
- {%- else %}
65
- {%- if messages[0].role == 'system' %}
66
- {%- set content = render_content(messages[0].content, false, true)|trim %}
67
- {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
68
- {%- endif %}
69
- {%- endif %}
70
- {%- for message in messages %}
71
- {%- set content = render_content(message.content, true)|trim %}
72
- {%- if message.role == "system" %}
73
- {%- if not loop.first %}
74
- {{- raise_exception('System message must be at the beginning.') }}
75
- {%- endif %}
76
- {%- elif message.role == "user" %}
77
- {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
78
- {%- elif message.role == "assistant" %}
79
- {#- ICLR27 think 处理(逐轮、常量、不依赖跨轮 index => 不破坏 sanity_check 与 loss 掩码):
80
- - 若该轮本身已带 <think>(如 zebra_cot 推理数据): 原样保留其真实思维链, 不再注入,
81
- 避免拼成"空 think + 真 think"的双块(那会破坏 Qwen 原生"恰好一个 think 块"结构)。
82
- - 否则(VPT/游戏/普通 VL 等无 think 的轮): 注入 Qwen 原生"空 think"块 <think>\n\n</think>\n\n,
83
- 训练无 think GT 只保结构, ���模型仍会输出 <think>...</think>, 不破坏原生思考通路;
84
- inference 端由生成提示(下方 add_generation_prompt, 不注入)自由填充思考内容。 #}
85
- {%- if '<think>' in content or '</think>' in content %}
86
- {{- '<|im_start|>' + message.role + '\n' + content }}
87
- {%- else %}
88
- {{- '<|im_start|>' + message.role + '\n' + '<think>\n\n</think>\n\n' + content }}
89
- {%- endif %}
90
- {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
91
- {%- for tool_call in message.tool_calls %}
92
- {%- if tool_call.function is defined %}
93
- {%- set tool_call = tool_call.function %}
94
- {%- endif %}
95
- {%- if loop.first %}
96
- {%- if content|trim %}
97
- {{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
98
- {%- else %}
99
- {{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
100
- {%- endif %}
101
- {%- else %}
102
- {{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
103
- {%- endif %}
104
- {%- if tool_call.arguments is defined %}
105
- {%- for args_name, args_value in tool_call.arguments|items %}
106
- {{- '<parameter=' + args_name + '>\n' }}
107
- {%- 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 %}
108
- {{- args_value }}
109
- {{- '\n</parameter>\n' }}
110
- {%- endfor %}
111
- {%- endif %}
112
- {{- '</function>\n</tool_call>' }}
113
- {%- endfor %}
114
- {%- endif %}
115
- {{- '<|im_end|>\n' }}
116
- {%- elif message.role == "tool" %}
117
- {%- if loop.previtem and loop.previtem.role != "tool" %}
118
- {{- '<|im_start|>user' }}
119
- {%- endif %}
120
- {{- '\n<tool_response>\n' }}
121
- {{- content }}
122
- {{- '\n</tool_response>' }}
123
- {%- if not loop.last and loop.nextitem.role != "tool" %}
124
- {{- '<|im_end|>\n' }}
125
- {%- elif loop.last %}
126
- {{- '<|im_end|>\n' }}
127
- {%- endif %}
128
- {%- else %}
129
- {{- raise_exception('Unexpected message role.') }}
130
- {%- endif %}
131
- {%- endfor %}
132
- {%- if add_generation_prompt %}
133
- {{- '<|im_start|>assistant\n' }}
134
- {%- endif %}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/0p8b_s1_1600h_gs6736/config.json DELETED
@@ -1,104 +0,0 @@
1
- {
2
- "architectures": [
3
- "Qwen3_5ForConditionalGeneration"
4
- ],
5
- "bos_token_id": null,
6
- "dtype": "bfloat16",
7
- "eos_token_id": 248046,
8
- "image_token_id": 248056,
9
- "model_type": "qwen3_5",
10
- "pad_token_id": 248044,
11
- "text_config": {
12
- "attention_bias": false,
13
- "attention_dropout": 0.0,
14
- "attn_output_gate": true,
15
- "bos_token_id": null,
16
- "dtype": "bfloat16",
17
- "eos_token_id": 248044,
18
- "full_attention_interval": 4,
19
- "head_dim": 256,
20
- "hidden_act": "silu",
21
- "hidden_size": 1024,
22
- "initializer_range": 0.02,
23
- "intermediate_size": 3584,
24
- "layer_types": [
25
- "linear_attention",
26
- "linear_attention",
27
- "linear_attention",
28
- "full_attention",
29
- "linear_attention",
30
- "linear_attention",
31
- "linear_attention",
32
- "full_attention",
33
- "linear_attention",
34
- "linear_attention",
35
- "linear_attention",
36
- "full_attention",
37
- "linear_attention",
38
- "linear_attention",
39
- "linear_attention",
40
- "full_attention",
41
- "linear_attention",
42
- "linear_attention",
43
- "linear_attention",
44
- "full_attention",
45
- "linear_attention",
46
- "linear_attention",
47
- "linear_attention",
48
- "full_attention"
49
- ],
50
- "linear_conv_kernel_dim": 4,
51
- "linear_key_head_dim": 128,
52
- "linear_num_key_heads": 16,
53
- "linear_num_value_heads": 16,
54
- "linear_value_head_dim": 128,
55
- "mamba_ssm_dtype": "float32",
56
- "max_position_embeddings": 262144,
57
- "mlp_only_layers": [],
58
- "model_type": "qwen3_5_text",
59
- "mtp_num_hidden_layers": 1,
60
- "mtp_use_dedicated_embeddings": false,
61
- "num_attention_heads": 8,
62
- "num_hidden_layers": 24,
63
- "num_key_value_heads": 2,
64
- "pad_token_id": null,
65
- "partial_rotary_factor": 0.25,
66
- "rms_norm_eps": 1e-06,
67
- "rope_parameters": {
68
- "mrope_interleaved": true,
69
- "mrope_section": [
70
- 11,
71
- 11,
72
- 10
73
- ],
74
- "partial_rotary_factor": 0.25,
75
- "rope_theta": 10000000,
76
- "rope_type": "default"
77
- },
78
- "tie_word_embeddings": true,
79
- "use_cache": true,
80
- "vocab_size": 248320
81
- },
82
- "tie_word_embeddings": true,
83
- "transformers_version": "5.14.1",
84
- "video_token_id": 248057,
85
- "vision_config": {
86
- "deepstack_visual_indexes": [],
87
- "depth": 12,
88
- "dtype": "bfloat16",
89
- "hidden_act": "gelu_pytorch_tanh",
90
- "hidden_size": 768,
91
- "in_channels": 3,
92
- "initializer_range": 0.02,
93
- "intermediate_size": 3072,
94
- "model_type": "qwen3_5_vision",
95
- "num_heads": 12,
96
- "num_position_embeddings": 2304,
97
- "out_hidden_size": 1024,
98
- "patch_size": 16,
99
- "spatial_merge_size": 2,
100
- "temporal_patch_size": 2
101
- },
102
- "vision_end_token_id": 248054,
103
- "vision_start_token_id": 248053
104
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/0p8b_s1_1600h_gs6736/generation_config.json DELETED
@@ -1,9 +0,0 @@
1
- {
2
- "_from_model_config": true,
3
- "eos_token_id": 248046,
4
- "output_attentions": false,
5
- "output_hidden_states": false,
6
- "pad_token_id": 248044,
7
- "transformers_version": "5.14.1",
8
- "use_cache": true
9
- }
 
 
 
 
 
 
 
 
 
 
models/0p8b_s1_1600h_gs6736/model.safetensors DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:b2986b2a0deec5dd76c8c72946e7f65daf4b695c76c9b01c4f5fff9433dbeb67
3
- size 2214590296
 
 
 
 
models/0p8b_s1_1600h_gs6736/preprocessor_config.json DELETED
@@ -1,21 +0,0 @@
1
- {
2
- "size": {
3
- "longest_edge": 16777216,
4
- "shortest_edge": 65536
5
- },
6
- "patch_size": 16,
7
- "temporal_patch_size": 2,
8
- "merge_size": 2,
9
- "image_mean": [
10
- 0.5,
11
- 0.5,
12
- 0.5
13
- ],
14
- "image_std": [
15
- 0.5,
16
- 0.5,
17
- 0.5
18
- ],
19
- "processor_class": "Qwen3VLProcessor",
20
- "image_processor_type": "Qwen2VLImageProcessorFast"
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/0p8b_s1_1600h_gs6736/processor_config.json DELETED
@@ -1,60 +0,0 @@
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
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/0p8b_s1_1600h_gs6736/tokenizer.json DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523
3
- size 19989325
 
 
 
 
models/0p8b_s1_1600h_gs6736/tokenizer_config.json DELETED
@@ -1,33 +0,0 @@
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
- "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+",
26
- "processor_class": "Qwen3VLProcessor",
27
- "split_special_tokens": false,
28
- "tokenizer_class": "Qwen2Tokenizer",
29
- "unk_token": null,
30
- "video_token": "<|video_pad|>",
31
- "vision_bos_token": "<|vision_start|>",
32
- "vision_eos_token": "<|vision_end|>"
33
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/0p8b_s1_1600h_gs6736/video_preprocessor_config.json DELETED
@@ -1,21 +0,0 @@
1
- {
2
- "size": {
3
- "longest_edge": 25165824,
4
- "shortest_edge": 4096
5
- },
6
- "patch_size": 16,
7
- "temporal_patch_size": 2,
8
- "merge_size": 2,
9
- "image_mean": [
10
- 0.5,
11
- 0.5,
12
- 0.5
13
- ],
14
- "image_std": [
15
- 0.5,
16
- 0.5,
17
- 0.5
18
- ],
19
- "processor_class": "Qwen3VLProcessor",
20
- "video_processor_type": "Qwen3VLVideoProcessor"
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/0p8b_s3_1600h_gs6760/chat_template.jinja DELETED
@@ -1,134 +0,0 @@
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
- {#- ICLR27-GameScaling CPT permissive template:
43
- - 去掉原 Qwen3.5 模板对 "user query" 的强制断言(逐轮套模板会遇到无 user 的单轮)。
44
- - 去掉 assistant 轮的 <think> 注入(该注入依赖全局 last_query_index, 会使
45
- "逐轮拼接 != 整体" 从而破坏 MultiTurnSFTDataset.sanity_check 与 loss 掩码对齐)。
46
- - 去掉原模板的 `{%- if not messages %}` 空判断: 本管线把 messages 以 numpy object-array
47
- 传入, `not <ndarray>` 会触发 "truth value of an array ... is ambiguous"。 #}
48
- {%- if tools and tools is iterable and tools is not mapping %}
49
- {{- '<|im_start|>system\n' }}
50
- {{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
51
- {%- for tool in tools %}
52
- {{- "\n" }}
53
- {{- tool | tojson }}
54
- {%- endfor %}
55
- {{- "\n</tools>" }}
56
- {{- '\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>' }}
57
- {%- if messages[0].role == 'system' %}
58
- {%- set content = render_content(messages[0].content, false, true)|trim %}
59
- {%- if content %}
60
- {{- '\n\n' + content }}
61
- {%- endif %}
62
- {%- endif %}
63
- {{- '<|im_end|>\n' }}
64
- {%- else %}
65
- {%- if messages[0].role == 'system' %}
66
- {%- set content = render_content(messages[0].content, false, true)|trim %}
67
- {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
68
- {%- endif %}
69
- {%- endif %}
70
- {%- for message in messages %}
71
- {%- set content = render_content(message.content, true)|trim %}
72
- {%- if message.role == "system" %}
73
- {%- if not loop.first %}
74
- {{- raise_exception('System message must be at the beginning.') }}
75
- {%- endif %}
76
- {%- elif message.role == "user" %}
77
- {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
78
- {%- elif message.role == "assistant" %}
79
- {#- ICLR27 think 处理(逐轮、常量、不依赖跨轮 index => 不破坏 sanity_check 与 loss 掩码):
80
- - 若该轮本身已带 <think>(如 zebra_cot 推理数据): 原样保留其真实思维链, 不再注入,
81
- 避免拼成"空 think + 真 think"的双块(那会破坏 Qwen 原生"恰好一个 think 块"结构)。
82
- - 否则(VPT/游戏/普通 VL 等无 think 的轮): 注入 Qwen 原生"空 think"块 <think>\n\n</think>\n\n,
83
- 训练无 think GT 只保结构, ���模型仍会输出 <think>...</think>, 不破坏原生思考通路;
84
- inference 端由生成提示(下方 add_generation_prompt, 不注入)自由填充思考内容。 #}
85
- {%- if '<think>' in content or '</think>' in content %}
86
- {{- '<|im_start|>' + message.role + '\n' + content }}
87
- {%- else %}
88
- {{- '<|im_start|>' + message.role + '\n' + '<think>\n\n</think>\n\n' + content }}
89
- {%- endif %}
90
- {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
91
- {%- for tool_call in message.tool_calls %}
92
- {%- if tool_call.function is defined %}
93
- {%- set tool_call = tool_call.function %}
94
- {%- endif %}
95
- {%- if loop.first %}
96
- {%- if content|trim %}
97
- {{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
98
- {%- else %}
99
- {{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
100
- {%- endif %}
101
- {%- else %}
102
- {{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
103
- {%- endif %}
104
- {%- if tool_call.arguments is defined %}
105
- {%- for args_name, args_value in tool_call.arguments|items %}
106
- {{- '<parameter=' + args_name + '>\n' }}
107
- {%- 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 %}
108
- {{- args_value }}
109
- {{- '\n</parameter>\n' }}
110
- {%- endfor %}
111
- {%- endif %}
112
- {{- '</function>\n</tool_call>' }}
113
- {%- endfor %}
114
- {%- endif %}
115
- {{- '<|im_end|>\n' }}
116
- {%- elif message.role == "tool" %}
117
- {%- if loop.previtem and loop.previtem.role != "tool" %}
118
- {{- '<|im_start|>user' }}
119
- {%- endif %}
120
- {{- '\n<tool_response>\n' }}
121
- {{- content }}
122
- {{- '\n</tool_response>' }}
123
- {%- if not loop.last and loop.nextitem.role != "tool" %}
124
- {{- '<|im_end|>\n' }}
125
- {%- elif loop.last %}
126
- {{- '<|im_end|>\n' }}
127
- {%- endif %}
128
- {%- else %}
129
- {{- raise_exception('Unexpected message role.') }}
130
- {%- endif %}
131
- {%- endfor %}
132
- {%- if add_generation_prompt %}
133
- {{- '<|im_start|>assistant\n' }}
134
- {%- endif %}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/0p8b_s3_1600h_gs6760/config.json DELETED
@@ -1,104 +0,0 @@
1
- {
2
- "architectures": [
3
- "Qwen3_5ForConditionalGeneration"
4
- ],
5
- "bos_token_id": null,
6
- "dtype": "bfloat16",
7
- "eos_token_id": 248046,
8
- "image_token_id": 248056,
9
- "model_type": "qwen3_5",
10
- "pad_token_id": 248044,
11
- "text_config": {
12
- "attention_bias": false,
13
- "attention_dropout": 0.0,
14
- "attn_output_gate": true,
15
- "bos_token_id": null,
16
- "dtype": "bfloat16",
17
- "eos_token_id": 248044,
18
- "full_attention_interval": 4,
19
- "head_dim": 256,
20
- "hidden_act": "silu",
21
- "hidden_size": 1024,
22
- "initializer_range": 0.02,
23
- "intermediate_size": 3584,
24
- "layer_types": [
25
- "linear_attention",
26
- "linear_attention",
27
- "linear_attention",
28
- "full_attention",
29
- "linear_attention",
30
- "linear_attention",
31
- "linear_attention",
32
- "full_attention",
33
- "linear_attention",
34
- "linear_attention",
35
- "linear_attention",
36
- "full_attention",
37
- "linear_attention",
38
- "linear_attention",
39
- "linear_attention",
40
- "full_attention",
41
- "linear_attention",
42
- "linear_attention",
43
- "linear_attention",
44
- "full_attention",
45
- "linear_attention",
46
- "linear_attention",
47
- "linear_attention",
48
- "full_attention"
49
- ],
50
- "linear_conv_kernel_dim": 4,
51
- "linear_key_head_dim": 128,
52
- "linear_num_key_heads": 16,
53
- "linear_num_value_heads": 16,
54
- "linear_value_head_dim": 128,
55
- "mamba_ssm_dtype": "float32",
56
- "max_position_embeddings": 262144,
57
- "mlp_only_layers": [],
58
- "model_type": "qwen3_5_text",
59
- "mtp_num_hidden_layers": 1,
60
- "mtp_use_dedicated_embeddings": false,
61
- "num_attention_heads": 8,
62
- "num_hidden_layers": 24,
63
- "num_key_value_heads": 2,
64
- "pad_token_id": null,
65
- "partial_rotary_factor": 0.25,
66
- "rms_norm_eps": 1e-06,
67
- "rope_parameters": {
68
- "mrope_interleaved": true,
69
- "mrope_section": [
70
- 11,
71
- 11,
72
- 10
73
- ],
74
- "partial_rotary_factor": 0.25,
75
- "rope_theta": 10000000,
76
- "rope_type": "default"
77
- },
78
- "tie_word_embeddings": true,
79
- "use_cache": true,
80
- "vocab_size": 248320
81
- },
82
- "tie_word_embeddings": true,
83
- "transformers_version": "5.14.1",
84
- "video_token_id": 248057,
85
- "vision_config": {
86
- "deepstack_visual_indexes": [],
87
- "depth": 12,
88
- "dtype": "bfloat16",
89
- "hidden_act": "gelu_pytorch_tanh",
90
- "hidden_size": 768,
91
- "in_channels": 3,
92
- "initializer_range": 0.02,
93
- "intermediate_size": 3072,
94
- "model_type": "qwen3_5_vision",
95
- "num_heads": 12,
96
- "num_position_embeddings": 2304,
97
- "out_hidden_size": 1024,
98
- "patch_size": 16,
99
- "spatial_merge_size": 2,
100
- "temporal_patch_size": 2
101
- },
102
- "vision_end_token_id": 248054,
103
- "vision_start_token_id": 248053
104
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/0p8b_s3_1600h_gs6760/generation_config.json DELETED
@@ -1,9 +0,0 @@
1
- {
2
- "_from_model_config": true,
3
- "eos_token_id": 248046,
4
- "output_attentions": false,
5
- "output_hidden_states": false,
6
- "pad_token_id": 248044,
7
- "transformers_version": "5.14.1",
8
- "use_cache": true
9
- }
 
 
 
 
 
 
 
 
 
 
models/0p8b_s3_1600h_gs6760/model.safetensors DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:d553c0796833691e32277a937db649eaac39bae9a0028a63c964c12a261c2dfa
3
- size 2214590296
 
 
 
 
models/0p8b_s3_1600h_gs6760/preprocessor_config.json DELETED
@@ -1,21 +0,0 @@
1
- {
2
- "size": {
3
- "longest_edge": 16777216,
4
- "shortest_edge": 65536
5
- },
6
- "patch_size": 16,
7
- "temporal_patch_size": 2,
8
- "merge_size": 2,
9
- "image_mean": [
10
- 0.5,
11
- 0.5,
12
- 0.5
13
- ],
14
- "image_std": [
15
- 0.5,
16
- 0.5,
17
- 0.5
18
- ],
19
- "processor_class": "Qwen3VLProcessor",
20
- "image_processor_type": "Qwen2VLImageProcessorFast"
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/0p8b_s3_1600h_gs6760/processor_config.json DELETED
@@ -1,60 +0,0 @@
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
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/0p8b_s3_1600h_gs6760/tokenizer.json DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523
3
- size 19989325
 
 
 
 
models/0p8b_s3_1600h_gs6760/tokenizer_config.json DELETED
@@ -1,33 +0,0 @@
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
- "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+",
26
- "processor_class": "Qwen3VLProcessor",
27
- "split_special_tokens": false,
28
- "tokenizer_class": "Qwen2Tokenizer",
29
- "unk_token": null,
30
- "video_token": "<|video_pad|>",
31
- "vision_bos_token": "<|vision_start|>",
32
- "vision_eos_token": "<|vision_end|>"
33
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/0p8b_s3_1600h_gs6760/video_preprocessor_config.json DELETED
@@ -1,21 +0,0 @@
1
- {
2
- "size": {
3
- "longest_edge": 25165824,
4
- "shortest_edge": 4096
5
- },
6
- "patch_size": 16,
7
- "temporal_patch_size": 2,
8
- "merge_size": 2,
9
- "image_mean": [
10
- 0.5,
11
- 0.5,
12
- 0.5
13
- ],
14
- "image_std": [
15
- 0.5,
16
- 0.5,
17
- 0.5
18
- ],
19
- "processor_class": "Qwen3VLProcessor",
20
- "video_processor_type": "Qwen3VLVideoProcessor"
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/27b_s1_1600h_gs6995/chat_template.jinja DELETED
@@ -1,134 +0,0 @@
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
- {#- ICLR27-GameScaling CPT permissive template:
43
- - 去掉原 Qwen3.5 模板对 "user query" 的强制断言(逐轮套模板会遇到无 user 的单轮)。
44
- - 去掉 assistant 轮的 <think> 注入(该注入依赖全局 last_query_index, 会使
45
- "逐轮拼接 != 整体" 从而破坏 MultiTurnSFTDataset.sanity_check 与 loss 掩码对齐)。
46
- - 去掉原模板的 `{%- if not messages %}` 空判断: 本管线把 messages 以 numpy object-array
47
- 传入, `not <ndarray>` 会触发 "truth value of an array ... is ambiguous"。 #}
48
- {%- if tools and tools is iterable and tools is not mapping %}
49
- {{- '<|im_start|>system\n' }}
50
- {{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
51
- {%- for tool in tools %}
52
- {{- "\n" }}
53
- {{- tool | tojson }}
54
- {%- endfor %}
55
- {{- "\n</tools>" }}
56
- {{- '\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>' }}
57
- {%- if messages[0].role == 'system' %}
58
- {%- set content = render_content(messages[0].content, false, true)|trim %}
59
- {%- if content %}
60
- {{- '\n\n' + content }}
61
- {%- endif %}
62
- {%- endif %}
63
- {{- '<|im_end|>\n' }}
64
- {%- else %}
65
- {%- if messages[0].role == 'system' %}
66
- {%- set content = render_content(messages[0].content, false, true)|trim %}
67
- {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
68
- {%- endif %}
69
- {%- endif %}
70
- {%- for message in messages %}
71
- {%- set content = render_content(message.content, true)|trim %}
72
- {%- if message.role == "system" %}
73
- {%- if not loop.first %}
74
- {{- raise_exception('System message must be at the beginning.') }}
75
- {%- endif %}
76
- {%- elif message.role == "user" %}
77
- {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
78
- {%- elif message.role == "assistant" %}
79
- {#- ICLR27 think 处理(逐轮、常量、不依赖跨轮 index => 不破坏 sanity_check 与 loss 掩码):
80
- - 若该轮本身已带 <think>(如 zebra_cot 推理数据): 原样保留其真实思维链, 不再注入,
81
- 避免拼成"空 think + 真 think"的双块(那会破坏 Qwen 原生"恰好一个 think 块"结构)。
82
- - 否则(VPT/游戏/普通 VL 等无 think 的轮): 注入 Qwen 原生"空 think"块 <think>\n\n</think>\n\n,
83
- 训练无 think GT 只保结构, ���模型仍会输出 <think>...</think>, 不破坏原生思考通路;
84
- inference 端由生成提示(下方 add_generation_prompt, 不注入)自由填充思考内容。 #}
85
- {%- if '<think>' in content or '</think>' in content %}
86
- {{- '<|im_start|>' + message.role + '\n' + content }}
87
- {%- else %}
88
- {{- '<|im_start|>' + message.role + '\n' + '<think>\n\n</think>\n\n' + content }}
89
- {%- endif %}
90
- {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
91
- {%- for tool_call in message.tool_calls %}
92
- {%- if tool_call.function is defined %}
93
- {%- set tool_call = tool_call.function %}
94
- {%- endif %}
95
- {%- if loop.first %}
96
- {%- if content|trim %}
97
- {{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
98
- {%- else %}
99
- {{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
100
- {%- endif %}
101
- {%- else %}
102
- {{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
103
- {%- endif %}
104
- {%- if tool_call.arguments is defined %}
105
- {%- for args_name, args_value in tool_call.arguments|items %}
106
- {{- '<parameter=' + args_name + '>\n' }}
107
- {%- 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 %}
108
- {{- args_value }}
109
- {{- '\n</parameter>\n' }}
110
- {%- endfor %}
111
- {%- endif %}
112
- {{- '</function>\n</tool_call>' }}
113
- {%- endfor %}
114
- {%- endif %}
115
- {{- '<|im_end|>\n' }}
116
- {%- elif message.role == "tool" %}
117
- {%- if loop.previtem and loop.previtem.role != "tool" %}
118
- {{- '<|im_start|>user' }}
119
- {%- endif %}
120
- {{- '\n<tool_response>\n' }}
121
- {{- content }}
122
- {{- '\n</tool_response>' }}
123
- {%- if not loop.last and loop.nextitem.role != "tool" %}
124
- {{- '<|im_end|>\n' }}
125
- {%- elif loop.last %}
126
- {{- '<|im_end|>\n' }}
127
- {%- endif %}
128
- {%- else %}
129
- {{- raise_exception('Unexpected message role.') }}
130
- {%- endif %}
131
- {%- endfor %}
132
- {%- if add_generation_prompt %}
133
- {{- '<|im_start|>assistant\n' }}
134
- {%- endif %}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/27b_s1_1600h_gs6995/config.json DELETED
@@ -1,144 +0,0 @@
1
- {
2
- "architectures": [
3
- "Qwen3_5ForConditionalGeneration"
4
- ],
5
- "bos_token_id": null,
6
- "dtype": "bfloat16",
7
- "eos_token_id": 248046,
8
- "image_token_id": 248056,
9
- "model_type": "qwen3_5",
10
- "pad_token_id": 248044,
11
- "text_config": {
12
- "attention_bias": false,
13
- "attention_dropout": 0.0,
14
- "attn_output_gate": true,
15
- "bos_token_id": null,
16
- "dtype": "bfloat16",
17
- "eos_token_id": 248044,
18
- "full_attention_interval": 4,
19
- "head_dim": 256,
20
- "hidden_act": "silu",
21
- "hidden_size": 5120,
22
- "initializer_range": 0.02,
23
- "intermediate_size": 17408,
24
- "layer_types": [
25
- "linear_attention",
26
- "linear_attention",
27
- "linear_attention",
28
- "full_attention",
29
- "linear_attention",
30
- "linear_attention",
31
- "linear_attention",
32
- "full_attention",
33
- "linear_attention",
34
- "linear_attention",
35
- "linear_attention",
36
- "full_attention",
37
- "linear_attention",
38
- "linear_attention",
39
- "linear_attention",
40
- "full_attention",
41
- "linear_attention",
42
- "linear_attention",
43
- "linear_attention",
44
- "full_attention",
45
- "linear_attention",
46
- "linear_attention",
47
- "linear_attention",
48
- "full_attention",
49
- "linear_attention",
50
- "linear_attention",
51
- "linear_attention",
52
- "full_attention",
53
- "linear_attention",
54
- "linear_attention",
55
- "linear_attention",
56
- "full_attention",
57
- "linear_attention",
58
- "linear_attention",
59
- "linear_attention",
60
- "full_attention",
61
- "linear_attention",
62
- "linear_attention",
63
- "linear_attention",
64
- "full_attention",
65
- "linear_attention",
66
- "linear_attention",
67
- "linear_attention",
68
- "full_attention",
69
- "linear_attention",
70
- "linear_attention",
71
- "linear_attention",
72
- "full_attention",
73
- "linear_attention",
74
- "linear_attention",
75
- "linear_attention",
76
- "full_attention",
77
- "linear_attention",
78
- "linear_attention",
79
- "linear_attention",
80
- "full_attention",
81
- "linear_attention",
82
- "linear_attention",
83
- "linear_attention",
84
- "full_attention",
85
- "linear_attention",
86
- "linear_attention",
87
- "linear_attention",
88
- "full_attention"
89
- ],
90
- "linear_conv_kernel_dim": 4,
91
- "linear_key_head_dim": 128,
92
- "linear_num_key_heads": 16,
93
- "linear_num_value_heads": 48,
94
- "linear_value_head_dim": 128,
95
- "mamba_ssm_dtype": "float32",
96
- "max_position_embeddings": 262144,
97
- "mlp_only_layers": [],
98
- "model_type": "qwen3_5_text",
99
- "mtp_num_hidden_layers": 1,
100
- "mtp_use_dedicated_embeddings": false,
101
- "num_attention_heads": 24,
102
- "num_hidden_layers": 64,
103
- "num_key_value_heads": 4,
104
- "pad_token_id": null,
105
- "partial_rotary_factor": 0.25,
106
- "rms_norm_eps": 1e-06,
107
- "rope_parameters": {
108
- "mrope_interleaved": true,
109
- "mrope_section": [
110
- 11,
111
- 11,
112
- 10
113
- ],
114
- "partial_rotary_factor": 0.25,
115
- "rope_theta": 10000000,
116
- "rope_type": "default"
117
- },
118
- "tie_word_embeddings": false,
119
- "use_cache": true,
120
- "vocab_size": 248320
121
- },
122
- "tie_word_embeddings": false,
123
- "transformers_version": "5.14.1",
124
- "video_token_id": 248057,
125
- "vision_config": {
126
- "deepstack_visual_indexes": [],
127
- "depth": 27,
128
- "dtype": "bfloat16",
129
- "hidden_act": "gelu_pytorch_tanh",
130
- "hidden_size": 1152,
131
- "in_channels": 3,
132
- "initializer_range": 0.02,
133
- "intermediate_size": 4304,
134
- "model_type": "qwen3_5_vision",
135
- "num_heads": 16,
136
- "num_position_embeddings": 2304,
137
- "out_hidden_size": 5120,
138
- "patch_size": 16,
139
- "spatial_merge_size": 2,
140
- "temporal_patch_size": 2
141
- },
142
- "vision_end_token_id": 248054,
143
- "vision_start_token_id": 248053
144
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/27b_s1_1600h_gs6995/generation_config.json DELETED
@@ -1,13 +0,0 @@
1
- {
2
- "bos_token_id": 248044,
3
- "do_sample": true,
4
- "eos_token_id": [
5
- 248046,
6
- 248044
7
- ],
8
- "pad_token_id": 248044,
9
- "temperature": 0.6,
10
- "top_k": 20,
11
- "top_p": 0.95,
12
- "transformers_version": "5.14.1"
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/27b_s1_1600h_gs6995/model-00001-of-00002.safetensors DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:170b268eccf87f9c19d81bae8b78672aba2d996a159192dc7c83ac6a2a5c6d0d
3
- size 49935066216
 
 
 
 
models/27b_s1_1600h_gs6995/model-00002-of-00002.safetensors DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:753c79c6f45331d98f0be24b72df6defbfd8daa5d583b3edf203fc417b83a222
3
- size 4778542568
 
 
 
 
models/27b_s1_1600h_gs6995/model.safetensors.index.json DELETED
The diff for this file is too large to render. See raw diff
 
models/27b_s1_1600h_gs6995/preprocessor_config.json DELETED
@@ -1,21 +0,0 @@
1
- {
2
- "size": {
3
- "longest_edge": 16777216,
4
- "shortest_edge": 65536
5
- },
6
- "patch_size": 16,
7
- "temporal_patch_size": 2,
8
- "merge_size": 2,
9
- "image_mean": [
10
- 0.5,
11
- 0.5,
12
- 0.5
13
- ],
14
- "image_std": [
15
- 0.5,
16
- 0.5,
17
- 0.5
18
- ],
19
- "processor_class": "Qwen3VLProcessor",
20
- "image_processor_type": "Qwen2VLImageProcessorFast"
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/27b_s1_1600h_gs6995/processor_config.json DELETED
@@ -1,60 +0,0 @@
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
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/27b_s1_1600h_gs6995/tokenizer.json DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523
3
- size 19989325
 
 
 
 
models/27b_s1_1600h_gs6995/tokenizer_config.json DELETED
@@ -1,33 +0,0 @@
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
- "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+",
26
- "processor_class": "Qwen3VLProcessor",
27
- "split_special_tokens": false,
28
- "tokenizer_class": "Qwen2Tokenizer",
29
- "unk_token": null,
30
- "video_token": "<|video_pad|>",
31
- "vision_bos_token": "<|vision_start|>",
32
- "vision_eos_token": "<|vision_end|>"
33
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/27b_s1_1600h_gs6995/video_preprocessor_config.json DELETED
@@ -1,21 +0,0 @@
1
- {
2
- "size": {
3
- "longest_edge": 25165824,
4
- "shortest_edge": 4096
5
- },
6
- "patch_size": 16,
7
- "temporal_patch_size": 2,
8
- "merge_size": 2,
9
- "image_mean": [
10
- 0.5,
11
- 0.5,
12
- 0.5
13
- ],
14
- "image_std": [
15
- 0.5,
16
- 0.5,
17
- 0.5
18
- ],
19
- "processor_class": "Qwen3VLProcessor",
20
- "video_processor_type": "Qwen3VLVideoProcessor"
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/27b_s3_1600h_gs7020/chat_template.jinja DELETED
@@ -1,134 +0,0 @@
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
- {#- ICLR27-GameScaling CPT permissive template:
43
- - 去掉原 Qwen3.5 模板对 "user query" 的强制断言(逐轮套模板会遇到无 user 的单轮)。
44
- - 去掉 assistant 轮的 <think> 注入(该注入依赖全局 last_query_index, 会使
45
- "逐轮拼接 != 整体" 从而破坏 MultiTurnSFTDataset.sanity_check 与 loss 掩码对齐)。
46
- - 去掉原模板的 `{%- if not messages %}` 空判断: 本管线把 messages 以 numpy object-array
47
- 传入, `not <ndarray>` 会触发 "truth value of an array ... is ambiguous"。 #}
48
- {%- if tools and tools is iterable and tools is not mapping %}
49
- {{- '<|im_start|>system\n' }}
50
- {{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
51
- {%- for tool in tools %}
52
- {{- "\n" }}
53
- {{- tool | tojson }}
54
- {%- endfor %}
55
- {{- "\n</tools>" }}
56
- {{- '\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>' }}
57
- {%- if messages[0].role == 'system' %}
58
- {%- set content = render_content(messages[0].content, false, true)|trim %}
59
- {%- if content %}
60
- {{- '\n\n' + content }}
61
- {%- endif %}
62
- {%- endif %}
63
- {{- '<|im_end|>\n' }}
64
- {%- else %}
65
- {%- if messages[0].role == 'system' %}
66
- {%- set content = render_content(messages[0].content, false, true)|trim %}
67
- {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
68
- {%- endif %}
69
- {%- endif %}
70
- {%- for message in messages %}
71
- {%- set content = render_content(message.content, true)|trim %}
72
- {%- if message.role == "system" %}
73
- {%- if not loop.first %}
74
- {{- raise_exception('System message must be at the beginning.') }}
75
- {%- endif %}
76
- {%- elif message.role == "user" %}
77
- {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
78
- {%- elif message.role == "assistant" %}
79
- {#- ICLR27 think 处理(逐轮、常量、不依赖跨轮 index => 不破坏 sanity_check 与 loss 掩码):
80
- - 若该轮本身已带 <think>(如 zebra_cot 推理数据): 原样保留其真实思维链, 不再注入,
81
- 避免拼成"空 think + 真 think"的双块(那会破坏 Qwen 原生"恰好一个 think 块"结构)。
82
- - 否则(VPT/游戏/普通 VL 等无 think 的轮): 注入 Qwen 原生"空 think"块 <think>\n\n</think>\n\n,
83
- 训练无 think GT 只保结构, ���模型仍会输出 <think>...</think>, 不破坏原生思考通路;
84
- inference 端由生成提示(下方 add_generation_prompt, 不注入)自由填充思考内容。 #}
85
- {%- if '<think>' in content or '</think>' in content %}
86
- {{- '<|im_start|>' + message.role + '\n' + content }}
87
- {%- else %}
88
- {{- '<|im_start|>' + message.role + '\n' + '<think>\n\n</think>\n\n' + content }}
89
- {%- endif %}
90
- {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
91
- {%- for tool_call in message.tool_calls %}
92
- {%- if tool_call.function is defined %}
93
- {%- set tool_call = tool_call.function %}
94
- {%- endif %}
95
- {%- if loop.first %}
96
- {%- if content|trim %}
97
- {{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
98
- {%- else %}
99
- {{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
100
- {%- endif %}
101
- {%- else %}
102
- {{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
103
- {%- endif %}
104
- {%- if tool_call.arguments is defined %}
105
- {%- for args_name, args_value in tool_call.arguments|items %}
106
- {{- '<parameter=' + args_name + '>\n' }}
107
- {%- 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 %}
108
- {{- args_value }}
109
- {{- '\n</parameter>\n' }}
110
- {%- endfor %}
111
- {%- endif %}
112
- {{- '</function>\n</tool_call>' }}
113
- {%- endfor %}
114
- {%- endif %}
115
- {{- '<|im_end|>\n' }}
116
- {%- elif message.role == "tool" %}
117
- {%- if loop.previtem and loop.previtem.role != "tool" %}
118
- {{- '<|im_start|>user' }}
119
- {%- endif %}
120
- {{- '\n<tool_response>\n' }}
121
- {{- content }}
122
- {{- '\n</tool_response>' }}
123
- {%- if not loop.last and loop.nextitem.role != "tool" %}
124
- {{- '<|im_end|>\n' }}
125
- {%- elif loop.last %}
126
- {{- '<|im_end|>\n' }}
127
- {%- endif %}
128
- {%- else %}
129
- {{- raise_exception('Unexpected message role.') }}
130
- {%- endif %}
131
- {%- endfor %}
132
- {%- if add_generation_prompt %}
133
- {{- '<|im_start|>assistant\n' }}
134
- {%- endif %}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/27b_s3_1600h_gs7020/config.json DELETED
@@ -1,144 +0,0 @@
1
- {
2
- "architectures": [
3
- "Qwen3_5ForConditionalGeneration"
4
- ],
5
- "bos_token_id": null,
6
- "dtype": "bfloat16",
7
- "eos_token_id": 248046,
8
- "image_token_id": 248056,
9
- "model_type": "qwen3_5",
10
- "pad_token_id": 248044,
11
- "text_config": {
12
- "attention_bias": false,
13
- "attention_dropout": 0.0,
14
- "attn_output_gate": true,
15
- "bos_token_id": null,
16
- "dtype": "bfloat16",
17
- "eos_token_id": 248044,
18
- "full_attention_interval": 4,
19
- "head_dim": 256,
20
- "hidden_act": "silu",
21
- "hidden_size": 5120,
22
- "initializer_range": 0.02,
23
- "intermediate_size": 17408,
24
- "layer_types": [
25
- "linear_attention",
26
- "linear_attention",
27
- "linear_attention",
28
- "full_attention",
29
- "linear_attention",
30
- "linear_attention",
31
- "linear_attention",
32
- "full_attention",
33
- "linear_attention",
34
- "linear_attention",
35
- "linear_attention",
36
- "full_attention",
37
- "linear_attention",
38
- "linear_attention",
39
- "linear_attention",
40
- "full_attention",
41
- "linear_attention",
42
- "linear_attention",
43
- "linear_attention",
44
- "full_attention",
45
- "linear_attention",
46
- "linear_attention",
47
- "linear_attention",
48
- "full_attention",
49
- "linear_attention",
50
- "linear_attention",
51
- "linear_attention",
52
- "full_attention",
53
- "linear_attention",
54
- "linear_attention",
55
- "linear_attention",
56
- "full_attention",
57
- "linear_attention",
58
- "linear_attention",
59
- "linear_attention",
60
- "full_attention",
61
- "linear_attention",
62
- "linear_attention",
63
- "linear_attention",
64
- "full_attention",
65
- "linear_attention",
66
- "linear_attention",
67
- "linear_attention",
68
- "full_attention",
69
- "linear_attention",
70
- "linear_attention",
71
- "linear_attention",
72
- "full_attention",
73
- "linear_attention",
74
- "linear_attention",
75
- "linear_attention",
76
- "full_attention",
77
- "linear_attention",
78
- "linear_attention",
79
- "linear_attention",
80
- "full_attention",
81
- "linear_attention",
82
- "linear_attention",
83
- "linear_attention",
84
- "full_attention",
85
- "linear_attention",
86
- "linear_attention",
87
- "linear_attention",
88
- "full_attention"
89
- ],
90
- "linear_conv_kernel_dim": 4,
91
- "linear_key_head_dim": 128,
92
- "linear_num_key_heads": 16,
93
- "linear_num_value_heads": 48,
94
- "linear_value_head_dim": 128,
95
- "mamba_ssm_dtype": "float32",
96
- "max_position_embeddings": 262144,
97
- "mlp_only_layers": [],
98
- "model_type": "qwen3_5_text",
99
- "mtp_num_hidden_layers": 1,
100
- "mtp_use_dedicated_embeddings": false,
101
- "num_attention_heads": 24,
102
- "num_hidden_layers": 64,
103
- "num_key_value_heads": 4,
104
- "pad_token_id": null,
105
- "partial_rotary_factor": 0.25,
106
- "rms_norm_eps": 1e-06,
107
- "rope_parameters": {
108
- "mrope_interleaved": true,
109
- "mrope_section": [
110
- 11,
111
- 11,
112
- 10
113
- ],
114
- "partial_rotary_factor": 0.25,
115
- "rope_theta": 10000000,
116
- "rope_type": "default"
117
- },
118
- "tie_word_embeddings": false,
119
- "use_cache": true,
120
- "vocab_size": 248320
121
- },
122
- "tie_word_embeddings": false,
123
- "transformers_version": "5.14.1",
124
- "video_token_id": 248057,
125
- "vision_config": {
126
- "deepstack_visual_indexes": [],
127
- "depth": 27,
128
- "dtype": "bfloat16",
129
- "hidden_act": "gelu_pytorch_tanh",
130
- "hidden_size": 1152,
131
- "in_channels": 3,
132
- "initializer_range": 0.02,
133
- "intermediate_size": 4304,
134
- "model_type": "qwen3_5_vision",
135
- "num_heads": 16,
136
- "num_position_embeddings": 2304,
137
- "out_hidden_size": 5120,
138
- "patch_size": 16,
139
- "spatial_merge_size": 2,
140
- "temporal_patch_size": 2
141
- },
142
- "vision_end_token_id": 248054,
143
- "vision_start_token_id": 248053
144
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/27b_s3_1600h_gs7020/generation_config.json DELETED
@@ -1,13 +0,0 @@
1
- {
2
- "bos_token_id": 248044,
3
- "do_sample": true,
4
- "eos_token_id": [
5
- 248046,
6
- 248044
7
- ],
8
- "pad_token_id": 248044,
9
- "temperature": 0.6,
10
- "top_k": 20,
11
- "top_p": 0.95,
12
- "transformers_version": "5.14.1"
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/27b_s3_1600h_gs7020/model-00001-of-00002.safetensors DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:9138f232014c26a45fd8f8a519180eb9a986fdfc4ac2c8649635552dfc352f6e
3
- size 29848868595
 
 
 
 
models/27b_s3_1600h_gs7020/model-00002-of-00002.safetensors DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:f008fc3ec5f8a24ff6b2b9607030858a7ce24cec84dea98f5675e562e285187a
3
- size 24864740005
 
 
 
 
models/27b_s3_1600h_gs7020/model.safetensors.index.json DELETED
The diff for this file is too large to render. See raw diff
 
models/27b_s3_1600h_gs7020/preprocessor_config.json DELETED
@@ -1,21 +0,0 @@
1
- {
2
- "size": {
3
- "longest_edge": 16777216,
4
- "shortest_edge": 65536
5
- },
6
- "patch_size": 16,
7
- "temporal_patch_size": 2,
8
- "merge_size": 2,
9
- "image_mean": [
10
- 0.5,
11
- 0.5,
12
- 0.5
13
- ],
14
- "image_std": [
15
- 0.5,
16
- 0.5,
17
- 0.5
18
- ],
19
- "processor_class": "Qwen3VLProcessor",
20
- "image_processor_type": "Qwen2VLImageProcessorFast"
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/27b_s3_1600h_gs7020/processor_config.json DELETED
@@ -1,60 +0,0 @@
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
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/27b_s3_1600h_gs7020/tokenizer.json DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523
3
- size 19989325
 
 
 
 
models/27b_s3_1600h_gs7020/tokenizer_config.json DELETED
@@ -1,33 +0,0 @@
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
- "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+",
26
- "processor_class": "Qwen3VLProcessor",
27
- "split_special_tokens": false,
28
- "tokenizer_class": "Qwen2Tokenizer",
29
- "unk_token": null,
30
- "video_token": "<|video_pad|>",
31
- "vision_bos_token": "<|vision_start|>",
32
- "vision_eos_token": "<|vision_end|>"
33
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/27b_s3_1600h_gs7020/video_preprocessor_config.json DELETED
@@ -1,21 +0,0 @@
1
- {
2
- "size": {
3
- "longest_edge": 25165824,
4
- "shortest_edge": 4096
5
- },
6
- "patch_size": 16,
7
- "temporal_patch_size": 2,
8
- "merge_size": 2,
9
- "image_mean": [
10
- 0.5,
11
- 0.5,
12
- 0.5
13
- ],
14
- "image_std": [
15
- 0.5,
16
- 0.5,
17
- 0.5
18
- ],
19
- "processor_class": "Qwen3VLProcessor",
20
- "video_processor_type": "Qwen3VLVideoProcessor"
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/2b_s1_1600h_gs6736/chat_template.jinja DELETED
@@ -1,134 +0,0 @@
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
- {#- ICLR27-GameScaling CPT permissive template:
43
- - 去掉原 Qwen3.5 模板对 "user query" 的强制断言(逐轮套模板会遇到无 user 的单轮)。
44
- - 去掉 assistant 轮的 <think> 注入(该注入依赖全局 last_query_index, 会使
45
- "逐轮拼接 != 整体" 从而破坏 MultiTurnSFTDataset.sanity_check 与 loss 掩码对齐)。
46
- - 去掉原模板的 `{%- if not messages %}` 空判断: 本管线把 messages 以 numpy object-array
47
- 传入, `not <ndarray>` 会触发 "truth value of an array ... is ambiguous"。 #}
48
- {%- if tools and tools is iterable and tools is not mapping %}
49
- {{- '<|im_start|>system\n' }}
50
- {{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
51
- {%- for tool in tools %}
52
- {{- "\n" }}
53
- {{- tool | tojson }}
54
- {%- endfor %}
55
- {{- "\n</tools>" }}
56
- {{- '\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>' }}
57
- {%- if messages[0].role == 'system' %}
58
- {%- set content = render_content(messages[0].content, false, true)|trim %}
59
- {%- if content %}
60
- {{- '\n\n' + content }}
61
- {%- endif %}
62
- {%- endif %}
63
- {{- '<|im_end|>\n' }}
64
- {%- else %}
65
- {%- if messages[0].role == 'system' %}
66
- {%- set content = render_content(messages[0].content, false, true)|trim %}
67
- {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
68
- {%- endif %}
69
- {%- endif %}
70
- {%- for message in messages %}
71
- {%- set content = render_content(message.content, true)|trim %}
72
- {%- if message.role == "system" %}
73
- {%- if not loop.first %}
74
- {{- raise_exception('System message must be at the beginning.') }}
75
- {%- endif %}
76
- {%- elif message.role == "user" %}
77
- {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
78
- {%- elif message.role == "assistant" %}
79
- {#- ICLR27 think 处理(逐轮、常量、不依赖跨轮 index => 不破坏 sanity_check 与 loss 掩码):
80
- - 若该轮本身已带 <think>(如 zebra_cot 推理数据): 原样保留其真实思维链, 不再注入,
81
- 避免拼成"空 think + 真 think"的双块(那会破坏 Qwen 原生"恰好一个 think 块"结构)。
82
- - 否则(VPT/游戏/普通 VL 等无 think 的轮): 注入 Qwen 原生"空 think"块 <think>\n\n</think>\n\n,
83
- 训练无 think GT 只保结构, ���模型仍会输出 <think>...</think>, 不破坏原生思考通路;
84
- inference 端由生成提示(下方 add_generation_prompt, 不注入)自由填充思考内容。 #}
85
- {%- if '<think>' in content or '</think>' in content %}
86
- {{- '<|im_start|>' + message.role + '\n' + content }}
87
- {%- else %}
88
- {{- '<|im_start|>' + message.role + '\n' + '<think>\n\n</think>\n\n' + content }}
89
- {%- endif %}
90
- {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
91
- {%- for tool_call in message.tool_calls %}
92
- {%- if tool_call.function is defined %}
93
- {%- set tool_call = tool_call.function %}
94
- {%- endif %}
95
- {%- if loop.first %}
96
- {%- if content|trim %}
97
- {{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
98
- {%- else %}
99
- {{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
100
- {%- endif %}
101
- {%- else %}
102
- {{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
103
- {%- endif %}
104
- {%- if tool_call.arguments is defined %}
105
- {%- for args_name, args_value in tool_call.arguments|items %}
106
- {{- '<parameter=' + args_name + '>\n' }}
107
- {%- 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 %}
108
- {{- args_value }}
109
- {{- '\n</parameter>\n' }}
110
- {%- endfor %}
111
- {%- endif %}
112
- {{- '</function>\n</tool_call>' }}
113
- {%- endfor %}
114
- {%- endif %}
115
- {{- '<|im_end|>\n' }}
116
- {%- elif message.role == "tool" %}
117
- {%- if loop.previtem and loop.previtem.role != "tool" %}
118
- {{- '<|im_start|>user' }}
119
- {%- endif %}
120
- {{- '\n<tool_response>\n' }}
121
- {{- content }}
122
- {{- '\n</tool_response>' }}
123
- {%- if not loop.last and loop.nextitem.role != "tool" %}
124
- {{- '<|im_end|>\n' }}
125
- {%- elif loop.last %}
126
- {{- '<|im_end|>\n' }}
127
- {%- endif %}
128
- {%- else %}
129
- {{- raise_exception('Unexpected message role.') }}
130
- {%- endif %}
131
- {%- endfor %}
132
- {%- if add_generation_prompt %}
133
- {{- '<|im_start|>assistant\n' }}
134
- {%- endif %}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/2b_s1_1600h_gs6736/config.json DELETED
@@ -1,104 +0,0 @@
1
- {
2
- "architectures": [
3
- "Qwen3_5ForConditionalGeneration"
4
- ],
5
- "bos_token_id": null,
6
- "dtype": "bfloat16",
7
- "eos_token_id": 248046,
8
- "image_token_id": 248056,
9
- "model_type": "qwen3_5",
10
- "pad_token_id": 248044,
11
- "text_config": {
12
- "attention_bias": false,
13
- "attention_dropout": 0.0,
14
- "attn_output_gate": true,
15
- "bos_token_id": null,
16
- "dtype": "bfloat16",
17
- "eos_token_id": 248044,
18
- "full_attention_interval": 4,
19
- "head_dim": 256,
20
- "hidden_act": "silu",
21
- "hidden_size": 2048,
22
- "initializer_range": 0.02,
23
- "intermediate_size": 6144,
24
- "layer_types": [
25
- "linear_attention",
26
- "linear_attention",
27
- "linear_attention",
28
- "full_attention",
29
- "linear_attention",
30
- "linear_attention",
31
- "linear_attention",
32
- "full_attention",
33
- "linear_attention",
34
- "linear_attention",
35
- "linear_attention",
36
- "full_attention",
37
- "linear_attention",
38
- "linear_attention",
39
- "linear_attention",
40
- "full_attention",
41
- "linear_attention",
42
- "linear_attention",
43
- "linear_attention",
44
- "full_attention",
45
- "linear_attention",
46
- "linear_attention",
47
- "linear_attention",
48
- "full_attention"
49
- ],
50
- "linear_conv_kernel_dim": 4,
51
- "linear_key_head_dim": 128,
52
- "linear_num_key_heads": 16,
53
- "linear_num_value_heads": 16,
54
- "linear_value_head_dim": 128,
55
- "mamba_ssm_dtype": "float32",
56
- "max_position_embeddings": 262144,
57
- "mlp_only_layers": [],
58
- "model_type": "qwen3_5_text",
59
- "mtp_num_hidden_layers": 1,
60
- "mtp_use_dedicated_embeddings": false,
61
- "num_attention_heads": 8,
62
- "num_hidden_layers": 24,
63
- "num_key_value_heads": 2,
64
- "pad_token_id": null,
65
- "partial_rotary_factor": 0.25,
66
- "rms_norm_eps": 1e-06,
67
- "rope_parameters": {
68
- "mrope_interleaved": true,
69
- "mrope_section": [
70
- 11,
71
- 11,
72
- 10
73
- ],
74
- "partial_rotary_factor": 0.25,
75
- "rope_theta": 10000000,
76
- "rope_type": "default"
77
- },
78
- "tie_word_embeddings": true,
79
- "use_cache": true,
80
- "vocab_size": 248320
81
- },
82
- "tie_word_embeddings": true,
83
- "transformers_version": "5.14.1",
84
- "video_token_id": 248057,
85
- "vision_config": {
86
- "deepstack_visual_indexes": [],
87
- "depth": 24,
88
- "dtype": "bfloat16",
89
- "hidden_act": "gelu_pytorch_tanh",
90
- "hidden_size": 1024,
91
- "in_channels": 3,
92
- "initializer_range": 0.02,
93
- "intermediate_size": 4096,
94
- "model_type": "qwen3_5_vision",
95
- "num_heads": 16,
96
- "num_position_embeddings": 2304,
97
- "out_hidden_size": 2048,
98
- "patch_size": 16,
99
- "spatial_merge_size": 2,
100
- "temporal_patch_size": 2
101
- },
102
- "vision_end_token_id": 248054,
103
- "vision_start_token_id": 248053
104
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/2b_s1_1600h_gs6736/generation_config.json DELETED
@@ -1,9 +0,0 @@
1
- {
2
- "_from_model_config": true,
3
- "eos_token_id": 248046,
4
- "output_attentions": false,
5
- "output_hidden_states": false,
6
- "pad_token_id": 248044,
7
- "transformers_version": "5.14.1",
8
- "use_cache": true
9
- }
 
 
 
 
 
 
 
 
 
 
models/2b_s1_1600h_gs6736/model.safetensors DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:320dd2f7e1804faceae76fbfd6bfb83f17c9294a369bebf07cf1f3278dec3351
3
- size 5443677680
 
 
 
 
models/2b_s1_1600h_gs6736/preprocessor_config.json DELETED
@@ -1,21 +0,0 @@
1
- {
2
- "size": {
3
- "longest_edge": 16777216,
4
- "shortest_edge": 65536
5
- },
6
- "patch_size": 16,
7
- "temporal_patch_size": 2,
8
- "merge_size": 2,
9
- "image_mean": [
10
- 0.5,
11
- 0.5,
12
- 0.5
13
- ],
14
- "image_std": [
15
- 0.5,
16
- 0.5,
17
- 0.5
18
- ],
19
- "processor_class": "Qwen3VLProcessor",
20
- "image_processor_type": "Qwen2VLImageProcessorFast"
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/2b_s1_1600h_gs6736/processor_config.json DELETED
@@ -1,60 +0,0 @@
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
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
models/2b_s1_1600h_gs6736/tokenizer.json DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523
3
- size 19989325
 
 
 
 
models/2b_s1_1600h_gs6736/tokenizer_config.json DELETED
@@ -1,33 +0,0 @@
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
- "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+",
26
- "processor_class": "Qwen3VLProcessor",
27
- "split_special_tokens": false,
28
- "tokenizer_class": "Qwen2Tokenizer",
29
- "unk_token": null,
30
- "video_token": "<|video_pad|>",
31
- "vision_bos_token": "<|vision_start|>",
32
- "vision_eos_token": "<|vision_end|>"
33
- }