RESEARCH · #006

Muse Glimmer 30B: An Architecture and Hands-On Look at Meta's New Mid-Range Model

Meta's Muse series arrived quietly in 2026 after the disappointment of LLaMa-4. We read through Muse Glimmer 30B's architecture, then run it ourselves on a single GPU — standard inference, DFlash speculative decoding, and its custom Vision encoder.

2026.09.15 13 min read

In the world of generative AI, Meta's LLaMa is often considered the model that kicked off the open-weight era. Its successor, LLaMa-4, however, fell short of expectations and was widely regarded as a disappointment, leaving Meta in a difficult position over the past year.

Then, in early 2026, Meta released a new lineup called the "Muse" series. Muse Glimmer 30B, the mid-range model in that lineup covered here, appears to have drawn considerable attention in the local-LLM community.

This article walks through Muse Glimmer 30B's architecture and then verifies it hands-on on GPU hardware: standard text inference, its combination with the speculative-decoding technique DFlash, and its Vision capability. We look at what the model can actually do, based on the results below.

Meta's Muse Series

LLaMa, the Model That Started the Open-Weight Era

One of Meta AI's most significant contributions was releasing the LLaMa models as open weights. At the time, high-performance chat models like GPT-3.5-Turbo existed, but they were closed models that couldn't be run on a typical local GPU.

To address that gap, Meta released LLaMa free of charge. Version 1 came with restrictive licensing terms — even Alpaca, a derivative model, had commercial-use restrictions — but Version 2 relaxed those terms considerably. That change made it much easier for a broad range of users to adopt LLMs locally, and the model drew significant attention as a result.

LLaMa 2 in particular was notable for being the first major model to adopt RoPE (Rotary Positional Embedding) [1] and Group Query Attention (GQA) [2], both novel techniques at the time.

Input tokens -> Embedding -+-> [ RMSNorm -> Self-Attention (GQA + RoPE) ] -+
                            |                                              |
                            +<-----------------------------(residual add)--+
                            |
                            +-> [ RMSNorm -> SwiGLU FFN ] -+
                            |                               |
                            +<------------(residual add)----+
                                   |
                            (x N decoder blocks)
                                   |
                            RMSNorm -> Linear -> Softmax -> Output tokens

Figure 1. LLaMa-2's architecture — a standard pre-norm decoder block, with GQA (fewer key/value heads shared across query heads) and RoPE-based position encoding applied at every attention layer.

These architectural choices remain standard across many open-weight models today, and models such as llm-jp-4-8b-thinking still carry that lineage forward.

However, LLaMa-4 — the successor released after the success of LLaMa-3 — underperformed relative to expectations and was widely characterized as a disappointment. Meta itself acknowledged the setback, which was accompanied by organizational disruption within its research team and the departure of several researchers — an unusually visible decline for a lab of its standing.

From LLaMa to Muse

In April 2026, Meta announced a new model called Muse Spark. Muse Spark launched as a closed model and initially drew little attention. Versions 1.1 and 1.2 followed in July and August respectively, and as each new version shipped, its performance gradually became better known.

Around the release of Muse Spark 1.2, Meta also introduced Muse Glimmer 30B, the mid-range model covered in this article. Its release appears to have generated notable interest within the local-LLM community.

Muse Glimmer's Architecture

Muse Glimmer uses a hybrid structure similar to several currently popular open-weight models. At a glance, the block layout resembles Qwen's more than it does Google DeepMind's Gemma-4 — it's a comparatively simple structure. It's a 29.6B-parameter, dense model that uses GeLU for its activation function.

Input strings -+- Glimmer Vision (image input) -----------------+
               |                                                 |
               +- tok -> Emb -----------------------------------+-(+)-+
                                                                       |
                                RoPE (SA layers: theta=50,000)  <------+
                                RoPE (FA layers: theta=0 = NoPE) <-----+
                                                                       |
     [ SA -> SA -> SA -> FA ]  x13 groups  ------------------------->
            (52 blocks total = 4 layers x 13 groups)
                                                                       |
                                                          LNR -> SoftMax -> Output Probabilities

Figure 2. Muse Glimmer 30B's architecture. SA = Sliding Attention (local context, RoPE applied); FA = Full Attention (aggregates and consolidates, RoPE disabled / NoPE).

