Overview
Muse Glimmer 30B is a dense, multimodal (image-text-to-text) causal transformer paired with a frozen ~1.8B ViT-G/14 perception encoder. The language model is 52 layers, hidden size 6656, SwiGLU FFN, GQA (32 query / 2 KV heads), sliding-window 2048, RoPE θ=500,000, vocab 202,048, 131K context. Apache 2.0 licensed.
It is distributed alongside the
quay.io/vllm/rhaiis-early-access:muse-glimmer RHAIIS (Red Hat AI Inference
Server) build. That image is the standard vLLM OpenAI-compatible server
(UBI9 + CUDA 13) with no model baked in — you point it at the
meta-models/Muse-Glimmer-30B weights on Hugging Face at runtime.
Prerequisites
- OpenShift 4.14+ with the NVIDIA GPU Operator installed
- 2× NVIDIA A100-80GB (or larger) on a single node for tensor parallelism
- A pull secret with access to
quay.io/vllm/rhaiis-early-access(early access) - Red Hat OpenShift AI (RHOAI) operator installed, or KServe configured manually
Runtime model download
The image ships with HF_HUB_OFFLINE=1. The repo is public (Apache 2.0), so no
HF token is required — just set HF_HUB_OFFLINE=0 in the serving runtime env so
vLLM can download the weights on first start. If you mirror the model behind a
gated/private repo, also provide HF_TOKEN from a secret.
Quick Start
- Save the generated manifests above to
deploy.yaml - Apply:
oc apply -f deploy.yaml - Wait for the pod to pull the image, download the weights, and start serving
- Get the route:
oc get inferenceservice
Testing the Endpoint
export URL=$(oc get inferenceservice muse-glimmer -o jsonpath='{.status.url}')
# Text
curl -s $URL/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "muse-glimmer",
"messages": [{"role": "user", "content": "Hello!"}]
}'
# Image + text (multimodal)
curl -s $URL/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "muse-glimmer",
"messages": [{"role": "user", "content": [
{"type": "text", "text": "Describe this image."},
{"type": "image_url", "image_url": {"url": "https://example.com/cat.jpg"}}
]}]
}'
Notes
- Multimodal: accepts text + image input, produces text output.
- Tool calling: this RHAIIS build ships a dedicated parser, enabled here with
--enable-auto-tool-choice --tool-call-parser=muse_glimmer. It is also a reasoning model — add--reasoning-parser=muse_glimmerto separate the thinking trace intoreasoning_content. --served-model-name=muse-glimmerexposes a clean model id on the API, independent of themeta-models/Muse-Glimmer-30Brepo path.--tensor-parallel-size=2requires 2 GPUs on the same node plus a large/dev/shm(16Gi here) for NCCL/torch shared memory.- BF16 weights are ~60GB; a 4-bit quantized variant is also released upstream if
you need to fit on a single GPU (adjust
--tensor-parallel-sizeaccordingly). - Context length is 131K — reduce
--max-model-lenif you need to conserve KV cache VRAM. - Pin to A100-80GB via the node selector so the pod doesn't land on a smaller or single-GPU node.