anemll commited on
Commit
045c52e
·
verified ·
1 Parent(s): 7c089d0

Upload folder using huggingface_hub

Browse files
Files changed (42) hide show
  1. .DS_Store +0 -0
  2. .gitattributes +1 -0
  3. README.md +87 -0
  4. chat.py +0 -0
  5. chat_full.py +0 -0
  6. chat_template.jinja +54 -0
  7. config.json +4 -0
  8. merges.txt +0 -0
  9. meta.yaml +56 -0
  10. qwen25_FFN_PF_lut6_chunk_01of04.mlmodelc/analytics/coremldata.bin +3 -0
  11. qwen25_FFN_PF_lut6_chunk_01of04.mlmodelc/coremldata.bin +3 -0
  12. qwen25_FFN_PF_lut6_chunk_01of04.mlmodelc/metadata.json +304 -0
  13. qwen25_FFN_PF_lut6_chunk_01of04.mlmodelc/model.mil +477 -0
  14. qwen25_FFN_PF_lut6_chunk_01of04.mlmodelc/weights/weight.bin +3 -0
  15. qwen25_FFN_PF_lut6_chunk_02of04.mlmodelc/analytics/coremldata.bin +3 -0
  16. qwen25_FFN_PF_lut6_chunk_02of04.mlmodelc/coremldata.bin +3 -0
  17. qwen25_FFN_PF_lut6_chunk_02of04.mlmodelc/metadata.json +304 -0
  18. qwen25_FFN_PF_lut6_chunk_02of04.mlmodelc/model.mil +0 -0
  19. qwen25_FFN_PF_lut6_chunk_02of04.mlmodelc/weights/weight.bin +3 -0
  20. qwen25_FFN_PF_lut6_chunk_03of04.mlmodelc/analytics/coremldata.bin +3 -0
  21. qwen25_FFN_PF_lut6_chunk_03of04.mlmodelc/coremldata.bin +3 -0
  22. qwen25_FFN_PF_lut6_chunk_03of04.mlmodelc/metadata.json +310 -0
  23. qwen25_FFN_PF_lut6_chunk_03of04.mlmodelc/model.mil +0 -0
  24. qwen25_FFN_PF_lut6_chunk_03of04.mlmodelc/weights/weight.bin +3 -0
  25. qwen25_FFN_PF_lut6_chunk_04of04.mlmodelc/analytics/coremldata.bin +3 -0
  26. qwen25_FFN_PF_lut6_chunk_04of04.mlmodelc/coremldata.bin +3 -0
  27. qwen25_FFN_PF_lut6_chunk_04of04.mlmodelc/metadata.json +310 -0
  28. qwen25_FFN_PF_lut6_chunk_04of04.mlmodelc/model.mil +0 -0
  29. qwen25_FFN_PF_lut6_chunk_04of04.mlmodelc/weights/weight.bin +3 -0
  30. qwen25_embeddings.mlmodelc/analytics/coremldata.bin +3 -0
  31. qwen25_embeddings.mlmodelc/coremldata.bin +3 -0
  32. qwen25_embeddings.mlmodelc/metadata.json +71 -0
  33. qwen25_embeddings.mlmodelc/model.mil +16 -0
  34. qwen25_embeddings.mlmodelc/weights/weight.bin +3 -0
  35. qwen25_lm_head_lut6.mlmodelc/analytics/coremldata.bin +3 -0
  36. qwen25_lm_head_lut6.mlmodelc/coremldata.bin +3 -0
  37. qwen25_lm_head_lut6.mlmodelc/metadata.json +215 -0
  38. qwen25_lm_head_lut6.mlmodelc/model.mil +186 -0
  39. qwen25_lm_head_lut6.mlmodelc/weights/weight.bin +3 -0
  40. tokenizer.json +3 -0
  41. tokenizer_config.json +224 -0
  42. vocab.json +0 -0
.DS_Store ADDED
Binary file (10.2 kB). View file
 
