d3 is the 27B multimodal foundation decision model of Decision 3.0, the decision models of vLLM Semantic Router. Give it an input (text or JSON, optionally with images and videos) and the questions you need answered: pick one of several options, say yes or no, or rate on a scale. It answers them all in one call and returns a probability for every answer, without generating text.
234
14 commits
8 repos using this model
2 linked in READMEs
updated Oct 17, 2026

d3 is the 27B multimodal foundation decision model of Decision 3.0, the decision models of vLLM Semantic Router. Give it an input (text or JSON, optionally with images and videos) and the questions you need answered: pick one of several options, say yes or no, or rate on a scale. It answers them all in one call and returns a probability for every answer, without generating text.
| Parameters | 26.09B, including the 0.46B vision encoder |
| Inputs | Text or JSON, plus images and videos (several per request) |
| Decision types | Choice · Yes / No · Score |
| License | Apache-2.0 |
pip install "transformers==5.17.0" torch torchvision pillow opencv-python-headless safetensors accelerate
pip install flash-linear-attention # optional: fast GPU kernels for the linear-attention layers
import json
from huggingface_hub import hf_hub_download
from transformers import AutoModel
model = AutoModel.from_pretrained("vllm-sr/d3", trust_remote_code=True)
# Text
result = model.system_one(
state="The order arrived damaged yesterday. The customer has a receipt and asks for a replacement today.",
questions={
"route": {
"type": "choice",
"instructions": "Which team should handle this request?",
"criteria": {
"returns": "Refunds, replacements and damaged deliveries",
"billing": "Payments, invoices and charges",
"technical": "Product setup and faults"
}
},
"receipt": {
"type": "noul",
"instructions": "Does the customer have a receipt?"
},
"urgency": {
"type": "score",
"instructions": "How urgent is this request?",
"criteria": [
"Routine",
"Soon",
"Today"
]
}
},
)
print(json.dumps(result["answers"], indent=2))
# Text and an image (or several)
receipt = hf_hub_download("vllm-sr/d3", "assets/example-receipt.png")
result = model.system_one(
state="The customer says the blender arrived cracked and attached the receipt.",
images=[receipt], # local paths, http(s) URLs, PIL images or base64 data URLs
questions={
"route": {
"type": "choice",
"instructions": "Which team should handle this request?",
"criteria": {
"returns": "Refunds, replacements and damaged deliveries",
"billing": "Payments, invoices and charges",
"technical": "Product setup and faults"
}
},
"on_receipt": {
"type": "noul",
"instructions": "Does the receipt list the blender?"
},
"payment": {
"type": "choice",
"instructions": "How was the order paid?",
"criteria": {
"card": None,
"cash": None,
"gift card": None
}
}
},
)
print(json.dumps(result["answers"], indent=2))
# Text and a video (or several)
clip = hf_hub_download("vllm-sr/d3", "assets/example-video.mp4")
result = model.system_one(
state="A short clip from a test camera.",
videos=[clip], # local paths, http(s) URLs, base64 data URLs or frame arrays
questions={
"direction": {
"type": "choice",
"instructions": "Which way does the square move?",
"criteria": {
"right": "From left to right",
"left": "From right to left",
"still": "It does not move"
}
},
"color_change": {
"type": "noul",
"instructions": "Does the square change color?"
}
},
)
print(json.dumps(result["answers"], indent=2))
# Or as a pipeline:
# transformers.pipeline("decision", model="vllm-sr/d3", trust_remote_code=True)(state=..., questions=..., images=..., videos=...)
Images go before the text of the request, each read at up to 1.6 megapixels; videos follow the images, read at 2 frames per second (at most 32 frames spread over the whole video, each at up to 0.2 megapixels). Every question of the request sees all of them.
vLLM Semantic Router serves Decision 3.0 natively in Engine mode, which runs one model behind the System One API on your own machine. Its answers match this package's own d3_server.py exactly, for text, images and videos (measured on AMD Instinct MI325X).
curl -fsSL https://vllm-sr.ai/install.sh | bash -s -- --channel dev --no-launch
export PATH="$HOME/.local/bin:$PATH"
vllm-sr serve -e vllm-sr/d3
The platform is detected automatically; choose one with --platform auto|cpu|cuda|rocm (default auto).
Engine mode and Decision 3.0 are in the development channel (--channel dev) until a stable vLLM Semantic Router release includes them. The first start pulls the image for your machine and downloads the model. Then ask questions about a request:
curl -s localhost:8899/v1/systemone -H 'content-type: application/json' -d '{
"model": "vllm-sr/d3",
"state": "Write a Python function that merges two sorted lists.",
"questions": {
"kind": {"type": "choice", "instructions": "What kind of work is this?",
"criteria": {"code": "Writing or fixing code", "math": "Mathematics", "chat": "Anything else"}},
"reasoning": {"type": "noul", "instructions": "Does answering this need multi-step reasoning?"}
}
}'
Send images as base64 data URLs (PNG, JPEG or WebP) in images and videos (MP4, WebM, QuickTime or Matroska) in videos; every question sees them:
curl -s localhost:8899/v1/systemone -H 'content-type: application/json' --data-binary @- <<EOF
{
"model": "vllm-sr/d3",
"state": "What does the attached image show?",
"images": ["data:image/png;base64,$(base64 -w0 chart.png)"],
"questions": {
"kind": {"type": "choice", "instructions": "What kind of image is this?",
"criteria": {"chart": "A chart or plot", "photo": "A photograph", "document": "A document"}}
}
}
EOF
curl -s localhost:8899/v1/systemone -H 'content-type: application/json' --data-binary @- <<EOF
{
"model": "vllm-sr/d3",
"state": "What happens in the clip?",
"videos": ["data:video/mp4;base64,$(base64 -w0 clip.mp4)"],
"questions": {
"moving": {"type": "noul", "instructions": "Does something move across the scene?"}
}
}
EOF
vllm-sr stop stops it. See Router and Engine modes for limits and options.
| Model | Jev Decision Index ↑ | Public ↑ | Same-skill tests ↑ | New-domain tasks ↑ |
|---|---|---|---|---|
| d3 | 64.7 | 65.5 | 62.8 | 56.6 |
| Perplexity Decider v1.1 (27B) | 62.8 | 62.3 | 61.1 | 55.6 |
| Fastino GLiDE no-thinking (28B) | 60.2 | 59.1 | 59.5 | 52.9 |
| Jev | 60.1 | 58.0 | 58.0 | 55.0 |
| Torchcast Decision 27B | 59.9 | 65.1 | 58.1 | 50.8 |
| Decision 2.0 (27B) | 55.9 | 57.0 | 55.7 | 47.9 |


