josand commited on
Commit
56baf43
·
verified ·
1 Parent(s): a7b3049

Upload converted NV-Reason-CT weights and release metadata

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
LICENSE ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+
3
+ OpenMDW License Agreement, version 1.1 (OpenMDW-1.1)
4
+
5
+ By exercising rights granted to you under this agreement, you accept and agree
6
+ to its terms.
7
+
8
+ As used in this agreement, "Model Materials" means the materials provided to
9
+ you under this agreement, consisting of: (1) one or more machine learning
10
+ models (including architecture and parameters); and (2) all related artifacts
11
+ (including associated data, documentation and software) that are provided to
12
+ you hereunder.
13
+
14
+ Subject to your compliance with this agreement, permission is hereby granted,
15
+ free of charge, to deal in the Model Materials without restriction, including
16
+ under all copyright, patent, database, and trade secret rights included or
17
+ embodied therein.
18
+
19
+ If you distribute any portion of the Model Materials, you shall retain in your
20
+ distribution (1) a copy of this agreement, and (2) all copyright notices and
21
+ other notices of origin included in the Model Materials that are applicable to
22
+ your distribution.
23
+
24
+ If you file, maintain, or voluntarily participate in a lawsuit against any
25
+ person or entity asserting that the Model Materials directly or indirectly
26
+ infringe any patent or copyright, then all rights and grants made to you
27
+ hereunder are terminated, unless that lawsuit was in response to a
28
+ corresponding lawsuit first brought against you.
29
+
30
+ This agreement does not impose any restrictions or obligations with respect to
31
+ any use, modification, or sharing of any outputs generated by using the Model
32
+ Materials.
33
+
34
+ THE MODEL MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
35
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
36
+ FITNESS FOR A PARTICULAR PURPOSE, TITLE, NONINFRINGEMENT, ACCURACY, OR THE
37
+ ABSENCE OF LATENT OR OTHER DEFECTS OR ERRORS, WHETHER OR NOT DISCOVERABLE, ALL
38
+ TO THE GREATEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW.
39
+
40
+ YOU ARE SOLELY RESPONSIBLE FOR (1) CLEARING RIGHTS OF OTHER PERSONS THAT MAY
41
+ APPLY TO THE MODEL MATERIALS OR ANY USE THEREOF, INCLUDING WITHOUT LIMITATION
42
+ ANY PERSON'S COPYRIGHTS OR OTHER RIGHTS INCLUDED OR EMBODIED IN THE MODEL
43
+ MATERIALS; (2) OBTAINING ANY NECESSARY CONSENTS, PERMISSIONS OR OTHER RIGHTS
44
+ REQUIRED FOR ANY USE OF THE MODEL MATERIALS; OR (3) PERFORMING ANY DUE
45
+ DILIGENCE OR UNDERTAKING ANY OTHER INVESTIGATIONS INTO THE MODEL MATERIALS OR
46
+ ANYTHING INCORPORATED OR EMBODIED THEREIN.
47
+
48
+ IN NO EVENT SHALL THE PROVIDERS OF THE MODEL MATERIALS BE LIABLE FOR ANY CLAIM,
49
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
50
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MODEL MATERIALS, THE
51
+ USE THEREOF OR OTHER DEALINGS THEREIN.
NOTICE ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ Original publisher: NVIDIA
2
+ Original source: https://huggingface.co/nvidia/NV-Reason-CT
3
+
4
+ Retain the applicable license, copyright and attribution notices; identify the upstream checkpoint, authors, and MLX conversion changes.
5
+ Include OpenMDW-1.1 and retain all applicable copyright and origin notices, including component notices.
6
+ Retain component notices identified by radnn@cbaa1ac:THIRD_PARTY_NOTICES.md: NVIDIA 2026; Qwen/HuggingFace 2025; MLX/MLX-LM Apple MIT; MONAI, dynamic-network-architectures, timm and Transformers Apache-2.0; PyTorch/Caffe2 BSD; FlashAttention BSD-3-Clause.
7
+
8
+ MLX conversion by Joseph Sandoval and Alfredo Sandoval Jr.; no retraining.
README.md ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: openmdw-1.1
3
+ library_name: mlx
4
+ tags:
5
+ - medical-imaging
6
+ - apple-silicon
7
+ - research
8
+ language:
9
+ - en
10
+ ---
11
+ # NV-Reason-CT 386b93e0, FP32, chest structured report, greedy, max_new_tokens 512, thinking off
12
+
13
+ Native MLX package: [MLX-Reason-CT](https://github.com/MedMLX/MLX-Reason-CT.git).
14
+ Evaluated revision: `eb2c10baf688b32eee082dbb8973e88b4555db7a`.
15
+
16
+ This card describes the one configuration evaluated in the MedMLX paper. It is research software; the single-case comparison does not estimate clinical accuracy.
17
+
18
+ ## Source and checkpoint
19
+
20
+ Original publisher: NVIDIA.
21
+ Original implementation: [https://huggingface.co/nvidia/NV-Reason-CT](https://huggingface.co/nvidia/NV-Reason-CT).
22
+ Source revision or version: `386b93e034983f6c1fc841a43833a1b6a0cd9c13`.
23
+ Original checkpoint: https://huggingface.co/nvidia/NV-Reason-CT/resolve/386b93e034983f6c1fc841a43833a1b6a0cd9c13/model.safetensors
24
+
25
+ Conversion: mlx-reason-ct convert --source-dir <pinned snapshot> --output-dir work/runs/weights/nv-reason-ct (lossless BF16->FP32); the pre-existing radnn conversion was rejected by the package (engine radnn.nv_reason_ct_mlx.v1 differs from the pinned nv_reason_ct_mlx.fp32.v1).
26
+ Conversion changes tensor layout or storage as specified by the native package; it does not retrain the model.
27
+
28
+ ## Recorded example
29
+
30
+ LUNA16 subset0 / 1.3.6.1.4.1.14519.5.2.1.6279.6001.105756658031515062000744821260
31
+
32
+ ```python
33
+ from mlx_reason_ct.medmlx import run
34
+
35
+ # Replace file and directory names with your locally obtained inputs and weights.
36
+ kwargs = {
37
+ "image_path": "luna-case.nii.gz",
38
+ "weights_path": "nv-reason-ct",
39
+ "output_dir": "out",
40
+ "anatomy_region": "chest",
41
+ "overwrite": True
42
+ }
43
+ result = run(**kwargs)
44
+ print(result["outputs"])
45
+ ```
46
+
47
+ Native result: **success**. Original-code comparison: **pass**, `token_identical` = `True`.
48
+
49
+ The recorded CPU FP32 profile reproduces greedy output tokens. Do not generalize this comparison to the original CUDA BF16 profile or diagnostic accuracy.
50
+
51
+ The complete [native run](native-run.json) and [original-code comparison](reference-comparison.json) retain commands, geometry, precision, and output-specific checks. Use the [replay harness](https://github.com/MedMLX/Med-MLX/blob/main/benchmarks/README.md) to substitute local paths. The package README documents installation and conversion.
52
+
53
+ ## Distribution terms
54
+
55
+ Upstream code: **OpenMDW-1.1**. Weights: **OpenMDW-1.1**.
56
+ Converted weights are hosted in this repository.
57
+
58
+ The recorded CPU FP32 profile reproduces greedy output tokens. Do not generalize this comparison to the original CUDA BF16 profile or diagnostic accuracy. Converted weights may retain the identified upstream license and required notices; the accompanying notices describe the redistribution terms.
59
+
60
+ Full [upstream license](LICENSE) accompanies any weight distribution. The [retained component notices](THIRD_PARTY_NOTICES.md) accompany the prepared bundle.
61
+
62
+ Required notices:
63
+
64
+ - Retain the applicable license, copyright and attribution notices; identify the upstream checkpoint, authors, and MLX conversion changes.
65
+ - Include OpenMDW-1.1 and retain all applicable copyright and origin notices, including component notices.
66
+ - Retain component notices identified by radnn@cbaa1ac:THIRD_PARTY_NOTICES.md: NVIDIA 2026; Qwen/HuggingFace 2025; MLX/MLX-LM Apple MIT; MONAI, dynamic-network-architectures, timm and Transformers Apache-2.0; PyTorch/Caffe2 BSD; FlashAttention BSD-3-Clause.
67
+
68
+ Review sources:
69
+
70
+ - https://huggingface.co/nvidia/NV-Reason-CT
71
+ - https://huggingface.co/nvidia/NV-Reason-CT/resolve/386b93e034983f6c1fc841a43833a1b6a0cd9c13/model.safetensors
72
+ - https://huggingface.co/nvidia/NV-Reason-CT/blob/386b93e034983f6c1fc841a43833a1b6a0cd9c13/LICENSE
73
+
74
+ ## Packaged files
75
+
76
+ - `chat_template.jinja`
77
+ - `config.json`
78
+ - `generation_config.json`
79
+ - `image_processor_3d/preprocessor_config.json`
80
+ - `mlx/embedding.safetensors`
81
+ - `mlx/layer_00.safetensors`
82
+ - `mlx/layer_01.safetensors`
83
+ - `mlx/layer_02.safetensors`
84
+ - `mlx/layer_03.safetensors`
85
+ - `mlx/layer_04.safetensors`
86
+ - `mlx/layer_05.safetensors`
87
+ - `mlx/layer_06.safetensors`
88
+ - `mlx/layer_07.safetensors`
89
+ - `mlx/layer_08.safetensors`
90
+ - `mlx/layer_09.safetensors`
91
+ - `mlx/layer_10.safetensors`
92
+ - `mlx/layer_11.safetensors`
93
+ - `mlx/layer_12.safetensors`
94
+ - `mlx/layer_13.safetensors`
95
+ - `mlx/layer_14.safetensors`
96
+ - `mlx/layer_15.safetensors`
97
+ - `mlx/layer_16.safetensors`
98
+ - `mlx/layer_17.safetensors`
99
+ - `mlx/layer_18.safetensors`
100
+ - `mlx/layer_19.safetensors`
101
+ - `mlx/layer_20.safetensors`
102
+ - `mlx/layer_21.safetensors`
103
+ - `mlx/layer_22.safetensors`
104
+ - `mlx/layer_23.safetensors`
105
+ - `mlx/layer_24.safetensors`
106
+ - `mlx/layer_25.safetensors`
107
+ - `mlx/layer_26.safetensors`
108
+ - `mlx/layer_27.safetensors`
109
+ - `mlx/layer_28.safetensors`
110
+ - `mlx/layer_29.safetensors`
111
+ - `mlx/layer_30.safetensors`
112
+ - `mlx/layer_31.safetensors`
113
+ - `mlx/manifest.json`
114
+ - `mlx/norm.safetensors`
115
+ - `mlx/vision.safetensors`
116
+ - `tokenizer.json`
THIRD_PARTY_NOTICES.md ADDED
@@ -0,0 +1,220 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Third-party notices
2
+
3
+ MLX-Reason-CT
4
+ Copyright (c) 2026 Joseph Sandoval
5
+
6
+ The original contributions to this standalone port are licensed under Apache-2.0.
7
+ This does not replace the licenses or notices of upstream portions or model materials.
8
+
9
+ NV-Reason-CT model architecture, processor policy, tokenizer, template, configuration
10
+ and converted parameters originate from NVIDIA CORPORATION & AFFILIATES.
11
+ Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
12
+ These Model Materials retain OpenMDW-1.1; see the NVIDIA license below.
13
+
14
+ The vendored MLX-LM gated_delta.py retains Copyright (c) 2025 Apple Inc. and MIT terms.
15
+ The complete upstream license texts are retained below.
16
+
17
+ | Material | Origin and pinned version | Terms |
18
+ | --- | --- | --- |
19
+ | Model architecture, converted weights, tokenizer, template, processor policy and configuration | [NVIDIA NV-Reason-CT](https://huggingface.co/nvidia/NV-Reason-CT/tree/386b93e034983f6c1fc841a43833a1b6a0cd9c13), revision `386b93e034983f6c1fc841a43833a1b6a0cd9c13`; Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES | [OpenMDW-1.1](#nvidia-openmdw-11) |
20
+ | Physical resampling extent and spacing semantics | [MONAI](https://github.com/Project-MONAI/MONAI), 1.6.0; MONAI Consortium | [Apache-2.0](LICENSE) |
21
+ | Primus EVA architecture semantics | [dynamic-network-architectures](https://github.com/MIC-DKFZ/dynamic-network-architectures), 0.4.3; MIC-DKFZ | Apache-2.0 |
22
+ | EVA attention, rotary and SwiGLU semantics | [timm](https://github.com/huggingface/pytorch-image-models), 1.0.22; Ross Wightman and contributors | Apache-2.0 |
23
+ | Qwen3.5 hybrid decoder, MRoPE and gated-delta chunk algebra | [Transformers](https://github.com/huggingface/transformers), 5.10.4; Hugging Face and contributors | Apache-2.0 |
24
+ | CUDA Sklansky prefix-scan summation order and activation arithmetic | [PyTorch](https://github.com/pytorch/pytorch), 2.13.0, revision `cf30153c4c131c8164ee7798e5022d810682e2cb`; copyright holders listed in the retained license | [BSD](#pytorch-bsd) |
25
+ | Vendored recurrent Metal kernel: `gated_delta.py` | [MLX-LM](https://github.com/ml-explore/mlx-lm), published 0.32.0 wheel; Copyright (c) 2025 Apple Inc.; SHA256 `f69e837ea68641dbb06fdb5dcc024a9a7e1d9353f08ae58c05275253a0c39428` | [MIT](#apple-mit) |
26
+
27
+ The Apple module is copied verbatim from the published wheel. Runtime dependencies
28
+ retain their package licenses. MONAI, timm, Transformers and PyTorch are provenance
29
+ references, not runtime requirements. All learned arithmetic executes on Metal.
30
+
31
+ The model is intended for research and education. It is not intended for clinical
32
+ diagnosis or treatment decisions. Outputs require human review and are not ground truth.
33
+
34
+ <details>
35
+ <summary>NVIDIA OpenMDW-1.1: full license</summary>
36
+
37
+ ## NVIDIA OpenMDW-1.1
38
+
39
+ ```text
40
+ Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
41
+
42
+ OpenMDW License Agreement, version 1.1 (OpenMDW-1.1)
43
+
44
+ By exercising rights granted to you under this agreement, you accept and agree
45
+ to its terms.
46
+
47
+ As used in this agreement, "Model Materials" means the materials provided to
48
+ you under this agreement, consisting of: (1) one or more machine learning
49
+ models (including architecture and parameters); and (2) all related artifacts
50
+ (including associated data, documentation and software) that are provided to
51
+ you hereunder.
52
+
53
+ Subject to your compliance with this agreement, permission is hereby granted,
54
+ free of charge, to deal in the Model Materials without restriction, including
55
+ under all copyright, patent, database, and trade secret rights included or
56
+ embodied therein.
57
+
58
+ If you distribute any portion of the Model Materials, you shall retain in your
59
+ distribution (1) a copy of this agreement, and (2) all copyright notices and
60
+ other notices of origin included in the Model Materials that are applicable to
61
+ your distribution.
62
+
63
+ If you file, maintain, or voluntarily participate in a lawsuit against any
64
+ person or entity asserting that the Model Materials directly or indirectly
65
+ infringe any patent or copyright, then all rights and grants made to you
66
+ hereunder are terminated, unless that lawsuit was in response to a
67
+ corresponding lawsuit first brought against you.
68
+
69
+ This agreement does not impose any restrictions or obligations with respect to
70
+ any use, modification, or sharing of any outputs generated by using the Model
71
+ Materials.
72
+
73
+ THE MODEL MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
74
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
75
+ FITNESS FOR A PARTICULAR PURPOSE, TITLE, NONINFRINGEMENT, ACCURACY, OR THE
76
+ ABSENCE OF LATENT OR OTHER DEFECTS OR ERRORS, WHETHER OR NOT DISCOVERABLE, ALL
77
+ TO THE GREATEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW.
78
+
79
+ YOU ARE SOLELY RESPONSIBLE FOR (1) CLEARING RIGHTS OF OTHER PERSONS THAT MAY
80
+ APPLY TO THE MODEL MATERIALS OR ANY USE THEREOF, INCLUDING WITHOUT LIMITATION
81
+ ANY PERSON'S COPYRIGHTS OR OTHER RIGHTS INCLUDED OR EMBODIED IN THE MODEL
82
+ MATERIALS; (2) OBTAINING ANY NECESSARY CONSENTS, PERMISSIONS OR OTHER RIGHTS
83
+ REQUIRED FOR ANY USE OF THE MODEL MATERIALS; OR (3) PERFORMING ANY DUE
84
+ DILIGENCE OR UNDERTAKING ANY OTHER INVESTIGATIONS INTO THE MODEL MATERIALS OR
85
+ ANYTHING INCORPORATED OR EMBODIED THEREIN.
86
+
87
+ IN NO EVENT SHALL THE PROVIDERS OF THE MODEL MATERIALS BE LIABLE FOR ANY CLAIM,
88
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
89
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MODEL MATERIALS, THE
90
+ USE THEREOF OR OTHER DEALINGS THEREIN.
91
+ ```
92
+
93
+ </details>
94
+
95
+ <details>
96
+ <summary>Apple MIT: full license</summary>
97
+
98
+ ## Apple MIT
99
+
100
+ ```text
101
+ MIT License
102
+
103
+ Copyright © 2023 Apple Inc.
104
+
105
+ Permission is hereby granted, free of charge, to any person obtaining a copy
106
+ of this software and associated documentation files (the "Software"), to deal
107
+ in the Software without restriction, including without limitation the rights
108
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
109
+ copies of the Software, and to permit persons to whom the Software is
110
+ furnished to do so, subject to the following conditions:
111
+
112
+ The above copyright notice and this permission notice shall be included in all
113
+ copies or substantial portions of the Software.
114
+
115
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
116
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
117
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
118
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
119
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
120
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
121
+ SOFTWARE.
122
+ ```
123
+
124
+ </details>
125
+
126
+ <details>
127
+ <summary>PyTorch BSD: full license</summary>
128
+
129
+ ## PyTorch BSD
130
+
131
+ ```text
132
+ From PyTorch:
133
+
134
+ Copyright (c) 2016- Facebook, Inc (Adam Paszke)
135
+ Copyright (c) 2014- Facebook, Inc (Soumith Chintala)
136
+ Copyright (c) 2011-2014 Idiap Research Institute (Ronan Collobert)
137
+ Copyright (c) 2012-2014 Deepmind Technologies (Koray Kavukcuoglu)
138
+ Copyright (c) 2011-2012 NEC Laboratories America (Koray Kavukcuoglu)
139
+ Copyright (c) 2011-2013 NYU (Clement Farabet)
140
+ Copyright (c) 2006-2010 NEC Laboratories America (Ronan Collobert, Leon Bottou, Iain Melvin, Jason Weston)
141
+ Copyright (c) 2006 Idiap Research Institute (Samy Bengio)
142
+ Copyright (c) 2001-2004 Idiap Research Institute (Ronan Collobert, Samy Bengio, Johnny Mariethoz)
143
+
144
+ From Caffe2:
145
+
146
+ Copyright (c) 2016-present, Facebook Inc. All rights reserved.
147
+
148
+ All contributions by Facebook:
149
+ Copyright (c) 2016 Facebook Inc.
150
+
151
+ All contributions by Google:
152
+ Copyright (c) 2015 Google Inc.
153
+ All rights reserved.
154
+
155
+ All contributions by Yangqing Jia:
156
+ Copyright (c) 2015 Yangqing Jia
157
+ All rights reserved.
158
+
159
+ All contributions by Kakao Brain:
160
+ Copyright 2019-2020 Kakao Brain
161
+
162
+ All contributions by Cruise LLC:
163
+ Copyright (c) 2022 Cruise LLC.
164
+ All rights reserved.
165
+
166
+ All contributions by Tri Dao:
167
+ Copyright (c) 2024 Tri Dao.
168
+ All rights reserved.
169
+
170
+ All contributions by Arm:
171
+ Copyright (c) 2021, 2023-2025 Arm Limited and/or its affiliates
172
+
173
+ All contributions from Caffe:
174
+ Copyright(c) 2013, 2014, 2015, the respective contributors
175
+ All rights reserved.
176
+
177
+ All other contributions:
178
+ Copyright(c) 2015, 2016 the respective contributors
179
+ All rights reserved.
180
+
181
+ Caffe2 uses a copyright model similar to Caffe: each contributor holds
182
+ copyright over their contributions to Caffe2. The project versioning records
183
+ all such contribution and copyright details. If a contributor wants to further
184
+ mark their specific copyright on a particular contribution, they should
185
+ indicate their copyright solely in the commit message of the change when it is
186
+ committed.
187
+
188
+ All rights reserved.
189
+
190
+ Redistribution and use in source and binary forms, with or without
191
+ modification, are permitted provided that the following conditions are met:
192
+
193
+ 1. Redistributions of source code must retain the above copyright
194
+ notice, this list of conditions and the following disclaimer.
195
+
196
+ 2. Redistributions in binary form must reproduce the above copyright
197
+ notice, this list of conditions and the following disclaimer in the
198
+ documentation and/or other materials provided with the distribution.
199
+
200
+ 3. Neither the names of Facebook, Deepmind Technologies, NYU, NEC Laboratories America
201
+ and IDIAP Research Institute nor the names of its contributors may be
202
+ used to endorse or promote products derived from this software without
203
+ specific prior written permission.
204
+
205
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
206
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
207
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
208
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
209
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
210
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
211
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
212
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
213
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
214
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
215
+ POSSIBILITY OF SUCH DAMAGE.
216
+ ```
217
+
218
+ </details>
219
+
220
+ Source BF16 arithmetic kernels retain the FlashAttention BSD license (submodule 6c4f74fb338e0c3cdb07ac6f5eab5f54fc367c15) and MLX 0.32.2 MIT fragment/layout notices. Their complete licenses are packaged in `mlx_reason_ct/licenses/`. `SOURCE.md` records the pinned arithmetic and table provenance.
chat_template.jinja ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- set image_count = namespace(value=0) %}
2
+ {%- set video_count = namespace(value=0) %}
3
+ {%- macro render_content(content, do_vision_count, is_system_content=false) %}
4
+ {%- if content is string %}
5
+ {{- content }}
6
+ {%- elif content is iterable and content is not mapping %}
7
+ {%- for item in content %}
8
+ {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}
9
+ {%- if is_system_content %}
10
+ {{- raise_exception('System message cannot contain images.') }}
11
+ {%- endif %}
12
+ {%- if do_vision_count %}
13
+ {%- set image_count.value = image_count.value + 1 %}
14
+ {%- endif %}
15
+ {%- if add_vision_id %}
16
+ {{- 'Picture ' ~ image_count.value ~ ': ' }}
17
+ {%- endif %}
18
+ {{- '<|vision_start|><|image_pad|><|vision_end|>' }}
19
+ {%- elif 'video' in item or item.type == 'video' %}
20
+ {%- if is_system_content %}
21
+ {{- raise_exception('System message cannot contain videos.') }}
22
+ {%- endif %}
23
+ {%- if do_vision_count %}
24
+ {%- set video_count.value = video_count.value + 1 %}
25
+ {%- endif %}
26
+ {%- if add_vision_id %}
27
+ {{- 'Video ' ~ video_count.value ~ ': ' }}
28
+ {%- endif %}
29
+ {{- '<|vision_start|><|video_pad|><|vision_end|>' }}
30
+ {%- elif 'text' in item %}
31
+ {{- item.text }}
32
+ {%- else %}
33
+ {{- raise_exception('Unexpected item type in content.') }}
34
+ {%- endif %}
35
+ {%- endfor %}
36
+ {%- elif content is none or content is undefined %}
37
+ {{- '' }}
38
+ {%- else %}
39
+ {{- raise_exception('Unexpected content type.') }}
40
+ {%- endif %}
41
+ {%- endmacro %}
42
+ {%- if not messages %}
43
+ {{- raise_exception('No messages provided.') }}
44
+ {%- endif %}
45
+ {%- if tools and tools is iterable and tools is not mapping %}
46
+ {{- '<|im_start|>system\n' }}
47
+ {{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
48
+ {%- for tool in tools %}
49
+ {{- "\n" }}
50
+ {{- tool | tojson }}
51
+ {%- endfor %}
52
+ {{- "\n</tools>" }}
53
+ {{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n<tool_call>\n<function=example_function_name>\n<parameter=example_parameter_1>\nvalue_1\n</parameter>\n<parameter=example_parameter_2>\nThis is the value for the second parameter\nthat can span\nmultiple lines\n</parameter>\n</function>\n</tool_call>\n\n<IMPORTANT>\nReminder:\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n</IMPORTANT>' }}
54
+ {%- if messages[0].role == 'system' %}
55
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
56
+ {%- if content %}
57
+ {{- '\n\n' + content }}
58
+ {%- endif %}
59
+ {%- endif %}
60
+ {{- '<|im_end|>\n' }}
61
+ {%- else %}
62
+ {%- if messages[0].role == 'system' %}
63
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
64
+ {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
65
+ {%- endif %}
66
+ {%- endif %}
67
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
68
+ {%- for message in messages[::-1] %}
69
+ {%- set index = (messages|length - 1) - loop.index0 %}
70
+ {%- if ns.multi_step_tool and message.role == "user" %}
71
+ {%- set content = render_content(message.content, false)|trim %}
72
+ {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}
73
+ {%- set ns.multi_step_tool = false %}
74
+ {%- set ns.last_query_index = index %}
75
+ {%- endif %}
76
+ {%- endif %}
77
+ {%- endfor %}
78
+ {%- if ns.multi_step_tool %}
79
+ {{- raise_exception('No user query found in messages.') }}
80
+ {%- endif %}
81
+ {%- for message in messages %}
82
+ {%- set content = render_content(message.content, true)|trim %}
83
+ {%- if message.role == "system" %}
84
+ {%- if not loop.first %}
85
+ {{- raise_exception('System message must be at the beginning.') }}
86
+ {%- endif %}
87
+ {%- elif message.role == "user" %}
88
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
89
+ {%- elif message.role == "assistant" %}
90
+ {%- set reasoning_content = '' %}
91
+ {%- if message.reasoning_content is string %}
92
+ {%- set reasoning_content = message.reasoning_content %}
93
+ {%- else %}
94
+ {%- if '</think>' in content %}
95
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
96
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
97
+ {%- endif %}
98
+ {%- endif %}
99
+ {%- set reasoning_content = reasoning_content|trim %}
100
+ {%- if loop.index0 > ns.last_query_index %}
101
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content + '\n</think>\n\n' + content }}
102
+ {%- else %}
103
+ {{- '<|im_start|>' + message.role + '\n' + content }}
104
+ {%- endif %}
105
+ {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
106
+ {%- for tool_call in message.tool_calls %}
107
+ {%- if tool_call.function is defined %}
108
+ {%- set tool_call = tool_call.function %}
109
+ {%- endif %}
110
+ {%- if loop.first %}
111
+ {%- if content|trim %}
112
+ {{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
113
+ {%- else %}
114
+ {{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
115
+ {%- endif %}
116
+ {%- else %}
117
+ {{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
118
+ {%- endif %}
119
+ {%- if tool_call.arguments is defined %}
120
+ {%- for args_name, args_value in tool_call.arguments|items %}
121
+ {{- '<parameter=' + args_name + '>\n' }}
122
+ {%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}
123
+ {{- args_value }}
124
+ {{- '\n</parameter>\n' }}
125
+ {%- endfor %}
126
+ {%- endif %}
127
+ {{- '</function>\n</tool_call>' }}
128
+ {%- endfor %}
129
+ {%- endif %}
130
+ {{- '<|im_end|>\n' }}
131
+ {%- elif message.role == "tool" %}
132
+ {%- if loop.previtem and loop.previtem.role != "tool" %}
133
+ {{- '<|im_start|>user' }}
134
+ {%- endif %}
135
+ {{- '\n<tool_response>\n' }}
136
+ {{- content }}
137
+ {{- '\n</tool_response>' }}
138
+ {%- if not loop.last and loop.nextitem.role != "tool" %}
139
+ {{- '<|im_end|>\n' }}
140
+ {%- elif loop.last %}
141
+ {{- '<|im_end|>\n' }}
142
+ {%- endif %}
143
+ {%- else %}
144
+ {{- raise_exception('Unexpected message role.') }}
145
+ {%- endif %}
146
+ {%- endfor %}
147
+ {%- if add_generation_prompt %}
148
+ {{- '<|im_start|>assistant\n' }}
149
+ {%- if enable_thinking is defined and enable_thinking is false %}
150
+ {{- '<think>\n\n</think>\n\n' }}
151
+ {%- else %}
152
+ {{- '<think>\n' }}
153
+ {%- endif %}
154
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "VLM3D_ForConditionalGeneration"
4
+ ],
5
+ "auto_map": {
6
+ "AutoModelForImageTextToText": "model.VLM3D_ForConditionalGeneration"
7
+ },
8
+ "dtype": "bfloat16",
9
+ "eos_token_id": 248046,
10
+ "image_token_id": 248056,
11
+ "model_type": "qwen3_5",
12
+ "pad_token_id": 248044,
13
+ "vit3d_input_shape": [
14
+ 192,
15
+ 192,
16
+ 192
17
+ ],
18
+ "vit3d_patch_embed_size": [
19
+ 8,
20
+ 8,
21
+ 8
22
+ ],
23
+ "text_config": {
24
+ "attention_bias": false,
25
+ "attention_dropout": 0.0,
26
+ "attn_output_gate": true,
27
+ "bos_token_id": null,
28
+ "dtype": "bfloat16",
29
+ "eos_token_id": 248044,
30
+ "full_attention_interval": 4,
31
+ "head_dim": 256,
32
+ "hidden_act": "silu",
33
+ "hidden_size": 2560,
34
+ "initializer_range": 0.02,
35
+ "intermediate_size": 9216,
36
+ "layer_types": [
37
+ "linear_attention",
38
+ "linear_attention",
39
+ "linear_attention",
40
+ "full_attention",
41
+ "linear_attention",
42
+ "linear_attention",
43
+ "linear_attention",
44
+ "full_attention",
45
+ "linear_attention",
46
+ "linear_attention",
47
+ "linear_attention",
48
+ "full_attention",
49
+ "linear_attention",
50
+ "linear_attention",
51
+ "linear_attention",
52
+ "full_attention",
53
+ "linear_attention",
54
+ "linear_attention",
55
+ "linear_attention",
56
+ "full_attention",
57
+ "linear_attention",
58
+ "linear_attention",
59
+ "linear_attention",
60
+ "full_attention",
61
+ "linear_attention",
62
+ "linear_attention",
63
+ "linear_attention",
64
+ "full_attention",
65
+ "linear_attention",
66
+ "linear_attention",
67
+ "linear_attention",
68
+ "full_attention"
69
+ ],
70
+ "linear_conv_kernel_dim": 4,
71
+ "linear_key_head_dim": 128,
72
+ "linear_num_key_heads": 16,
73
+ "linear_num_value_heads": 32,
74
+ "linear_value_head_dim": 128,
75
+ "mamba_ssm_dtype": "float32",
76
+ "max_position_embeddings": 262144,
77
+ "mlp_only_layers": [],
78
+ "model_type": "qwen3_5_text",
79
+ "mtp_num_hidden_layers": 1,
80
+ "mtp_use_dedicated_embeddings": false,
81
+ "num_attention_heads": 16,
82
+ "num_hidden_layers": 32,
83
+ "num_key_value_heads": 4,
84
+ "pad_token_id": null,
85
+ "partial_rotary_factor": 0.25,
86
+ "rms_norm_eps": 1e-06,
87
+ "rope_parameters": {
88
+ "mrope_interleaved": true,
89
+ "mrope_section": [
90
+ 11,
91
+ 11,
92
+ 10
93
+ ],
94
+ "partial_rotary_factor": 0.25,
95
+ "rope_theta": 10000000,
96
+ "rope_type": "default"
97
+ },
98
+ "tie_word_embeddings": true,
99
+ "use_cache": true,
100
+ "vocab_size": 248320
101
+ },
102
+ "tie_word_embeddings": true,
103
+ "transformers_version": "5.6.2",
104
+ "use_cache": true,
105
+ "video_token_id": 248057,
106
+ "vision_config": {
107
+ "deepstack_visual_indexes": [],
108
+ "depth": 24,
109
+ "dtype": "bfloat16",
110
+ "hidden_act": "gelu_pytorch_tanh",
111
+ "hidden_size": 1024,
112
+ "in_channels": 3,
113
+ "initializer_range": 0.02,
114
+ "intermediate_size": 4096,
115
+ "model_type": "qwen3_5_vision",
116
+ "num_heads": 16,
117
+ "num_position_embeddings": 2304,
118
+ "out_hidden_size": 2560,
119
+ "patch_size": 16,
120
+ "spatial_merge_size": 2,
121
+ "temporal_patch_size": 2
122
+ },
123
+ "vision_end_token_id": 248054,
124
+ "vision_start_token_id": 248053
125
+ }
generation_config.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "eos_token_id": [
4
+ 248046,
5
+ 248044
6
+ ],
7
+ "pad_token_id": 248044,
8
+ "transformers_version": "5.6.2",
9
+ "use_cache": true
10
+ }
image_processor_3d/preprocessor_config.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "final_grid_size": [
3
+ 24,
4
+ 24,
5
+ 24
6
+ ],
7
+ "image_processor_type": "ImageLoader3D",
8
+ "merge_size": 1,
9
+ "normalize_mode": "ct",
10
+ "pixdim": [
11
+ 2.0,
12
+ 2.0,
13
+ 2.0
14
+ ],
15
+ "spatial_size": [
16
+ 192,
17
+ 192,
18
+ 192
19
+ ]
20
+ }
mlx/embedding.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7dc6f8e40161c2d788bfa38d4dd8c44c0325ac08b3816a05da0503e0de642e76
3
+ size 2542796920
mlx/layer_00.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:326495f23351702a957946207d7056178f57378e0e1dd91087beea3a7ae0385c
3
+ size 451697104
mlx/layer_01.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5b7fa6f3cdd8dd6b31ee7a32345ff860192c6c54820c9d60e0bce12e1a0545fd
3
+ size 451697104
mlx/layer_02.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bcc6a0726be043de2bc92c560f8c38c65e22fb5e503d74eed2532abf56919e17
3
+ size 451697104
mlx/layer_03.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d039f5321f55bd6289010e2da161c18fc9ec90bfb1fbc276baee64d543447032
3
+ size 429940072
mlx/layer_04.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:db99777e46991707f96375fe01d6876c80e2030bb36e1e53574042be07d81cd4
3
+ size 451697104
mlx/layer_05.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aa921f7b7a4bdf30d834b884034f8653293fa9a632aeb08c078ade37a180dbae
3
+ size 451697104
mlx/layer_06.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cc2884adcd103a09cc3640e3503c85bfd4073de690b5d4dcac3f2b43b90cc8b0
3
+ size 451697104
mlx/layer_07.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0f9a24a3fe1ec14c23dbda3b9b48e2e78797b0dcca6d6ec932f7334f47003c0c
3
+ size 429940072
mlx/layer_08.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cce1b403f642e916de63591c7d7c165be76448fbf8d3ec74864dd57356bacbf2
3
+ size 451697104
mlx/layer_09.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cb1228420d4cf7bd9d29a8b791d459a7ad6f6d1af0235886746c707ab562153e
3
+ size 451697104
mlx/layer_10.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0eadd729dcb4c4a8e0dd94332ca0e9d33f2fcf03fb30c2deed126c47bf7082be
3
+ size 451697120
mlx/layer_11.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:af551933d4a0843f6d89fcfaa011321010b7fca186f3b50c33025376ce93ff17
3
+ size 429940088
mlx/layer_12.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9c56957d389871995ad90432be0aa4b4988cdce272479941f3b6d32676b2f782
3
+ size 451697120
mlx/layer_13.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a6471ec6e45dd2523b0706716e6b91beab673f45d6cea91560d80ef0cc414866
3
+ size 451697120
mlx/layer_14.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:77545f12bba6a6eb05cf4ce3032944d80a643f9aa7e3a3dfd580413d4c8f2c04
3
+ size 451697120
mlx/layer_15.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9aba417f65e66f27c5aed2e7881a268fd6ce21ab94a28a56e8f7f1ef4c495588
3
+ size 429940088
mlx/layer_16.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bc57571ea5a406b8f5b211eb0353499139e2e1e4e80d1589cc2f8e337a3a807a
3
+ size 451697120
mlx/layer_17.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6d18bbdd09ffaa5cee08e4034cb8c5f8b05fca44ace765d88e3263de9fcd14fb
3
+ size 451697120
mlx/layer_18.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:59144771b425a02677b1b1609e12c763830927818cdbd93557e7b622a2f8ee37
3
+ size 451697120
mlx/layer_19.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0cfabe5810888c52b4c81521a43fea7d9f8632e64b8028c27e044b8efd763483
3
+ size 429940088
mlx/layer_20.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e654b2a6a0849b9be236ef5e572007a438c3536e8ec35bf4fc5c7a02cb8178bb
3
+ size 451697120
mlx/layer_21.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:07b580125019677d64268db16946e5fbc255626bce514ff50681c28743a9b425
3
+ size 451697120
mlx/layer_22.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:abdc7c1b2975d45fa13dc8d23d495f3981012ef7283b01b690c6d6da487a9125
3
+ size 451697120
mlx/layer_23.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5ba019a10f443ebd7b2fc139be04aa91dd6bdc255da038b98be2299e7d67aeff
3
+ size 429940088
mlx/layer_24.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9067817c86b441c0498393eeaa9ea05923f60647908fd2896c826d05d5c11abd
3
+ size 451697120
mlx/layer_25.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0c8647a5c99e94207245e1761f83dd616b61fca275375ec304ce1368db7291ce
3
+ size 451697120
mlx/layer_26.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7e4814c7779cdfe75c51518ae3db763ac3c757f2f4212cc6bb1ee0a6cb6afd97
3
+ size 451697120
mlx/layer_27.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:eb58897a39be560deef3f302ced01fc46ac4cdf64ea9213e072415456f389c86
3
+ size 429940088
mlx/layer_28.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4553afc936aaf306a0f7ee6a3493caccef7e7e826c3c3513fdeec6acec0ea9c3
3
+ size 451697120
mlx/layer_29.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:92259dca3d702757747da2a3184d43f9c4207d2bd9322223eddfee6a17449f1c
3
+ size 451697120
mlx/layer_30.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:72ee1bf199e646fd8b91dc1571a8ff18c6d539a7e74d175c254ea89d6c309948
3
+ size 451697120
mlx/layer_31.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:38d9d064fae723cc726cec412bcce2d7603a52009e089ac8c178db7cad410c55
3
+ size 429940088
mlx/manifest.json ADDED
@@ -0,0 +1,368 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "conversion": "lossless BF16 bit expansion; source tensor layouts",
3
+ "dtype": "float32",
4
+ "engine": "nv_reason_ct_mlx.fp32.v1",
5
+ "excluded_source_tensors": [
6
+ "lm_head.weight",
7
+ "model.vision3d.sub_vision.mask_token",
8
+ "model.visual.blocks.0.attn.proj.bias",
9
+ "model.visual.blocks.0.attn.proj.weight",
10
+ "model.visual.blocks.0.attn.qkv.bias",
11
+ "model.visual.blocks.0.attn.qkv.weight",
12
+ "model.visual.blocks.0.mlp.linear_fc1.bias",
13
+ "model.visual.blocks.0.mlp.linear_fc1.weight",
14
+ "model.visual.blocks.0.mlp.linear_fc2.bias",
15
+ "model.visual.blocks.0.mlp.linear_fc2.weight",
16
+ "model.visual.blocks.0.norm1.bias",
17
+ "model.visual.blocks.0.norm1.weight",
18
+ "model.visual.blocks.0.norm2.bias",
19
+ "model.visual.blocks.0.norm2.weight",
20
+ "model.visual.blocks.1.attn.proj.bias",
21
+ "model.visual.blocks.1.attn.proj.weight",
22
+ "model.visual.blocks.1.attn.qkv.bias",
23
+ "model.visual.blocks.1.attn.qkv.weight",
24
+ "model.visual.blocks.1.mlp.linear_fc1.bias",
25
+ "model.visual.blocks.1.mlp.linear_fc1.weight",
26
+ "model.visual.blocks.1.mlp.linear_fc2.bias",
27
+ "model.visual.blocks.1.mlp.linear_fc2.weight",
28
+ "model.visual.blocks.1.norm1.bias",
29
+ "model.visual.blocks.1.norm1.weight",
30
+ "model.visual.blocks.1.norm2.bias",
31
+ "model.visual.blocks.1.norm2.weight",
32
+ "model.visual.blocks.10.attn.proj.bias",
33
+ "model.visual.blocks.10.attn.proj.weight",
34
+ "model.visual.blocks.10.attn.qkv.bias",
35
+ "model.visual.blocks.10.attn.qkv.weight",
36
+ "model.visual.blocks.10.mlp.linear_fc1.bias",
37
+ "model.visual.blocks.10.mlp.linear_fc1.weight",
38
+ "model.visual.blocks.10.mlp.linear_fc2.bias",
39
+ "model.visual.blocks.10.mlp.linear_fc2.weight",
40
+ "model.visual.blocks.10.norm1.bias",
41
+ "model.visual.blocks.10.norm1.weight",
42
+ "model.visual.blocks.10.norm2.bias",
43
+ "model.visual.blocks.10.norm2.weight",
44
+ "model.visual.blocks.11.attn.proj.bias",
45
+ "model.visual.blocks.11.attn.proj.weight",
46
+ "model.visual.blocks.11.attn.qkv.bias",
47
+ "model.visual.blocks.11.attn.qkv.weight",
48
+ "model.visual.blocks.11.mlp.linear_fc1.bias",
49
+ "model.visual.blocks.11.mlp.linear_fc1.weight",
50
+ "model.visual.blocks.11.mlp.linear_fc2.bias",
51
+ "model.visual.blocks.11.mlp.linear_fc2.weight",
52
+ "model.visual.blocks.11.norm1.bias",
53
+ "model.visual.blocks.11.norm1.weight",
54
+ "model.visual.blocks.11.norm2.bias",
55
+ "model.visual.blocks.11.norm2.weight",
56
+ "model.visual.blocks.12.attn.proj.bias",
57
+ "model.visual.blocks.12.attn.proj.weight",
58
+ "model.visual.blocks.12.attn.qkv.bias",
59
+ "model.visual.blocks.12.attn.qkv.weight",
60
+ "model.visual.blocks.12.mlp.linear_fc1.bias",
61
+ "model.visual.blocks.12.mlp.linear_fc1.weight",
62
+ "model.visual.blocks.12.mlp.linear_fc2.bias",
63
+ "model.visual.blocks.12.mlp.linear_fc2.weight",
64
+ "model.visual.blocks.12.norm1.bias",
65
+ "model.visual.blocks.12.norm1.weight",
66
+ "model.visual.blocks.12.norm2.bias",
67
+ "model.visual.blocks.12.norm2.weight",
68
+ "model.visual.blocks.13.attn.proj.bias",
69
+ "model.visual.blocks.13.attn.proj.weight",
70
+ "model.visual.blocks.13.attn.qkv.bias",
71
+ "model.visual.blocks.13.attn.qkv.weight",
72
+ "model.visual.blocks.13.mlp.linear_fc1.bias",
73
+ "model.visual.blocks.13.mlp.linear_fc1.weight",
74
+ "model.visual.blocks.13.mlp.linear_fc2.bias",
75
+ "model.visual.blocks.13.mlp.linear_fc2.weight",
76
+ "model.visual.blocks.13.norm1.bias",
77
+ "model.visual.blocks.13.norm1.weight",
78
+ "model.visual.blocks.13.norm2.bias",
79
+ "model.visual.blocks.13.norm2.weight",
80
+ "model.visual.blocks.14.attn.proj.bias",
81
+ "model.visual.blocks.14.attn.proj.weight",
82
+ "model.visual.blocks.14.attn.qkv.bias",
83
+ "model.visual.blocks.14.attn.qkv.weight",
84
+ "model.visual.blocks.14.mlp.linear_fc1.bias",
85
+ "model.visual.blocks.14.mlp.linear_fc1.weight",
86
+ "model.visual.blocks.14.mlp.linear_fc2.bias",
87
+ "model.visual.blocks.14.mlp.linear_fc2.weight",
88
+ "model.visual.blocks.14.norm1.bias",
89
+ "model.visual.blocks.14.norm1.weight",
90
+ "model.visual.blocks.14.norm2.bias",
91
+ "model.visual.blocks.14.norm2.weight",
92
+ "model.visual.blocks.15.attn.proj.bias",
93
+ "model.visual.blocks.15.attn.proj.weight",
94
+ "model.visual.blocks.15.attn.qkv.bias",
95
+ "model.visual.blocks.15.attn.qkv.weight",
96
+ "model.visual.blocks.15.mlp.linear_fc1.bias",
97
+ "model.visual.blocks.15.mlp.linear_fc1.weight",
98
+ "model.visual.blocks.15.mlp.linear_fc2.bias",
99
+ "model.visual.blocks.15.mlp.linear_fc2.weight",
100
+ "model.visual.blocks.15.norm1.bias",
101
+ "model.visual.blocks.15.norm1.weight",
102
+ "model.visual.blocks.15.norm2.bias",
103
+ "model.visual.blocks.15.norm2.weight",
104
+ "model.visual.blocks.16.attn.proj.bias",
105
+ "model.visual.blocks.16.attn.proj.weight",
106
+ "model.visual.blocks.16.attn.qkv.bias",
107
+ "model.visual.blocks.16.attn.qkv.weight",
108
+ "model.visual.blocks.16.mlp.linear_fc1.bias",
109
+ "model.visual.blocks.16.mlp.linear_fc1.weight",
110
+ "model.visual.blocks.16.mlp.linear_fc2.bias",
111
+ "model.visual.blocks.16.mlp.linear_fc2.weight",
112
+ "model.visual.blocks.16.norm1.bias",
113
+ "model.visual.blocks.16.norm1.weight",
114
+ "model.visual.blocks.16.norm2.bias",
115
+ "model.visual.blocks.16.norm2.weight",
116
+ "model.visual.blocks.17.attn.proj.bias",
117
+ "model.visual.blocks.17.attn.proj.weight",
118
+ "model.visual.blocks.17.attn.qkv.bias",
119
+ "model.visual.blocks.17.attn.qkv.weight",
120
+ "model.visual.blocks.17.mlp.linear_fc1.bias",
121
+ "model.visual.blocks.17.mlp.linear_fc1.weight",
122
+ "model.visual.blocks.17.mlp.linear_fc2.bias",
123
+ "model.visual.blocks.17.mlp.linear_fc2.weight",
124
+ "model.visual.blocks.17.norm1.bias",
125
+ "model.visual.blocks.17.norm1.weight",
126
+ "model.visual.blocks.17.norm2.bias",
127
+ "model.visual.blocks.17.norm2.weight",
128
+ "model.visual.blocks.18.attn.proj.bias",
129
+ "model.visual.blocks.18.attn.proj.weight",
130
+ "model.visual.blocks.18.attn.qkv.bias",
131
+ "model.visual.blocks.18.attn.qkv.weight",
132
+ "model.visual.blocks.18.mlp.linear_fc1.bias",
133
+ "model.visual.blocks.18.mlp.linear_fc1.weight",
134
+ "model.visual.blocks.18.mlp.linear_fc2.bias",
135
+ "model.visual.blocks.18.mlp.linear_fc2.weight",
136
+ "model.visual.blocks.18.norm1.bias",
137
+ "model.visual.blocks.18.norm1.weight",
138
+ "model.visual.blocks.18.norm2.bias",
139
+ "model.visual.blocks.18.norm2.weight",
140
+ "model.visual.blocks.19.attn.proj.bias",
141
+ "model.visual.blocks.19.attn.proj.weight",
142
+ "model.visual.blocks.19.attn.qkv.bias",
143
+ "model.visual.blocks.19.attn.qkv.weight",
144
+ "model.visual.blocks.19.mlp.linear_fc1.bias",
145
+ "model.visual.blocks.19.mlp.linear_fc1.weight",
146
+ "model.visual.blocks.19.mlp.linear_fc2.bias",
147
+ "model.visual.blocks.19.mlp.linear_fc2.weight",
148
+ "model.visual.blocks.19.norm1.bias",
149
+ "model.visual.blocks.19.norm1.weight",
150
+ "model.visual.blocks.19.norm2.bias",
151
+ "model.visual.blocks.19.norm2.weight",
152
+ "model.visual.blocks.2.attn.proj.bias",
153
+ "model.visual.blocks.2.attn.proj.weight",
154
+ "model.visual.blocks.2.attn.qkv.bias",
155
+ "model.visual.blocks.2.attn.qkv.weight",
156
+ "model.visual.blocks.2.mlp.linear_fc1.bias",
157
+ "model.visual.blocks.2.mlp.linear_fc1.weight",
158
+ "model.visual.blocks.2.mlp.linear_fc2.bias",
159
+ "model.visual.blocks.2.mlp.linear_fc2.weight",
160
+ "model.visual.blocks.2.norm1.bias",
161
+ "model.visual.blocks.2.norm1.weight",
162
+ "model.visual.blocks.2.norm2.bias",
163
+ "model.visual.blocks.2.norm2.weight",
164
+ "model.visual.blocks.20.attn.proj.bias",
165
+ "model.visual.blocks.20.attn.proj.weight",
166
+ "model.visual.blocks.20.attn.qkv.bias",
167
+ "model.visual.blocks.20.attn.qkv.weight",
168
+ "model.visual.blocks.20.mlp.linear_fc1.bias",
169
+ "model.visual.blocks.20.mlp.linear_fc1.weight",
170
+ "model.visual.blocks.20.mlp.linear_fc2.bias",
171
+ "model.visual.blocks.20.mlp.linear_fc2.weight",
172
+ "model.visual.blocks.20.norm1.bias",
173
+ "model.visual.blocks.20.norm1.weight",
174
+ "model.visual.blocks.20.norm2.bias",
175
+ "model.visual.blocks.20.norm2.weight",
176
+ "model.visual.blocks.21.attn.proj.bias",
177
+ "model.visual.blocks.21.attn.proj.weight",
178
+ "model.visual.blocks.21.attn.qkv.bias",
179
+ "model.visual.blocks.21.attn.qkv.weight",
180
+ "model.visual.blocks.21.mlp.linear_fc1.bias",
181
+ "model.visual.blocks.21.mlp.linear_fc1.weight",
182
+ "model.visual.blocks.21.mlp.linear_fc2.bias",
183
+ "model.visual.blocks.21.mlp.linear_fc2.weight",
184
+ "model.visual.blocks.21.norm1.bias",
185
+ "model.visual.blocks.21.norm1.weight",
186
+ "model.visual.blocks.21.norm2.bias",
187
+ "model.visual.blocks.21.norm2.weight",
188
+ "model.visual.blocks.22.attn.proj.bias",
189
+ "model.visual.blocks.22.attn.proj.weight",
190
+ "model.visual.blocks.22.attn.qkv.bias",
191
+ "model.visual.blocks.22.attn.qkv.weight",
192
+ "model.visual.blocks.22.mlp.linear_fc1.bias",
193
+ "model.visual.blocks.22.mlp.linear_fc1.weight",
194
+ "model.visual.blocks.22.mlp.linear_fc2.bias",
195
+ "model.visual.blocks.22.mlp.linear_fc2.weight",
196
+ "model.visual.blocks.22.norm1.bias",
197
+ "model.visual.blocks.22.norm1.weight",
198
+ "model.visual.blocks.22.norm2.bias",
199
+ "model.visual.blocks.22.norm2.weight",
200
+ "model.visual.blocks.23.attn.proj.bias",
201
+ "model.visual.blocks.23.attn.proj.weight",
202
+ "model.visual.blocks.23.attn.qkv.bias",
203
+ "model.visual.blocks.23.attn.qkv.weight",
204
+ "model.visual.blocks.23.mlp.linear_fc1.bias",
205
+ "model.visual.blocks.23.mlp.linear_fc1.weight",
206
+ "model.visual.blocks.23.mlp.linear_fc2.bias",
207
+ "model.visual.blocks.23.mlp.linear_fc2.weight",
208
+ "model.visual.blocks.23.norm1.bias",
209
+ "model.visual.blocks.23.norm1.weight",
210
+ "model.visual.blocks.23.norm2.bias",
211
+ "model.visual.blocks.23.norm2.weight",
212
+ "model.visual.blocks.3.attn.proj.bias",
213
+ "model.visual.blocks.3.attn.proj.weight",
214
+ "model.visual.blocks.3.attn.qkv.bias",
215
+ "model.visual.blocks.3.attn.qkv.weight",
216
+ "model.visual.blocks.3.mlp.linear_fc1.bias",
217
+ "model.visual.blocks.3.mlp.linear_fc1.weight",
218
+ "model.visual.blocks.3.mlp.linear_fc2.bias",
219
+ "model.visual.blocks.3.mlp.linear_fc2.weight",
220
+ "model.visual.blocks.3.norm1.bias",
221
+ "model.visual.blocks.3.norm1.weight",
222
+ "model.visual.blocks.3.norm2.bias",
223
+ "model.visual.blocks.3.norm2.weight",
224
+ "model.visual.blocks.4.attn.proj.bias",
225
+ "model.visual.blocks.4.attn.proj.weight",
226
+ "model.visual.blocks.4.attn.qkv.bias",
227
+ "model.visual.blocks.4.attn.qkv.weight",
228
+ "model.visual.blocks.4.mlp.linear_fc1.bias",
229
+ "model.visual.blocks.4.mlp.linear_fc1.weight",
230
+ "model.visual.blocks.4.mlp.linear_fc2.bias",
231
+ "model.visual.blocks.4.mlp.linear_fc2.weight",
232
+ "model.visual.blocks.4.norm1.bias",
233
+ "model.visual.blocks.4.norm1.weight",
234
+ "model.visual.blocks.4.norm2.bias",
235
+ "model.visual.blocks.4.norm2.weight",
236
+ "model.visual.blocks.5.attn.proj.bias",
237
+ "model.visual.blocks.5.attn.proj.weight",
238
+ "model.visual.blocks.5.attn.qkv.bias",
239
+ "model.visual.blocks.5.attn.qkv.weight",
240
+ "model.visual.blocks.5.mlp.linear_fc1.bias",
241
+ "model.visual.blocks.5.mlp.linear_fc1.weight",
242
+ "model.visual.blocks.5.mlp.linear_fc2.bias",
243
+ "model.visual.blocks.5.mlp.linear_fc2.weight",
244
+ "model.visual.blocks.5.norm1.bias",
245
+ "model.visual.blocks.5.norm1.weight",
246
+ "model.visual.blocks.5.norm2.bias",
247
+ "model.visual.blocks.5.norm2.weight",
248
+ "model.visual.blocks.6.attn.proj.bias",
249
+ "model.visual.blocks.6.attn.proj.weight",
250
+ "model.visual.blocks.6.attn.qkv.bias",
251
+ "model.visual.blocks.6.attn.qkv.weight",
252
+ "model.visual.blocks.6.mlp.linear_fc1.bias",
253
+ "model.visual.blocks.6.mlp.linear_fc1.weight",
254
+ "model.visual.blocks.6.mlp.linear_fc2.bias",
255
+ "model.visual.blocks.6.mlp.linear_fc2.weight",
256
+ "model.visual.blocks.6.norm1.bias",
257
+ "model.visual.blocks.6.norm1.weight",
258
+ "model.visual.blocks.6.norm2.bias",
259
+ "model.visual.blocks.6.norm2.weight",
260
+ "model.visual.blocks.7.attn.proj.bias",
261
+ "model.visual.blocks.7.attn.proj.weight",
262
+ "model.visual.blocks.7.attn.qkv.bias",
263
+ "model.visual.blocks.7.attn.qkv.weight",
264
+ "model.visual.blocks.7.mlp.linear_fc1.bias",
265
+ "model.visual.blocks.7.mlp.linear_fc1.weight",
266
+ "model.visual.blocks.7.mlp.linear_fc2.bias",
267
+ "model.visual.blocks.7.mlp.linear_fc2.weight",
268
+ "model.visual.blocks.7.norm1.bias",
269
+ "model.visual.blocks.7.norm1.weight",
270
+ "model.visual.blocks.7.norm2.bias",
271
+ "model.visual.blocks.7.norm2.weight",
272
+ "model.visual.blocks.8.attn.proj.bias",
273
+ "model.visual.blocks.8.attn.proj.weight",
274
+ "model.visual.blocks.8.attn.qkv.bias",
275
+ "model.visual.blocks.8.attn.qkv.weight",
276
+ "model.visual.blocks.8.mlp.linear_fc1.bias",
277
+ "model.visual.blocks.8.mlp.linear_fc1.weight",
278
+ "model.visual.blocks.8.mlp.linear_fc2.bias",
279
+ "model.visual.blocks.8.mlp.linear_fc2.weight",
280
+ "model.visual.blocks.8.norm1.bias",
281
+ "model.visual.blocks.8.norm1.weight",
282
+ "model.visual.blocks.8.norm2.bias",
283
+ "model.visual.blocks.8.norm2.weight",
284
+ "model.visual.blocks.9.attn.proj.bias",
285
+ "model.visual.blocks.9.attn.proj.weight",
286
+ "model.visual.blocks.9.attn.qkv.bias",
287
+ "model.visual.blocks.9.attn.qkv.weight",
288
+ "model.visual.blocks.9.mlp.linear_fc1.bias",
289
+ "model.visual.blocks.9.mlp.linear_fc1.weight",
290
+ "model.visual.blocks.9.mlp.linear_fc2.bias",
291
+ "model.visual.blocks.9.mlp.linear_fc2.weight",
292
+ "model.visual.blocks.9.norm1.bias",
293
+ "model.visual.blocks.9.norm1.weight",
294
+ "model.visual.blocks.9.norm2.bias",
295
+ "model.visual.blocks.9.norm2.weight",
296
+ "model.visual.merger.linear_fc1.bias",
297
+ "model.visual.merger.linear_fc1.weight",
298
+ "model.visual.merger.linear_fc2.bias",
299
+ "model.visual.merger.linear_fc2.weight",
300
+ "model.visual.merger.norm.bias",
301
+ "model.visual.merger.norm.weight",
302
+ "model.visual.patch_embed.proj.bias",
303
+ "model.visual.patch_embed.proj.weight",
304
+ "model.visual.pos_embed.weight"
305
+ ],
306
+ "exclusion_reason": "2D image/video tower rejected by source processor; inactive mask token; tied LM head",
307
+ "revision": "386b93e034983f6c1fc841a43833a1b6a0cd9c13",
308
+ "runtime_sha256": {
309
+ "LICENSE": "d7c8a9e5d1896d0a9588319cc7b1433e64645ad6d9e55632c30b78d8c038c23b",
310
+ "chat_template.jinja": "a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715",
311
+ "config.json": "c03e6071e42cc9f243c3f9bf66c5af9f749ee66c1ff9aa11fa6b5ed33045fe2d",
312
+ "generation_config.json": "6a391fdcafb170d69b8c5f7f2b131f8210c2fd7f6fa241862f664166bdc32d92",
313
+ "image_processor_3d/preprocessor_config.json": "1f5b118fa7b05e49a37e9fcb49ffbd26b5762fa357cc0c2ca4b3e1cb061830b2",
314
+ "tokenizer.json": "06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523"
315
+ },
316
+ "shards": {
317
+ "embedding.safetensors": "7dc6f8e40161c2d788bfa38d4dd8c44c0325ac08b3816a05da0503e0de642e76",
318
+ "layer_00.safetensors": "326495f23351702a957946207d7056178f57378e0e1dd91087beea3a7ae0385c",
319
+ "layer_01.safetensors": "5b7fa6f3cdd8dd6b31ee7a32345ff860192c6c54820c9d60e0bce12e1a0545fd",
320
+ "layer_02.safetensors": "bcc6a0726be043de2bc92c560f8c38c65e22fb5e503d74eed2532abf56919e17",
321
+ "layer_03.safetensors": "d039f5321f55bd6289010e2da161c18fc9ec90bfb1fbc276baee64d543447032",
322
+ "layer_04.safetensors": "db99777e46991707f96375fe01d6876c80e2030bb36e1e53574042be07d81cd4",
323
+ "layer_05.safetensors": "aa921f7b7a4bdf30d834b884034f8653293fa9a632aeb08c078ade37a180dbae",
324
+ "layer_06.safetensors": "cc2884adcd103a09cc3640e3503c85bfd4073de690b5d4dcac3f2b43b90cc8b0",
325
+ "layer_07.safetensors": "0f9a24a3fe1ec14c23dbda3b9b48e2e78797b0dcca6d6ec932f7334f47003c0c",
326
+ "layer_08.safetensors": "cce1b403f642e916de63591c7d7c165be76448fbf8d3ec74864dd57356bacbf2",
327
+ "layer_09.safetensors": "cb1228420d4cf7bd9d29a8b791d459a7ad6f6d1af0235886746c707ab562153e",
328
+ "layer_10.safetensors": "0eadd729dcb4c4a8e0dd94332ca0e9d33f2fcf03fb30c2deed126c47bf7082be",
329
+ "layer_11.safetensors": "af551933d4a0843f6d89fcfaa011321010b7fca186f3b50c33025376ce93ff17",
330
+ "layer_12.safetensors": "9c56957d389871995ad90432be0aa4b4988cdce272479941f3b6d32676b2f782",
331
+ "layer_13.safetensors": "a6471ec6e45dd2523b0706716e6b91beab673f45d6cea91560d80ef0cc414866",
332
+ "layer_14.safetensors": "77545f12bba6a6eb05cf4ce3032944d80a643f9aa7e3a3dfd580413d4c8f2c04",
333
+ "layer_15.safetensors": "9aba417f65e66f27c5aed2e7881a268fd6ce21ab94a28a56e8f7f1ef4c495588",
334
+ "layer_16.safetensors": "bc57571ea5a406b8f5b211eb0353499139e2e1e4e80d1589cc2f8e337a3a807a",
335
+ "layer_17.safetensors": "6d18bbdd09ffaa5cee08e4034cb8c5f8b05fca44ace765d88e3263de9fcd14fb",
336
+ "layer_18.safetensors": "59144771b425a02677b1b1609e12c763830927818cdbd93557e7b622a2f8ee37",
337
+ "layer_19.safetensors": "0cfabe5810888c52b4c81521a43fea7d9f8632e64b8028c27e044b8efd763483",
338
+ "layer_20.safetensors": "e654b2a6a0849b9be236ef5e572007a438c3536e8ec35bf4fc5c7a02cb8178bb",
339
+ "layer_21.safetensors": "07b580125019677d64268db16946e5fbc255626bce514ff50681c28743a9b425",
340
+ "layer_22.safetensors": "abdc7c1b2975d45fa13dc8d23d495f3981012ef7283b01b690c6d6da487a9125",
341
+ "layer_23.safetensors": "5ba019a10f443ebd7b2fc139be04aa91dd6bdc255da038b98be2299e7d67aeff",
342
+ "layer_24.safetensors": "9067817c86b441c0498393eeaa9ea05923f60647908fd2896c826d05d5c11abd",
343
+ "layer_25.safetensors": "0c8647a5c99e94207245e1761f83dd616b61fca275375ec304ce1368db7291ce",
344
+ "layer_26.safetensors": "7e4814c7779cdfe75c51518ae3db763ac3c757f2f4212cc6bb1ee0a6cb6afd97",
345
+ "layer_27.safetensors": "eb58897a39be560deef3f302ced01fc46ac4cdf64ea9213e072415456f389c86",
346
+ "layer_28.safetensors": "4553afc936aaf306a0f7ee6a3493caccef7e7e826c3c3513fdeec6acec0ea9c3",
347
+ "layer_29.safetensors": "92259dca3d702757747da2a3184d43f9c4207d2bd9322223eddfee6a17449f1c",
348
+ "layer_30.safetensors": "72ee1bf199e646fd8b91dc1571a8ff18c6d539a7e74d175c254ea89d6c309948",
349
+ "layer_31.safetensors": "38d9d064fae723cc726cec412bcce2d7603a52009e089ac8c178db7cad410c55",
350
+ "norm.safetensors": "5ef3d8e44269ac47475f0cb51cb44b5b3ec8bea753d01e54ccb4abe9986015eb",
351
+ "vision.safetensors": "a0bf0a826462235deb383842d61c3b7f4196b04c0894fd6ee587b56dc9166504"
352
+ },
353
+ "source_sha256": {
354
+ "LICENSE": "d7c8a9e5d1896d0a9588319cc7b1433e64645ad6d9e55632c30b78d8c038c23b",
355
+ "chat_template.jinja": "a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715",
356
+ "config.json": "c03e6071e42cc9f243c3f9bf66c5af9f749ee66c1ff9aa11fa6b5ed33045fe2d",
357
+ "generation_config.json": "6a391fdcafb170d69b8c5f7f2b131f8210c2fd7f6fa241862f664166bdc32d92",
358
+ "image_processor_3d/preprocessor_config.json": "1f5b118fa7b05e49a37e9fcb49ffbd26b5762fa357cc0c2ca4b3e1cb061830b2",
359
+ "model.py": "8079d6a89a1a65cacc88426e1884e161b2fdc6df61c304d06f6b04c0c9be79f3",
360
+ "model.safetensors": "655c15e59dfa1957f7d5f475b1702d689fb7107160f21256028391bb5f6e6ba5",
361
+ "preprocessor_config.json": "848b0776a3f963090450e4cf5687a77d7b2fcde569fadc0f493ed467ce88b916",
362
+ "processor.py": "762d95fd9dede47033f184a850c2af4000019ae2e8d0f7dea353513923662b09",
363
+ "processor_config.json": "44da6c32a6c23057fc7de8ea5a679801df6df3adb8bc4a0eb75e413e7107cce1",
364
+ "tokenizer.json": "06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523",
365
+ "tokenizer_config.json": "43ad4763287aaba4486a9f0fc787ab8eacbf2bfc812084520a19a28c242b1349",
366
+ "video_preprocessor_config.json": "aed9633de904e2aa55257f0e0eff5f1fdf8d854c3f4e12fc223c3e8289086c40"
367
+ }
368
+ }
mlx/norm.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5ef3d8e44269ac47475f0cb51cb44b5b3ec8bea753d01e54ccb4abe9986015eb
3
+ size 10344
mlx/vision.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a0bf0a826462235deb383842d61c3b7f4196b04c0894fd6ee587b56dc9166504
3
+ size 588242976
native-run.json ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": "medmlx.run.v1",
3
+ "model": "nv-reason-ct",
4
+ "configuration": "NV-Reason-CT 386b93e0, FP32, chest structured report, greedy, max_new_tokens 512, thinking off",
5
+ "date": "2026-10-08",
6
+ "package": {
7
+ "name": "MLX-Reason-CT",
8
+ "path": "<repositories>/MLX-Reason-CT",
9
+ "git_revision": "eb2c10baf688b32eee082dbb8973e88b4555db7a",
10
+ "branch": "main",
11
+ "dirty": false,
12
+ "remote": "https://github.com/MedMLX/MLX-Reason-CT.git"
13
+ },
14
+ "environment": {
15
+ "machine": "MacBook Pro (2021), Apple M1 Max, 10-core CPU, 24-core GPU, 64 GB",
16
+ "macos": "27.0",
17
+ "python": "3.12.15",
18
+ "mlx_version": "0.32.3",
19
+ "device": "gpu"
20
+ },
21
+ "command": {
22
+ "entry_point": "mlx_reason_ct.medmlx:run",
23
+ "kwargs": {
24
+ "image_path": "<paper-repo>/work/runs/inputs/luna-case.nii.gz",
25
+ "weights_path": "<paper-repo>/work/runs/weights/nv-reason-ct",
26
+ "output_dir": "<paper-repo>/work/runs/nv-reason-ct/out",
27
+ "anatomy_region": "chest",
28
+ "overwrite": true
29
+ },
30
+ "invocation": "cd <repositories>/MLX-Reason-CT && .venv/bin/python <paper-repo>/work/runs/_harness/run_one.py mlx_reason_ct.medmlx <kwargs.json> <run_result.json>",
31
+ "process": "fresh Python process per model"
32
+ },
33
+ "checkpoint": {
34
+ "path": "<paper-repo>/work/runs/weights/nv-reason-ct",
35
+ "manifest_sha256": "42495083b60360358b1599687d3ace2f199ac164efe3efe3f884389c793e1b2b",
36
+ "source_path": "<repositories>/radnn/checkpoints/nv-reason-ct/386b93e034983f6c1fc841a43833a1b6a0cd9c13",
37
+ "source_sha256": "655c15e59dfa1957f7d5f475b1702d689fb7107160f21256028391bb5f6e6ba5",
38
+ "registry_sha256_match": true,
39
+ "conversion": "mlx-reason-ct convert --source-dir <pinned snapshot> --output-dir work/runs/weights/nv-reason-ct (lossless BF16->FP32); the pre-existing radnn conversion was rejected by the package (engine radnn.nv_reason_ct_mlx.v1 differs from the pinned nv_reason_ct_mlx.fp32.v1)"
40
+ },
41
+ "inputs": [
42
+ {
43
+ "role": "image",
44
+ "path": "<paper-repo>/work/runs/inputs/luna-case.nii.gz",
45
+ "sha256": "5a7c3a4e681dcba5585bb49e2f355cbc08311b2944614003966409f9b6a71dfe",
46
+ "dataset": "LUNA16 subset0",
47
+ "case_id": "1.3.6.1.4.1.14519.5.2.1.6279.6001.105756658031515062000744821260",
48
+ "derivation": "MHD to NIfTI format conversion; HU and geometry preserved",
49
+ "annotations": "no accepted LUNA16 nodule annotation"
50
+ }
51
+ ],
52
+ "outputs": {
53
+ "report": {
54
+ "path": "<paper-repo>/work/runs/nv-reason-ct/out/report.txt",
55
+ "sha256": "06d5943d8465cbda9743273566eb8ac802ebf44e0621f08a83f7eb78977bc282"
56
+ },
57
+ "response": {
58
+ "path": "<paper-repo>/work/runs/nv-reason-ct/out/model_response.json",
59
+ "sha256": "8b49949cef1c73823a9d6ef73568523acace72030f387475a0571ccba07b3da9"
60
+ },
61
+ "run": {
62
+ "path": "<paper-repo>/work/runs/nv-reason-ct/out/run.json",
63
+ "sha256": "a9af3ecaf7d50ee2669a10699a773bc96274cef4aa073885eb6fcf2ad6b20fb9"
64
+ },
65
+ "report_text": "TECHNIQUE: Non-contrast CT.\n\nFINDINGS:\nMedical devices: None present.\n\nCHEST:\nLungs and airways: Trachea and main bronchi are patent. No active infiltration or mass lesion. A few tiny nonspecific nodules.\nPleura: No pleural effusion, pleural thickening, or pneumothorax.\nMediastinum and hila: No mediastinal lymphadenopathy or mass.\nHeart and pericardium: Normal heart size. No pericardial effusion.\nGreat vessels: Normal caliber thoracic aorta and main pulmonary artery.\nEsophagus: No pathological esophageal wall thickening.\nChest wall and breast: No chest wall or breast mass.\nBones: No lytic or destructive thoracic osseous lesion or acute fracture.\n\nIMPRESSION:\n\n1. A few tiny nonspecific pulmonary nodules.\n<answer> Lung nodule </answer>"
66
+ },
67
+ "checks": [
68
+ {
69
+ "name": "report_nonempty",
70
+ "result": "pass",
71
+ "detail": {
72
+ "words": 103,
73
+ "generated_tokens": 208
74
+ }
75
+ },
76
+ {
77
+ "name": "terminated_by_eos_not_truncated",
78
+ "result": "pass",
79
+ "detail": {
80
+ "terminated_by_eos": true,
81
+ "truncated_by_max_new_tokens": false,
82
+ "prompt_tokens": 13844
83
+ }
84
+ },
85
+ {
86
+ "name": "structured_sections_present",
87
+ "result": "pass",
88
+ "detail": "TECHNIQUE / FINDINGS / IMPRESSION with organ subsections"
89
+ },
90
+ {
91
+ "name": "coherent_english_no_degenerate_repetition",
92
+ "result": "pass",
93
+ "detail": "no repeated lines"
94
+ },
95
+ {
96
+ "name": "json_outputs_reopen",
97
+ "result": "pass",
98
+ "detail": null
99
+ },
100
+ {
101
+ "name": "bundle_provenance_pinned",
102
+ "result": "pass",
103
+ "detail": null
104
+ }
105
+ ],
106
+ "duration_s": 82.591,
107
+ "timing_boundary": "wall clock around the single run() call: weight loading, preprocessing, MLX inference and export; interpreter start-up and package import excluded; one run, no warmup",
108
+ "mlx_peak_gb": 22.746,
109
+ "memory_definition": "mx.get_peak_memory() after mx.reset_peak_memory() immediately before run(); decimal GB",
110
+ "panel": "paper/figures/runs/nv-reason-ct.png",
111
+ "status": "success",
112
+ "failure_cause": null,
113
+ "notes": "Report content is not evaluated for accuracy. The case has no accepted LUNA16 nodule annotation; the report's 'a few tiny nonspecific nodules' is not verified.",
114
+ "key_check": "208 tokens, EOS-terminated structured chest report",
115
+ "first_attempt": "The first call used the radnn checkpoint store's older conversion and failed with AssetNotReadyError (cache provenance differs from the pinned conversion); reconverted with the package CLI and rerun."
116
+ }
reference-comparison.json ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": "medmlx.reference.v1",
3
+ "model": "nv-reason-ct",
4
+ "date": "2026-10-12",
5
+ "case": {
6
+ "dataset": "LUNA16 subset0",
7
+ "case_id": "1.3.6.1.4.1.14519.5.2.1.6279.6001.105756658031515062000744821260",
8
+ "input_sha256": "5a7c3a4e681dcba5585bb49e2f355cbc08311b2944614003966409f9b6a71dfe"
9
+ },
10
+ "original": {
11
+ "code": "nvidia/NV-Reason-CT (Hugging Face remote model.py)",
12
+ "version_or_commit": "386b93e034983f6c1fc841a43833a1b6a0cd9c13",
13
+ "device": "cpu",
14
+ "precision": "FP32",
15
+ "checkpoint_sha256": "655c15e59dfa1957f7d5f475b1702d689fb7107160f21256028391bb5f6e6ba5",
16
+ "command": "PYTHONDONTWRITEBYTECODE=1 work/reference/nv-reason-ct/.venv/bin/python benchmarks/reference/nv-reason-ct.py",
17
+ "mode": "greedy_generation",
18
+ "duration_s": 1244.5534047500114,
19
+ "environment": {
20
+ "torch": "2.13.0",
21
+ "transformers": "5.6.2",
22
+ "dynamic-network-architectures": "0.4.3",
23
+ "timm": "1.0.22",
24
+ "monai": "1.6.0rc1",
25
+ "numpy": "2.3.5",
26
+ "nibabel": "5.4.2"
27
+ }
28
+ },
29
+ "mlx": {
30
+ "run_record": "results/runs/nv-reason-ct.json",
31
+ "output_path": "<paper-repo>/work/runs/nv-reason-ct/out/run.json",
32
+ "output_sha256": "a9af3ecaf7d50ee2669a10699a773bc96274cef4aa073885eb6fcf2ad6b20fb9",
33
+ "report": {
34
+ "path": "<paper-repo>/work/runs/nv-reason-ct/out/report.txt",
35
+ "sha256": "06d5943d8465cbda9743273566eb8ac802ebf44e0621f08a83f7eb78977bc282"
36
+ },
37
+ "preprocessing_revision": "eb2c10baf688b32eee082dbb8973e88b4555db7a"
38
+ },
39
+ "comparison": {
40
+ "metric": "token_identical",
41
+ "value": true,
42
+ "threshold": true,
43
+ "result": "pass",
44
+ "first_divergence": null,
45
+ "original_generated_tokens": 208,
46
+ "mlx_generated_tokens": 208,
47
+ "original_terminated_by_eos": true,
48
+ "original_truncated_by_max_new_tokens": false
49
+ },
50
+ "preprocessing": {
51
+ "max_abs_diff": 9.375810623168945e-05,
52
+ "prompt_tokens_identical": true,
53
+ "pixel_input": "recorded MLX revision's deterministic host preprocessing"
54
+ },
55
+ "notes": "Same SHA-256 verified LUNA16 NIfTI and original model.safetensors. Source snapshot relocated from radnn to research/radnn; source/model/template/tokenizer files match the recorded pins. Same prompt: write a structured chest CT report. Thinking off, greedy, max_new_tokens 512, FP32 CPU, SDPA, cache enabled. Original processor/template and prompt tokens are checked against recorded native host preprocessing; the identical recorded host-preprocessed voxels are explicitly supplied to the original network. Saved MLX output tokens come directly from its hash-verified run.json. No MLX generation rerun.",
56
+ "failure": null
57
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523
3
+ size 19989325