What Should MoE Verification Actually Count? The Math Behind Four Tokens and Eight Experts

In MoE speculative decoding, verification cost depends on expert overlap, so unique expert count should be added as a supplementary metric.
Using NVIDIA Ling-3.0-flash as an example, the article discusses a measurement blind spot in speculative decoding under sparse MoE: because each token routes independently, the expert union actually touched when verifying multiple draft tokens may be far larger than a single token's expert count, so verification cost cannot be estimated linearly by token count. Under batch-size-1, verifying 4 tokens costs about 2.26 ordinary decoding steps. Accepted token count only captures output efficiency, while unique expert count reflects weight-touching cost; both should be monitored in parallel, with unique experts counted per layer. Mainstream profilers do not directly expose expert overlap, so lightweight routing-layer statistics are needed. The article recommends reporting both metrics, tuning draft strategies for expert overlap, and incorporating routing-layer observability into routine profiling.
In speculative decoding, the usual intuition is "load the target weights once and verify multiple draft tokens in a batch." But when the target model is a sparse MoE, this intuition runs into an awkward reality: different tokens in the same batch may activate completely different expert weights. So "verifying four tokens" is no longer a straightforward question of how much compute it actually costs.
A recent technical discussion on Reddit used NVIDIA's Ling-3.0-flash as an example to bring this issue to the surface: each token selects 8 of 512 routed experts per MoE layer, plus one shared expert. When verifying 4 positions, depending on the degree of overlap, up to 32 distinct routed experts may be touched. Under the batch-size-1 Spark configuration, the reported verification step cost is roughly equivalent to 2.26 ordinary decoding steps.

