Alex-Wengg commited on
Commit
ed3601e
·
1 Parent(s): 19f857e

Replace chunk variants with int8 quantized .mlmodelc files

Browse files

- Convert 560ms, 160ms, 80ms from .mlpackage to compiled .mlmodelc
- Quantize encoders to int8 (3.97x compression: 2.2GB -> 564MB)
- Remove original .mlpackage files
- Total size reduction from ~6.6GB to ~1.8GB for all three variants

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. nemotron_coreml_160ms/{decoder.mlpackage/Data/com.apple.CoreML/model.mlmodel → decoder.mlmodelc/analytics/coremldata.bin} +2 -2
  2. nemotron_coreml_160ms/{joint.mlpackage/Data/com.apple.CoreML/model.mlmodel → decoder.mlmodelc/coremldata.bin} +2 -2
  3. nemotron_coreml_160ms/decoder.mlmodelc/metadata.json +120 -0
  4. nemotron_coreml_160ms/decoder.mlmodelc/model.mil +57 -0
  5. nemotron_coreml_160ms/{decoder.mlpackage/Data/com.apple.CoreML → decoder.mlmodelc}/weights/weight.bin +0 -0
  6. nemotron_coreml_160ms/decoder.mlpackage/Manifest.json +0 -18
  7. nemotron_coreml_160ms/encoder/encoder.mlpackage/Data/com.apple.CoreML/weights/weight.bin +0 -3
  8. nemotron_coreml_160ms/encoder/encoder.mlpackage/Manifest.json +0 -18
  9. nemotron_coreml_560ms/decoder.mlpackage/Data/com.apple.CoreML/model.mlmodel → nemotron_coreml_160ms/encoder/encoder_int8.mlmodelc/analytics/coremldata.bin +2 -2
  10. nemotron_coreml_560ms/joint.mlpackage/Data/com.apple.CoreML/model.mlmodel → nemotron_coreml_160ms/encoder/encoder_int8.mlmodelc/coremldata.bin +2 -2
  11. nemotron_coreml_160ms/encoder/encoder_int8.mlmodelc/metadata.json +171 -0
  12. nemotron_coreml_160ms/encoder/encoder_int8.mlmodelc/model.mil +0 -0
  13. nemotron_coreml_160ms/encoder/{encoder.mlpackage/Data/com.apple.CoreML/model.mlmodel → encoder_int8.mlmodelc/weights/weight.bin} +2 -2
  14. nemotron_coreml_160ms/joint.mlmodelc/analytics/coremldata.bin +3 -0
  15. nemotron_coreml_160ms/joint.mlmodelc/coremldata.bin +3 -0
  16. nemotron_coreml_160ms/joint.mlmodelc/metadata.json +75 -0
  17. nemotron_coreml_160ms/joint.mlmodelc/model.mil +25 -0
  18. nemotron_coreml_160ms/{joint.mlpackage/Data/com.apple.CoreML → joint.mlmodelc}/weights/weight.bin +0 -0
  19. nemotron_coreml_160ms/joint.mlpackage/Manifest.json +0 -18
  20. nemotron_coreml_160ms/metadata.json +6 -1
  21. nemotron_coreml_160ms/preprocessor.mlmodelc/analytics/coremldata.bin +3 -0
  22. nemotron_coreml_160ms/preprocessor.mlmodelc/coremldata.bin +3 -0
  23. nemotron_coreml_160ms/preprocessor.mlmodelc/metadata.json +106 -0
  24. nemotron_coreml_160ms/preprocessor.mlmodelc/model.mil +110 -0
  25. nemotron_coreml_160ms/{preprocessor.mlpackage/Data/com.apple.CoreML → preprocessor.mlmodelc}/weights/weight.bin +0 -0
  26. nemotron_coreml_160ms/preprocessor.mlpackage/Manifest.json +0 -18
  27. nemotron_coreml_560ms/decoder.mlmodelc/analytics/coremldata.bin +3 -0
  28. nemotron_coreml_560ms/decoder.mlmodelc/coremldata.bin +3 -0
  29. nemotron_coreml_560ms/decoder.mlmodelc/metadata.json +120 -0
  30. nemotron_coreml_560ms/decoder.mlmodelc/model.mil +57 -0
  31. nemotron_coreml_560ms/{decoder.mlpackage/Data/com.apple.CoreML → decoder.mlmodelc}/weights/weight.bin +0 -0
  32. nemotron_coreml_560ms/decoder.mlpackage/Manifest.json +0 -18
  33. nemotron_coreml_560ms/encoder/encoder.mlpackage/Data/com.apple.CoreML/model.mlmodel +0 -3
  34. nemotron_coreml_560ms/encoder/encoder.mlpackage/Data/com.apple.CoreML/weights/weight.bin +0 -3
  35. nemotron_coreml_560ms/encoder/encoder.mlpackage/Manifest.json +0 -18
  36. nemotron_coreml_560ms/encoder/encoder_int8.mlmodelc/analytics/coremldata.bin +3 -0
  37. nemotron_coreml_560ms/encoder/encoder_int8.mlmodelc/coremldata.bin +3 -0
  38. nemotron_coreml_560ms/encoder/encoder_int8.mlmodelc/metadata.json +171 -0
  39. nemotron_coreml_560ms/encoder/encoder_int8.mlmodelc/model.mil +0 -0
  40. nemotron_coreml_160ms/preprocessor.mlpackage/Data/com.apple.CoreML/model.mlmodel → nemotron_coreml_560ms/encoder/encoder_int8.mlmodelc/weights/weight.bin +2 -2
  41. nemotron_coreml_560ms/joint.mlmodelc/analytics/coremldata.bin +3 -0
  42. nemotron_coreml_560ms/joint.mlmodelc/coremldata.bin +3 -0
  43. nemotron_coreml_560ms/joint.mlmodelc/metadata.json +75 -0
  44. nemotron_coreml_560ms/joint.mlmodelc/model.mil +25 -0
  45. nemotron_coreml_560ms/{joint.mlpackage/Data/com.apple.CoreML → joint.mlmodelc}/weights/weight.bin +0 -0
  46. nemotron_coreml_560ms/joint.mlpackage/Manifest.json +0 -18
  47. nemotron_coreml_560ms/metadata.json +6 -1
  48. nemotron_coreml_560ms/preprocessor.mlmodelc/analytics/coremldata.bin +3 -0
  49. nemotron_coreml_560ms/preprocessor.mlmodelc/coremldata.bin +3 -0
  50. nemotron_coreml_560ms/preprocessor.mlmodelc/metadata.json +106 -0
