Downloads · 30 days
391
22% of all-time downloads
samwell/NV-Reason-CXR-3B-GGUF
NV-Reason-CXR-3B-GGUF is a image-text-to-text model from samwell. Use it for the image-text-to-text task on the model card, and read the license before you ship it in a product. The card lists the license as other.
Quantized GGUF versions of NVIDIA's NV-Reason-CXR-3B vision-language model optimized for edge deployment for Cactus Compute and llama.cpp.
Downloads · 30 days
391
22% of all-time downloads
All-time downloads
1.7K
Public
Repo size
11.6 GB
Likes
2
Public
Click a slice to open those files.
.gguf10.2 GB · 100%
From the Hugging Face model README
Quantized GGUF versions of NVIDIA's NV-Reason-CXR-3B vision-language model optimized for edge deployment for Cactus Compute and llama.cpp.
This repository contains quantized versions of NV-Reason-CXR-3B, a 3B parameter vision-language model specialized in chest X-ray analysis. The model has been converted to GGUF format and quantized for efficient deployment on edge devices (mobile, desktop, embedded systems).
Original Model: nvidia/NV-Reason-CXR-3B Base Architecture: Qwen2.5-VL 3B Instruct Conversion: llama.cpp Quantization: llama-cpp-python
| Filename | Format | Size | Use Case | Quality | Speed |
|---|---|---|---|---|---|
nv-reason-cxr-3b-fp16.gguf | FP16 | 6.3 GB | Desktop with GPU (quality reference) | 100% | Baseline |
nv-reason-cxr-3b-Q4_K_M.gguf | Q4_K_M | 1.96 GB | Recommended for edge devices | 90-95% | Fast |
mmproj-nv-reason-cxr-3b-f16.gguf | FP16 mmproj | 1.25 GB | Vision encoder (required for image analysis) | 100% | - |
Q4_K_M (Recommended):
FP16 (Reference):
Q4_K_M Performance:
| Configuration | Load Time | Inference Speed | Memory Usage |
|---|---|---|---|
| CPU-only | 1.87s | 29.61 tok/s | ~2 GB RAM |
| M3 GPU (Metal) | 0.34s | 33.24 tok/s | ~2 GB RAM |
| Speedup | 5.46x faster ⚡ | 1.12x faster | Same |
Key Insights:
Test Hardware: Apple M3 MacBook Pro (Metal GPU support)
| Device | RAM | Expected Speed | Load Time | Rating |
|---|---|---|---|---|
| Budget Android | 3GB | 3-5 tok/s | 30-45s | Poor |
| Mid-range Android | 4GB | 8-12 tok/s | 20-30s | Good |
| High-end Android | 6GB | 15-20 tok/s | 15-25s | Excellent |
| iPhone 12+ | 4-6GB | 12-18 tok/s | 15-20s | Excellent |
| iPhone 14+ | 6GB+ | 18-25 tok/s | 10-15s | Optimal |
Minimum Requirements:
# Clone llama.cpp
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make
# Download model
huggingface-cli download samwell/NV-Reason-CXR-3B-GGUF \
nv-reason-cxr-3b-Q4_K_M.gguf --local-dir ./models
# Run inference
./llama-cli \
-m models/nv-reason-cxr-3b-Q4_K_M.gguf \
-p "Analyze this chest X-ray image." \
--image xray.jpg \
-n 512 \
--temp 0.3
from llama_cpp import Llama
# Option 1: CPU-only (works great, 29.61 tok/s on M3)
llm = Llama(
model_path="nv-reason-cxr-3b-Q4_K_M.gguf",
n_ctx=4096,
n_threads=4,
n_gpu_layers=0, # CPU-only
)
# Option 2: GPU acceleration (5.46x faster loading!)
llm = Llama(
model_path="nv-reason-cxr-3b-Q4_K_M.gguf",
n_ctx=4096,
n_threads=4,
n_gpu_layers=-1, # Use GPU (Metal on Mac, CUDA on Linux/Windows)
)
# Analyze X-ray
response = llm(
"Analyze this chest X-ray image and identify key findings.",
max_tokens=512,
temperature=0.3, # Lower for medical = more deterministic
top_p=0.9,
)
print(response['choices'][0]['text'])
Note: You need BOTH the model file AND the mmproj file for image analysis.
import 'package:cactus/cactus.dart';
// Initialize VLM with both model and mmproj files
final vlm = CactusVLM();
await vlm.init(
modelFilename: 'nv-reason-cxr-3b-Q4_K_M.gguf', // Model file
mmprojFilename: 'mmproj-nv-reason-cxr-3b-f16.gguf', // Vision encoder
contextSize: 2048, // Context window (2K-4K for mobile)
threads: 4, // CPU threads
gpuLayers: 0, // CPU-only (GPU may cause issues on some devices)
);
// Create prompt
final messages = [
ChatMessage(
role: 'system',
content: 'You are a helpful radiologist assistant.',
),
ChatMessage(
role: 'user',
content: 'Describe what you see in this chest X-ray image.',
),
];
// Analyze X-ray
final response = await vlm.completion(
messages,
imagePaths: ['path/to/xray.jpg'],
maxTokens: 150,
temperature: 0.1, // Lower for medical analysis (0.1-0.5)
);
print(response.text);
Mobile GPU Benefits:
Recommended settings for medical analysis:
{
"temperature": 0.3, # Lower = more deterministic (range: 0.1-0.5)
"top_p": 0.9, # Nucleus sampling
"top_k": 40, # Top-k sampling
"repeat_penalty": 1.1, # Avoid repetition
"max_tokens": 512, # Response length
"n_ctx": 4096, # Context window (2048-4096 for mobile)
}
.
├── README.md # Model card and usage guide
├── LICENSE # NSCLV1 license
├── CONVERSION_PROCESS.md # Technical conversion details
├── nv-reason-cxr-3b-Q4_K_M.gguf # Q4_K_M quantized (1.96 GB) - Recommended
├── nv-reason-cxr-3b-fp16.gguf # FP16 reference (6.3 GB)
└── mmproj-nv-reason-cxr-3b-f16.gguf # Vision encoder (1.25 GB) - Required
Primary Use Cases:
Out-of-Scope:
The original model may have inherited biases from training data. Users should:
Q4_K_M uses 4-bit quantization with K-means clustering:
The vision encoder has been extracted into a separate mmproj file for compatibility:
mmproj-nv-reason-cxr-3b-f16.gguf (1.25 GB)Why separate mmproj?
If you use this model, please cite the original work:
@misc{nvidia2024nvreasoncrx,
title={NV-Reason-CXR-3B: A Specialized Vision-Language Model for Chest X-ray Analysis},
author={NVIDIA},
year={2024},
publisher={Hugging Face},
url={https://huggingface.co/nvidia/NV-Reason-CXR-3B}
}
And optionally cite the quantization:
@misc{nvreasoncrx3b-gguf,
title={NV-Reason-CXR-3B GGUF: Quantized for Edge Deployment},
author={samwell},
year={2025},
publisher={Hugging Face},
url={https://huggingface.co/samwell/NV-Reason-CXR-3B-GGUF}
}
This model inherits the NSCLV1 license from the original NV-Reason-CXR-3B model. See LICENSE for details.
Key points:
⚠️ IMPORTANT MEDICAL DISCLAIMER
This model is provided for RESEARCH AND EDUCATIONAL PURPOSES ONLY. It is:
Always consult qualified healthcare professionals for medical decisions. The creators and distributors of this model assume no liability for any use of this software.
For research and educational purposes only. Not for clinical use.