Instructions to use sczzz/RaDaR-32B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use sczzz/RaDaR-32B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="sczzz/RaDaR-32B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("sczzz/RaDaR-32B") model = AutoModelForCausalLM.from_pretrained("sczzz/RaDaR-32B", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use sczzz/RaDaR-32B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "sczzz/RaDaR-32B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "sczzz/RaDaR-32B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/sczzz/RaDaR-32B
- SGLang
How to use sczzz/RaDaR-32B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "sczzz/RaDaR-32B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "sczzz/RaDaR-32B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "sczzz/RaDaR-32B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "sczzz/RaDaR-32B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use sczzz/RaDaR-32B with Docker Model Runner:
docker model run hf.co/sczzz/RaDaR-32B
File size: 10,343 Bytes
4f806e4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 | ---
license: apache-2.0
base_model:
- deepseek-ai/DeepSeek-R1-Distill-Qwen-32B
pipeline_tag: text-generation
library_name: transformers
tags:
- medical
---
## Overview
**RaDaR (Rare Disease navigatoR)** is a 32B-parameter reasoning large language model specialized for rare-disease differential diagnosis from free-text clinical narratives.
RaDaR was initialized from [DeepSeek-R1-Distill-Qwen-32B](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B) and further trained using real-world rare-disease case reports and phenotype-anchored synthetic clinical cases, followed by supervised fine-tuning (SFT) and direct preference optimization (DPO).
RaDaR is designed to process **free-text clinical records directly**, without requiring users to first convert the clinical narrative into Human Phenotype Ontology (HPO) terms.
One motivation for releasing RaDaR as an open-weight model is to support **local deployment**, including settings in which sensitive clinical data should remain within an institution's own computing environment.
## Resources
* **Training and synthetic-data construction code:** https://github.com/sczzz3/RaDaR
* **Paper:** https://arxiv.org/abs/2606.24510
* **Web application:** https://raredx.datummed.com
## Clinical-use notice
RaDaR is a research and clinical decision-support model. It is not intended to replace qualified healthcare professionals or to provide autonomous diagnosis or treatment decisions. Model outputs may be incorrect, incomplete, or overconfident and should always be independently reviewed by qualified clinicians.
## Quick start
This section provides step-by-step instructions for downloading RaDaR and running it locally.
### 1. Hardware and storage
The released RaDaR-32B checkpoint is stored in BF16 format and occupies approximately **65.5 GB** of disk space. We recommend reserving at least **70 GB of free disk space** for the model files, plus additional space for the Python environment and model cache. Because the BF16 model weights alone occupy approximately 65.5 GB, GPU inference requires additional memory beyond the raw model size for runtime overhead and the key-value cache. Depending on the available hardware, users can run RaDaR on:
- a single high-memory GPU;
- multiple GPUs using automatic model sharding; or
- multiple GPUs using tensor parallelism with an inference engine such as vLLM.
Actual memory requirements depend on the input length, output length, inference backend, and number of concurrent requests. For users with limited GPU memory, shorter context lengths can substantially reduce runtime memory requirements.
### 2. Create a Python environment
We recommend Python 3.11.
```bash
conda create -n radar python=3.11 -y
conda activate radar
```
Install the required packages:
```bash
pip install torch
pip install transformers accelerate safetensors huggingface_hub
```
The released checkpoint was saved with Transformers 4.45.2. If you encounter version-related compatibility issues, you can use:
```bash
pip install transformers==4.45.2
```
### 3. Download RaDaR
Install or update the Hugging Face Hub command-line utility:
```bash
pip install -U huggingface_hub
```
Download the complete model to a local directory:
```bash
hf download sczzz/RaDaR-32B \
--local-dir ./RaDaR-32B
```
After the download completes, the local directory should contain the model weights, tokenizer files, configuration files, and generation configuration. You can also skip this manual download step and use the Hugging Face repository name directly in `from_pretrained()`. However, explicitly downloading the checkpoint is recommended when preparing a fully offline clinical environment.
### 4. Local inference with Transformers
Create a file called `run_radar.py`:
```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
# Path to the locally downloaded checkpoint.
MODEL_PATH = "./RaDaR-32B"
tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH)
model = AutoModelForCausalLM.from_pretrained(
MODEL_PATH,
torch_dtype=torch.bfloat16,
device_map="auto",
)
model.eval()
# ---------------------------------------------------------------------
# Replace the example text below with your own de-identified or locally
# governed clinical narrative.
# ---------------------------------------------------------------------
case_text = """
A 38-year-old male visited the surgery clinic with a year-long history of upper abdominal pain. The pain was described as dull and aching, with episodes of increased intensity lasting 1 to 2 hours...
"""
prompt = f"""
As a medical expert, enumerate the top 10 most likely diagnoses for the following patient in descending order of likelihood, with the most likely disease listed first. Ensure that each diagnosis is as specific as possible, avoiding vague terms like "rare genetic disease".
Here is the case:
{case_text}
Only output the diagnosis in numeric order, one per line. For example:
1. Disease A;
2. Disease B;
...
Do not output anything else!
"""
# For the DeepSeek-R1-Distill model family, instructions are placed
# directly in the user message rather than in a separate system prompt.
messages = [
{"role": "user", "content": prompt}
]
formatted_prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
inputs = tokenizer(
formatted_prompt,
return_tensors="pt",
).to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=32768,
do_sample=True,
temperature=0.6,
top_p=0.95,
pad_token_id=tokenizer.eos_token_id,
)
generated_tokens = outputs[0][inputs["input_ids"].shape[-1]:]
response = tokenizer.decode(
generated_tokens,
skip_special_tokens=True,
)
print(response)
```
Run the script:
```bash
python run_radar.py
```
The first model load may take several minutes depending on disk and GPU speed.
### Optional: local API deployment with vLLM
RaDaR can also be served as a local API for integration with an institutional interface or clinical research application.
Install vLLM:
```bash
pip install vllm
```
For example, to serve RaDaR using two GPUs:
```bash
vllm serve ./RaDaR-32B \
--dtype bfloat16 \
--tensor-parallel-size 2 \
--max-model-len 32768 \
--served-model-name RaDaR-32B
```
Adjust `--tensor-parallel-size` to match the number of GPUs available. The maximum model length can also be reduced if GPU memory is limited. The server listens locally on port 8000 by default.
An example request is:
```bash
curl http://127.0.0.1:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "RaDaR-32B",
"messages": [
{
"role": "user",
"content": "Based on the following clinical information, provide a ranked differential diagnosis of up to five rare diseases.\n\nClinical information:\n[CLINICAL RECORD]"
}
],
"temperature": 0.6,
"top_p": 0.95,
"max_tokens": 32768
}'
```
For a fully offline deployment, start the server from the local checkpoint after enabling offline mode:
```bash
export HF_HUB_OFFLINE=1
vllm serve ./RaDaR-32B \
--dtype bfloat16 \
--tensor-parallel-size 2 \
--max-model-len 32768 \
--served-model-name RaDaR-32B
```
This allows a local application to interact with RaDaR without sending clinical records to an external LLM API.
## Input format
RaDaR is primarily designed for **free-text clinical narratives**.
Useful information may include:
* age, sex, and age of symptom onset;
* major symptoms and physical examination findings;
* relevant past medical and family history;
* laboratory results;
* imaging findings;
* pathology or procedural findings;
* previous diagnostic investigations;
* treatment history and treatment response;
* genetic or genomic findings, when available.
## Output
RaDaR generates diagnostic reasoning and candidate rare-disease diagnoses. For clinical decision support, the output should be interpreted as a **differential diagnosis list**, not as a definitive diagnosis. The primary diagnostic evaluation in our study used a top-5 differential-diagnosis setting, reflecting the intended use of RaDaR as a tool for prioritizing a short list of diseases for clinician review.
## Model development
RaDaR was initialized from:
```text
DeepSeek-R1-Distill-Qwen-32B
```
The training corpus included:
* **49,170** publicly available real-world rare-disease cases; and
* **104,666** phenotype-anchored synthetic rare-disease cases.
Training consisted of two reasoning-enhancement stages:
1. **Supervised Fine-Tuning (SFT)** using rare-disease clinical narratives paired with diagnostic reasoning trajectories; and
2. **Direct Preference Optimization (DPO)** using preferred and dispreferred diagnostic reasoning outputs.
The full methodology is described in the accompanying paper. Code for phenotype sampling, synthetic-case construction, SFT, and DPO is available at: https://github.com/sczzz3/RaDaR
## Citation
If you use RaDaR in your research, please cite:
```bibtex
@article{chen2026radar,
title = {A specialized reasoning large language model for accelerating rare disease diagnosis: a randomized AI physician-assistance trial},
author = {Chen, Haichao and
Zhou, Songchi and
Zhao, Zhengyun and
Hu, Shikai and
Jin, Xianghong and
Ji, Hongwei and
He, Li and
Li, Shuli and
Qin, Yiming and
Tan, Xin and
Shi, Runfeng and
Tham, Yih Chung and
Zhu, Jiaye and
Li, Ye and
Jin, Ye and
Cao, Longhao and
Li, Dawei and
Wu, Honghan and
Gu, Hongqiu and
Li, Guanqiao and
Groza, Tudor and
Li, Chunying and
Zeng, Dian and
Yu, Weihong and
Baynam, Gareth and
Jamuar, Saumya Shekhar and
Shen, Min and
Zhang, Shuyang and
Sheng, Bin and
Yu, Sheng and
Wong, Tien Yin},
journal = {arXiv preprint arXiv:2606.24510},
year = {2026},
url = {https://arxiv.org/abs/2606.24510}
}
``` |