nemotron_coreml_160ms/{decoder.mlpackage/Data/com.apple.CoreML/model.mlmodel → decoder.mlmodelc/analytics/coremldata.bin} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:8235df1402789eef9449536ca6c7e456348372a13d7ef5cae8784dfbd655ebe9
3
- size 8734
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1357ea773a03fb0d353f1755603502d5d37249327b97ca487bb158484dc79b36
3
+ size 243
nemotron_coreml_160ms/{joint.mlpackage/Data/com.apple.CoreML/model.mlmodel → decoder.mlmodelc/coremldata.bin} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:96d68bb789827874c834847a52654230ac53c7b525cf678815ec579fd7bc3c1b
3
- size 3326
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5b76bbefd9e9e8a9ad9ec9be741bb2acd397d9629c1194b6a7e36f70b44be185
3
+ size 492
nemotron_coreml_160ms/decoder.mlmodelc/metadata.json ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "storagePrecision" : "Float32",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float32",
10
+ "formattedType" : "MultiArray (Float32 1 × 640 × 1)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 640, 1]",
13
+ "name" : "decoder_out",
14
+ "type" : "MultiArray"
15
+ },
16
+ {
17
+ "hasShapeFlexibility" : "0",
18
+ "isOptional" : "0",
19
+ "dataType" : "Float32",
20
+ "formattedType" : "MultiArray (Float32 2 × 1 × 640)",
21
+ "shortDescription" : "",
22
+ "shape" : "[2, 1, 640]",
23
+ "name" : "h_out",
24
+ "type" : "MultiArray"
25
+ },
26
+ {
27
+ "hasShapeFlexibility" : "0",
28
+ "isOptional" : "0",
29
+ "dataType" : "Float32",
30
+ "formattedType" : "MultiArray (Float32 2 × 1 × 640)",
31
+ "shortDescription" : "",
32
+ "shape" : "[2, 1, 640]",
33
+ "name" : "c_out",
34
+ "type" : "MultiArray"
35
+ }
36
+ ],
37
+ "modelParameters" : [
38
+
39
+ ],
40
+ "specificationVersion" : 8,
41
+ "mlProgramOperationTypeHistogram" : {
42
+ "Select" : 1,
43
+ "Ios17.squeeze" : 4,
44
+ "Ios17.gather" : 1,
45
+ "Ios17.lstm" : 2,
46
+ "Identity" : 1,
47
+ "Ios17.transpose" : 2,
48
+ "Split" : 2,
49
+ "Ios17.add" : 1,
50
+ "Ios17.greaterEqual" : 1,
51
+ "Stack" : 2
52
+ },
53
+ "computePrecision" : "Mixed (Float32, Int32)",
54
+ "isUpdatable" : "0",
55
+ "stateSchema" : [
56
+
57
+ ],
58
+ "availability" : {
59
+ "macOS" : "14.0",
60
+ "tvOS" : "17.0",
61
+ "visionOS" : "1.0",
62
+ "watchOS" : "10.0",
63
+ "iOS" : "17.0",
64
+ "macCatalyst" : "17.0"
65
+ },
66
+ "modelType" : {
67
+ "name" : "MLModelType_mlProgram"
68
+ },
69
+ "userDefinedMetadata" : {
70
+ "com.github.apple.coremltools.conversion_date" : "2026-01-15",
71
+ "com.github.apple.coremltools.source" : "torch==2.9.1",
72
+ "com.github.apple.coremltools.version" : "9.0",
73
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
74
+ },
75
+ "inputSchema" : [
76
+ {
77
+ "hasShapeFlexibility" : "0",
78
+ "isOptional" : "0",
79
+ "dataType" : "Int32",
80
+ "formattedType" : "MultiArray (Int32 1 × 1)",
81
+ "shortDescription" : "",
82
+ "shape" : "[1, 1]",
83
+ "name" : "token",
84
+ "type" : "MultiArray"
85
+ },
86
+ {
87
+ "hasShapeFlexibility" : "0",
88
+ "isOptional" : "0",
89
+ "dataType" : "Int32",
90
+ "formattedType" : "MultiArray (Int32 1)",
91
+ "shortDescription" : "",
92
+ "shape" : "[1]",
93
+ "name" : "token_length",
94
+ "type" : "MultiArray"
95
+ },
96
+ {
97
+ "hasShapeFlexibility" : "0",
98
+ "isOptional" : "0",
99
+ "dataType" : "Float32",
100
+ "formattedType" : "MultiArray (Float32 2 × 1 × 640)",
101
+ "shortDescription" : "",
102
+ "shape" : "[2, 1, 640]",
103
+ "name" : "h_in",
104
+ "type" : "MultiArray"
105
+ },
106
+ {
107
+ "hasShapeFlexibility" : "0",
108
+ "isOptional" : "0",
109
+ "dataType" : "Float32",
110
+ "formattedType" : "MultiArray (Float32 2 × 1 × 640)",
111
+ "shortDescription" : "",
112
+ "shape" : "[2, 1, 640]",
113
+ "name" : "c_in",
114
+ "type" : "MultiArray"
115
+ }
116
+ ],
117
+ "generatedClassName" : "decoder",
118
+ "method" : "predict"
119
+ }
120
+ ]
nemotron_coreml_160ms/decoder.mlmodelc/model.mil ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ program(1.0)
2
+ [buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3510.2.1"}, {"coremlc-version", "3500.32.1"}, {"coremltools-component-torch", "2.9.1"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "9.0"}})]
3
+ {
4
+ func main<ios17>(tensor<fp32, [2, 1, 640]> c_in, tensor<fp32, [2, 1, 640]> h_in, tensor<int32, [1, 1]> token, tensor<int32, [1]> token_length) {
5
+ tensor<fp32, [1025, 640]> module_prediction_embed_weight = const()[name = tensor<string, []>("module_prediction_embed_weight"), val = tensor<fp32, [1025, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
6
+ tensor<int32, []> y_batch_dims_0 = const()[name = tensor<string, []>("y_batch_dims_0"), val = tensor<int32, []>(0)];
7
+ tensor<bool, []> y_validate_indices_0 = const()[name = tensor<string, []>("y_validate_indices_0"), val = tensor<bool, []>(false)];
8
+ tensor<int32, []> greater_equal_0_y_0 = const()[name = tensor<string, []>("greater_equal_0_y_0"), val = tensor<int32, []>(0)];
9
+ tensor<bool, [1, 1]> greater_equal_0 = greater_equal(x = token, y = greater_equal_0_y_0)[name = tensor<string, []>("greater_equal_0")];
10
+ tensor<int32, []> slice_by_index_0 = const()[name = tensor<string, []>("slice_by_index_0"), val = tensor<int32, []>(1025)];
11
+ tensor<int32, [1, 1]> add_2 = add(x = token, y = slice_by_index_0)[name = tensor<string, []>("add_2")];
12
+ tensor<int32, [1, 1]> select_0 = select(a = token, b = add_2, cond = greater_equal_0)[name = tensor<string, []>("select_0")];
13
+ tensor<int32, []> y_axis_1 = const()[name = tensor<string, []>("y_axis_1"), val = tensor<int32, []>(0)];
14
+ tensor<fp32, [1, 1, 640]> y = gather(axis = y_axis_1, batch_dims = y_batch_dims_0, indices = select_0, validate_indices = y_validate_indices_0, x = module_prediction_embed_weight)[name = tensor<string, []>("y")];
15
+ tensor<int32, [3]> input_3_perm_0 = const()[name = tensor<string, []>("input_3_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
16
+ tensor<int32, []> split_0_num_splits_0 = const()[name = tensor<string, []>("split_0_num_splits_0"), val = tensor<int32, []>(2)];
17
+ tensor<int32, []> split_0_axis_0 = const()[name = tensor<string, []>("split_0_axis_0"), val = tensor<int32, []>(0)];
18
+ tensor<fp32, [1, 1, 640]> split_0_0, tensor<fp32, [1, 1, 640]> split_0_1 = split(axis = split_0_axis_0, num_splits = split_0_num_splits_0, x = h_in)[name = tensor<string, []>("split_0")];
19
+ tensor<int32, []> split_1_num_splits_0 = const()[name = tensor<string, []>("split_1_num_splits_0"), val = tensor<int32, []>(2)];
20
+ tensor<int32, []> split_1_axis_0 = const()[name = tensor<string, []>("split_1_axis_0"), val = tensor<int32, []>(0)];
21
+ tensor<fp32, [1, 1, 640]> split_1_0, tensor<fp32, [1, 1, 640]> split_1_1 = split(axis = split_1_axis_0, num_splits = split_1_num_splits_0, x = c_in)[name = tensor<string, []>("split_1")];
22
+ tensor<fp32, [2560]> concat_0 = const()[name = tensor<string, []>("concat_0"), val = tensor<fp32, [2560]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2624128)))];
23
+ tensor<fp32, [2560, 640]> concat_1 = const()[name = tensor<string, []>("concat_1"), val = tensor<fp32, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2634432)))];
24
+ tensor<fp32, [2560, 640]> concat_2 = const()[name = tensor<string, []>("concat_2"), val = tensor<fp32, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(9188096)))];
25
+ tensor<int32, [1]> input_lstm_layer_0_lstm_h0_squeeze_axes_0 = const()[name = tensor<string, []>("input_lstm_layer_0_lstm_h0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
26
+ tensor<fp32, [1, 640]> input_lstm_layer_0_lstm_h0_squeeze = squeeze(axes = input_lstm_layer_0_lstm_h0_squeeze_axes_0, x = split_0_0)[name = tensor<string, []>("input_lstm_layer_0_lstm_h0_squeeze")];
27
+ tensor<int32, [1]> input_lstm_layer_0_lstm_c0_squeeze_axes_0 = const()[name = tensor<string, []>("input_lstm_layer_0_lstm_c0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
28
+ tensor<fp32, [1, 640]> input_lstm_layer_0_lstm_c0_squeeze = squeeze(axes = input_lstm_layer_0_lstm_c0_squeeze_axes_0, x = split_1_0)[name = tensor<string, []>("input_lstm_layer_0_lstm_c0_squeeze")];
29
+ tensor<string, []> input_lstm_layer_0_direction_0 = const()[name = tensor<string, []>("input_lstm_layer_0_direction_0"), val = tensor<string, []>("forward")];
30
+ tensor<bool, []> input_lstm_layer_0_output_sequence_0 = const()[name = tensor<string, []>("input_lstm_layer_0_output_sequence_0"), val = tensor<bool, []>(true)];
31
+ tensor<string, []> input_lstm_layer_0_recurrent_activation_0 = const()[name = tensor<string, []>("input_lstm_layer_0_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
32
+ tensor<string, []> input_lstm_layer_0_cell_activation_0 = const()[name = tensor<string, []>("input_lstm_layer_0_cell_activation_0"), val = tensor<string, []>("tanh")];
33
+ tensor<string, []> input_lstm_layer_0_activation_0 = const()[name = tensor<string, []>("input_lstm_layer_0_activation_0"), val = tensor<string, []>("tanh")];
34
+ tensor<fp32, [1, 1, 640]> input_3 = transpose(perm = input_3_perm_0, x = y)[name = tensor<string, []>("transpose_2")];
35
+ tensor<fp32, [1, 1, 640]> input_lstm_layer_0_0, tensor<fp32, [1, 640]> input_lstm_layer_0_1, tensor<fp32, [1, 640]> input_lstm_layer_0_2 = lstm(activation = input_lstm_layer_0_activation_0, bias = concat_0, cell_activation = input_lstm_layer_0_cell_activation_0, direction = input_lstm_layer_0_direction_0, initial_c = input_lstm_layer_0_lstm_c0_squeeze, initial_h = input_lstm_layer_0_lstm_h0_squeeze, output_sequence = input_lstm_layer_0_output_sequence_0, recurrent_activation = input_lstm_layer_0_recurrent_activation_0, weight_hh = concat_2, weight_ih = concat_1, x = input_3)[name = tensor<string, []>("input_lstm_layer_0")];
36
+ tensor<fp32, [2560]> concat_3 = const()[name = tensor<string, []>("concat_3"), val = tensor<fp32, [2560]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(15741760)))];
37
+ tensor<fp32, [2560, 640]> concat_4 = const()[name = tensor<string, []>("concat_4"), val = tensor<fp32, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(15752064)))];
38
+ tensor<fp32, [2560, 640]> concat_5 = const()[name = tensor<string, []>("concat_5"), val = tensor<fp32, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(22305728)))];
39
+ tensor<int32, [1]> input_lstm_h0_squeeze_axes_0 = const()[name = tensor<string, []>("input_lstm_h0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
40
+ tensor<fp32, [1, 640]> input_lstm_h0_squeeze = squeeze(axes = input_lstm_h0_squeeze_axes_0, x = split_0_1)[name = tensor<string, []>("input_lstm_h0_squeeze")];
41
+ tensor<int32, [1]> input_lstm_c0_squeeze_axes_0 = const()[name = tensor<string, []>("input_lstm_c0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
42
+ tensor<fp32, [1, 640]> input_lstm_c0_squeeze = squeeze(axes = input_lstm_c0_squeeze_axes_0, x = split_1_1)[name = tensor<string, []>("input_lstm_c0_squeeze")];
43
+ tensor<string, []> input_direction_0 = const()[name = tensor<string, []>("input_direction_0"), val = tensor<string, []>("forward")];
44
+ tensor<bool, []> input_output_sequence_0 = const()[name = tensor<string, []>("input_output_sequence_0"), val = tensor<bool, []>(true)];
45
+ tensor<string, []> input_recurrent_activation_0 = const()[name = tensor<string, []>("input_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
46
+ tensor<string, []> input_cell_activation_0 = const()[name = tensor<string, []>("input_cell_activation_0"), val = tensor<string, []>("tanh")];
47
+ tensor<string, []> input_activation_0 = const()[name = tensor<string, []>("input_activation_0"), val = tensor<string, []>("tanh")];
48
+ tensor<fp32, [1, 1, 640]> input_0, tensor<fp32, [1, 640]> input_1, tensor<fp32, [1, 640]> input_2 = lstm(activation = input_activation_0, bias = concat_3, cell_activation = input_cell_activation_0, direction = input_direction_0, initial_c = input_lstm_c0_squeeze, initial_h = input_lstm_h0_squeeze, output_sequence = input_output_sequence_0, recurrent_activation = input_recurrent_activation_0, weight_hh = concat_5, weight_ih = concat_4, x = input_lstm_layer_0_0)[name = tensor<string, []>("input")];
49
+ tensor<int32, []> obj_3_axis_0 = const()[name = tensor<string, []>("obj_3_axis_0"), val = tensor<int32, []>(0)];
50
+ tensor<fp32, [2, 1, 640]> h_out = stack(axis = obj_3_axis_0, values = (input_lstm_layer_0_1, input_1))[name = tensor<string, []>("obj_3")];
51
+ tensor<int32, []> obj_axis_0 = const()[name = tensor<string, []>("obj_axis_0"), val = tensor<int32, []>(0)];
52
+ tensor<fp32, [2, 1, 640]> c_out = stack(axis = obj_axis_0, values = (input_lstm_layer_0_2, input_2))[name = tensor<string, []>("obj")];
53
+ tensor<int32, [3]> transpose_0_perm_0 = const()[name = tensor<string, []>("transpose_0_perm_0"), val = tensor<int32, [3]>([1, 2, 0])];
54
+ tensor<fp32, [1, 640, 1]> decoder_out = transpose(perm = transpose_0_perm_0, x = input_0)[name = tensor<string, []>("transpose_1")];
55
+ tensor<int32, [1]> token_length_tmp = identity(x = token_length)[name = tensor<string, []>("token_length_tmp")];
56
+ } -> (decoder_out, h_out, c_out);
57
+ }
nemotron_coreml_160ms/{decoder.mlpackage/Data/com.apple.CoreML → decoder.mlmodelc}/weights/weight.bin RENAMED
File without changes
nemotron_coreml_160ms/decoder.mlpackage/Manifest.json DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "fileFormatVersion": "1.0.0",
3
- "itemInfoEntries": {
4
- "18C5CE6D-76FF-4E99-9598-B0324D85FA82": {
5
- "author": "com.apple.CoreML",
6
- "description": "CoreML Model Weights",
7
- "name": "weights",
8
- "path": "com.apple.CoreML/weights"
9
- },
10
- "BB41F755-71E1-4E08-A46B-A254A8EFF24A": {
11
- "author": "com.apple.CoreML",
12
- "description": "CoreML Model Specification",
13
- "name": "model.mlmodel",
14
- "path": "com.apple.CoreML/model.mlmodel"
15
- }
16
- },
17
- "rootModelIdentifier": "BB41F755-71E1-4E08-A46B-A254A8EFF24A"
18
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
nemotron_coreml_160ms/encoder/encoder.mlpackage/Data/com.apple.CoreML/weights/weight.bin DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:45d83ed8f04162a80e63ecb8d988a33e66757086e3746995a0e59c30433abca4
3
- size 2350022976
 
 
 
 
nemotron_coreml_160ms/encoder/encoder.mlpackage/Manifest.json DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "fileFormatVersion": "1.0.0",
3
- "itemInfoEntries": {
4
- "18210CE0-CDF0-4569-A681-F10CCF13AC4F": {
5
- "author": "com.apple.CoreML",
6
- "description": "CoreML Model Specification",
7
- "name": "model.mlmodel",
8
- "path": "com.apple.CoreML/model.mlmodel"
9
- },
10
- "1E80803B-2C09-4FF6-BE69-D90B01CA9B74": {
11
- "author": "com.apple.CoreML",
12
- "description": "CoreML Model Weights",
13
- "name": "weights",
14
- "path": "com.apple.CoreML/weights"
15
- }
16
- },
17
- "rootModelIdentifier": "18210CE0-CDF0-4569-A681-F10CCF13AC4F"
18
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
nemotron_coreml_560ms/decoder.mlpackage/Data/com.apple.CoreML/model.mlmodel → nemotron_coreml_160ms/encoder/encoder_int8.mlmodelc/analytics/coremldata.bin RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:8235df1402789eef9449536ca6c7e456348372a13d7ef5cae8784dfbd655ebe9
3
- size 8734
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c25c31b1ca93677a224c6e6e9d3aeaa14d63b0e7c9b18fa7e8d22f7e00ae18ff
3
+ size 243
nemotron_coreml_560ms/joint.mlpackage/Data/com.apple.CoreML/model.mlmodel → nemotron_coreml_160ms/encoder/encoder_int8.mlmodelc/coremldata.bin RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:96d68bb789827874c834847a52654230ac53c7b525cf678815ec579fd7bc3c1b
3
- size 3326
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:68b215265240323c5dfb95b39668f9b39b423ea340d4affc0c5d644a70971d2e
3
+ size 669
nemotron_coreml_160ms/encoder/encoder_int8.mlmodelc/metadata.json ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "shortDescription" : "Nemotron Streaming Encoder (int8 quantized)",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float32",
10
+ "formattedType" : "MultiArray (Float32 1 × 1024 × 2)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 1024, 2]",
13
+ "name" : "encoded",
14
+ "type" : "MultiArray"
15
+ },
16
+ {
17
+ "hasShapeFlexibility" : "0",
18
+ "isOptional" : "0",
19
+ "dataType" : "Int32",
20
+ "formattedType" : "MultiArray (Int32 1)",
21
+ "shortDescription" : "",
22
+ "shape" : "[1]",
23
+ "name" : "encoded_length",
24
+ "type" : "MultiArray"
25
+ },
26
+ {
27
+ "hasShapeFlexibility" : "0",
28
+ "isOptional" : "0",
29
+ "dataType" : "Float32",
30
+ "formattedType" : "MultiArray (Float32 1 × 24 × 70 × 1024)",
31
+ "shortDescription" : "",
32
+ "shape" : "[1, 24, 70, 1024]",
33
+ "name" : "cache_channel_out",
34
+ "type" : "MultiArray"
35
+ },
36
+ {
37
+ "hasShapeFlexibility" : "0",
38
+ "isOptional" : "0",
39
+ "dataType" : "Float32",
40
+ "formattedType" : "MultiArray (Float32 1 × 24 × 1024 × 8)",
41
+ "shortDescription" : "",
42
+ "shape" : "[1, 24, 1024, 8]",
43
+ "name" : "cache_time_out",
44
+ "type" : "MultiArray"
45
+ },
46
+ {
47
+ "hasShapeFlexibility" : "0",
48
+ "isOptional" : "0",
49
+ "dataType" : "Int32",
50
+ "formattedType" : "MultiArray (Int32 1)",
51
+ "shortDescription" : "",
52
+ "shape" : "[1]",
53
+ "name" : "cache_len_out",
54
+ "type" : "MultiArray"
55
+ }
56
+ ],
57
+ "storagePrecision" : "Mixed (Float32, Int8)",
58
+ "modelParameters" : [
59
+
60
+ ],
61
+ "author" : "Fluid Inference",
62
+ "specificationVersion" : 8,
63
+ "mlProgramOperationTypeHistogram" : {
64
+ "Ios17.logicalAnd" : 3,
65
+ "Ios17.reshape" : 145,
66
+ "Ios16.softmax" : 24,
67
+ "Ios17.matmul" : 72,
68
+ "Ios17.transpose" : 224,
69
+ "Split" : 24,
70
+ "Ios17.expandDims" : 18,
71
+ "Select" : 72,
72
+ "Ios17.add" : 180,
73
+ "Tile" : 8,
74
+ "Ios17.sliceByIndex" : 147,
75
+ "Ios16.sigmoid" : 24,
76
+ "Pad" : 27,
77
+ "Ios17.logicalNot" : 2,
78
+ "Ios17.layerNorm" : 144,
79
+ "Ios16.constexprAffineDequantize" : 294,
80
+ "Ios17.less" : 5,
81
+ "Ios17.sub" : 4,
82
+ "Ios17.conv" : 77,
83
+ "Ios16.relu" : 3,
84
+ "Ios17.clip" : 2,
85
+ "Ios17.linear" : 193,
86
+ "Ios17.greaterEqual" : 1,
87
+ "Ios17.floorDiv" : 3,
88
+ "Ios17.cast" : 12,
89
+ "Ios16.silu" : 72,
90
+ "Ios17.concat" : 72,
91
+ "Stack" : 2,
92
+ "Ios17.mul" : 106
93
+ },
94
+ "computePrecision" : "Mixed (Float32, Int32)",
95
+ "isUpdatable" : "0",
96
+ "stateSchema" : [
97
+
98
+ ],
99
+ "availability" : {
100
+ "macOS" : "14.0",
101
+ "tvOS" : "17.0",
102
+ "visionOS" : "1.0",
103
+ "watchOS" : "10.0",
104
+ "iOS" : "17.0",
105
+ "macCatalyst" : "17.0"
106
+ },
107
+ "modelType" : {
108
+ "name" : "MLModelType_mlProgram"
109
+ },
110
+ "inputSchema" : [
111
+ {
112
+ "hasShapeFlexibility" : "0",
113
+ "isOptional" : "0",
114
+ "dataType" : "Float32",
115
+ "formattedType" : "MultiArray (Float32 1 × 128 × 25)",
116
+ "shortDescription" : "",
117
+ "shape" : "[1, 128, 25]",
118
+ "name" : "mel",
119
+ "type" : "MultiArray"
120
+ },
121
+ {
122
+ "hasShapeFlexibility" : "0",
123
+ "isOptional" : "0",
124
+ "dataType" : "Int32",
125
+ "formattedType" : "MultiArray (Int32 1)",
126
+ "shortDescription" : "",
127
+ "shape" : "[1]",
128
+ "name" : "mel_length",
129
+ "type" : "MultiArray"
130
+ },
131
+ {
132
+ "hasShapeFlexibility" : "0",
133
+ "isOptional" : "0",
134
+ "dataType" : "Float32",
135
+ "formattedType" : "MultiArray (Float32 1 × 24 × 70 × 1024)",
136
+ "shortDescription" : "",
137
+ "shape" : "[1, 24, 70, 1024]",
138
+ "name" : "cache_channel",
139
+ "type" : "MultiArray"
140
+ },
141
+ {
142
+ "hasShapeFlexibility" : "0",
143
+ "isOptional" : "0",
144
+ "dataType" : "Float32",
145
+ "formattedType" : "MultiArray (Float32 1 × 24 × 1024 × 8)",
146
+ "shortDescription" : "",
147
+ "shape" : "[1, 24, 1024, 8]",
148
+ "name" : "cache_time",
149
+ "type" : "MultiArray"
150
+ },
151
+ {
152
+ "hasShapeFlexibility" : "0",
153
+ "isOptional" : "0",
154
+ "dataType" : "Int32",
155
+ "formattedType" : "MultiArray (Int32 1)",
156
+ "shortDescription" : "",
157
+ "shape" : "[1]",
158
+ "name" : "cache_len",
159
+ "type" : "MultiArray"
160
+ }
161
+ ],
162
+ "userDefinedMetadata" : {
163
+ "com.github.apple.coremltools.conversion_date" : "2026-01-15",
164
+ "com.github.apple.coremltools.source" : "torch==2.9.1",
165
+ "com.github.apple.coremltools.version" : "9.0",
166
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
167
+ },
168
+ "generatedClassName" : "encoder_int8",
169
+ "method" : "predict"
170
+ }
171
+ ]
nemotron_coreml_160ms/encoder/encoder_int8.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
nemotron_coreml_160ms/encoder/{encoder.mlpackage/Data/com.apple.CoreML/model.mlmodel → encoder_int8.mlmodelc/weights/weight.bin} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:037e8d0375acbd8ceb92173640f1d5f0fa3a706780344bb8e1d0c1272aa82fdf
3
- size 638845
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:54ceddffffaa3a7d8dd7bf227624bfd0e014a574419daf6453a0698244e8e144
3
+ size 590870588
nemotron_coreml_160ms/joint.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:795588a93820f6ec4823e81d9da03b1a84e9a889c845b1e83213e4e18e3c5e67
3
+ size 243
nemotron_coreml_160ms/joint.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:81370bb4ea1f4e92b73c4cf7a0f8cc7e46f433d475215584afb58af27e192c62
3
+ size 400
nemotron_coreml_160ms/joint.mlmodelc/metadata.json ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "storagePrecision" : "Float32",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float32",
10
+ "formattedType" : "MultiArray (Float32 1 × 1 × 1 × 1025)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 1, 1, 1025]",
13
+ "name" : "logits",
14
+ "type" : "MultiArray"
15
+ }
16
+ ],
17
+ "modelParameters" : [
18
+
19
+ ],
20
+ "specificationVersion" : 8,
21
+ "mlProgramOperationTypeHistogram" : {
22
+ "Ios17.expandDims" : 2,
23
+ "Ios17.transpose" : 2,
24
+ "Ios17.linear" : 3,
25
+ "Ios17.add" : 1,
26
+ "Ios16.relu" : 1
27
+ },
28
+ "computePrecision" : "Mixed (Float32, Int32)",
29
+ "isUpdatable" : "0",
30
+ "stateSchema" : [
31
+
32
+ ],
33
+ "availability" : {
34
+ "macOS" : "14.0",
35
+ "tvOS" : "17.0",
36
+ "visionOS" : "1.0",
37
+ "watchOS" : "10.0",
38
+ "iOS" : "17.0",
39
+ "macCatalyst" : "17.0"
40
+ },
41
+ "modelType" : {
42
+ "name" : "MLModelType_mlProgram"
43
+ },
44
+ "userDefinedMetadata" : {
45
+ "com.github.apple.coremltools.conversion_date" : "2026-01-15",
46
+ "com.github.apple.coremltools.source" : "torch==2.9.1",
47
+ "com.github.apple.coremltools.version" : "9.0",
48
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
49
+ },
50
+ "inputSchema" : [
51
+ {
52
+ "hasShapeFlexibility" : "0",
53
+ "isOptional" : "0",
54
+ "dataType" : "Float32",
55
+ "formattedType" : "MultiArray (Float32 1 × 1024 × 1)",
56
+ "shortDescription" : "",
57
+ "shape" : "[1, 1024, 1]",
58
+ "name" : "encoder",
59
+ "type" : "MultiArray"
60
+ },
61
+ {
62
+ "hasShapeFlexibility" : "0",
63
+ "isOptional" : "0",
64
+ "dataType" : "Float32",
65
+ "formattedType" : "MultiArray (Float32 1 × 640 × 1)",
66
+ "shortDescription" : "",
67
+ "shape" : "[1, 640, 1]",
68
+ "name" : "decoder",
69
+ "type" : "MultiArray"
70
+ }
71
+ ],
72
+ "generatedClassName" : "joint",
73
+ "method" : "predict"
74
+ }
75
+ ]
nemotron_coreml_160ms/joint.mlmodelc/model.mil ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ program(1.0)
2
+ [buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3510.2.1"}, {"coremlc-version", "3500.32.1"}, {"coremltools-component-torch", "2.9.1"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "9.0"}})]
3
+ {
4
+ func main<ios17>(tensor<fp32, [1, 640, 1]> decoder, tensor<fp32, [1, 1024, 1]> encoder) {
5
+ tensor<fp32, [640]> module_enc_bias = const()[name = tensor<string, []>("module_enc_bias"), val = tensor<fp32, [640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
6
+ tensor<fp32, [640, 1024]> module_enc_weight = const()[name = tensor<string, []>("module_enc_weight"), val = tensor<fp32, [640, 1024]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2688)))];
7
+ tensor<fp32, [640]> module_pred_bias = const()[name = tensor<string, []>("module_pred_bias"), val = tensor<fp32, [640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2624192)))];
8
+ tensor<fp32, [640, 640]> module_pred_weight = const()[name = tensor<string, []>("module_pred_weight"), val = tensor<fp32, [640, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2626816)))];
9
+ tensor<fp32, [1025]> module_joint_net_2_bias = const()[name = tensor<string, []>("module_joint_net_2_bias"), val = tensor<fp32, [1025]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4265280)))];
10
+ tensor<fp32, [1025, 640]> module_joint_net_2_weight = const()[name = tensor<string, []>("module_joint_net_2_weight"), val = tensor<fp32, [1025, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4269504)))];
11
+ tensor<int32, [3]> input_1_perm_0 = const()[name = tensor<string, []>("input_1_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
12
+ tensor<int32, [3]> input_3_perm_0 = const()[name = tensor<string, []>("input_3_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
13
+ tensor<fp32, [1, 1, 1024]> input_1 = transpose(perm = input_1_perm_0, x = encoder)[name = tensor<string, []>("transpose_1")];
14
+ tensor<fp32, [1, 1, 640]> enc_proj = linear(bias = module_enc_bias, weight = module_enc_weight, x = input_1)[name = tensor<string, []>("linear_0")];
15
+ tensor<fp32, [1, 1, 640]> input_3 = transpose(perm = input_3_perm_0, x = decoder)[name = tensor<string, []>("transpose_0")];
16
+ tensor<fp32, [1, 1, 640]> dec_proj = linear(bias = module_pred_bias, weight = module_pred_weight, x = input_3)[name = tensor<string, []>("linear_1")];
17
+ tensor<int32, [1]> var_23_axes_0 = const()[name = tensor<string, []>("op_23_axes_0"), val = tensor<int32, [1]>([2])];
18
+ tensor<fp32, [1, 1, 1, 640]> var_23 = expand_dims(axes = var_23_axes_0, x = enc_proj)[name = tensor<string, []>("op_23")];
19
+ tensor<int32, [1]> var_25_axes_0 = const()[name = tensor<string, []>("op_25_axes_0"), val = tensor<int32, [1]>([1])];
20
+ tensor<fp32, [1, 1, 1, 640]> var_25 = expand_dims(axes = var_25_axes_0, x = dec_proj)[name = tensor<string, []>("op_25")];
21
+ tensor<fp32, [1, 1, 1, 640]> input_5 = add(x = var_23, y = var_25)[name = tensor<string, []>("input_5")];
22
+ tensor<fp32, [1, 1, 1, 640]> input_7 = relu(x = input_5)[name = tensor<string, []>("input_7")];
23
+ tensor<fp32, [1, 1, 1, 1025]> logits = linear(bias = module_joint_net_2_bias, weight = module_joint_net_2_weight, x = input_7)[name = tensor<string, []>("linear_2")];
24
+ } -> (logits);
25
+ }
nemotron_coreml_160ms/{joint.mlpackage/Data/com.apple.CoreML → joint.mlmodelc}/weights/weight.bin RENAMED
File without changes
nemotron_coreml_160ms/joint.mlpackage/Manifest.json DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "fileFormatVersion": "1.0.0",
3
- "itemInfoEntries": {
4
- "1D02C143-1820-4904-A8D1-9D058325DC09": {
5
- "author": "com.apple.CoreML",
6
- "description": "CoreML Model Specification",
7
- "name": "model.mlmodel",
8
- "path": "com.apple.CoreML/model.mlmodel"
9
- },
10
- "627B0BEF-7268-413A-8118-20E6785E38B1": {
11
- "author": "com.apple.CoreML",
12
- "description": "CoreML Model Weights",
13
- "name": "weights",
14
- "path": "com.apple.CoreML/weights"
15
- }
16
- },
17
- "rootModelIdentifier": "1D02C143-1820-4904-A8D1-9D058325DC09"
18
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
nemotron_coreml_160ms/metadata.json CHANGED
@@ -24,5 +24,10 @@
24
  ],
25
  "decoder_hidden": 640,
26
  "decoder_layers": 2,
27
- "encoder_dim": 1024
 
 
 
 
 
28
  }
 
