AutomatosX commited on
Commit
3af7b5c
·
verified ·
1 Parent(s): 770b8ab

Publish AX-Qwen3-VL-32B-Thinking-MLX-AXQ-6bit

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,184 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ library_name: mlx
4
+ base_model: Qwen/Qwen3-VL-32B-Thinking
5
+ base_model_relation: quantized
6
+ pipeline_tag: image-text-to-text
7
+ tags:
8
+ - mlx
9
+ - apple-silicon
10
+ - quantized
11
+ - mixed-precision
12
+ - axquant
13
+ - axq
14
+ - development
15
+ - qwen3-vl
16
+ - 6bit
17
+ - 6-bit
18
+ - vision
19
+ ---
20
+
21
+ # AX-Qwen3-VL-32B-Thinking-MLX-AXQ-6bit — 6.94 BPW measured main
22
+
23
+ An **AXQuant (AXQ)** mixed-precision MLX checkpoint for Apple Silicon, converted directly from
24
+ the BF16 source model. The language path is quantized while the vision tower are preserved at BF16 in the checkpoint (or a bound sidecar when present).
25
+
26
+ > **Development evidence — not a certified AXQuant release.** This package has conversion and
27
+ > artifact-integrity records, but it does not publish measured quality, long-context, kernel-speed,
28
+ > or MTP-speed evidence. Do not interpret the AXQ product label as a benchmark claim.
29
+
30
+
31
+ ## Model details
32
+
33
+ | Property | Value |
34
+ | --- | --- |
35
+ | Base model | [Qwen/Qwen3-VL-32B-Thinking](https://huggingface.co/Qwen/Qwen3-VL-32B-Thinking/tree/7edd10ffd1196091948fb245ff63e406ccb2d4d1) |
36
+ | Source revision | `7edd10ffd1196091948fb245ff63e406ccb2d4d1` |
37
+ | Product family | `qwen3-vl` |
38
+ | Source architecture | `Qwen3VLForConditionalGeneration` (dense); text path optimized |
39
+ | Main-model parameters | 33.36B logical parameters |
40
+ | Quantizer | AXQuant `1.8.1` |
41
+ | Hub budget class | `6bit` |
42
+ | AXQuant base precision class | `8bit` |
43
+ | Planned storage-adjusted BPW | 6.9379 |
44
+ | Measured main-model BPW | 6.9380 |
45
+ | Measured total BPW | **6.9380** |
46
+ | Safetensors weight size | 28.93 GB |
47
+ | Approximate complete download | 28.94 GB |
48
+ | Configured maximum context | 262,144 tokens; practical limits depend on unified memory |
49
+ | Primary MLX runtime | MLX-VLM |
50
+ | AX Engine native execution | Not established; no validated native manifest is included |
51
+ | MTP present | `False` |
52
+ | Vision present | `True` |
53
+ | Audio present | `False` |
54
+
55
+ This repository contains MLX Safetensors. It does **not** contain PyTorch or GGUF weights.
56
+
57
+ ## Choosing an AXQ pack
58
+
59
+ AXQ names describe a **storage-budget product class**, not one uniform precision applied to every
60
+ tensor. Protected tensors remain at higher precision, so the exact measured BPW is authoritative.
61
+ In particular, a `6bit`-named mixed plan may retain `4bit` as its base precision while selecting
62
+ 6-bit, 8-bit, or BF16 for other tensors to meet an approximately 6-BPW total budget. Protection
63
+ floors can also raise a `4bit`-named pack close to (or above) a `6bit` budget on small or heavily
64
+ protected models. When that collapse happens, AutomatosX does **not** publish a separate
65
+ misleading `4bit` sibling for that base.
66
+
67
+
68
+ | Sibling | Intended trade-off |
69
+ | --- | --- |
70
+ | [4bit sibling](https://huggingface.co/AutomatosX/AX-Qwen3-VL-32B-Thinking-MLX-AXQ-4bit) | Lower-storage AXQ budget; check its exact BPW |
71
+ | [6bit sibling](https://huggingface.co/AutomatosX/AX-Qwen3-VL-32B-Thinking-MLX-AXQ-6bit) | Higher average precision near the 6-BPW budget |
72
+
73
+ See the [AutomatosX collections](https://huggingface.co/AutomatosX/collections)
74
+ for the family catalog, or the [complete index](https://huggingface.co/collections/AutomatosX/automatosx-mlx-model-catalog).
75
+
76
+ ## Download
77
+
78
+ ```bash
79
+ python -m pip install -U huggingface_hub
80
+ hf download AutomatosX/AX-Qwen3-VL-32B-Thinking-MLX-AXQ-6bit --local-dir ./AX-Qwen3-VL-32B-Thinking-MLX-AXQ-6bit
81
+ ```
82
+
83
+ Allow at least 28.94 GB of free disk space. Pin the resulting Hub commit in reproducible
84
+ deployments rather than relying indefinitely on `main`.
85
+
86
+ ## Run with MLX-VLM
87
+
88
+ ```bash
89
+ python -m pip install -U mlx-vlm
90
+ python -m mlx_vlm.generate \
91
+ --model AutomatosX/AX-Qwen3-VL-32B-Thinking-MLX-AXQ-6bit \
92
+ --image ./image.png \
93
+ --prompt "Describe this image." \
94
+ --max-tokens 128 \
95
+ --temperature 0.0
96
+ ```
97
+
98
+ The protected vision tower and AXQ language decoder are loaded together by MLX-VLM. The artifact
99
+ records MLX `0.32.0`; runtime QA is reported separately from model-quality claims.
100
+
101
+ ## AX Engine status
102
+
103
+ This package does **not** include a validated native `model-manifest.json`, so AX Engine execution
104
+ is not established by this release. The AX Engine fields in `axquant_runtime.json` describe the
105
+ intended compatibility contract, not observed runtime evidence. Use the architecture-specific MLX
106
+ runtime path above. The artifact records AX Engine version
107
+ `not recorded`, but version discovery alone is not a runtime check.
108
+
109
+ ## Quantization layout
110
+
111
+ | Main-weight precision | Parameters | Share |
112
+ | --- | ---: | ---: |
113
+ | `6bit` | 31.21B | 93.55% |
114
+ | `8bit` | 777.91M | 2.33% |
115
+ | `bf16` | 1.37B | 4.12% |
116
+
117
+ - Quantization methods: `affine, bf16`.
118
+ - Group sizes used by quantized assignments: `64`.
119
+ - MTP sidecar: not included.
120
+ - Vision sidecar: not included.
121
+ - Vision weights: protected BF16 in main shards.
122
+ - Optimization scope: `text-path`.
123
+ - Support tier: `convertible`.
124
+
125
+ BF16 sidecars, when present, are included in total download size. Their presence does not by itself
126
+ establish MTP acceleration or vision-language quality.
127
+
128
+ ## Evidence and validation status
129
+
130
+ | Check | Status |
131
+ | --- | --- |
132
+ | Planning evidence | `architecture_prior` |
133
+ | Calibration | none; the allocation is based on architecture priors |
134
+ | Quantizer execution | 449/449 recorded module conversions succeeded; 0 fallbacks |
135
+ | AX Engine native manifest | not included |
136
+ | Quality versus BF16 or uniform baselines | Not published; no quality-retention claim |
137
+ | MTP acceptance and speed | not measured; no MTP speedup claim |
138
+ | AX Engine kernel evidence | `unmeasured` |
139
+ | Vision-language quality | Present, not certified; text Tier 1 does not imply VLM quality |
140
+ | Speech-recognition quality | Not applicable (audio disabled for this pack) |
141
+ | Long-context quality | 262,144-token capacity is config metadata, not a validated claim |
142
+ | Release certification | **Not certified**; formal AXQuant M0-M8 gates are not closed |
143
+
144
+ ## Modalities (capability-gated)
145
+
146
+ Text checkpoint Tier 1 does **not** imply vision or audio quality. `Vision present=true` on a pack is not a quality pass.
147
+
148
+ | Modality | Claim | Supported | Reason |
149
+ | --- | --- | --- | --- |
150
+ | Vision | `present-not-certified` | `true` | vision tower BF16-protected; VL quality not certified |
151
+ | Audio | `not-applicable` | `false` | audio not supported on this pack |
152
+
153
+ ## Intended use and limitations
154
+
155
+ - Intended for local development and evaluation on Apple Silicon with MLX-compatible runtimes.
156
+ - No minimum unified-memory figure is claimed; loadability depends on model size, context length,
157
+ KV-cache policy, runtime buffers, and other processes using unified memory.
158
+ - Architecture-prior allocation is not measured sensitivity. It must not be presented as measured
159
+ model quality.
160
+ - Vision weights are preserved at BF16, but this release does not claim validated VLM quality.
161
+ - The configured context window can require substantially more memory as the KV cache grows.
162
+ - AX Engine execution is not established because this package has no validated native manifest.
163
+
164
+ - Upstream capabilities, limitations, biases, and responsible-use guidance still apply.
165
+
166
+ ## Provenance and audit files
167
+
168
+ - [`axquant_manifest.json`](axquant_manifest.json): package identity, byte accounting, runtime
169
+ contract, software versions, and file checksums.
170
+ - [`axquant_plan.json`](axquant_plan.json): per-tensor precision decisions and planning evidence.
171
+ - [`axquant_quantizer_execution.json`](axquant_quantizer_execution.json): conversion coverage and
172
+ fallback records.
173
+ - [`axquant_runtime.json`](axquant_runtime.json): declared AX Engine and MLX compatibility metadata; runtime checks remain separate evidence.
174
+
175
+ All published provenance uses repository-relative paths. Local source paths are stripped before
176
+ publication. The checkpoint was converted from BF16 rather than re-quantized from an OptiQ
177
+ artifact. If an OptiQ repository is published separately, it uses a different quantizer and
178
+ should not be assumed to have identical BPW or quality.
179
+
180
+ ## License
181
+
182
+ The checkpoint follows the upstream model license where applicable (often Apache License 2.0). See
183
+ the [Qwen/Qwen3-VL-32B-Thinking model card](https://huggingface.co/Qwen/Qwen3-VL-32B-Thinking/tree/7edd10ffd1196091948fb245ff63e406ccb2d4d1) for license terms, model
184
+ limitations, and responsible-use guidance.
axquant_manifest.json ADDED
@@ -0,0 +1,492 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "axquant_version": "1.8.1",
3
+ "calibration": null,
4
+ "created_at": "2026-08-15T23:51:25.241690Z",
5
+ "effective_bpw": 6.937907655843994,
6
+ "files": [
7
+ {
8
+ "path": ".cache/huggingface/.gitignore",
9
+ "sha256": "684888c0ebb17f374298b65ee2807526c066094c701bcc7ebbe1c1095f494fc1",
10
+ "size_bytes": 1
11
+ },
12
+ {
13
+ "path": ".cache/huggingface/CACHEDIR.TAG",
14
+ "sha256": "f6572428f6d5e1575e73a1502895a8731f10757dfbb634909c6e154b849af91d",
15
+ "size_bytes": 191
16
+ },
17
+ {
18
+ "path": ".cache/huggingface/download/.gitattributes.lock",
19
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
20
+ "size_bytes": 0
21
+ },
22
+ {
23
+ "path": ".cache/huggingface/download/.gitattributes.metadata",
24
+ "sha256": "5ca3f9fab749b7b27ecfd7f1a8517343da19f42729666a64c3d87ae71090b9df",
25
+ "size_bytes": 100
26
+ },
27
+ {
28
+ "path": ".cache/huggingface/download/README.md.lock",
29
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
30
+ "size_bytes": 0
31
+ },
32
+ {
33
+ "path": ".cache/huggingface/download/README.md.metadata",
34
+ "sha256": "11c0022f3099c2deebd3095c9d289b5323f4ad5ee7356cf8f83fc87a84c4b82a",
35
+ "size_bytes": 100
36
+ },
37
+ {
38
+ "path": ".cache/huggingface/download/chat_template.json.lock",
39
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
40
+ "size_bytes": 0
41
+ },
42
+ {
43
+ "path": ".cache/huggingface/download/chat_template.json.metadata",
44
+ "sha256": "646e2437cee7af78f38f8c10a6cb8a182c2f01ac54ea0d92bda3a93315a2fb22",
45
+ "size_bytes": 100
46
+ },
47
+ {
48
+ "path": ".cache/huggingface/download/config.json.lock",
49
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
50
+ "size_bytes": 0
51
+ },
52
+ {
53
+ "path": ".cache/huggingface/download/config.json.metadata",
54
+ "sha256": "1cbd80d0e12f4dccdf9e5a0f96a09958b8c95b59576ef3caea355bb4fd90e5c2",
55
+ "size_bytes": 100
56
+ },
57
+ {
58
+ "path": ".cache/huggingface/download/generation_config.json.lock",
59
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
60
+ "size_bytes": 0
61
+ },
62
+ {
63
+ "path": ".cache/huggingface/download/generation_config.json.metadata",
64
+ "sha256": "5bbd52393d500f77f224680b4c6278f0fcfec89537e8e61a93802c135eb7cd34",
65
+ "size_bytes": 100
66
+ },
67
+ {
68
+ "path": ".cache/huggingface/download/merges.txt.lock",
69
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
70
+ "size_bytes": 0
71
+ },
72
+ {
73
+ "path": ".cache/huggingface/download/merges.txt.metadata",
74
+ "sha256": "240cc6b326f06d613ad7ab40da4081e0043dfed235204db8b79eaa62fcdcda66",
75
+ "size_bytes": 100
76
+ },
77
+ {
78
+ "path": ".cache/huggingface/download/model-00001-of-00014.safetensors.lock",
79
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
80
+ "size_bytes": 0
81
+ },
82
+ {
83
+ "path": ".cache/huggingface/download/model-00001-of-00014.safetensors.metadata",
84
+ "sha256": "026b90c0a36dceeea8ba2b8677ebbb1ac0b8b33009fe3352212a529de66eaeae",
85
+ "size_bytes": 125
86
+ },
87
+ {
88
+ "path": ".cache/huggingface/download/model-00002-of-00014.safetensors.lock",
89
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
90
+ "size_bytes": 0
91
+ },
92
+ {
93
+ "path": ".cache/huggingface/download/model-00002-of-00014.safetensors.metadata",
94
+ "sha256": "da1755e1bdacaffc9669d478394299444b510fb591cea27f8c2127a48979c923",
95
+ "size_bytes": 124
96
+ },
97
+ {
98
+ "path": ".cache/huggingface/download/model-00003-of-00014.safetensors.lock",
99
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
100
+ "size_bytes": 0
101
+ },
102
+ {
103
+ "path": ".cache/huggingface/download/model-00003-of-00014.safetensors.metadata",
104
+ "sha256": "cf308016919e1d168f328d1c2b271882561a2ecd1151fc0d216ce4e49ec3a23d",
105
+ "size_bytes": 124
106
+ },
107
+ {
108
+ "path": ".cache/huggingface/download/model-00004-of-00014.safetensors.lock",
109
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
110
+ "size_bytes": 0
111
+ },
112
+ {
113
+ "path": ".cache/huggingface/download/model-00004-of-00014.safetensors.metadata",
114
+ "sha256": "6078aeb3858168d7973c4621653a5c98bab4b3abc0d7c7ed6e9ca1f27d6b8e99",
115
+ "size_bytes": 124
116
+ },
117
+ {
118
+ "path": ".cache/huggingface/download/model-00005-of-00014.safetensors.lock",
119
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
120
+ "size_bytes": 0
121
+ },
122
+ {
123
+ "path": ".cache/huggingface/download/model-00005-of-00014.safetensors.metadata",
124
+ "sha256": "f0a22b1de60ef89befcb3fd6da9d6f300a5e288dfd9d1d06dd354599d0534c24",
125
+ "size_bytes": 124
126
+ },
127
+ {
128
+ "path": ".cache/huggingface/download/model-00006-of-00014.safetensors.lock",
129
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
130
+ "size_bytes": 0
131
+ },
132
+ {
133
+ "path": ".cache/huggingface/download/model-00006-of-00014.safetensors.metadata",
134
+ "sha256": "60e42e7232148697f86205ad8f778cec8042c9b4a6ddd07d2583816bb70404f3",
135
+ "size_bytes": 124
136
+ },
137
+ {
138
+ "path": ".cache/huggingface/download/model-00007-of-00014.safetensors.lock",
139
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
140
+ "size_bytes": 0
141
+ },
142
+ {
143
+ "path": ".cache/huggingface/download/model-00007-of-00014.safetensors.metadata",
144
+ "sha256": "1507daf4a3c21a23656c4ecf22a8044279e5d9f1f7220b6aafdea8b0b6f5abb2",
145
+ "size_bytes": 124
146
+ },
147
+ {
148
+ "path": ".cache/huggingface/download/model-00008-of-00014.safetensors.lock",
149
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
150
+ "size_bytes": 0
151
+ },
152
+ {
153
+ "path": ".cache/huggingface/download/model-00008-of-00014.safetensors.metadata",
154
+ "sha256": "49172878b715a70e8d7ecb087f8778283cdc96b2725b5a099541be417c8e4dcc",
155
+ "size_bytes": 124
156
+ },
157
+ {
158
+ "path": ".cache/huggingface/download/model-00009-of-00014.safetensors.lock",
159
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
160
+ "size_bytes": 0
161
+ },
162
+ {
163
+ "path": ".cache/huggingface/download/model-00009-of-00014.safetensors.metadata",
164
+ "sha256": "b66fead32be7a4d3a5d434349ff94421dba348240154cfc318a1dc45bcfea70c",
165
+ "size_bytes": 125
166
+ },
167
+ {
168
+ "path": ".cache/huggingface/download/model-00010-of-00014.safetensors.lock",
169
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
170
+ "size_bytes": 0
171
+ },
172
+ {
173
+ "path": ".cache/huggingface/download/model-00010-of-00014.safetensors.metadata",
174
+ "sha256": "14fba5ef9a11c02172d1ca1998cfe73d5bc9c0fad2ac93e44d88488d77e33603",
175
+ "size_bytes": 125
176
+ },
177
+ {
178
+ "path": ".cache/huggingface/download/model-00011-of-00014.safetensors.lock",
179
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
180
+ "size_bytes": 0
181
+ },
182
+ {
183
+ "path": ".cache/huggingface/download/model-00011-of-00014.safetensors.metadata",
184
+ "sha256": "deb1db61b8a842765f4d3fe11e3b49a866bafdf99632ea611ad8bee4fadca54b",
185
+ "size_bytes": 124
186
+ },
187
+ {
188
+ "path": ".cache/huggingface/download/model-00012-of-00014.safetensors.lock",
189
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
190
+ "size_bytes": 0
191
+ },
192
+ {
193
+ "path": ".cache/huggingface/download/model-00012-of-00014.safetensors.metadata",
194
+ "sha256": "b3f8cc162b73ccafb50abc46951ec947188d71598d01cdb3e2b95cbb521db795",
195
+ "size_bytes": 123
196
+ },
197
+ {
198
+ "path": ".cache/huggingface/download/model-00013-of-00014.safetensors.lock",
199
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
200
+ "size_bytes": 0
201
+ },
202
+ {
203
+ "path": ".cache/huggingface/download/model-00013-of-00014.safetensors.metadata",
204
+ "sha256": "b334025d102e0162d28f0abdb308aee6b08f701eaf357216de92355a93da4ba4",
205
+ "size_bytes": 124
206
+ },
207
+ {
208
+ "path": ".cache/huggingface/download/model-00014-of-00014.safetensors.lock",
209
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
210
+ "size_bytes": 0
211
+ },
212
+ {
213
+ "path": ".cache/huggingface/download/model-00014-of-00014.safetensors.metadata",
214
+ "sha256": "c34d2b7cca72bb0716492fc2e37d55e23840b4da159462743e2104a6a7b3f5f6",
215
+ "size_bytes": 125
216
+ },
217
+ {
218
+ "path": ".cache/huggingface/download/model.safetensors.index.json.lock",
219
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
220
+ "size_bytes": 0
221
+ },
222
+ {
223
+ "path": ".cache/huggingface/download/model.safetensors.index.json.metadata",
224
+ "sha256": "b116bbc784716636222b2937dfe7e4f058fcf25af9a5ab78eecbb55336cbebef",
225
+ "size_bytes": 100
226
+ },
227
+ {
228
+ "path": ".cache/huggingface/download/preprocessor_config.json.lock",
229
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
230
+ "size_bytes": 0
231
+ },
232
+ {
233
+ "path": ".cache/huggingface/download/preprocessor_config.json.metadata",
234
+ "sha256": "32852d0cbb90c6c9def2b333d6b9ca70e3a1e6e862beef4171fe6ba79dae59bc",
235
+ "size_bytes": 101
236
+ },
237
+ {
238
+ "path": ".cache/huggingface/download/tokenizer.json.lock",
239
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
240
+ "size_bytes": 0
241
+ },
242
+ {
243
+ "path": ".cache/huggingface/download/tokenizer.json.metadata",
244
+ "sha256": "7778be585e981980c7bcae69abc920f16629a97e1e27c9302a86f0739d7fbe47",
245
+ "size_bytes": 100
246
+ },
247
+ {
248
+ "path": ".cache/huggingface/download/tokenizer_config.json.lock",
249
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
250
+ "size_bytes": 0
251
+ },
252
+ {
253
+ "path": ".cache/huggingface/download/tokenizer_config.json.metadata",
254
+ "sha256": "858e5dffbec632c6299e3c72a003d78a9b578c57fd7288a69c7a3d397ec2572f",
255
+ "size_bytes": 99
256
+ },
257
+ {
258
+ "path": ".cache/huggingface/download/video_preprocessor_config.json.lock",
259
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
260
+ "size_bytes": 0
261
+ },
262
+ {
263
+ "path": ".cache/huggingface/download/video_preprocessor_config.json.metadata",
264
+ "sha256": "4de7528e59f299bd683ed08b4b54377b48a20564a01cc566081e280b9165e098",
265
+ "size_bytes": 100
266
+ },
267
+ {
268
+ "path": ".cache/huggingface/download/vocab.json.lock",
269
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
270
+ "size_bytes": 0
271
+ },
272
+ {
273
+ "path": ".cache/huggingface/download/vocab.json.metadata",
274
+ "sha256": "89532a396d926d4fc17e200bdc5916010f58ddd5b4adc529f0c65333f11eed68",
275
+ "size_bytes": 100
276
+ },
277
+ {
278
+ "path": ".cache/huggingface/trees/7edd10ffd1196091948fb245ff63e406ccb2d4d1.json",
279
+ "sha256": "6ec1388f4dbe5f5e4ea9a9f90b8f753fc0af4c99fbd6f940926b0a8466de9f66",
280
+ "size_bytes": 5782
281
+ },
282
+ {
283
+ "path": "README.md",
284
+ "sha256": "71c38e6eeff76f0eae1d295138e5496d6994be5f1c1d297de966c66c8863fdd8",
285
+ "size_bytes": 8247
286
+ },
287
+ {
288
+ "path": "axquant_plan.json",
289
+ "sha256": "25a4a4f1c45a680e226e1e1338756657d19eeb574747b36361bbe956ca41dd3c",
290
+ "size_bytes": 964238
291
+ },
292
+ {
293
+ "path": "axquant_quantizer_execution.json",
294
+ "sha256": "b77f6d2df081884bca5b7a79aae1033fdcdf867cd49a963b9bf5fee54f16c0c8",
295
+ "size_bytes": 116609
296
+ },
297
+ {
298
+ "path": "axquant_runtime.json",
299
+ "sha256": "aa7752af89fec85495a7c2f3ac2b5850d6e56e904e38a67cf5ecfc5f9b0c8641",
300
+ "size_bytes": 1224
301
+ },
302
+ {
303
+ "path": "chat_template.jinja",
304
+ "sha256": "36e042fe45641f067b1f2381fcc8955d10d956a3ed333ecdf7f7eb0916f68956",
305
+ "size_bytes": 5199
306
+ },
307
+ {
308
+ "path": "chat_template.json",
309
+ "sha256": "efad756db13feb8e8c5fe1341713bf18b82e91916b978d36b7c043f2b1bedf5f",
310
+ "size_bytes": 5410
311
+ },
312
+ {
313
+ "path": "config.json",
314
+ "sha256": "08cb9fdc289e8d3b5fb5b0468a183657d501e6426fc95991678b966d6ac6f630",
315
+ "size_bytes": 139126
316
+ },
317
+ {
318
+ "path": "generation_config.json",
319
+ "sha256": "1f0843f01e1f468a71ddec33c3c532957ee918fc551932e4508d253a02273f99",
320
+ "size_bytes": 270
321
+ },
322
+ {
323
+ "path": "model-00001-of-00006.safetensors",
324
+ "sha256": "4620ece4c9475aa89fac602e6a1ee030e3bd1beabeba341632eb5a208fd67a6b",
325
+ "size_bytes": 5365720846
326
+ },
327
+ {
328
+ "path": "model-00002-of-00006.safetensors",
329
+ "sha256": "9694854af2c7e1bff9e297c0e1b6b39b7b9fb5cbc07c6c5bcd824a9799390177",
330
+ "size_bytes": 5367550438
331
+ },
332
+ {
333
+ "path": "model-00003-of-00006.safetensors",
334
+ "sha256": "422221160109777ea3098c6ef0099fba37d2884f64cfb39fa829047f0a966579",
335
+ "size_bytes": 5333658096
336
+ },
337
+ {
338
+ "path": "model-00004-of-00006.safetensors",
339
+ "sha256": "88e6e7eae7b4eb3d1735baf478504eb81d27761770a4ed074f64d3a17313b8e7",
340
+ "size_bytes": 5363454335
341
+ },
342
+ {
343
+ "path": "model-00005-of-00006.safetensors",
344
+ "sha256": "d3850fdf94da741c091f628b1587bbd52ed535f0d0bb6c28dcfbffd5da870b6b",
345
+ "size_bytes": 5333658172
346
+ },
347
+ {
348
+ "path": "model-00006-of-00006.safetensors",
349
+ "sha256": "ec710f6888c1893ecf6647a0ee4c9a5d17a6a5be05906c6950cdb9896223d68a",
350
+ "size_bytes": 2165017255
351
+ },
352
+ {
353
+ "path": "model.safetensors.index.json",
354
+ "sha256": "b33c78770d2c1dafb8ed8432a4020855ad8aafcd269b474500d7ada587883634",
355
+ "size_bytes": 192109
356
+ },
357
+ {
358
+ "path": "preprocessor_config.json",
359
+ "sha256": "27225450ac9c6529872ee1924fcb0962ff5634834f817040f444118116f4e516",
360
+ "size_bytes": 390
361
+ },
362
+ {
363
+ "path": "processor_config.json",
364
+ "sha256": "45fc17c8dd2474af6b493b52483c26c0584b0082d368c480f9fa611e73070040",
365
+ "size_bytes": 991
366
+ },
367
+ {
368
+ "path": "tokenizer.json",
369
+ "sha256": "be75606093db2094d7cd20f3c2f385c212750648bd6ea4fb2bf507a6a4c55506",
370
+ "size_bytes": 11422650
371
+ },
372
+ {
373
+ "path": "tokenizer_config.json",
374
+ "sha256": "7ce86d685d3fb775073b9b1c0f576dd89b7943194c771dd2573cc10e5cae4a48",
375
+ "size_bytes": 734
376
+ },
377
+ {
378
+ "path": "video_preprocessor_config.json",
379
+ "sha256": "7768af27c1fafa9cc9011c1dc20067e03f8915e03b63504550e11d5066986d13",
380
+ "size_bytes": 385
381
+ },
382
+ {
383
+ "path": "vocab.json",
384
+ "sha256": "ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910",
385
+ "size_bytes": 2776833
386
+ }
387
+ ],
388
+ "format": "mlx",
389
+ "logical_parameters": 33357390064,
390
+ "main_logical_parameters": 33357390064,
391
+ "main_weight_file_size_bytes": 28929059142,
392
+ "measured_main_bpw": 6.937967049939163,
393
+ "measured_total_bpw": 6.937967049939163,
394
+ "mtp_acceptance_retention": null,
395
+ "mtp_distribution": {},
396
+ "mtp_measured_speedup": null,
397
+ "mtp_policy": {
398
+ "candidate_bits": [
399
+ 8,
400
+ 16
401
+ ],
402
+ "min_bits": 8,
403
+ "mode": "protected",
404
+ "optimize_for_acceptance": true,
405
+ "preserve_external_sidecar": true,
406
+ "protect_norms": true,
407
+ "protect_output_head": true
408
+ },
409
+ "mtp_present": false,
410
+ "mtp_weight_file_size_bytes": 0,
411
+ "plan_sha256": "e1d645a769710bfaced7dc08dcc7f35ab6f37dae91eb941a6e510b97ed256a5e",
412
+ "profile": "agent-coding",
413
+ "protected_weight_file_size_bytes": 0,
414
+ "quantizer": "axquant",
415
+ "runtime": {
416
+ "ax_engine": {
417
+ "decode_kernel": null,
418
+ "fused_mtp": null,
419
+ "kernel_evidence": "unmeasured",
420
+ "model_manifest": "model-manifest.json",
421
+ "preferred_group_size": 64
422
+ },
423
+ "compatible_runtimes": [],
424
+ "created_at": "2026-08-15T23:51:11.870594Z",
425
+ "kv_cache": null,
426
+ "memory_policy": {
427
+ "kv_cache_precision": "runtime-default",
428
+ "mtp_buffers": "not-required",
429
+ "prefix_cache": "runtime-managed",
430
+ "unified_memory_safety_margin": "benchmark-required"
431
+ },
432
+ "mtp": {
433
+ "acceptance_retention": null,
434
+ "detected": false,
435
+ "draft_tokens": null,
436
+ "enabled_by_default": false,
437
+ "head_precision": null,
438
+ "measured_speedup": null,
439
+ "optimized": false,
440
+ "recommended_temperature_max": null,
441
+ "sidecar_file": null,
442
+ "verification_mode": null
443
+ },
444
+ "optimization_scope": "text-path",
445
+ "primary_runtime": {
446
+ "compatibility_level": "A",
447
+ "manifest": "config.json",
448
+ "mtp_support": "none",
449
+ "name": "mlx-vlm",
450
+ "notes": [
451
+ "MLX-VLM loads the protected modality tower and AXQ language decoder."
452
+ ],
453
+ "standard_inference": true,
454
+ "standard_mlx_weights": true,
455
+ "support_level": "standard-inference"
456
+ },
457
+ "schema_version": "axquant.runtime.v1"
458
+ },
459
+ "schema_version": "axquant.artifact.v2",
460
+ "software_versions": {
461
+ "ax_engine": null,
462
+ "axquant": "1.8.1",
463
+ "mlx": "0.32.0",
464
+ "mlx_lm": "0.31.3",
465
+ "pydantic": "2.13.4",
466
+ "python": "3.12.13",
467
+ "safetensors": "0.8.0"
468
+ },
469
+ "source_model": {
470
+ "architecture": "Qwen3VLForConditionalGeneration",
471
+ "format": "mlx",
472
+ "local_path": null,
473
+ "model_id": "Qwen/Qwen3-VL-32B-Thinking",
474
+ "revision": "7edd10ffd1196091948fb245ff63e406ccb2d4d1"
475
+ },
476
+ "target_class": "8bit",
477
+ "weight_distribution": {
478
+ "6bit": {
479
+ "fraction": 0.9354935053410478,
480
+ "parameters": 31205621760
481
+ },
482
+ "8bit": {
483
+ "fraction": 0.023320539122140115,
484
+ "parameters": 777912320
485
+ },
486
+ "bf16": {
487
+ "fraction": 0.04118595553681205,
488
+ "parameters": 1373855984
489
+ }
490
+ },
491
+ "weight_file_size_bytes": 28929059142
492
+ }
axquant_plan.json ADDED
The diff for this file is too large to render. See raw diff
 
axquant_quantizer_execution.json ADDED
The diff for this file is too large to render. See raw diff
 
axquant_runtime.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "ax_engine": {
3
+ "decode_kernel": null,
4
+ "fused_mtp": null,
5
+ "kernel_evidence": "unmeasured",
6
+ "model_manifest": "model-manifest.json",
7
+ "preferred_group_size": 64
8
+ },
9
+ "compatible_runtimes": [],
10
+ "created_at": "2026-08-15T23:51:11.870594Z",
11
+ "kv_cache": null,
12
+ "memory_policy": {
13
+ "kv_cache_precision": "runtime-default",
14
+ "mtp_buffers": "not-required",
15
+ "prefix_cache": "runtime-managed",
16
+ "unified_memory_safety_margin": "benchmark-required"
17
+ },
18
+ "mtp": {
19
+ "acceptance_retention": null,
20
+ "detected": false,
21
+ "draft_tokens": null,
22
+ "enabled_by_default": false,
23
+ "head_precision": null,
24
+ "measured_speedup": null,
25
+ "optimized": false,
26
+ "recommended_temperature_max": null,
27
+ "sidecar_file": null,
28
+ "verification_mode": null
29
+ },
30
+ "optimization_scope": "text-path",
31
+ "primary_runtime": {
32
+ "compatibility_level": "A",
33
+ "manifest": "config.json",
34
+ "mtp_support": "none",
35
+ "name": "mlx-vlm",
36
+ "notes": [
37
+ "MLX-VLM loads the protected modality tower and AXQ language decoder."
38
+ ],
39
+ "standard_inference": true,
40
+ "standard_mlx_weights": true,
41
+ "support_level": "standard-inference"
42
+ },
43
+ "schema_version": "axquant.runtime.v1"
44
+ }
chat_template.jinja ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- set image_count = namespace(value=0) %}
2
+ {%- set video_count = namespace(value=0) %}
3
+ {%- macro render_content(content, do_vision_count) %}
4
+ {%- if content is string %}
5
+ {{- content }}
6
+ {%- else %}
7
+ {%- for item in content %}
8
+ {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}
9
+ {%- if do_vision_count %}
10
+ {%- set image_count.value = image_count.value + 1 %}
11
+ {%- endif %}
12
+ {%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}
13
+ <|vision_start|><|image_pad|><|vision_end|>
14
+ {%- elif 'video' in item or item.type == 'video' %}
15
+ {%- if do_vision_count %}
16
+ {%- set video_count.value = video_count.value + 1 %}
17
+ {%- endif %}
18
+ {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}
19
+ <|vision_start|><|video_pad|><|vision_end|>
20
+ {%- elif 'text' in item %}
21
+ {{- item.text }}
22
+ {%- endif %}
23
+ {%- endfor %}
24
+ {%- endif %}
25
+ {%- endmacro %}
26
+ {%- if tools %}
27
+ {{- '<|im_start|>system\n' }}
28
+ {%- if messages[0].role == 'system' %}
29
+ {{- render_content(messages[0].content, false) + '\n\n' }}
30
+ {%- endif %}
31
+ {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
32
+ {%- for tool in tools %}
33
+ {{- "\n" }}
34
+ {{- tool | tojson }}
35
+ {%- endfor %}
36
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
37
+ {%- else %}
38
+ {%- if messages[0].role == 'system' %}
39
+ {{- '<|im_start|>system\n' + render_content(messages[0].content, false) + '<|im_end|>\n' }}
40
+ {%- endif %}
41
+ {%- endif %}
42
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
43
+ {%- for message in messages[::-1] %}
44
+ {%- set index = (messages|length - 1) - loop.index0 %}
45
+ {%- if ns.multi_step_tool and message.role == "user" %}
46
+ {%- set content = render_content(message.content, false) %}
47
+ {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}
48
+ {%- set ns.multi_step_tool = false %}
49
+ {%- set ns.last_query_index = index %}
50
+ {%- endif %}
51
+ {%- endif %}
52
+ {%- endfor %}
53
+ {%- for message in messages %}
54
+ {%- set content = render_content(message.content, True) %}
55
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
56
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
57
+ {%- elif message.role == "assistant" %}
58
+ {%- set reasoning_content = '' %}
59
+ {%- if message.reasoning_content is string %}
60
+ {%- set reasoning_content = message.reasoning_content %}
61
+ {%- else %}
62
+ {%- if '</think>' in content %}
63
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
64
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
65
+ {%- endif %}
66
+ {%- endif %}
67
+ {%- if loop.index0 > ns.last_query_index %}
68
+ {%- if loop.last or (not loop.last and reasoning_content) %}
69
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
70
+ {%- else %}
71
+ {{- '<|im_start|>' + message.role + '\n' + content }}
72
+ {%- endif %}
73
+ {%- else %}
74
+ {{- '<|im_start|>' + message.role + '\n' + content }}
75
+ {%- endif %}
76
+ {%- if message.tool_calls %}
77
+ {%- for tool_call in message.tool_calls %}
78
+ {%- if (loop.first and content) or (not loop.first) %}
79
+ {{- '\n' }}
80
+ {%- endif %}
81
+ {%- if tool_call.function %}
82
+ {%- set tool_call = tool_call.function %}
83
+ {%- endif %}
84
+ {{- '<tool_call>\n{"name": "' }}
85
+ {{- tool_call.name }}
86
+ {{- '", "arguments": ' }}
87
+ {%- if tool_call.arguments is string %}
88
+ {{- tool_call.arguments }}
89
+ {%- else %}
90
+ {{- tool_call.arguments | tojson }}
91
+ {%- endif %}
92
+ {{- '}\n</tool_call>' }}
93
+ {%- endfor %}
94
+ {%- endif %}
95
+ {{- '<|im_end|>\n' }}
96
+ {%- elif message.role == "tool" %}
97
+ {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
98
+ {{- '<|im_start|>user' }}
99
+ {%- endif %}
100
+ {{- '\n<tool_response>\n' }}
101
+ {{- content }}
102
+ {{- '\n</tool_response>' }}
103
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
104
+ {{- '<|im_end|>\n' }}
105
+ {%- endif %}
106
+ {%- endif %}
107
+ {%- endfor %}
108
+ {%- if add_generation_prompt %}
109
+ {{- '<|im_start|>assistant\n<think>\n' }}
110
+ {%- endif %}
chat_template.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ {
2
+ "chat_template": "{%- set image_count = namespace(value=0) %}\n{%- set video_count = namespace(value=0) %}\n{%- macro render_content(content, do_vision_count) %}\n {%- if content is string %}\n {{- content }}\n {%- else %}\n {%- for item in content %}\n {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}\n {%- if do_vision_count %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- endif %}\n {%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}\n <|vision_start|><|image_pad|><|vision_end|>\n {%- elif 'video' in item or item.type == 'video' %}\n {%- if do_vision_count %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- endif %}\n {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}\n <|vision_start|><|video_pad|><|vision_end|>\n {%- elif 'text' in item %}\n {{- item.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n{%- endmacro %}\n{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {{- render_content(messages[0].content, false) + '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' + render_content(messages[0].content, false) + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for message in messages[::-1] %}\n {%- set index = (messages|length - 1) - loop.index0 %}\n {%- if ns.multi_step_tool and message.role == \"user\" %}\n {%- set content = render_content(message.content, false) %}\n {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}\n {%- set ns.multi_step_tool = false %}\n {%- set ns.last_query_index = index %}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- for message in messages %}\n {%- set content = render_content(message.content, True) %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {%- set reasoning_content = '' %}\n {%- if message.reasoning_content is string %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '</think>' in content %}\n {%- set reasoning_content = content.split('</think>')[0].rstrip('\\n').split('<think>')[-1].lstrip('\\n') %}\n {%- set content = content.split('</think>')[-1].lstrip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- if loop.index0 > ns.last_query_index %}\n {%- if loop.last or (not loop.last and reasoning_content) %}\n {{- '<|im_start|>' + message.role + '\\n<think>\\n' + reasoning_content.strip('\\n') + '\\n</think>\\n\\n' + content.lstrip('\\n') }}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n<think>\\n' }}\n{%- endif %}\n"
3
+ }
config.json ADDED
The diff for this file is too large to render. See raw diff
 
generation_config.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token_id": 151643,
3
+ "pad_token_id": 151643,
4
+ "do_sample": true,
5
+ "eos_token_id": [
6
+ 151645,
7
+ 151643
8
+ ],
9
+ "top_k": 20,
10
+ "top_p": 0.95,
11
+ "repetition_penalty": 1.0,
12
+ "temperature": 0.8,
13
+ "transformers_version": "4.56.0"
14
+ }
model-00001-of-00006.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4620ece4c9475aa89fac602e6a1ee030e3bd1beabeba341632eb5a208fd67a6b
3
+ size 5365720846
model-00002-of-00006.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9694854af2c7e1bff9e297c0e1b6b39b7b9fb5cbc07c6c5bcd824a9799390177
3
+ size 5367550438
model-00003-of-00006.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:422221160109777ea3098c6ef0099fba37d2884f64cfb39fa829047f0a966579
3
+ size 5333658096
model-00004-of-00006.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:88e6e7eae7b4eb3d1735baf478504eb81d27761770a4ed074f64d3a17313b8e7
3
+ size 5363454335
model-00005-of-00006.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d3850fdf94da741c091f628b1587bbd52ed535f0d0bb6c28dcfbffd5da870b6b
3
+ size 5333658172
model-00006-of-00006.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ec710f6888c1893ecf6647a0ee4c9a5d17a6a5be05906c6950cdb9896223d68a
3
+ size 2165017255
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,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "image_processor": {
3
+ "do_convert_rgb": true,
4
+ "do_normalize": true,
5
+ "do_rescale": true,
6
+ "image_mean": [
7
+ 0.5,
8
+ 0.5,
9
+ 0.5
10
+ ],
11
+ "image_processor_type": "Qwen3VLImageProcessor",
12
+ "image_std": [
13
+ 0.5,
14
+ 0.5,
15
+ 0.5
16
+ ],
17
+ "max_pixels": 16777216,
18
+ "merge_size": 2,
19
+ "min_pixels": 65536,
20
+ "patch_size": 16,
21
+ "rescale_factor": 0.00392156862745098,
22
+ "temporal_patch_size": 2
23
+ },
24
+ "processor_class": "Qwen3VLProcessor",
25
+ "video_processor": {
26
+ "do_convert_rgb": true,
27
+ "do_normalize": true,
28
+ "do_rescale": true,
29
+ "fps": 2.0,
30
+ "image_mean": [
31
+ 0.5,
32
+ 0.5,
33
+ 0.5
34
+ ],
35
+ "image_std": [
36
+ 0.5,
37
+ 0.5,
38
+ 0.5
39
+ ],
40
+ "max_frames": 768,
41
+ "max_pixels": 25165824,
42
+ "merge_size": 2,
43
+ "min_frames": 4,
44
+ "min_pixels": 4096,
45
+ "patch_size": 16,
46
+ "rescale_factor": 0.00392156862745098,
47
+ "temporal_patch_size": 2,
48
+ "video_processor_type": "Qwen3VLVideoProcessor"
49
+ }
50
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:be75606093db2094d7cd20f3c2f385c212750648bd6ea4fb2bf507a6a4c55506
3
+ size 11422650
tokenizer_config.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "backend": "tokenizers",
4
+ "bos_token": null,
5
+ "clean_up_tokenization_spaces": false,
6
+ "eos_token": "<|im_end|>",
7
+ "errors": "replace",
8
+ "extra_special_tokens": [
9
+ "<|im_start|>",
10
+ "<|im_end|>",
11
+ "<|object_ref_start|>",
12
+ "<|object_ref_end|>",
13
+ "<|box_start|>",
14
+ "<|box_end|>",
15
+ "<|quad_start|>",
16
+ "<|quad_end|>",
17
+ "<|vision_start|>",
18
+ "<|vision_end|>",
19
+ "<|vision_pad|>",
20
+ "<|image_pad|>",
21
+ "<|video_pad|>"
22
+ ],
23
+ "is_local": true,
24
+ "local_files_only": false,
25
+ "model_max_length": 262144,
26
+ "pad_token": "<|endoftext|>",
27
+ "processor_class": "Qwen3VLProcessor",
28
+ "split_special_tokens": false,
29
+ "tokenizer_class": "Qwen2Tokenizer",
30
+ "unk_token": null
31
+ }
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