Why "Verifying Four Tokens" Is Not the Same as "Four Expert Computations"
In a dense model, the cost of a verification window is roughly proportional to the number of tokens, because every token goes through the same set of weights. MoE breaks this premise. Each token routes independently, and the selected expert sets may not overlap at all. With four tokens each selecting eight experts, the theoretical upper bound on the union is thirty-two experts.
Whether this upper bound is approached depends on how concentrated the routing is. If the four draft tokens are highly similar semantically, they are likely to select many of the same experts, and the actual number of experts touched is far below the upper bound; if the drafts come from different context branches, the overlap rate drops, and the pressure from weight loading and computation rises accordingly. The 2.26x decoding-step figure given in the discussion is a concrete observation of this uncertainty—cheaper than "four decodes," but clearly more expensive than "one decode."
The key insight here is that the benefit of MoE speculative decoding depends not only on the acceptance rate of draft tokens but also on the degree of expert overlap within the draft window. The acceptance rate determines "whether the verification was wasted," while overlap determines "how expensive the verification itself is." Together they determine the end-to-end speedup.
Speculative Decoding is a technique for losslessly accelerating autoregressive generation: a lightweight draft model first quickly generates several candidate tokens, and then the target large model verifies these candidates in parallel, accepting the prefix that matches the target model's distribution. Because verification can process the entire draft window in parallel, while ordinary decoding can only generate one token per step, ideally verifying k tokens takes close to the time of a single forward pass, yielding several-fold speedup. The benefit of this technique depends heavily on the acceptance rate of draft tokens—the higher the acceptance rate, the less verification compute is "wasted." In dense models, the compute of the verification window is approximately linear in the number of tokens, because all tokens share the same set of weights; but in MoE models, each token routes independently to a different subset of experts, and the actual compute of the verification window depends on the size of the union of these subsets, not simply the number of tokens.
Sparse Mixture-of-Experts (Sparse MoE) layers consist of a set of "expert" feed-forward networks and a routing gate. Taking Ling-3.0-flash in the article as an example, each layer has 512 routed experts, and each token selects the top-8 experts through the gating network for computation, plus one shared expert that is always activated. This design makes the per-token compute far smaller than a dense model with the same parameter count, but the cost is high memory usage—all expert weights must reside in memory or be quickly swapped in. During batch inference, the expert sets selected by different tokens may differ greatly, and the GPU needs to load weights and perform computation for each expert in the union. When the expert selections of tokens within a batch are highly dispersed, the actual number of experts touched approaches the theoretical upper bound, and the pressure on compute and memory bandwidth rises significantly; conversely, if the tokens are semantically similar and routing is concentrated, the union is smaller and efficiency is higher. This characteristic makes the performance of MoE models more complex in variable-length batch and speculative decoding scenarios.
Unique Expert Count: A Valuable Supplementary Metric
The core question raised in the original post is: besides the number of accepted tokens per round, should "the number of unique experts per layer" be used as a parallel metric?
From an engineering perspective, this proposal has practical significance. The number of accepted tokens characterizes output efficiency, while the number of unique experts characterizes the weight-touching cost during verification. Looking only at the former will overestimate the effective speedup in MoE scenarios—because a high acceptance rate may be accompanied by low overlap and a large expert union, and verification overhead quietly eats away part of the benefit.
Incorporating unique expert count into monitoring can help at two levels. The first is capacity planning: the size of the expert union directly relates to memory bandwidth pressure and communication volume under expert parallelism. The second is draft strategy tuning: if the unique expert count is consistently high, it indicates that token diversity within the draft window is too large, and it may be necessary to tighten the draft sampling temperature or adjust the draft length to make the verification batch more "homogeneous."
Interestingly, this metric needs to be counted per layer rather than globally averaged. The routing distributions of different MoE layers may differ greatly, and a global average would mask extreme union cases in certain layers—and those layers are often the real bottlenecks.
Can Profilers Directly Expose Expert Overlap?
The second question in the original post is more about the toolchain: is there a profiler that can directly expose expert overlap within the draft window, without having to infer it from tokens/sec?
Looking at the current public tool ecosystem, such fine-grained metrics are not part of standard output. Mainstream profilers usually report operator-level latency, memory usage, and kernel throughput, while "which experts were touched in this batch and what the overlap rate is" belongs to semantic information at the routing layer, requiring the framework to add extra instrumentation during scheduling.
There are two feasible approaches. One is to insert lightweight statistics into the routing module: record the set of expert IDs selected in the current batch for each MoE layer, and compute union counts and pairwise intersection statistics. The overhead of such instrumentation is very small, because the routing results are already on the computation graph—they are simply not exported. The other is to leverage existing scheduling logs from expert-parallel frameworks to reconstruct the expert activation distribution, but this depends on whether the specific implementation retains this information.
The problem with inferring from tokens/sec is that it conflates multiple variables: acceptance rate, overlap, kernel efficiency, and communication overhead are all compressed into a single throughput number, making it impossible to locate the bottleneck. For meaningful MoE speculative decoding tuning, observability at the routing layer is almost a necessity.
Expert Parallelism is a common strategy for distributed inference of large-scale MoE models: different experts are assigned to different GPUs, and each token is sent according to its routing result to the device holding the corresponding expert for computation, after which the results are aggregated back. This process involves all-to-all communication, and the communication volume is closely related to the expert distribution touched within the batch—the larger the expert union and the more dispersed the cross-device routing, the higher the communication overhead. Therefore, the "unique expert count" not only affects weight loading and computation on a single GPU but also directly relates to inter-GPU communication volume. Under expert-parallel configurations, statistics on the expert sets at the routing layer can help estimate inter-operator communication cost and provide a basis for batch scheduling and draft strategy. This is also one reason the article emphasizes per-layer counting of unique experts: the routing distribution of certain layers may be particularly dispersed and become a communication bottleneck.
Several Implications for Practitioners
First, when evaluating the speedup of MoE speculative decoding, both the number of accepted tokens and the number of unique experts should be reported, to avoid the optimistic bias of a single metric. Second, the length and sampling strategy of the draft window need to be traded off against expert overlap; a longer window is not necessarily more cost-effective. Third, at the toolchain level, it is worth investing a small amount of engineering effort to incorporate expert-set statistics at the routing layer into routine profiling—this is far more reliable than inferring afterward from throughput.
The value of this discussion lies in pointing out an easily overlooked blind spot in measurement: under sparse architectures, "how many tokens were verified" and "how much verification cost" are no longer the same thing. Bringing unique expert count onto the table is a pragmatic correction for MoE inference optimization.
One-line Summary
In MoE speculative decoding, verification cost depends on expert overlap, so unique expert count should be introduced as a supplementary metric.
Paragraph Summary
Using NVIDIA Ling-3.0-flash as an example, the article explores a measurement blind spot in speculative decoding under sparse MoE models: when verifying multiple draft tokens, because each token routes independently, the actual expert union touched may be far larger than the number of experts for a single token, so verification cost cannot be estimated simply linearly by token count. Under a batch-size-1 configuration, verifying 4 tokens costs about 2.26 ordinary decoding steps. The article points out that accepted token count only characterizes output efficiency, while unique expert count reflects the weight-touching cost during verification; the two should be monitored in parallel, and unique expert count should be counted per layer. On the toolchain side, mainstream profilers do not directly expose expert overlap, so lightweight statistics need to be inserted into the routing module. The article concludes by recommending that practitioners report both metrics, tune draft strategies for expert overlap, and incorporate routing-layer observability into routine profiling.
Related articles

Ollama Local Deployment Guide: Run Open-Source LLMs with Zero Experience
Ollama local deployment tutorial: what Ollama is, why choose it, how to download, install, and run open-source LLMs, and use its API for custom development. Beginner-friendly.

n8n: The 187K-Star Open-Source Automation Powerhouse That Turns Repetitive Work into Workflows
n8n is a 187K-star open-source visual workflow automation engine with 400+ nodes, Webhook/schedule/polling triggers, self-hosting for data security, and AI Agent support. Here's a guide to its core concepts, use cases, and pitfalls.

Self-Hosting n8n in Practice: Docker + PostgreSQL + Caddy Deployment Guide
A step-by-step guide to deploying a self-hosted n8n instance with Docker Compose, PostgreSQL, and Caddy automatic HTTPS, including env var pitfalls, Feishu alerting, and backup/upgrade/rollback tips.