.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,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ tags:
4
+ - coreml
5
+ - ANE
6
+ - Apple Neural Engine
7
+ - Qwen2.5
8
+ - VibeThinker
9
+ - math
10
+ - reasoning
11
+ ---
12
+ # anemll-WeiboAI-VibeThinker-1.5B-ctx2048
13
+
14
+ CoreML conversion of [WeiboAI/VibeThinker-1.5B](https://huggingface.co/WeiboAI/VibeThinker-1.5B) for Apple Neural Engine inference, converted using [ANEMLL](https://github.com/anemll/anemll) v0.3.5.
15
+
16
+ ## Original Model
17
+
18
+ **VibeThinker-1.5B** is a 1.5B parameter dense language model by WeiboAI, fine-tuned from Qwen2.5-Math-1.5B for competitive math and algorithm coding. Despite its small size, it achieves remarkable results:
19
+
20
+ | Benchmark | VibeThinker-1.5B | DeepSeek R1 (671B) |
21
+ |-----------|----------------:|-------------------:|
22
+ | AIME24 | 80.3 | 79.8 |
23
+ | AIME25 | 74.4 | 70.0 |
24
+ | HMMT25 | 50.4 | 41.7 |
25
+
26
+ Best results with English prompts on competitive-style math and coding problems.
27
+
28
+ ## Conversion Details
29
+
30
+ | Parameter | Value |
31
+ |-----------|-------|
32
+ | Architecture | Qwen 2.5 |
33
+ | Context Length | 2048 |
34
+ | Batch Size | 64 |
35
+ | Chunks | 4 (hybrid) |
36
+ | FFN Quantization | LUT6 (Apple Neural Engine), per-channel group size 4 |
37
+ | LM Head Quantization | LUT6 (Apple Neural Engine), per-channel group size 4 |
38
+ | Embeddings | Unquantized |
39
+ | Argmax in Model | No |
40
+
41
+ ### Hybrid FP32 First Chunk
42
+
43
+ This model uses a **hybrid precision** layout. Chunk 1 of 4 (`qwen25_FFN_PF_lut6_chunk_01of04.mlmodelc`) runs the first transformer layer's attention in **FP32** (unquantized), while chunks 2-4 use standard LUT6 quantization.
44
+
45
+ **Why:** VibeThinker has unusually high-magnitude Q/K projection biases in layer 0, causing FP16 attention logit overflow (`+inf`) before masking. This leads to softmax saturation and catastrophic output divergence. Running first-layer attention at full precision eliminates the overflow and recovers near-exact parity with the original Hugging Face model.
46
+
47
+ Chunk 1 is significantly smaller (~15 MB vs ~310-340 MB for the other chunks) since it only contains the first-layer attention residual path.
48
+
49
+ ### Recommended Sampling
50
+
51
+ ```yaml
52
+ temperature: 0.6
53
+ top_p: 0.95
54
+ top_k: 0
55
+ do_sample: true
56
+ ```
57
+
58
+ ## Quick Start
59
+
60
+ ```bash
61
+ pip install coremltools transformers
62
+
63
+ # Basic chat
64
+ python chat.py --meta ./meta.yaml
65
+
66
+ # Full conversation mode with history
67
+ python chat_full.py --meta ./meta.yaml
68
+ ```
69
+
70
+ > Note: First load takes time as macOS places the model on the Neural Engine. Subsequent loads are fast.
71
+
72
+ ### iOS/macOS App
73
+
74
+ Try the ANEMLL Chat app on TestFlight:
75
+ 1. Install [TestFlight](https://apps.apple.com/app/testflight/id899247664)
76
+ 2. Join beta: [TestFlight Link](https://testflight.apple.com/join/jrQq1D1C)
77
+ 3. Add this model via its HuggingFace URL
78
+
79
+ ## Links
80
+
81
+ - [ANEMLL GitHub](https://github.com/anemll/anemll)
82
+ - [ANEMLL Models on HuggingFace](https://huggingface.co/anemll)
83
+ - [Original Model: WeiboAI/VibeThinker-1.5B](https://huggingface.co/WeiboAI/VibeThinker-1.5B)
84
+
85
+ ## License
86
+
87
+ MIT (ANEMLL conversion). The original model is also MIT licensed.
chat.py ADDED
The diff for this file is too large to render. See raw diff
 
chat_full.py ADDED
The diff for this file is too large to render. See raw diff
 
chat_template.jinja ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0]['role'] == 'system' %}
4
+ {{- messages[0]['content'] }}
5
+ {%- else %}
6
+ {{- '' }}
7
+ {%- endif %}
8
+ {{- "\n\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>" }}
9
+ {%- for tool in tools %}
10
+ {{- "\n" }}
11
+ {{- tool | tojson }}
12
+ {%- endfor %}
13
+ {{- "\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" }}
14
+ {%- else %}
15
+ {%- if messages[0]['role'] == 'system' %}
16
+ {{- '<|im_start|>system\n' + messages[0]['content'] + '<|im_end|>\n' }}
17
+ {%- else %}
18
+ {{- '<|im_start|>system\nPlease reason step by step, and put your final answer within \\boxed{}.<|im_end|>\n' }}
19
+ {%- endif %}
20
+ {%- endif %}
21
+ {%- for message in messages %}
22
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) or (message.role == "assistant" and not message.tool_calls) %}
23
+ {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }}
24
+ {%- elif message.role == "assistant" %}
25
+ {{- '<|im_start|>' + message.role }}
26
+ {%- if message.content %}
27
+ {{- '\n' + message.content }}
28
+ {%- endif %}
29
+ {%- for tool_call in message.tool_calls %}
30
+ {%- if tool_call.function is defined %}
31
+ {%- set tool_call = tool_call.function %}
32
+ {%- endif %}
33
+ {{- '\n<tool_call>\n{"name": "' }}
34
+ {{- tool_call.name }}
35
+ {{- '", "arguments": ' }}
36
+ {{- tool_call.arguments | tojson }}
37
+ {{- '}\n</tool_call>' }}
38
+ {%- endfor %}
39
+ {{- '<|im_end|>\n' }}
40
+ {%- elif message.role == "tool" %}
41
+ {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != "tool") %}
42
+ {{- '<|im_start|>user' }}
43
+ {%- endif %}
44
+ {{- '\n<tool_response>\n' }}
45
+ {{- message.content }}
46
+ {{- '\n</tool_response>' }}
47
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
48
+ {{- '<|im_end|>\n' }}
49
+ {%- endif %}
50
+ {%- endif %}
51
+ {%- endfor %}
52
+ {%- if add_generation_prompt %}
53
+ {{- '<|im_start|>assistant\n' }}
54
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "tokenizer_class": "LlamaTokenizer",
3
+ "model_type": "llama"
4
+ }
merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
meta.yaml ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ model_info:
2
+ name: anemll-WeiboAI-VibeThinker-1.5B-ctx2048
3
+ version: 0.3.5
4
+ description: 'Demonstarates running WeiboAI-VibeThinker-1.5B on Apple Neural Engine
5
+
6
+ Context length: 2048
7
+
8
+ Batch size: 64
9
+
10
+ Chunks: 4
11
+
12
+ '
13
+ license: MIT
14
+ author: Anemll
15
+ framework: Core ML
16
+ language: Python
17
+ architecture: qwen2
18
+ parameters:
19
+ context_length: 2048
20
+ batch_size: 64
21
+ lut_embeddings: none
22
+ lut_ffn: 6
23
+ lut_ffn_per_channel: 4
24
+ lut_lmhead: 6
25
+ lut_lmhead_per_channel: 4
26
+ num_chunks: 4
27
+ model_prefix: qwen25
28
+ embeddings: qwen25_embeddings.mlmodelc
29
+ lm_head: qwen25_lm_head_lut6.mlmodelc
30
+ ffn: qwen25_FFN_PF_lut6_chunk_01of04.mlmodelc
31
+ split_lm_head: 16
32
+ vocab_size: 151936
33
+ lm_head_chunk_sizes:
34
+ - 9496
35
+ - 9496
36
+ - 9496
37
+ - 9496
38
+ - 9496
39
+ - 9496
40
+ - 9496
41
+ - 9496
42
+ - 9496
43
+ - 9496
44
+ - 9496
45
+ - 9496
46
+ - 9496
47
+ - 9496
48
+ - 9496
49
+ - 9496
50
+ prefill_dynamic_slice: true
51
+ argmax_in_model: false
52
+ recommended_sampling:
53
+ do_sample: true
54
+ temperature: 0.6
55
+ top_p: 0.95
56
+ top_k: 0
qwen25_FFN_PF_lut6_chunk_01of04.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d3c52c3d9dc9db6e235a0044fc97a3f960045bc6c01227f971e0a2941026a942
3
+ size 243
qwen25_FFN_PF_lut6_chunk_01of04.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1aa2254d0b7cb3cdc9bcf1ee539fed260d554dc0563f3f650138d581dd7c2f59
3
+ size 542
qwen25_FFN_PF_lut6_chunk_01of04.mlmodelc/metadata.json ADDED
@@ -0,0 +1,304 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "storagePrecision" : "Mixed (Float16, Float32)",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float16",
10
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 1, 1536]",
13
+ "name" : "output_hidden_states",
14
+ "type" : "MultiArray"
15
+ }
16
+ ],
17
+ "modelParameters" : [
18
+
19
+ ],
20
+ "specificationVersion" : 9,
21
+ "functions" : [
22
+ {
23
+ "inputSchema" : [
24
+ {
25
+ "hasShapeFlexibility" : "0",
26
+ "isOptional" : "0",
27
+ "dataType" : "Float16",
28
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
29
+ "shortDescription" : "",
30
+ "shape" : "[1, 1, 1536]",
31
+ "name" : "hidden_states",
32
+ "type" : "MultiArray"
33
+ },
34
+ {
35
+ "hasShapeFlexibility" : "0",
36
+ "isOptional" : "0",
37
+ "dataType" : "Int32",
38
+ "formattedType" : "MultiArray (Int32 1)",
39
+ "shortDescription" : "",
40
+ "shape" : "[1]",
41
+ "name" : "position_ids",
42
+ "type" : "MultiArray"
43
+ },
44
+ {
45
+ "hasShapeFlexibility" : "0",
46
+ "isOptional" : "0",
47
+ "dataType" : "Float16",
48
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1 × 2048)",
49
+ "shortDescription" : "",
50
+ "shape" : "[1, 1, 1, 2048]",
51
+ "name" : "causal_mask",
52
+ "type" : "MultiArray"
53
+ },
54
+ {
55
+ "hasShapeFlexibility" : "0",
56
+ "isOptional" : "0",
57
+ "dataType" : "Int32",
58
+ "formattedType" : "MultiArray (Int32 1)",
59
+ "shortDescription" : "",
60
+ "shape" : "[1]",
61
+ "name" : "current_pos",
62
+ "type" : "MultiArray"
63
+ }
64
+ ],
65
+ "computePrecision" : "Mixed (Float16, Float32, Int32)",
66
+ "storagePrecision" : "Mixed (Float16, Float32)",
67
+ "stateSchema" : [
68
+ {
69
+ "dataType" : "Float16",
70
+ "isOptional" : "0",
71
+ "formattedType" : "State (Float16 56 × 2 × 2048 × 128)",
72
+ "shortDescription" : "",
73
+ "shape" : "[56, 2, 2048, 128]",
74
+ "name" : "model_model_kv_cache_0",
75
+ "type" : "State"
76
+ }
77
+ ],
78
+ "outputSchema" : [
79
+ {
80
+ "hasShapeFlexibility" : "0",
81
+ "isOptional" : "0",
82
+ "dataType" : "Float16",
83
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
84
+ "shortDescription" : "",
85
+ "shape" : "[1, 1, 1536]",
86
+ "name" : "output_hidden_states",
87
+ "type" : "MultiArray"
88
+ }
89
+ ],
90
+ "name" : "infer",
91
+ "mlProgramOperationTypeHistogram" : {
92
+ "Ios18.expandDims" : 3,
93
+ "Ios18.softmax" : 1,
94
+ "Ios18.mul" : 9,
95
+ "Ios18.matmul" : 2,
96
+ "Identity" : 1,
97
+ "Ios18.greaterEqual" : 1,
98
+ "Select" : 1,
99
+ "Ios18.readState" : 3,
100
+ "Tile" : 2,
101
+ "Ios18.gather" : 2,
102
+ "Ios18.add" : 6,
103
+ "Ios18.layerNorm" : 1,
104
+ "Ios18.sliceUpdate" : 2,
105
+ "Ios18.writeState" : 2,
106
+ "Ios18.reshape" : 8,
107
+ "Ios18.conv" : 4,
108
+ "Ios18.concat" : 7,
109
+ "Ios18.transpose" : 4,
110
+ "Ios18.cast" : 18,
111
+ "Ios18.sliceByIndex" : 7,
112
+ "Ios18.squeeze" : 2
113
+ }
114
+ },
115
+ {
116
+ "inputSchema" : [
117
+ {
118
+ "hasShapeFlexibility" : "0",
119
+ "isOptional" : "0",
120
+ "dataType" : "Float16",
121
+ "formattedType" : "MultiArray (Float16 1 × 64 × 1536)",
122
+ "shortDescription" : "",
123
+ "shape" : "[1, 64, 1536]",
124
+ "name" : "hidden_states",
125
+ "type" : "MultiArray"
126
+ },
127
+ {
128
+ "hasShapeFlexibility" : "0",
129
+ "isOptional" : "0",
130
+ "dataType" : "Int32",
131
+ "formattedType" : "MultiArray (Int32 64)",
132
+ "shortDescription" : "",
133
+ "shape" : "[64]",
134
+ "name" : "position_ids",
135
+ "type" : "MultiArray"
136
+ },
137
+ {
138
+ "hasShapeFlexibility" : "0",
139
+ "isOptional" : "0",
140
+ "dataType" : "Float16",
141
+ "formattedType" : "MultiArray (Float16 1 × 1 × 64 × 2048)",
142
+ "shortDescription" : "",
143
+ "shape" : "[1, 1, 64, 2048]",
144
+ "name" : "causal_mask",
145
+ "type" : "MultiArray"
146
+ },
147
+ {
148
+ "hasShapeFlexibility" : "0",
149
+ "isOptional" : "0",
150
+ "dataType" : "Int32",
151
+ "formattedType" : "MultiArray (Int32 1)",
152
+ "shortDescription" : "",
153
+ "shape" : "[1]",
154
+ "name" : "current_pos",
155
+ "type" : "MultiArray"
156
+ }
157
+ ],
158
+ "computePrecision" : "Mixed (Float16, Float32, Int32)",
159
+ "storagePrecision" : "Mixed (Float16, Float32)",
160
+ "stateSchema" : [
161
+ {
162
+ "dataType" : "Float16",
163
+ "isOptional" : "0",
164
+ "formattedType" : "State (Float16 56 × 2 × 2048 × 128)",
165
+ "shortDescription" : "",
166
+ "shape" : "[56, 2, 2048, 128]",
167
+ "name" : "model_model_kv_cache_0",
168
+ "type" : "State"
169
+ }
170
+ ],
171
+ "outputSchema" : [
172
+ {
173
+ "hasShapeFlexibility" : "0",
174
+ "isOptional" : "0",
175
+ "dataType" : "Float16",
176
+ "formattedType" : "MultiArray (Float16 1 × 64 × 1536)",
177
+ "shortDescription" : "",
178
+ "shape" : "[1, 64, 1536]",
179
+ "name" : "output_hidden_states",
180
+ "type" : "MultiArray"
181
+ }
182
+ ],
183
+ "name" : "prefill",
184
+ "mlProgramOperationTypeHistogram" : {
185
+ "Ios18.expandDims" : 3,
186
+ "Ios18.softmax" : 1,
187
+ "Ios18.mul" : 9,
188
+ "Ios18.matmul" : 2,
189
+ "Ios18.greaterEqual" : 1,
190
+ "Select" : 1,
191
+ "Ios18.readState" : 3,
192
+ "Tile" : 2,
193
+ "Ios18.gather" : 2,
194
+ "Ios18.add" : 6,
195
+ "Ios18.layerNorm" : 1,
196
+ "Ios18.sliceUpdate" : 2,
197
+ "Ios18.writeState" : 2,
198
+ "Ios18.reshape" : 10,
199
+ "Ios18.conv" : 4,
200
+ "Ios18.concat" : 7,
201
+ "Ios18.transpose" : 9,
202
+ "Ios18.cast" : 18,
203
+ "Ios18.sliceByIndex" : 7,
204
+ "Ios18.squeeze" : 2
205
+ }
206
+ }
207
+ ],
208
+ "mlProgramOperationTypeHistogram" : {
209
+ "Ios18.expandDims" : 3,
210
+ "Ios18.softmax" : 1,
211
+ "Ios18.mul" : 9,
212
+ "Ios18.matmul" : 2,
213
+ "Identity" : 1,
214
+ "Ios18.greaterEqual" : 1,
215
+ "Select" : 1,
216
+ "Ios18.readState" : 3,
217
+ "Tile" : 2,
218
+ "Ios18.gather" : 2,
219
+ "Ios18.add" : 6,
220
+ "Ios18.layerNorm" : 1,
221
+ "Ios18.sliceUpdate" : 2,
222
+ "Ios18.writeState" : 2,
223
+ "Ios18.reshape" : 8,
224
+ "Ios18.conv" : 4,
225
+ "Ios18.concat" : 7,
226
+ "Ios18.transpose" : 4,
227
+ "Ios18.cast" : 18,
228
+ "Ios18.sliceByIndex" : 7,
229
+ "Ios18.squeeze" : 2
230
+ },
231
+ "isUpdatable" : "0",
232
+ "stateSchema" : [
233
+ {
234
+ "dataType" : "Float16",
235
+ "isOptional" : "0",
236
+ "formattedType" : "State (Float16 56 × 2 × 2048 × 128)",
237
+ "shortDescription" : "",
238
+ "shape" : "[56, 2, 2048, 128]",
239
+ "name" : "model_model_kv_cache_0",
240
+ "type" : "State"
241
+ }
242
+ ],
243
+ "availability" : {
244
+ "macOS" : "15.0",
245
+ "tvOS" : "18.0",
246
+ "visionOS" : "2.0",
247
+ "watchOS" : "11.0",
248
+ "iOS" : "18.0",
249
+ "macCatalyst" : "18.0"
250
+ },
251
+ "computePrecision" : "Mixed (Float16, Float32, Int32)",
252
+ "modelType" : {
253
+ "name" : "MLModelType_mlProgram"
254
+ },
255
+ "inputSchema" : [
256
+ {
257
+ "hasShapeFlexibility" : "0",
258
+ "isOptional" : "0",
259
+ "dataType" : "Float16",
260
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
261
+ "shortDescription" : "",
262
+ "shape" : "[1, 1, 1536]",
263
+ "name" : "hidden_states",
264
+ "type" : "MultiArray"
265
+ },
266
+ {
267
+ "hasShapeFlexibility" : "0",
268
+ "isOptional" : "0",
269
+ "dataType" : "Int32",
270
+ "formattedType" : "MultiArray (Int32 1)",
271
+ "shortDescription" : "",
272
+ "shape" : "[1]",
273
+ "name" : "position_ids",
274
+ "type" : "MultiArray"
275
+ },
276
+ {
277
+ "hasShapeFlexibility" : "0",
278
+ "isOptional" : "0",
279
+ "dataType" : "Float16",
280
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1 × 2048)",
281
+ "shortDescription" : "",
282
+ "shape" : "[1, 1, 1, 2048]",
283
+ "name" : "causal_mask",
284
+ "type" : "MultiArray"
285
+ },
286
+ {
287
+ "hasShapeFlexibility" : "0",
288
+ "isOptional" : "0",
289
+ "dataType" : "Int32",
290
+ "formattedType" : "MultiArray (Int32 1)",
291
+ "shortDescription" : "",
292
+ "shape" : "[1]",
293
+ "name" : "current_pos",
294
+ "type" : "MultiArray"
295
+ }
296
+ ],
297
+ "defaultFunctionName" : "infer",
298
+ "generatedClassName" : "qwen25_FFN_PF_lut6_chunk_01of04",
299
+ "userDefinedMetadata" : {
300
+
301
+ },
302
+ "method" : "predict"
303
+ }
304
+ ]
qwen25_FFN_PF_lut6_chunk_01of04.mlmodelc/model.mil ADDED
@@ -0,0 +1,477 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ program(1.3)
2
+ [buildInfo = dict<string, string>({{"coremlc-component-MIL", "3510.2.1"}, {"coremlc-version", "3500.32.1"}})]
3
+ {
4
+ func infer<ios18>(tensor<fp16, [1, 1, 1, 2048]> causal_mask, tensor<int32, [1]> current_pos, tensor<fp16, [1, 1, 1536]> hidden_states, state<tensor<fp16, [56, 2, 2048, 128]>> model_model_kv_cache_0, tensor<int32, [1]> position_ids) {
5
+ string cast_0_dtype_0 = const()[name = string("cast_0_dtype_0"), val = string("fp32")];
6
+ string cast_1_dtype_0 = const()[name = string("cast_1_dtype_0"), val = string("fp32")];
7
+ tensor<fp16, [1536]> model_model_layers_0_self_attn_q_proj_bias = const()[name = string("model_model_layers_0_self_attn_q_proj_bias"), val = tensor<fp16, [1536]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(64)))];
8
+ tensor<fp16, [1536, 1536, 1, 1]> model_model_layers_0_self_attn_q_proj_weight = const()[name = string("model_model_layers_0_self_attn_q_proj_weight"), val = tensor<fp16, [1536, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(3200)))];
9
+ tensor<fp16, [256]> model_model_layers_0_self_attn_k_proj_bias = const()[name = string("model_model_layers_0_self_attn_k_proj_bias"), val = tensor<fp16, [256]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(4721856)))];
10
+ tensor<fp16, [256, 1536, 1, 1]> model_model_layers_0_self_attn_k_proj_weight = const()[name = string("model_model_layers_0_self_attn_k_proj_weight"), val = tensor<fp16, [256, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(4722432)))];
11
+ tensor<fp16, [256]> model_model_layers_0_self_attn_v_proj_bias = const()[name = string("model_model_layers_0_self_attn_v_proj_bias"), val = tensor<fp16, [256]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(5508928)))];
12
+ tensor<fp16, [256, 1536, 1, 1]> model_model_layers_0_self_attn_v_proj_weight = const()[name = string("model_model_layers_0_self_attn_v_proj_weight"), val = tensor<fp16, [256, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(5509504)))];
13
+ fp32 var_45 = const()[name = string("op_45"), val = fp32(0x1.0c6f7ap-20)];
14
+ int32 var_48 = const()[name = string("op_48"), val = int32(-1)];
15
+ fp32 const_0_promoted = const()[name = string("const_0_promoted"), val = fp32(-0x1p+0)];
16
+ tensor<fp32, [1, 1, 1536]> cast_0 = cast(dtype = cast_0_dtype_0, x = hidden_states)[name = string("cast_31")];
17
+ tensor<fp32, [1, 1, 1536]> var_50 = mul(x = cast_0, y = const_0_promoted)[name = string("op_50")];
18
+ bool input_1_interleave_0 = const()[name = string("input_1_interleave_0"), val = bool(false)];
19
+ tensor<fp32, [1, 1, 3072]> input_1 = concat(axis = var_48, interleave = input_1_interleave_0, values = (cast_0, var_50))[name = string("input_1")];
20
+ tensor<int32, [1]> normed_1_axes_0 = const()[name = string("normed_1_axes_0"), val = tensor<int32, [1]>([-1])];
21
+ tensor<fp32, [1, 1, 3072]> normed_1 = layer_norm(axes = normed_1_axes_0, epsilon = var_45, x = input_1)[name = string("normed_1")];
22
+ tensor<int32, [3]> normed_begin_0 = const()[name = string("normed_begin_0"), val = tensor<int32, [3]>([0, 0, 0])];
23
+ tensor<int32, [3]> normed_end_0 = const()[name = string("normed_end_0"), val = tensor<int32, [3]>([1, 1, 1536])];
24
+ tensor<bool, [3]> normed_end_mask_0 = const()[name = string("normed_end_mask_0"), val = tensor<bool, [3]>([true, true, false])];
25
+ tensor<fp32, [1, 1, 1536]> normed = slice_by_index(begin = normed_begin_0, end = normed_end_0, end_mask = normed_end_mask_0, x = normed_1)[name = string("normed")];
26
+ tensor<fp32, [1536]> const_3_promoted = const()[name = string("const_3_promoted"), val = tensor<fp32, [1536]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(6296000)))];
27
+ tensor<fp32, [1, 1, 1536]> hidden_states_1 = mul(x = normed, y = const_3_promoted)[name = string("hidden_states")];
28
+ tensor<fp32, [1, 4096, 128]> var_64 = const()[name = string("op_64"), val = tensor<fp32, [1, 4096, 128]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(6302208)))];
29
+ int32 var_72_batch_dims_0 = const()[name = string("op_72_batch_dims_0"), val = int32(0)];
30
+ bool var_72_validate_indices_0 = const()[name = string("op_72_validate_indices_0"), val = bool(false)];
31
+ int32 greater_equal_0_y_0 = const()[name = string("greater_equal_0_y_0"), val = int32(0)];
32
+ tensor<bool, [1]> greater_equal_0 = greater_equal(x = current_pos, y = greater_equal_0_y_0)[name = string("greater_equal_0")];
33
+ int32 slice_by_index_0 = const()[name = string("slice_by_index_0"), val = int32(4096)];
34
+ tensor<int32, [1]> add_0 = add(x = current_pos, y = slice_by_index_0)[name = string("add_0")];
35
+ tensor<int32, [1]> select_0 = select(a = current_pos, b = add_0, cond = greater_equal_0)[name = string("select_0")];
36
+ int32 var_72_axis_1 = const()[name = string("op_72_axis_1"), val = int32(1)];
37
+ tensor<fp32, [1, 1, 128]> var_72 = gather(axis = var_72_axis_1, batch_dims = var_72_batch_dims_0, indices = select_0, validate_indices = var_72_validate_indices_0, x = var_64)[name = string("op_72")];
38
+ tensor<int32, [4]> var_77 = const()[name = string("op_77"), val = tensor<int32, [4]>([1, 1, 1, -1])];
39
+ tensor<fp32, [1, 1, 1, 128]> sin_1 = reshape(shape = var_77, x = var_72)[name = string("sin_1")];
40
+ tensor<fp32, [1, 4096, 128]> var_79 = const()[name = string("op_79"), val = tensor<fp32, [1, 4096, 128]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(8399424)))];
41
+ int32 var_87_batch_dims_0 = const()[name = string("op_87_batch_dims_0"), val = int32(0)];
42
+ bool var_87_validate_indices_0 = const()[name = string("op_87_validate_indices_0"), val = bool(false)];
43
+ int32 var_87_axis_1 = const()[name = string("op_87_axis_1"), val = int32(1)];
44
+ tensor<fp32, [1, 1, 128]> var_87 = gather(axis = var_87_axis_1, batch_dims = var_87_batch_dims_0, indices = select_0, validate_indices = var_87_validate_indices_0, x = var_79)[name = string("op_87")];
45
+ tensor<int32, [4]> var_92 = const()[name = string("op_92"), val = tensor<int32, [4]>([1, 1, 1, -1])];
46
+ tensor<fp32, [1, 1, 1, 128]> cos_1 = reshape(shape = var_92, x = var_87)[name = string("cos_1")];
47
+ string cos_dtype_0 = const()[name = string("cos_dtype_0"), val = string("fp16")];
48
+ string sin_dtype_0 = const()[name = string("sin_dtype_0"), val = string("fp16")];
49
+ tensor<int32, [3]> var_107 = const()[name = string("op_107"), val = tensor<int32, [3]>([0, 2, 1])];
50
+ tensor<int32, [1]> var_110_axes_0 = const()[name = string("op_110_axes_0"), val = tensor<int32, [1]>([2])];
51
+ tensor<fp32, [1, 1536, 1]> var_108 = transpose(perm = var_107, x = hidden_states_1)[name = string("transpose_3")];
52
+ tensor<fp32, [1, 1536, 1, 1]> var_110 = expand_dims(axes = var_110_axes_0, x = var_108)[name = string("op_110")];
53
+ string input_3_dtype_0 = const()[name = string("input_3_dtype_0"), val = string("fp16")];
54
+ string var_126_pad_type_0 = const()[name = string("op_126_pad_type_0"), val = string("valid")];
55
+ tensor<int32, [2]> var_126_strides_0 = const()[name = string("op_126_strides_0"), val = tensor<int32, [2]>([1, 1])];
56
+ tensor<int32, [4]> var_126_pad_0 = const()[name = string("op_126_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
57
+ tensor<int32, [2]> var_126_dilations_0 = const()[name = string("op_126_dilations_0"), val = tensor<int32, [2]>([1, 1])];
58
+ int32 var_126_groups_0 = const()[name = string("op_126_groups_0"), val = int32(1)];
59
+ tensor<fp16, [1, 1536, 1, 1]> input_3 = cast(dtype = input_3_dtype_0, x = var_110)[name = string("cast_27")];
60
+ tensor<fp16, [1, 1536, 1, 1]> var_126 = conv(bias = model_model_layers_0_self_attn_q_proj_bias, dilations = var_126_dilations_0, groups = var_126_groups_0, pad = var_126_pad_0, pad_type = var_126_pad_type_0, strides = var_126_strides_0, weight = model_model_layers_0_self_attn_q_proj_weight, x = input_3)[name = string("op_126")];
61
+ tensor<int32, [4]> var_131 = const()[name = string("op_131"), val = tensor<int32, [4]>([1, 12, 1, 128])];
62
+ tensor<fp16, [1, 12, 1, 128]> var_132 = reshape(shape = var_131, x = var_126)[name = string("op_132")];
63
+ string var_148_pad_type_0 = const()[name = string("op_148_pad_type_0"), val = string("valid")];
64
+ tensor<int32, [2]> var_148_strides_0 = const()[name = string("op_148_strides_0"), val = tensor<int32, [2]>([1, 1])];
65
+ tensor<int32, [4]> var_148_pad_0 = const()[name = string("op_148_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
66
+ tensor<int32, [2]> var_148_dilations_0 = const()[name = string("op_148_dilations_0"), val = tensor<int32, [2]>([1, 1])];
67
+ int32 var_148_groups_0 = const()[name = string("op_148_groups_0"), val = int32(1)];
68
+ tensor<fp16, [1, 256, 1, 1]> var_148 = conv(bias = model_model_layers_0_self_attn_k_proj_bias, dilations = var_148_dilations_0, groups = var_148_groups_0, pad = var_148_pad_0, pad_type = var_148_pad_type_0, strides = var_148_strides_0, weight = model_model_layers_0_self_attn_k_proj_weight, x = input_3)[name = string("op_148")];
69
+ tensor<int32, [4]> var_153 = const()[name = string("op_153"), val = tensor<int32, [4]>([1, 2, 1, 128])];
70
+ tensor<fp16, [1, 2, 1, 128]> var_154 = reshape(shape = var_153, x = var_148)[name = string("op_154")];
71
+ string var_170_pad_type_0 = const()[name = string("op_170_pad_type_0"), val = string("valid")];
72
+ tensor<int32, [2]> var_170_strides_0 = const()[name = string("op_170_strides_0"), val = tensor<int32, [2]>([1, 1])];
73
+ tensor<int32, [4]> var_170_pad_0 = const()[name = string("op_170_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
74
+ tensor<int32, [2]> var_170_dilations_0 = const()[name = string("op_170_dilations_0"), val = tensor<int32, [2]>([1, 1])];
75
+ int32 var_170_groups_0 = const()[name = string("op_170_groups_0"), val = int32(1)];
76
+ tensor<fp16, [1, 256, 1, 1]> var_170 = conv(bias = model_model_layers_0_self_attn_v_proj_bias, dilations = var_170_dilations_0, groups = var_170_groups_0, pad = var_170_pad_0, pad_type = var_170_pad_type_0, strides = var_170_strides_0, weight = model_model_layers_0_self_attn_v_proj_weight, x = input_3)[name = string("op_170")];
77
+ tensor<int32, [4]> var_175 = const()[name = string("op_175"), val = tensor<int32, [4]>([1, 2, 1, 128])];
78
+ tensor<fp16, [1, 2, 1, 128]> var_176 = reshape(shape = var_175, x = var_170)[name = string("op_176")];
79
+ tensor<fp16, [1, 1, 1, 128]> cos = cast(dtype = cos_dtype_0, x = cos_1)[name = string("cast_29")];
80
+ tensor<fp16, [1, 12, 1, 128]> var_182 = mul(x = var_132, y = cos)[name = string("op_182")];
81
+ tensor<int32, [4]> x1_1_begin_0 = const()[name = string("x1_1_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
82
+ tensor<int32, [4]> x1_1_end_0 = const()[name = string("x1_1_end_0"), val = tensor<int32, [4]>([1, 12, 1, 64])];
83
+ tensor<bool, [4]> x1_1_end_mask_0 = const()[name = string("x1_1_end_mask_0"), val = tensor<bool, [4]>([true, true, true, false])];
84
+ tensor<fp16, [1, 12, 1, 64]> x1_1 = slice_by_index(begin = x1_1_begin_0, end = x1_1_end_0, end_mask = x1_1_end_mask_0, x = var_132)[name = string("x1_1")];
85
+ tensor<int32, [4]> x2_1_begin_0 = const()[name = string("x2_1_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 64])];
86
+ tensor<int32, [4]> x2_1_end_0 = const()[name = string("x2_1_end_0"), val = tensor<int32, [4]>([1, 12, 1, 128])];
87
+ tensor<bool, [4]> x2_1_end_mask_0 = const()[name = string("x2_1_end_mask_0"), val = tensor<bool, [4]>([true, true, true, true])];
88
+ tensor<fp16, [1, 12, 1, 64]> x2_1 = slice_by_index(begin = x2_1_begin_0, end = x2_1_end_0, end_mask = x2_1_end_mask_0, x = var_132)[name = string("x2_1")];
89
+ fp16 const_6_promoted = const()[name = string("const_6_promoted"), val = fp16(-0x1p+0)];
90
+ tensor<fp16, [1, 12, 1, 64]> var_203 = mul(x = x2_1, y = const_6_promoted)[name = string("op_203")];
91
+ int32 var_205 = const()[name = string("op_205"), val = int32(-1)];
92
+ bool var_206_interleave_0 = const()[name = string("op_206_interleave_0"), val = bool(false)];
93
+ tensor<fp16, [1, 12, 1, 128]> var_206 = concat(axis = var_205, interleave = var_206_interleave_0, values = (var_203, x1_1))[name = string("op_206")];
94
+ tensor<fp16, [1, 1, 1, 128]> sin = cast(dtype = sin_dtype_0, x = sin_1)[name = string("cast_28")];
95
+ tensor<fp16, [1, 12, 1, 128]> var_207 = mul(x = var_206, y = sin)[name = string("op_207")];
96
+ tensor<fp16, [1, 12, 1, 128]> query_states = add(x = var_182, y = var_207)[name = string("query_states")];
97
+ tensor<fp16, [1, 2, 1, 128]> var_210 = mul(x = var_154, y = cos)[name = string("op_210")];
98
+ tensor<int32, [4]> x1_begin_0 = const()[name = string("x1_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
99
+ tensor<int32, [4]> x1_end_0 = const()[name = string("x1_end_0"), val = tensor<int32, [4]>([1, 2, 1, 64])];
100
+ tensor<bool, [4]> x1_end_mask_0 = const()[name = string("x1_end_mask_0"), val = tensor<bool, [4]>([true, true, true, false])];
101
+ tensor<fp16, [1, 2, 1, 64]> x1 = slice_by_index(begin = x1_begin_0, end = x1_end_0, end_mask = x1_end_mask_0, x = var_154)[name = string("x1")];
102
+ tensor<int32, [4]> x2_begin_0 = const()[name = string("x2_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 64])];
103
+ tensor<int32, [4]> x2_end_0 = const()[name = string("x2_end_0"), val = tensor<int32, [4]>([1, 2, 1, 128])];
104
+ tensor<bool, [4]> x2_end_mask_0 = const()[name = string("x2_end_mask_0"), val = tensor<bool, [4]>([true, true, true, true])];
105
+ tensor<fp16, [1, 2, 1, 64]> x2 = slice_by_index(begin = x2_begin_0, end = x2_end_0, end_mask = x2_end_mask_0, x = var_154)[name = string("x2")];
106
+ fp16 const_9_promoted = const()[name = string("const_9_promoted"), val = fp16(-0x1p+0)];
107
+ tensor<fp16, [1, 2, 1, 64]> var_231 = mul(x = x2, y = const_9_promoted)[name = string("op_231")];
108
+ int32 var_233 = const()[name = string("op_233"), val = int32(-1)];
109
+ bool var_234_interleave_0 = const()[name = string("op_234_interleave_0"), val = bool(false)];
110
+ tensor<fp16, [1, 2, 1, 128]> var_234 = concat(axis = var_233, interleave = var_234_interleave_0, values = (var_231, x1))[name = string("op_234")];
111
+ tensor<fp16, [1, 2, 1, 128]> var_235 = mul(x = var_234, y = sin)[name = string("op_235")];
112
+ tensor<fp16, [1, 2, 1, 128]> key_states_1 = add(x = var_210, y = var_235)[name = string("key_states_1")];
113
+ int32 var_239 = const()[name = string("op_239"), val = int32(1)];
114
+ tensor<int32, [1]> var_240 = add(x = current_pos, y = var_239)[name = string("op_240")];
115
+ tensor<fp16, [56, 2, 2048, 128]> read_state_0 = read_state(input = model_model_kv_cache_0)[name = string("read_state_0")];
116
+ string cast_7_dtype_0 = const()[name = string("cast_7_dtype_0"), val = string("fp32")];
117
+ tensor<int32, [1]> expand_dims_0 = const()[name = string("expand_dims_0"), val = tensor<int32, [1]>([0])];
118
+ tensor<int32, [1]> expand_dims_1 = const()[name = string("expand_dims_1"), val = tensor<int32, [1]>([0])];
119
+ tensor<int32, [1]> expand_dims_3 = const()[name = string("expand_dims_3"), val = tensor<int32, [1]>([0])];
120
+ tensor<int32, [1]> expand_dims_4 = const()[name = string("expand_dims_4"), val = tensor<int32, [1]>([1])];
121
+ int32 concat_2_axis_0 = const()[name = string("concat_2_axis_0"), val = int32(0)];
122
+ bool concat_2_interleave_0 = const()[name = string("concat_2_interleave_0"), val = bool(false)];
123
+ tensor<int32, [4]> concat_2 = concat(axis = concat_2_axis_0, interleave = concat_2_interleave_0, values = (expand_dims_0, expand_dims_1, current_pos, expand_dims_3))[name = string("concat_2")];
124
+ tensor<int32, [1]> concat_3_values1_0 = const()[name = string("concat_3_values1_0"), val = tensor<int32, [1]>([0])];
125
+ tensor<int32, [1]> concat_3_values3_0 = const()[name = string("concat_3_values3_0"), val = tensor<int32, [1]>([0])];
126
+ int32 concat_3_axis_0 = const()[name = string("concat_3_axis_0"), val = int32(0)];
127
+ bool concat_3_interleave_0 = const()[name = string("concat_3_interleave_0"), val = bool(false)];
128
+ tensor<int32, [4]> concat_3 = concat(axis = concat_3_axis_0, interleave = concat_3_interleave_0, values = (expand_dims_4, concat_3_values1_0, var_240, concat_3_values3_0))[name = string("concat_3")];
129
+ string key_states_1_promoted_dtype_0 = const()[name = string("key_states_1_promoted_dtype_0"), val = string("fp32")];
130
+ tensor<int32, [4]> model_model_kv_cache_0_internal_tensor_assign_1_stride_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_1_stride_0"), val = tensor<int32, [4]>([1, 1, 1, 1])];
131
+ tensor<bool, [4]> model_model_kv_cache_0_internal_tensor_assign_1_begin_mask_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_1_begin_mask_0"), val = tensor<bool, [4]>([false, false, false, false])];
132
+ tensor<bool, [4]> model_model_kv_cache_0_internal_tensor_assign_1_end_mask_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_1_end_mask_0"), val = tensor<bool, [4]>([false, true, false, true])];
133
+ tensor<bool, [4]> model_model_kv_cache_0_internal_tensor_assign_1_squeeze_mask_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_1_squeeze_mask_0"), val = tensor<bool, [4]>([false, false, false, false])];
134
+ tensor<fp32, [1, 2, 1, 128]> key_states_1_promoted = cast(dtype = key_states_1_promoted_dtype_0, x = key_states_1)[name = string("cast_25")];
135
+ tensor<fp32, [56, 2, 2048, 128]> cast_7 = cast(dtype = cast_7_dtype_0, x = read_state_0)[name = string("cast_26")];
136
+ tensor<fp32, [56, 2, 2048, 128]> model_model_kv_cache_0_internal_tensor_assign_1 = slice_update(begin = concat_2, begin_mask = model_model_kv_cache_0_internal_tensor_assign_1_begin_mask_0, end = concat_3, end_mask = model_model_kv_cache_0_internal_tensor_assign_1_end_mask_0, squeeze_mask = model_model_kv_cache_0_internal_tensor_assign_1_squeeze_mask_0, stride = model_model_kv_cache_0_internal_tensor_assign_1_stride_0, update = key_states_1_promoted, x = cast_7)[name = string("model_model_kv_cache_0_internal_tensor_assign_1")];
137
+ string cast_8_dtype_0 = const()[name = string("cast_8_dtype_0"), val = string("fp16")];
138
+ tensor<fp16, [56, 2, 2048, 128]> cast_8 = cast(dtype = cast_8_dtype_0, x = model_model_kv_cache_0_internal_tensor_assign_1)[name = string("cast_24")];
139
+ write_state(data = cast_8, input = model_model_kv_cache_0)[name = string("coreml_update_state_4_write_state")];
140
+ tensor<fp16, [56, 2, 2048, 128]> coreml_update_state_2 = read_state(input = model_model_kv_cache_0)[name = string("coreml_update_state_4")];
141
+ string model_model_kv_cache_0_internal_tensor_assign_1_dtype_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_1_dtype_0"), val = string("fp32")];
142
+ tensor<int32, [1]> expand_dims_6 = const()[name = string("expand_dims_6"), val = tensor<int32, [1]>([28])];
143
+ tensor<int32, [1]> expand_dims_7 = const()[name = string("expand_dims_7"), val = tensor<int32, [1]>([0])];
144
+ tensor<int32, [1]> expand_dims_9 = const()[name = string("expand_dims_9"), val = tensor<int32, [1]>([0])];
145
+ tensor<int32, [1]> expand_dims_10 = const()[name = string("expand_dims_10"), val = tensor<int32, [1]>([29])];
146
+ int32 concat_6_axis_0 = const()[name = string("concat_6_axis_0"), val = int32(0)];
147
+ bool concat_6_interleave_0 = const()[name = string("concat_6_interleave_0"), val = bool(false)];
148
+ tensor<int32, [4]> concat_6 = concat(axis = concat_6_axis_0, interleave = concat_6_interleave_0, values = (expand_dims_6, expand_dims_7, current_pos, expand_dims_9))[name = string("concat_6")];
149
+ tensor<int32, [1]> concat_7_values1_0 = const()[name = string("concat_7_values1_0"), val = tensor<int32, [1]>([0])];
150
+ tensor<int32, [1]> concat_7_values3_0 = const()[name = string("concat_7_values3_0"), val = tensor<int32, [1]>([0])];
151
+ int32 concat_7_axis_0 = const()[name = string("concat_7_axis_0"), val = int32(0)];
152
+ bool concat_7_interleave_0 = const()[name = string("concat_7_interleave_0"), val = bool(false)];
153
+ tensor<int32, [4]> concat_7 = concat(axis = concat_7_axis_0, interleave = concat_7_interleave_0, values = (expand_dims_10, concat_7_values1_0, var_240, concat_7_values3_0))[name = string("concat_7")];
154
+ string value_states_1_promoted_dtype_0 = const()[name = string("value_states_1_promoted_dtype_0"), val = string("fp32")];
155
+ tensor<int32, [4]> model_model_kv_cache_0_internal_tensor_assign_2_stride_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_2_stride_0"), val = tensor<int32, [4]>([1, 1, 1, 1])];
156
+ tensor<bool, [4]> model_model_kv_cache_0_internal_tensor_assign_2_begin_mask_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_2_begin_mask_0"), val = tensor<bool, [4]>([false, false, false, false])];
157
+ tensor<bool, [4]> model_model_kv_cache_0_internal_tensor_assign_2_end_mask_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_2_end_mask_0"), val = tensor<bool, [4]>([false, true, false, true])];
158
+ tensor<bool, [4]> model_model_kv_cache_0_internal_tensor_assign_2_squeeze_mask_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_2_squeeze_mask_0"), val = tensor<bool, [4]>([false, false, false, false])];
159
+ tensor<fp32, [1, 2, 1, 128]> value_states_1_promoted = cast(dtype = value_states_1_promoted_dtype_0, x = var_176)[name = string("cast_22")];
160
+ tensor<fp32, [56, 2, 2048, 128]> model_model_kv_cache_0_internal_tensor_assign_1_1 = cast(dtype = model_model_kv_cache_0_internal_tensor_assign_1_dtype_0, x = coreml_update_state_2)[name = string("cast_23")];
161
+ tensor<fp32, [56, 2, 2048, 128]> model_model_kv_cache_0_internal_tensor_assign_2 = slice_update(begin = concat_6, begin_mask = model_model_kv_cache_0_internal_tensor_assign_2_begin_mask_0, end = concat_7, end_mask = model_model_kv_cache_0_internal_tensor_assign_2_end_mask_0, squeeze_mask = model_model_kv_cache_0_internal_tensor_assign_2_squeeze_mask_0, stride = model_model_kv_cache_0_internal_tensor_assign_2_stride_0, update = value_states_1_promoted, x = model_model_kv_cache_0_internal_tensor_assign_1_1)[name = string("model_model_kv_cache_0_internal_tensor_assign_2")];
162
+ string cast_9_dtype_0 = const()[name = string("cast_9_dtype_0"), val = string("fp16")];
163
+ tensor<fp16, [56, 2, 2048, 128]> cast_9 = cast(dtype = cast_9_dtype_0, x = model_model_kv_cache_0_internal_tensor_assign_2)[name = string("cast_21")];
164
+ write_state(data = cast_9, input = model_model_kv_cache_0)[name = string("coreml_update_state_5_write_state")];
165
+ tensor<fp16, [56, 2, 2048, 128]> coreml_update_state_3 = read_state(input = model_model_kv_cache_0)[name = string("coreml_update_state_5")];
166
+ string model_model_kv_cache_0_internal_tensor_assign_2_dtype_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_2_dtype_0"), val = string("fp32")];
167
+ tensor<int32, [4]> var_290_begin_0 = const()[name = string("op_290_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
168
+ tensor<int32, [4]> var_290_end_0 = const()[name = string("op_290_end_0"), val = tensor<int32, [4]>([1, 2, 2048, 128])];
169
+ tensor<bool, [4]> var_290_end_mask_0 = const()[name = string("op_290_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
170
+ tensor<fp32, [56, 2, 2048, 128]> model_model_kv_cache_0_internal_tensor_assign_2_1 = cast(dtype = model_model_kv_cache_0_internal_tensor_assign_2_dtype_0, x = coreml_update_state_3)[name = string("cast_20")];
171
+ tensor<fp32, [1, 2, 2048, 128]> var_290 = slice_by_index(begin = var_290_begin_0, end = var_290_end_0, end_mask = var_290_end_mask_0, x = model_model_kv_cache_0_internal_tensor_assign_2_1)[name = string("op_290")];
172
+ tensor<int32, [1]> K_layer_cache_axes_0 = const()[name = string("K_layer_cache_axes_0"), val = tensor<int32, [1]>([0])];
173
+ tensor<fp32, [2, 2048, 128]> K_layer_cache = squeeze(axes = K_layer_cache_axes_0, x = var_290)[name = string("K_layer_cache")];
174
+ tensor<int32, [4]> var_297_begin_0 = const()[name = string("op_297_begin_0"), val = tensor<int32, [4]>([28, 0, 0, 0])];
175
+ tensor<int32, [4]> var_297_end_0 = const()[name = string("op_297_end_0"), val = tensor<int32, [4]>([29, 2, 2048, 128])];
176
+ tensor<bool, [4]> var_297_end_mask_0 = const()[name = string("op_297_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
177
+ tensor<fp32, [1, 2, 2048, 128]> var_297 = slice_by_index(begin = var_297_begin_0, end = var_297_end_0, end_mask = var_297_end_mask_0, x = model_model_kv_cache_0_internal_tensor_assign_2_1)[name = string("op_297")];
178
+ tensor<int32, [1]> V_layer_cache_axes_0 = const()[name = string("V_layer_cache_axes_0"), val = tensor<int32, [1]>([0])];
179
+ tensor<fp32, [2, 2048, 128]> V_layer_cache = squeeze(axes = V_layer_cache_axes_0, x = var_297)[name = string("V_layer_cache")];
180
+ tensor<int32, [1]> x_3_axes_0 = const()[name = string("x_3_axes_0"), val = tensor<int32, [1]>([1])];
181
+ tensor<fp32, [2, 1, 2048, 128]> x_3 = expand_dims(axes = x_3_axes_0, x = K_layer_cache)[name = string("x_3")];
182
+ tensor<int32, [4]> var_334 = const()[name = string("op_334"), val = tensor<int32, [4]>([1, 6, 1, 1])];
183
+ tensor<fp32, [2, 6, 2048, 128]> x_5 = tile(reps = var_334, x = x_3)[name = string("x_5")];
184
+ tensor<int32, [4]> var_346 = const()[name = string("op_346"), val = tensor<int32, [4]>([1, -1, 2048, 128])];
185
+ tensor<fp32, [1, 12, 2048, 128]> key_states = reshape(shape = var_346, x = x_5)[name = string("key_states")];
186
+ tensor<int32, [1]> x_9_axes_0 = const()[name = string("x_9_axes_0"), val = tensor<int32, [1]>([1])];
187
+ tensor<fp32, [2, 1, 2048, 128]> x_9 = expand_dims(axes = x_9_axes_0, x = V_layer_cache)[name = string("x_9")];
188
+ tensor<int32, [4]> var_354 = const()[name = string("op_354"), val = tensor<int32, [4]>([1, 6, 1, 1])];
189
+ tensor<fp32, [2, 6, 2048, 128]> x = tile(reps = var_354, x = x_9)[name = string("x")];
190
+ tensor<int32, [4]> var_366 = const()[name = string("op_366"), val = tensor<int32, [4]>([1, -1, 2048, 128])];
191
+ tensor<fp32, [1, 12, 2048, 128]> value_states = reshape(shape = var_366, x = x)[name = string("value_states")];
192
+ string q_dtype_0 = const()[name = string("q_dtype_0"), val = string("fp32")];
193
+ bool var_389_transpose_x_1 = const()[name = string("op_389_transpose_x_1"), val = bool(false)];
194
+ bool var_389_transpose_y_1 = const()[name = string("op_389_transpose_y_1"), val = bool(true)];
195
+ tensor<fp32, [1, 12, 1, 128]> q = cast(dtype = q_dtype_0, x = query_states)[name = string("cast_19")];
196
+ tensor<fp32, [1, 12, 1, 2048]> var_389 = matmul(transpose_x = var_389_transpose_x_1, transpose_y = var_389_transpose_y_1, x = q, y = key_states)[name = string("op_389")];
197
+ fp32 var_390 = const()[name = string("op_390"), val = fp32(0x1.6a09e6p-4)];
198
+ tensor<fp32, [1, 12, 1, 2048]> attn_logits_1 = mul(x = var_389, y = var_390)[name = string("attn_logits_1")];
199
+ tensor<fp32, [1, 1, 1, 2048]> cast_1 = cast(dtype = cast_1_dtype_0, x = causal_mask)[name = string("cast_30")];
200
+ tensor<fp32, [1, 12, 1, 2048]> attn_logits = add(x = attn_logits_1, y = cast_1)[name = string("attn_logits")];
201
+ int32 var_417 = const()[name = string("op_417"), val = int32(-1)];
202
+ tensor<fp32, [1, 12, 1, 2048]> var_419 = softmax(axis = var_417, x = attn_logits)[name = string("op_419")];
203
+ string attn_weights_dtype_0 = const()[name = string("attn_weights_dtype_0"), val = string("fp16")];
204
+ string var_429_dtype_0 = const()[name = string("op_429_dtype_0"), val = string("fp32")];
205
+ bool attn_output_1_transpose_x_0 = const()[name = string("attn_output_1_transpose_x_0"), val = bool(false)];
206
+ bool attn_output_1_transpose_y_0 = const()[name = string("attn_output_1_transpose_y_0"), val = bool(false)];
207
+ tensor<fp16, [1, 12, 1, 2048]> attn_weights = cast(dtype = attn_weights_dtype_0, x = var_419)[name = string("cast_18")];
208
+ tensor<fp32, [1, 12, 1, 2048]> var_429 = cast(dtype = var_429_dtype_0, x = attn_weights)[name = string("cast_17")];
209
+ tensor<fp32, [1, 12, 1, 128]> attn_output_1 = matmul(transpose_x = attn_output_1_transpose_x_0, transpose_y = attn_output_1_transpose_y_0, x = var_429, y = value_states)[name = string("attn_output_1")];
210
+ string attn_output_3_dtype_0 = const()[name = string("attn_output_3_dtype_0"), val = string("fp16")];
211
+ tensor<int32, [4]> var_443_perm_0 = const()[name = string("op_443_perm_0"), val = tensor<int32, [4]>([0, 2, 1, 3])];
212
+ tensor<int32, [3]> var_447 = const()[name = string("op_447"), val = tensor<int32, [3]>([1, 1, 1536])];
213
+ tensor<fp16, [1, 12, 1, 128]> attn_output_3 = cast(dtype = attn_output_3_dtype_0, x = attn_output_1)[name = string("cast_16")];
214
+ tensor<fp16, [1, 1, 12, 128]> var_443 = transpose(perm = var_443_perm_0, x = attn_output_3)[name = string("transpose_2")];
215
+ tensor<fp16, [1, 1, 1536]> attn_output_7 = reshape(shape = var_447, x = var_443)[name = string("attn_output_7")];
216
+ tensor<int32, [3]> var_452 = const()[name = string("op_452"), val = tensor<int32, [3]>([0, 2, 1])];
217
+ tensor<fp16, [1536, 1536, 1]> squeeze_0 = const()[name = string("squeeze_0"), val = tensor<fp16, [1536, 1536, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(10496640)))];
218
+ string var_468_pad_type_0 = const()[name = string("op_468_pad_type_0"), val = string("valid")];
219
+ int32 var_468_groups_0 = const()[name = string("op_468_groups_0"), val = int32(1)];
220
+ tensor<int32, [1]> var_468_strides_0 = const()[name = string("op_468_strides_0"), val = tensor<int32, [1]>([1])];
221
+ tensor<int32, [2]> var_468_pad_0 = const()[name = string("op_468_pad_0"), val = tensor<int32, [2]>([0, 0])];
222
+ tensor<int32, [1]> var_468_dilations_0 = const()[name = string("op_468_dilations_0"), val = tensor<int32, [1]>([1])];
223
+ tensor<fp16, [1, 1536, 1]> var_453 = transpose(perm = var_452, x = attn_output_7)[name = string("transpose_1")];
224
+ tensor<fp16, [1, 1536, 1]> var_468 = conv(dilations = var_468_dilations_0, groups = var_468_groups_0, pad = var_468_pad_0, pad_type = var_468_pad_type_0, strides = var_468_strides_0, weight = squeeze_0, x = var_453)[name = string("op_468")];
225
+ tensor<int32, [3]> var_472 = const()[name = string("op_472"), val = tensor<int32, [3]>([0, 2, 1])];
226
+ string attn_out_promoted_dtype_0 = const()[name = string("attn_out_promoted_dtype_0"), val = string("fp32")];
227
+ tensor<fp16, [1, 1, 1536]> attn_out = transpose(perm = var_472, x = var_468)[name = string("transpose_0")];
228
+ tensor<fp32, [1, 1, 1536]> attn_out_promoted = cast(dtype = attn_out_promoted_dtype_0, x = attn_out)[name = string("cast_15")];
229
+ tensor<fp32, [1, 1, 1536]> output_hidden_states_type_fp32 = add(x = cast_0, y = attn_out_promoted)[name = string("op_475")];
230
+ string cast_13_dtype_0 = const()[name = string("cast_13_dtype_0"), val = string("fp16")];
231
+ tensor<fp16, [1, 1, 1536]> output_hidden_states = cast(dtype = cast_13_dtype_0, x = output_hidden_states_type_fp32)[name = string("cast_14")];
232
+ tensor<int32, [1]> position_ids_tmp = identity(x = position_ids)[name = string("position_ids_tmp")];
233
+ } -> (output_hidden_states);
234
+ func prefill<ios18>(tensor<fp16, [1, 1, 64, 2048]> causal_mask, tensor<int32, [1]> current_pos, tensor<fp16, [1, 64, 1536]> hidden_states, state<tensor<fp16, [56, 2, 2048, 128]>> model_model_kv_cache_0, tensor<int32, [64]> position_ids) {
235
+ string cast_0_dtype_0 = const()[name = string("cast_0_dtype_0"), val = string("fp32")];
236
+ string cast_1_dtype_0 = const()[name = string("cast_1_dtype_0"), val = string("fp32")];
237
+ tensor<fp16, [1536]> model_model_layers_0_self_attn_q_proj_bias = const()[name = string("model_model_layers_0_self_attn_q_proj_bias"), val = tensor<fp16, [1536]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(64)))];
238
+ tensor<fp16, [1536, 1536, 1, 1]> model_model_layers_0_self_attn_q_proj_weight = const()[name = string("model_model_layers_0_self_attn_q_proj_weight"), val = tensor<fp16, [1536, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(3200)))];
239
+ tensor<fp16, [256]> model_model_layers_0_self_attn_k_proj_bias = const()[name = string("model_model_layers_0_self_attn_k_proj_bias"), val = tensor<fp16, [256]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(4721856)))];
240
+ tensor<fp16, [256, 1536, 1, 1]> model_model_layers_0_self_attn_k_proj_weight = const()[name = string("model_model_layers_0_self_attn_k_proj_weight"), val = tensor<fp16, [256, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(4722432)))];
241
+ tensor<fp16, [256]> model_model_layers_0_self_attn_v_proj_bias = const()[name = string("model_model_layers_0_self_attn_v_proj_bias"), val = tensor<fp16, [256]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(5508928)))];
242
+ tensor<fp16, [256, 1536, 1, 1]> model_model_layers_0_self_attn_v_proj_weight = const()[name = string("model_model_layers_0_self_attn_v_proj_weight"), val = tensor<fp16, [256, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(5509504)))];
243
+ fp32 var_45 = const()[name = string("op_45"), val = fp32(0x1.0c6f7ap-20)];
244
+ int32 var_48 = const()[name = string("op_48"), val = int32(-1)];
245
+ fp32 const_0_promoted = const()[name = string("const_0_promoted"), val = fp32(-0x1p+0)];
246
+ tensor<fp32, [1, 64, 1536]> cast_0 = cast(dtype = cast_0_dtype_0, x = hidden_states)[name = string("cast_31")];
247
+ tensor<fp32, [1, 64, 1536]> var_50 = mul(x = cast_0, y = const_0_promoted)[name = string("op_50")];
248
+ bool input_1_interleave_0 = const()[name = string("input_1_interleave_0"), val = bool(false)];
249
+ tensor<fp32, [1, 64, 3072]> input_1 = concat(axis = var_48, interleave = input_1_interleave_0, values = (cast_0, var_50))[name = string("input_1")];
250
+ tensor<int32, [1]> normed_1_axes_0 = const()[name = string("normed_1_axes_0"), val = tensor<int32, [1]>([-1])];
251
+ tensor<fp32, [1, 64, 3072]> normed_1 = layer_norm(axes = normed_1_axes_0, epsilon = var_45, x = input_1)[name = string("normed_1")];
252
+ tensor<int32, [3]> normed_begin_0 = const()[name = string("normed_begin_0"), val = tensor<int32, [3]>([0, 0, 0])];
253
+ tensor<int32, [3]> normed_end_0 = const()[name = string("normed_end_0"), val = tensor<int32, [3]>([1, 64, 1536])];
254
+ tensor<bool, [3]> normed_end_mask_0 = const()[name = string("normed_end_mask_0"), val = tensor<bool, [3]>([true, true, false])];
255
+ tensor<fp32, [1, 64, 1536]> normed = slice_by_index(begin = normed_begin_0, end = normed_end_0, end_mask = normed_end_mask_0, x = normed_1)[name = string("normed")];
256
+ tensor<fp32, [1536]> const_3_promoted = const()[name = string("const_3_promoted"), val = tensor<fp32, [1536]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(6296000)))];
257
+ tensor<fp32, [1, 64, 1536]> hidden_states_1 = mul(x = normed, y = const_3_promoted)[name = string("hidden_states")];
258
+ tensor<fp32, [1, 4096, 128]> var_69 = const()[name = string("op_69"), val = tensor<fp32, [1, 4096, 128]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(8399424)))];
259
+ int32 var_77_batch_dims_0 = const()[name = string("op_77_batch_dims_0"), val = int32(0)];
260
+ bool var_77_validate_indices_0 = const()[name = string("op_77_validate_indices_0"), val = bool(false)];
261
+ int32 greater_equal_0_y_0 = const()[name = string("greater_equal_0_y_0"), val = int32(0)];
262
+ tensor<bool, [64]> greater_equal_0 = greater_equal(x = position_ids, y = greater_equal_0_y_0)[name = string("greater_equal_0")];
263
+ int32 slice_by_index_8 = const()[name = string("slice_by_index_8"), val = int32(4096)];
264
+ tensor<int32, [64]> add_0 = add(x = position_ids, y = slice_by_index_8)[name = string("add_0")];
265
+ tensor<int32, [64]> select_0 = select(a = position_ids, b = add_0, cond = greater_equal_0)[name = string("select_0")];
266
+ int32 var_77_axis_1 = const()[name = string("op_77_axis_1"), val = int32(1)];
267
+ tensor<fp32, [1, 64, 128]> var_77 = gather(axis = var_77_axis_1, batch_dims = var_77_batch_dims_0, indices = select_0, validate_indices = var_77_validate_indices_0, x = var_69)[name = string("op_77")];
268
+ tensor<int32, [4]> var_81 = const()[name = string("op_81"), val = tensor<int32, [4]>([1, 64, 1, 128])];
269
+ tensor<fp32, [1, 64, 1, 128]> cos_1 = reshape(shape = var_81, x = var_77)[name = string("cos_1")];
270
+ tensor<fp32, [1, 4096, 128]> var_83 = const()[name = string("op_83"), val = tensor<fp32, [1, 4096, 128]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(6302208)))];
271
+ int32 var_91_batch_dims_0 = const()[name = string("op_91_batch_dims_0"), val = int32(0)];
272
+ bool var_91_validate_indices_0 = const()[name = string("op_91_validate_indices_0"), val = bool(false)];
273
+ int32 var_91_axis_1 = const()[name = string("op_91_axis_1"), val = int32(1)];
274
+ tensor<fp32, [1, 64, 128]> var_91 = gather(axis = var_91_axis_1, batch_dims = var_91_batch_dims_0, indices = select_0, validate_indices = var_91_validate_indices_0, x = var_83)[name = string("op_91")];
275
+ tensor<int32, [4]> var_95 = const()[name = string("op_95"), val = tensor<int32, [4]>([1, 64, 1, 128])];
276
+ tensor<fp32, [1, 64, 1, 128]> sin_1 = reshape(shape = var_95, x = var_91)[name = string("sin_1")];
277
+ string cos_3_dtype_0 = const()[name = string("cos_3_dtype_0"), val = string("fp16")];
278
+ string sin_3_dtype_0 = const()[name = string("sin_3_dtype_0"), val = string("fp16")];
279
+ tensor<int32, [3]> var_116 = const()[name = string("op_116"), val = tensor<int32, [3]>([0, 2, 1])];
280
+ tensor<int32, [1]> var_119_axes_0 = const()[name = string("op_119_axes_0"), val = tensor<int32, [1]>([2])];
281
+ tensor<fp32, [1, 1536, 64]> var_117 = transpose(perm = var_116, x = hidden_states_1)[name = string("transpose_10")];
282
+ tensor<fp32, [1, 1536, 1, 64]> var_119 = expand_dims(axes = var_119_axes_0, x = var_117)[name = string("op_119")];
283
+ string input_3_dtype_0 = const()[name = string("input_3_dtype_0"), val = string("fp16")];
284
+ string query_states_1_pad_type_0 = const()[name = string("query_states_1_pad_type_0"), val = string("valid")];
285
+ tensor<int32, [2]> query_states_1_strides_0 = const()[name = string("query_states_1_strides_0"), val = tensor<int32, [2]>([1, 1])];
286
+ tensor<int32, [4]> query_states_1_pad_0 = const()[name = string("query_states_1_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
287
+ tensor<int32, [2]> query_states_1_dilations_0 = const()[name = string("query_states_1_dilations_0"), val = tensor<int32, [2]>([1, 1])];
288
+ int32 query_states_1_groups_0 = const()[name = string("query_states_1_groups_0"), val = int32(1)];
289
+ tensor<fp16, [1, 1536, 1, 64]> input_3 = cast(dtype = input_3_dtype_0, x = var_119)[name = string("cast_27")];
290
+ tensor<fp16, [1, 1536, 1, 64]> query_states_1 = conv(bias = model_model_layers_0_self_attn_q_proj_bias, dilations = query_states_1_dilations_0, groups = query_states_1_groups_0, pad = query_states_1_pad_0, pad_type = query_states_1_pad_type_0, strides = query_states_1_strides_0, weight = model_model_layers_0_self_attn_q_proj_weight, x = input_3)[name = string("query_states_1")];
291
+ string key_states_1_pad_type_0 = const()[name = string("key_states_1_pad_type_0"), val = string("valid")];
292
+ tensor<int32, [2]> key_states_1_strides_0 = const()[name = string("key_states_1_strides_0"), val = tensor<int32, [2]>([1, 1])];
293
+ tensor<int32, [4]> key_states_1_pad_0 = const()[name = string("key_states_1_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
294
+ tensor<int32, [2]> key_states_1_dilations_0 = const()[name = string("key_states_1_dilations_0"), val = tensor<int32, [2]>([1, 1])];
295
+ int32 key_states_1_groups_0 = const()[name = string("key_states_1_groups_0"), val = int32(1)];
296
+ tensor<fp16, [1, 256, 1, 64]> key_states_1 = conv(bias = model_model_layers_0_self_attn_k_proj_bias, dilations = key_states_1_dilations_0, groups = key_states_1_groups_0, pad = key_states_1_pad_0, pad_type = key_states_1_pad_type_0, strides = key_states_1_strides_0, weight = model_model_layers_0_self_attn_k_proj_weight, x = input_3)[name = string("key_states_1")];
297
+ string value_states_1_pad_type_0 = const()[name = string("value_states_1_pad_type_0"), val = string("valid")];
298
+ tensor<int32, [2]> value_states_1_strides_0 = const()[name = string("value_states_1_strides_0"), val = tensor<int32, [2]>([1, 1])];
299
+ tensor<int32, [4]> value_states_1_pad_0 = const()[name = string("value_states_1_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
300
+ tensor<int32, [2]> value_states_1_dilations_0 = const()[name = string("value_states_1_dilations_0"), val = tensor<int32, [2]>([1, 1])];
301
+ int32 value_states_1_groups_0 = const()[name = string("value_states_1_groups_0"), val = int32(1)];
302
+ tensor<fp16, [1, 256, 1, 64]> value_states_1 = conv(bias = model_model_layers_0_self_attn_v_proj_bias, dilations = value_states_1_dilations_0, groups = value_states_1_groups_0, pad = value_states_1_pad_0, pad_type = value_states_1_pad_type_0, strides = value_states_1_strides_0, weight = model_model_layers_0_self_attn_v_proj_weight, x = input_3)[name = string("value_states_1")];
303
+ tensor<int32, [4]> var_161 = const()[name = string("op_161"), val = tensor<int32, [4]>([1, 12, 128, 64])];
304
+ tensor<fp16, [1, 12, 128, 64]> var_162 = reshape(shape = var_161, x = query_states_1)[name = string("op_162")];
305
+ tensor<int32, [4]> var_167 = const()[name = string("op_167"), val = tensor<int32, [4]>([0, 1, 3, 2])];
306
+ tensor<int32, [4]> var_172 = const()[name = string("op_172"), val = tensor<int32, [4]>([1, 2, 128, 64])];
307
+ tensor<fp16, [1, 2, 128, 64]> var_173 = reshape(shape = var_172, x = key_states_1)[name = string("op_173")];
308
+ tensor<int32, [4]> var_178 = const()[name = string("op_178"), val = tensor<int32, [4]>([0, 1, 3, 2])];
309
+ tensor<int32, [4]> var_183 = const()[name = string("op_183"), val = tensor<int32, [4]>([1, 2, 128, 64])];
310
+ tensor<fp16, [1, 2, 128, 64]> var_184 = reshape(shape = var_183, x = value_states_1)[name = string("op_184")];
311
+ tensor<int32, [4]> var_189 = const()[name = string("op_189"), val = tensor<int32, [4]>([0, 1, 3, 2])];
312
+ tensor<int32, [4]> var_195 = const()[name = string("op_195"), val = tensor<int32, [4]>([0, 2, 1, 3])];
313
+ tensor<int32, [4]> var_201 = const()[name = string("op_201"), val = tensor<int32, [4]>([0, 2, 1, 3])];
314
+ tensor<fp16, [1, 64, 1, 128]> cos_3 = cast(dtype = cos_3_dtype_0, x = cos_1)[name = string("cast_29")];
315
+ tensor<fp16, [1, 1, 64, 128]> cos = transpose(perm = var_195, x = cos_3)[name = string("transpose_6")];
316
+ tensor<fp16, [1, 12, 64, 128]> q_1 = transpose(perm = var_167, x = var_162)[name = string("transpose_9")];
317
+ tensor<fp16, [1, 12, 64, 128]> var_203 = mul(x = q_1, y = cos)[name = string("op_203")];
318
+ tensor<int32, [4]> x1_1_begin_0 = const()[name = string("x1_1_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
319
+ tensor<int32, [4]> x1_1_end_0 = const()[name = string("x1_1_end_0"), val = tensor<int32, [4]>([1, 12, 64, 64])];
320
+ tensor<bool, [4]> x1_1_end_mask_0 = const()[name = string("x1_1_end_mask_0"), val = tensor<bool, [4]>([true, true, true, false])];
321
+ tensor<fp16, [1, 12, 64, 64]> x1_1 = slice_by_index(begin = x1_1_begin_0, end = x1_1_end_0, end_mask = x1_1_end_mask_0, x = q_1)[name = string("x1_1")];
322
+ tensor<int32, [4]> x2_1_begin_0 = const()[name = string("x2_1_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 64])];
323
+ tensor<int32, [4]> x2_1_end_0 = const()[name = string("x2_1_end_0"), val = tensor<int32, [4]>([1, 12, 64, 128])];
324
+ tensor<bool, [4]> x2_1_end_mask_0 = const()[name = string("x2_1_end_mask_0"), val = tensor<bool, [4]>([true, true, true, true])];
325
+ tensor<fp16, [1, 12, 64, 64]> x2_1 = slice_by_index(begin = x2_1_begin_0, end = x2_1_end_0, end_mask = x2_1_end_mask_0, x = q_1)[name = string("x2_1")];
326
+ fp16 const_8_promoted = const()[name = string("const_8_promoted"), val = fp16(-0x1p+0)];
327
+ tensor<fp16, [1, 12, 64, 64]> var_224 = mul(x = x2_1, y = const_8_promoted)[name = string("op_224")];
328
+ int32 var_226 = const()[name = string("op_226"), val = int32(-1)];
329
+ bool var_227_interleave_0 = const()[name = string("op_227_interleave_0"), val = bool(false)];
330
+ tensor<fp16, [1, 12, 64, 128]> var_227 = concat(axis = var_226, interleave = var_227_interleave_0, values = (var_224, x1_1))[name = string("op_227")];
331
+ tensor<fp16, [1, 64, 1, 128]> sin_3 = cast(dtype = sin_3_dtype_0, x = sin_1)[name = string("cast_28")];
332
+ tensor<fp16, [1, 1, 64, 128]> sin = transpose(perm = var_201, x = sin_3)[name = string("transpose_5")];
333
+ tensor<fp16, [1, 12, 64, 128]> var_228 = mul(x = var_227, y = sin)[name = string("op_228")];
334
+ tensor<fp16, [1, 12, 64, 128]> query_states_3 = add(x = var_203, y = var_228)[name = string("query_states_3")];
335
+ tensor<fp16, [1, 2, 64, 128]> k_1 = transpose(perm = var_178, x = var_173)[name = string("transpose_8")];
336
+ tensor<fp16, [1, 2, 64, 128]> var_231 = mul(x = k_1, y = cos)[name = string("op_231")];
337
+ tensor<int32, [4]> x1_begin_0 = const()[name = string("x1_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
338
+ tensor<int32, [4]> x1_end_0 = const()[name = string("x1_end_0"), val = tensor<int32, [4]>([1, 2, 64, 64])];
339
+ tensor<bool, [4]> x1_end_mask_0 = const()[name = string("x1_end_mask_0"), val = tensor<bool, [4]>([true, true, true, false])];
340
+ tensor<fp16, [1, 2, 64, 64]> x1 = slice_by_index(begin = x1_begin_0, end = x1_end_0, end_mask = x1_end_mask_0, x = k_1)[name = string("x1")];
341
+ tensor<int32, [4]> x2_begin_0 = const()[name = string("x2_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 64])];
342
+ tensor<int32, [4]> x2_end_0 = const()[name = string("x2_end_0"), val = tensor<int32, [4]>([1, 2, 64, 128])];
343
+ tensor<bool, [4]> x2_end_mask_0 = const()[name = string("x2_end_mask_0"), val = tensor<bool, [4]>([true, true, true, true])];
344
+ tensor<fp16, [1, 2, 64, 64]> x2 = slice_by_index(begin = x2_begin_0, end = x2_end_0, end_mask = x2_end_mask_0, x = k_1)[name = string("x2")];
345
+ fp16 const_11_promoted = const()[name = string("const_11_promoted"), val = fp16(-0x1p+0)];
346
+ tensor<fp16, [1, 2, 64, 64]> var_252 = mul(x = x2, y = const_11_promoted)[name = string("op_252")];
347
+ int32 var_254 = const()[name = string("op_254"), val = int32(-1)];
348
+ bool var_255_interleave_0 = const()[name = string("op_255_interleave_0"), val = bool(false)];
349
+ tensor<fp16, [1, 2, 64, 128]> var_255 = concat(axis = var_254, interleave = var_255_interleave_0, values = (var_252, x1))[name = string("op_255")];
350
+ tensor<fp16, [1, 2, 64, 128]> var_256 = mul(x = var_255, y = sin)[name = string("op_256")];
351
+ tensor<fp16, [1, 2, 64, 128]> key_states_3 = add(x = var_231, y = var_256)[name = string("key_states_3")];
352
+ tensor<int32, [1]> seq_length = const()[name = string("seq_length"), val = tensor<int32, [1]>([64])];
353
+ tensor<int32, [1]> var_278 = add(x = current_pos, y = seq_length)[name = string("op_278")];
354
+ tensor<fp16, [56, 2, 2048, 128]> read_state_0 = read_state(input = model_model_kv_cache_0)[name = string("read_state_0")];
355
+ string cast_7_dtype_0 = const()[name = string("cast_7_dtype_0"), val = string("fp32")];
356
+ tensor<int32, [1]> expand_dims_0 = const()[name = string("expand_dims_0"), val = tensor<int32, [1]>([0])];
357
+ tensor<int32, [1]> expand_dims_1 = const()[name = string("expand_dims_1"), val = tensor<int32, [1]>([0])];
358
+ tensor<int32, [1]> expand_dims_3 = const()[name = string("expand_dims_3"), val = tensor<int32, [1]>([0])];
359
+ tensor<int32, [1]> expand_dims_4 = const()[name = string("expand_dims_4"), val = tensor<int32, [1]>([1])];
360
+ int32 concat_2_axis_0 = const()[name = string("concat_2_axis_0"), val = int32(0)];
361
+ bool concat_2_interleave_0 = const()[name = string("concat_2_interleave_0"), val = bool(false)];
362
+ tensor<int32, [4]> concat_2 = concat(axis = concat_2_axis_0, interleave = concat_2_interleave_0, values = (expand_dims_0, expand_dims_1, current_pos, expand_dims_3))[name = string("concat_2")];
363
+ tensor<int32, [1]> concat_3_values1_0 = const()[name = string("concat_3_values1_0"), val = tensor<int32, [1]>([0])];
364
+ tensor<int32, [1]> concat_3_values3_0 = const()[name = string("concat_3_values3_0"), val = tensor<int32, [1]>([0])];
365
+ int32 concat_3_axis_0 = const()[name = string("concat_3_axis_0"), val = int32(0)];
366
+ bool concat_3_interleave_0 = const()[name = string("concat_3_interleave_0"), val = bool(false)];
367
+ tensor<int32, [4]> concat_3 = concat(axis = concat_3_axis_0, interleave = concat_3_interleave_0, values = (expand_dims_4, concat_3_values1_0, var_278, concat_3_values3_0))[name = string("concat_3")];
368
+ string key_states_5_promoted_dtype_0 = const()[name = string("key_states_5_promoted_dtype_0"), val = string("fp32")];
369
+ tensor<int32, [4]> model_model_kv_cache_0_internal_tensor_assign_1_stride_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_1_stride_0"), val = tensor<int32, [4]>([1, 1, 1, 1])];
370
+ tensor<bool, [4]> model_model_kv_cache_0_internal_tensor_assign_1_begin_mask_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_1_begin_mask_0"), val = tensor<bool, [4]>([false, false, false, false])];
371
+ tensor<bool, [4]> model_model_kv_cache_0_internal_tensor_assign_1_end_mask_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_1_end_mask_0"), val = tensor<bool, [4]>([false, true, false, true])];
372
+ tensor<bool, [4]> model_model_kv_cache_0_internal_tensor_assign_1_squeeze_mask_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_1_squeeze_mask_0"), val = tensor<bool, [4]>([false, false, false, false])];
373
+ tensor<fp32, [1, 2, 64, 128]> key_states_5_promoted = cast(dtype = key_states_5_promoted_dtype_0, x = key_states_3)[name = string("cast_25")];
374
+ tensor<fp32, [56, 2, 2048, 128]> cast_7 = cast(dtype = cast_7_dtype_0, x = read_state_0)[name = string("cast_26")];
375
+ tensor<fp32, [56, 2, 2048, 128]> model_model_kv_cache_0_internal_tensor_assign_1 = slice_update(begin = concat_2, begin_mask = model_model_kv_cache_0_internal_tensor_assign_1_begin_mask_0, end = concat_3, end_mask = model_model_kv_cache_0_internal_tensor_assign_1_end_mask_0, squeeze_mask = model_model_kv_cache_0_internal_tensor_assign_1_squeeze_mask_0, stride = model_model_kv_cache_0_internal_tensor_assign_1_stride_0, update = key_states_5_promoted, x = cast_7)[name = string("model_model_kv_cache_0_internal_tensor_assign_1")];
376
+ string cast_8_dtype_0 = const()[name = string("cast_8_dtype_0"), val = string("fp16")];
377
+ tensor<fp16, [56, 2, 2048, 128]> cast_8 = cast(dtype = cast_8_dtype_0, x = model_model_kv_cache_0_internal_tensor_assign_1)[name = string("cast_24")];
378
+ write_state(data = cast_8, input = model_model_kv_cache_0)[name = string("coreml_update_state_6_write_state")];
379
+ tensor<fp16, [56, 2, 2048, 128]> coreml_update_state_2 = read_state(input = model_model_kv_cache_0)[name = string("coreml_update_state_6")];
380
+ string model_model_kv_cache_0_internal_tensor_assign_1_dtype_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_1_dtype_0"), val = string("fp32")];
381
+ tensor<int32, [1]> expand_dims_6 = const()[name = string("expand_dims_6"), val = tensor<int32, [1]>([28])];
382
+ tensor<int32, [1]> expand_dims_7 = const()[name = string("expand_dims_7"), val = tensor<int32, [1]>([0])];
383
+ tensor<int32, [1]> expand_dims_9 = const()[name = string("expand_dims_9"), val = tensor<int32, [1]>([0])];
384
+ tensor<int32, [1]> expand_dims_10 = const()[name = string("expand_dims_10"), val = tensor<int32, [1]>([29])];
385
+ int32 concat_6_axis_0 = const()[name = string("concat_6_axis_0"), val = int32(0)];
386
+ bool concat_6_interleave_0 = const()[name = string("concat_6_interleave_0"), val = bool(false)];
387
+ tensor<int32, [4]> concat_6 = concat(axis = concat_6_axis_0, interleave = concat_6_interleave_0, values = (expand_dims_6, expand_dims_7, current_pos, expand_dims_9))[name = string("concat_6")];
388
+ tensor<int32, [1]> concat_7_values1_0 = const()[name = string("concat_7_values1_0"), val = tensor<int32, [1]>([0])];
389
+ tensor<int32, [1]> concat_7_values3_0 = const()[name = string("concat_7_values3_0"), val = tensor<int32, [1]>([0])];
390
+ int32 concat_7_axis_0 = const()[name = string("concat_7_axis_0"), val = int32(0)];
391
+ bool concat_7_interleave_0 = const()[name = string("concat_7_interleave_0"), val = bool(false)];
392
+ tensor<int32, [4]> concat_7 = concat(axis = concat_7_axis_0, interleave = concat_7_interleave_0, values = (expand_dims_10, concat_7_values1_0, var_278, concat_7_values3_0))[name = string("concat_7")];
393
+ string value_states_5_promoted_dtype_0 = const()[name = string("value_states_5_promoted_dtype_0"), val = string("fp32")];
394
+ tensor<int32, [4]> model_model_kv_cache_0_internal_tensor_assign_2_stride_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_2_stride_0"), val = tensor<int32, [4]>([1, 1, 1, 1])];
395
+ tensor<bool, [4]> model_model_kv_cache_0_internal_tensor_assign_2_begin_mask_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_2_begin_mask_0"), val = tensor<bool, [4]>([false, false, false, false])];
396
+ tensor<bool, [4]> model_model_kv_cache_0_internal_tensor_assign_2_end_mask_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_2_end_mask_0"), val = tensor<bool, [4]>([false, true, false, true])];
397
+ tensor<bool, [4]> model_model_kv_cache_0_internal_tensor_assign_2_squeeze_mask_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_2_squeeze_mask_0"), val = tensor<bool, [4]>([false, false, false, false])];
398
+ tensor<fp16, [1, 2, 64, 128]> value_states_3 = transpose(perm = var_189, x = var_184)[name = string("transpose_7")];
399
+ tensor<fp32, [1, 2, 64, 128]> value_states_5_promoted = cast(dtype = value_states_5_promoted_dtype_0, x = value_states_3)[name = string("cast_22")];
400
+ tensor<fp32, [56, 2, 2048, 128]> model_model_kv_cache_0_internal_tensor_assign_1_1 = cast(dtype = model_model_kv_cache_0_internal_tensor_assign_1_dtype_0, x = coreml_update_state_2)[name = string("cast_23")];
401
+ tensor<fp32, [56, 2, 2048, 128]> model_model_kv_cache_0_internal_tensor_assign_2 = slice_update(begin = concat_6, begin_mask = model_model_kv_cache_0_internal_tensor_assign_2_begin_mask_0, end = concat_7, end_mask = model_model_kv_cache_0_internal_tensor_assign_2_end_mask_0, squeeze_mask = model_model_kv_cache_0_internal_tensor_assign_2_squeeze_mask_0, stride = model_model_kv_cache_0_internal_tensor_assign_2_stride_0, update = value_states_5_promoted, x = model_model_kv_cache_0_internal_tensor_assign_1_1)[name = string("model_model_kv_cache_0_internal_tensor_assign_2")];
402
+ string cast_9_dtype_0 = const()[name = string("cast_9_dtype_0"), val = string("fp16")];
403
+ tensor<fp16, [56, 2, 2048, 128]> cast_9 = cast(dtype = cast_9_dtype_0, x = model_model_kv_cache_0_internal_tensor_assign_2)[name = string("cast_21")];
404
+ write_state(data = cast_9, input = model_model_kv_cache_0)[name = string("coreml_update_state_7_write_state")];
405
+ tensor<fp16, [56, 2, 2048, 128]> coreml_update_state_3 = read_state(input = model_model_kv_cache_0)[name = string("coreml_update_state_7")];
406
+ string model_model_kv_cache_0_internal_tensor_assign_2_dtype_0 = const()[name = string("model_model_kv_cache_0_internal_tensor_assign_2_dtype_0"), val = string("fp32")];
407
+ tensor<int32, [4]> var_327_begin_0 = const()[name = string("op_327_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
408
+ tensor<int32, [4]> var_327_end_0 = const()[name = string("op_327_end_0"), val = tensor<int32, [4]>([1, 2, 2048, 128])];
409
+ tensor<bool, [4]> var_327_end_mask_0 = const()[name = string("op_327_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
410
+ tensor<fp32, [56, 2, 2048, 128]> model_model_kv_cache_0_internal_tensor_assign_2_1 = cast(dtype = model_model_kv_cache_0_internal_tensor_assign_2_dtype_0, x = coreml_update_state_3)[name = string("cast_20")];
411
+ tensor<fp32, [1, 2, 2048, 128]> var_327 = slice_by_index(begin = var_327_begin_0, end = var_327_end_0, end_mask = var_327_end_mask_0, x = model_model_kv_cache_0_internal_tensor_assign_2_1)[name = string("op_327")];
412
+ tensor<int32, [1]> K_layer_cache_axes_0 = const()[name = string("K_layer_cache_axes_0"), val = tensor<int32, [1]>([0])];
413
+ tensor<fp32, [2, 2048, 128]> K_layer_cache = squeeze(axes = K_layer_cache_axes_0, x = var_327)[name = string("K_layer_cache")];
414
+ tensor<int32, [4]> var_334_begin_0 = const()[name = string("op_334_begin_0"), val = tensor<int32, [4]>([28, 0, 0, 0])];
415
+ tensor<int32, [4]> var_334_end_0 = const()[name = string("op_334_end_0"), val = tensor<int32, [4]>([29, 2, 2048, 128])];
416
+ tensor<bool, [4]> var_334_end_mask_0 = const()[name = string("op_334_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
417
+ tensor<fp32, [1, 2, 2048, 128]> var_334 = slice_by_index(begin = var_334_begin_0, end = var_334_end_0, end_mask = var_334_end_mask_0, x = model_model_kv_cache_0_internal_tensor_assign_2_1)[name = string("op_334")];
418
+ tensor<int32, [1]> V_layer_cache_axes_0 = const()[name = string("V_layer_cache_axes_0"), val = tensor<int32, [1]>([0])];
419
+ tensor<fp32, [2, 2048, 128]> V_layer_cache = squeeze(axes = V_layer_cache_axes_0, x = var_334)[name = string("V_layer_cache")];
420
+ tensor<int32, [1]> x_3_axes_0 = const()[name = string("x_3_axes_0"), val = tensor<int32, [1]>([1])];
421
+ tensor<fp32, [2, 1, 2048, 128]> x_3 = expand_dims(axes = x_3_axes_0, x = K_layer_cache)[name = string("x_3")];
422
+ tensor<int32, [4]> var_363 = const()[name = string("op_363"), val = tensor<int32, [4]>([1, 6, 1, 1])];
423
+ tensor<fp32, [2, 6, 2048, 128]> x_5 = tile(reps = var_363, x = x_3)[name = string("x_5")];
424
+ tensor<int32, [4]> var_375 = const()[name = string("op_375"), val = tensor<int32, [4]>([1, -1, 2048, 128])];
425
+ tensor<fp32, [1, 12, 2048, 128]> key_states = reshape(shape = var_375, x = x_5)[name = string("key_states")];
426
+ tensor<int32, [1]> x_9_axes_0 = const()[name = string("x_9_axes_0"), val = tensor<int32, [1]>([1])];
427
+ tensor<fp32, [2, 1, 2048, 128]> x_9 = expand_dims(axes = x_9_axes_0, x = V_layer_cache)[name = string("x_9")];
428
+ tensor<int32, [4]> var_383 = const()[name = string("op_383"), val = tensor<int32, [4]>([1, 6, 1, 1])];
429
+ tensor<fp32, [2, 6, 2048, 128]> x = tile(reps = var_383, x = x_9)[name = string("x")];
430
+ string q_dtype_0 = const()[name = string("q_dtype_0"), val = string("fp32")];
431
+ bool var_418_transpose_x_1 = const()[name = string("op_418_transpose_x_1"), val = bool(false)];
432
+ bool var_418_transpose_y_1 = const()[name = string("op_418_transpose_y_1"), val = bool(true)];
433
+ tensor<fp32, [1, 12, 64, 128]> q = cast(dtype = q_dtype_0, x = query_states_3)[name = string("cast_19")];
434
+ tensor<fp32, [1, 12, 64, 2048]> var_418 = matmul(transpose_x = var_418_transpose_x_1, transpose_y = var_418_transpose_y_1, x = q, y = key_states)[name = string("op_418")];
435
+ fp32 var_419 = const()[name = string("op_419"), val = fp32(0x1.6a09e6p-4)];
436
+ tensor<fp32, [1, 12, 64, 2048]> attn_logits_1 = mul(x = var_418, y = var_419)[name = string("attn_logits_1")];
437
+ tensor<fp32, [1, 1, 64, 2048]> cast_1 = cast(dtype = cast_1_dtype_0, x = causal_mask)[name = string("cast_30")];
438
+ tensor<fp32, [1, 12, 64, 2048]> attn_logits = add(x = attn_logits_1, y = cast_1)[name = string("attn_logits")];
439
+ int32 var_446 = const()[name = string("op_446"), val = int32(-1)];
440
+ tensor<fp32, [1, 12, 64, 2048]> var_448 = softmax(axis = var_446, x = attn_logits)[name = string("op_448")];
441
+ string attn_weights_dtype_0 = const()[name = string("attn_weights_dtype_0"), val = string("fp16")];
442
+ string var_458_dtype_0 = const()[name = string("op_458_dtype_0"), val = string("fp32")];
443
+ tensor<int32, [3]> concat_12 = const()[name = string("concat_12"), val = tensor<int32, [3]>([12, 64, 2048])];
444
+ tensor<fp16, [1, 12, 64, 2048]> attn_weights = cast(dtype = attn_weights_dtype_0, x = var_448)[name = string("cast_18")];
445
+ tensor<fp32, [1, 12, 64, 2048]> var_458 = cast(dtype = var_458_dtype_0, x = attn_weights)[name = string("cast_17")];
446
+ tensor<fp32, [12, 64, 2048]> reshape_0 = reshape(shape = concat_12, x = var_458)[name = string("reshape_0")];
447
+ tensor<int32, [3]> concat_13 = const()[name = string("concat_13"), val = tensor<int32, [3]>([12, 2048, 128])];
448
+ tensor<fp32, [12, 2048, 128]> reshape_1 = reshape(shape = concat_13, x = x)[name = string("reshape_1")];
449
+ bool matmul_0_transpose_x_0 = const()[name = string("matmul_0_transpose_x_0"), val = bool(false)];
450
+ bool matmul_0_transpose_y_0 = const()[name = string("matmul_0_transpose_y_0"), val = bool(false)];
451
+ tensor<fp32, [12, 64, 128]> matmul_0 = matmul(transpose_x = matmul_0_transpose_x_0, transpose_y = matmul_0_transpose_y_0, x = reshape_0, y = reshape_1)[name = string("matmul_0")];
452
+ tensor<int32, [4]> concat_17 = const()[name = string("concat_17"), val = tensor<int32, [4]>([1, 12, 64, 128])];
453
+ tensor<fp32, [1, 12, 64, 128]> reshape_2 = reshape(shape = concat_17, x = matmul_0)[name = string("reshape_2")];
454
+ string attn_output_1_dtype_0 = const()[name = string("attn_output_1_dtype_0"), val = string("fp16")];
455
+ tensor<int32, [4]> var_475_perm_0 = const()[name = string("op_475_perm_0"), val = tensor<int32, [4]>([0, 2, 1, 3])];
456
+ tensor<int32, [3]> var_494 = const()[name = string("op_494"), val = tensor<int32, [3]>([1, 64, 1536])];
457
+ tensor<fp16, [1, 12, 64, 128]> attn_output_1 = cast(dtype = attn_output_1_dtype_0, x = reshape_2)[name = string("cast_16")];
458
+ tensor<fp16, [1, 64, 12, 128]> var_475 = transpose(perm = var_475_perm_0, x = attn_output_1)[name = string("transpose_4")];
459
+ tensor<fp16, [1, 64, 1536]> attn_output_5 = reshape(shape = var_494, x = var_475)[name = string("attn_output_5")];
460
+ tensor<int32, [3]> var_499 = const()[name = string("op_499"), val = tensor<int32, [3]>([0, 2, 1])];
461
+ tensor<fp16, [1536, 1536, 1]> squeeze_0 = const()[name = string("squeeze_0"), val = tensor<fp16, [1536, 1536, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(10496640)))];
462
+ string var_515_pad_type_0 = const()[name = string("op_515_pad_type_0"), val = string("valid")];
463
+ int32 var_515_groups_0 = const()[name = string("op_515_groups_0"), val = int32(1)];
464
+ tensor<int32, [1]> var_515_strides_0 = const()[name = string("op_515_strides_0"), val = tensor<int32, [1]>([1])];
465
+ tensor<int32, [2]> var_515_pad_0 = const()[name = string("op_515_pad_0"), val = tensor<int32, [2]>([0, 0])];
466
+ tensor<int32, [1]> var_515_dilations_0 = const()[name = string("op_515_dilations_0"), val = tensor<int32, [1]>([1])];
467
+ tensor<fp16, [1, 1536, 64]> var_500 = transpose(perm = var_499, x = attn_output_5)[name = string("transpose_3")];
468
+ tensor<fp16, [1, 1536, 64]> var_515 = conv(dilations = var_515_dilations_0, groups = var_515_groups_0, pad = var_515_pad_0, pad_type = var_515_pad_type_0, strides = var_515_strides_0, weight = squeeze_0, x = var_500)[name = string("op_515")];
469
+ tensor<int32, [3]> var_519 = const()[name = string("op_519"), val = tensor<int32, [3]>([0, 2, 1])];
470
+ string attn_out_promoted_dtype_0 = const()[name = string("attn_out_promoted_dtype_0"), val = string("fp32")];
471
+ tensor<fp16, [1, 64, 1536]> attn_out = transpose(perm = var_519, x = var_515)[name = string("transpose_2")];
472
+ tensor<fp32, [1, 64, 1536]> attn_out_promoted = cast(dtype = attn_out_promoted_dtype_0, x = attn_out)[name = string("cast_15")];
473
+ tensor<fp32, [1, 64, 1536]> output_hidden_states_type_fp32 = add(x = cast_0, y = attn_out_promoted)[name = string("op_522")];
474
+ string cast_13_dtype_0 = const()[name = string("cast_13_dtype_0"), val = string("fp16")];
475
+ tensor<fp16, [1, 64, 1536]> output_hidden_states = cast(dtype = cast_13_dtype_0, x = output_hidden_states_type_fp32)[name = string("cast_14")];
476
+ } -> (output_hidden_states);
477
+ }
qwen25_FFN_PF_lut6_chunk_01of04.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d314de0a6d18482f94083f7823f2f18e20c4235d3ab352572e023e1bd3bf066b
3
+ size 15215296
qwen25_FFN_PF_lut6_chunk_02of04.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a14f122173665390a88e43c7657f13ae0fdb992c8458f5bc2829e1d4b8f6e09d
3
+ size 243
qwen25_FFN_PF_lut6_chunk_02of04.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1aa2254d0b7cb3cdc9bcf1ee539fed260d554dc0563f3f650138d581dd7c2f59
3
+ size 542
qwen25_FFN_PF_lut6_chunk_02of04.mlmodelc/metadata.json ADDED
@@ -0,0 +1,304 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "storagePrecision" : "Mixed (Float16, Palettized (12 bits), Palettized (15 bits), Palettized (18 bits), UInt6)",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float16",
10
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 1, 1536]",
13
+ "name" : "output_hidden_states",
14
+ "type" : "MultiArray"
15
+ }
16
+ ],
17
+ "modelParameters" : [
18
+
19
+ ],
20
+ "specificationVersion" : 9,
21
+ "functions" : [
22
+ {
23
+ "inputSchema" : [
24
+ {
25
+ "hasShapeFlexibility" : "0",
26
+ "isOptional" : "0",
27
+ "dataType" : "Float16",
28
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
29
+ "shortDescription" : "",
30
+ "shape" : "[1, 1, 1536]",
31
+ "name" : "hidden_states",
32
+ "type" : "MultiArray"
33
+ },
34
+ {
35
+ "hasShapeFlexibility" : "0",
36
+ "isOptional" : "0",
37
+ "dataType" : "Int32",
38
+ "formattedType" : "MultiArray (Int32 1)",
39
+ "shortDescription" : "",
40
+ "shape" : "[1]",
41
+ "name" : "position_ids",
42
+ "type" : "MultiArray"
43
+ },
44
+ {
45
+ "hasShapeFlexibility" : "0",
46
+ "isOptional" : "0",
47
+ "dataType" : "Float16",
48
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1 × 2048)",
49
+ "shortDescription" : "",
50
+ "shape" : "[1, 1, 1, 2048]",
51
+ "name" : "causal_mask",
52
+ "type" : "MultiArray"
53
+ },
54
+ {
55
+ "hasShapeFlexibility" : "0",
56
+ "isOptional" : "0",
57
+ "dataType" : "Int32",
58
+ "formattedType" : "MultiArray (Int32 1)",
59
+ "shortDescription" : "",
60
+ "shape" : "[1]",
61
+ "name" : "current_pos",
62
+ "type" : "MultiArray"
63
+ }
64
+ ],
65
+ "computePrecision" : "Mixed (Float16, Int32, UInt16)",
66
+ "storagePrecision" : "Mixed (Float16, Palettized (12 bits), Palettized (15 bits), Palettized (18 bits), UInt6)",
67
+ "stateSchema" : [
68
+ {
69
+ "dataType" : "Float16",
70
+ "isOptional" : "0",
71
+ "formattedType" : "State (Float16 56 × 2 × 2048 × 128)",
72
+ "shortDescription" : "",
73
+ "shape" : "[56, 2, 2048, 128]",
74
+ "name" : "model_model_kv_cache_0",
75
+ "type" : "State"
76
+ }
77
+ ],
78
+ "outputSchema" : [
79
+ {
80
+ "hasShapeFlexibility" : "0",
81
+ "isOptional" : "0",
82
+ "dataType" : "Float16",
83
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
84
+ "shortDescription" : "",
85
+ "shape" : "[1, 1, 1536]",
86
+ "name" : "output_hidden_states",
87
+ "type" : "MultiArray"
88
+ }
89
+ ],
90
+ "name" : "infer",
91
+ "mlProgramOperationTypeHistogram" : {
92
+ "Ios18.expandDims" : 37,
93
+ "Ios18.softmax" : 9,
94
+ "Ios18.mul" : 111,
95
+ "Ios18.matmul" : 18,
96
+ "Identity" : 1,
97
+ "Ios18.readState" : 19,
98
+ "Tile" : 18,
99
+ "Ios18.gather" : 2,
100
+ "Ios18.add" : 47,
101
+ "Ios18.layerNorm" : 19,
102
+ "Ios18.sliceUpdate" : 18,
103
+ "Ios18.reshape" : 56,
104
+ "Ios18.writeState" : 18,
105
+ "Ios18.constexprLutToDense" : 66,
106
+ "Ios18.conv" : 66,
107
+ "Ios18.concat" : 73,
108
+ "Ios18.silu" : 10,
109
+ "Ios18.cast" : 1,
110
+ "Ios18.transpose" : 56,
111
+ "Ios18.sliceByIndex" : 73,
112
+ "Ios18.squeeze" : 28
113
+ }
114
+ },
115
+ {
116
+ "inputSchema" : [
117
+ {
118
+ "hasShapeFlexibility" : "0",
119
+ "isOptional" : "0",
120
+ "dataType" : "Float16",
121
+ "formattedType" : "MultiArray (Float16 1 × 64 × 1536)",
122
+ "shortDescription" : "",
123
+ "shape" : "[1, 64, 1536]",
124
+ "name" : "hidden_states",
125
+ "type" : "MultiArray"
126
+ },
127
+ {
128
+ "hasShapeFlexibility" : "0",
129
+ "isOptional" : "0",
130
+ "dataType" : "Int32",
131
+ "formattedType" : "MultiArray (Int32 64)",
132
+ "shortDescription" : "",
133
+ "shape" : "[64]",
134
+ "name" : "position_ids",
135
+ "type" : "MultiArray"
136
+ },
137
+ {
138
+ "hasShapeFlexibility" : "0",
139
+ "isOptional" : "0",
140
+ "dataType" : "Float16",
141
+ "formattedType" : "MultiArray (Float16 1 × 1 × 64 × 2048)",
142
+ "shortDescription" : "",
143
+ "shape" : "[1, 1, 64, 2048]",
144
+ "name" : "causal_mask",
145
+ "type" : "MultiArray"
146
+ },
147
+ {
148
+ "hasShapeFlexibility" : "0",
149
+ "isOptional" : "0",
150
+ "dataType" : "Int32",
151
+ "formattedType" : "MultiArray (Int32 1)",
152
+ "shortDescription" : "",
153
+ "shape" : "[1]",
154
+ "name" : "current_pos",
155
+ "type" : "MultiArray"
156
+ }
157
+ ],
158
+ "computePrecision" : "Mixed (Float16, Int32, UInt16)",
159
+ "storagePrecision" : "Mixed (Float16, Palettized (12 bits), Palettized (15 bits), Palettized (18 bits), UInt6)",
160
+ "stateSchema" : [
161
+ {
162
+ "dataType" : "Float16",
163
+ "isOptional" : "0",
164
+ "formattedType" : "State (Float16 56 × 2 × 2048 × 128)",
165
+ "shortDescription" : "",
166
+ "shape" : "[56, 2, 2048, 128]",
167
+ "name" : "model_model_kv_cache_0",
168
+ "type" : "State"
169
+ }
170
+ ],
171
+ "outputSchema" : [
172
+ {
173
+ "hasShapeFlexibility" : "0",
174
+ "isOptional" : "0",
175
+ "dataType" : "Float16",
176
+ "formattedType" : "MultiArray (Float16 1 × 64 × 1536)",
177
+ "shortDescription" : "",
178
+ "shape" : "[1, 64, 1536]",
179
+ "name" : "output_hidden_states",
180
+ "type" : "MultiArray"
181
+ }
182
+ ],
183
+ "name" : "prefill",
184
+ "mlProgramOperationTypeHistogram" : {
185
+ "Ios18.expandDims" : 37,
186
+ "Ios18.softmax" : 9,
187
+ "Ios18.mul" : 111,
188
+ "Ios18.matmul" : 18,
189
+ "Ios18.readState" : 19,
190
+ "Tile" : 18,
191
+ "Ios18.gather" : 2,
192
+ "Ios18.add" : 47,
193
+ "Ios18.layerNorm" : 19,
194
+ "Ios18.sliceUpdate" : 18,
195
+ "Ios18.reshape" : 74,
196
+ "Ios18.writeState" : 18,
197
+ "Ios18.constexprLutToDense" : 66,
198
+ "Ios18.conv" : 66,
199
+ "Ios18.concat" : 73,
200
+ "Ios18.silu" : 10,
201
+ "Ios18.cast" : 1,
202
+ "Ios18.transpose" : 85,
203
+ "Ios18.sliceByIndex" : 73,
204
+ "Ios18.squeeze" : 28
205
+ }
206
+ }
207
+ ],
208
+ "mlProgramOperationTypeHistogram" : {
209
+ "Ios18.expandDims" : 37,
210
+ "Ios18.softmax" : 9,
211
+ "Ios18.mul" : 111,
212
+ "Ios18.matmul" : 18,
213
+ "Identity" : 1,
214
+ "Ios18.readState" : 19,
215
+ "Tile" : 18,
216
+ "Ios18.gather" : 2,
217
+ "Ios18.add" : 47,
218
+ "Ios18.layerNorm" : 19,
219
+ "Ios18.sliceUpdate" : 18,
220
+ "Ios18.reshape" : 56,
221
+ "Ios18.writeState" : 18,
222
+ "Ios18.constexprLutToDense" : 66,
223
+ "Ios18.conv" : 66,
224
+ "Ios18.concat" : 73,
225
+ "Ios18.silu" : 10,
226
+ "Ios18.cast" : 1,
227
+ "Ios18.transpose" : 56,
228
+ "Ios18.sliceByIndex" : 73,
229
+ "Ios18.squeeze" : 28
230
+ },
231
+ "isUpdatable" : "0",
232
+ "stateSchema" : [
233
+ {
234
+ "dataType" : "Float16",
235
+ "isOptional" : "0",
236
+ "formattedType" : "State (Float16 56 × 2 × 2048 × 128)",
237
+ "shortDescription" : "",
238
+ "shape" : "[56, 2, 2048, 128]",
239
+ "name" : "model_model_kv_cache_0",
240
+ "type" : "State"
241
+ }
242
+ ],
243
+ "availability" : {
244
+ "macOS" : "15.0",
245
+ "tvOS" : "18.0",
246
+ "visionOS" : "2.0",
247
+ "watchOS" : "11.0",
248
+ "iOS" : "18.0",
249
+ "macCatalyst" : "18.0"
250
+ },
251
+ "computePrecision" : "Mixed (Float16, Int32, UInt16)",
252
+ "modelType" : {
253
+ "name" : "MLModelType_mlProgram"
254
+ },
255
+ "inputSchema" : [
256
+ {
257
+ "hasShapeFlexibility" : "0",
258
+ "isOptional" : "0",
259
+ "dataType" : "Float16",
260
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
261
+ "shortDescription" : "",
262
+ "shape" : "[1, 1, 1536]",
263
+ "name" : "hidden_states",
264
+ "type" : "MultiArray"
265
+ },
266
+ {
267
+ "hasShapeFlexibility" : "0",
268
+ "isOptional" : "0",
269
+ "dataType" : "Int32",
270
+ "formattedType" : "MultiArray (Int32 1)",
271
+ "shortDescription" : "",
272
+ "shape" : "[1]",
273
+ "name" : "position_ids",
274
+ "type" : "MultiArray"
275
+ },
276
+ {
277
+ "hasShapeFlexibility" : "0",
278
+ "isOptional" : "0",
279
+ "dataType" : "Float16",
280
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1 × 2048)",
281
+ "shortDescription" : "",
282
+ "shape" : "[1, 1, 1, 2048]",
283
+ "name" : "causal_mask",
284
+ "type" : "MultiArray"
285
+ },
286
+ {
287
+ "hasShapeFlexibility" : "0",
288
+ "isOptional" : "0",
289
+ "dataType" : "Int32",
290
+ "formattedType" : "MultiArray (Int32 1)",
291
+ "shortDescription" : "",
292
+ "shape" : "[1]",
293
+ "name" : "current_pos",
294
+ "type" : "MultiArray"
295
+ }
296
+ ],
297
+ "defaultFunctionName" : "infer",
298
+ "generatedClassName" : "qwen25_FFN_PF_lut6_chunk_02of04",
299
+ "userDefinedMetadata" : {
300
+
301
+ },
302
+ "method" : "predict"
303
+ }
304
+ ]
qwen25_FFN_PF_lut6_chunk_02of04.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
qwen25_FFN_PF_lut6_chunk_02of04.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a06512dcf66a966f683d674d36fea9915f3e09e74b336a6c057e58fb416f2790
3
+ size 356278592
qwen25_FFN_PF_lut6_chunk_03of04.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c4d4436f03fb7a5f92fdb0bfaf8b347ac9fa2cf858630616487c00dae6397d0b
3
+ size 243
qwen25_FFN_PF_lut6_chunk_03of04.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1aa2254d0b7cb3cdc9bcf1ee539fed260d554dc0563f3f650138d581dd7c2f59
3
+ size 542
qwen25_FFN_PF_lut6_chunk_03of04.mlmodelc/metadata.json ADDED
@@ -0,0 +1,310 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "storagePrecision" : "Mixed (Float16, Palettized (12 bits), Palettized (15 bits), Palettized (18 bits), UInt6)",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float16",
10
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 1, 1536]",
13
+ "name" : "output_hidden_states",
14
+ "type" : "MultiArray"
15
+ }
16
+ ],
17
+ "modelParameters" : [
18
+
19
+ ],
20
+ "specificationVersion" : 9,
21
+ "functions" : [
22
+ {
23
+ "inputSchema" : [
24
+ {
25
+ "hasShapeFlexibility" : "0",
26
+ "isOptional" : "0",
27
+ "dataType" : "Float16",
28
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
29
+ "shortDescription" : "",
30
+ "shape" : "[1, 1, 1536]",
31
+ "name" : "hidden_states",
32
+ "type" : "MultiArray"
33
+ },
34
+ {
35
+ "hasShapeFlexibility" : "0",
36
+ "isOptional" : "0",
37
+ "dataType" : "Int32",
38
+ "formattedType" : "MultiArray (Int32 1)",
39
+ "shortDescription" : "",
40
+ "shape" : "[1]",
41
+ "name" : "position_ids",
42
+ "type" : "MultiArray"
43
+ },
44
+ {
45
+ "hasShapeFlexibility" : "0",
46
+ "isOptional" : "0",
47
+ "dataType" : "Float16",
48
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1 × 2048)",
49
+ "shortDescription" : "",
50
+ "shape" : "[1, 1, 1, 2048]",
51
+ "name" : "causal_mask",
52
+ "type" : "MultiArray"
53
+ },
54
+ {
55
+ "hasShapeFlexibility" : "0",
56
+ "isOptional" : "0",
57
+ "dataType" : "Int32",
58
+ "formattedType" : "MultiArray (Int32 1)",
59
+ "shortDescription" : "",
60
+ "shape" : "[1]",
61
+ "name" : "current_pos",
62
+ "type" : "MultiArray"
63
+ }
64
+ ],
65
+ "computePrecision" : "Mixed (Float16, Int16, Int32, UInt16)",
66
+ "storagePrecision" : "Mixed (Float16, Palettized (12 bits), Palettized (15 bits), Palettized (18 bits), UInt6)",
67
+ "stateSchema" : [
68
+ {
69
+ "dataType" : "Float16",
70
+ "isOptional" : "0",
71
+ "formattedType" : "State (Float16 56 × 2 × 2048 × 128)",
72
+ "shortDescription" : "",
73
+ "shape" : "[56, 2, 2048, 128]",
74
+ "name" : "model_model_kv_cache_0",
75
+ "type" : "State"
76
+ }
77
+ ],
78
+ "outputSchema" : [
79
+ {
80
+ "hasShapeFlexibility" : "0",
81
+ "isOptional" : "0",
82
+ "dataType" : "Float16",
83
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
84
+ "shortDescription" : "",
85
+ "shape" : "[1, 1, 1536]",
86
+ "name" : "output_hidden_states",
87
+ "type" : "MultiArray"
88
+ }
89
+ ],
90
+ "name" : "infer",
91
+ "mlProgramOperationTypeHistogram" : {
92
+ "Ios18.expandDims" : 36,
93
+ "Ios18.mul" : 108,
94
+ "Ios18.softmax" : 9,
95
+ "Ios18.matmul" : 18,
96
+ "Identity" : 1,
97
+ "Ios18.greaterEqual" : 2,
98
+ "Select" : 2,
99
+ "Ios18.readState" : 19,
100
+ "Tile" : 18,
101
+ "Ios18.gather" : 2,
102
+ "Ios18.add" : 48,
103
+ "Ios18.layerNorm" : 18,
104
+ "Ios18.sliceUpdate" : 18,
105
+ "Ios18.writeState" : 18,
106
+ "Ios18.reshape" : 56,
107
+ "Ios18.constexprLutToDense" : 63,
108
+ "Ios18.conv" : 63,
109
+ "Ios18.concat" : 72,
110
+ "Ios18.transpose" : 54,
111
+ "Ios18.cast" : 5,
112
+ "Ios18.silu" : 9,
113
+ "Ios18.sliceByIndex" : 72,
114
+ "Ios18.squeeze" : 27
115
+ }
116
+ },
117
+ {
118
+ "inputSchema" : [
119
+ {
120
+ "hasShapeFlexibility" : "0",
121
+ "isOptional" : "0",
122
+ "dataType" : "Float16",
123
+ "formattedType" : "MultiArray (Float16 1 × 64 × 1536)",
124
+ "shortDescription" : "",
125
+ "shape" : "[1, 64, 1536]",
126
+ "name" : "hidden_states",
127
+ "type" : "MultiArray"
128
+ },
129
+ {
130
+ "hasShapeFlexibility" : "0",
131
+ "isOptional" : "0",
132
+ "dataType" : "Int32",
133
+ "formattedType" : "MultiArray (Int32 64)",
134
+ "shortDescription" : "",
135
+ "shape" : "[64]",
136
+ "name" : "position_ids",
137
+ "type" : "MultiArray"
138
+ },
139
+ {
140
+ "hasShapeFlexibility" : "0",
141
+ "isOptional" : "0",
142
+ "dataType" : "Float16",
143
+ "formattedType" : "MultiArray (Float16 1 × 1 × 64 × 2048)",
144
+ "shortDescription" : "",
145
+ "shape" : "[1, 1, 64, 2048]",
146
+ "name" : "causal_mask",
147
+ "type" : "MultiArray"
148
+ },
149
+ {
150
+ "hasShapeFlexibility" : "0",
151
+ "isOptional" : "0",
152
+ "dataType" : "Int32",
153
+ "formattedType" : "MultiArray (Int32 1)",
154
+ "shortDescription" : "",
155
+ "shape" : "[1]",
156
+ "name" : "current_pos",
157
+ "type" : "MultiArray"
158
+ }
159
+ ],
160
+ "computePrecision" : "Mixed (Float16, Int16, Int32, UInt16)",
161
+ "storagePrecision" : "Mixed (Float16, Palettized (12 bits), Palettized (15 bits), Palettized (18 bits), UInt6)",
162
+ "stateSchema" : [
163
+ {
164
+ "dataType" : "Float16",
165
+ "isOptional" : "0",
166
+ "formattedType" : "State (Float16 56 × 2 × 2048 × 128)",
167
+ "shortDescription" : "",
168
+ "shape" : "[56, 2, 2048, 128]",
169
+ "name" : "model_model_kv_cache_0",
170
+ "type" : "State"
171
+ }
172
+ ],
173
+ "outputSchema" : [
174
+ {
175
+ "hasShapeFlexibility" : "0",
176
+ "isOptional" : "0",
177
+ "dataType" : "Float16",
178
+ "formattedType" : "MultiArray (Float16 1 × 64 × 1536)",
179
+ "shortDescription" : "",
180
+ "shape" : "[1, 64, 1536]",
181
+ "name" : "output_hidden_states",
182
+ "type" : "MultiArray"
183
+ }
184
+ ],
185
+ "name" : "prefill",
186
+ "mlProgramOperationTypeHistogram" : {
187
+ "Ios18.expandDims" : 36,
188
+ "Ios18.mul" : 108,
189
+ "Ios18.softmax" : 9,
190
+ "Ios18.matmul" : 18,
191
+ "Ios18.greaterEqual" : 2,
192
+ "Select" : 2,
193
+ "Ios18.readState" : 19,
194
+ "Tile" : 18,
195
+ "Ios18.gather" : 2,
196
+ "Ios18.add" : 48,
197
+ "Ios18.layerNorm" : 18,
198
+ "Ios18.sliceUpdate" : 18,
199
+ "Ios18.writeState" : 18,
200
+ "Ios18.reshape" : 74,
201
+ "Ios18.constexprLutToDense" : 63,
202
+ "Ios18.conv" : 63,
203
+ "Ios18.concat" : 72,
204
+ "Ios18.transpose" : 83,
205
+ "Ios18.cast" : 5,
206
+ "Ios18.silu" : 9,
207
+ "Ios18.sliceByIndex" : 72,
208
+ "Ios18.squeeze" : 27
209
+ }
210
+ }
211
+ ],
212
+ "mlProgramOperationTypeHistogram" : {
213
+ "Ios18.expandDims" : 36,
214
+ "Ios18.mul" : 108,
215
+ "Ios18.softmax" : 9,
216
+ "Ios18.matmul" : 18,
217
+ "Identity" : 1,
218
+ "Ios18.greaterEqual" : 2,
219
+ "Select" : 2,
220
+ "Ios18.readState" : 19,
221
+ "Tile" : 18,
222
+ "Ios18.gather" : 2,
223
+ "Ios18.add" : 48,
224
+ "Ios18.layerNorm" : 18,
225
+ "Ios18.sliceUpdate" : 18,
226
+ "Ios18.writeState" : 18,
227
+ "Ios18.reshape" : 56,
228
+ "Ios18.constexprLutToDense" : 63,
229
+ "Ios18.conv" : 63,
230
+ "Ios18.concat" : 72,
231
+ "Ios18.transpose" : 54,
232
+ "Ios18.cast" : 5,
233
+ "Ios18.silu" : 9,
234
+ "Ios18.sliceByIndex" : 72,
235
+ "Ios18.squeeze" : 27
236
+ },
237
+ "isUpdatable" : "0",
238
+ "stateSchema" : [
239
+ {
240
+ "dataType" : "Float16",
241
+ "isOptional" : "0",
242
+ "formattedType" : "State (Float16 56 × 2 × 2048 × 128)",
243
+ "shortDescription" : "",
244
+ "shape" : "[56, 2, 2048, 128]",
245
+ "name" : "model_model_kv_cache_0",
246
+ "type" : "State"
247
+ }
248
+ ],
249
+ "availability" : {
250
+ "macOS" : "15.0",
251
+ "tvOS" : "18.0",
252
+ "visionOS" : "2.0",
253
+ "watchOS" : "11.0",
254
+ "iOS" : "18.0",
255
+ "macCatalyst" : "18.0"
256
+ },
257
+ "computePrecision" : "Mixed (Float16, Int16, Int32, UInt16)",
258
+ "modelType" : {
259
+ "name" : "MLModelType_mlProgram"
260
+ },
261
+ "inputSchema" : [
262
+ {
263
+ "hasShapeFlexibility" : "0",
264
+ "isOptional" : "0",
265
+ "dataType" : "Float16",
266
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
267
+ "shortDescription" : "",
268
+ "shape" : "[1, 1, 1536]",
269
+ "name" : "hidden_states",
270
+ "type" : "MultiArray"
271
+ },
272
+ {
273
+ "hasShapeFlexibility" : "0",
274
+ "isOptional" : "0",
275
+ "dataType" : "Int32",
276
+ "formattedType" : "MultiArray (Int32 1)",
277
+ "shortDescription" : "",
278
+ "shape" : "[1]",
279
+ "name" : "position_ids",
280
+ "type" : "MultiArray"
281
+ },
282
+ {
283
+ "hasShapeFlexibility" : "0",
284
+ "isOptional" : "0",
285
+ "dataType" : "Float16",
286
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1 × 2048)",
287
+ "shortDescription" : "",
288
+ "shape" : "[1, 1, 1, 2048]",
289
+ "name" : "causal_mask",
290
+ "type" : "MultiArray"
291
+ },
292
+ {
293
+ "hasShapeFlexibility" : "0",
294
+ "isOptional" : "0",
295
+ "dataType" : "Int32",
296
+ "formattedType" : "MultiArray (Int32 1)",
297
+ "shortDescription" : "",
298
+ "shape" : "[1]",
299
+ "name" : "current_pos",
300
+ "type" : "MultiArray"
301
+ }
302
+ ],
303
+ "defaultFunctionName" : "infer",
304
+ "generatedClassName" : "qwen25_FFN_PF_lut6_chunk_03of04",
305
+ "userDefinedMetadata" : {
306
+
307
+ },
308
+ "method" : "predict"
309
+ }
310
+ ]
qwen25_FFN_PF_lut6_chunk_03of04.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
qwen25_FFN_PF_lut6_chunk_03of04.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a8f76651ba7e9a1fc7a573f9b1563d1487ceaefdb9910abb19338d50cdaa27d7
3
+ size 324686720
qwen25_FFN_PF_lut6_chunk_04of04.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:104fa0152c2e4c23fafa8288d7fe075d8dc4913b12ce06c2a5a15e9d0bb6d006
3
+ size 243
qwen25_FFN_PF_lut6_chunk_04of04.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:825ce4430834eab994271dcd253984969881cc4f6123795ede120cd626019557
3
+ size 542
qwen25_FFN_PF_lut6_chunk_04of04.mlmodelc/metadata.json ADDED
@@ -0,0 +1,310 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "storagePrecision" : "Mixed (Float16, Palettized (12 bits), Palettized (15 bits), Palettized (18 bits), UInt6)",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float16",
10
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 1, 1536]",
13
+ "name" : "output_hidden_states",
14
+ "type" : "MultiArray"
15
+ }
16
+ ],
17
+ "modelParameters" : [
18
+
19
+ ],
20
+ "specificationVersion" : 9,
21
+ "functions" : [
22
+ {
23
+ "inputSchema" : [
24
+ {
25
+ "hasShapeFlexibility" : "0",
26
+ "isOptional" : "0",
27
+ "dataType" : "Float16",
28
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
29
+ "shortDescription" : "",
30
+ "shape" : "[1, 1, 1536]",
31
+ "name" : "hidden_states",
32
+ "type" : "MultiArray"
33
+ },
34
+ {
35
+ "hasShapeFlexibility" : "0",
36
+ "isOptional" : "0",
37
+ "dataType" : "Int32",
38
+ "formattedType" : "MultiArray (Int32 1)",
39
+ "shortDescription" : "",
40
+ "shape" : "[1]",
41
+ "name" : "position_ids",
42
+ "type" : "MultiArray"
43
+ },
44
+ {
45
+ "hasShapeFlexibility" : "0",
46
+ "isOptional" : "0",
47
+ "dataType" : "Float16",
48
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1 × 2048)",
49
+ "shortDescription" : "",
50
+ "shape" : "[1, 1, 1, 2048]",
51
+ "name" : "causal_mask",
52
+ "type" : "MultiArray"
53
+ },
54
+ {
55
+ "hasShapeFlexibility" : "0",
56
+ "isOptional" : "0",
57
+ "dataType" : "Int32",
58
+ "formattedType" : "MultiArray (Int32 1)",
59
+ "shortDescription" : "",
60
+ "shape" : "[1]",
61
+ "name" : "current_pos",
62
+ "type" : "MultiArray"
63
+ }
64
+ ],
65
+ "computePrecision" : "Mixed (Float16, Int16, Int32, UInt16)",
66
+ "storagePrecision" : "Mixed (Float16, Palettized (12 bits), Palettized (15 bits), Palettized (18 bits), UInt6)",
67
+ "stateSchema" : [
68
+ {
69
+ "dataType" : "Float16",
70
+ "isOptional" : "0",
71
+ "formattedType" : "State (Float16 56 × 2 × 2048 × 128)",
72
+ "shortDescription" : "",
73
+ "shape" : "[56, 2, 2048, 128]",
74
+ "name" : "model_model_kv_cache_0",
75
+ "type" : "State"
76
+ }
77
+ ],
78
+ "outputSchema" : [
79
+ {
80
+ "hasShapeFlexibility" : "0",
81
+ "isOptional" : "0",
82
+ "dataType" : "Float16",
83
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
84
+ "shortDescription" : "",
85
+ "shape" : "[1, 1, 1536]",
86
+ "name" : "output_hidden_states",
87
+ "type" : "MultiArray"
88
+ }
89
+ ],
90
+ "name" : "infer",
91
+ "mlProgramOperationTypeHistogram" : {
92
+ "Ios18.expandDims" : 36,
93
+ "Ios18.mul" : 110,
94
+ "Ios18.softmax" : 9,
95
+ "Ios18.matmul" : 18,
96
+ "Identity" : 1,
97
+ "Ios18.greaterEqual" : 2,
98
+ "Select" : 2,
99
+ "Ios18.readState" : 19,
100
+ "Tile" : 18,
101
+ "Ios18.gather" : 2,
102
+ "Ios18.add" : 48,
103
+ "Ios18.layerNorm" : 19,
104
+ "Ios18.sliceUpdate" : 18,
105
+ "Ios18.writeState" : 18,
106
+ "Ios18.reshape" : 56,
107
+ "Ios18.constexprLutToDense" : 63,
108
+ "Ios18.conv" : 63,
109
+ "Ios18.concat" : 73,
110
+ "Ios18.transpose" : 54,
111
+ "Ios18.cast" : 5,
112
+ "Ios18.silu" : 9,
113
+ "Ios18.sliceByIndex" : 73,
114
+ "Ios18.squeeze" : 27
115
+ }
116
+ },
117
+ {
118
+ "inputSchema" : [
119
+ {
120
+ "hasShapeFlexibility" : "0",
121
+ "isOptional" : "0",
122
+ "dataType" : "Float16",
123
+ "formattedType" : "MultiArray (Float16 1 × 64 × 1536)",
124
+ "shortDescription" : "",
125
+ "shape" : "[1, 64, 1536]",
126
+ "name" : "hidden_states",
127
+ "type" : "MultiArray"
128
+ },
129
+ {
130
+ "hasShapeFlexibility" : "0",
131
+ "isOptional" : "0",
132
+ "dataType" : "Int32",
133
+ "formattedType" : "MultiArray (Int32 64)",
134
+ "shortDescription" : "",
135
+ "shape" : "[64]",
136
+ "name" : "position_ids",
137
+ "type" : "MultiArray"
138
+ },
139
+ {
140
+ "hasShapeFlexibility" : "0",
141
+ "isOptional" : "0",
142
+ "dataType" : "Float16",
143
+ "formattedType" : "MultiArray (Float16 1 × 1 × 64 × 2048)",
144
+ "shortDescription" : "",
145
+ "shape" : "[1, 1, 64, 2048]",
146
+ "name" : "causal_mask",
147
+ "type" : "MultiArray"
148
+ },
149
+ {
150
+ "hasShapeFlexibility" : "0",
151
+ "isOptional" : "0",
152
+ "dataType" : "Int32",
153
+ "formattedType" : "MultiArray (Int32 1)",
154
+ "shortDescription" : "",
155
+ "shape" : "[1]",
156
+ "name" : "current_pos",
157
+ "type" : "MultiArray"
158
+ }
159
+ ],
160
+ "computePrecision" : "Mixed (Float16, Int16, Int32, UInt16)",
161
+ "storagePrecision" : "Mixed (Float16, Palettized (12 bits), Palettized (15 bits), Palettized (18 bits), UInt6)",
162
+ "stateSchema" : [
163
+ {
164
+ "dataType" : "Float16",
165
+ "isOptional" : "0",
166
+ "formattedType" : "State (Float16 56 × 2 × 2048 × 128)",
167
+ "shortDescription" : "",
168
+ "shape" : "[56, 2, 2048, 128]",
169
+ "name" : "model_model_kv_cache_0",
170
+ "type" : "State"
171
+ }
172
+ ],
173
+ "outputSchema" : [
174
+ {
175
+ "hasShapeFlexibility" : "0",
176
+ "isOptional" : "0",
177
+ "dataType" : "Float16",
178
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
179
+ "shortDescription" : "",
180
+ "shape" : "[1, 1, 1536]",
181
+ "name" : "output_hidden_states",
182
+ "type" : "MultiArray"
183
+ }
184
+ ],
185
+ "name" : "prefill",
186
+ "mlProgramOperationTypeHistogram" : {
187
+ "Ios18.expandDims" : 36,
188
+ "Ios18.mul" : 108,
189
+ "Ios18.softmax" : 9,
190
+ "Ios18.matmul" : 18,
191
+ "Ios18.greaterEqual" : 2,
192
+ "Select" : 2,
193
+ "Ios18.readState" : 19,
194
+ "Tile" : 18,
195
+ "Ios18.gather" : 2,
196
+ "Ios18.add" : 48,
197
+ "Ios18.layerNorm" : 18,
198
+ "Ios18.sliceUpdate" : 18,
199
+ "Ios18.writeState" : 18,
200
+ "Ios18.reshape" : 74,
201
+ "Ios18.constexprLutToDense" : 63,
202
+ "Ios18.conv" : 63,
203
+ "Ios18.concat" : 72,
204
+ "Ios18.transpose" : 83,
205
+ "Ios18.cast" : 5,
206
+ "Ios18.silu" : 9,
207
+ "Ios18.sliceByIndex" : 73,
208
+ "Ios18.squeeze" : 27
209
+ }
210
+ }
211
+ ],
212
+ "mlProgramOperationTypeHistogram" : {
213
+ "Ios18.expandDims" : 36,
214
+ "Ios18.mul" : 110,
215
+ "Ios18.softmax" : 9,
216
+ "Ios18.matmul" : 18,
217
+ "Identity" : 1,
218
+ "Ios18.greaterEqual" : 2,
219
+ "Select" : 2,
220
+ "Ios18.readState" : 19,
221
+ "Tile" : 18,
222
+ "Ios18.gather" : 2,
223
+ "Ios18.add" : 48,
224
+ "Ios18.layerNorm" : 19,
225
+ "Ios18.sliceUpdate" : 18,
226
+ "Ios18.writeState" : 18,
227
+ "Ios18.reshape" : 56,
228
+ "Ios18.constexprLutToDense" : 63,
229
+ "Ios18.conv" : 63,
230
+ "Ios18.concat" : 73,
231
+ "Ios18.transpose" : 54,
232
+ "Ios18.cast" : 5,
233
+ "Ios18.silu" : 9,
234
+ "Ios18.sliceByIndex" : 73,
235
+ "Ios18.squeeze" : 27
236
+ },
237
+ "isUpdatable" : "0",
238
+ "stateSchema" : [
239
+ {
240
+ "dataType" : "Float16",
241
+ "isOptional" : "0",
242
+ "formattedType" : "State (Float16 56 × 2 × 2048 × 128)",
243
+ "shortDescription" : "",
244
+ "shape" : "[56, 2, 2048, 128]",
245
+ "name" : "model_model_kv_cache_0",
246
+ "type" : "State"
247
+ }
248
+ ],
249
+ "availability" : {
250
+ "macOS" : "15.0",
251
+ "tvOS" : "18.0",
252
+ "visionOS" : "2.0",
253
+ "watchOS" : "11.0",
254
+ "iOS" : "18.0",
255
+ "macCatalyst" : "18.0"
256
+ },
257
+ "computePrecision" : "Mixed (Float16, Int16, Int32, UInt16)",
258
+ "modelType" : {
259
+ "name" : "MLModelType_mlProgram"
260
+ },
261
+ "inputSchema" : [
262
+ {
263
+ "hasShapeFlexibility" : "0",
264
+ "isOptional" : "0",
265
+ "dataType" : "Float16",
266
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
267
+ "shortDescription" : "",
268
+ "shape" : "[1, 1, 1536]",
269
+ "name" : "hidden_states",
270
+ "type" : "MultiArray"
271
+ },
272
+ {
273
+ "hasShapeFlexibility" : "0",
274
+ "isOptional" : "0",
275
+ "dataType" : "Int32",
276
+ "formattedType" : "MultiArray (Int32 1)",
277
+ "shortDescription" : "",
278
+ "shape" : "[1]",
279
+ "name" : "position_ids",
280
+ "type" : "MultiArray"
281
+ },
282
+ {
283
+ "hasShapeFlexibility" : "0",
284
+ "isOptional" : "0",
285
+ "dataType" : "Float16",
286
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1 × 2048)",
287
+ "shortDescription" : "",
288
+ "shape" : "[1, 1, 1, 2048]",
289
+ "name" : "causal_mask",
290
+ "type" : "MultiArray"
291
+ },
292
+ {
293
+ "hasShapeFlexibility" : "0",
294
+ "isOptional" : "0",
295
+ "dataType" : "Int32",
296
+ "formattedType" : "MultiArray (Int32 1)",
297
+ "shortDescription" : "",
298
+ "shape" : "[1]",
299
+ "name" : "current_pos",
300
+ "type" : "MultiArray"
301
+ }
302
+ ],
303
+ "defaultFunctionName" : "infer",
304
+ "generatedClassName" : "qwen25_FFN_PF_lut6_chunk_04of04",
305
+ "userDefinedMetadata" : {
306
+
307
+ },
308
+ "method" : "predict"
309
+ }
310
+ ]
qwen25_FFN_PF_lut6_chunk_04of04.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
qwen25_FFN_PF_lut6_chunk_04of04.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1e40dc68aefefa40d76f49d6768845a1e6150e4e6842c503242f89f29402ea66
3
+ size 324689856
qwen25_embeddings.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2adb2e815f1acd83c04da15fd47dccb1abd586430f59930f9f86f6ba494e5c41
3
+ size 243
qwen25_embeddings.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5d123b29b77702fbcf07fc14b74612a9e77ed3c953ce2549f6b898907c84d248
3
+ size 560
qwen25_embeddings.mlmodelc/metadata.json ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "shortDescription" : "Anemll Model (Embeddings) converted to CoreML",
4
+ "metadataOutputVersion" : "3.0",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float16",
10
+ "formattedType" : "MultiArray (Float16)",
11
+ "shortDescription" : "",
12
+ "shape" : "[]",
13
+ "name" : "hidden_states",
14
+ "type" : "MultiArray"
15
+ }
16
+ ],
17
+ "version" : "0.1.1",
18
+ "modelParameters" : [
19
+
20
+ ],
21
+ "author" : "Converted with Anemll v0.1.1",
22
+ "specificationVersion" : 9,
23
+ "storagePrecision" : "Float16",
24
+ "mlProgramOperationTypeHistogram" : {
25
+ "Ios18.greaterEqual" : 1,
26
+ "Ios18.add" : 1,
27
+ "Select" : 1,
28
+ "Ios18.gather" : 1
29
+ },
30
+ "computePrecision" : "Mixed (Float16, Int32)",
31
+ "stateSchema" : [
32
+
33
+ ],
34
+ "isUpdatable" : "0",
35
+ "availability" : {
36
+ "macOS" : "15.0",
37
+ "tvOS" : "18.0",
38
+ "visionOS" : "2.0",
39
+ "watchOS" : "11.0",
40
+ "iOS" : "18.0",
41
+ "macCatalyst" : "18.0"
42
+ },
43
+ "modelType" : {
44
+ "name" : "MLModelType_mlProgram"
45
+ },
46
+ "inputSchema" : [
47
+ {
48
+ "shortDescription" : "",
49
+ "dataType" : "Int32",
50
+ "hasShapeFlexibility" : "1",
51
+ "isOptional" : "0",
52
+ "shapeFlexibility" : "1 × 1 | 1 × 64",
53
+ "formattedType" : "MultiArray (Int32 1 × 1)",
54
+ "type" : "MultiArray",
55
+ "shape" : "[1, 1]",
56
+ "name" : "input_ids",
57
+ "enumeratedShapes" : "[[1, 1], [1, 64]]"
58
+ }
59
+ ],
60
+ "userDefinedMetadata" : {
61
+ "com.anemll.context_length" : "2048",
62
+ "com.github.apple.coremltools.conversion_date" : "2026-02-09",
63
+ "com.github.apple.coremltools.source_dialect" : "TorchScript",
64
+ "com.github.apple.coremltools.source" : "torch==2.5.0",
65
+ "com.github.apple.coremltools.version" : "9.0",
66
+ "com.anemll.info" : "Converted with Anemll v0.1.1"
67
+ },
68
+ "generatedClassName" : "qwen25_embeddings",
69
+ "method" : "predict"
70
+ }
71
+ ]
qwen25_embeddings.mlmodelc/model.mil ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ program(1.3)
2
+ [buildInfo = dict<string, string>({{"coremlc-component-MIL", "3510.2.1"}, {"coremlc-version", "3500.32.1"}, {"coremltools-component-torch", "2.5.0"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "9.0"}})]
3
+ {
4
+ func main<ios18>(tensor<int32, [1, ?]> input_ids) [FlexibleShapeInformation = tuple<tuple<string, dict<string, tensor<int32, [?]>>>, tuple<string, dict<string, dict<string, tensor<int32, [?]>>>>>((("DefaultShapes", {{"input_ids", [1, 1]}}), ("EnumeratedShapes", {{"79ae981e", {{"input_ids", [1, 1]}}}, {"ed9b58c8", {{"input_ids", [1, 64]}}}})))] {
5
+ int32 hidden_states_batch_dims_0 = const()[name = string("hidden_states_batch_dims_0"), val = int32(0)];
6
+ bool hidden_states_validate_indices_0 = const()[name = string("hidden_states_validate_indices_0"), val = bool(false)];
7
+ tensor<fp16, [151936, 1536]> embed_tokens_weight_to_fp16 = const()[name = string("embed_tokens_weight_to_fp16"), val = tensor<fp16, [151936, 1536]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(64)))];
8
+ int32 greater_equal_0_y_0 = const()[name = string("greater_equal_0_y_0"), val = int32(0)];
9
+ tensor<bool, [1, ?]> greater_equal_0 = greater_equal(x = input_ids, y = greater_equal_0_y_0)[name = string("greater_equal_0")];
10
+ int32 slice_by_index_0 = const()[name = string("slice_by_index_0"), val = int32(151936)];
11
+ tensor<int32, [1, ?]> add_0 = add(x = input_ids, y = slice_by_index_0)[name = string("add_0")];
12
+ tensor<int32, [1, ?]> select_0 = select(a = input_ids, b = add_0, cond = greater_equal_0)[name = string("select_0")];
13
+ int32 hidden_states_cast_fp16_axis_0 = const()[name = string("hidden_states_cast_fp16_axis_0"), val = int32(0)];
14
+ tensor<fp16, [1, ?, 1536]> hidden_states = gather(axis = hidden_states_cast_fp16_axis_0, batch_dims = hidden_states_batch_dims_0, indices = select_0, validate_indices = hidden_states_validate_indices_0, x = embed_tokens_weight_to_fp16)[name = string("hidden_states_cast_fp16")];
15
+ } -> (hidden_states);
16
+ }
qwen25_embeddings.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:00bdf93723628bffe53590ce127d0d86d860126ac21b6f0fdd6125972e08c1b6
3
+ size 466747520
qwen25_lm_head_lut6.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6ef4207ad9c8ea6bcaccc71df07ccde81c1655d65be962d8b4eba7aba13b82af
3
+ size 243
qwen25_lm_head_lut6.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a93c407091446dd6ddeefe23d2be735003856f183f30a58a0bbd4b35872b7ff1
3
+ size 763
qwen25_lm_head_lut6.mlmodelc/metadata.json ADDED
@@ -0,0 +1,215 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "storagePrecision" : "Mixed (Float16, Palettized (18 bits), UInt6)",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float16",
10
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 1, 9496]",
13
+ "name" : "logits1",
14
+ "type" : "MultiArray"
15
+ },
16
+ {
17
+ "hasShapeFlexibility" : "0",
18
+ "isOptional" : "0",
19
+ "dataType" : "Float16",
20
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
21
+ "shortDescription" : "",
22
+ "shape" : "[1, 1, 9496]",
23
+ "name" : "logits2",
24
+ "type" : "MultiArray"
25
+ },
26
+ {
27
+ "hasShapeFlexibility" : "0",
28
+ "isOptional" : "0",
29
+ "dataType" : "Float16",
30
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
31
+ "shortDescription" : "",
32
+ "shape" : "[1, 1, 9496]",
33
+ "name" : "logits3",
34
+ "type" : "MultiArray"
35
+ },
36
+ {
37
+ "hasShapeFlexibility" : "0",
38
+ "isOptional" : "0",
39
+ "dataType" : "Float16",
40
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
41
+ "shortDescription" : "",
42
+ "shape" : "[1, 1, 9496]",
43
+ "name" : "logits4",
44
+ "type" : "MultiArray"
45
+ },
46
+ {
47
+ "hasShapeFlexibility" : "0",
48
+ "isOptional" : "0",
49
+ "dataType" : "Float16",
50
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
51
+ "shortDescription" : "",
52
+ "shape" : "[1, 1, 9496]",
53
+ "name" : "logits5",
54
+ "type" : "MultiArray"
55
+ },
56
+ {
57
+ "hasShapeFlexibility" : "0",
58
+ "isOptional" : "0",
59
+ "dataType" : "Float16",
60
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
61
+ "shortDescription" : "",
62
+ "shape" : "[1, 1, 9496]",
63
+ "name" : "logits6",
64
+ "type" : "MultiArray"
65
+ },
66
+ {
67
+ "hasShapeFlexibility" : "0",
68
+ "isOptional" : "0",
69
+ "dataType" : "Float16",
70
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
71
+ "shortDescription" : "",
72
+ "shape" : "[1, 1, 9496]",
73
+ "name" : "logits7",
74
+ "type" : "MultiArray"
75
+ },
76
+ {
77
+ "hasShapeFlexibility" : "0",
78
+ "isOptional" : "0",
79
+ "dataType" : "Float16",
80
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
81
+ "shortDescription" : "",
82
+ "shape" : "[1, 1, 9496]",
83
+ "name" : "logits8",
84
+ "type" : "MultiArray"
85
+ },
86
+ {
87
+ "hasShapeFlexibility" : "0",
88
+ "isOptional" : "0",
89
+ "dataType" : "Float16",
90
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
91
+ "shortDescription" : "",
92
+ "shape" : "[1, 1, 9496]",
93
+ "name" : "logits9",
94
+ "type" : "MultiArray"
95
+ },
96
+ {
97
+ "hasShapeFlexibility" : "0",
98
+ "isOptional" : "0",
99
+ "dataType" : "Float16",
100
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
101
+ "shortDescription" : "",
102
+ "shape" : "[1, 1, 9496]",
103
+ "name" : "logits10",
104
+ "type" : "MultiArray"
105
+ },
106
+ {
107
+ "hasShapeFlexibility" : "0",
108
+ "isOptional" : "0",
109
+ "dataType" : "Float16",
110
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
111
+ "shortDescription" : "",
112
+ "shape" : "[1, 1, 9496]",
113
+ "name" : "logits11",
114
+ "type" : "MultiArray"
115
+ },
116
+ {
117
+ "hasShapeFlexibility" : "0",
118
+ "isOptional" : "0",
119
+ "dataType" : "Float16",
120
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
121
+ "shortDescription" : "",
122
+ "shape" : "[1, 1, 9496]",
123
+ "name" : "logits12",
124
+ "type" : "MultiArray"
125
+ },
126
+ {
127
+ "hasShapeFlexibility" : "0",
128
+ "isOptional" : "0",
129
+ "dataType" : "Float16",
130
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
131
+ "shortDescription" : "",
132
+ "shape" : "[1, 1, 9496]",
133
+ "name" : "logits13",
134
+ "type" : "MultiArray"
135
+ },
136
+ {
137
+ "hasShapeFlexibility" : "0",
138
+ "isOptional" : "0",
139
+ "dataType" : "Float16",
140
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
141
+ "shortDescription" : "",
142
+ "shape" : "[1, 1, 9496]",
143
+ "name" : "logits14",
144
+ "type" : "MultiArray"
145
+ },
146
+ {
147
+ "hasShapeFlexibility" : "0",
148
+ "isOptional" : "0",
149
+ "dataType" : "Float16",
150
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
151
+ "shortDescription" : "",
152
+ "shape" : "[1, 1, 9496]",
153
+ "name" : "logits15",
154
+ "type" : "MultiArray"
155
+ },
156
+ {
157
+ "hasShapeFlexibility" : "0",
158
+ "isOptional" : "0",
159
+ "dataType" : "Float16",
160
+ "formattedType" : "MultiArray (Float16 1 × 1 × 9496)",
161
+ "shortDescription" : "",
162
+ "shape" : "[1, 1, 9496]",
163
+ "name" : "logits16",
164
+ "type" : "MultiArray"
165
+ }
166
+ ],
167
+ "modelParameters" : [
168
+
169
+ ],
170
+ "specificationVersion" : 9,
171
+ "mlProgramOperationTypeHistogram" : {
172
+ "Ios18.transpose" : 17,
173
+ "Ios18.constexprLutToDense" : 16,
174
+ "Ios18.expandDims" : 1,
175
+ "Ios18.conv" : 16,
176
+ "Ios18.squeeze" : 16
177
+ },
178
+ "computePrecision" : "Mixed (Float16, Int32)",
179
+ "isUpdatable" : "0",
180
+ "stateSchema" : [
181
+
182
+ ],
183
+ "availability" : {
184
+ "macOS" : "15.0",
185
+ "tvOS" : "18.0",
186
+ "visionOS" : "2.0",
187
+ "watchOS" : "11.0",
188
+ "iOS" : "18.0",
189
+ "macCatalyst" : "18.0"
190
+ },
191
+ "modelType" : {
192
+ "name" : "MLModelType_mlProgram"
193
+ },
194
+ "userDefinedMetadata" : {
195
+ "com.github.apple.coremltools.conversion_date" : "2026-02-09",
196
+ "com.github.apple.coremltools.source" : "torch==2.5.0",
197
+ "com.github.apple.coremltools.version" : "9.0",
198
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
199
+ },
200
+ "inputSchema" : [
201
+ {
202
+ "hasShapeFlexibility" : "0",
203
+ "isOptional" : "0",
204
+ "dataType" : "Float16",
205
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1536)",
206
+ "shortDescription" : "",
207
+ "shape" : "[1, 1, 1536]",
208
+ "name" : "hidden_states",
209
+ "type" : "MultiArray"
210
+ }
211
+ ],
212
+ "generatedClassName" : "qwen25_lm_head_lut6",
213
+ "method" : "predict"
214
+ }
215
+ ]
qwen25_lm_head_lut6.mlmodelc/model.mil ADDED
@@ -0,0 +1,186 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ program(1.3)
2
+ [buildInfo = dict<string, string>({{"coremlc-component-MIL", "3510.2.1"}, {"coremlc-version", "3500.32.1"}})]
3
+ {
4
+ func main<ios18>(tensor<fp16, [1, 1, 1536]> hidden_states) {
5
+ tensor<int32, [3]> var_5 = const()[name = string("op_5"), val = tensor<int32, [3]>([0, 2, 1])];
6
+ tensor<int32, [1]> input_axes_0 = const()[name = string("input_axes_0"), val = tensor<int32, [1]>([2])];
7
+ tensor<fp16, [1, 1536, 1]> var_6_cast_fp16 = transpose(perm = var_5, x = hidden_states)[name = string("transpose_16")];
8
+ tensor<fp16, [1, 1536, 1, 1]> input_cast_fp16 = expand_dims(axes = input_axes_0, x = var_6_cast_fp16)[name = string("input_cast_fp16")];
9
+ string var_29_pad_type_0 = const()[name = string("op_29_pad_type_0"), val = string("valid")];
10
+ tensor<int32, [2]> var_29_strides_0 = const()[name = string("op_29_strides_0"), val = tensor<int32, [2]>([1, 1])];
11
+ tensor<int32, [4]> var_29_pad_0 = const()[name = string("op_29_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
12
+ tensor<int32, [2]> var_29_dilations_0 = const()[name = string("op_29_dilations_0"), val = tensor<int32, [2]>([1, 1])];
13
+ int32 var_29_groups_0 = const()[name = string("op_29_groups_0"), val = int32(1)];
14
+ tensor<fp16, [9496, 1536, 1, 1]> op_9_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(64))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(10939520))))[name = string("op_9_promoted_to_fp16_palettized")];
15
+ tensor<fp16, [1, 9496, 1, 1]> var_29_cast_fp16 = conv(dilations = var_29_dilations_0, groups = var_29_groups_0, pad = var_29_pad_0, pad_type = var_29_pad_type_0, strides = var_29_strides_0, weight = op_9_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_29_cast_fp16")];
16
+ tensor<int32, [1]> var_31_axes_0 = const()[name = string("op_31_axes_0"), val = tensor<int32, [1]>([2])];
17
+ tensor<fp16, [1, 9496, 1]> var_31_cast_fp16 = squeeze(axes = var_31_axes_0, x = var_29_cast_fp16)[name = string("op_31_cast_fp16")];
18
+ tensor<int32, [3]> var_34_perm_0 = const()[name = string("op_34_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
19
+ string var_55_pad_type_0 = const()[name = string("op_55_pad_type_0"), val = string("valid")];
20
+ tensor<int32, [2]> var_55_strides_0 = const()[name = string("op_55_strides_0"), val = tensor<int32, [2]>([1, 1])];
21
+ tensor<int32, [4]> var_55_pad_0 = const()[name = string("op_55_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
22
+ tensor<int32, [2]> var_55_dilations_0 = const()[name = string("op_55_dilations_0"), val = tensor<int32, [2]>([1, 1])];
23
+ int32 var_55_groups_0 = const()[name = string("op_55_groups_0"), val = int32(1)];
24
+ tensor<fp16, [9496, 1536, 1, 1]> op_35_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(11243456))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(22182912))))[name = string("op_35_promoted_to_fp16_palettized")];
25
+ tensor<fp16, [1, 9496, 1, 1]> var_55_cast_fp16 = conv(dilations = var_55_dilations_0, groups = var_55_groups_0, pad = var_55_pad_0, pad_type = var_55_pad_type_0, strides = var_55_strides_0, weight = op_35_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_55_cast_fp16")];
26
+ tensor<int32, [1]> var_57_axes_0 = const()[name = string("op_57_axes_0"), val = tensor<int32, [1]>([2])];
27
+ tensor<fp16, [1, 9496, 1]> var_57_cast_fp16 = squeeze(axes = var_57_axes_0, x = var_55_cast_fp16)[name = string("op_57_cast_fp16")];
28
+ tensor<int32, [3]> var_60_perm_0 = const()[name = string("op_60_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
29
+ string var_81_pad_type_0 = const()[name = string("op_81_pad_type_0"), val = string("valid")];
30
+ tensor<int32, [2]> var_81_strides_0 = const()[name = string("op_81_strides_0"), val = tensor<int32, [2]>([1, 1])];
31
+ tensor<int32, [4]> var_81_pad_0 = const()[name = string("op_81_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
32
+ tensor<int32, [2]> var_81_dilations_0 = const()[name = string("op_81_dilations_0"), val = tensor<int32, [2]>([1, 1])];
33
+ int32 var_81_groups_0 = const()[name = string("op_81_groups_0"), val = int32(1)];
34
+ tensor<fp16, [9496, 1536, 1, 1]> op_61_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(22486848))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(33426304))))[name = string("op_61_promoted_to_fp16_palettized")];
35
+ tensor<fp16, [1, 9496, 1, 1]> var_81_cast_fp16 = conv(dilations = var_81_dilations_0, groups = var_81_groups_0, pad = var_81_pad_0, pad_type = var_81_pad_type_0, strides = var_81_strides_0, weight = op_61_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_81_cast_fp16")];
36
+ tensor<int32, [1]> var_83_axes_0 = const()[name = string("op_83_axes_0"), val = tensor<int32, [1]>([2])];
37
+ tensor<fp16, [1, 9496, 1]> var_83_cast_fp16 = squeeze(axes = var_83_axes_0, x = var_81_cast_fp16)[name = string("op_83_cast_fp16")];
38
+ tensor<int32, [3]> var_86_perm_0 = const()[name = string("op_86_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
39
+ string var_107_pad_type_0 = const()[name = string("op_107_pad_type_0"), val = string("valid")];
40
+ tensor<int32, [2]> var_107_strides_0 = const()[name = string("op_107_strides_0"), val = tensor<int32, [2]>([1, 1])];
41
+ tensor<int32, [4]> var_107_pad_0 = const()[name = string("op_107_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
42
+ tensor<int32, [2]> var_107_dilations_0 = const()[name = string("op_107_dilations_0"), val = tensor<int32, [2]>([1, 1])];
43
+ int32 var_107_groups_0 = const()[name = string("op_107_groups_0"), val = int32(1)];
44
+ tensor<fp16, [9496, 1536, 1, 1]> op_87_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(33730240))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(44669696))))[name = string("op_87_promoted_to_fp16_palettized")];
45
+ tensor<fp16, [1, 9496, 1, 1]> var_107_cast_fp16 = conv(dilations = var_107_dilations_0, groups = var_107_groups_0, pad = var_107_pad_0, pad_type = var_107_pad_type_0, strides = var_107_strides_0, weight = op_87_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_107_cast_fp16")];
46
+ tensor<int32, [1]> var_109_axes_0 = const()[name = string("op_109_axes_0"), val = tensor<int32, [1]>([2])];
47
+ tensor<fp16, [1, 9496, 1]> var_109_cast_fp16 = squeeze(axes = var_109_axes_0, x = var_107_cast_fp16)[name = string("op_109_cast_fp16")];
48
+ tensor<int32, [3]> var_112_perm_0 = const()[name = string("op_112_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
49
+ string var_133_pad_type_0 = const()[name = string("op_133_pad_type_0"), val = string("valid")];
50
+ tensor<int32, [2]> var_133_strides_0 = const()[name = string("op_133_strides_0"), val = tensor<int32, [2]>([1, 1])];
51
+ tensor<int32, [4]> var_133_pad_0 = const()[name = string("op_133_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
52
+ tensor<int32, [2]> var_133_dilations_0 = const()[name = string("op_133_dilations_0"), val = tensor<int32, [2]>([1, 1])];
53
+ int32 var_133_groups_0 = const()[name = string("op_133_groups_0"), val = int32(1)];
54
+ tensor<fp16, [9496, 1536, 1, 1]> op_113_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(44973632))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(55913088))))[name = string("op_113_promoted_to_fp16_palettized")];
55
+ tensor<fp16, [1, 9496, 1, 1]> var_133_cast_fp16 = conv(dilations = var_133_dilations_0, groups = var_133_groups_0, pad = var_133_pad_0, pad_type = var_133_pad_type_0, strides = var_133_strides_0, weight = op_113_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_133_cast_fp16")];
56
+ tensor<int32, [1]> var_135_axes_0 = const()[name = string("op_135_axes_0"), val = tensor<int32, [1]>([2])];
57
+ tensor<fp16, [1, 9496, 1]> var_135_cast_fp16 = squeeze(axes = var_135_axes_0, x = var_133_cast_fp16)[name = string("op_135_cast_fp16")];
58
+ tensor<int32, [3]> var_138_perm_0 = const()[name = string("op_138_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
59
+ string var_159_pad_type_0 = const()[name = string("op_159_pad_type_0"), val = string("valid")];
60
+ tensor<int32, [2]> var_159_strides_0 = const()[name = string("op_159_strides_0"), val = tensor<int32, [2]>([1, 1])];
61
+ tensor<int32, [4]> var_159_pad_0 = const()[name = string("op_159_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
62
+ tensor<int32, [2]> var_159_dilations_0 = const()[name = string("op_159_dilations_0"), val = tensor<int32, [2]>([1, 1])];
63
+ int32 var_159_groups_0 = const()[name = string("op_159_groups_0"), val = int32(1)];
64
+ tensor<fp16, [9496, 1536, 1, 1]> op_139_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(56217024))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(67156480))))[name = string("op_139_promoted_to_fp16_palettized")];
65
+ tensor<fp16, [1, 9496, 1, 1]> var_159_cast_fp16 = conv(dilations = var_159_dilations_0, groups = var_159_groups_0, pad = var_159_pad_0, pad_type = var_159_pad_type_0, strides = var_159_strides_0, weight = op_139_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_159_cast_fp16")];
66
+ tensor<int32, [1]> var_161_axes_0 = const()[name = string("op_161_axes_0"), val = tensor<int32, [1]>([2])];
67
+ tensor<fp16, [1, 9496, 1]> var_161_cast_fp16 = squeeze(axes = var_161_axes_0, x = var_159_cast_fp16)[name = string("op_161_cast_fp16")];
68
+ tensor<int32, [3]> var_164_perm_0 = const()[name = string("op_164_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
69
+ string var_185_pad_type_0 = const()[name = string("op_185_pad_type_0"), val = string("valid")];
70
+ tensor<int32, [2]> var_185_strides_0 = const()[name = string("op_185_strides_0"), val = tensor<int32, [2]>([1, 1])];
71
+ tensor<int32, [4]> var_185_pad_0 = const()[name = string("op_185_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
72
+ tensor<int32, [2]> var_185_dilations_0 = const()[name = string("op_185_dilations_0"), val = tensor<int32, [2]>([1, 1])];
73
+ int32 var_185_groups_0 = const()[name = string("op_185_groups_0"), val = int32(1)];
74
+ tensor<fp16, [9496, 1536, 1, 1]> op_165_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(67460416))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(78399872))))[name = string("op_165_promoted_to_fp16_palettized")];
75
+ tensor<fp16, [1, 9496, 1, 1]> var_185_cast_fp16 = conv(dilations = var_185_dilations_0, groups = var_185_groups_0, pad = var_185_pad_0, pad_type = var_185_pad_type_0, strides = var_185_strides_0, weight = op_165_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_185_cast_fp16")];
76
+ tensor<int32, [1]> var_187_axes_0 = const()[name = string("op_187_axes_0"), val = tensor<int32, [1]>([2])];
77
+ tensor<fp16, [1, 9496, 1]> var_187_cast_fp16 = squeeze(axes = var_187_axes_0, x = var_185_cast_fp16)[name = string("op_187_cast_fp16")];
78
+ tensor<int32, [3]> var_190_perm_0 = const()[name = string("op_190_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
79
+ string var_211_pad_type_0 = const()[name = string("op_211_pad_type_0"), val = string("valid")];
80
+ tensor<int32, [2]> var_211_strides_0 = const()[name = string("op_211_strides_0"), val = tensor<int32, [2]>([1, 1])];
81
+ tensor<int32, [4]> var_211_pad_0 = const()[name = string("op_211_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
82
+ tensor<int32, [2]> var_211_dilations_0 = const()[name = string("op_211_dilations_0"), val = tensor<int32, [2]>([1, 1])];
83
+ int32 var_211_groups_0 = const()[name = string("op_211_groups_0"), val = int32(1)];
84
+ tensor<fp16, [9496, 1536, 1, 1]> op_191_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(78703808))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(89643264))))[name = string("op_191_promoted_to_fp16_palettized")];
85
+ tensor<fp16, [1, 9496, 1, 1]> var_211_cast_fp16 = conv(dilations = var_211_dilations_0, groups = var_211_groups_0, pad = var_211_pad_0, pad_type = var_211_pad_type_0, strides = var_211_strides_0, weight = op_191_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_211_cast_fp16")];
86
+ tensor<int32, [1]> var_213_axes_0 = const()[name = string("op_213_axes_0"), val = tensor<int32, [1]>([2])];
87
+ tensor<fp16, [1, 9496, 1]> var_213_cast_fp16 = squeeze(axes = var_213_axes_0, x = var_211_cast_fp16)[name = string("op_213_cast_fp16")];
88
+ tensor<int32, [3]> var_216_perm_0 = const()[name = string("op_216_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
89
+ string var_237_pad_type_0 = const()[name = string("op_237_pad_type_0"), val = string("valid")];
90
+ tensor<int32, [2]> var_237_strides_0 = const()[name = string("op_237_strides_0"), val = tensor<int32, [2]>([1, 1])];
91
+ tensor<int32, [4]> var_237_pad_0 = const()[name = string("op_237_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
92
+ tensor<int32, [2]> var_237_dilations_0 = const()[name = string("op_237_dilations_0"), val = tensor<int32, [2]>([1, 1])];
93
+ int32 var_237_groups_0 = const()[name = string("op_237_groups_0"), val = int32(1)];
94
+ tensor<fp16, [9496, 1536, 1, 1]> op_217_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(89947200))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(100886656))))[name = string("op_217_promoted_to_fp16_palettized")];
95
+ tensor<fp16, [1, 9496, 1, 1]> var_237_cast_fp16 = conv(dilations = var_237_dilations_0, groups = var_237_groups_0, pad = var_237_pad_0, pad_type = var_237_pad_type_0, strides = var_237_strides_0, weight = op_217_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_237_cast_fp16")];
96
+ tensor<int32, [1]> var_239_axes_0 = const()[name = string("op_239_axes_0"), val = tensor<int32, [1]>([2])];
97
+ tensor<fp16, [1, 9496, 1]> var_239_cast_fp16 = squeeze(axes = var_239_axes_0, x = var_237_cast_fp16)[name = string("op_239_cast_fp16")];
98
+ tensor<int32, [3]> var_242_perm_0 = const()[name = string("op_242_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
99
+ string var_263_pad_type_0 = const()[name = string("op_263_pad_type_0"), val = string("valid")];
100
+ tensor<int32, [2]> var_263_strides_0 = const()[name = string("op_263_strides_0"), val = tensor<int32, [2]>([1, 1])];
101
+ tensor<int32, [4]> var_263_pad_0 = const()[name = string("op_263_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
102
+ tensor<int32, [2]> var_263_dilations_0 = const()[name = string("op_263_dilations_0"), val = tensor<int32, [2]>([1, 1])];
103
+ int32 var_263_groups_0 = const()[name = string("op_263_groups_0"), val = int32(1)];
104
+ tensor<fp16, [9496, 1536, 1, 1]> op_243_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(101190592))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(112130048))))[name = string("op_243_promoted_to_fp16_palettized")];
105
+ tensor<fp16, [1, 9496, 1, 1]> var_263_cast_fp16 = conv(dilations = var_263_dilations_0, groups = var_263_groups_0, pad = var_263_pad_0, pad_type = var_263_pad_type_0, strides = var_263_strides_0, weight = op_243_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_263_cast_fp16")];
106
+ tensor<int32, [1]> var_265_axes_0 = const()[name = string("op_265_axes_0"), val = tensor<int32, [1]>([2])];
107
+ tensor<fp16, [1, 9496, 1]> var_265_cast_fp16 = squeeze(axes = var_265_axes_0, x = var_263_cast_fp16)[name = string("op_265_cast_fp16")];
108
+ tensor<int32, [3]> var_268_perm_0 = const()[name = string("op_268_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
109
+ string var_289_pad_type_0 = const()[name = string("op_289_pad_type_0"), val = string("valid")];
110
+ tensor<int32, [2]> var_289_strides_0 = const()[name = string("op_289_strides_0"), val = tensor<int32, [2]>([1, 1])];
111
+ tensor<int32, [4]> var_289_pad_0 = const()[name = string("op_289_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
112
+ tensor<int32, [2]> var_289_dilations_0 = const()[name = string("op_289_dilations_0"), val = tensor<int32, [2]>([1, 1])];
113
+ int32 var_289_groups_0 = const()[name = string("op_289_groups_0"), val = int32(1)];
114
+ tensor<fp16, [9496, 1536, 1, 1]> op_269_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(112433984))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(123373440))))[name = string("op_269_promoted_to_fp16_palettized")];
115
+ tensor<fp16, [1, 9496, 1, 1]> var_289_cast_fp16 = conv(dilations = var_289_dilations_0, groups = var_289_groups_0, pad = var_289_pad_0, pad_type = var_289_pad_type_0, strides = var_289_strides_0, weight = op_269_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_289_cast_fp16")];
116
+ tensor<int32, [1]> var_291_axes_0 = const()[name = string("op_291_axes_0"), val = tensor<int32, [1]>([2])];
117
+ tensor<fp16, [1, 9496, 1]> var_291_cast_fp16 = squeeze(axes = var_291_axes_0, x = var_289_cast_fp16)[name = string("op_291_cast_fp16")];
118
+ tensor<int32, [3]> var_294_perm_0 = const()[name = string("op_294_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
119
+ string var_315_pad_type_0 = const()[name = string("op_315_pad_type_0"), val = string("valid")];
120
+ tensor<int32, [2]> var_315_strides_0 = const()[name = string("op_315_strides_0"), val = tensor<int32, [2]>([1, 1])];
121
+ tensor<int32, [4]> var_315_pad_0 = const()[name = string("op_315_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
122
+ tensor<int32, [2]> var_315_dilations_0 = const()[name = string("op_315_dilations_0"), val = tensor<int32, [2]>([1, 1])];
123
+ int32 var_315_groups_0 = const()[name = string("op_315_groups_0"), val = int32(1)];
124
+ tensor<fp16, [9496, 1536, 1, 1]> op_295_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(123677376))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(134616832))))[name = string("op_295_promoted_to_fp16_palettized")];
125
+ tensor<fp16, [1, 9496, 1, 1]> var_315_cast_fp16 = conv(dilations = var_315_dilations_0, groups = var_315_groups_0, pad = var_315_pad_0, pad_type = var_315_pad_type_0, strides = var_315_strides_0, weight = op_295_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_315_cast_fp16")];
126
+ tensor<int32, [1]> var_317_axes_0 = const()[name = string("op_317_axes_0"), val = tensor<int32, [1]>([2])];
127
+ tensor<fp16, [1, 9496, 1]> var_317_cast_fp16 = squeeze(axes = var_317_axes_0, x = var_315_cast_fp16)[name = string("op_317_cast_fp16")];
128
+ tensor<int32, [3]> var_320_perm_0 = const()[name = string("op_320_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
129
+ string var_341_pad_type_0 = const()[name = string("op_341_pad_type_0"), val = string("valid")];
130
+ tensor<int32, [2]> var_341_strides_0 = const()[name = string("op_341_strides_0"), val = tensor<int32, [2]>([1, 1])];
131
+ tensor<int32, [4]> var_341_pad_0 = const()[name = string("op_341_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
132
+ tensor<int32, [2]> var_341_dilations_0 = const()[name = string("op_341_dilations_0"), val = tensor<int32, [2]>([1, 1])];
133
+ int32 var_341_groups_0 = const()[name = string("op_341_groups_0"), val = int32(1)];
134
+ tensor<fp16, [9496, 1536, 1, 1]> op_321_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(134920768))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(145860224))))[name = string("op_321_promoted_to_fp16_palettized")];
135
+ tensor<fp16, [1, 9496, 1, 1]> var_341_cast_fp16 = conv(dilations = var_341_dilations_0, groups = var_341_groups_0, pad = var_341_pad_0, pad_type = var_341_pad_type_0, strides = var_341_strides_0, weight = op_321_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_341_cast_fp16")];
136
+ tensor<int32, [1]> var_343_axes_0 = const()[name = string("op_343_axes_0"), val = tensor<int32, [1]>([2])];
137
+ tensor<fp16, [1, 9496, 1]> var_343_cast_fp16 = squeeze(axes = var_343_axes_0, x = var_341_cast_fp16)[name = string("op_343_cast_fp16")];
138
+ tensor<int32, [3]> var_346_perm_0 = const()[name = string("op_346_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
139
+ string var_367_pad_type_0 = const()[name = string("op_367_pad_type_0"), val = string("valid")];
140
+ tensor<int32, [2]> var_367_strides_0 = const()[name = string("op_367_strides_0"), val = tensor<int32, [2]>([1, 1])];
141
+ tensor<int32, [4]> var_367_pad_0 = const()[name = string("op_367_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
142
+ tensor<int32, [2]> var_367_dilations_0 = const()[name = string("op_367_dilations_0"), val = tensor<int32, [2]>([1, 1])];
143
+ int32 var_367_groups_0 = const()[name = string("op_367_groups_0"), val = int32(1)];
144
+ tensor<fp16, [9496, 1536, 1, 1]> op_347_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(146164160))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(157103616))))[name = string("op_347_promoted_to_fp16_palettized")];
145
+ tensor<fp16, [1, 9496, 1, 1]> var_367_cast_fp16 = conv(dilations = var_367_dilations_0, groups = var_367_groups_0, pad = var_367_pad_0, pad_type = var_367_pad_type_0, strides = var_367_strides_0, weight = op_347_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_367_cast_fp16")];
146
+ tensor<int32, [1]> var_369_axes_0 = const()[name = string("op_369_axes_0"), val = tensor<int32, [1]>([2])];
147
+ tensor<fp16, [1, 9496, 1]> var_369_cast_fp16 = squeeze(axes = var_369_axes_0, x = var_367_cast_fp16)[name = string("op_369_cast_fp16")];
148
+ tensor<int32, [3]> var_372_perm_0 = const()[name = string("op_372_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
149
+ string var_393_pad_type_0 = const()[name = string("op_393_pad_type_0"), val = string("valid")];
150
+ tensor<int32, [2]> var_393_strides_0 = const()[name = string("op_393_strides_0"), val = tensor<int32, [2]>([1, 1])];
151
+ tensor<int32, [4]> var_393_pad_0 = const()[name = string("op_393_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
152
+ tensor<int32, [2]> var_393_dilations_0 = const()[name = string("op_393_dilations_0"), val = tensor<int32, [2]>([1, 1])];
153
+ int32 var_393_groups_0 = const()[name = string("op_393_groups_0"), val = int32(1)];
154
+ tensor<fp16, [9496, 1536, 1, 1]> op_373_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(157407552))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(168347008))))[name = string("op_373_promoted_to_fp16_palettized")];
155
+ tensor<fp16, [1, 9496, 1, 1]> var_393_cast_fp16 = conv(dilations = var_393_dilations_0, groups = var_393_groups_0, pad = var_393_pad_0, pad_type = var_393_pad_type_0, strides = var_393_strides_0, weight = op_373_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_393_cast_fp16")];
156
+ tensor<int32, [1]> var_395_axes_0 = const()[name = string("op_395_axes_0"), val = tensor<int32, [1]>([2])];
157
+ tensor<fp16, [1, 9496, 1]> var_395_cast_fp16 = squeeze(axes = var_395_axes_0, x = var_393_cast_fp16)[name = string("op_395_cast_fp16")];
158
+ tensor<int32, [3]> var_398_perm_0 = const()[name = string("op_398_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
159
+ string var_419_pad_type_0 = const()[name = string("op_419_pad_type_0"), val = string("valid")];
160
+ tensor<int32, [2]> var_419_strides_0 = const()[name = string("op_419_strides_0"), val = tensor<int32, [2]>([1, 1])];
161
+ tensor<int32, [4]> var_419_pad_0 = const()[name = string("op_419_pad_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
162
+ tensor<int32, [2]> var_419_dilations_0 = const()[name = string("op_419_dilations_0"), val = tensor<int32, [2]>([1, 1])];
163
+ int32 var_419_groups_0 = const()[name = string("op_419_groups_0"), val = int32(1)];
164
+ tensor<fp16, [9496, 1536, 1, 1]> op_399_promoted_to_fp16_palettized = constexpr_lut_to_dense(indices = tensor<uint6, [9496, 1536, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(168650944))), lut = tensor<fp16, [2374, 1, 1, 1, 64, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(179590400))))[name = string("op_399_promoted_to_fp16_palettized")];
165
+ tensor<fp16, [1, 9496, 1, 1]> var_419_cast_fp16 = conv(dilations = var_419_dilations_0, groups = var_419_groups_0, pad = var_419_pad_0, pad_type = var_419_pad_type_0, strides = var_419_strides_0, weight = op_399_promoted_to_fp16_palettized, x = input_cast_fp16)[name = string("op_419_cast_fp16")];
166
+ tensor<int32, [1]> var_421_axes_0 = const()[name = string("op_421_axes_0"), val = tensor<int32, [1]>([2])];
167
+ tensor<fp16, [1, 9496, 1]> var_421_cast_fp16 = squeeze(axes = var_421_axes_0, x = var_419_cast_fp16)[name = string("op_421_cast_fp16")];
168
+ tensor<int32, [3]> var_424_perm_0 = const()[name = string("op_424_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
169
+ tensor<fp16, [1, 1, 9496]> logits1 = transpose(perm = var_34_perm_0, x = var_31_cast_fp16)[name = string("transpose_0")];
170
+ tensor<fp16, [1, 1, 9496]> logits2 = transpose(perm = var_60_perm_0, x = var_57_cast_fp16)[name = string("transpose_1")];
171
+ tensor<fp16, [1, 1, 9496]> logits3 = transpose(perm = var_86_perm_0, x = var_83_cast_fp16)[name = string("transpose_2")];
172
+ tensor<fp16, [1, 1, 9496]> logits4 = transpose(perm = var_112_perm_0, x = var_109_cast_fp16)[name = string("transpose_3")];
173
+ tensor<fp16, [1, 1, 9496]> logits5 = transpose(perm = var_138_perm_0, x = var_135_cast_fp16)[name = string("transpose_4")];
174
+ tensor<fp16, [1, 1, 9496]> logits6 = transpose(perm = var_164_perm_0, x = var_161_cast_fp16)[name = string("transpose_5")];
175
+ tensor<fp16, [1, 1, 9496]> logits7 = transpose(perm = var_190_perm_0, x = var_187_cast_fp16)[name = string("transpose_6")];
176
+ tensor<fp16, [1, 1, 9496]> logits8 = transpose(perm = var_216_perm_0, x = var_213_cast_fp16)[name = string("transpose_7")];
177
+ tensor<fp16, [1, 1, 9496]> logits9 = transpose(perm = var_242_perm_0, x = var_239_cast_fp16)[name = string("transpose_8")];
178
+ tensor<fp16, [1, 1, 9496]> logits10 = transpose(perm = var_268_perm_0, x = var_265_cast_fp16)[name = string("transpose_9")];
179
+ tensor<fp16, [1, 1, 9496]> logits11 = transpose(perm = var_294_perm_0, x = var_291_cast_fp16)[name = string("transpose_10")];
180
+ tensor<fp16, [1, 1, 9496]> logits12 = transpose(perm = var_320_perm_0, x = var_317_cast_fp16)[name = string("transpose_11")];
181
+ tensor<fp16, [1, 1, 9496]> logits13 = transpose(perm = var_346_perm_0, x = var_343_cast_fp16)[name = string("transpose_12")];
182
+ tensor<fp16, [1, 1, 9496]> logits14 = transpose(perm = var_372_perm_0, x = var_369_cast_fp16)[name = string("transpose_13")];
183
+ tensor<fp16, [1, 1, 9496]> logits15 = transpose(perm = var_398_perm_0, x = var_395_cast_fp16)[name = string("transpose_14")];
184
+ tensor<fp16, [1, 1, 9496]> logits16 = transpose(perm = var_424_perm_0, x = var_421_cast_fp16)[name = string("transpose_15")];
185
+ } -> (logits1, logits2, logits3, logits4, logits5, logits6, logits7, logits8, logits9, logits10, logits11, logits12, logits13, logits14, logits15, logits16);
186
+ }
qwen25_lm_head_lut6.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ce6267d9cb0bfaa14fea5432d2adeb2846d3af0524f1543ed8c2e80a85e507e5
3
+ size 179894336
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:296e081e2f5ecf9d87814aa9b0f4b12d670ed2b2e2be6c84e01a9466c953afb7
3
+ size 11422267
tokenizer_config.json ADDED
@@ -0,0 +1,224 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": false,
3
+ "add_prefix_space": false,
4
+ "added_tokens_decoder": {
5
+ "151643": {
6
+ "content": "<|endoftext|>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false,
11
+ "special": true
12
+ },
13
+ "151644": {
14
+ "content": "<|im_start|>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false,
19
+ "special": true
20
+ },
21
+ "151645": {
22
+ "content": "<|im_end|>",
23
+ "lstrip": false,
24
+ "normalized": false,
25
+ "rstrip": false,
26
+ "single_word": false,
27
+ "special": true
28
+ },
29
+ "151646": {
30
+ "content": "<|object_ref_start|>",
31
+ "lstrip": false,
32
+ "normalized": false,
33
+ "rstrip": false,
34
+ "single_word": false,
35
+ "special": true
36
+ },
37
+ "151647": {
38
+ "content": "<|object_ref_end|>",
39
+ "lstrip": false,
40
+ "normalized": false,
41
+ "rstrip": false,
42
+ "single_word": false,
43
+ "special": true
44
+ },
45
+ "151648": {
46
+ "content": "<|box_start|>",
47
+ "lstrip": false,
48
+ "normalized": false,
49
+ "rstrip": false,
50
+ "single_word": false,
51
+ "special": true
52
+ },
53
+ "151649": {
54
+ "content": "<|box_end|>",
55
+ "lstrip": false,
56
+ "normalized": false,
57
+ "rstrip": false,
58
+ "single_word": false,
59
+ "special": true
60
+ },
61
+ "151650": {
62
+ "content": "<|quad_start|>",
63
+ "lstrip": false,
64
+ "normalized": false,
65
+ "rstrip": false,
66
+ "single_word": false,
67
+ "special": true
68
+ },
69
+ "151651": {
70
+ "content": "<|quad_end|>",
71
+ "lstrip": false,
72
+ "normalized": false,
73
+ "rstrip": false,
74
+ "single_word": false,
75
+ "special": true
76
+ },
77
+ "151652": {
78
+ "content": "<|vision_start|>",
79
+ "lstrip": false,
80
+ "normalized": false,
81
+ "rstrip": false,
82
+ "single_word": false,
83
+ "special": true
84
+ },
85
+ "151653": {
86
+ "content": "<|vision_end|>",
87
+ "lstrip": false,
88
+ "normalized": false,
89
+ "rstrip": false,
90
+ "single_word": false,
91
+ "special": true
92
+ },
93
+ "151654": {
94
+ "content": "<|vision_pad|>",
95
+ "lstrip": false,
96
+ "normalized": false,
97
+ "rstrip": false,
98
+ "single_word": false,
99
+ "special": true
100
+ },
101
+ "151655": {
102
+ "content": "<|image_pad|>",
103
+ "lstrip": false,
104
+ "normalized": false,
105
+ "rstrip": false,
106
+ "single_word": false,
107
+ "special": true
108
+ },
109
+ "151656": {
110
+ "content": "<|video_pad|>",
111
+ "lstrip": false,
112
+ "normalized": false,
113
+ "rstrip": false,
114
+ "single_word": false,
115
+ "special": true
116
+ },
117
+ "151657": {
118
+ "content": "<tool_call>",
119
+ "lstrip": false,
120
+ "normalized": false,
121
+ "rstrip": false,
122
+ "single_word": false,
123
+ "special": false
124
+ },
125
+ "151658": {
126
+ "content": "</tool_call>",
127
+ "lstrip": false,
128
+ "normalized": false,
129
+ "rstrip": false,
130
+ "single_word": false,
131
+ "special": false
132
+ },
133
+ "151659": {
134
+ "content": "<|fim_prefix|>",
135
+ "lstrip": false,
136
+ "normalized": false,
137
+ "rstrip": false,
138
+ "single_word": false,
139
+ "special": false
140
+ },
141
+ "151660": {
142
+ "content": "<|fim_middle|>",
143
+ "lstrip": false,
144
+ "normalized": false,
145
+ "rstrip": false,
146
+ "single_word": false,
147
+ "special": false
148
+ },
149
+ "151661": {
150
+ "content": "<|fim_suffix|>",
151
+ "lstrip": false,
152
+ "normalized": false,
153
+ "rstrip": false,
154
+ "single_word": false,
155
+ "special": false
156
+ },
157
+ "151662": {
158
+ "content": "<|fim_pad|>",
159
+ "lstrip": false,
160
+ "normalized": false,
161
+ "rstrip": false,
162
+ "single_word": false,
163
+ "special": false
164
+ },
165
+ "151663": {
166
+ "content": "<|repo_name|>",
167
+ "lstrip": false,
168
+ "normalized": false,
169
+ "rstrip": false,
170
+ "single_word": false,
171
+ "special": false
172
+ },
173
+ "151664": {
174
+ "content": "<|file_sep|>",
175
+ "lstrip": false,
176
+ "normalized": false,
177
+ "rstrip": false,
178
+ "single_word": false,
179
+ "special": false
180
+ },
181
+ "151665": {
182
+ "content": "<think>",
183
+ "lstrip": false,
184
+ "normalized": false,
185
+ "rstrip": false,
186
+ "single_word": false,
187
+ "special": false
188
+ },
189
+ "151666": {
190
+ "content": "</think>",
191
+ "lstrip": false,
192
+ "normalized": false,
193
+ "rstrip": false,
194
+ "single_word": false,
195
+ "special": false
196
+ }
197
+ },
198
+ "additional_special_tokens": [
199
+ "<|im_start|>",
200
+ "<|im_end|>",
201
+ "<|object_ref_start|>",
202
+ "<|object_ref_end|>",
203
+ "<|box_start|>",
204
+ "<|box_end|>",
205
+ "<|quad_start|>",
206
+ "<|quad_end|>",
207
+ "<|vision_start|>",
208
+ "<|vision_end|>",
209
+ "<|vision_pad|>",
210
+ "<|image_pad|>",
211
+ "<|video_pad|>"
212
+ ],
213
+ "bos_token": null,
214
+ "clean_up_tokenization_spaces": false,
215
+ "eos_token": "<|endoftext|>",
216
+ "errors": "replace",
217
+ "extra_special_tokens": {},
218
+ "model_max_length": 131072,
219
+ "pad_token": "<|endoftext|>",
220
+ "padding_side": "right",
221
+ "split_special_tokens": false,
222
+ "tokenizer_class": "Qwen2Tokenizer",
223
+ "unk_token": null
224
+ }
vocab.json ADDED
The diff for this file is too large to render. See raw diff