| Model | Vision Index ↑ | Public ↑ | Private ↑ |
|---|---|---|---|
| d3 | 71.6 | 74.2 | 68.9 |
| Perplexity Decider v1.1 (27B) | 70.6 | 73.2 | 67.9 |
| JEV-27B-VL | 69.6 | 72.8 | 66.4 |
| Solomon v1.1 (27B) | 66.8 | 69.9 | 63.8 |
d3 on the public vision benchmarks († approximate rebuild):
| Benchmark | d3 |
|---|---|
| CV-Bench | 76.2 |
| BLINK | 59.9 |
| RealWorldQA | 73.4 |
| CharXiv † | 91.7 |
| InfographicVQA † | 96.7 |
| Mind2Web † | 90.0 |
| Winoground | 85.8 |
| KIE (CORD+FUNSD) † | 97.7 |
| Moderation (Hateful Memes) | 43.9 |
| R-Bench-M | 33.0 |
| MMMU-Pro vision | 47.0 |
| Perception Test (validation) | d3 |
|---|---|
| All 19,140 questions | 77.4 |
| Memory | 80.3 |
| Abstraction | 71.2 |
| Physics | 72.5 |
| Semantics | 88.8 |
Multiple-choice video question answering (three options per question, chance 33.3): top-1 accuracy (%), videos read with the defaults above.
d3: internal evaluation. Others: live board data, text 2026-10-10, vision 2026-10-09.
Apache-2.0 (LICENSE). Built on Qwen/Qwen3.8-27B (Apache-2.0).
@misc{d3_2026,
title = {{d3}: A Multimodal Foundation Decision Model},
author = {{vLLM Semantic Router Team}},
year = {2026},
howpublished = {\url{https://huggingface.co/vllm-sr/d3}}
}
Trained on AMD Instinct MI325X GPUs.
d3 is the 27B multimodal foundation decision model of Decision 3.0, the decision models of vLLM Semantic Router. Give it an input (text or JSON, optionally with images and videos) and the questions you need answered: pick one of several options, say yes or no, or rate on a scale. It answers them all in one call and returns a probability for every answer, without generating text.
234
14 commits
8 repos using this model
2 linked in READMEs
updated Oct 17, 2026

d3 is the 27B multimodal foundation decision model of Decision 3.0, the decision models of vLLM Semantic Router. Give it an input (text or JSON, optionally with images and videos) and the questions you need answered: pick one of several options, say yes or no, or rate on a scale. It answers them all in one call and returns a probability for every answer, without generating text.
| Parameters | 26.09B, including the 0.46B vision encoder |
| Inputs | Text or JSON, plus images and videos (several per request) |
| Decision types | Choice · Yes / No · Score |
| License | Apache-2.0 |
pip install "transformers==5.17.0" torch torchvision pillow opencv-python-headless safetensors accelerate
pip install flash-linear-attention # optional: fast GPU kernels for the linear-attention layers
import json
from huggingface_hub import hf_hub_download
from transformers import AutoModel
model = AutoModel.from_pretrained("vllm-sr/d3", trust_remote_code=True)
# Text
result = model.system_one(
state="The order arrived damaged yesterday. The customer has a receipt and asks for a replacement today.",
questions={
"route": {
"type": "choice",
"instructions": "Which team should handle this request?",
"criteria": {
"returns": "Refunds, replacements and damaged deliveries",
"billing": "Payments, invoices and charges",
"technical": "Product setup and faults"
}
},
"receipt": {
"type": "noul",
"instructions": "Does the customer have a receipt?"
},
"urgency": {
"type": "score",
"instructions": "How urgent is this request?",
"criteria": [
"Routine",
"Soon",
"Today"
]
}
},
)
print(json.dumps(result["answers"], indent=2))
# Text and an image (or several)
receipt = hf_hub_download("vllm-sr/d3", "assets/example-receipt.png")
result = model.system_one(
state="The customer says the blender arrived cracked and attached the receipt.",
images=[receipt], # local paths, http(s) URLs, PIL images or base64 data URLs
questions={
"route": {
"type": "choice",
"instructions": "Which team should handle this request?",
"criteria": {
"returns": "Refunds, replacements and damaged deliveries",
"billing": "Payments, invoices and charges",
"technical": "Product setup and faults"
}
},
"on_receipt": {
"type": "noul",
"instructions": "Does the receipt list the blender?"
},
"payment": {
"type": "choice",
"instructions": "How was the order paid?",
"criteria": {
"card": None,
"cash": None,
"gift card": None
}
}
},
)
print(json.dumps(result["answers"], indent=2))
# Text and a video (or several)
clip = hf_hub_download("vllm-sr/d3", "assets/example-video.mp4")
result = model.system_one(
state="A short clip from a test camera.",
videos=[clip], # local paths, http(s) URLs, base64 data URLs or frame arrays
questions={
"direction": {
"type": "choice",
"instructions": "Which way does the square move?",
"criteria": {
"right": "From left to right",
"left": "From right to left",
"still": "It does not move"
}
},
"color_change": {
"type": "noul",
"instructions": "Does the square change color?"
}
},
)
print(json.dumps(result["answers"], indent=2))
# Or as a pipeline:
# transformers.pipeline("decision", model="vllm-sr/d3", trust_remote_code=True)(state=..., questions=..., images=..., videos=...)
Images go before the text of the request, each read at up to 1.6 megapixels; videos follow the images, read at 2 frames per second (at most 32 frames spread over the whole video, each at up to 0.2 megapixels). Every question of the request sees all of them.
vLLM Semantic Router serves Decision 3.0 natively in Engine mode, which runs one model behind the System One API on your own machine. Its answers match this package's own d3_server.py exactly, for text, images and videos (measured on AMD Instinct MI325X).
curl -fsSL https://vllm-sr.ai/install.sh | bash -s -- --channel dev --no-launch
export PATH="$HOME/.local/bin:$PATH"
vllm-sr serve -e vllm-sr/d3
The platform is detected automatically; choose one with --platform auto|cpu|cuda|rocm (default auto).
Engine mode and Decision 3.0 are in the development channel (--channel dev) until a stable vLLM Semantic Router release includes them. The first start pulls the image for your machine and downloads the model. Then ask questions about a request:
curl -s localhost:8899/v1/systemone -H 'content-type: application/json' -d '{
"model": "vllm-sr/d3",
"state": "Write a Python function that merges two sorted lists.",
"questions": {
"kind": {"type": "choice", "instructions": "What kind of work is this?",
"criteria": {"code": "Writing or fixing code", "math": "Mathematics", "chat": "Anything else"}},
"reasoning": {"type": "noul", "instructions": "Does answering this need multi-step reasoning?"}
}
}'
Send images as base64 data URLs (PNG, JPEG or WebP) in images and videos (MP4, WebM, QuickTime or Matroska) in videos; every question sees them:
curl -s localhost:8899/v1/systemone -H 'content-type: application/json' --data-binary @- <<EOF
{
"model": "vllm-sr/d3",
"state": "What does the attached image show?",
"images": ["data:image/png;base64,$(base64 -w0 chart.png)"],
"questions": {
"kind": {"type": "choice", "instructions": "What kind of image is this?",
"criteria": {"chart": "A chart or plot", "photo": "A photograph", "document": "A document"}}
}
}
EOF
curl -s localhost:8899/v1/systemone -H 'content-type: application/json' --data-binary @- <<EOF
{
"model": "vllm-sr/d3",
"state": "What happens in the clip?",
"videos": ["data:video/mp4;base64,$(base64 -w0 clip.mp4)"],
"questions": {
"moving": {"type": "noul", "instructions": "Does something move across the scene?"}
}
}
EOF
vllm-sr stop stops it. See Router and Engine modes for limits and options.
| Model | Jev Decision Index ↑ | Public ↑ | Same-skill tests ↑ | New-domain tasks ↑ |
|---|---|---|---|---|
| d3 | 64.7 | 65.5 | 62.8 | 56.6 |
| Perplexity Decider v1.1 (27B) | 62.8 | 62.3 | 61.1 | 55.6 |
| Fastino GLiDE no-thinking (28B) | 60.2 | 59.1 | 59.5 | 52.9 |
| Jev | 60.1 | 58.0 | 58.0 | 55.0 |
| Torchcast Decision 27B | 59.9 | 65.1 | 58.1 | 50.8 |
| Decision 2.0 (27B) | 55.9 | 57.0 | 55.7 | 47.9 |


| Model | Vision Index ↑ | Public ↑ | Private ↑ |
|---|---|---|---|
| d3 | 71.6 | 74.2 | 68.9 |
| Perplexity Decider v1.1 (27B) | 70.6 | 73.2 | 67.9 |
| JEV-27B-VL | 69.6 | 72.8 | 66.4 |
| Solomon v1.1 (27B) | 66.8 | 69.9 | 63.8 |
d3 on the public vision benchmarks († approximate rebuild):
| Benchmark | d3 |
|---|---|
| CV-Bench | 76.2 |
| BLINK | 59.9 |
| RealWorldQA | 73.4 |
| CharXiv † | 91.7 |
| InfographicVQA † | 96.7 |
| Mind2Web † | 90.0 |
| Winoground | 85.8 |
| KIE (CORD+FUNSD) † | 97.7 |
| Moderation (Hateful Memes) | 43.9 |
| R-Bench-M | 33.0 |
| MMMU-Pro vision | 47.0 |
| Perception Test (validation) | d3 |
|---|---|
| All 19,140 questions | 77.4 |
| Memory | 80.3 |
| Abstraction | 71.2 |
| Physics | 72.5 |
| Semantics | 88.8 |
Multiple-choice video question answering (three options per question, chance 33.3): top-1 accuracy (%), videos read with the defaults above.
d3: internal evaluation. Others: live board data, text 2026-10-10, vision 2026-10-09.
Apache-2.0 (LICENSE). Built on Qwen/Qwen3.8-27B (Apache-2.0).
@misc{d3_2026,
title = {{d3}: A Multimodal Foundation Decision Model},
author = {{vLLM Semantic Router Team}},
year = {2026},
howpublished = {\url{https://huggingface.co/vllm-sr/d3}}
}
Trained on AMD Instinct MI325X GPUs.