anemll commited on
Commit
ccbb2de
·
verified ·
1 Parent(s): b0856c4

Upload folder using huggingface_hub

Browse files
.DS_Store ADDED
Binary file (8.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,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ tags:
4
+ - coreml
5
+ - ANE
6
+ - LLaMA
7
+ - Qwen
8
+ - DeepSeek
9
+ - Gemma
10
+ - Apple
11
+ - Apple Neural Engine
12
+ - DeepHermes
13
+ ---
14
+ # ANEMLL
15
+
16
+ **ANEMLL** (pronounced like "animal") is an open-source project focused on accelerating the porting of Large Language Models (LLMs) to tensor processors, starting with the Apple Neural Engine (ANE).
17
+
18
+ The goal is to provide a fully open-source pipeline from model conversion to inference for common LLM architectures running on ANE.
19
+
20
+ This enables seamless integration and on-device inference for low-power applications on edge devices, ensuring maximum privacy and security.
21
+
22
+ This is critical for autonomous applications, where models run directly on the device without requiring an internet connection.
23
+
24
+ For more information, visit the [ANEMLL GitHub repository](https://github.com/anemll/anemll).
25
+
26
+
27
+ ---
28
+
29
+ ## License
30
+
31
+ ANEMLL is licensed under the [MIT License](https://opensource.org/license/mit).
32
+ The original model may require a separate license depending on the architecture:
33
+ - LLaMA models: Based on Meta's LLaMA and may require Meta's license
34
+ - Qwen models: Based on Alibaba's Qwen and may require Alibaba's license
35
+ - Gemma models: Based on Google's Gemma and subject to Gemma Terms of Use
36
+ - Other models: Check respective original model licenses
37
+
38
+ This model is converted for CoreML using ANEMLL's open-source conversion pipeline. It supports multiple LLM architectures including LLaMA, Qwen, Gemma, and DeepSeek variants.
39
+
40
+ ---
41
+
42
+ ## Requirements
43
+
44
+ - **macOS 15 (Sequoia)** or later with Apple Neural Engine and 8GB RAM or more
45
+ - **CoreML Tools 8.x+** and **HuggingFace Transformers** libraries
46
+ - **Python 3.9+**
47
+
48
+ `chat.py` provides a sample inference script.
49
+ `chat_full.py` provides a sample inference script with history and conversation management.
50
+
51
+ **Installation**
52
+
53
+ 1. Download the model from Hugging Face:
54
+ ```bash
55
+ # Install required tools
56
+ pip install huggingface_hub
57
+
58
+ # Install Git LFS (Large File Support)
59
+ # macOS with Homebrew:
60
+ brew install git-lfs
61
+ # Or Ubuntu/Debian:
62
+ # sudo apt-get install git-lfs
63
+
64
+ # Initialize Git LFS
65
+ git lfs install
66
+
67
+ # Clone the repository with model files
68
+ git clone https://huggingface.co/anemll/anemll-google-gemma-3-1b-it-ctx512_0.3.5
69
+ ```
70
+
71
+ 2. Extract model files:
72
+ ```bash
73
+ # Navigate to cloned directory
74
+ cd anemll-google-gemma-3-1b-it-ctx512_0.3.5
75
+
76
+ # Pull LFS files (model weights)
77
+ git lfs pull
78
+
79
+ # Extract CoreML model files
80
+ find . -type f -name "*.zip" -exec unzip {} \;
81
+ ```
82
+
83
+ 3. Install dependencies:
84
+ ```bash
85
+ pip install coremltools transformers
86
+ ```
87
+
88
+ **Coremltools:**
89
+
90
+ See coremltools installation guide at https://apple.github.io/coremltools/docs-guides/source/installing-coremltools.html
91
+
92
+ **How to Run**
93
+
94
+ 1. Basic chat interface:
95
+ ```bash
96
+ python chat.py --meta ./meta.yaml
97
+ ```
98
+
99
+ 2. Full conversation mode with history:
100
+ ```bash
101
+ python chat_full.py --meta ./meta.yaml
102
+ ```
103
+
104
+ > Note: The first time the model loads, macOS will take some time to place it on the device.
105
+ > Subsequent loads will be instantaneous.
106
+ > Use Ctrl-D to exit, Ctrl-C to interrupt inference.
107
+
108
+ **More Info**
109
+ Please check following links for later updates:
110
+
111
+ * [GitHub](https://github.com/anemll)
112
+ * [Hugging Face Models](https://huggingface.co/anemll)
113
+ * [Twitter/X](https://x.com/anemll)
114
+ * [Website](https://anemll.com)
115
+
116
+
117
+ realanemll@gmail.com
118
+
119
+ # anemll-google-gemma-3-1b-it-ctx512_0.3.5
120
+
121
+ This is a CoreML model converted using ANEMLL for Apple Neural Engine inference.
122
+
123
+ ## Available Distributions
124
+
125
+ ### Standard Distribution
126
+ - Contains zipped MLMODELC files
127
+ - Suitable for macOS and development
128
+
129
+ ### iOS Distribution
130
+ - Contains unzipped MLMODELC files
131
+ - Ready for iOS deployment
132
+ - Includes offline tokenizer support
133
+
134
+ ## Model Information
135
+ - Context Length: 512
136
+ - Batch Size: 64
137
+ - Number of Chunks: 2
138
+ - LUT Quantization: none
139
+
140
+ ## Quick Start
141
+
142
+ ### Test in iOS/macOS App
143
+ Try our sample Chat-Bot app on TestFlight:
144
+ 1. Install TestFlight from App Store
145
+ 2. Join beta test: [TestFlight Link](https://testflight.apple.com/join/jrQq1D1C)
146
+ 3. App includes a small demo model pre-installed
147
+ 4. You can add custom models via HuggingFace URLs
148
+
149
+ > [!Note]
150
+ > - The TestFlight app works on both iOS and macOS
151
+ > - Demonstrates proper model integration and provides a reference implementation
152
+ > - iOS requires unzipped MLMODELC files and config.json for offline tokenizer
153
+ > - macOS supports both zipped and unzipped model formats
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
 
config.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "tokenizer_class": "GemmaTokenizer",
3
+ "model_type": "gemma"
4
+ }
gemma3_FFN_PF_chunk_01of02.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2dafc6f3933b3b4504e7308d2a3c9f965c5123412036d6d5289914846f7ac2a0
3
+ size 243
gemma3_FFN_PF_chunk_01of02.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:abd2b467d25e8ae57624fe12d4a6122adcdcd8a8ab9fcf3e0636bddd18430184
3
+ size 953
gemma3_FFN_PF_chunk_01of02.mlmodelc/metadata.json ADDED
@@ -0,0 +1,317 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "userDefinedMetadata" : {
5
+ "com.github.apple.coremltools.source" : "torch==2.5.0",
6
+ "com.github.apple.coremltools.source_dialect" : "TorchScript",
7
+ "com.github.apple.coremltools.version" : "9.0",
8
+ "com.anemll.context_length" : "512",
9
+ "com.anemll.num_chunks" : "2",
10
+ "com.anemll.info" : "Converted with Anemll v0.3.5",
11
+ "com.anemll.batch_size" : "64",
12
+ "com.anemll.chunk_no" : "1"
13
+ },
14
+ "availability" : {
15
+ "macOS" : "15.0",
16
+ "tvOS" : "18.0",
17
+ "visionOS" : "2.0",
18
+ "watchOS" : "11.0",
19
+ "iOS" : "18.0",
20
+ "macCatalyst" : "18.0"
21
+ },
22
+ "inputSchema" : [
23
+ {
24
+ "hasShapeFlexibility" : "0",
25
+ "isOptional" : "0",
26
+ "dataType" : "Float16",
27
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1152)",
28
+ "shortDescription" : "",
29
+ "shape" : "[1, 1, 1152]",
30
+ "name" : "hidden_states",
31
+ "type" : "MultiArray"
32
+ },
33
+ {
34
+ "hasShapeFlexibility" : "0",
35
+ "isOptional" : "0",
36
+ "dataType" : "Int32",
37
+ "formattedType" : "MultiArray (Int32 1)",
38
+ "shortDescription" : "",
39
+ "shape" : "[1]",
40
+ "name" : "position_ids",
41
+ "type" : "MultiArray"
42
+ },
43
+ {
44
+ "hasShapeFlexibility" : "0",
45
+ "isOptional" : "0",
46
+ "dataType" : "Float16",
47
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1 × 512)",
48
+ "shortDescription" : "",
49
+ "shape" : "[1, 1, 1, 512]",
50
+ "name" : "causal_mask",
51
+ "type" : "MultiArray"
52
+ },
53
+ {
54
+ "hasShapeFlexibility" : "0",
55
+ "isOptional" : "0",
56
+ "dataType" : "Int32",
57
+ "formattedType" : "MultiArray (Int32 1)",
58
+ "shortDescription" : "",
59
+ "shape" : "[1]",
60
+ "name" : "current_pos",
61
+ "type" : "MultiArray"
62
+ }
63
+ ],
64
+ "outputSchema" : [
65
+ {
66
+ "hasShapeFlexibility" : "0",
67
+ "isOptional" : "0",
68
+ "dataType" : "Float16",
69
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1152)",
70
+ "shortDescription" : "",
71
+ "shape" : "[1, 1, 1152]",
72
+ "name" : "output_hidden_states",
73
+ "type" : "MultiArray"
74
+ }
75
+ ],
76
+ "modelParameters" : [
77
+
78
+ ],
79
+ "storagePrecision" : "Float16",
80
+ "method" : "predict",
81
+ "functions" : [
82
+ {
83
+ "inputSchema" : [
84
+ {
85
+ "hasShapeFlexibility" : "0",
86
+ "isOptional" : "0",
87
+ "dataType" : "Float16",
88
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1152)",
89
+ "shortDescription" : "",
90
+ "shape" : "[1, 1, 1152]",
91
+ "name" : "hidden_states",
92
+ "type" : "MultiArray"
93
+ },
94
+ {
95
+ "hasShapeFlexibility" : "0",
96
+ "isOptional" : "0",
97
+ "dataType" : "Int32",
98
+ "formattedType" : "MultiArray (Int32 1)",
99
+ "shortDescription" : "",
100
+ "shape" : "[1]",
101
+ "name" : "position_ids",
102
+ "type" : "MultiArray"
103
+ },
104
+ {
105
+ "hasShapeFlexibility" : "0",
106
+ "isOptional" : "0",
107
+ "dataType" : "Float16",
108
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1 × 512)",
109
+ "shortDescription" : "",
110
+ "shape" : "[1, 1, 1, 512]",
111
+ "name" : "causal_mask",
112
+ "type" : "MultiArray"
113
+ },
114
+ {
115
+ "hasShapeFlexibility" : "0",
116
+ "isOptional" : "0",
117
+ "dataType" : "Int32",
118
+ "formattedType" : "MultiArray (Int32 1)",
119
+ "shortDescription" : "",
120
+ "shape" : "[1]",
121
+ "name" : "current_pos",
122
+ "type" : "MultiArray"
123
+ }
124
+ ],
125
+ "computePrecision" : "Mixed (Float16, Int16, Int32, UInt16)",
126
+ "storagePrecision" : "Float16",
127
+ "stateSchema" : [
128
+ {
129
+ "dataType" : "Float16",
130
+ "isOptional" : "0",
131
+ "formattedType" : "State (Float16 52 × 1 × 512 × 256)",
132
+ "shortDescription" : "",
133
+ "shape" : "[52, 1, 512, 256]",
134
+ "name" : "model_model_kv_cache_0",
135
+ "type" : "State"
136
+ }
137
+ ],
138
+ "outputSchema" : [
139
+ {
140
+ "hasShapeFlexibility" : "0",
141
+ "isOptional" : "0",
142
+ "dataType" : "Float16",
143
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1152)",
144
+ "shortDescription" : "",
145
+ "shape" : "[1, 1, 1152]",
146
+ "name" : "output_hidden_states",
147
+ "type" : "MultiArray"
148
+ }
149
+ ],
150
+ "name" : "infer",
151
+ "mlProgramOperationTypeHistogram" : {
152
+ "Ios18.softmax" : 13,
153
+ "Ios18.expandDims" : 26,
154
+ "Ios18.mul" : 260,
155
+ "Ios18.matmul" : 26,
156
+ "Identity" : 1,
157
+ "Ios18.greaterEqual" : 1,
158
+ "Select" : 1,
159
+ "Ios18.readState" : 27,
160
+ "Tile" : 26,
161
+ "Ios18.gather" : 4,
162
+ "Ios18.add" : 67,
163
+ "Ios18.layerNorm" : 78,
164
+ "Ios18.sliceUpdate" : 26,
165
+ "Ios18.writeState" : 26,
166
+ "Ios18.reshape" : 56,
167
+ "Ios18.conv" : 91,
168
+ "Ios18.gelu" : 13,
169
+ "Ios18.concat" : 156,
170
+ "Ios18.transpose" : 78,
171
+ "Ios18.cast" : 4,
172
+ "Ios18.sliceByIndex" : 156,
173
+ "Ios18.squeeze" : 13
174
+ }
175
+ },
176
+ {
177
+ "inputSchema" : [
178
+ {
179
+ "hasShapeFlexibility" : "0",
180
+ "isOptional" : "0",
181
+ "dataType" : "Float16",
182
+ "formattedType" : "MultiArray (Float16 1 × 64 × 1152)",
183
+ "shortDescription" : "",
184
+ "shape" : "[1, 64, 1152]",
185
+ "name" : "hidden_states",
186
+ "type" : "MultiArray"
187
+ },
188
+ {
189
+ "hasShapeFlexibility" : "0",
190
+ "isOptional" : "0",
191
+ "dataType" : "Int32",
192
+ "formattedType" : "MultiArray (Int32 64)",
193
+ "shortDescription" : "",
194
+ "shape" : "[64]",
195
+ "name" : "position_ids",
196
+ "type" : "MultiArray"
197
+ },
198
+ {
199
+ "hasShapeFlexibility" : "0",
200
+ "isOptional" : "0",
201
+ "dataType" : "Float16",
202
+ "formattedType" : "MultiArray (Float16 1 × 1 × 64 × 512)",
203
+ "shortDescription" : "",
204
+ "shape" : "[1, 1, 64, 512]",
205
+ "name" : "causal_mask",
206
+ "type" : "MultiArray"
207
+ },
208
+ {
209
+ "hasShapeFlexibility" : "0",
210
+ "isOptional" : "0",
211
+ "dataType" : "Int32",
212
+ "formattedType" : "MultiArray (Int32 1)",
213
+ "shortDescription" : "",
214
+ "shape" : "[1]",
215
+ "name" : "current_pos",
216
+ "type" : "MultiArray"
217
+ }
218
+ ],
219
+ "computePrecision" : "Mixed (Float16, Int16, Int32, UInt16)",
220
+ "storagePrecision" : "Float16",
221
+ "stateSchema" : [
222
+ {
223
+ "dataType" : "Float16",
224
+ "isOptional" : "0",
225
+ "formattedType" : "State (Float16 52 × 1 × 512 × 256)",
226
+ "shortDescription" : "",
227
+ "shape" : "[52, 1, 512, 256]",
228
+ "name" : "model_model_kv_cache_0",
229
+ "type" : "State"
230
+ }
231
+ ],
232
+ "outputSchema" : [
233
+ {
234
+ "hasShapeFlexibility" : "0",
235
+ "isOptional" : "0",
236
+ "dataType" : "Float16",
237
+ "formattedType" : "MultiArray (Float16 1 × 64 × 1152)",
238
+ "shortDescription" : "",
239
+ "shape" : "[1, 64, 1152]",
240
+ "name" : "output_hidden_states",
241
+ "type" : "MultiArray"
242
+ }
243
+ ],
244
+ "name" : "prefill",
245
+ "mlProgramOperationTypeHistogram" : {
246
+ "Ios18.softmax" : 13,
247
+ "Ios18.expandDims" : 26,
248
+ "Ios18.mul" : 260,
249
+ "Ios18.matmul" : 26,
250
+ "Ios18.greaterEqual" : 1,
251
+ "Select" : 1,
252
+ "Ios18.readState" : 27,
253
+ "Tile" : 26,
254
+ "Ios18.gather" : 4,
255
+ "Ios18.add" : 67,
256
+ "Ios18.layerNorm" : 78,
257
+ "Ios18.sliceUpdate" : 26,
258
+ "Ios18.writeState" : 26,
259
+ "Ios18.reshape" : 95,
260
+ "Ios18.conv" : 91,
261
+ "Ios18.gelu" : 13,
262
+ "Ios18.concat" : 156,
263
+ "Ios18.transpose" : 121,
264
+ "Ios18.cast" : 4,
265
+ "Ios18.sliceByIndex" : 156,
266
+ "Ios18.squeeze" : 13
267
+ }
268
+ }
269
+ ],
270
+ "version" : "0.3.5",
271
+ "isUpdatable" : "0",
272
+ "defaultFunctionName" : "infer",
273
+ "specificationVersion" : 9,
274
+ "stateSchema" : [
275
+ {
276
+ "dataType" : "Float16",
277
+ "isOptional" : "0",
278
+ "formattedType" : "State (Float16 52 × 1 × 512 × 256)",
279
+ "shortDescription" : "",
280
+ "shape" : "[52, 1, 512, 256]",
281
+ "name" : "model_model_kv_cache_0",
282
+ "type" : "State"
283
+ }
284
+ ],
285
+ "computePrecision" : "Mixed (Float16, Int16, Int32, UInt16)",
286
+ "mlProgramOperationTypeHistogram" : {
287
+ "Ios18.softmax" : 13,
288
+ "Ios18.expandDims" : 26,
289
+ "Ios18.mul" : 260,
290
+ "Ios18.matmul" : 26,
291
+ "Identity" : 1,
292
+ "Ios18.greaterEqual" : 1,
293
+ "Select" : 1,
294
+ "Ios18.readState" : 27,
295
+ "Tile" : 26,
296
+ "Ios18.gather" : 4,
297
+ "Ios18.add" : 67,
298
+ "Ios18.layerNorm" : 78,
299
+ "Ios18.sliceUpdate" : 26,
300
+ "Ios18.writeState" : 26,
301
+ "Ios18.reshape" : 56,
302
+ "Ios18.conv" : 91,
303
+ "Ios18.gelu" : 13,
304
+ "Ios18.concat" : 156,
305
+ "Ios18.transpose" : 78,
306
+ "Ios18.cast" : 4,
307
+ "Ios18.sliceByIndex" : 156,
308
+ "Ios18.squeeze" : 13
309
+ },
310
+ "shortDescription" : "Anemll Model: Multifunction FFN+Prefill",
311
+ "generatedClassName" : "gemma3_FFN_PF_chunk_01of02",
312
+ "author" : "Converted with Anemll v0.3.5",
313
+ "modelType" : {
314
+ "name" : "MLModelType_mlProgram"
315
+ }
316
+ }
317
+ ]
gemma3_FFN_PF_chunk_01of02.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
gemma3_FFN_PF_chunk_01of02.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b142c51be9abc0d1ed8b63f4286b38e4843a0080ce84ab7168e2d135700c8a14
3
+ size 700003200
gemma3_FFN_PF_chunk_02of02.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d9d1f32803f044c836158996b82cb66d150e89530f096468a45e3f145a925f87
3
+ size 243
gemma3_FFN_PF_chunk_02of02.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f667d6722c60dfe1569e0217b44f795255607a8115576c5991ef3cd2c5349b56
3
+ size 953
gemma3_FFN_PF_chunk_02of02.mlmodelc/metadata.json ADDED
@@ -0,0 +1,317 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "userDefinedMetadata" : {
5
+ "com.github.apple.coremltools.source" : "torch==2.5.0",
6
+ "com.github.apple.coremltools.source_dialect" : "TorchScript",
7
+ "com.github.apple.coremltools.version" : "9.0",
8
+ "com.anemll.context_length" : "512",
9
+ "com.anemll.num_chunks" : "2",
10
+ "com.anemll.info" : "Converted with Anemll v0.3.5",
11
+ "com.anemll.batch_size" : "64",
12
+ "com.anemll.chunk_no" : "2"
13
+ },
14
+ "availability" : {
15
+ "macOS" : "15.0",
16
+ "tvOS" : "18.0",
17
+ "visionOS" : "2.0",
18
+ "watchOS" : "11.0",
19
+ "iOS" : "18.0",
20
+ "macCatalyst" : "18.0"
21
+ },
22
+ "inputSchema" : [
23
+ {
24
+ "hasShapeFlexibility" : "0",
25
+ "isOptional" : "0",
26
+ "dataType" : "Float16",
27
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1152)",
28
+ "shortDescription" : "",
29
+ "shape" : "[1, 1, 1152]",
30
+ "name" : "hidden_states",
31
+ "type" : "MultiArray"
32
+ },
33
+ {
34
+ "hasShapeFlexibility" : "0",
35
+ "isOptional" : "0",
36
+ "dataType" : "Int32",
37
+ "formattedType" : "MultiArray (Int32 1)",
38
+ "shortDescription" : "",
39
+ "shape" : "[1]",
40
+ "name" : "position_ids",
41
+ "type" : "MultiArray"
42
+ },
43
+ {
44
+ "hasShapeFlexibility" : "0",
45
+ "isOptional" : "0",
46
+ "dataType" : "Float16",
47
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1 × 512)",
48
+ "shortDescription" : "",
49
+ "shape" : "[1, 1, 1, 512]",
50
+ "name" : "causal_mask",
51
+ "type" : "MultiArray"
52
+ },
53
+ {
54
+ "hasShapeFlexibility" : "0",
55
+ "isOptional" : "0",
56
+ "dataType" : "Int32",
57
+ "formattedType" : "MultiArray (Int32 1)",
58
+ "shortDescription" : "",
59
+ "shape" : "[1]",
60
+ "name" : "current_pos",
61
+ "type" : "MultiArray"
62
+ }
63
+ ],
64
+ "outputSchema" : [
65
+ {
66
+ "hasShapeFlexibility" : "0",
67
+ "isOptional" : "0",
68
+ "dataType" : "Float16",
69
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1152)",
70
+ "shortDescription" : "",
71
+ "shape" : "[1, 1, 1152]",
72
+ "name" : "output_hidden_states",
73
+ "type" : "MultiArray"
74
+ }
75
+ ],
76
+ "modelParameters" : [
77
+
78
+ ],
79
+ "storagePrecision" : "Float16",
80
+ "method" : "predict",
81
+ "functions" : [
82
+ {
83
+ "inputSchema" : [
84
+ {
85
+ "hasShapeFlexibility" : "0",
86
+ "isOptional" : "0",
87
+ "dataType" : "Float16",
88
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1152)",
89
+ "shortDescription" : "",
90
+ "shape" : "[1, 1, 1152]",
91
+ "name" : "hidden_states",
92
+ "type" : "MultiArray"
93
+ },
94
+ {
95
+ "hasShapeFlexibility" : "0",
96
+ "isOptional" : "0",
97
+ "dataType" : "Int32",
98
+ "formattedType" : "MultiArray (Int32 1)",
99
+ "shortDescription" : "",
100
+ "shape" : "[1]",
101
+ "name" : "position_ids",
102
+ "type" : "MultiArray"
103
+ },
104
+ {
105
+ "hasShapeFlexibility" : "0",
106
+ "isOptional" : "0",
107
+ "dataType" : "Float16",
108
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1 × 512)",
109
+ "shortDescription" : "",
110
+ "shape" : "[1, 1, 1, 512]",
111
+ "name" : "causal_mask",
112
+ "type" : "MultiArray"
113
+ },
114
+ {
115
+ "hasShapeFlexibility" : "0",
116
+ "isOptional" : "0",
117
+ "dataType" : "Int32",
118
+ "formattedType" : "MultiArray (Int32 1)",
119
+ "shortDescription" : "",
120
+ "shape" : "[1]",
121
+ "name" : "current_pos",
122
+ "type" : "MultiArray"
123
+ }
124
+ ],
125
+ "computePrecision" : "Mixed (Float16, Int16, Int32, UInt16)",
126
+ "storagePrecision" : "Float16",
127
+ "stateSchema" : [
128
+ {
129
+ "dataType" : "Float16",
130
+ "isOptional" : "0",
131
+ "formattedType" : "State (Float16 52 × 1 × 512 × 256)",
132
+ "shortDescription" : "",
133
+ "shape" : "[52, 1, 512, 256]",
134
+ "name" : "model_model_kv_cache_0",
135
+ "type" : "State"
136
+ }
137
+ ],
138
+ "outputSchema" : [
139
+ {
140
+ "hasShapeFlexibility" : "0",
141
+ "isOptional" : "0",
142
+ "dataType" : "Float16",
143
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1152)",
144
+ "shortDescription" : "",
145
+ "shape" : "[1, 1, 1152]",
146
+ "name" : "output_hidden_states",
147
+ "type" : "MultiArray"
148
+ }
149
+ ],
150
+ "name" : "infer",
151
+ "mlProgramOperationTypeHistogram" : {
152
+ "Ios18.softmax" : 13,
153
+ "Ios18.expandDims" : 26,
154
+ "Ios18.mul" : 262,
155
+ "Ios18.matmul" : 26,
156
+ "Identity" : 1,
157
+ "Ios18.greaterEqual" : 1,
158
+ "Select" : 1,
159
+ "Ios18.readState" : 27,
160
+ "Tile" : 26,
161
+ "Ios18.gather" : 4,
162
+ "Ios18.add" : 67,
163
+ "Ios18.layerNorm" : 79,
164
+ "Ios18.sliceUpdate" : 26,
165
+ "Ios18.writeState" : 26,
166
+ "Ios18.reshape" : 56,
167
+ "Ios18.conv" : 91,
168
+ "Ios18.gelu" : 13,
169
+ "Ios18.concat" : 157,
170
+ "Ios18.transpose" : 78,
171
+ "Ios18.cast" : 4,
172
+ "Ios18.sliceByIndex" : 157,
173
+ "Ios18.squeeze" : 13
174
+ }
175
+ },
176
+ {
177
+ "inputSchema" : [
178
+ {
179
+ "hasShapeFlexibility" : "0",
180
+ "isOptional" : "0",
181
+ "dataType" : "Float16",
182
+ "formattedType" : "MultiArray (Float16 1 × 64 × 1152)",
183
+ "shortDescription" : "",
184
+ "shape" : "[1, 64, 1152]",
185
+ "name" : "hidden_states",
186
+ "type" : "MultiArray"
187
+ },
188
+ {
189
+ "hasShapeFlexibility" : "0",
190
+ "isOptional" : "0",
191
+ "dataType" : "Int32",
192
+ "formattedType" : "MultiArray (Int32 64)",
193
+ "shortDescription" : "",
194
+ "shape" : "[64]",
195
+ "name" : "position_ids",
196
+ "type" : "MultiArray"
197
+ },
198
+ {
199
+ "hasShapeFlexibility" : "0",
200
+ "isOptional" : "0",
201
+ "dataType" : "Float16",
202
+ "formattedType" : "MultiArray (Float16 1 × 1 × 64 × 512)",
203
+ "shortDescription" : "",
204
+ "shape" : "[1, 1, 64, 512]",
205
+ "name" : "causal_mask",
206
+ "type" : "MultiArray"
207
+ },
208
+ {
209
+ "hasShapeFlexibility" : "0",
210
+ "isOptional" : "0",
211
+ "dataType" : "Int32",
212
+ "formattedType" : "MultiArray (Int32 1)",
213
+ "shortDescription" : "",
214
+ "shape" : "[1]",
215
+ "name" : "current_pos",
216
+ "type" : "MultiArray"
217
+ }
218
+ ],
219
+ "computePrecision" : "Mixed (Float16, Int16, Int32, UInt16)",
220
+ "storagePrecision" : "Float16",
221
+ "stateSchema" : [
222
+ {
223
+ "dataType" : "Float16",
224
+ "isOptional" : "0",
225
+ "formattedType" : "State (Float16 52 × 1 × 512 × 256)",
226
+ "shortDescription" : "",
227
+ "shape" : "[52, 1, 512, 256]",
228
+ "name" : "model_model_kv_cache_0",
229
+ "type" : "State"
230
+ }
231
+ ],
232
+ "outputSchema" : [
233
+ {
234
+ "hasShapeFlexibility" : "0",
235
+ "isOptional" : "0",
236
+ "dataType" : "Float16",
237
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1152)",
238
+ "shortDescription" : "",
239
+ "shape" : "[1, 1, 1152]",
240
+ "name" : "output_hidden_states",
241
+ "type" : "MultiArray"
242
+ }
243
+ ],
244
+ "name" : "prefill",
245
+ "mlProgramOperationTypeHistogram" : {
246
+ "Ios18.softmax" : 13,
247
+ "Ios18.expandDims" : 26,
248
+ "Ios18.mul" : 260,
249
+ "Ios18.matmul" : 26,
250
+ "Ios18.greaterEqual" : 1,
251
+ "Select" : 1,
252
+ "Ios18.readState" : 27,
253
+ "Tile" : 26,
254
+ "Ios18.gather" : 4,
255
+ "Ios18.add" : 67,
256
+ "Ios18.layerNorm" : 78,
257
+ "Ios18.sliceUpdate" : 26,
258
+ "Ios18.writeState" : 26,
259
+ "Ios18.reshape" : 95,
260
+ "Ios18.conv" : 91,
261
+ "Ios18.gelu" : 13,
262
+ "Ios18.concat" : 156,
263
+ "Ios18.transpose" : 121,
264
+ "Ios18.cast" : 4,
265
+ "Ios18.sliceByIndex" : 157,
266
+ "Ios18.squeeze" : 13
267
+ }
268
+ }
269
+ ],
270
+ "version" : "0.3.5",
271
+ "isUpdatable" : "0",
272
+ "defaultFunctionName" : "infer",
273
+ "specificationVersion" : 9,
274
+ "stateSchema" : [
275
+ {
276
+ "dataType" : "Float16",
277
+ "isOptional" : "0",
278
+ "formattedType" : "State (Float16 52 × 1 × 512 × 256)",
279
+ "shortDescription" : "",
280
+ "shape" : "[52, 1, 512, 256]",
281
+ "name" : "model_model_kv_cache_0",
282
+ "type" : "State"
283
+ }
284
+ ],
285
+ "computePrecision" : "Mixed (Float16, Int16, Int32, UInt16)",
286
+ "mlProgramOperationTypeHistogram" : {
287
+ "Ios18.softmax" : 13,
288
+ "Ios18.expandDims" : 26,
289
+ "Ios18.mul" : 262,
290
+ "Ios18.matmul" : 26,
291
+ "Identity" : 1,
292
+ "Ios18.greaterEqual" : 1,
293
+ "Select" : 1,
294
+ "Ios18.readState" : 27,
295
+ "Tile" : 26,
296
+ "Ios18.gather" : 4,
297
+ "Ios18.add" : 67,
298
+ "Ios18.layerNorm" : 79,
299
+ "Ios18.sliceUpdate" : 26,
300
+ "Ios18.writeState" : 26,
301
+ "Ios18.reshape" : 56,
302
+ "Ios18.conv" : 91,
303
+ "Ios18.gelu" : 13,
304
+ "Ios18.concat" : 157,
305
+ "Ios18.transpose" : 78,
306
+ "Ios18.cast" : 4,
307
+ "Ios18.sliceByIndex" : 157,
308
+ "Ios18.squeeze" : 13
309
+ },
310
+ "shortDescription" : "Anemll Model: Multifunction FFN+Prefill",
311
+ "generatedClassName" : "gemma3_FFN_PF_chunk_02of02",
312
+ "author" : "Converted with Anemll v0.3.5",
313
+ "modelType" : {
314
+ "name" : "MLModelType_mlProgram"
315
+ }
316
+ }
317
+ ]
gemma3_FFN_PF_chunk_02of02.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
gemma3_FFN_PF_chunk_02of02.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2e7b695eac0eb83745e0887f138cd5bfefa3ae8dd27b97728743538ef443ef26
3
+ size 700005568
gemma3_embeddings.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d27a0e12ebbb87563fc5f75c8627012001299ad279758beb88ac2b2f0463821d
3
+ size 243
gemma3_embeddings.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2ac0bca33ec9a564620ebd2c064f1d361f56c1dcc0401fc21de9af80968b25ab
3
+ size 559
gemma3_embeddings.mlmodelc/metadata.json ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.3.5",
18
+ "modelParameters" : [
19
+
20
+ ],
21
+ "author" : "Converted with Anemll v0.3.5",
22
+ "specificationVersion" : 9,
23
+ "storagePrecision" : "Float16",
24
+ "mlProgramOperationTypeHistogram" : {
25
+ "Ios18.greaterEqual" : 1,
26
+ "Ios18.add" : 1,
27
+ "Select" : 1,
28
+ "Ios18.gather" : 1,
29
+ "Ios18.mul" : 1
30
+ },
31
+ "computePrecision" : "Mixed (Float16, Int32)",
32
+ "stateSchema" : [
33
+
34
+ ],
35
+ "isUpdatable" : "0",
36
+ "availability" : {
37
+ "macOS" : "15.0",
38
+ "tvOS" : "18.0",
39
+ "visionOS" : "2.0",
40
+ "watchOS" : "11.0",
41
+ "iOS" : "18.0",
42
+ "macCatalyst" : "18.0"
43
+ },
44
+ "modelType" : {
45
+ "name" : "MLModelType_mlProgram"
46
+ },
47
+ "inputSchema" : [
48
+ {
49
+ "shortDescription" : "",
50
+ "dataType" : "Int32",
51
+ "hasShapeFlexibility" : "1",
52
+ "isOptional" : "0",
53
+ "shapeFlexibility" : "1 × 1 | 1 × 64",
54
+ "formattedType" : "MultiArray (Int32 1 × 1)",
55
+ "type" : "MultiArray",
56
+ "shape" : "[1, 1]",
57
+ "name" : "input_ids",
58
+ "enumeratedShapes" : "[[1, 1], [1, 64]]"
59
+ }
60
+ ],
61
+ "userDefinedMetadata" : {
62
+ "com.github.apple.coremltools.version" : "9.0",
63
+ "com.github.apple.coremltools.conversion_date" : "2026-02-05",
64
+ "com.github.apple.coremltools.source_dialect" : "TorchScript",
65
+ "com.github.apple.coremltools.source" : "torch==2.5.0",
66
+ "com.anemll.info" : "Converted with Anemll v0.3.5",
67
+ "com.anemll.context_length" : "512"
68
+ },
69
+ "generatedClassName" : "gemma3_embeddings",
70
+ "method" : "predict"
71
+ }
72
+ ]
gemma3_embeddings.mlmodelc/model.mil ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ tensor<fp16, [262144, 1152]> embed_tokens_weight = const()[name = string("embed_tokens_weight"), val = tensor<fp16, [262144, 1152]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(64)))];
6
+ int32 hidden_states_1_batch_dims_0 = const()[name = string("hidden_states_1_batch_dims_0"), val = int32(0)];
7
+ bool hidden_states_1_validate_indices_0 = const()[name = string("hidden_states_1_validate_indices_0"), val = bool(false)];
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(262144)];
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_1_axis_1 = const()[name = string("hidden_states_1_axis_1"), val = int32(0)];
14
+ tensor<fp16, [1, ?, 1152]> hidden_states_1 = gather(axis = hidden_states_1_axis_1, batch_dims = hidden_states_1_batch_dims_0, indices = select_0, validate_indices = hidden_states_1_validate_indices_0, x = embed_tokens_weight)[name = string("hidden_states_1")];
15
+ fp16 var_7_to_fp16 = const()[name = string("op_7_to_fp16"), val = fp16(0x1.0f8p+5)];
16
+ tensor<fp16, [1, ?, 1152]> hidden_states = mul(x = hidden_states_1, y = var_7_to_fp16)[name = string("hidden_states_cast_fp16")];
17
+ } -> (hidden_states);
18
+ }
gemma3_embeddings.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cb7f442d5b2972d56a7eab76c51005254a18e98045f75ee43fbb1fe313ed01fe
3
+ size 603979904
gemma3_lm_head.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:495f4e1f1aad7acc4effbae1aba3865e5a76acd9c165613fa2877b5953ca457d
3
+ size 243
gemma3_lm_head.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0978aceaf36c84934258bdd30438a245ac855a2f93cbb530671e38b4452945b5
3
+ size 572
gemma3_lm_head.mlmodelc/metadata.json ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "shortDescription" : "Anemll Model (LM Head) converted to CoreML",
4
+ "metadataOutputVersion" : "3.0",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Int32",
10
+ "formattedType" : "MultiArray (Int32 16)",
11
+ "shortDescription" : "",
12
+ "shape" : "[16]",
13
+ "name" : "argmax_idx",
14
+ "type" : "MultiArray"
15
+ },
16
+ {
17
+ "hasShapeFlexibility" : "0",
18
+ "isOptional" : "0",
19
+ "dataType" : "Float16",
20
+ "formattedType" : "MultiArray (Float16 16)",
21
+ "shortDescription" : "",
22
+ "shape" : "[16]",
23
+ "name" : "argmax_val",
24
+ "type" : "MultiArray"
25
+ }
26
+ ],
27
+ "version" : "0.3.5",
28
+ "modelParameters" : [
29
+
30
+ ],
31
+ "author" : "Converted with Anemll v0.3.5",
32
+ "specificationVersion" : 9,
33
+ "storagePrecision" : "Float16",
34
+ "mlProgramOperationTypeHistogram" : {
35
+ "Ios18.squeeze" : 20,
36
+ "Ios18.reduceArgmax" : 16,
37
+ "Ios18.concat" : 2,
38
+ "Ios18.transpose" : 17,
39
+ "Ios18.gatherAlongAxis" : 16,
40
+ "Ios18.expandDims" : 1,
41
+ "Ios18.conv" : 16,
42
+ "Ios18.cast" : 18
43
+ },
44
+ "computePrecision" : "Mixed (Float16, Int16, Int32, UInt16)",
45
+ "stateSchema" : [
46
+
47
+ ],
48
+ "isUpdatable" : "0",
49
+ "availability" : {
50
+ "macOS" : "15.0",
51
+ "tvOS" : "18.0",
52
+ "visionOS" : "2.0",
53
+ "watchOS" : "11.0",
54
+ "iOS" : "18.0",
55
+ "macCatalyst" : "18.0"
56
+ },
57
+ "modelType" : {
58
+ "name" : "MLModelType_mlProgram"
59
+ },
60
+ "inputSchema" : [
61
+ {
62
+ "hasShapeFlexibility" : "0",
63
+ "isOptional" : "0",
64
+ "dataType" : "Float16",
65
+ "formattedType" : "MultiArray (Float16 1 × 1 × 1152)",
66
+ "shortDescription" : "",
67
+ "shape" : "[1, 1, 1152]",
68
+ "name" : "hidden_states",
69
+ "type" : "MultiArray"
70
+ }
71
+ ],
72
+ "userDefinedMetadata" : {
73
+ "com.github.apple.coremltools.conversion_date" : "2026-02-05",
74
+ "com.github.apple.coremltools.version" : "9.0",
75
+ "com.anemll.context_length" : "512",
76
+ "com.github.apple.coremltools.source" : "torch==2.5.0",
77
+ "com.anemll.info" : "Converted with Anemll v0.3.5",
78
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
79
+ },
80
+ "generatedClassName" : "gemma3_lm_head",
81
+ "method" : "predict"
82
+ }
83
+ ]
gemma3_lm_head.mlmodelc/model.mil ADDED
@@ -0,0 +1,348 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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<fp16, [1, 1, 1152]> 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, 1152, 1]> var_6_cast_fp16 = transpose(perm = var_5, x = hidden_states)[name = string("transpose_16")];
8
+ tensor<fp16, [1, 1152, 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, [16384, 1152, 1, 1]> var_9_promoted_to_fp16 = const()[name = string("op_9_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(64)))];
15
+ tensor<fp16, [1, 16384, 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 = var_9_promoted_to_fp16, 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, 16384, 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]> logits_1_perm_0 = const()[name = string("logits_1_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, [16384, 1152, 1, 1]> var_35_promoted_to_fp16 = const()[name = string("op_35_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(37748864)))];
25
+ tensor<fp16, [1, 16384, 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 = var_35_promoted_to_fp16, 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, 16384, 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]> logits_3_perm_0 = const()[name = string("logits_3_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, [16384, 1152, 1, 1]> var_61_promoted_to_fp16 = const()[name = string("op_61_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(75497664)))];
35
+ tensor<fp16, [1, 16384, 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 = var_61_promoted_to_fp16, 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, 16384, 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]> logits_5_perm_0 = const()[name = string("logits_5_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, [16384, 1152, 1, 1]> var_87_promoted_to_fp16 = const()[name = string("op_87_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(113246464)))];
45
+ tensor<fp16, [1, 16384, 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 = var_87_promoted_to_fp16, 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, 16384, 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]> logits_7_perm_0 = const()[name = string("logits_7_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, [16384, 1152, 1, 1]> var_113_promoted_to_fp16 = const()[name = string("op_113_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(150995264)))];
55
+ tensor<fp16, [1, 16384, 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 = var_113_promoted_to_fp16, 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, 16384, 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]> logits_9_perm_0 = const()[name = string("logits_9_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, [16384, 1152, 1, 1]> var_139_promoted_to_fp16 = const()[name = string("op_139_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(188744064)))];
65
+ tensor<fp16, [1, 16384, 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 = var_139_promoted_to_fp16, 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, 16384, 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]> logits_11_perm_0 = const()[name = string("logits_11_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, [16384, 1152, 1, 1]> var_165_promoted_to_fp16 = const()[name = string("op_165_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(226492864)))];
75
+ tensor<fp16, [1, 16384, 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 = var_165_promoted_to_fp16, 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, 16384, 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]> logits_13_perm_0 = const()[name = string("logits_13_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, [16384, 1152, 1, 1]> var_191_promoted_to_fp16 = const()[name = string("op_191_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(264241664)))];
85
+ tensor<fp16, [1, 16384, 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 = var_191_promoted_to_fp16, 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, 16384, 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]> logits_15_perm_0 = const()[name = string("logits_15_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, [16384, 1152, 1, 1]> var_217_promoted_to_fp16 = const()[name = string("op_217_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(301990464)))];
95
+ tensor<fp16, [1, 16384, 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 = var_217_promoted_to_fp16, 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, 16384, 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]> logits_17_perm_0 = const()[name = string("logits_17_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, [16384, 1152, 1, 1]> var_243_promoted_to_fp16 = const()[name = string("op_243_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(339739264)))];
105
+ tensor<fp16, [1, 16384, 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 = var_243_promoted_to_fp16, 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, 16384, 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]> logits_19_perm_0 = const()[name = string("logits_19_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, [16384, 1152, 1, 1]> var_269_promoted_to_fp16 = const()[name = string("op_269_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(377488064)))];
115
+ tensor<fp16, [1, 16384, 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 = var_269_promoted_to_fp16, 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, 16384, 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]> logits_21_perm_0 = const()[name = string("logits_21_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, [16384, 1152, 1, 1]> var_295_promoted_to_fp16 = const()[name = string("op_295_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(415236864)))];
125
+ tensor<fp16, [1, 16384, 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 = var_295_promoted_to_fp16, 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, 16384, 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]> logits_23_perm_0 = const()[name = string("logits_23_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, [16384, 1152, 1, 1]> var_321_promoted_to_fp16 = const()[name = string("op_321_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(452985664)))];
135
+ tensor<fp16, [1, 16384, 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 = var_321_promoted_to_fp16, 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, 16384, 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]> logits_25_perm_0 = const()[name = string("logits_25_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, [16384, 1152, 1, 1]> var_347_promoted_to_fp16 = const()[name = string("op_347_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(490734464)))];
145
+ tensor<fp16, [1, 16384, 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 = var_347_promoted_to_fp16, 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, 16384, 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]> logits_27_perm_0 = const()[name = string("logits_27_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, [16384, 1152, 1, 1]> var_373_promoted_to_fp16 = const()[name = string("op_373_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(528483264)))];
155
+ tensor<fp16, [1, 16384, 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 = var_373_promoted_to_fp16, 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, 16384, 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]> logits_29_perm_0 = const()[name = string("logits_29_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, [16384, 1152, 1, 1]> var_399_promoted_to_fp16 = const()[name = string("op_399_promoted_to_fp16"), val = tensor<fp16, [16384, 1152, 1, 1]>(BLOBFILE(path = string("@model_path/weights/weight.bin"), offset = uint64(566232064)))];
165
+ tensor<fp16, [1, 16384, 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 = var_399_promoted_to_fp16, 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, 16384, 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]> logits_perm_0 = const()[name = string("logits_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
169
+ int32 chunk_argmax_1_axis_0 = const()[name = string("chunk_argmax_1_axis_0"), val = int32(-1)];
170
+ bool chunk_argmax_1_keep_dims_0 = const()[name = string("chunk_argmax_1_keep_dims_0"), val = bool(true)];
171
+ string chunk_argmax_1_output_dtype_0 = const()[name = string("chunk_argmax_1_output_dtype_0"), val = string("int32")];
172
+ tensor<fp16, [1, 1, 16384]> logits_1_cast_fp16 = transpose(perm = logits_1_perm_0, x = var_31_cast_fp16)[name = string("transpose_15")];
173
+ tensor<int32, [1, 1, 1]> chunk_argmax_1_cast_fp16 = reduce_argmax(axis = chunk_argmax_1_axis_0, keep_dims = chunk_argmax_1_keep_dims_0, output_dtype = chunk_argmax_1_output_dtype_0, x = logits_1_cast_fp16)[name = string("chunk_argmax_1_cast_fp16")];
174
+ int32 var_428 = const()[name = string("op_428"), val = int32(-1)];
175
+ bool var_430_validate_indices_0 = const()[name = string("op_430_validate_indices_0"), val = bool(false)];
176
+ string chunk_argmax_1_cast_fp16_to_uint16_dtype_0 = const()[name = string("chunk_argmax_1_cast_fp16_to_uint16_dtype_0"), val = string("uint16")];
177
+ tensor<uint16, [1, 1, 1]> chunk_argmax_1_cast_fp16_to_uint16 = cast(dtype = chunk_argmax_1_cast_fp16_to_uint16_dtype_0, x = chunk_argmax_1_cast_fp16)[name = string("cast_19")];
178
+ tensor<fp16, [1, 1, 1]> var_430_cast_fp16_cast_int16 = gather_along_axis(axis = var_428, indices = chunk_argmax_1_cast_fp16_to_uint16, validate_indices = var_430_validate_indices_0, x = logits_1_cast_fp16)[name = string("op_430_cast_fp16_cast_int16")];
179
+ int32 chunk_argmax_3_axis_0 = const()[name = string("chunk_argmax_3_axis_0"), val = int32(-1)];
180
+ bool chunk_argmax_3_keep_dims_0 = const()[name = string("chunk_argmax_3_keep_dims_0"), val = bool(true)];
181
+ string chunk_argmax_3_output_dtype_0 = const()[name = string("chunk_argmax_3_output_dtype_0"), val = string("int32")];
182
+ tensor<fp16, [1, 1, 16384]> logits_3_cast_fp16 = transpose(perm = logits_3_perm_0, x = var_57_cast_fp16)[name = string("transpose_14")];
183
+ tensor<int32, [1, 1, 1]> chunk_argmax_3_cast_fp16 = reduce_argmax(axis = chunk_argmax_3_axis_0, keep_dims = chunk_argmax_3_keep_dims_0, output_dtype = chunk_argmax_3_output_dtype_0, x = logits_3_cast_fp16)[name = string("chunk_argmax_3_cast_fp16")];
184
+ int32 var_439 = const()[name = string("op_439"), val = int32(-1)];
185
+ bool var_441_validate_indices_0 = const()[name = string("op_441_validate_indices_0"), val = bool(false)];
186
+ string chunk_argmax_3_cast_fp16_to_int16_dtype_0 = const()[name = string("chunk_argmax_3_cast_fp16_to_int16_dtype_0"), val = string("int16")];
187
+ tensor<int16, [1, 1, 1]> chunk_argmax_3_cast_fp16_to_int16 = cast(dtype = chunk_argmax_3_cast_fp16_to_int16_dtype_0, x = chunk_argmax_3_cast_fp16)[name = string("cast_18")];
188
+ tensor<fp16, [1, 1, 1]> var_441_cast_fp16_cast_int16 = gather_along_axis(axis = var_439, indices = chunk_argmax_3_cast_fp16_to_int16, validate_indices = var_441_validate_indices_0, x = logits_3_cast_fp16)[name = string("op_441_cast_fp16_cast_int16")];
189
+ int32 chunk_argmax_5_axis_0 = const()[name = string("chunk_argmax_5_axis_0"), val = int32(-1)];
190
+ bool chunk_argmax_5_keep_dims_0 = const()[name = string("chunk_argmax_5_keep_dims_0"), val = bool(true)];
191
+ string chunk_argmax_5_output_dtype_0 = const()[name = string("chunk_argmax_5_output_dtype_0"), val = string("int32")];
192
+ tensor<fp16, [1, 1, 16384]> logits_5_cast_fp16 = transpose(perm = logits_5_perm_0, x = var_83_cast_fp16)[name = string("transpose_13")];
193
+ tensor<int32, [1, 1, 1]> chunk_argmax_5_cast_fp16 = reduce_argmax(axis = chunk_argmax_5_axis_0, keep_dims = chunk_argmax_5_keep_dims_0, output_dtype = chunk_argmax_5_output_dtype_0, x = logits_5_cast_fp16)[name = string("chunk_argmax_5_cast_fp16")];
194
+ int32 var_450 = const()[name = string("op_450"), val = int32(-1)];
195
+ bool var_452_validate_indices_0 = const()[name = string("op_452_validate_indices_0"), val = bool(false)];
196
+ string chunk_argmax_5_cast_fp16_to_int16_dtype_0 = const()[name = string("chunk_argmax_5_cast_fp16_to_int16_dtype_0"), val = string("int16")];
197
+ tensor<int16, [1, 1, 1]> chunk_argmax_5_cast_fp16_to_int16 = cast(dtype = chunk_argmax_5_cast_fp16_to_int16_dtype_0, x = chunk_argmax_5_cast_fp16)[name = string("cast_17")];
198
+ tensor<fp16, [1, 1, 1]> var_452_cast_fp16_cast_int16 = gather_along_axis(axis = var_450, indices = chunk_argmax_5_cast_fp16_to_int16, validate_indices = var_452_validate_indices_0, x = logits_5_cast_fp16)[name = string("op_452_cast_fp16_cast_int16")];
199
+ int32 chunk_argmax_7_axis_0 = const()[name = string("chunk_argmax_7_axis_0"), val = int32(-1)];
200
+ bool chunk_argmax_7_keep_dims_0 = const()[name = string("chunk_argmax_7_keep_dims_0"), val = bool(true)];
201
+ string chunk_argmax_7_output_dtype_0 = const()[name = string("chunk_argmax_7_output_dtype_0"), val = string("int32")];
202
+ tensor<fp16, [1, 1, 16384]> logits_7_cast_fp16 = transpose(perm = logits_7_perm_0, x = var_109_cast_fp16)[name = string("transpose_12")];
203
+ tensor<int32, [1, 1, 1]> chunk_argmax_7_cast_fp16 = reduce_argmax(axis = chunk_argmax_7_axis_0, keep_dims = chunk_argmax_7_keep_dims_0, output_dtype = chunk_argmax_7_output_dtype_0, x = logits_7_cast_fp16)[name = string("chunk_argmax_7_cast_fp16")];
204
+ int32 var_461 = const()[name = string("op_461"), val = int32(-1)];
205
+ bool var_463_validate_indices_0 = const()[name = string("op_463_validate_indices_0"), val = bool(false)];
206
+ string chunk_argmax_7_cast_fp16_to_int16_dtype_0 = const()[name = string("chunk_argmax_7_cast_fp16_to_int16_dtype_0"), val = string("int16")];
207
+ tensor<int16, [1, 1, 1]> chunk_argmax_7_cast_fp16_to_int16 = cast(dtype = chunk_argmax_7_cast_fp16_to_int16_dtype_0, x = chunk_argmax_7_cast_fp16)[name = string("cast_16")];
208
+ tensor<fp16, [1, 1, 1]> var_463_cast_fp16_cast_int16 = gather_along_axis(axis = var_461, indices = chunk_argmax_7_cast_fp16_to_int16, validate_indices = var_463_validate_indices_0, x = logits_7_cast_fp16)[name = string("op_463_cast_fp16_cast_int16")];
209
+ int32 chunk_argmax_9_axis_0 = const()[name = string("chunk_argmax_9_axis_0"), val = int32(-1)];
210
+ bool chunk_argmax_9_keep_dims_0 = const()[name = string("chunk_argmax_9_keep_dims_0"), val = bool(true)];
211
+ string chunk_argmax_9_output_dtype_0 = const()[name = string("chunk_argmax_9_output_dtype_0"), val = string("int32")];
212
+ tensor<fp16, [1, 1, 16384]> logits_9_cast_fp16 = transpose(perm = logits_9_perm_0, x = var_135_cast_fp16)[name = string("transpose_11")];
213
+ tensor<int32, [1, 1, 1]> chunk_argmax_9_cast_fp16 = reduce_argmax(axis = chunk_argmax_9_axis_0, keep_dims = chunk_argmax_9_keep_dims_0, output_dtype = chunk_argmax_9_output_dtype_0, x = logits_9_cast_fp16)[name = string("chunk_argmax_9_cast_fp16")];
214
+ int32 var_472 = const()[name = string("op_472"), val = int32(-1)];
215
+ bool var_474_validate_indices_0 = const()[name = string("op_474_validate_indices_0"), val = bool(false)];
216
+ string chunk_argmax_9_cast_fp16_to_int16_dtype_0 = const()[name = string("chunk_argmax_9_cast_fp16_to_int16_dtype_0"), val = string("int16")];
217
+ tensor<int16, [1, 1, 1]> chunk_argmax_9_cast_fp16_to_int16 = cast(dtype = chunk_argmax_9_cast_fp16_to_int16_dtype_0, x = chunk_argmax_9_cast_fp16)[name = string("cast_15")];
218
+ tensor<fp16, [1, 1, 1]> var_474_cast_fp16_cast_int16 = gather_along_axis(axis = var_472, indices = chunk_argmax_9_cast_fp16_to_int16, validate_indices = var_474_validate_indices_0, x = logits_9_cast_fp16)[name = string("op_474_cast_fp16_cast_int16")];
219
+ int32 chunk_argmax_11_axis_0 = const()[name = string("chunk_argmax_11_axis_0"), val = int32(-1)];
220
+ bool chunk_argmax_11_keep_dims_0 = const()[name = string("chunk_argmax_11_keep_dims_0"), val = bool(true)];
221
+ string chunk_argmax_11_output_dtype_0 = const()[name = string("chunk_argmax_11_output_dtype_0"), val = string("int32")];
222
+ tensor<fp16, [1, 1, 16384]> logits_11_cast_fp16 = transpose(perm = logits_11_perm_0, x = var_161_cast_fp16)[name = string("transpose_10")];
223
+ tensor<int32, [1, 1, 1]> chunk_argmax_11_cast_fp16 = reduce_argmax(axis = chunk_argmax_11_axis_0, keep_dims = chunk_argmax_11_keep_dims_0, output_dtype = chunk_argmax_11_output_dtype_0, x = logits_11_cast_fp16)[name = string("chunk_argmax_11_cast_fp16")];
224
+ int32 var_483 = const()[name = string("op_483"), val = int32(-1)];
225
+ bool var_485_validate_indices_0 = const()[name = string("op_485_validate_indices_0"), val = bool(false)];
226
+ string chunk_argmax_11_cast_fp16_to_int16_dtype_0 = const()[name = string("chunk_argmax_11_cast_fp16_to_int16_dtype_0"), val = string("int16")];
227
+ tensor<int16, [1, 1, 1]> chunk_argmax_11_cast_fp16_to_int16 = cast(dtype = chunk_argmax_11_cast_fp16_to_int16_dtype_0, x = chunk_argmax_11_cast_fp16)[name = string("cast_14")];
228
+ tensor<fp16, [1, 1, 1]> var_485_cast_fp16_cast_int16 = gather_along_axis(axis = var_483, indices = chunk_argmax_11_cast_fp16_to_int16, validate_indices = var_485_validate_indices_0, x = logits_11_cast_fp16)[name = string("op_485_cast_fp16_cast_int16")];
229
+ int32 chunk_argmax_13_axis_0 = const()[name = string("chunk_argmax_13_axis_0"), val = int32(-1)];
230
+ bool chunk_argmax_13_keep_dims_0 = const()[name = string("chunk_argmax_13_keep_dims_0"), val = bool(true)];
231
+ string chunk_argmax_13_output_dtype_0 = const()[name = string("chunk_argmax_13_output_dtype_0"), val = string("int32")];
232
+ tensor<fp16, [1, 1, 16384]> logits_13_cast_fp16 = transpose(perm = logits_13_perm_0, x = var_187_cast_fp16)[name = string("transpose_9")];
233
+ tensor<int32, [1, 1, 1]> chunk_argmax_13_cast_fp16 = reduce_argmax(axis = chunk_argmax_13_axis_0, keep_dims = chunk_argmax_13_keep_dims_0, output_dtype = chunk_argmax_13_output_dtype_0, x = logits_13_cast_fp16)[name = string("chunk_argmax_13_cast_fp16")];
234
+ int32 var_494 = const()[name = string("op_494"), val = int32(-1)];
235
+ bool var_496_validate_indices_0 = const()[name = string("op_496_validate_indices_0"), val = bool(false)];
236
+ string chunk_argmax_13_cast_fp16_to_int16_dtype_0 = const()[name = string("chunk_argmax_13_cast_fp16_to_int16_dtype_0"), val = string("int16")];
237
+ tensor<int16, [1, 1, 1]> chunk_argmax_13_cast_fp16_to_int16 = cast(dtype = chunk_argmax_13_cast_fp16_to_int16_dtype_0, x = chunk_argmax_13_cast_fp16)[name = string("cast_13")];
238
+ tensor<fp16, [1, 1, 1]> var_496_cast_fp16_cast_int16 = gather_along_axis(axis = var_494, indices = chunk_argmax_13_cast_fp16_to_int16, validate_indices = var_496_validate_indices_0, x = logits_13_cast_fp16)[name = string("op_496_cast_fp16_cast_int16")];
239
+ int32 chunk_argmax_15_axis_0 = const()[name = string("chunk_argmax_15_axis_0"), val = int32(-1)];
240
+ bool chunk_argmax_15_keep_dims_0 = const()[name = string("chunk_argmax_15_keep_dims_0"), val = bool(true)];
241
+ string chunk_argmax_15_output_dtype_0 = const()[name = string("chunk_argmax_15_output_dtype_0"), val = string("int32")];
242
+ tensor<fp16, [1, 1, 16384]> logits_15_cast_fp16 = transpose(perm = logits_15_perm_0, x = var_213_cast_fp16)[name = string("transpose_8")];
243
+ tensor<int32, [1, 1, 1]> chunk_argmax_15_cast_fp16 = reduce_argmax(axis = chunk_argmax_15_axis_0, keep_dims = chunk_argmax_15_keep_dims_0, output_dtype = chunk_argmax_15_output_dtype_0, x = logits_15_cast_fp16)[name = string("chunk_argmax_15_cast_fp16")];
244
+ int32 var_505 = const()[name = string("op_505"), val = int32(-1)];
245
+ bool var_507_validate_indices_0 = const()[name = string("op_507_validate_indices_0"), val = bool(false)];
246
+ string chunk_argmax_15_cast_fp16_to_int16_dtype_0 = const()[name = string("chunk_argmax_15_cast_fp16_to_int16_dtype_0"), val = string("int16")];
247
+ tensor<int16, [1, 1, 1]> chunk_argmax_15_cast_fp16_to_int16 = cast(dtype = chunk_argmax_15_cast_fp16_to_int16_dtype_0, x = chunk_argmax_15_cast_fp16)[name = string("cast_12")];
248
+ tensor<fp16, [1, 1, 1]> var_507_cast_fp16_cast_int16 = gather_along_axis(axis = var_505, indices = chunk_argmax_15_cast_fp16_to_int16, validate_indices = var_507_validate_indices_0, x = logits_15_cast_fp16)[name = string("op_507_cast_fp16_cast_int16")];
249
+ int32 chunk_argmax_17_axis_0 = const()[name = string("chunk_argmax_17_axis_0"), val = int32(-1)];
250
+ bool chunk_argmax_17_keep_dims_0 = const()[name = string("chunk_argmax_17_keep_dims_0"), val = bool(true)];
251
+ string chunk_argmax_17_output_dtype_0 = const()[name = string("chunk_argmax_17_output_dtype_0"), val = string("int32")];
252
+ tensor<fp16, [1, 1, 16384]> logits_17_cast_fp16 = transpose(perm = logits_17_perm_0, x = var_239_cast_fp16)[name = string("transpose_7")];
253
+ tensor<int32, [1, 1, 1]> chunk_argmax_17_cast_fp16 = reduce_argmax(axis = chunk_argmax_17_axis_0, keep_dims = chunk_argmax_17_keep_dims_0, output_dtype = chunk_argmax_17_output_dtype_0, x = logits_17_cast_fp16)[name = string("chunk_argmax_17_cast_fp16")];
254
+ int32 var_516 = const()[name = string("op_516"), val = int32(-1)];
255
+ bool var_518_validate_indices_0 = const()[name = string("op_518_validate_indices_0"), val = bool(false)];
256
+ string chunk_argmax_17_cast_fp16_to_int16_dtype_0 = const()[name = string("chunk_argmax_17_cast_fp16_to_int16_dtype_0"), val = string("int16")];
257
+ tensor<int16, [1, 1, 1]> chunk_argmax_17_cast_fp16_to_int16 = cast(dtype = chunk_argmax_17_cast_fp16_to_int16_dtype_0, x = chunk_argmax_17_cast_fp16)[name = string("cast_11")];
258
+ tensor<fp16, [1, 1, 1]> var_518_cast_fp16_cast_int16 = gather_along_axis(axis = var_516, indices = chunk_argmax_17_cast_fp16_to_int16, validate_indices = var_518_validate_indices_0, x = logits_17_cast_fp16)[name = string("op_518_cast_fp16_cast_int16")];
259
+ int32 chunk_argmax_19_axis_0 = const()[name = string("chunk_argmax_19_axis_0"), val = int32(-1)];
260
+ bool chunk_argmax_19_keep_dims_0 = const()[name = string("chunk_argmax_19_keep_dims_0"), val = bool(true)];
261
+ string chunk_argmax_19_output_dtype_0 = const()[name = string("chunk_argmax_19_output_dtype_0"), val = string("int32")];
262
+ tensor<fp16, [1, 1, 16384]> logits_19_cast_fp16 = transpose(perm = logits_19_perm_0, x = var_265_cast_fp16)[name = string("transpose_6")];
263
+ tensor<int32, [1, 1, 1]> chunk_argmax_19_cast_fp16 = reduce_argmax(axis = chunk_argmax_19_axis_0, keep_dims = chunk_argmax_19_keep_dims_0, output_dtype = chunk_argmax_19_output_dtype_0, x = logits_19_cast_fp16)[name = string("chunk_argmax_19_cast_fp16")];
264
+ int32 var_527 = const()[name = string("op_527"), val = int32(-1)];
265
+ bool var_529_validate_indices_0 = const()[name = string("op_529_validate_indices_0"), val = bool(false)];
266
+ string chunk_argmax_19_cast_fp16_to_int16_dtype_0 = const()[name = string("chunk_argmax_19_cast_fp16_to_int16_dtype_0"), val = string("int16")];
267
+ tensor<int16, [1, 1, 1]> chunk_argmax_19_cast_fp16_to_int16 = cast(dtype = chunk_argmax_19_cast_fp16_to_int16_dtype_0, x = chunk_argmax_19_cast_fp16)[name = string("cast_10")];
268
+ tensor<fp16, [1, 1, 1]> var_529_cast_fp16_cast_int16 = gather_along_axis(axis = var_527, indices = chunk_argmax_19_cast_fp16_to_int16, validate_indices = var_529_validate_indices_0, x = logits_19_cast_fp16)[name = string("op_529_cast_fp16_cast_int16")];
269
+ int32 chunk_argmax_21_axis_0 = const()[name = string("chunk_argmax_21_axis_0"), val = int32(-1)];
270
+ bool chunk_argmax_21_keep_dims_0 = const()[name = string("chunk_argmax_21_keep_dims_0"), val = bool(true)];
271
+ string chunk_argmax_21_output_dtype_0 = const()[name = string("chunk_argmax_21_output_dtype_0"), val = string("int32")];
272
+ tensor<fp16, [1, 1, 16384]> logits_21_cast_fp16 = transpose(perm = logits_21_perm_0, x = var_291_cast_fp16)[name = string("transpose_5")];
273
+ tensor<int32, [1, 1, 1]> chunk_argmax_21_cast_fp16 = reduce_argmax(axis = chunk_argmax_21_axis_0, keep_dims = chunk_argmax_21_keep_dims_0, output_dtype = chunk_argmax_21_output_dtype_0, x = logits_21_cast_fp16)[name = string("chunk_argmax_21_cast_fp16")];
274
+ int32 var_538 = const()[name = string("op_538"), val = int32(-1)];
275
+ bool var_540_validate_indices_0 = const()[name = string("op_540_validate_indices_0"), val = bool(false)];
276
+ string chunk_argmax_21_cast_fp16_to_int16_dtype_0 = const()[name = string("chunk_argmax_21_cast_fp16_to_int16_dtype_0"), val = string("int16")];
277
+ tensor<int16, [1, 1, 1]> chunk_argmax_21_cast_fp16_to_int16 = cast(dtype = chunk_argmax_21_cast_fp16_to_int16_dtype_0, x = chunk_argmax_21_cast_fp16)[name = string("cast_9")];
278
+ tensor<fp16, [1, 1, 1]> var_540_cast_fp16_cast_int16 = gather_along_axis(axis = var_538, indices = chunk_argmax_21_cast_fp16_to_int16, validate_indices = var_540_validate_indices_0, x = logits_21_cast_fp16)[name = string("op_540_cast_fp16_cast_int16")];
279
+ int32 chunk_argmax_23_axis_0 = const()[name = string("chunk_argmax_23_axis_0"), val = int32(-1)];
280
+ bool chunk_argmax_23_keep_dims_0 = const()[name = string("chunk_argmax_23_keep_dims_0"), val = bool(true)];
281
+ string chunk_argmax_23_output_dtype_0 = const()[name = string("chunk_argmax_23_output_dtype_0"), val = string("int32")];
282
+ tensor<fp16, [1, 1, 16384]> logits_23_cast_fp16 = transpose(perm = logits_23_perm_0, x = var_317_cast_fp16)[name = string("transpose_4")];
283
+ tensor<int32, [1, 1, 1]> chunk_argmax_23_cast_fp16 = reduce_argmax(axis = chunk_argmax_23_axis_0, keep_dims = chunk_argmax_23_keep_dims_0, output_dtype = chunk_argmax_23_output_dtype_0, x = logits_23_cast_fp16)[name = string("chunk_argmax_23_cast_fp16")];
284
+ int32 var_549 = const()[name = string("op_549"), val = int32(-1)];
285
+ bool var_551_validate_indices_0 = const()[name = string("op_551_validate_indices_0"), val = bool(false)];
286
+ string chunk_argmax_23_cast_fp16_to_int16_dtype_0 = const()[name = string("chunk_argmax_23_cast_fp16_to_int16_dtype_0"), val = string("int16")];
287
+ tensor<int16, [1, 1, 1]> chunk_argmax_23_cast_fp16_to_int16 = cast(dtype = chunk_argmax_23_cast_fp16_to_int16_dtype_0, x = chunk_argmax_23_cast_fp16)[name = string("cast_8")];
288
+ tensor<fp16, [1, 1, 1]> var_551_cast_fp16_cast_int16 = gather_along_axis(axis = var_549, indices = chunk_argmax_23_cast_fp16_to_int16, validate_indices = var_551_validate_indices_0, x = logits_23_cast_fp16)[name = string("op_551_cast_fp16_cast_int16")];
289
+ int32 chunk_argmax_25_axis_0 = const()[name = string("chunk_argmax_25_axis_0"), val = int32(-1)];
290
+ bool chunk_argmax_25_keep_dims_0 = const()[name = string("chunk_argmax_25_keep_dims_0"), val = bool(true)];
291
+ string chunk_argmax_25_output_dtype_0 = const()[name = string("chunk_argmax_25_output_dtype_0"), val = string("int32")];
292
+ tensor<fp16, [1, 1, 16384]> logits_25_cast_fp16 = transpose(perm = logits_25_perm_0, x = var_343_cast_fp16)[name = string("transpose_3")];
293
+ tensor<int32, [1, 1, 1]> chunk_argmax_25_cast_fp16 = reduce_argmax(axis = chunk_argmax_25_axis_0, keep_dims = chunk_argmax_25_keep_dims_0, output_dtype = chunk_argmax_25_output_dtype_0, x = logits_25_cast_fp16)[name = string("chunk_argmax_25_cast_fp16")];
294
+ int32 var_560 = const()[name = string("op_560"), val = int32(-1)];
295
+ bool var_562_validate_indices_0 = const()[name = string("op_562_validate_indices_0"), val = bool(false)];
296
+ string chunk_argmax_25_cast_fp16_to_int16_dtype_0 = const()[name = string("chunk_argmax_25_cast_fp16_to_int16_dtype_0"), val = string("int16")];
297
+ tensor<int16, [1, 1, 1]> chunk_argmax_25_cast_fp16_to_int16 = cast(dtype = chunk_argmax_25_cast_fp16_to_int16_dtype_0, x = chunk_argmax_25_cast_fp16)[name = string("cast_7")];
298
+ tensor<fp16, [1, 1, 1]> var_562_cast_fp16_cast_int16 = gather_along_axis(axis = var_560, indices = chunk_argmax_25_cast_fp16_to_int16, validate_indices = var_562_validate_indices_0, x = logits_25_cast_fp16)[name = string("op_562_cast_fp16_cast_int16")];
299
+ int32 chunk_argmax_27_axis_0 = const()[name = string("chunk_argmax_27_axis_0"), val = int32(-1)];
300
+ bool chunk_argmax_27_keep_dims_0 = const()[name = string("chunk_argmax_27_keep_dims_0"), val = bool(true)];
301
+ string chunk_argmax_27_output_dtype_0 = const()[name = string("chunk_argmax_27_output_dtype_0"), val = string("int32")];
302
+ tensor<fp16, [1, 1, 16384]> logits_27_cast_fp16 = transpose(perm = logits_27_perm_0, x = var_369_cast_fp16)[name = string("transpose_2")];
303
+ tensor<int32, [1, 1, 1]> chunk_argmax_27_cast_fp16 = reduce_argmax(axis = chunk_argmax_27_axis_0, keep_dims = chunk_argmax_27_keep_dims_0, output_dtype = chunk_argmax_27_output_dtype_0, x = logits_27_cast_fp16)[name = string("chunk_argmax_27_cast_fp16")];
304
+ int32 var_571 = const()[name = string("op_571"), val = int32(-1)];
305
+ bool var_573_validate_indices_0 = const()[name = string("op_573_validate_indices_0"), val = bool(false)];
306
+ string chunk_argmax_27_cast_fp16_to_int16_dtype_0 = const()[name = string("chunk_argmax_27_cast_fp16_to_int16_dtype_0"), val = string("int16")];
307
+ tensor<int16, [1, 1, 1]> chunk_argmax_27_cast_fp16_to_int16 = cast(dtype = chunk_argmax_27_cast_fp16_to_int16_dtype_0, x = chunk_argmax_27_cast_fp16)[name = string("cast_6")];
308
+ tensor<fp16, [1, 1, 1]> var_573_cast_fp16_cast_int16 = gather_along_axis(axis = var_571, indices = chunk_argmax_27_cast_fp16_to_int16, validate_indices = var_573_validate_indices_0, x = logits_27_cast_fp16)[name = string("op_573_cast_fp16_cast_int16")];
309
+ int32 chunk_argmax_29_axis_0 = const()[name = string("chunk_argmax_29_axis_0"), val = int32(-1)];
310
+ bool chunk_argmax_29_keep_dims_0 = const()[name = string("chunk_argmax_29_keep_dims_0"), val = bool(true)];
311
+ string chunk_argmax_29_output_dtype_0 = const()[name = string("chunk_argmax_29_output_dtype_0"), val = string("int32")];
312
+ tensor<fp16, [1, 1, 16384]> logits_29_cast_fp16 = transpose(perm = logits_29_perm_0, x = var_395_cast_fp16)[name = string("transpose_1")];
313
+ tensor<int32, [1, 1, 1]> chunk_argmax_29_cast_fp16 = reduce_argmax(axis = chunk_argmax_29_axis_0, keep_dims = chunk_argmax_29_keep_dims_0, output_dtype = chunk_argmax_29_output_dtype_0, x = logits_29_cast_fp16)[name = string("chunk_argmax_29_cast_fp16")];
314
+ int32 var_582 = const()[name = string("op_582"), val = int32(-1)];
315
+ bool var_584_validate_indices_0 = const()[name = string("op_584_validate_indices_0"), val = bool(false)];
316
+ string chunk_argmax_29_cast_fp16_to_int16_dtype_0 = const()[name = string("chunk_argmax_29_cast_fp16_to_int16_dtype_0"), val = string("int16")];
317
+ tensor<int16, [1, 1, 1]> chunk_argmax_29_cast_fp16_to_int16 = cast(dtype = chunk_argmax_29_cast_fp16_to_int16_dtype_0, x = chunk_argmax_29_cast_fp16)[name = string("cast_5")];
318
+ tensor<fp16, [1, 1, 1]> var_584_cast_fp16_cast_int16 = gather_along_axis(axis = var_582, indices = chunk_argmax_29_cast_fp16_to_int16, validate_indices = var_584_validate_indices_0, x = logits_29_cast_fp16)[name = string("op_584_cast_fp16_cast_int16")];
319
+ int32 chunk_argmax_axis_0 = const()[name = string("chunk_argmax_axis_0"), val = int32(-1)];
320
+ bool chunk_argmax_keep_dims_0 = const()[name = string("chunk_argmax_keep_dims_0"), val = bool(true)];
321
+ string chunk_argmax_output_dtype_0 = const()[name = string("chunk_argmax_output_dtype_0"), val = string("int32")];
322
+ tensor<fp16, [1, 1, 16384]> logits_cast_fp16 = transpose(perm = logits_perm_0, x = var_421_cast_fp16)[name = string("transpose_0")];
323
+ tensor<int32, [1, 1, 1]> chunk_argmax_cast_fp16 = reduce_argmax(axis = chunk_argmax_axis_0, keep_dims = chunk_argmax_keep_dims_0, output_dtype = chunk_argmax_output_dtype_0, x = logits_cast_fp16)[name = string("chunk_argmax_cast_fp16")];
324
+ int32 var_593 = const()[name = string("op_593"), val = int32(-1)];
325
+ bool chunk_max_val_validate_indices_0 = const()[name = string("chunk_max_val_validate_indices_0"), val = bool(false)];
326
+ string chunk_argmax_cast_fp16_to_int16_dtype_0 = const()[name = string("chunk_argmax_cast_fp16_to_int16_dtype_0"), val = string("int16")];
327
+ tensor<int16, [1, 1, 1]> chunk_argmax_cast_fp16_to_int16 = cast(dtype = chunk_argmax_cast_fp16_to_int16_dtype_0, x = chunk_argmax_cast_fp16)[name = string("cast_4")];
328
+ tensor<fp16, [1, 1, 1]> chunk_max_val_cast_fp16_cast_int16 = gather_along_axis(axis = var_593, indices = chunk_argmax_cast_fp16_to_int16, validate_indices = chunk_max_val_validate_indices_0, x = logits_cast_fp16)[name = string("chunk_max_val_cast_fp16_cast_int16")];
329
+ int32 var_602 = const()[name = string("op_602"), val = int32(-1)];
330
+ bool var_603_interleave_0 = const()[name = string("op_603_interleave_0"), val = bool(false)];
331
+ tensor<int32, [1, 1, 16]> var_603 = concat(axis = var_602, interleave = var_603_interleave_0, values = (chunk_argmax_1_cast_fp16, chunk_argmax_3_cast_fp16, chunk_argmax_5_cast_fp16, chunk_argmax_7_cast_fp16, chunk_argmax_9_cast_fp16, chunk_argmax_11_cast_fp16, chunk_argmax_13_cast_fp16, chunk_argmax_15_cast_fp16, chunk_argmax_17_cast_fp16, chunk_argmax_19_cast_fp16, chunk_argmax_21_cast_fp16, chunk_argmax_23_cast_fp16, chunk_argmax_25_cast_fp16, chunk_argmax_27_cast_fp16, chunk_argmax_29_cast_fp16, chunk_argmax_cast_fp16))[name = string("op_603")];
332
+ tensor<int32, [1]> var_605_axes_0 = const()[name = string("op_605_axes_0"), val = tensor<int32, [1]>([0])];
333
+ string var_603_to_int16_dtype_0 = const()[name = string("op_603_to_int16_dtype_0"), val = string("int16")];
334
+ tensor<int16, [1, 1, 16]> var_603_to_int16 = cast(dtype = var_603_to_int16_dtype_0, x = var_603)[name = string("cast_3")];
335
+ tensor<int16, [1, 16]> var_605_cast_uint16 = squeeze(axes = var_605_axes_0, x = var_603_to_int16)[name = string("op_605_cast_uint16")];
336
+ tensor<int32, [1]> var_607_axes_0 = const()[name = string("op_607_axes_0"), val = tensor<int32, [1]>([0])];
337
+ tensor<int16, [16]> var_607_cast_uint16 = squeeze(axes = var_607_axes_0, x = var_605_cast_uint16)[name = string("op_607_cast_uint16")];
338
+ string var_607_cast_uint16_to_int32_dtype_0 = const()[name = string("op_607_cast_uint16_to_int32_dtype_0"), val = string("int32")];
339
+ int32 var_609 = const()[name = string("op_609"), val = int32(-1)];
340
+ bool var_610_interleave_0 = const()[name = string("op_610_interleave_0"), val = bool(false)];
341
+ tensor<fp16, [1, 1, 16]> var_610_cast_fp16 = concat(axis = var_609, interleave = var_610_interleave_0, values = (var_430_cast_fp16_cast_int16, var_441_cast_fp16_cast_int16, var_452_cast_fp16_cast_int16, var_463_cast_fp16_cast_int16, var_474_cast_fp16_cast_int16, var_485_cast_fp16_cast_int16, var_496_cast_fp16_cast_int16, var_507_cast_fp16_cast_int16, var_518_cast_fp16_cast_int16, var_529_cast_fp16_cast_int16, var_540_cast_fp16_cast_int16, var_551_cast_fp16_cast_int16, var_562_cast_fp16_cast_int16, var_573_cast_fp16_cast_int16, var_584_cast_fp16_cast_int16, chunk_max_val_cast_fp16_cast_int16))[name = string("op_610_cast_fp16")];
342
+ tensor<int32, [1]> var_612_axes_0 = const()[name = string("op_612_axes_0"), val = tensor<int32, [1]>([0])];
343
+ tensor<fp16, [1, 16]> var_612_cast_fp16 = squeeze(axes = var_612_axes_0, x = var_610_cast_fp16)[name = string("op_612_cast_fp16")];
344
+ tensor<int32, [1]> var_614_axes_0 = const()[name = string("op_614_axes_0"), val = tensor<int32, [1]>([0])];
345
+ tensor<fp16, [16]> argmax_val = squeeze(axes = var_614_axes_0, x = var_612_cast_fp16)[name = string("op_614_cast_fp16")];
346
+ tensor<int32, [16]> argmax_idx = cast(dtype = var_607_cast_uint16_to_int32_dtype_0, x = var_607_cast_uint16)[name = string("cast_2")];
347
+ } -> (argmax_idx, argmax_val);
348
+ }
gemma3_lm_head.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7062d8f702fc39d97d87deb03ec07bef12e3d0668c909eb5bc629e27c370de81
3
+ size 603980864
meta.yaml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ model_info:
2
+ name: anemll-google-gemma-3-1b-it-ctx512
3
+ version: 0.3.5
4
+ description: |
5
+ Demonstarates running google-gemma-3-1b-it on Apple Neural Engine
6
+ Context length: 512
7
+ Batch size: 64
8
+ Chunks: 2
9
+ license: MIT
10
+ author: Anemll
11
+ framework: Core ML
12
+ language: Python
13
+ architecture: gemma3_text
14
+ parameters:
15
+ context_length: 512
16
+ batch_size: 64
17
+ lut_embeddings: none
18
+ lut_ffn: none
19
+ lut_lmhead: none
20
+ num_chunks: 2
21
+ model_prefix: gemma3
22
+ embeddings: gemma3_embeddings.mlmodelc
23
+ lm_head: gemma3_lm_head.mlmodelc
24
+ ffn: gemma3_FFN_PF_chunk_01of02.mlmodelc
25
+ split_lm_head: 16
26
+ argmax_in_model: true
27
+ sliding_window: 512
28
+ prefill_dynamic_slice: true
29
+ single_cache: true
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4667f2089529e8e7657cfb6d1c19910ae71ff5f28aa7ab2ff2763330affad795
3
+ size 33384568
tokenizer.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1299c11d7cf632ef3b4e11937501358ada021bbdf7c47638d13c0ee982f2e79c
3
+ size 4689074
tokenizer_config.json ADDED
The diff for this file is too large to render. See raw diff