Image-Text-to-Text
MLX
English
qwen3_5
native-mlx
apple-silicon
fp32
ct
medical-imaging
nv-reason-ct
3d-vlm
vision-language
radiology
report-generation
conversational
custom_code
Instructions to use MedMLX/MLX-Reason-CT with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use MedMLX/MLX-Reason-CT with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("MedMLX/MLX-Reason-CT") config = load_config("MedMLX/MLX-Reason-CT") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use MedMLX/MLX-Reason-CT with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "MedMLX/MLX-Reason-CT"
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "MedMLX/MLX-Reason-CT" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent
How to use MedMLX/MLX-Reason-CT with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "MedMLX/MLX-Reason-CT"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default MedMLX/MLX-Reason-CT
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use MedMLX/MLX-Reason-CT with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "MedMLX/MLX-Reason-CT"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "MedMLX/MLX-Reason-CT" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Upload converted NV-Reason-CT weights and release metadata
Browse files- .gitattributes +1 -0
- LICENSE +51 -0
- NOTICE +8 -0
- README.md +116 -0
- THIRD_PARTY_NOTICES.md +220 -0
- chat_template.jinja +154 -0
- config.json +125 -0
- generation_config.json +10 -0
- image_processor_3d/preprocessor_config.json +20 -0
- mlx/embedding.safetensors +3 -0
- mlx/layer_00.safetensors +3 -0
- mlx/layer_01.safetensors +3 -0
- mlx/layer_02.safetensors +3 -0
- mlx/layer_03.safetensors +3 -0
- mlx/layer_04.safetensors +3 -0
- mlx/layer_05.safetensors +3 -0
- mlx/layer_06.safetensors +3 -0
- mlx/layer_07.safetensors +3 -0
- mlx/layer_08.safetensors +3 -0
- mlx/layer_09.safetensors +3 -0
- mlx/layer_10.safetensors +3 -0
- mlx/layer_11.safetensors +3 -0
- mlx/layer_12.safetensors +3 -0
- mlx/layer_13.safetensors +3 -0
- mlx/layer_14.safetensors +3 -0
- mlx/layer_15.safetensors +3 -0
- mlx/layer_16.safetensors +3 -0
- mlx/layer_17.safetensors +3 -0
- mlx/layer_18.safetensors +3 -0
- mlx/layer_19.safetensors +3 -0
- mlx/layer_20.safetensors +3 -0
- mlx/layer_21.safetensors +3 -0
- mlx/layer_22.safetensors +3 -0
- mlx/layer_23.safetensors +3 -0
- mlx/layer_24.safetensors +3 -0
- mlx/layer_25.safetensors +3 -0
- mlx/layer_26.safetensors +3 -0
- mlx/layer_27.safetensors +3 -0
- mlx/layer_28.safetensors +3 -0
- mlx/layer_29.safetensors +3 -0
- mlx/layer_30.safetensors +3 -0
- mlx/layer_31.safetensors +3 -0
- mlx/manifest.json +368 -0
- mlx/norm.safetensors +3 -0
- mlx/vision.safetensors +3 -0
- native-run.json +116 -0
- reference-comparison.json +57 -0
- tokenizer.json +3 -0
.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
|