C.W.K.
Stream
Lesson 02 of 05 · published

Spotting Dense vs MoE From Public Material

~9 min · moe, literacy, announcements

Level 0Scout
0 XP0/41 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

The signals

You can almost always tell whether a model is dense or MoE without ever reading the technical report. Watch for:

Parameter notation

  • Single number ("70B", "405B") almost always means dense. Dense doesn't need a second number because total = active.
  • "XB-AYB" notation ("235B-A22B", "671B-A37B") is the standard MoE shorthand: total / active.
  • "X×YB" notation ("8×7B", "8×22B") is the older style for MoE — N experts of size Y. This was Mixtral's branding; many newer MoE models have moved to XB-AYB.

Vocabulary

  • Any mention of "experts", "router", "gate", "top-K", "routing", "expert collapse", "load balancing" is MoE.
  • Any mention of "fine-grained experts", "shared experts", "auxiliary-loss-free balancing" is specifically modern MoE (DeepSeek-style).

Cost-shape clues

  • "Cheaper than its size suggests" or "compute-efficient at scale" or "frontier capability at lower per-token cost" almost always = MoE.
  • "Lightweight, fast, predictable" or "easy to fine-tune, easy to quantize" almost always = dense.

Config files don't lie

If a Hugging Face repo exists, check config.json for fields like num_experts, num_experts_per_tok, num_local_experts, router_aux_loss_coef. Their presence is dispositive. Their absence almost certainly means dense.

Code

Quick check on a Hugging Face config·python
import json, urllib.request

def is_moe(repo):
    url = f"https://huggingface.co/{repo}/raw/main/config.json"
    cfg = json.loads(urllib.request.urlopen(url).read())
    moe_signals = ["num_experts", "num_local_experts",
                   "num_experts_per_tok", "router_aux_loss_coef"]
    return any(k in cfg for k in moe_signals)

External links

Exercise

Open the config.json for three different open-weight models — Llama 3.3 70B, Mixtral 8x7B, and DeepSeek-V3. Note which fields appear in MoE configs that don't appear in dense configs. This is the most direct way to internalize what 'MoE' means in actual code-readable terms.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.