24
  ],
25
  "decoder_hidden": 640,
26
  "decoder_layers": 2,
27
+ "encoder_dim": 1024,
28
+ "quantization": {
29
+ "encoder": "int8",
30
+ "baseline_size_mb": 2241.8,
31
+ "quantized_size_mb": 564.2
32
+ }
33
  }
nemotron_coreml_160ms/preprocessor.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d69676882610f7d73b3e848f1321e1c8f992c2effb2abcdca40e260fbb263eac
3
+ size 243
nemotron_coreml_160ms/preprocessor.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2f5d04b110719e59b7e84e9e6d1d5d60ae48c5e01bee99f1239956dc8a91b834
3
+ size 430
nemotron_coreml_160ms/preprocessor.mlmodelc/metadata.json ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "storagePrecision" : "Float32",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float32",
10
+ "formattedType" : "MultiArray (Float32)",
11
+ "shortDescription" : "",
12
+ "shape" : "[]",
13
+ "name" : "mel",
14
+ "type" : "MultiArray"
15
+ },
16
+ {
17
+ "hasShapeFlexibility" : "0",
18
+ "isOptional" : "0",
19
+ "dataType" : "Int32",
20
+ "formattedType" : "MultiArray (Int32 1)",
21
+ "shortDescription" : "",
22
+ "shape" : "[1]",
23
+ "name" : "mel_length",
24
+ "type" : "MultiArray"
25
+ }
26
+ ],
27
+ "modelParameters" : [
28
+
29
+ ],
30
+ "specificationVersion" : 8,
31
+ "mlProgramOperationTypeHistogram" : {
32
+ "Range1d" : 2,
33
+ "Ios17.equal" : 1,
34
+ "Ios17.reshape" : 2,
35
+ "Identity" : 1,
36
+ "Ios17.matmul" : 1,
37
+ "Select" : 3,
38
+ "Ios17.expandDims" : 7,
39
+ "Ios17.add" : 2,
40
+ "Ios17.sliceByIndex" : 3,
41
+ "Ios16.reduceSum" : 1,
42
+ "Shape" : 2,
43
+ "Ios17.gather" : 2,
44
+ "Ios17.logicalNot" : 1,
45
+ "Pad" : 1,
46
+ "Ios17.log" : 1,
47
+ "Ios17.less" : 1,
48
+ "Ios17.sub" : 2,
49
+ "Ios17.conv" : 2,
50
+ "Ios17.pow" : 1,
51
+ "Ios17.concat" : 1,
52
+ "Stack" : 1,
53
+ "Ios17.floorDiv" : 1,
54
+ "Ios17.greaterEqual" : 1,
55
+ "Ios17.mul" : 1
56
+ },
57
+ "computePrecision" : "Mixed (Float32, Int32)",
58
+ "isUpdatable" : "0",
59
+ "stateSchema" : [
60
+
61
+ ],
62
+ "availability" : {
63
+ "macOS" : "14.0",
64
+ "tvOS" : "17.0",
65
+ "visionOS" : "1.0",
66
+ "watchOS" : "10.0",
67
+ "iOS" : "17.0",
68
+ "macCatalyst" : "17.0"
69
+ },
70
+ "modelType" : {
71
+ "name" : "MLModelType_mlProgram"
72
+ },
73
+ "userDefinedMetadata" : {
74
+ "com.github.apple.coremltools.conversion_date" : "2026-01-15",
75
+ "com.github.apple.coremltools.source" : "torch==2.9.1",
76
+ "com.github.apple.coremltools.version" : "9.0",
77
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
78
+ },
79
+ "inputSchema" : [
80
+ {
81
+ "dataType" : "Float32",
82
+ "hasShapeFlexibility" : "1",
83
+ "isOptional" : "0",
84
+ "shapeFlexibility" : "1 × 1...480000",
85
+ "shapeRange" : "[[1, 1], [1, 480000]]",
86
+ "formattedType" : "MultiArray (Float32 1 × 1)",
87
+ "type" : "MultiArray",
88
+ "shape" : "[1, 1]",
89
+ "name" : "audio",
90
+ "shortDescription" : ""
91
+ },
92
+ {
93
+ "hasShapeFlexibility" : "0",
94
+ "isOptional" : "0",
95
+ "dataType" : "Int32",
96
+ "formattedType" : "MultiArray (Int32 1)",
97
+ "shortDescription" : "",
98
+ "shape" : "[1]",
99
+ "name" : "audio_length",
100
+ "type" : "MultiArray"
101
+ }
102
+ ],
103
+ "generatedClassName" : "preprocessor",
104
+ "method" : "predict"
105
+ }
106
+ ]
nemotron_coreml_160ms/preprocessor.mlmodelc/model.mil ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ program(1.0)
2
+ [buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3510.2.1"}, {"coremlc-version", "3500.32.1"}, {"coremltools-component-torch", "2.9.1"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "9.0"}})]
3
+ {
4
+ func main<ios17>(tensor<fp32, [1, ?]> audio, tensor<int32, [1]> audio_length) [FlexibleShapeInformation = tuple<tuple<tensor<string, []>, dict<tensor<string, []>, tensor<int32, [?]>>>, tuple<tensor<string, []>, dict<tensor<string, []>, list<tensor<int32, [2]>, ?>>>>((("DefaultShapes", {{"audio", [1, 1]}}), ("RangeDims", {{"audio", [[1, 1], [1, 480000]]}})))] {
5
+ tensor<int32, []> var_9 = const()[name = tensor<string, []>("op_9"), val = tensor<int32, []>(1)];
6
+ tensor<int32, []> var_10 = const()[name = tensor<string, []>("op_10"), val = tensor<int32, []>(160)];
7
+ tensor<int32, []> var_12 = const()[name = tensor<string, []>("op_12"), val = tensor<int32, []>(0)];
8
+ tensor<fp32, []> var_16 = const()[name = tensor<string, []>("op_16"), val = tensor<fp32, []>(0x0p+0)];
9
+ tensor<int32, []> var_33 = const()[name = tensor<string, []>("op_33"), val = tensor<int32, []>(512)];
10
+ tensor<int32, [1]> var_34 = add(x = audio_length, y = var_33)[name = tensor<string, []>("op_34")];
11
+ tensor<int32, []> var_35 = const()[name = tensor<string, []>("op_35"), val = tensor<int32, []>(512)];
12
+ tensor<int32, [1]> var_36 = sub(x = var_34, y = var_35)[name = tensor<string, []>("op_36")];
13
+ tensor<int32, [1]> floor_div_0 = floor_div(x = var_36, y = var_10)[name = tensor<string, []>("floor_div_0")];
14
+ tensor<bool, [1]> var_39 = equal(x = audio_length, y = var_12)[name = tensor<string, []>("op_39")];
15
+ tensor<int32, [1]> var_40 = const()[name = tensor<string, []>("op_40"), val = tensor<int32, [1]>([0])];
16
+ tensor<int32, [1]> mel_length = select(a = var_40, b = floor_div_0, cond = var_39)[name = tensor<string, []>("seq_len")];
17
+ tensor<int32, [2]> var_42_shape = shape(x = audio)[name = tensor<string, []>("op_42_shape")];
18
+ tensor<int32, []> gather_0_batch_dims_0 = const()[name = tensor<string, []>("gather_0_batch_dims_0"), val = tensor<int32, []>(0)];
19
+ tensor<bool, []> gather_0_validate_indices_0 = const()[name = tensor<string, []>("gather_0_validate_indices_0"), val = tensor<bool, []>(false)];
20
+ tensor<int32, []> select_0 = const()[name = tensor<string, []>("select_0"), val = tensor<int32, []>(1)];
21
+ tensor<int32, []> gather_0_axis_1 = const()[name = tensor<string, []>("gather_0_axis_1"), val = tensor<int32, []>(0)];
22
+ tensor<int32, []> gather_0 = gather(axis = gather_0_axis_1, batch_dims = gather_0_batch_dims_0, indices = select_0, validate_indices = gather_0_validate_indices_0, x = var_42_shape)[name = tensor<string, []>("gather_0")];
23
+ tensor<int32, []> const_0 = const()[name = tensor<string, []>("const_0"), val = tensor<int32, []>(0)];
24
+ tensor<int32, []> const_1 = const()[name = tensor<string, []>("const_1"), val = tensor<int32, []>(1)];
25
+ tensor<int32, [?]> var_43 = range_1d(end = gather_0, start = const_0, step = const_1)[name = tensor<string, []>("op_43")];
26
+ tensor<int32, [1]> var_44_axes_0 = const()[name = tensor<string, []>("op_44_axes_0"), val = tensor<int32, [1]>([0])];
27
+ tensor<int32, [1, ?]> var_44 = expand_dims(axes = var_44_axes_0, x = var_43)[name = tensor<string, []>("op_44")];
28
+ tensor<int32, [1]> var_45_axes_0 = const()[name = tensor<string, []>("op_45_axes_0"), val = tensor<int32, [1]>([1])];
29
+ tensor<int32, [1, 1]> var_45 = expand_dims(axes = var_45_axes_0, x = audio_length)[name = tensor<string, []>("op_45")];
30
+ tensor<bool, [1, ?]> timemask = less(x = var_44, y = var_45)[name = tensor<string, []>("timemask")];
31
+ tensor<int32, [2]> var_48_begin_0 = const()[name = tensor<string, []>("op_48_begin_0"), val = tensor<int32, [2]>([0, 0])];
32
+ tensor<int32, [2]> var_48_end_0 = const()[name = tensor<string, []>("op_48_end_0"), val = tensor<int32, [2]>([1, 1])];
33
+ tensor<bool, [2]> var_48_end_mask_0 = const()[name = tensor<string, []>("op_48_end_mask_0"), val = tensor<bool, [2]>([true, false])];
34
+ tensor<bool, [2]> var_48_squeeze_mask_0 = const()[name = tensor<string, []>("op_48_squeeze_mask_0"), val = tensor<bool, [2]>([false, true])];
35
+ tensor<fp32, [1]> var_48 = slice_by_index(begin = var_48_begin_0, end = var_48_end_0, end_mask = var_48_end_mask_0, squeeze_mask = var_48_squeeze_mask_0, x = audio)[name = tensor<string, []>("op_48")];
36
+ tensor<int32, [1]> var_49_axes_0 = const()[name = tensor<string, []>("op_49_axes_0"), val = tensor<int32, [1]>([1])];
37
+ tensor<fp32, [1, 1]> var_49 = expand_dims(axes = var_49_axes_0, x = var_48)[name = tensor<string, []>("op_49")];
38
+ tensor<int32, [2]> var_51_begin_0 = const()[name = tensor<string, []>("op_51_begin_0"), val = tensor<int32, [2]>([0, 1])];
39
+ tensor<int32, [2]> var_51_end_0 = const()[name = tensor<string, []>("op_51_end_0"), val = tensor<int32, [2]>([1, 0])];
40
+ tensor<bool, [2]> var_51_end_mask_0 = const()[name = tensor<string, []>("op_51_end_mask_0"), val = tensor<bool, [2]>([true, true])];
41
+ tensor<fp32, [1, ?]> var_51 = slice_by_index(begin = var_51_begin_0, end = var_51_end_0, end_mask = var_51_end_mask_0, x = audio)[name = tensor<string, []>("op_51")];
42
+ tensor<int32, [2]> var_53_begin_0 = const()[name = tensor<string, []>("op_53_begin_0"), val = tensor<int32, [2]>([0, 0])];
43
+ tensor<int32, [2]> var_53_end_0 = const()[name = tensor<string, []>("op_53_end_0"), val = tensor<int32, [2]>([1, -1])];
44
+ tensor<bool, [2]> var_53_end_mask_0 = const()[name = tensor<string, []>("op_53_end_mask_0"), val = tensor<bool, [2]>([true, false])];
45
+ tensor<fp32, [1, ?]> var_53 = slice_by_index(begin = var_53_begin_0, end = var_53_end_0, end_mask = var_53_end_mask_0, x = audio)[name = tensor<string, []>("op_53")];
46
+ tensor<fp32, []> var_54 = const()[name = tensor<string, []>("op_54"), val = tensor<fp32, []>(0x1.f0a3d8p-1)];
47
+ tensor<fp32, [1, ?]> var_55 = mul(x = var_53, y = var_54)[name = tensor<string, []>("op_55")];
48
+ tensor<fp32, [1, ?]> var_56 = sub(x = var_51, y = var_55)[name = tensor<string, []>("op_56")];
49
+ tensor<bool, []> x_3_interleave_0 = const()[name = tensor<string, []>("x_3_interleave_0"), val = tensor<bool, []>(false)];
50
+ tensor<fp32, [1, ?]> x_3 = concat(axis = var_9, interleave = x_3_interleave_0, values = (var_49, var_56))[name = tensor<string, []>("x_3")];
51
+ tensor<bool, [1, ?]> var_59 = logical_not(x = timemask)[name = tensor<string, []>("op_59")];
52
+ tensor<fp32, [1, ?]> input_1 = select(a = var_16, b = x_3, cond = var_59)[name = tensor<string, []>("input_1")];
53
+ tensor<int32, [3]> concat_1x = const()[name = tensor<string, []>("concat_1x"), val = tensor<int32, [3]>([1, 1, -1])];
54
+ tensor<fp32, [1, 1, ?]> input_3 = reshape(shape = concat_1x, x = input_1)[name = tensor<string, []>("input_3")];
55
+ tensor<fp32, []> const_3 = const()[name = tensor<string, []>("const_3"), val = tensor<fp32, []>(0x0p+0)];
56
+ tensor<int32, [6]> input_5_pad_0 = const()[name = tensor<string, []>("input_5_pad_0"), val = tensor<int32, [6]>([0, 0, 0, 0, 256, 256])];
57
+ tensor<string, []> input_5_mode_0 = const()[name = tensor<string, []>("input_5_mode_0"), val = tensor<string, []>("constant")];
58
+ tensor<fp32, [1, 1, ?]> input_5 = pad(constant_val = const_3, mode = input_5_mode_0, pad = input_5_pad_0, x = input_3)[name = tensor<string, []>("input_5")];
59
+ tensor<int32, [2]> concat_2x = const()[name = tensor<string, []>("concat_2x"), val = tensor<int32, [2]>([1, -1])];
60
+ tensor<fp32, [1, ?]> input = reshape(shape = concat_2x, x = input_5)[name = tensor<string, []>("input")];
61
+ tensor<fp32, [257, 1, 512]> expand_dims_1 = const()[name = tensor<string, []>("expand_dims_1"), val = tensor<fp32, [257, 1, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
62
+ tensor<fp32, [257, 1, 512]> expand_dims_2 = const()[name = tensor<string, []>("expand_dims_2"), val = tensor<fp32, [257, 1, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(526464)))];
63
+ tensor<int32, [1]> expand_dims_3 = const()[name = tensor<string, []>("expand_dims_3"), val = tensor<int32, [1]>([160])];
64
+ tensor<int32, [1]> expand_dims_4_axes_0 = const()[name = tensor<string, []>("expand_dims_4_axes_0"), val = tensor<int32, [1]>([1])];
65
+ tensor<fp32, [1, 1, ?]> expand_dims_4 = expand_dims(axes = expand_dims_4_axes_0, x = input)[name = tensor<string, []>("expand_dims_4")];
66
+ tensor<string, []> conv_0_pad_type_0 = const()[name = tensor<string, []>("conv_0_pad_type_0"), val = tensor<string, []>("valid")];
67
+ tensor<int32, [2]> conv_0_pad_0 = const()[name = tensor<string, []>("conv_0_pad_0"), val = tensor<int32, [2]>([0, 0])];
68
+ tensor<int32, [1]> conv_0_dilations_0 = const()[name = tensor<string, []>("conv_0_dilations_0"), val = tensor<int32, [1]>([1])];
69
+ tensor<int32, []> conv_0_groups_0 = const()[name = tensor<string, []>("conv_0_groups_0"), val = tensor<int32, []>(1)];
70
+ tensor<fp32, [1, 257, ?]> conv_0 = conv(dilations = conv_0_dilations_0, groups = conv_0_groups_0, pad = conv_0_pad_0, pad_type = conv_0_pad_type_0, strides = expand_dims_3, weight = expand_dims_1, x = expand_dims_4)[name = tensor<string, []>("conv_0")];
71
+ tensor<string, []> conv_1_pad_type_0 = const()[name = tensor<string, []>("conv_1_pad_type_0"), val = tensor<string, []>("valid")];
72
+ tensor<int32, [2]> conv_1_pad_0 = const()[name = tensor<string, []>("conv_1_pad_0"), val = tensor<int32, [2]>([0, 0])];
73
+ tensor<int32, [1]> conv_1_dilations_0 = const()[name = tensor<string, []>("conv_1_dilations_0"), val = tensor<int32, [1]>([1])];
74
+ tensor<int32, []> conv_1_groups_0 = const()[name = tensor<string, []>("conv_1_groups_0"), val = tensor<int32, []>(1)];
75
+ tensor<fp32, [1, 257, ?]> conv_1 = conv(dilations = conv_1_dilations_0, groups = conv_1_groups_0, pad = conv_1_pad_0, pad_type = conv_1_pad_type_0, strides = expand_dims_3, weight = expand_dims_2, x = expand_dims_4)[name = tensor<string, []>("conv_1")];
76
+ tensor<int32, []> stack_0_axis_0 = const()[name = tensor<string, []>("stack_0_axis_0"), val = tensor<int32, []>(-1)];
77
+ tensor<fp32, [1, 257, ?, 2]> stack_0 = stack(axis = stack_0_axis_0, values = (conv_0, conv_1))[name = tensor<string, []>("stack_0")];
78
+ tensor<fp32, []> var_19_promoted = const()[name = tensor<string, []>("op_19_promoted"), val = tensor<fp32, []>(0x1p+1)];
79
+ tensor<fp32, [1, 257, ?, 2]> var_74 = pow(x = stack_0, y = var_19_promoted)[name = tensor<string, []>("op_74")];
80
+ tensor<int32, [1]> var_76_axes_0 = const()[name = tensor<string, []>("op_76_axes_0"), val = tensor<int32, [1]>([-1])];
81
+ tensor<bool, []> var_76_keep_dims_0 = const()[name = tensor<string, []>("op_76_keep_dims_0"), val = tensor<bool, []>(false)];
82
+ tensor<fp32, [1, 257, ?]> var_76 = reduce_sum(axes = var_76_axes_0, keep_dims = var_76_keep_dims_0, x = var_74)[name = tensor<string, []>("op_76")];
83
+ tensor<fp32, [1, 257, ?]> x_11 = identity(x = var_76)[name = tensor<string, []>("x_11")];
84
+ tensor<fp32, [1, 128, 257]> const_4 = const()[name = tensor<string, []>("const_4"), val = tensor<fp32, [1, 128, 257]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1052864)))];
85
+ tensor<bool, []> x_13_transpose_x_0 = const()[name = tensor<string, []>("x_13_transpose_x_0"), val = tensor<bool, []>(false)];
86
+ tensor<bool, []> x_13_transpose_y_0 = const()[name = tensor<string, []>("x_13_transpose_y_0"), val = tensor<bool, []>(false)];
87
+ tensor<fp32, [1, 128, ?]> x_13 = matmul(transpose_x = x_13_transpose_x_0, transpose_y = x_13_transpose_y_0, x = const_4, y = x_11)[name = tensor<string, []>("x_13")];
88
+ tensor<fp32, []> var_83 = const()[name = tensor<string, []>("op_83"), val = tensor<fp32, []>(0x1p-24)];
89
+ tensor<fp32, [1, 128, ?]> var_84 = add(x = x_13, y = var_83)[name = tensor<string, []>("op_84")];
90
+ tensor<fp32, []> x_epsilon_0 = const()[name = tensor<string, []>("x_epsilon_0"), val = tensor<fp32, []>(0x1p-149)];
91
+ tensor<fp32, [1, 128, ?]> x = log(epsilon = x_epsilon_0, x = var_84)[name = tensor<string, []>("x")];
92
+ tensor<int32, [3]> var_86_shape = shape(x = x)[name = tensor<string, []>("op_86_shape")];
93
+ tensor<int32, []> gather_5_batch_dims_0 = const()[name = tensor<string, []>("gather_5_batch_dims_0"), val = tensor<int32, []>(0)];
94
+ tensor<bool, []> gather_5_validate_indices_0 = const()[name = tensor<string, []>("gather_5_validate_indices_0"), val = tensor<bool, []>(false)];
95
+ tensor<int32, []> select_3 = const()[name = tensor<string, []>("select_3"), val = tensor<int32, []>(2)];
96
+ tensor<int32, []> gather_5_axis_1 = const()[name = tensor<string, []>("gather_5_axis_1"), val = tensor<int32, []>(0)];
97
+ tensor<int32, []> gather_5 = gather(axis = gather_5_axis_1, batch_dims = gather_5_batch_dims_0, indices = select_3, validate_indices = gather_5_validate_indices_0, x = var_86_shape)[name = tensor<string, []>("gather_5")];
98
+ tensor<int32, []> const_5 = const()[name = tensor<string, []>("const_5"), val = tensor<int32, []>(0)];
99
+ tensor<int32, []> const_6 = const()[name = tensor<string, []>("const_6"), val = tensor<int32, []>(1)];
100
+ tensor<int32, [?]> mask_1 = range_1d(end = gather_5, start = const_5, step = const_6)[name = tensor<string, []>("mask_1")];
101
+ tensor<int32, [1]> expand_dims_0_axes_0 = const()[name = tensor<string, []>("expand_dims_0_axes_0"), val = tensor<int32, [1]>([0])];
102
+ tensor<int32, [1, ?]> expand_dims_0 = expand_dims(axes = expand_dims_0_axes_0, x = mask_1)[name = tensor<string, []>("expand_dims_0")];
103
+ tensor<int32, [1]> var_91_axes_0 = const()[name = tensor<string, []>("op_91_axes_0"), val = tensor<int32, [1]>([1])];
104
+ tensor<int32, [1, 1]> var_91 = expand_dims(axes = var_91_axes_0, x = mel_length)[name = tensor<string, []>("op_91")];
105
+ tensor<bool, [1, ?]> mask = greater_equal(x = expand_dims_0, y = var_91)[name = tensor<string, []>("mask")];
106
+ tensor<int32, [1]> var_93_axes_0 = const()[name = tensor<string, []>("op_93_axes_0"), val = tensor<int32, [1]>([1])];
107
+ tensor<bool, [1, 1, ?]> var_93 = expand_dims(axes = var_93_axes_0, x = mask)[name = tensor<string, []>("op_93")];
108
+ tensor<fp32, [1, 128, ?]> mel = select(a = var_16, b = x, cond = var_93)[name = tensor<string, []>("processed_signal")];
109
+ } -> (mel, mel_length);
110
+ }
nemotron_coreml_160ms/{preprocessor.mlpackage/Data/com.apple.CoreML → preprocessor.mlmodelc}/weights/weight.bin RENAMED
File without changes
nemotron_coreml_160ms/preprocessor.mlpackage/Manifest.json DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "fileFormatVersion": "1.0.0",
3
- "itemInfoEntries": {
4
- "358ABE70-5E22-49A2-A249-CF11C6CCFEB7": {
5
- "author": "com.apple.CoreML",
6
- "description": "CoreML Model Weights",
7
- "name": "weights",
8
- "path": "com.apple.CoreML/weights"
9
- },
10
- "59E29668-EB5C-46CD-AD91-CFB4BBEC79F3": {
11
- "author": "com.apple.CoreML",
12
- "description": "CoreML Model Specification",
13
- "name": "model.mlmodel",
14
- "path": "com.apple.CoreML/model.mlmodel"
15
- }
16
- },
17
- "rootModelIdentifier": "59E29668-EB5C-46CD-AD91-CFB4BBEC79F3"
18
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
nemotron_coreml_560ms/decoder.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1357ea773a03fb0d353f1755603502d5d37249327b97ca487bb158484dc79b36
3
+ size 243
nemotron_coreml_560ms/decoder.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:170217fe94bc926fc363b2afa6a0567b0da8524e7586de24a062a48a927563ac
3
+ size 492
nemotron_coreml_560ms/decoder.mlmodelc/metadata.json ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "storagePrecision" : "Float32",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float32",
10
+ "formattedType" : "MultiArray (Float32 1 × 640 × 1)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 640, 1]",
13
+ "name" : "decoder_out",
14
+ "type" : "MultiArray"
15
+ },
16
+ {
17
+ "hasShapeFlexibility" : "0",
18
+ "isOptional" : "0",
19
+ "dataType" : "Float32",
20
+ "formattedType" : "MultiArray (Float32 2 × 1 × 640)",
21
+ "shortDescription" : "",
22
+ "shape" : "[2, 1, 640]",
23
+ "name" : "h_out",
24
+ "type" : "MultiArray"
25
+ },
26
+ {
27
+ "hasShapeFlexibility" : "0",
28
+ "isOptional" : "0",
29
+ "dataType" : "Float32",
30
+ "formattedType" : "MultiArray (Float32 2 × 1 × 640)",
31
+ "shortDescription" : "",
32
+ "shape" : "[2, 1, 640]",
33
+ "name" : "c_out",
34
+ "type" : "MultiArray"
35
+ }
36
+ ],
37
+ "modelParameters" : [
38
+
39
+ ],
40
+ "specificationVersion" : 8,
41
+ "mlProgramOperationTypeHistogram" : {
42
+ "Select" : 1,
43
+ "Ios17.squeeze" : 4,
44
+ "Ios17.gather" : 1,
45
+ "Ios17.lstm" : 2,
46
+ "Identity" : 1,
47
+ "Ios17.transpose" : 2,
48
+ "Split" : 2,
49
+ "Ios17.add" : 1,
50
+ "Ios17.greaterEqual" : 1,
51
+ "Stack" : 2
52
+ },
53
+ "computePrecision" : "Mixed (Float32, Int32)",
54
+ "isUpdatable" : "0",
55
+ "stateSchema" : [
56
+
57
+ ],
58
+ "availability" : {
59
+ "macOS" : "14.0",
60
+ "tvOS" : "17.0",
61
+ "visionOS" : "1.0",
62
+ "watchOS" : "10.0",
63
+ "iOS" : "17.0",
64
+ "macCatalyst" : "17.0"
65
+ },
66
+ "modelType" : {
67
+ "name" : "MLModelType_mlProgram"
68
+ },
69
+ "userDefinedMetadata" : {
70
+ "com.github.apple.coremltools.conversion_date" : "2026-01-15",
71
+ "com.github.apple.coremltools.source" : "torch==2.9.1",
72
+ "com.github.apple.coremltools.version" : "9.0",
73
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
74
+ },
75
+ "inputSchema" : [
76
+ {
77
+ "hasShapeFlexibility" : "0",
78
+ "isOptional" : "0",
79
+ "dataType" : "Int32",
80
+ "formattedType" : "MultiArray (Int32 1 × 1)",
81
+ "shortDescription" : "",
82
+ "shape" : "[1, 1]",
83
+ "name" : "token",
84
+ "type" : "MultiArray"
85
+ },
86
+ {
87
+ "hasShapeFlexibility" : "0",
88
+ "isOptional" : "0",
89
+ "dataType" : "Int32",
90
+ "formattedType" : "MultiArray (Int32 1)",
91
+ "shortDescription" : "",
92
+ "shape" : "[1]",
93
+ "name" : "token_length",
94
+ "type" : "MultiArray"
95
+ },
96
+ {
97
+ "hasShapeFlexibility" : "0",
98
+ "isOptional" : "0",
99
+ "dataType" : "Float32",
100
+ "formattedType" : "MultiArray (Float32 2 × 1 × 640)",
101
+ "shortDescription" : "",
102
+ "shape" : "[2, 1, 640]",
103
+ "name" : "h_in",
104
+ "type" : "MultiArray"
105
+ },
106
+ {
107
+ "hasShapeFlexibility" : "0",
108
+ "isOptional" : "0",
109
+ "dataType" : "Float32",
110
+ "formattedType" : "MultiArray (Float32 2 × 1 × 640)",
111
+ "shortDescription" : "",
112
+ "shape" : "[2, 1, 640]",
113
+ "name" : "c_in",
114
+ "type" : "MultiArray"
115
+ }
116
+ ],
117
+ "generatedClassName" : "decoder",
118
+ "method" : "predict"
119
+ }
120
+ ]
nemotron_coreml_560ms/decoder.mlmodelc/model.mil ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ program(1.0)
2
+ [buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3510.2.1"}, {"coremlc-version", "3500.32.1"}, {"coremltools-component-torch", "2.9.1"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "9.0"}})]
3
+ {
4
+ func main<ios17>(tensor<fp32, [2, 1, 640]> c_in, tensor<fp32, [2, 1, 640]> h_in, tensor<int32, [1, 1]> token, tensor<int32, [1]> token_length) {
5
+ tensor<fp32, [1025, 640]> module_prediction_embed_weight = const()[name = tensor<string, []>("module_prediction_embed_weight"), val = tensor<fp32, [1025, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
6
+ tensor<int32, []> y_batch_dims_0 = const()[name = tensor<string, []>("y_batch_dims_0"), val = tensor<int32, []>(0)];
7
+ tensor<bool, []> y_validate_indices_0 = const()[name = tensor<string, []>("y_validate_indices_0"), val = tensor<bool, []>(false)];
8
+ tensor<int32, []> greater_equal_0_y_0 = const()[name = tensor<string, []>("greater_equal_0_y_0"), val = tensor<int32, []>(0)];
9
+ tensor<bool, [1, 1]> greater_equal_0 = greater_equal(x = token, y = greater_equal_0_y_0)[name = tensor<string, []>("greater_equal_0")];
10
+ tensor<int32, []> slice_by_index_0 = const()[name = tensor<string, []>("slice_by_index_0"), val = tensor<int32, []>(1025)];
11
+ tensor<int32, [1, 1]> add_2 = add(x = token, y = slice_by_index_0)[name = tensor<string, []>("add_2")];
12
+ tensor<int32, [1, 1]> select_0 = select(a = token, b = add_2, cond = greater_equal_0)[name = tensor<string, []>("select_0")];
13
+ tensor<int32, []> y_axis_1 = const()[name = tensor<string, []>("y_axis_1"), val = tensor<int32, []>(0)];
14
+ tensor<fp32, [1, 1, 640]> y = gather(axis = y_axis_1, batch_dims = y_batch_dims_0, indices = select_0, validate_indices = y_validate_indices_0, x = module_prediction_embed_weight)[name = tensor<string, []>("y")];
15
+ tensor<int32, [3]> input_3_perm_0 = const()[name = tensor<string, []>("input_3_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
16
+ tensor<int32, []> split_0_num_splits_0 = const()[name = tensor<string, []>("split_0_num_splits_0"), val = tensor<int32, []>(2)];
17
+ tensor<int32, []> split_0_axis_0 = const()[name = tensor<string, []>("split_0_axis_0"), val = tensor<int32, []>(0)];
18
+ tensor<fp32, [1, 1, 640]> split_0_0, tensor<fp32, [1, 1, 640]> split_0_1 = split(axis = split_0_axis_0, num_splits = split_0_num_splits_0, x = h_in)[name = tensor<string, []>("split_0")];
19
+ tensor<int32, []> split_1_num_splits_0 = const()[name = tensor<string, []>("split_1_num_splits_0"), val = tensor<int32, []>(2)];
20
+ tensor<int32, []> split_1_axis_0 = const()[name = tensor<string, []>("split_1_axis_0"), val = tensor<int32, []>(0)];
21
+ tensor<fp32, [1, 1, 640]> split_1_0, tensor<fp32, [1, 1, 640]> split_1_1 = split(axis = split_1_axis_0, num_splits = split_1_num_splits_0, x = c_in)[name = tensor<string, []>("split_1")];
22
+ tensor<fp32, [2560]> concat_0 = const()[name = tensor<string, []>("concat_0"), val = tensor<fp32, [2560]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2624128)))];
23
+ tensor<fp32, [2560, 640]> concat_1 = const()[name = tensor<string, []>("concat_1"), val = tensor<fp32, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2634432)))];
24
+ tensor<fp32, [2560, 640]> concat_2 = const()[name = tensor<string, []>("concat_2"), val = tensor<fp32, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(9188096)))];
25
+ tensor<int32, [1]> input_lstm_layer_0_lstm_h0_squeeze_axes_0 = const()[name = tensor<string, []>("input_lstm_layer_0_lstm_h0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
26
+ tensor<fp32, [1, 640]> input_lstm_layer_0_lstm_h0_squeeze = squeeze(axes = input_lstm_layer_0_lstm_h0_squeeze_axes_0, x = split_0_0)[name = tensor<string, []>("input_lstm_layer_0_lstm_h0_squeeze")];
27
+ tensor<int32, [1]> input_lstm_layer_0_lstm_c0_squeeze_axes_0 = const()[name = tensor<string, []>("input_lstm_layer_0_lstm_c0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
28
+ tensor<fp32, [1, 640]> input_lstm_layer_0_lstm_c0_squeeze = squeeze(axes = input_lstm_layer_0_lstm_c0_squeeze_axes_0, x = split_1_0)[name = tensor<string, []>("input_lstm_layer_0_lstm_c0_squeeze")];
29
+ tensor<string, []> input_lstm_layer_0_direction_0 = const()[name = tensor<string, []>("input_lstm_layer_0_direction_0"), val = tensor<string, []>("forward")];
30
+ tensor<bool, []> input_lstm_layer_0_output_sequence_0 = const()[name = tensor<string, []>("input_lstm_layer_0_output_sequence_0"), val = tensor<bool, []>(true)];
31
+ tensor<string, []> input_lstm_layer_0_recurrent_activation_0 = const()[name = tensor<string, []>("input_lstm_layer_0_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
32
+ tensor<string, []> input_lstm_layer_0_cell_activation_0 = const()[name = tensor<string, []>("input_lstm_layer_0_cell_activation_0"), val = tensor<string, []>("tanh")];
33
+ tensor<string, []> input_lstm_layer_0_activation_0 = const()[name = tensor<string, []>("input_lstm_layer_0_activation_0"), val = tensor<string, []>("tanh")];
34
+ tensor<fp32, [1, 1, 640]> input_3 = transpose(perm = input_3_perm_0, x = y)[name = tensor<string, []>("transpose_2")];
35
+ tensor<fp32, [1, 1, 640]> input_lstm_layer_0_0, tensor<fp32, [1, 640]> input_lstm_layer_0_1, tensor<fp32, [1, 640]> input_lstm_layer_0_2 = lstm(activation = input_lstm_layer_0_activation_0, bias = concat_0, cell_activation = input_lstm_layer_0_cell_activation_0, direction = input_lstm_layer_0_direction_0, initial_c = input_lstm_layer_0_lstm_c0_squeeze, initial_h = input_lstm_layer_0_lstm_h0_squeeze, output_sequence = input_lstm_layer_0_output_sequence_0, recurrent_activation = input_lstm_layer_0_recurrent_activation_0, weight_hh = concat_2, weight_ih = concat_1, x = input_3)[name = tensor<string, []>("input_lstm_layer_0")];
36
+ tensor<fp32, [2560]> concat_3 = const()[name = tensor<string, []>("concat_3"), val = tensor<fp32, [2560]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(15741760)))];
37
+ tensor<fp32, [2560, 640]> concat_4 = const()[name = tensor<string, []>("concat_4"), val = tensor<fp32, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(15752064)))];
38
+ tensor<fp32, [2560, 640]> concat_5 = const()[name = tensor<string, []>("concat_5"), val = tensor<fp32, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(22305728)))];
39
+ tensor<int32, [1]> input_lstm_h0_squeeze_axes_0 = const()[name = tensor<string, []>("input_lstm_h0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
40
+ tensor<fp32, [1, 640]> input_lstm_h0_squeeze = squeeze(axes = input_lstm_h0_squeeze_axes_0, x = split_0_1)[name = tensor<string, []>("input_lstm_h0_squeeze")];
41
+ tensor<int32, [1]> input_lstm_c0_squeeze_axes_0 = const()[name = tensor<string, []>("input_lstm_c0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
42
+ tensor<fp32, [1, 640]> input_lstm_c0_squeeze = squeeze(axes = input_lstm_c0_squeeze_axes_0, x = split_1_1)[name = tensor<string, []>("input_lstm_c0_squeeze")];
43
+ tensor<string, []> input_direction_0 = const()[name = tensor<string, []>("input_direction_0"), val = tensor<string, []>("forward")];
44
+ tensor<bool, []> input_output_sequence_0 = const()[name = tensor<string, []>("input_output_sequence_0"), val = tensor<bool, []>(true)];
45
+ tensor<string, []> input_recurrent_activation_0 = const()[name = tensor<string, []>("input_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
46
+ tensor<string, []> input_cell_activation_0 = const()[name = tensor<string, []>("input_cell_activation_0"), val = tensor<string, []>("tanh")];
47
+ tensor<string, []> input_activation_0 = const()[name = tensor<string, []>("input_activation_0"), val = tensor<string, []>("tanh")];
48
+ tensor<fp32, [1, 1, 640]> input_0, tensor<fp32, [1, 640]> input_1, tensor<fp32, [1, 640]> input_2 = lstm(activation = input_activation_0, bias = concat_3, cell_activation = input_cell_activation_0, direction = input_direction_0, initial_c = input_lstm_c0_squeeze, initial_h = input_lstm_h0_squeeze, output_sequence = input_output_sequence_0, recurrent_activation = input_recurrent_activation_0, weight_hh = concat_5, weight_ih = concat_4, x = input_lstm_layer_0_0)[name = tensor<string, []>("input")];
49
+ tensor<int32, []> obj_3_axis_0 = const()[name = tensor<string, []>("obj_3_axis_0"), val = tensor<int32, []>(0)];
50
+ tensor<fp32, [2, 1, 640]> h_out = stack(axis = obj_3_axis_0, values = (input_lstm_layer_0_1, input_1))[name = tensor<string, []>("obj_3")];
51
+ tensor<int32, []> obj_axis_0 = const()[name = tensor<string, []>("obj_axis_0"), val = tensor<int32, []>(0)];
52
+ tensor<fp32, [2, 1, 640]> c_out = stack(axis = obj_axis_0, values = (input_lstm_layer_0_2, input_2))[name = tensor<string, []>("obj")];
53
+ tensor<int32, [3]> transpose_0_perm_0 = const()[name = tensor<string, []>("transpose_0_perm_0"), val = tensor<int32, [3]>([1, 2, 0])];
54
+ tensor<fp32, [1, 640, 1]> decoder_out = transpose(perm = transpose_0_perm_0, x = input_0)[name = tensor<string, []>("transpose_1")];
55
+ tensor<int32, [1]> token_length_tmp = identity(x = token_length)[name = tensor<string, []>("token_length_tmp")];
56
+ } -> (decoder_out, h_out, c_out);
57
+ }
nemotron_coreml_560ms/{decoder.mlpackage/Data/com.apple.CoreML → decoder.mlmodelc}/weights/weight.bin RENAMED
File without changes
nemotron_coreml_560ms/decoder.mlpackage/Manifest.json DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "fileFormatVersion": "1.0.0",
3
- "itemInfoEntries": {
4
- "817639C9-4D0A-439F-898E-E7F344131738": {
5
- "author": "com.apple.CoreML",
6
- "description": "CoreML Model Specification",
7
- "name": "model.mlmodel",
8
- "path": "com.apple.CoreML/model.mlmodel"
9
- },
10
- "B84EA71A-A885-4940-BF41-D30E41D4D9EE": {
11
- "author": "com.apple.CoreML",
12
- "description": "CoreML Model Weights",
13
- "name": "weights",
14
- "path": "com.apple.CoreML/weights"
15
- }
16
- },
17
- "rootModelIdentifier": "817639C9-4D0A-439F-898E-E7F344131738"
18
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
nemotron_coreml_560ms/encoder/encoder.mlpackage/Data/com.apple.CoreML/model.mlmodel DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:0eb719eeb2e7f0a25103bee448f102ad41769b4c84f1500367a527fef7fbed5c
3
- size 639671
 
 
 
 
nemotron_coreml_560ms/encoder/encoder.mlpackage/Data/com.apple.CoreML/weights/weight.bin DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:6f4a5b388cc5ee06460f44349c3341f51b2915b9a519f901b872b7bcb8037b33
3
- size 2351006016
 
 
 
 
nemotron_coreml_560ms/encoder/encoder.mlpackage/Manifest.json DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "fileFormatVersion": "1.0.0",
3
- "itemInfoEntries": {
4
- "19200EE7-0C9A-49CF-B73D-7DA50A1C1625": {
5
- "author": "com.apple.CoreML",
6
- "description": "CoreML Model Specification",
7
- "name": "model.mlmodel",
8
- "path": "com.apple.CoreML/model.mlmodel"
9
- },
10
- "550E7DB0-0FC8-4F2C-AC65-9DFABA4F1DE6": {
11
- "author": "com.apple.CoreML",
12
- "description": "CoreML Model Weights",
13
- "name": "weights",
14
- "path": "com.apple.CoreML/weights"
15
- }
16
- },
17
- "rootModelIdentifier": "19200EE7-0C9A-49CF-B73D-7DA50A1C1625"
18
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
nemotron_coreml_560ms/encoder/encoder_int8.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e0871de0ecbbb6db86ca91358b0ed94190d9f9d8950f11421452dd4add8fe086
3
+ size 243
nemotron_coreml_560ms/encoder/encoder_int8.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4d960e3871eb119a106bcff36eacc40dba59d243c8f803caf745610b2259a00d
3
+ size 669
nemotron_coreml_560ms/encoder/encoder_int8.mlmodelc/metadata.json ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "shortDescription" : "Nemotron Streaming Encoder (int8 quantized)",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float32",
10
+ "formattedType" : "MultiArray (Float32 1 × 1024 × 7)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 1024, 7]",
13
+ "name" : "encoded",
14
+ "type" : "MultiArray"
15
+ },
16
+ {
17
+ "hasShapeFlexibility" : "0",
18
+ "isOptional" : "0",
19
+ "dataType" : "Int32",
20
+ "formattedType" : "MultiArray (Int32 1)",
21
+ "shortDescription" : "",
22
+ "shape" : "[1]",
23
+ "name" : "encoded_length",
24
+ "type" : "MultiArray"
25
+ },
26
+ {
27
+ "hasShapeFlexibility" : "0",
28
+ "isOptional" : "0",
29
+ "dataType" : "Float32",
30
+ "formattedType" : "MultiArray (Float32 1 × 24 × 70 × 1024)",
31
+ "shortDescription" : "",
32
+ "shape" : "[1, 24, 70, 1024]",
33
+ "name" : "cache_channel_out",
34
+ "type" : "MultiArray"
35
+ },
36
+ {
37
+ "hasShapeFlexibility" : "0",
38
+ "isOptional" : "0",
39
+ "dataType" : "Float32",
40
+ "formattedType" : "MultiArray (Float32 1 × 24 × 1024 × 8)",
41
+ "shortDescription" : "",
42
+ "shape" : "[1, 24, 1024, 8]",
43
+ "name" : "cache_time_out",
44
+ "type" : "MultiArray"
45
+ },
46
+ {
47
+ "hasShapeFlexibility" : "0",
48
+ "isOptional" : "0",
49
+ "dataType" : "Int32",
50
+ "formattedType" : "MultiArray (Int32 1)",
51
+ "shortDescription" : "",
52
+ "shape" : "[1]",
53
+ "name" : "cache_len_out",
54
+ "type" : "MultiArray"
55
+ }
56
+ ],
57
+ "storagePrecision" : "Mixed (Float32, Int8)",
58
+ "modelParameters" : [
59
+
60
+ ],
61
+ "author" : "Fluid Inference",
62
+ "specificationVersion" : 8,
63
+ "mlProgramOperationTypeHistogram" : {
64
+ "Ios17.logicalAnd" : 3,
65
+ "Ios17.reshape" : 145,
66
+ "Ios16.softmax" : 24,
67
+ "Ios17.matmul" : 72,
68
+ "Ios17.transpose" : 224,
69
+ "Split" : 24,
70
+ "Ios17.expandDims" : 18,
71
+ "Select" : 72,
72
+ "Ios17.add" : 180,
73
+ "Tile" : 8,
74
+ "Ios17.sliceByIndex" : 147,
75
+ "Ios16.sigmoid" : 24,
76
+ "Pad" : 27,
77
+ "Ios17.logicalNot" : 2,
78
+ "Ios17.layerNorm" : 144,
79
+ "Ios16.constexprAffineDequantize" : 294,
80
+ "Ios17.less" : 5,
81
+ "Ios17.sub" : 4,
82
+ "Ios17.conv" : 77,
83
+ "Ios16.relu" : 3,
84
+ "Ios17.clip" : 2,
85
+ "Ios17.linear" : 193,
86
+ "Ios17.greaterEqual" : 1,
87
+ "Ios17.floorDiv" : 3,
88
+ "Ios17.cast" : 12,
89
+ "Ios16.silu" : 72,
90
+ "Ios17.concat" : 72,
91
+ "Stack" : 2,
92
+ "Ios17.mul" : 106
93
+ },
94
+ "computePrecision" : "Mixed (Float32, Int32)",
95
+ "isUpdatable" : "0",
96
+ "stateSchema" : [
97
+
98
+ ],
99
+ "availability" : {
100
+ "macOS" : "14.0",
101
+ "tvOS" : "17.0",
102
+ "visionOS" : "1.0",
103
+ "watchOS" : "10.0",
104
+ "iOS" : "17.0",
105
+ "macCatalyst" : "17.0"
106
+ },
107
+ "modelType" : {
108
+ "name" : "MLModelType_mlProgram"
109
+ },
110
+ "inputSchema" : [
111
+ {
112
+ "hasShapeFlexibility" : "0",
113
+ "isOptional" : "0",
114
+ "dataType" : "Float32",
115
+ "formattedType" : "MultiArray (Float32 1 × 128 × 65)",
116
+ "shortDescription" : "",
117
+ "shape" : "[1, 128, 65]",
118
+ "name" : "mel",
119
+ "type" : "MultiArray"
120
+ },
121
+ {
122
+ "hasShapeFlexibility" : "0",
123
+ "isOptional" : "0",
124
+ "dataType" : "Int32",
125
+ "formattedType" : "MultiArray (Int32 1)",
126
+ "shortDescription" : "",
127
+ "shape" : "[1]",
128
+ "name" : "mel_length",
129
+ "type" : "MultiArray"
130
+ },
131
+ {
132
+ "hasShapeFlexibility" : "0",
133
+ "isOptional" : "0",
134
+ "dataType" : "Float32",
135
+ "formattedType" : "MultiArray (Float32 1 × 24 × 70 × 1024)",
136
+ "shortDescription" : "",
137
+ "shape" : "[1, 24, 70, 1024]",
138
+ "name" : "cache_channel",
139
+ "type" : "MultiArray"
140
+ },
141
+ {
142
+ "hasShapeFlexibility" : "0",
143
+ "isOptional" : "0",
144
+ "dataType" : "Float32",
145
+ "formattedType" : "MultiArray (Float32 1 × 24 × 1024 × 8)",
146
+ "shortDescription" : "",
147
+ "shape" : "[1, 24, 1024, 8]",
148
+ "name" : "cache_time",
149
+ "type" : "MultiArray"
150
+ },
151
+ {
152
+ "hasShapeFlexibility" : "0",
153
+ "isOptional" : "0",
154
+ "dataType" : "Int32",
155
+ "formattedType" : "MultiArray (Int32 1)",
156
+ "shortDescription" : "",
157
+ "shape" : "[1]",
158
+ "name" : "cache_len",
159
+ "type" : "MultiArray"
160
+ }
161
+ ],
162
+ "userDefinedMetadata" : {
163
+ "com.github.apple.coremltools.conversion_date" : "2026-01-15",
164
+ "com.github.apple.coremltools.source" : "torch==2.9.1",
165
+ "com.github.apple.coremltools.version" : "9.0",
166
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
167
+ },
168
+ "generatedClassName" : "encoder_int8",
169
+ "method" : "predict"
170
+ }
171
+ ]
nemotron_coreml_560ms/encoder/encoder_int8.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
nemotron_coreml_160ms/preprocessor.mlpackage/Data/com.apple.CoreML/model.mlmodel → nemotron_coreml_560ms/encoder/encoder_int8.mlmodelc/weights/weight.bin RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:f0d5f1d74ad734692015afbf06bc9f614bb1163215caf5fc21daaa1462b59dc5
3
- size 12961
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:04ababb22ec2d940f3ff4eafc79651549a129f2493d4eb43119faa6575e2489d
3
+ size 591117860
nemotron_coreml_560ms/joint.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:795588a93820f6ec4823e81d9da03b1a84e9a889c845b1e83213e4e18e3c5e67
3
+ size 243
nemotron_coreml_560ms/joint.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d02fd9c4cbb21aa6364d4630b752f5d2926dc77da6b693e6e8f19903027f38f4
3
+ size 400
nemotron_coreml_560ms/joint.mlmodelc/metadata.json ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "storagePrecision" : "Float32",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float32",
10
+ "formattedType" : "MultiArray (Float32 1 × 1 × 1 × 1025)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 1, 1, 1025]",
13
+ "name" : "logits",
14
+ "type" : "MultiArray"
15
+ }
16
+ ],
17
+ "modelParameters" : [
18
+
19
+ ],
20
+ "specificationVersion" : 8,
21
+ "mlProgramOperationTypeHistogram" : {
22
+ "Ios17.expandDims" : 2,
23
+ "Ios17.transpose" : 2,
24
+ "Ios17.linear" : 3,
25
+ "Ios17.add" : 1,
26
+ "Ios16.relu" : 1
27
+ },
28
+ "computePrecision" : "Mixed (Float32, Int32)",
29
+ "isUpdatable" : "0",
30
+ "stateSchema" : [
31
+
32
+ ],
33
+ "availability" : {
34
+ "macOS" : "14.0",
35
+ "tvOS" : "17.0",
36
+ "visionOS" : "1.0",
37
+ "watchOS" : "10.0",
38
+ "iOS" : "17.0",
39
+ "macCatalyst" : "17.0"
40
+ },
41
+ "modelType" : {
42
+ "name" : "MLModelType_mlProgram"
43
+ },
44
+ "userDefinedMetadata" : {
45
+ "com.github.apple.coremltools.conversion_date" : "2026-01-15",
46
+ "com.github.apple.coremltools.source" : "torch==2.9.1",
47
+ "com.github.apple.coremltools.version" : "9.0",
48
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
49
+ },
50
+ "inputSchema" : [
51
+ {
52
+ "hasShapeFlexibility" : "0",
53
+ "isOptional" : "0",
54
+ "dataType" : "Float32",
55
+ "formattedType" : "MultiArray (Float32 1 × 1024 × 1)",
56
+ "shortDescription" : "",
57
+ "shape" : "[1, 1024, 1]",
58
+ "name" : "encoder",
59
+ "type" : "MultiArray"
60
+ },
61
+ {
62
+ "hasShapeFlexibility" : "0",
63
+ "isOptional" : "0",
64
+ "dataType" : "Float32",
65
+ "formattedType" : "MultiArray (Float32 1 × 640 × 1)",
66
+ "shortDescription" : "",
67
+ "shape" : "[1, 640, 1]",
68
+ "name" : "decoder",
69
+ "type" : "MultiArray"
70
+ }
71
+ ],
72
+ "generatedClassName" : "joint",
73
+ "method" : "predict"
74
+ }
75
+ ]
nemotron_coreml_560ms/joint.mlmodelc/model.mil ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ program(1.0)
2
+ [buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3510.2.1"}, {"coremlc-version", "3500.32.1"}, {"coremltools-component-torch", "2.9.1"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "9.0"}})]
3
+ {
4
+ func main<ios17>(tensor<fp32, [1, 640, 1]> decoder, tensor<fp32, [1, 1024, 1]> encoder) {
5
+ tensor<fp32, [640]> module_enc_bias = const()[name = tensor<string, []>("module_enc_bias"), val = tensor<fp32, [640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
6
+ tensor<fp32, [640, 1024]> module_enc_weight = const()[name = tensor<string, []>("module_enc_weight"), val = tensor<fp32, [640, 1024]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2688)))];
7
+ tensor<fp32, [640]> module_pred_bias = const()[name = tensor<string, []>("module_pred_bias"), val = tensor<fp32, [640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2624192)))];
8
+ tensor<fp32, [640, 640]> module_pred_weight = const()[name = tensor<string, []>("module_pred_weight"), val = tensor<fp32, [640, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2626816)))];
9
+ tensor<fp32, [1025]> module_joint_net_2_bias = const()[name = tensor<string, []>("module_joint_net_2_bias"), val = tensor<fp32, [1025]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4265280)))];
10
+ tensor<fp32, [1025, 640]> module_joint_net_2_weight = const()[name = tensor<string, []>("module_joint_net_2_weight"), val = tensor<fp32, [1025, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4269504)))];
11
+ tensor<int32, [3]> input_1_perm_0 = const()[name = tensor<string, []>("input_1_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
12
+ tensor<int32, [3]> input_3_perm_0 = const()[name = tensor<string, []>("input_3_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
13
+ tensor<fp32, [1, 1, 1024]> input_1 = transpose(perm = input_1_perm_0, x = encoder)[name = tensor<string, []>("transpose_1")];
14
+ tensor<fp32, [1, 1, 640]> enc_proj = linear(bias = module_enc_bias, weight = module_enc_weight, x = input_1)[name = tensor<string, []>("linear_0")];
15
+ tensor<fp32, [1, 1, 640]> input_3 = transpose(perm = input_3_perm_0, x = decoder)[name = tensor<string, []>("transpose_0")];
16
+ tensor<fp32, [1, 1, 640]> dec_proj = linear(bias = module_pred_bias, weight = module_pred_weight, x = input_3)[name = tensor<string, []>("linear_1")];
17
+ tensor<int32, [1]> var_23_axes_0 = const()[name = tensor<string, []>("op_23_axes_0"), val = tensor<int32, [1]>([2])];
18
+ tensor<fp32, [1, 1, 1, 640]> var_23 = expand_dims(axes = var_23_axes_0, x = enc_proj)[name = tensor<string, []>("op_23")];
19
+ tensor<int32, [1]> var_25_axes_0 = const()[name = tensor<string, []>("op_25_axes_0"), val = tensor<int32, [1]>([1])];
20
+ tensor<fp32, [1, 1, 1, 640]> var_25 = expand_dims(axes = var_25_axes_0, x = dec_proj)[name = tensor<string, []>("op_25")];
21
+ tensor<fp32, [1, 1, 1, 640]> input_5 = add(x = var_23, y = var_25)[name = tensor<string, []>("input_5")];
22
+ tensor<fp32, [1, 1, 1, 640]> input_7 = relu(x = input_5)[name = tensor<string, []>("input_7")];
23
+ tensor<fp32, [1, 1, 1, 1025]> logits = linear(bias = module_joint_net_2_bias, weight = module_joint_net_2_weight, x = input_7)[name = tensor<string, []>("linear_2")];
24
+ } -> (logits);
25
+ }
nemotron_coreml_560ms/{joint.mlpackage/Data/com.apple.CoreML → joint.mlmodelc}/weights/weight.bin RENAMED
File without changes
nemotron_coreml_560ms/joint.mlpackage/Manifest.json DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "fileFormatVersion": "1.0.0",
3
- "itemInfoEntries": {
4
- "41F607D9-A4C0-44BF-9B0C-68A035B461DA": {
5
- "author": "com.apple.CoreML",
6
- "description": "CoreML Model Weights",
7
- "name": "weights",
8
- "path": "com.apple.CoreML/weights"
9
- },
10
- "CDF0E0C6-BE68-4A6A-AE37-EF979D58F14B": {
11
- "author": "com.apple.CoreML",
12
- "description": "CoreML Model Specification",
13
- "name": "model.mlmodel",
14
- "path": "com.apple.CoreML/model.mlmodel"
15
- }
16
- },
17
- "rootModelIdentifier": "CDF0E0C6-BE68-4A6A-AE37-EF979D58F14B"
18
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
nemotron_coreml_560ms/metadata.json CHANGED
@@ -24,5 +24,10 @@
24
  ],
25
  "decoder_hidden": 640,
26
  "decoder_layers": 2,
27
- "encoder_dim": 1024
 
 
 
 
 
28
  }
 
