eouya2 commited on
Commit
4f5b2c5
·
0 Parent(s):

Duplicate from mlx-community/Qwen3.6-35B-A3B-KGuard-REAP25-8bit-MLX

Browse files
.gitattributes ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,149 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ base_model: mlx-community/Qwen3.6-35B-A3B-8bit
4
+ library_name: mlx
5
+ pipeline_tag: text-generation
6
+ language:
7
+ - ko
8
+ - en
9
+ tags:
10
+ - mlx
11
+ - qwen3.6
12
+ - qwen3_5_moe
13
+ - mixture-of-experts
14
+ - reap
15
+ - expert-pruning
16
+ - korean
17
+ - 8-bit
18
+ datasets:
19
+ - eouya2/KGuard-Korean-MoE-Calibration-v1
20
+ ---
21
+
22
+ # Qwen3.6-35B-A3B K-Guard REAP 25% — MLX 8-bit
23
+
24
+ > Korean model card: [README_ko.md](./README_ko.md)
25
+
26
+ This is a Korean-oriented, expert-pruned MLX release of
27
+ [`mlx-community/Qwen3.6-35B-A3B-8bit`](https://huggingface.co/mlx-community/Qwen3.6-35B-A3B-8bit).
28
+ It applies REAP-style router-weighted expert activation pruning to the routed
29
+ MoE experts while keeping the upstream 8-bit MLX format, top-8 routing, shared
30
+ experts, tokenizer, chat template, and non-MoE components intact.
31
+
32
+ In this release, **K-Guard** is the name of the Korean-centered calibration
33
+ profile used to collect routing and activation statistics before pruning.
34
+ There is no fine-tuning or weight retraining.
35
+
36
+ ## Model summary
37
+
38
+ | Property | Value |
39
+ |---|---:|
40
+ | Base checkpoint | `mlx-community/Qwen3.6-35B-A3B-8bit` |
41
+ | Architecture | Qwen3.6 MoE (`qwen3_5_moe`) |
42
+ | MoE layers | 40 |
43
+ | Routed experts per layer | **192**, reduced from 256 |
44
+ | Experts removed per layer | 64 / 256 (**25%**) |
45
+ | Active routed experts per token | 8, unchanged |
46
+ | Shared expert | Preserved |
47
+ | Quantization | MLX affine 8-bit, group size 64 |
48
+ | Local checkpoint size | approximately **27.18 GiB** |
49
+ | Training after pruning | None |
50
+
51
+ ## Calibration and expert selection
52
+
53
+ Expert importance was observed on a deterministic Korean-centered mixture of
54
+ 24,576 sequences:
55
+
56
+ - 8,192 general Korean instruction and reasoning records
57
+ - 8,192 Korean-English paired records
58
+ - 4,096 general capability replay records
59
+ - 4,096 Qwen3.6 text and reasoning records
60
+
61
+ The observer covered all 40 MoE layers with a maximum sequence length of 8,192
62
+ tokens and seed 17. For every layer, routed experts were ranked using
63
+ router-weighted activation statistics; the 192 highest-ranked experts were
64
+ retained, the router rows were sliced to the same indices, and top-8 routing
65
+ was preserved.
66
+
67
+ The calibration file and the complete per-layer/per-expert observation CSV are
68
+ published in
69
+ [`eouya2/KGuard-Korean-MoE-Calibration-v1`](https://huggingface.co/datasets/eouya2/KGuard-Korean-MoE-Calibration-v1).
70
+
71
+ ## Evaluation snapshot
72
+
73
+ The following scores use the same deterministic evaluation subsets and prompts
74
+ for the base and pruned checkpoints.
75
+
76
+ | Benchmark | Base 8-bit | This model |
77
+ |---|---:|---:|
78
+ | KMMLU | 66.4 | **60.9** |
79
+ | MMLU-Pro | 64.3 | **58.8** |
80
+ | GSM8K | 96.7 | **96.7** |
81
+ | HumanEval+ pass@1 | 90.9 | **93.3** |
82
+ | Academic 10-benchmark macro | 81.2 | **79.7** |
83
+
84
+ KMMLU, MMLU-Pro, and GSM8K use 512-item deterministic subsets. HumanEval+
85
+ uses the complete 164-task EvalPlus set. These results are intended for paired
86
+ comparison under the reported local protocols rather than as direct official
87
+ leaderboard submissions.
88
+
89
+ ## Use with MLX
90
+
91
+ Install MLX LM:
92
+
93
+ ```bash
94
+ pip install -U mlx-lm
95
+ ```
96
+
97
+ Generate from the command line:
98
+
99
+ ```bash
100
+ mlx_lm.generate \
101
+ --model eouya2/Qwen3.6-35B-A3B-KGuard-REAP25-8bit-MLX \
102
+ --prompt "한국어로 mixture-of-experts 모델을 간단히 설명해 주세요." \
103
+ --max-tokens 256 \
104
+ --temperature 0.0
105
+ ```
106
+
107
+ Or use Python:
108
+
109
+ ```python
110
+ from mlx_lm import generate, load
111
+
112
+ model_id = "eouya2/Qwen3.6-35B-A3B-KGuard-REAP25-8bit-MLX"
113
+ model, tokenizer = load(model_id)
114
+
115
+ messages = [{"role": "user", "content": "한국어로 자기소개를 해 주세요."}]
116
+ prompt = tokenizer.apply_chat_template(
117
+ messages,
118
+ tokenize=False,
119
+ add_generation_prompt=True,
120
+ )
121
+
122
+ print(generate(model, tokenizer, prompt=prompt, max_tokens=256))
123
+ ```
124
+
125
+ Serve an OpenAI-compatible endpoint:
126
+
127
+ ```bash
128
+ mlx_lm.server --model eouya2/Qwen3.6-35B-A3B-KGuard-REAP25-8bit-MLX
129
+ ```
130
+
131
+ ## Intended use
132
+
133
+ This checkpoint is suitable for local Apple Silicon experimentation, Korean
134
+ and bilingual generation, MoE pruning research, and memory-conscious inference
135
+ where a stronger reduction in routed-expert capacity is useful. As with the
136
+ base model, application-specific safety and quality evaluation is recommended
137
+ before deployment.
138
+
139
+ ## References and acknowledgements
140
+
141
+ - Base model: [`Qwen/Qwen3.6-35B-A3B`](https://huggingface.co/Qwen/Qwen3.6-35B-A3B)
142
+ - MLX 8-bit conversion: [`mlx-community/Qwen3.6-35B-A3B-8bit`](https://huggingface.co/mlx-community/Qwen3.6-35B-A3B-8bit)
143
+ - REAP paper: [REAP the Experts: Why Pruning Prevails for One-Shot MoE Compression](https://huggingface.co/papers/2510.13999)
144
+ - MLX pruning implementation: [`egesabanci/reap-mlx`](https://github.com/egesabanci/reap-mlx)
145
+
146
+ ## License
147
+
148
+ The model follows the Apache 2.0 license of the upstream Qwen release. The
149
+ companion synthetic calibration data is released separately under CC BY 4.0.
README_ko.md ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Qwen3.6-35B-A3B K-Guard REAP 25% — MLX 8-bit
2
+
3
+ > English model card: [README.md](./README.md)
4
+
5
+ 이 모델은
6
+ [`mlx-community/Qwen3.6-35B-A3B-8bit`](https://huggingface.co/mlx-community/Qwen3.6-35B-A3B-8bit)을
7
+ 기반으로 만든 한국어 중심 expert-pruned MLX 체크포인트입니다. Routed MoE
8
+ expert에는 REAP 방식의 router-weighted activation pruning을 적용했으며,
9
+ 기존 8-bit MLX 형식, top-8 routing, shared expert, tokenizer, chat template과
10
+ 비-MoE 구성요소는 유지했습니다.
11
+
12
+ 이 릴리스에서 **K-Guard**는 pruning 전에 routing 및 activation 통계를
13
+ 수집할 때 사용한 한국어 중심 calibration profile을 의미합니다. 별도의
14
+ fine-tuning이나 가중치 재학습은 하지 않았습니다.
15
+
16
+ ## 모델 요약
17
+
18
+ | 항목 | 값 |
19
+ |---|---:|
20
+ | 기반 체크포인트 | `mlx-community/Qwen3.6-35B-A3B-8bit` |
21
+ | 아키텍처 | Qwen3.6 MoE (`qwen3_5_moe`) |
22
+ | MoE layer | 40 |
23
+ | Layer당 routed expert | 256개에서 **192개**로 축소 |
24
+ | Layer당 제거 expert | 64 / 256 (**25%**) |
25
+ | Token당 활성 routed expert | 8개, 유지 |
26
+ | Shared expert | 유지 |
27
+ | 양자화 | MLX affine 8-bit, group size 64 |
28
+ | 로컬 체크포인트 크기 | 약 **27.18 GiB** |
29
+ | Pruning 후 학습 | 없음 |
30
+
31
+ ## Calibration 및 expert 선정
32
+
33
+ 총 24,576개 sequence로 구성된 결정적 한국어 중심 mixture에서 expert
34
+ 중요도를 관측했습니다.
35
+
36
+ - 일반 한국어 instruction 및 reasoning 8,192개
37
+ - 한영 의미 대응 pair 8,192개
38
+ - 범용 capability replay 4,096개
39
+ - Qwen3.6 text 및 reasoning 특화 4,096개
40
+
41
+ Observer는 seed 17, 최대 sequence length 8,192로 40개 MoE layer 전체를
42
+ 관측했습니다. 각 layer에서 router-weighted activation 통계로 expert를
43
+ 정렬하여 상위 192개를 유지하고, router row도 동일한 index로 축소했으며,
44
+ top-8 routing은 그대로 유지했습니다.
45
+
46
+ Calibration 파일과 layer/expert별 전체 observation CSV는
47
+ [`eouya2/KGuard-Korean-MoE-Calibration-v1`](https://huggingface.co/datasets/eouya2/KGuard-Korean-MoE-Calibration-v1)에
48
+ 공개했습니다.
49
+
50
+ ## 평가 결과
51
+
52
+ Base와 pruning 모델 모두 동일한 deterministic subset과 prompt로
53
+ 평가했습니다.
54
+
55
+ | Benchmark | Base 8-bit | 이 모델 |
56
+ |---|---:|---:|
57
+ | KMMLU | 66.4 | **60.9** |
58
+ | MMLU-Pro | 64.3 | **58.8** |
59
+ | GSM8K | 96.7 | **96.7** |
60
+ | HumanEval+ pass@1 | 90.9 | **93.3** |
61
+ | 학술 10-benchmark macro | 81.2 | **79.7** |
62
+
63
+ KMMLU, MMLU-Pro, GSM8K는 각각 512문항의 고정 subset을 사용했고,
64
+ HumanEval+는 EvalPlus 전체 164문항을 사용했습니다. 위 결과는 동일한
65
+ 로컬 평가 조건에서 모델 간 차이를 비교하기 위한 수치입니다.
66
+
67
+ ## MLX 사용법
68
+
69
+ ```bash
70
+ pip install -U mlx-lm
71
+
72
+ mlx_lm.generate \
73
+ --model eouya2/Qwen3.6-35B-A3B-KGuard-REAP25-8bit-MLX \
74
+ --prompt "한국어로 mixture-of-experts 모델을 간단히 설명해 주세요." \
75
+ --max-tokens 256 \
76
+ --temperature 0.0
77
+ ```
78
+
79
+ Python 예제:
80
+
81
+ ```python
82
+ from mlx_lm import generate, load
83
+
84
+ model_id = "eouya2/Qwen3.6-35B-A3B-KGuard-REAP25-8bit-MLX"
85
+ model, tokenizer = load(model_id)
86
+
87
+ messages = [{"role": "user", "content": "한국어로 자기소개를 해 주세요."}]
88
+ prompt = tokenizer.apply_chat_template(
89
+ messages,
90
+ tokenize=False,
91
+ add_generation_prompt=True,
92
+ )
93
+
94
+ print(generate(model, tokenizer, prompt=prompt, max_tokens=256))
95
+ ```
96
+
97
+ OpenAI-compatible server:
98
+
99
+ ```bash
100
+ mlx_lm.server --model eouya2/Qwen3.6-35B-A3B-KGuard-REAP25-8bit-MLX
101
+ ```
102
+
103
+ ## 권장 용도
104
+
105
+ Apple Silicon 로컬 실행, 한국어·한영 생성, MoE pruning 연구, routed expert
106
+ 용량을 더 적극적으로 줄인 모델이 필요한 실험에 사용할 수 있습니다.
107
+ 실제 서비스 적용 전에는 기반 모델과 동일하게 용도별 품질 및 안전성
108
+ 평가를 권장합니다.
109
+
110
+ ## 참고 자료
111
+
112
+ - 기반 모델: [`Qwen/Qwen3.6-35B-A3B`](https://huggingface.co/Qwen/Qwen3.6-35B-A3B)
113
+ - MLX 8-bit 변환: [`mlx-community/Qwen3.6-35B-A3B-8bit`](https://huggingface.co/mlx-community/Qwen3.6-35B-A3B-8bit)
114
+ - REAP 논문: [REAP the Experts](https://huggingface.co/papers/2510.13999)
115
+ - MLX pruning 구현: [`egesabanci/reap-mlx`](https://github.com/egesabanci/reap-mlx)
116
+
117
+ ## 라이선스
118
+
119
+ 모델은 upstream Qwen 릴리스의 Apache 2.0 라이선스를 따릅니다. 별도
120
+ 공개한 합성 calibration 데이터는 CC BY 4.0입니다.
chat_template.jinja ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- set image_count = namespace(value=0) %}
2
+ {%- set video_count = namespace(value=0) %}
3
+ {%- macro render_content(content, do_vision_count, is_system_content=false) %}
4
+ {%- if content is string %}
5
+ {{- content }}
6
+ {%- elif content is iterable and content is not mapping %}
7
+ {%- for item in content %}
8
+ {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}
9
+ {%- if is_system_content %}
10
+ {{- raise_exception('System message cannot contain images.') }}
11
+ {%- endif %}
12
+ {%- if do_vision_count %}
13
+ {%- set image_count.value = image_count.value + 1 %}
14
+ {%- endif %}
15
+ {%- if add_vision_id %}
16
+ {{- 'Picture ' ~ image_count.value ~ ': ' }}
17
+ {%- endif %}
18
+ {{- '<|vision_start|><|image_pad|><|vision_end|>' }}
19
+ {%- elif 'video' in item or item.type == 'video' %}
20
+ {%- if is_system_content %}
21
+ {{- raise_exception('System message cannot contain videos.') }}
22
+ {%- endif %}
23
+ {%- if do_vision_count %}
24
+ {%- set video_count.value = video_count.value + 1 %}
25
+ {%- endif %}
26
+ {%- if add_vision_id %}
27
+ {{- 'Video ' ~ video_count.value ~ ': ' }}
28
+ {%- endif %}
29
+ {{- '<|vision_start|><|video_pad|><|vision_end|>' }}
30
+ {%- elif 'text' in item %}
31
+ {{- item.text }}
32
+ {%- else %}
33
+ {{- raise_exception('Unexpected item type in content.') }}
34
+ {%- endif %}
35
+ {%- endfor %}
36
+ {%- elif content is none or content is undefined %}
37
+ {{- '' }}
38
+ {%- else %}
39
+ {{- raise_exception('Unexpected content type.') }}
40
+ {%- endif %}
41
+ {%- endmacro %}
42
+ {%- if not messages %}
43
+ {{- raise_exception('No messages provided.') }}
44
+ {%- endif %}
45
+ {%- if tools and tools is iterable and tools is not mapping %}
46
+ {{- '<|im_start|>system\n' }}
47
+ {{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
48
+ {%- for tool in tools %}
49
+ {{- "\n" }}
50
+ {{- tool | tojson }}
51
+ {%- endfor %}
52
+ {{- "\n</tools>" }}
53
+ {{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n<tool_call>\n<function=example_function_name>\n<parameter=example_parameter_1>\nvalue_1\n</parameter>\n<parameter=example_parameter_2>\nThis is the value for the second parameter\nthat can span\nmultiple lines\n</parameter>\n</function>\n</tool_call>\n\n<IMPORTANT>\nReminder:\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n</IMPORTANT>' }}
54
+ {%- if messages[0].role == 'system' %}
55
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
56
+ {%- if content %}
57
+ {{- '\n\n' + content }}
58
+ {%- endif %}
59
+ {%- endif %}
60
+ {{- '<|im_end|>\n' }}
61
+ {%- else %}
62
+ {%- if messages[0].role == 'system' %}
63
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
64
+ {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
65
+ {%- endif %}
66
+ {%- endif %}
67
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
68
+ {%- for message in messages[::-1] %}
69
+ {%- set index = (messages|length - 1) - loop.index0 %}
70
+ {%- if ns.multi_step_tool and message.role == "user" %}
71
+ {%- set content = render_content(message.content, false)|trim %}
72
+ {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}
73
+ {%- set ns.multi_step_tool = false %}
74
+ {%- set ns.last_query_index = index %}
75
+ {%- endif %}
76
+ {%- endif %}
77
+ {%- endfor %}
78
+ {%- if ns.multi_step_tool %}
79
+ {{- raise_exception('No user query found in messages.') }}
80
+ {%- endif %}
81
+ {%- for message in messages %}
82
+ {%- set content = render_content(message.content, true)|trim %}
83
+ {%- if message.role == "system" %}
84
+ {%- if not loop.first %}
85
+ {{- raise_exception('System message must be at the beginning.') }}
86
+ {%- endif %}
87
+ {%- elif message.role == "user" %}
88
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
89
+ {%- elif message.role == "assistant" %}
90
+ {%- set reasoning_content = '' %}
91
+ {%- if message.reasoning_content is string %}
92
+ {%- set reasoning_content = message.reasoning_content %}
93
+ {%- else %}
94
+ {%- if '</think>' in content %}
95
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
96
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
97
+ {%- endif %}
98
+ {%- endif %}
99
+ {%- set reasoning_content = reasoning_content|trim %}
100
+ {%- if (preserve_thinking is defined and preserve_thinking is true) or (loop.index0 > ns.last_query_index) %}
101
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content + '\n</think>\n\n' + content }}
102
+ {%- else %}
103
+ {{- '<|im_start|>' + message.role + '\n' + content }}
104
+ {%- endif %}
105
+ {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
106
+ {%- for tool_call in message.tool_calls %}
107
+ {%- if tool_call.function is defined %}
108
+ {%- set tool_call = tool_call.function %}
109
+ {%- endif %}
110
+ {%- if loop.first %}
111
+ {%- if content|trim %}
112
+ {{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
113
+ {%- else %}
114
+ {{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
115
+ {%- endif %}
116
+ {%- else %}
117
+ {{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
118
+ {%- endif %}
119
+ {%- if tool_call.arguments is defined %}
120
+ {%- for args_name, args_value in tool_call.arguments|items %}
121
+ {{- '<parameter=' + args_name + '>\n' }}
122
+ {%- set args_value = args_value | string if args_value is string else args_value | tojson | safe %}
123
+ {{- args_value }}
124
+ {{- '\n</parameter>\n' }}
125
+ {%- endfor %}
126
+ {%- endif %}
127
+ {{- '</function>\n</tool_call>' }}
128
+ {%- endfor %}
129
+ {%- endif %}
130
+ {{- '<|im_end|>\n' }}
131
+ {%- elif message.role == "tool" %}
132
+ {%- if loop.previtem and loop.previtem.role != "tool" %}
133
+ {{- '<|im_start|>user' }}
134
+ {%- endif %}
135
+ {{- '\n<tool_response>\n' }}
136
+ {{- content }}
137
+ {{- '\n</tool_response>' }}
138
+ {%- if not loop.last and loop.nextitem.role != "tool" %}
139
+ {{- '<|im_end|>\n' }}
140
+ {%- elif loop.last %}
141
+ {{- '<|im_end|>\n' }}
142
+ {%- endif %}
143
+ {%- else %}
144
+ {{- raise_exception('Unexpected message role.') }}
145
+ {%- endif %}
146
+ {%- endfor %}
147
+ {%- if add_generation_prompt %}
148
+ {{- '<|im_start|>assistant\n' }}
149
+ {%- if enable_thinking is defined and enable_thinking is false %}
150
+ {{- '<think>\n\n</think>\n\n' }}
151
+ {%- else %}
152
+ {{- '<think>\n' }}
153
+ {%- endif %}
154
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,857 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen3_5MoeForConditionalGeneration"
4
+ ],
5
+ "eos_token_id": [
6
+ 248046,
7
+ 248044
8
+ ],
9
+ "image_token_id": 248056,
10
+ "model_type": "qwen3_5_moe",
11
+ "quantization": {
12
+ "group_size": 64,
13
+ "bits": 8,
14
+ "mode": "affine",
15
+ "language_model.model.layers.0.mlp.gate": {
16
+ "group_size": 64,
17
+ "bits": 8
18
+ },
19
+ "language_model.model.layers.0.mlp.shared_expert_gate": {
20
+ "group_size": 64,
21
+ "bits": 8
22
+ },
23
+ "language_model.model.layers.1.mlp.gate": {
24
+ "group_size": 64,
25
+ "bits": 8
26
+ },
27
+ "language_model.model.layers.1.mlp.shared_expert_gate": {
28
+ "group_size": 64,
29
+ "bits": 8
30
+ },
31
+ "language_model.model.layers.2.mlp.gate": {
32
+ "group_size": 64,
33
+ "bits": 8
34
+ },
35
+ "language_model.model.layers.2.mlp.shared_expert_gate": {
36
+ "group_size": 64,
37
+ "bits": 8
38
+ },
39
+ "language_model.model.layers.3.mlp.gate": {
40
+ "group_size": 64,
41
+ "bits": 8
42
+ },
43
+ "language_model.model.layers.3.mlp.shared_expert_gate": {
44
+ "group_size": 64,
45
+ "bits": 8
46
+ },
47
+ "language_model.model.layers.4.mlp.gate": {
48
+ "group_size": 64,
49
+ "bits": 8
50
+ },
51
+ "language_model.model.layers.4.mlp.shared_expert_gate": {
52
+ "group_size": 64,
53
+ "bits": 8
54
+ },
55
+ "language_model.model.layers.5.mlp.gate": {
56
+ "group_size": 64,
57
+ "bits": 8
58
+ },
59
+ "language_model.model.layers.5.mlp.shared_expert_gate": {
60
+ "group_size": 64,
61
+ "bits": 8
62
+ },
63
+ "language_model.model.layers.6.mlp.gate": {
64
+ "group_size": 64,
65
+ "bits": 8
66
+ },
67
+ "language_model.model.layers.6.mlp.shared_expert_gate": {
68
+ "group_size": 64,
69
+ "bits": 8
70
+ },
71
+ "language_model.model.layers.7.mlp.gate": {
72
+ "group_size": 64,
73
+ "bits": 8
74
+ },
75
+ "language_model.model.layers.7.mlp.shared_expert_gate": {
76
+ "group_size": 64,
77
+ "bits": 8
78
+ },
79
+ "language_model.model.layers.8.mlp.gate": {
80
+ "group_size": 64,
81
+ "bits": 8
82
+ },
83
+ "language_model.model.layers.8.mlp.shared_expert_gate": {
84
+ "group_size": 64,
85
+ "bits": 8
86
+ },
87
+ "language_model.model.layers.9.mlp.gate": {
88
+ "group_size": 64,
89
+ "bits": 8
90
+ },
91
+ "language_model.model.layers.9.mlp.shared_expert_gate": {
92
+ "group_size": 64,
93
+ "bits": 8
94
+ },
95
+ "language_model.model.layers.10.mlp.gate": {
96
+ "group_size": 64,
97
+ "bits": 8
98
+ },
99
+ "language_model.model.layers.10.mlp.shared_expert_gate": {
100
+ "group_size": 64,
101
+ "bits": 8
102
+ },
103
+ "language_model.model.layers.11.mlp.gate": {
104
+ "group_size": 64,
105
+ "bits": 8
106
+ },
107
+ "language_model.model.layers.11.mlp.shared_expert_gate": {
108
+ "group_size": 64,
109
+ "bits": 8
110
+ },
111
+ "language_model.model.layers.12.mlp.gate": {
112
+ "group_size": 64,
113
+ "bits": 8
114
+ },
115
+ "language_model.model.layers.12.mlp.shared_expert_gate": {
116
+ "group_size": 64,
117
+ "bits": 8
118
+ },
119
+ "language_model.model.layers.13.mlp.gate": {
120
+ "group_size": 64,
121
+ "bits": 8
122
+ },
123
+ "language_model.model.layers.13.mlp.shared_expert_gate": {
124
+ "group_size": 64,
125
+ "bits": 8
126
+ },
127
+ "language_model.model.layers.14.mlp.gate": {
128
+ "group_size": 64,
129
+ "bits": 8
130
+ },
131
+ "language_model.model.layers.14.mlp.shared_expert_gate": {
132
+ "group_size": 64,
133
+ "bits": 8
134
+ },
135
+ "language_model.model.layers.15.mlp.gate": {
136
+ "group_size": 64,
137
+ "bits": 8
138
+ },
139
+ "language_model.model.layers.15.mlp.shared_expert_gate": {
140
+ "group_size": 64,
141
+ "bits": 8
142
+ },
143
+ "language_model.model.layers.16.mlp.gate": {
144
+ "group_size": 64,
145
+ "bits": 8
146
+ },
147
+ "language_model.model.layers.16.mlp.shared_expert_gate": {
148
+ "group_size": 64,
149
+ "bits": 8
150
+ },
151
+ "language_model.model.layers.17.mlp.gate": {
152
+ "group_size": 64,
153
+ "bits": 8
154
+ },
155
+ "language_model.model.layers.17.mlp.shared_expert_gate": {
156
+ "group_size": 64,
157
+ "bits": 8
158
+ },
159
+ "language_model.model.layers.18.mlp.gate": {
160
+ "group_size": 64,
161
+ "bits": 8
162
+ },
163
+ "language_model.model.layers.18.mlp.shared_expert_gate": {
164
+ "group_size": 64,
165
+ "bits": 8
166
+ },
167
+ "language_model.model.layers.19.mlp.gate": {
168
+ "group_size": 64,
169
+ "bits": 8
170
+ },
171
+ "language_model.model.layers.19.mlp.shared_expert_gate": {
172
+ "group_size": 64,
173
+ "bits": 8
174
+ },
175
+ "language_model.model.layers.20.mlp.gate": {
176
+ "group_size": 64,
177
+ "bits": 8
178
+ },
179
+ "language_model.model.layers.20.mlp.shared_expert_gate": {
180
+ "group_size": 64,
181
+ "bits": 8
182
+ },
183
+ "language_model.model.layers.21.mlp.gate": {
184
+ "group_size": 64,
185
+ "bits": 8
186
+ },
187
+ "language_model.model.layers.21.mlp.shared_expert_gate": {
188
+ "group_size": 64,
189
+ "bits": 8
190
+ },
191
+ "language_model.model.layers.22.mlp.gate": {
192
+ "group_size": 64,
193
+ "bits": 8
194
+ },
195
+ "language_model.model.layers.22.mlp.shared_expert_gate": {
196
+ "group_size": 64,
197
+ "bits": 8
198
+ },
199
+ "language_model.model.layers.23.mlp.gate": {
200
+ "group_size": 64,
201
+ "bits": 8
202
+ },
203
+ "language_model.model.layers.23.mlp.shared_expert_gate": {
204
+ "group_size": 64,
205
+ "bits": 8
206
+ },
207
+ "language_model.model.layers.24.mlp.gate": {
208
+ "group_size": 64,
209
+ "bits": 8
210
+ },
211
+ "language_model.model.layers.24.mlp.shared_expert_gate": {
212
+ "group_size": 64,
213
+ "bits": 8
214
+ },
215
+ "language_model.model.layers.25.mlp.gate": {
216
+ "group_size": 64,
217
+ "bits": 8
218
+ },
219
+ "language_model.model.layers.25.mlp.shared_expert_gate": {
220
+ "group_size": 64,
221
+ "bits": 8
222
+ },
223
+ "language_model.model.layers.26.mlp.gate": {
224
+ "group_size": 64,
225
+ "bits": 8
226
+ },
227
+ "language_model.model.layers.26.mlp.shared_expert_gate": {
228
+ "group_size": 64,
229
+ "bits": 8
230
+ },
231
+ "language_model.model.layers.27.mlp.gate": {
232
+ "group_size": 64,
233
+ "bits": 8
234
+ },
235
+ "language_model.model.layers.27.mlp.shared_expert_gate": {
236
+ "group_size": 64,
237
+ "bits": 8
238
+ },
239
+ "language_model.model.layers.28.mlp.gate": {
240
+ "group_size": 64,
241
+ "bits": 8
242
+ },
243
+ "language_model.model.layers.28.mlp.shared_expert_gate": {
244
+ "group_size": 64,
245
+ "bits": 8
246
+ },
247
+ "language_model.model.layers.29.mlp.gate": {
248
+ "group_size": 64,
249
+ "bits": 8
250
+ },
251
+ "language_model.model.layers.29.mlp.shared_expert_gate": {
252
+ "group_size": 64,
253
+ "bits": 8
254
+ },
255
+ "language_model.model.layers.30.mlp.gate": {
256
+ "group_size": 64,
257
+ "bits": 8
258
+ },
259
+ "language_model.model.layers.30.mlp.shared_expert_gate": {
260
+ "group_size": 64,
261
+ "bits": 8
262
+ },
263
+ "language_model.model.layers.31.mlp.gate": {
264
+ "group_size": 64,
265
+ "bits": 8
266
+ },
267
+ "language_model.model.layers.31.mlp.shared_expert_gate": {
268
+ "group_size": 64,
269
+ "bits": 8
270
+ },
271
+ "language_model.model.layers.32.mlp.gate": {
272
+ "group_size": 64,
273
+ "bits": 8
274
+ },
275
+ "language_model.model.layers.32.mlp.shared_expert_gate": {
276
+ "group_size": 64,
277
+ "bits": 8
278
+ },
279
+ "language_model.model.layers.33.mlp.gate": {
280
+ "group_size": 64,
281
+ "bits": 8
282
+ },
283
+ "language_model.model.layers.33.mlp.shared_expert_gate": {
284
+ "group_size": 64,
285
+ "bits": 8
286
+ },
287
+ "language_model.model.layers.34.mlp.gate": {
288
+ "group_size": 64,
289
+ "bits": 8
290
+ },
291
+ "language_model.model.layers.34.mlp.shared_expert_gate": {
292
+ "group_size": 64,
293
+ "bits": 8
294
+ },
295
+ "language_model.model.layers.35.mlp.gate": {
296
+ "group_size": 64,
297
+ "bits": 8
298
+ },
299
+ "language_model.model.layers.35.mlp.shared_expert_gate": {
300
+ "group_size": 64,
301
+ "bits": 8
302
+ },
303
+ "language_model.model.layers.36.mlp.gate": {
304
+ "group_size": 64,
305
+ "bits": 8
306
+ },
307
+ "language_model.model.layers.36.mlp.shared_expert_gate": {
308
+ "group_size": 64,
309
+ "bits": 8
310
+ },
311
+ "language_model.model.layers.37.mlp.gate": {
312
+ "group_size": 64,
313
+ "bits": 8
314
+ },
315
+ "language_model.model.layers.37.mlp.shared_expert_gate": {
316
+ "group_size": 64,
317
+ "bits": 8
318
+ },
319
+ "language_model.model.layers.38.mlp.gate": {
320
+ "group_size": 64,
321
+ "bits": 8
322
+ },
323
+ "language_model.model.layers.38.mlp.shared_expert_gate": {
324
+ "group_size": 64,
325
+ "bits": 8
326
+ },
327
+ "language_model.model.layers.39.mlp.gate": {
328
+ "group_size": 64,
329
+ "bits": 8
330
+ },
331
+ "language_model.model.layers.39.mlp.shared_expert_gate": {
332
+ "group_size": 64,
333
+ "bits": 8
334
+ }
335
+ },
336
+ "quantization_config": {
337
+ "group_size": 64,
338
+ "bits": 8,
339
+ "mode": "affine",
340
+ "language_model.model.layers.0.mlp.gate": {
341
+ "group_size": 64,
342
+ "bits": 8
343
+ },
344
+ "language_model.model.layers.0.mlp.shared_expert_gate": {
345
+ "group_size": 64,
346
+ "bits": 8
347
+ },
348
+ "language_model.model.layers.1.mlp.gate": {
349
+ "group_size": 64,
350
+ "bits": 8
351
+ },
352
+ "language_model.model.layers.1.mlp.shared_expert_gate": {
353
+ "group_size": 64,
354
+ "bits": 8
355
+ },
356
+ "language_model.model.layers.2.mlp.gate": {
357
+ "group_size": 64,
358
+ "bits": 8
359
+ },
360
+ "language_model.model.layers.2.mlp.shared_expert_gate": {
361
+ "group_size": 64,
362
+ "bits": 8
363
+ },
364
+ "language_model.model.layers.3.mlp.gate": {
365
+ "group_size": 64,
366
+ "bits": 8
367
+ },
368
+ "language_model.model.layers.3.mlp.shared_expert_gate": {
369
+ "group_size": 64,
370
+ "bits": 8
371
+ },
372
+ "language_model.model.layers.4.mlp.gate": {
373
+ "group_size": 64,
374
+ "bits": 8
375
+ },
376
+ "language_model.model.layers.4.mlp.shared_expert_gate": {
377
+ "group_size": 64,
378
+ "bits": 8
379
+ },
380
+ "language_model.model.layers.5.mlp.gate": {
381
+ "group_size": 64,
382
+ "bits": 8
383
+ },
384
+ "language_model.model.layers.5.mlp.shared_expert_gate": {
385
+ "group_size": 64,
386
+ "bits": 8
387
+ },
388
+ "language_model.model.layers.6.mlp.gate": {
389
+ "group_size": 64,
390
+ "bits": 8
391
+ },
392
+ "language_model.model.layers.6.mlp.shared_expert_gate": {
393
+ "group_size": 64,
394
+ "bits": 8
395
+ },
396
+ "language_model.model.layers.7.mlp.gate": {
397
+ "group_size": 64,
398
+ "bits": 8
399
+ },
400
+ "language_model.model.layers.7.mlp.shared_expert_gate": {
401
+ "group_size": 64,
402
+ "bits": 8
403
+ },
404
+ "language_model.model.layers.8.mlp.gate": {
405
+ "group_size": 64,
406
+ "bits": 8
407
+ },
408
+ "language_model.model.layers.8.mlp.shared_expert_gate": {
409
+ "group_size": 64,
410
+ "bits": 8
411
+ },
412
+ "language_model.model.layers.9.mlp.gate": {
413
+ "group_size": 64,
414
+ "bits": 8
415
+ },
416
+ "language_model.model.layers.9.mlp.shared_expert_gate": {
417
+ "group_size": 64,
418
+ "bits": 8
419
+ },
420
+ "language_model.model.layers.10.mlp.gate": {
421
+ "group_size": 64,
422
+ "bits": 8
423
+ },
424
+ "language_model.model.layers.10.mlp.shared_expert_gate": {
425
+ "group_size": 64,
426
+ "bits": 8
427
+ },
428
+ "language_model.model.layers.11.mlp.gate": {
429
+ "group_size": 64,
430
+ "bits": 8
431
+ },
432
+ "language_model.model.layers.11.mlp.shared_expert_gate": {
433
+ "group_size": 64,
434
+ "bits": 8
435
+ },
436
+ "language_model.model.layers.12.mlp.gate": {
437
+ "group_size": 64,
438
+ "bits": 8
439
+ },
440
+ "language_model.model.layers.12.mlp.shared_expert_gate": {
441
+ "group_size": 64,
442
+ "bits": 8
443
+ },
444
+ "language_model.model.layers.13.mlp.gate": {
445
+ "group_size": 64,
446
+ "bits": 8
447
+ },
448
+ "language_model.model.layers.13.mlp.shared_expert_gate": {
449
+ "group_size": 64,
450
+ "bits": 8
451
+ },
452
+ "language_model.model.layers.14.mlp.gate": {
453
+ "group_size": 64,
454
+ "bits": 8
455
+ },
456
+ "language_model.model.layers.14.mlp.shared_expert_gate": {
457
+ "group_size": 64,
458
+ "bits": 8
459
+ },
460
+ "language_model.model.layers.15.mlp.gate": {
461
+ "group_size": 64,
462
+ "bits": 8
463
+ },
464
+ "language_model.model.layers.15.mlp.shared_expert_gate": {
465
+ "group_size": 64,
466
+ "bits": 8
467
+ },
468
+ "language_model.model.layers.16.mlp.gate": {
469
+ "group_size": 64,
470
+ "bits": 8
471
+ },
472
+ "language_model.model.layers.16.mlp.shared_expert_gate": {
473
+ "group_size": 64,
474
+ "bits": 8
475
+ },
476
+ "language_model.model.layers.17.mlp.gate": {
477
+ "group_size": 64,
478
+ "bits": 8
479
+ },
480
+ "language_model.model.layers.17.mlp.shared_expert_gate": {
481
+ "group_size": 64,
482
+ "bits": 8
483
+ },
484
+ "language_model.model.layers.18.mlp.gate": {
485
+ "group_size": 64,
486
+ "bits": 8
487
+ },
488
+ "language_model.model.layers.18.mlp.shared_expert_gate": {
489
+ "group_size": 64,
490
+ "bits": 8
491
+ },
492
+ "language_model.model.layers.19.mlp.gate": {
493
+ "group_size": 64,
494
+ "bits": 8
495
+ },
496
+ "language_model.model.layers.19.mlp.shared_expert_gate": {
497
+ "group_size": 64,
498
+ "bits": 8
499
+ },
500
+ "language_model.model.layers.20.mlp.gate": {
501
+ "group_size": 64,
502
+ "bits": 8
503
+ },
504
+ "language_model.model.layers.20.mlp.shared_expert_gate": {
505
+ "group_size": 64,
506
+ "bits": 8
507
+ },
508
+ "language_model.model.layers.21.mlp.gate": {
509
+ "group_size": 64,
510
+ "bits": 8
511
+ },
512
+ "language_model.model.layers.21.mlp.shared_expert_gate": {
513
+ "group_size": 64,
514
+ "bits": 8
515
+ },
516
+ "language_model.model.layers.22.mlp.gate": {
517
+ "group_size": 64,
518
+ "bits": 8
519
+ },
520
+ "language_model.model.layers.22.mlp.shared_expert_gate": {
521
+ "group_size": 64,
522
+ "bits": 8
523
+ },
524
+ "language_model.model.layers.23.mlp.gate": {
525
+ "group_size": 64,
526
+ "bits": 8
527
+ },
528
+ "language_model.model.layers.23.mlp.shared_expert_gate": {
529
+ "group_size": 64,
530
+ "bits": 8
531
+ },
532
+ "language_model.model.layers.24.mlp.gate": {
533
+ "group_size": 64,
534
+ "bits": 8
535
+ },
536
+ "language_model.model.layers.24.mlp.shared_expert_gate": {
537
+ "group_size": 64,
538
+ "bits": 8
539
+ },
540
+ "language_model.model.layers.25.mlp.gate": {
541
+ "group_size": 64,
542
+ "bits": 8
543
+ },
544
+ "language_model.model.layers.25.mlp.shared_expert_gate": {
545
+ "group_size": 64,
546
+ "bits": 8
547
+ },
548
+ "language_model.model.layers.26.mlp.gate": {
549
+ "group_size": 64,
550
+ "bits": 8
551
+ },
552
+ "language_model.model.layers.26.mlp.shared_expert_gate": {
553
+ "group_size": 64,
554
+ "bits": 8
555
+ },
556
+ "language_model.model.layers.27.mlp.gate": {
557
+ "group_size": 64,
558
+ "bits": 8
559
+ },
560
+ "language_model.model.layers.27.mlp.shared_expert_gate": {
561
+ "group_size": 64,
562
+ "bits": 8
563
+ },
564
+ "language_model.model.layers.28.mlp.gate": {
565
+ "group_size": 64,
566
+ "bits": 8
567
+ },
568
+ "language_model.model.layers.28.mlp.shared_expert_gate": {
569
+ "group_size": 64,
570
+ "bits": 8
571
+ },
572
+ "language_model.model.layers.29.mlp.gate": {
573
+ "group_size": 64,
574
+ "bits": 8
575
+ },
576
+ "language_model.model.layers.29.mlp.shared_expert_gate": {
577
+ "group_size": 64,
578
+ "bits": 8
579
+ },
580
+ "language_model.model.layers.30.mlp.gate": {
581
+ "group_size": 64,
582
+ "bits": 8
583
+ },
584
+ "language_model.model.layers.30.mlp.shared_expert_gate": {
585
+ "group_size": 64,
586
+ "bits": 8
587
+ },
588
+ "language_model.model.layers.31.mlp.gate": {
589
+ "group_size": 64,
590
+ "bits": 8
591
+ },
592
+ "language_model.model.layers.31.mlp.shared_expert_gate": {
593
+ "group_size": 64,
594
+ "bits": 8
595
+ },
596
+ "language_model.model.layers.32.mlp.gate": {
597
+ "group_size": 64,
598
+ "bits": 8
599
+ },
600
+ "language_model.model.layers.32.mlp.shared_expert_gate": {
601
+ "group_size": 64,
602
+ "bits": 8
603
+ },
604
+ "language_model.model.layers.33.mlp.gate": {
605
+ "group_size": 64,
606
+ "bits": 8
607
+ },
608
+ "language_model.model.layers.33.mlp.shared_expert_gate": {
609
+ "group_size": 64,
610
+ "bits": 8
611
+ },
612
+ "language_model.model.layers.34.mlp.gate": {
613
+ "group_size": 64,
614
+ "bits": 8
615
+ },
616
+ "language_model.model.layers.34.mlp.shared_expert_gate": {
617
+ "group_size": 64,
618
+ "bits": 8
619
+ },
620
+ "language_model.model.layers.35.mlp.gate": {
621
+ "group_size": 64,
622
+ "bits": 8
623
+ },
624
+ "language_model.model.layers.35.mlp.shared_expert_gate": {
625
+ "group_size": 64,
626
+ "bits": 8
627
+ },
628
+ "language_model.model.layers.36.mlp.gate": {
629
+ "group_size": 64,
630
+ "bits": 8
631
+ },
632
+ "language_model.model.layers.36.mlp.shared_expert_gate": {
633
+ "group_size": 64,
634
+ "bits": 8
635
+ },
636
+ "language_model.model.layers.37.mlp.gate": {
637
+ "group_size": 64,
638
+ "bits": 8
639
+ },
640
+ "language_model.model.layers.37.mlp.shared_expert_gate": {
641
+ "group_size": 64,
642
+ "bits": 8
643
+ },
644
+ "language_model.model.layers.38.mlp.gate": {
645
+ "group_size": 64,
646
+ "bits": 8
647
+ },
648
+ "language_model.model.layers.38.mlp.shared_expert_gate": {
649
+ "group_size": 64,
650
+ "bits": 8
651
+ },
652
+ "language_model.model.layers.39.mlp.gate": {
653
+ "group_size": 64,
654
+ "bits": 8
655
+ },
656
+ "language_model.model.layers.39.mlp.shared_expert_gate": {
657
+ "group_size": 64,
658
+ "bits": 8
659
+ }
660
+ },
661
+ "text_config": {
662
+ "attention_bias": false,
663
+ "attention_dropout": 0.0,
664
+ "attn_output_gate": true,
665
+ "bos_token_id": 248044,
666
+ "dtype": "bfloat16",
667
+ "eos_token_id": 248044,
668
+ "full_attention_interval": 4,
669
+ "head_dim": 256,
670
+ "hidden_act": "silu",
671
+ "hidden_size": 2048,
672
+ "initializer_range": 0.02,
673
+ "layer_types": [
674
+ "linear_attention",
675
+ "linear_attention",
676
+ "linear_attention",
677
+ "full_attention",
678
+ "linear_attention",
679
+ "linear_attention",
680
+ "linear_attention",
681
+ "full_attention",
682
+ "linear_attention",
683
+ "linear_attention",
684
+ "linear_attention",
685
+ "full_attention",
686
+ "linear_attention",
687
+ "linear_attention",
688
+ "linear_attention",
689
+ "full_attention",
690
+ "linear_attention",
691
+ "linear_attention",
692
+ "linear_attention",
693
+ "full_attention",
694
+ "linear_attention",
695
+ "linear_attention",
696
+ "linear_attention",
697
+ "full_attention",
698
+ "linear_attention",
699
+ "linear_attention",
700
+ "linear_attention",
701
+ "full_attention",
702
+ "linear_attention",
703
+ "linear_attention",
704
+ "linear_attention",
705
+ "full_attention",
706
+ "linear_attention",
707
+ "linear_attention",
708
+ "linear_attention",
709
+ "full_attention",
710
+ "linear_attention",
711
+ "linear_attention",
712
+ "linear_attention",
713
+ "full_attention"
714
+ ],
715
+ "linear_conv_kernel_dim": 4,
716
+ "linear_key_head_dim": 128,
717
+ "linear_num_key_heads": 16,
718
+ "linear_num_value_heads": 32,
719
+ "linear_value_head_dim": 128,
720
+ "mamba_ssm_dtype": "float32",
721
+ "max_position_embeddings": 262144,
722
+ "model_type": "qwen3_5_moe_text",
723
+ "moe_intermediate_size": 512,
724
+ "mtp_num_hidden_layers": 1,
725
+ "mtp_use_dedicated_embeddings": false,
726
+ "num_attention_heads": 16,
727
+ "num_experts": 192,
728
+ "num_experts_per_tok": 8,
729
+ "num_hidden_layers": 40,
730
+ "num_key_value_heads": 2,
731
+ "output_router_logits": false,
732
+ "pad_token_id": null,
733
+ "partial_rotary_factor": 0.25,
734
+ "rms_norm_eps": 1e-06,
735
+ "rope_parameters": {
736
+ "mrope_interleaved": true,
737
+ "mrope_section": [
738
+ 11,
739
+ 11,
740
+ 10
741
+ ],
742
+ "partial_rotary_factor": 0.25,
743
+ "rope_theta": 10000000,
744
+ "type": "default"
745
+ },
746
+ "router_aux_loss_coef": 0.001,
747
+ "shared_expert_intermediate_size": 512,
748
+ "tie_word_embeddings": false,
749
+ "use_cache": true,
750
+ "vocab_size": 248320
751
+ },
752
+ "tie_word_embeddings": false,
753
+ "transformers_version": "4.57.1",
754
+ "video_token_id": 248057,
755
+ "vision_config": {
756
+ "deepstack_visual_indexes": [],
757
+ "depth": 27,
758
+ "hidden_act": "gelu_pytorch_tanh",
759
+ "hidden_size": 1152,
760
+ "in_channels": 3,
761
+ "initializer_range": 0.02,
762
+ "intermediate_size": 4304,
763
+ "model_type": "qwen3_5_moe",
764
+ "num_heads": 16,
765
+ "num_position_embeddings": 2304,
766
+ "out_hidden_size": 2048,
767
+ "patch_size": 16,
768
+ "spatial_merge_size": 2,
769
+ "temporal_patch_size": 2
770
+ },
771
+ "vision_end_token_id": 248054,
772
+ "vision_start_token_id": 248053,
773
+ "reap_retained_experts_by_layer": {
774
+ "0": 192,
775
+ "1": 192,
776
+ "2": 192,
777
+ "3": 192,
778
+ "4": 192,
779
+ "5": 192,
780
+ "6": 192,
781
+ "7": 192,
782
+ "8": 192,
783
+ "9": 192,
784
+ "10": 192,
785
+ "11": 192,
786
+ "12": 192,
787
+ "13": 192,
788
+ "14": 192,
789
+ "15": 192,
790
+ "16": 192,
791
+ "17": 192,
792
+ "18": 192,
793
+ "19": 192,
794
+ "20": 192,
795
+ "21": 192,
796
+ "22": 192,
797
+ "23": 192,
798
+ "24": 192,
799
+ "25": 192,
800
+ "26": 192,
801
+ "27": 192,
802
+ "28": 192,
803
+ "29": 192,
804
+ "30": 192,
805
+ "31": 192,
806
+ "32": 192,
807
+ "33": 192,
808
+ "34": 192,
809
+ "35": 192,
810
+ "36": 192,
811
+ "37": 192,
812
+ "38": 192,
813
+ "39": 192
814
+ },
815
+ "reap_primary_prune_layers": [
816
+ 0,
817
+ 1,
818
+ 2,
819
+ 3,
820
+ 4,
821
+ 5,
822
+ 6,
823
+ 7,
824
+ 8,
825
+ 9,
826
+ 10,
827
+ 11,
828
+ 12,
829
+ 13,
830
+ 14,
831
+ 15,
832
+ 16,
833
+ 17,
834
+ 18,
835
+ 19,
836
+ 20,
837
+ 21,
838
+ 22,
839
+ 23,
840
+ 24,
841
+ 25,
842
+ 26,
843
+ 27,
844
+ 28,
845
+ 29,
846
+ 30,
847
+ 31,
848
+ 32,
849
+ 33,
850
+ 34,
851
+ 35,
852
+ 36,
853
+ 37,
854
+ 38,
855
+ 39
856
+ ]
857
+ }
configuration.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"framework":"Pytorch","task":"visual-question-answering"}
generation_config.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
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": 1.0,
10
+ "top_k": 20,
11
+ "top_p": 0.95
12
+ }
model-00001-of-00006.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9cdbdb02ce614fa85a9afd9cc291ce555e530842731f3f73f5dd8de29c6b6f4e
3
+ size 5332384107
model-00002-of-00006.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fa9c4f9fbc8f5eccd79641dcb9bd5311c824d1e11d4ce8a1d55323f22cdc53ec
3
+ size 5190463150
model-00003-of-00006.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:151a19edb44dbe44dc09b1ab92847e8717514788bc5dcce77ce63447d1f62bf9
3
+ size 5223205906
model-00004-of-00006.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9544137d433ef8b7c827084d81b6bc29146176997629b5e132ae9ce6d99ac623
3
+ size 5223205744
model-00005-of-00006.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:737db04f0cf7766c037f266f32056edf94664a78d7e332f71a9f47c69e81bfac
3
+ size 5183573833
model-00006-of-00006.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c12b36e6958e407df64e7f137b6136112056ce880c019eeb186c1f6597c25541
3
+ size 2113439105
model.safetensors.index.json ADDED
The diff for this file is too large to render. See raw diff
 
preprocessor_config.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ }
processor_config.json ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ "max_pixels": 16777216,
19
+ "merge_size": 2,
20
+ "min_pixels": 65536,
21
+ "patch_size": 16,
22
+ "resample": 3,
23
+ "rescale_factor": 0.00392156862745098,
24
+ "size": {
25
+ "longest_edge": 16777216,
26
+ "shortest_edge": 65536
27
+ },
28
+ "temporal_patch_size": 2
29
+ },
30
+ "processor_class": "Qwen3VLProcessor",
31
+ "video_processor": {
32
+ "data_format": "channels_first",
33
+ "default_to_square": true,
34
+ "do_convert_rgb": true,
35
+ "do_normalize": true,
36
+ "do_rescale": true,
37
+ "do_resize": true,
38
+ "do_sample_frames": true,
39
+ "fps": 2,
40
+ "image_mean": [
41
+ 0.5,
42
+ 0.5,
43
+ 0.5
44
+ ],
45
+ "image_std": [
46
+ 0.5,
47
+ 0.5,
48
+ 0.5
49
+ ],
50
+ "max_frames": 768,
51
+ "merge_size": 2,
52
+ "min_frames": 4,
53
+ "patch_size": 16,
54
+ "resample": 3,
55
+ "rescale_factor": 0.00392156862745098,
56
+ "return_metadata": false,
57
+ "size": {
58
+ "longest_edge": 25165824,
59
+ "shortest_edge": 4096
60
+ },
61
+ "temporal_patch_size": 2,
62
+ "video_processor_type": "Qwen3VLVideoProcessor"
63
+ }
64
+ }
reap-preserved-aux-00001.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d4579339122fdc5e06774fa0c188bb5b79410a8ab821343cec7a6122a0588014
3
+ size 893179536
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:87a7830d63fcf43bf241c3c5242e96e62dd3fdc29224ca26fed8ea333db72de4
3
+ size 19989343
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
+ "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": "TokenizersBackend",
29
+ "tool_parser_type": "qwen3_coder",
30
+ "unk_token": null,
31
+ "video_token": "<|video_pad|>",
32
+ "vision_bos_token": "<|vision_start|>",
33
+ "vision_eos_token": "<|vision_end|>"
34
+ }
video_preprocessor_config.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ }
vocab.json ADDED
The diff for this file is too large to render. See raw diff