MaziyarPanahi commited on
Commit
c9be91b
·
verified ·
1 Parent(s): 6980853

Publish onnx-android artifact

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ model.ort filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ pipeline_tag: token-classification
4
+ library_name: openmed
5
+ tags:
6
+ - openmed
7
+ - medical-nlp
8
+ ---
9
+
10
+ # OpenMed-NER-BloodCancerDetect-TinyMed-66M-v1-onnx-android
11
+
12
+ This model card is rendered from the OpenMed model manifest. Update `models.jsonl` and rerun the publish step instead of editing this file directly.
13
+
14
+ ## Manifest Summary
15
+
16
+ | Field | Value |
17
+ |---|---|
18
+ | Repository | `OpenMed/OpenMed-NER-BloodCancerDetect-TinyMed-66M-v1-onnx-android` |
19
+ | Family | NER |
20
+ | Task | token-classification |
21
+ | Languages | en |
22
+ | Tier | Tiny |
23
+ | Parameters | 66M (66,000,000) |
24
+ | Architecture | distilbert |
25
+ | Base model | OpenMed/OpenMed-NER-BloodCancerDetect-TinyMed-66M |
26
+ | Formats | onnx-android, int8, ort-android |
27
+ | License | apache-2.0 |
28
+ | arXiv | [arXiv:2508.01630](https://arxiv.org/abs/2508.01630) |
29
+ | Reproducibility hash | `sha256:67c83f0655ea8dcb99e98679d7b6fac978e12f13fd2768200db5aab30676d38d` |
30
+ | Released | 2026-07-09 |
31
+
32
+ ## Benchmark
33
+
34
+ | Dataset | Micro F1 | Recall |
35
+ |---|---:|---:|
36
+ | Not reported | Not reported | Not reported |
37
+
38
+ ## Canonical Labels
39
+
40
+ `CL`
41
+
42
+ ## Artifact Format
43
+
44
+ | Field | Value |
45
+ |---|---|
46
+ | Runtime artifacts | onnx-android, ort-android |
47
+ | Quantization | int8 |
config.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "transformers_version": "5.12.1",
3
+ "architectures": [
4
+ "DistilBertForTokenClassification"
5
+ ],
6
+ "output_hidden_states": false,
7
+ "return_dict": true,
8
+ "dtype": "bfloat16",
9
+ "chunk_size_feed_forward": 0,
10
+ "is_encoder_decoder": false,
11
+ "id2label": {
12
+ "0": "B-CL",
13
+ "1": "I-CL",
14
+ "2": "O"
15
+ },
16
+ "label2id": {
17
+ "B-CL": 0,
18
+ "I-CL": 1,
19
+ "O": 2
20
+ },
21
+ "problem_type": null,
22
+ "vocab_size": 30522,
23
+ "max_position_embeddings": 512,
24
+ "sinusoidal_pos_embds": false,
25
+ "n_layers": 6,
26
+ "n_heads": 12,
27
+ "dim": 768,
28
+ "hidden_dim": 3072,
29
+ "dropout": 0.1,
30
+ "attention_dropout": 0.1,
31
+ "activation": "gelu",
32
+ "initializer_range": 0.02,
33
+ "qa_dropout": 0.1,
34
+ "seq_classif_dropout": 0.2,
35
+ "pad_token_id": 0,
36
+ "eos_token_id": null,
37
+ "bos_token_id": null,
38
+ "tie_word_embeddings": true,
39
+ "_name_or_path": "OpenMed/OpenMed-NER-BloodCancerDetect-TinyMed-66M",
40
+ "model_type": "distilbert",
41
+ "tie_weights_": true,
42
+ "output_attentions": false,
43
+ "max_sequence_length": 512
44
+ }
id2label.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "0": "B-CL",
3
+ "1": "I-CL",
4
+ "2": "O"
5
+ }
model.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e5b731f6df0e1403f66ebf8aac80cd307b14f671e36c3493c36372e82abd4ac1
3
+ size 265598809
model.ort ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9c035e372ea2950d68bc2d5b3c90b59bfe2f43685292adf7ba99055013b2c195
3
+ size 265648400
model.required_operators_and_types.config ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ # Generated from model/s:
2
+ # - /Users/maziyar/Developer/openmed/dist/onnx-android/OpenMed/OpenMed-NER-BloodCancerDetect-TinyMed-66M/model.ort
3
+ ai.onnx;7;And
4
+ ai.onnx;11;Range{"inputs": {"0": ["int64_t"]}}
5
+ ai.onnx;13;Cast{"inputs": {"0": ["int64_t"]}, "outputs": {"0": ["bool"]}},Concat{"inputs": {"0": ["int64_t"]}},Equal{"inputs": {"0": ["int64_t"]}},Expand{"inputs": {"0": ["bool"]}},Flatten,Gather{"inputs": {"0": ["bool", "float", "int64_t"], "1": ["int64_t"]}},IsNaN{"inputs": {"0": ["float"]}},MatMul{"inputs": {"0": ["float"]}},Slice{"inputs": {"0": ["int64_t"], "1": ["int64_t"]}},Softmax{"inputs": {"0": ["float"]}},Transpose{"inputs": {"0": ["float"]}},Unsqueeze
6
+ ai.onnx;14;Add{"inputs": {"0": ["float", "int64_t"]}},Mul{"inputs": {"0": ["int64_t"]}},Reshape
7
+ ai.onnx;15;Shape
8
+ ai.onnx;16;GreaterOrEqual,Where{"inputs": {"1": ["float", "int64_t"]}}
9
+ ai.onnx;17;LayerNormalization
10
+ com.microsoft;1;BiasGelu,FusedMatMul
model_fp16.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:61d8a4f667c7592ecfe83e362595ddbc8f3a55c944caab90b13415299f5f258f
3
+ size 132919522
model_int8.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9980341d5023321cd2066313b35f14dfdf7cd9c818b0ace43766e22621b812ce
3
+ size 138297206
openmed-onnx.json ADDED
@@ -0,0 +1,463 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format": "openmed-onnx",
3
+ "format_version": 1,
4
+ "formats": [
5
+ "onnx-android",
6
+ "onnx-int8",
7
+ "ort-android"
8
+ ],
9
+ "task": "token-classification",
10
+ "family": "distilbert",
11
+ "source_model_id": "OpenMed/OpenMed-NER-BloodCancerDetect-TinyMed-66M",
12
+ "config_path": "config.json",
13
+ "label_map_path": "id2label.json",
14
+ "artifacts": [
15
+ {
16
+ "format": "onnx-android",
17
+ "path": "model.onnx",
18
+ "precision": "float32",
19
+ "metadata": {
20
+ "profile": "android",
21
+ "opset": 18,
22
+ "execution_providers": [
23
+ "NNAPI",
24
+ "XNNPACK"
25
+ ],
26
+ "inputs": [
27
+ {
28
+ "name": "input_ids",
29
+ "dtype": "int64",
30
+ "axes": [
31
+ "batch",
32
+ "sequence"
33
+ ],
34
+ "shape": [
35
+ {
36
+ "kind": "dynamic",
37
+ "name": "batch"
38
+ },
39
+ {
40
+ "kind": "dynamic",
41
+ "name": "sequence"
42
+ }
43
+ ]
44
+ },
45
+ {
46
+ "name": "attention_mask",
47
+ "dtype": "int64",
48
+ "axes": [
49
+ "batch",
50
+ "sequence"
51
+ ],
52
+ "shape": [
53
+ {
54
+ "kind": "dynamic",
55
+ "name": "batch"
56
+ },
57
+ {
58
+ "kind": "dynamic",
59
+ "name": "sequence"
60
+ }
61
+ ]
62
+ }
63
+ ],
64
+ "outputs": [
65
+ {
66
+ "name": "logits",
67
+ "dtype": "float32",
68
+ "axes": [
69
+ "batch",
70
+ "sequence",
71
+ "labels"
72
+ ],
73
+ "shape": [
74
+ {
75
+ "kind": "dynamic",
76
+ "name": "batch"
77
+ },
78
+ {
79
+ "kind": "dynamic",
80
+ "name": "sequence"
81
+ },
82
+ {
83
+ "kind": "static",
84
+ "value": 3
85
+ }
86
+ ]
87
+ }
88
+ ],
89
+ "operators": [
90
+ "Gather",
91
+ "Shape",
92
+ "Constant",
93
+ "Unsqueeze",
94
+ "Slice",
95
+ "Add",
96
+ "LayerNormalization",
97
+ "Cast",
98
+ "Range",
99
+ "ConstantOfShape",
100
+ "GreaterOrEqual",
101
+ "And",
102
+ "Flatten",
103
+ "Mul",
104
+ "Reshape",
105
+ "Concat",
106
+ "Equal",
107
+ "Where",
108
+ "Expand",
109
+ "MatMul",
110
+ "Transpose",
111
+ "Softmax",
112
+ "IsNaN",
113
+ "Div",
114
+ "Erf"
115
+ ],
116
+ "unsupported_ops": [
117
+ "GreaterOrEqual",
118
+ "Flatten",
119
+ "IsNaN"
120
+ ],
121
+ "warnings": [
122
+ "GreaterOrEqual is not in the Android ONNX Runtime Mobile NNAPI/XNNPACK safe set",
123
+ "Flatten is not in the Android ONNX Runtime Mobile NNAPI/XNNPACK safe set",
124
+ "IsNaN is not in the Android ONNX Runtime Mobile NNAPI/XNNPACK safe set"
125
+ ]
126
+ }
127
+ },
128
+ {
129
+ "format": "onnx-android",
130
+ "path": "model_fp16.onnx",
131
+ "precision": "float16",
132
+ "metadata": {
133
+ "profile": "android",
134
+ "opset": 18,
135
+ "execution_providers": [
136
+ "NNAPI",
137
+ "XNNPACK"
138
+ ],
139
+ "inputs": [
140
+ {
141
+ "name": "input_ids",
142
+ "dtype": "int64",
143
+ "axes": [
144
+ "batch",
145
+ "sequence"
146
+ ],
147
+ "shape": [
148
+ {
149
+ "kind": "dynamic",
150
+ "name": "batch"
151
+ },
152
+ {
153
+ "kind": "dynamic",
154
+ "name": "sequence"
155
+ }
156
+ ]
157
+ },
158
+ {
159
+ "name": "attention_mask",
160
+ "dtype": "int64",
161
+ "axes": [
162
+ "batch",
163
+ "sequence"
164
+ ],
165
+ "shape": [
166
+ {
167
+ "kind": "dynamic",
168
+ "name": "batch"
169
+ },
170
+ {
171
+ "kind": "dynamic",
172
+ "name": "sequence"
173
+ }
174
+ ]
175
+ }
176
+ ],
177
+ "outputs": [
178
+ {
179
+ "name": "logits",
180
+ "dtype": "float32",
181
+ "axes": [
182
+ "batch",
183
+ "sequence",
184
+ "labels"
185
+ ],
186
+ "shape": [
187
+ {
188
+ "kind": "dynamic",
189
+ "name": "batch"
190
+ },
191
+ {
192
+ "kind": "dynamic",
193
+ "name": "sequence"
194
+ },
195
+ {
196
+ "kind": "static",
197
+ "value": 3
198
+ }
199
+ ]
200
+ }
201
+ ],
202
+ "operators": [
203
+ "Gather",
204
+ "Shape",
205
+ "Constant",
206
+ "Unsqueeze",
207
+ "Slice",
208
+ "Add",
209
+ "LayerNormalization",
210
+ "Cast",
211
+ "Range",
212
+ "ConstantOfShape",
213
+ "GreaterOrEqual",
214
+ "And",
215
+ "Flatten",
216
+ "Mul",
217
+ "Reshape",
218
+ "Concat",
219
+ "Equal",
220
+ "Where",
221
+ "Expand",
222
+ "MatMul",
223
+ "Transpose",
224
+ "Softmax",
225
+ "IsNaN",
226
+ "Div",
227
+ "Erf"
228
+ ],
229
+ "unsupported_ops": [
230
+ "GreaterOrEqual",
231
+ "Flatten",
232
+ "IsNaN"
233
+ ],
234
+ "warnings": [
235
+ "GreaterOrEqual is not in the Android ONNX Runtime Mobile NNAPI/XNNPACK safe set",
236
+ "Flatten is not in the Android ONNX Runtime Mobile NNAPI/XNNPACK safe set",
237
+ "IsNaN is not in the Android ONNX Runtime Mobile NNAPI/XNNPACK safe set"
238
+ ]
239
+ }
240
+ },
241
+ {
242
+ "format": "onnx-int8",
243
+ "path": "model_int8.onnx",
244
+ "precision": "int8",
245
+ "metadata": {
246
+ "format": "onnx-int8",
247
+ "quantization": {
248
+ "scheme": "dynamic",
249
+ "weight_type": "qint8",
250
+ "op_types": [
251
+ "MatMul",
252
+ "Gemm"
253
+ ],
254
+ "calibration": "none",
255
+ "target": "arm64-cpu",
256
+ "output": "model_int8.onnx"
257
+ },
258
+ "profile": "android",
259
+ "opset": 18,
260
+ "execution_providers": [
261
+ "NNAPI",
262
+ "XNNPACK"
263
+ ],
264
+ "inputs": [
265
+ {
266
+ "name": "input_ids",
267
+ "dtype": "int64",
268
+ "axes": [
269
+ "batch",
270
+ "sequence"
271
+ ],
272
+ "shape": [
273
+ {
274
+ "kind": "dynamic",
275
+ "name": "batch"
276
+ },
277
+ {
278
+ "kind": "dynamic",
279
+ "name": "sequence"
280
+ }
281
+ ]
282
+ },
283
+ {
284
+ "name": "attention_mask",
285
+ "dtype": "int64",
286
+ "axes": [
287
+ "batch",
288
+ "sequence"
289
+ ],
290
+ "shape": [
291
+ {
292
+ "kind": "dynamic",
293
+ "name": "batch"
294
+ },
295
+ {
296
+ "kind": "dynamic",
297
+ "name": "sequence"
298
+ }
299
+ ]
300
+ }
301
+ ],
302
+ "outputs": [
303
+ {
304
+ "name": "logits",
305
+ "dtype": "float32",
306
+ "axes": [
307
+ "batch",
308
+ "sequence",
309
+ "labels"
310
+ ],
311
+ "shape": [
312
+ {
313
+ "kind": "dynamic",
314
+ "name": "batch"
315
+ },
316
+ {
317
+ "kind": "dynamic",
318
+ "name": "sequence"
319
+ },
320
+ {
321
+ "kind": "static",
322
+ "value": 3
323
+ }
324
+ ]
325
+ }
326
+ ],
327
+ "operators": [
328
+ "Constant",
329
+ "Cast",
330
+ "Gather",
331
+ "ConstantOfShape",
332
+ "Shape",
333
+ "Flatten",
334
+ "Unsqueeze",
335
+ "Range",
336
+ "Slice",
337
+ "Add",
338
+ "LayerNormalization",
339
+ "DynamicQuantizeLinear",
340
+ "Mul",
341
+ "MatMulInteger",
342
+ "Concat",
343
+ "Reshape",
344
+ "Transpose",
345
+ "GreaterOrEqual",
346
+ "Equal",
347
+ "MatMul",
348
+ "And",
349
+ "Where",
350
+ "Expand",
351
+ "Softmax",
352
+ "IsNaN",
353
+ "Div",
354
+ "Erf"
355
+ ],
356
+ "unsupported_ops": [
357
+ "Flatten",
358
+ "DynamicQuantizeLinear",
359
+ "MatMulInteger",
360
+ "GreaterOrEqual",
361
+ "IsNaN"
362
+ ],
363
+ "warnings": [
364
+ "Flatten is not in the Android ONNX Runtime Mobile NNAPI/XNNPACK safe set",
365
+ "DynamicQuantizeLinear is not in the Android ONNX Runtime Mobile NNAPI/XNNPACK safe set",
366
+ "MatMulInteger is not in the Android ONNX Runtime Mobile NNAPI/XNNPACK safe set",
367
+ "GreaterOrEqual is not in the Android ONNX Runtime Mobile NNAPI/XNNPACK safe set",
368
+ "IsNaN is not in the Android ONNX Runtime Mobile NNAPI/XNNPACK safe set"
369
+ ]
370
+ }
371
+ },
372
+ {
373
+ "format": "ort-android",
374
+ "path": "model.ort",
375
+ "precision": "float32",
376
+ "metadata": {
377
+ "format": "ort-android",
378
+ "profile": "android",
379
+ "source_onnx_path": "model.onnx",
380
+ "optimization_style": "Fixed",
381
+ "target_platform": "arm",
382
+ "op_config_type": "required_operators_and_types",
383
+ "enable_type_reduction": true,
384
+ "ort_path": "model.ort",
385
+ "op_config_path": "model.required_operators_and_types.config",
386
+ "operators": [
387
+ "Gather",
388
+ "Shape",
389
+ "Constant",
390
+ "Unsqueeze",
391
+ "Slice",
392
+ "Add",
393
+ "LayerNormalization",
394
+ "Cast",
395
+ "Range",
396
+ "ConstantOfShape",
397
+ "GreaterOrEqual",
398
+ "And",
399
+ "Flatten",
400
+ "Mul",
401
+ "Reshape",
402
+ "Concat",
403
+ "Equal",
404
+ "Where",
405
+ "Expand",
406
+ "MatMul",
407
+ "Transpose",
408
+ "Softmax",
409
+ "IsNaN",
410
+ "Div",
411
+ "Erf"
412
+ ],
413
+ "opset": 18
414
+ }
415
+ }
416
+ ],
417
+ "minimum_opset": 18,
418
+ "max_sequence_length": 512,
419
+ "dynamic_shapes": {
420
+ "batch_axis": "dynamic",
421
+ "sequence_axis": "dynamic",
422
+ "shape_buckets": {
423
+ "strategy": "next_configured_bucket_or_exact",
424
+ "axes": {
425
+ "input": [
426
+ "batch",
427
+ "sequence"
428
+ ],
429
+ "output": [
430
+ "batch",
431
+ "sequence"
432
+ ]
433
+ },
434
+ "buckets": [
435
+ 8,
436
+ 16,
437
+ 32,
438
+ 64,
439
+ 128,
440
+ 256,
441
+ 512,
442
+ 1024,
443
+ 2048
444
+ ],
445
+ "min_length": 8,
446
+ "max_length": 2048,
447
+ "overflow": "exact_length"
448
+ }
449
+ },
450
+ "optimization": {
451
+ "enabled": false,
452
+ "minimum_opset": 18
453
+ },
454
+ "validation": {},
455
+ "operator_fallbacks": [],
456
+ "tokenizer": {
457
+ "path": ".",
458
+ "files": [
459
+ "tokenizer.json",
460
+ "tokenizer_config.json"
461
+ ]
462
+ }
463
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "backend": "tokenizers",
3
+ "clean_up_tokenization_spaces": false,
4
+ "cls_token": "[CLS]",
5
+ "do_lower_case": true,
6
+ "is_local": false,
7
+ "local_files_only": false,
8
+ "mask_token": "[MASK]",
9
+ "max_length": 512,
10
+ "model_max_length": 512,
11
+ "pad_to_multiple_of": null,
12
+ "pad_token": "[PAD]",
13
+ "pad_token_type_id": 0,
14
+ "padding_side": "right",
15
+ "sep_token": "[SEP]",
16
+ "stride": 0,
17
+ "strip_accents": null,
18
+ "tokenize_chinese_chars": true,
19
+ "tokenizer_class": "DistilBertTokenizer",
20
+ "truncation_side": "right",
21
+ "truncation_strategy": "longest_first",
22
+ "unk_token": "[UNK]"
23
+ }