Attention Structure

The attention structure is a hybrid built on top of Group Query Attention.

Layers labeled SA use Sliding Window Attention, which handles local context analysis. By explicitly bounding the context range each layer looks at, this reduces both memory usage and compute cost.

Layers labeled FA use Full Attention. These layers aggregate and consolidate what the preceding SA layers produced, running as standard GQA — which makes them comparatively more compute-heavy than the SA layers.

Blocks are arranged in groups of three SA layers followed by one FA layer, repeated 13 times for a total of 52 blocks.

The 3:1 SA-to-FA ratio resembles the structure used since Qwen3.5, but looking at what each layer type actually does, the closer functional match is Gemma-4's "local + global" design.

A more distinctive detail is that the RoPE theta value can be set independently per layer: SA layers use 50,000, while FA layers use 0. In the modeling source code, a theta value of 0 causes the RoPE module to be treated as NoPE — meaning positional encoding is skipped entirely for that layer, confirmed directly in Hugging Face's transformers library.

This suggests a design choice to keep FA layers focused purely on the aggregation role, stripping out anything unrelated to that job and drawing a clear division of labor between the two layer types.

Vision Encoder

The vision model, called Glimmer Vision, is a custom encoder rather than the widely used SigLIP vision transformer that most models rely on. It has 50 blocks — 12 groups of (3 SA + 1 FA), plus one more (1 SA + 1 FA) — and its structure is nearly identical to the text decoder's, differing only at the very end. The resulting vector is treated as 1,024 tokens' worth of information and fed into the text decoder.

This design is described in Meta's own paper, "Perception Encoder: The best visual embeddings are not at the output of the network" [3], and Glimmer Vision appears to be built on the Perception Encoder architecture proposed there.

Running It Ourselves

For this verification, we used a GPUSOROBAN High-Speed Computing instance equipped with an NVIDIA RTX A4000.

Even a 4-bit quantized version of Muse Glimmer exceeds 16GiB. Factoring in KV cache usage as well, we used a 2-bit quantized model optimized with Unsloth Dynamic 2.0 (Muse-Glimmer-30B-UD-IQ2_M.gguf, 12.3GB), along with the quantized vision encoder (mmproj-kquant.gguf) and DFlash draft model (dflash-kquant.gguf). We used llama.cpp version 10380, which already includes upstream support for Muse Glimmer.

Verification: Standard Mode

First, we ran text inference using the main model on its own.

build/bin/llama-server --model ./models/Muse-Glimmer-30B-UD-IQ2_M.gguf -t 12 -np 1 --prio 2 --temp 1.0 --top-p 0.95 --top-k 64 --port 8001 --host 0.0.0.0 --fit off --no-warmup --no-cache-prompt -fa on --cache-ram 0 -c 131072 --reasoning on --log-verbosity 4

Memory usage came out as follows. Thanks to the sliding-window design, the footprint looks smaller than what you'd typically see from a model relying solely on standard Grouped Query Attention.

ComponentCUDA0CPU
Weight data10,623.101,052.08
KV cache data1,664.00—
Sliding-window KV cache97.50—
Gated DeltaNet compute buffer273.52156.52
Total12,658.121,208.60

Table 1. Memory usage in standard mode, main model only (units: MiB).

We asked the model the following question, out of curiosity given the recent Kumamoto earthquake:

Describe the characteristics of the ground/soil conditions in Kyushu.

The response came out well-informed at a glance, correctly citing the Median Tectonic Line, the Futagawa/Hinagu fault zones behind the 2016 Kumamoto earthquakes, and the region's volcanic-ash and alluvial deposits (Ariake Sea coast, Chikushi Plain, Kitakyushu, Kumamoto Plain, and others). We had a DeepSearch agent built on GPT-5.6-Luna evaluate the response, which flagged a recurring issue: it tends to generalize localized Kyushu characteristics as if they applied uniformly across the whole region. Only one claim — that the Median Tectonic Line crosses all of Kyushu — was flagged as factually incorrect outright; the rest of the notes were about over-generalization rather than errors.

Smaller models tend to produce noticeably off-base answers to this kind of question, so getting a response of this quality without RAG suggests fairly strong reasoning ability — notable given this test used a 2-bit quantized model rather than our usual 4-bit baseline.