24
  ],
25
  "decoder_hidden": 640,
26
  "decoder_layers": 2,
27
+ "encoder_dim": 1024,
28
+ "quantization": {
29
+ "encoder": "int8",
30
+ "baseline_size_mb": 2242.7,
31
+ "quantized_size_mb": 564.4
32
+ }
33
  }
nemotron_coreml_560ms/preprocessor.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d69676882610f7d73b3e848f1321e1c8f992c2effb2abcdca40e260fbb263eac
3
+ size 243
nemotron_coreml_560ms/preprocessor.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0f4b9e3acfcb0eb8c3c0270c42b603341a9e7674d2c747b6fdf6bd89a0b5f3cb
3
+ size 430
nemotron_coreml_560ms/preprocessor.mlmodelc/metadata.json ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "storagePrecision" : "Float32",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float32",
10
+ "formattedType" : "MultiArray (Float32)",
11
+ "shortDescription" : "",
12
+ "shape" : "[]",
13
+ "name" : "mel",
14
+ "type" : "MultiArray"
15
+ },
16
+ {
17
+ "hasShapeFlexibility" : "0",
18
+ "isOptional" : "0",
19
+ "dataType" : "Int32",
20
+ "formattedType" : "MultiArray (Int32 1)",
21
+ "shortDescription" : "",
22
+ "shape" : "[1]",
23
+ "name" : "mel_length",
24
+ "type" : "MultiArray"
25
+ }
26
+ ],
27
+ "modelParameters" : [
28
+
29
+ ],
30
+ "specificationVersion" : 8,
31
+ "mlProgramOperationTypeHistogram" : {
32
+ "Range1d" : 2,
33
+ "Ios17.equal" : 1,
34
+ "Ios17.reshape" : 2,
35
+ "Identity" : 1,
36
+ "Ios17.matmul" : 1,
37
+ "Select" : 3,
38
+ "Ios17.expandDims" : 7,
39
+ "Ios17.add" : 2,
40
+ "Ios17.sliceByIndex" : 3,
41
+ "Ios16.reduceSum" : 1,
42
+ "Shape" : 2,
43
+ "Ios17.gather" : 2,
44
+ "Ios17.logicalNot" : 1,
45
+ "Pad" : 1,
46
+ "Ios17.log" : 1,
47
+ "Ios17.less" : 1,
48
+ "Ios17.sub" : 2,
49
+ "Ios17.conv" : 2,
50
+ "Ios17.pow" : 1,
51
+ "Ios17.concat" : 1,
52
+ "Stack" : 1,
53
+ "Ios17.floorDiv" : 1,
54
+ "Ios17.greaterEqual" : 1,
55
+ "Ios17.mul" : 1
56
+ },
57
+ "computePrecision" : "Mixed (Float32, Int32)",
58
+ "isUpdatable" : "0",
59
+ "stateSchema" : [
60
+
61
+ ],
62
+ "availability" : {
63
+ "macOS" : "14.0",
64
+ "tvOS" : "17.0",
65
+ "visionOS" : "1.0",
66
+ "watchOS" : "10.0",
67
+ "iOS" : "17.0",
68
+ "macCatalyst" : "17.0"
69
+ },
70
+ "modelType" : {
71
+ "name" : "MLModelType_mlProgram"
72
+ },
73
+ "userDefinedMetadata" : {
74
+ "com.github.apple.coremltools.conversion_date" : "2026-01-15",
75
+ "com.github.apple.coremltools.source" : "torch==2.9.1",
76
+ "com.github.apple.coremltools.version" : "9.0",
77
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
78
+ },
79
+ "inputSchema" : [
80
+ {
81
+ "dataType" : "Float32",
82
+ "hasShapeFlexibility" : "1",
83
+ "isOptional" : "0",
84
+ "shapeFlexibility" : "1 × 1...480000",
85
+ "shapeRange" : "[[1, 1], [1, 480000]]",
86
+ "formattedType" : "MultiArray (Float32 1 × 1)",
87
+ "type" : "MultiArray",
88
+ "shape" : "[1, 1]",
89
+ "name" : "audio",
90
+ "shortDescription" : ""
91
+ },
92
+ {
93
+ "hasShapeFlexibility" : "0",
94
+ "isOptional" : "0",
95
+ "dataType" : "Int32",
96
+ "formattedType" : "MultiArray (Int32 1)",
97
+ "shortDescription" : "",
98
+ "shape" : "[1]",
99
+ "name" : "audio_length",
100
+ "type" : "MultiArray"
101
+ }
102
+ ],
103
+ "generatedClassName" : "preprocessor",
104
+ "method" : "predict"
105
+ }
106
+ ]