Model reference · open weights
granite-switch-4.1 is an open-weight language model from IBM. granite-switch-4.1-8b (BF16) weighs 17.6 GB; the smallest configuration that runs it is 2× RTX 3060 12 GB.
For self-hosting, compare this build's requirements below with the GPU you plan to rent.
Summary of the ibm-granite/granite-switch-4.1-8b model card, 2026-10-16
What it is
| Released by | IBM |
|---|---|
| Released | 2026-10-14 |
| Parameters | 8.8B |
| VRAM | 17.6 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory | |
|---|---|---|---|---|
| 8K each | 32K each | |||
| RTX 3060 12 GB … RTX 4060 Ti 16 GB 2 smaller cards | ||||
| RTX 3090 24 GB | 3 | 29K | 23.4 GB | |
| RTX 4090 24 GB | 3 | 28K | 23.4 GB | |
| RTX 5090 32 GB | 9 | 2 | 72K | 31.0 GB |
| L40S 48 GB | 18 | 4 | all 128K | 44.0 GB |
| A100 80 GB | 42 | 10 | all 128K | 78.2 GB |
| H100 80 GB | 39 | 9 | all 128K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 50 | 12 | all 128K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 60 | 15 | all 128K | 107 GB |
| H200 141 GB | 82 | 20 | all 128K | 138 GB |
| B200 180 GB | 108 | 27 | all 128K | 176 GB |
| 2× RTX 3060 12 GB tensor parallel | 3 | 24K | 11.6 GB a card | |
| 2× RTX 4060 Ti 16 GB tensor parallel | 8 | 2 | 67K | 15.4 GB a card |
| 2× RTX 4090 24 GB tensor parallel | 19 | 4 | all 128K | 23.4 GB a card |
| 2× RTX 3090 24 GB tensor parallel | 19 | 4 | all 128K | 23.4 GB a card |
| Requests at once | 8K tokens each | 32K tokens each |
|---|---|---|
| 1 | 19.7 GB | 23.9 GB |
| 5 | 25.3 GB | 46.4 GB |
| 8 | 29.5 GB | 63.4 GB |
| 16 | 40.8 GB | 108 GB |
| 32 | 63.4 GB | 199 GB |
| 64 | 108 GB | 379 GB |
One card, with vLLM's small-card settings.
Builds
| Build | Params | Precision | Weights | Smallest setup |
|---|---|---|---|---|
| granite-switch-4.1-8b (above) ↗ | 8.8B | BF16 | 17.6 GB | 2× RTX 3060 12 GB |
| granite-switch-4.1-30b ↗ | 30.0B | BF16 | 60.0 GB | H100 80 GB |
From the model card
📝 Read the launch blog: Granite Switch 4.1: Chat, Decisions, and Speech from One Endpoint
Model Summary: Granite Switch 4.1 8B is a modular LLM that composes a base model, multiple adapters and an encoder together so that a single hosted endpoint can move between natural-language responses, general and specialized decisions, and speech-to-text.
Adapters are activated on demand via control tokens in the chat template. For full details on model composition and adapter configuration, see BUILD.md.
ibm-granite/granite-4.1-8b (8B params, 128K context)decision (aLoRA, general-purpose Decisions) and guardian-core (aLoRA, from granitelib-guardian-r1.0)ibm-granite/granite-speech-5.0-470m-turboctc (470M params, English)Granite Switch is also available in granite-switch-4.1-30b (same Chat + Decisions + Guardian + speech configuration, 30B base), and with the complete Granite Libraries bundle (no audio) in granite-switch-4.1-8b-preview, -30b-preview, and -3b-preview.
| Switch Component | Description |
|---|---|
| Guardian Core aLoRA | Detects safety risks: harm, jailbreaking, profanity, violence, sexual content, social bias, unethical behavior |
| Decision aLoRA | Given a state + a question with labelled options, returns a softmax probability distribution over the option labels in one forward pass |
| Granite Speech 5.0 TurboCTC Encoder | An ASR model for quick speech to text transcription tasks |
Transcription runs on the same endpoint as chat and decisions, so you don't need a separate speech server and how the model is called doesn't change. Incoming audio is transcribed by the embedded Granite Speech 5.0 TurboCTC model (470M params, English, non-autoregressive conformer CTC encoder), the fastest ASR model on the OpenASR Leaderboard . The transcript is spliced into the chat context in place of the audio content part. The speech encoder and the LLM are not yet jointly trained — there is no trained projection coupling them together yet; see docs/AUDIO.md in the granite-switch repo for the full design and limitations (English only, lowercase/unpunctuated output, no decode-time steering).
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="unused")
response = client.chat.completions.create(
model="ibm-granite/granite-switch-4.1-8b",
messages=[{"role": "user", "content": [
{"type": "text", "text": "Answer the question in the audio."},
{"type": "input_audio", "input_audio": {"data": "", "format": "wav"}},
]}],
)
print(response.choices[0].message.content)
The decision activated-LoRA adapter was evaluated on the public Decision Index fast subset (1,068
rows) in the edition-v0.3 scoring, using the adapter's documented invocation recipe: a fixed
decision-engine system prompt, a State: turn (run on the frozen base), and a ### DECISION turn
presenting the question and single-token-labelled options, with the first assistant token read as a
softmax over the option-label logits. Each configuration was measured two ways — the adapter served
locally and the same adapter served behind a hosted vLLM endpoint — which agree to within ~0.6 points,
confirming the serving path is faithful; hosted-serving numbers are shown below.
| Overall | Knowledge | Language | Retrieval | Tools | Arts |
|---|---|---|---|---|---|
| 42.9 | 29.1 | 48.9 | 49.8 | 59.8 | 18.0 |
Scores are the Decision Index v0.3 public component (0–100); per-area skills are shown ×100.
git clone https://github.com/generative-computing/granite-switch.git
cd granite-switch
# Pick what you need:
pip install -e ".[compose]" # Compose models with adapters
pip install -e ".[hf]" # HuggingFace inference
pip install -e ".[vllm]" # vLLM inference
pip install -e ".[audio]" # Audio input (adds vLLM's audio deps)
pip install -e ".[dev]" # Everything
This checkpoint is produced by composing the base model with guardian-core from the Guardian
library and decision from the Core library — --include-adapters drops every other adapter each
library ships — plus the ASR cascade (--enable-audio, default Granite Speech 5.0 TurboCTC):
python -m granite_switch.composer.compose_granite_switch \
--base-model ibm-granite/granite-4.1-8b \
--adapters ibm-granite/granitelib-guardian-r1.0 ibm-granite/granitelib-core-r1.0 \
--include-adapters guardian-core decision \
--enable-audio \
--output ./granite-switch-4.1-8b
See BUILD.md for the exact adapter ranks/targets this checkpoint ships with, and the adapter catalog for every
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.