Speed performance came out to about 22.52 tokens/sec. Given the model's size, that's on the lower end compared to 9B–12B models, though not slow enough to be a practical problem.

prompt eval time =     262.18 ms /    68 tokens (    3.86 ms per token,   259.37 tokens per second)
       eval time =   82874.28 ms /  1866 tokens (   44.41 ms per token,    22.52 tokens per second)
      total time =   83136.46 ms /  1934 tokens

Verification: Using DFlash

Muse Glimmer supported DFlash from release, with a dedicated draft model available in Unsloth's repository. We loaded it via --model-draft and re-ran the same question. The result was underwhelming: output speed dropped from 22.52 tps to 17.80 tps, and the token acceptance rate came in at only 15.7% (mean length 1.94). We plan to dig further into when this speculative-decoding technique does or doesn't pay off in a follow-up article.

Verification: Using Vision

Muse Glimmer also ships with a vision encoder, called Glimmer Vision, with a dedicated mmproj file available in Unsloth's repository. Loading it alongside the DFlash draft model produced an out-of-memory error, so we tested each capability separately. Enabling the vision encoder added roughly 1,336 MiB of memory usage.

Rather than text-only inference, we tested the model's analytical ability by attaching an image and asking it to describe everything shown. Since the diagram we used is labeled in Japanese, the image below is kept as-is rather than redrawn in English — the model's response, translated below, conveys its content.

The Japanese-language architecture slide fed into Muse Glimmer's Vision Encoder

Figure 3. The image fed into the Vision Encoder.

The model correctly identified the slide's title, the spec list (hidden size, RoPE theta values, NoPE on Full Attention layers, 128k context, DFlash-based drafter), the SA/FA terminology, and walked through the block-diagram flow (tokenize → embed → RoPE → 13 groups of SA-SA-SA-FA → LNR → softmax) accurately, including the detail that Full Attention layers use NoPE. The content was largely accurate with only minor issues — a strong result for a custom vision encoder being asked to parse a dense technical diagram.

External Benchmark: How the Model Is Rated Elsewhere

We checked Muse Glimmer's standing against other models using Artificial Analysis, a site that publishes third-party benchmark data, organized around their Intelligence score.

Artificial Analysis Intelligence score comparison, featuring Muse Glimmer 30B

Figure 4. Artificial Analysis Intelligence scores (models shown are a custom selection for this comparison).

Muse Glimmer 30B scores 35, high relative to other open-weight models in the roughly-30B parameter range — within the scope of models we track (excluding coding- and agent-specialized models), it scores above both Qwen3.5 and Gemma-4.

What stood out more was the score for Muse Spark, the closed model this architecture is presumably derived from — its score is close enough to Claude 5 Fable's that the gap is fairly small.

Reaching this level of performance within a short update cycle, combined with reports that Meta may release this model line as open weights in the future, makes it a lineup worth continuing to watch.

Conclusion

This article analyzed the architecture of Meta's Muse Glimmer 30B and evaluated its behavior through hands-on testing, including basic chat inference. Based on that evaluation, Muse Glimmer 30B looks like a strong option in the mid-range model category.

Its architecture builds solidly on the "local + global" pattern that has proven effective across recent hybrid-attention models, while going a step further by omitting RoPE from the aggregation (FA) layers — a refinement that lets those layers focus purely on their consolidation role. The vision encoder is also a custom design based on Meta's own Perception Encoder architecture, and its analytical performance held up well in testing.

The model is released under the Apache 2.0 license, which makes it a viable option for developers considering a Tokens-as-a-Service offering — a space where Gemma-4 has had little competition until now. Whether Meta continues to gain ground in the frontier-model space is something worth watching going forward.

References

  1. RoPE was first introduced in RoFormer — arXiv
  2. GQA, first proposed by Google Research's T5-XXL — arXiv
  3. Perception Encoder: The best visual embeddings are not at the output of the network — Hugging Face
  4. Muse Glimmer 30B repository — Hugging Face
  5. llama.cpp — Muse Glimmer support (PR #26841) — GitHub
  6. Artificial Analysis — artificialanalysis.ai
C
Compute Cluster Research
RESEARCH #006 — September 15, 2026