A good technical LLM interview question:
You replace a dense feed-forward layer with a top-2 MoE.
The profiler confirms that the MoE executes fewer FLOPs per token.
However, end-to-end inference latency has increased instead of decreasing.
Why did this happen?
(answer below)
A standard Transformer applies the same feed-forward network to every token in a layer.
An MoE layer replaces that network with multiple experts. Each expert is a feed-forward network with its own weights.
A router reads each token's hidden-state vector, scores the available experts, and selects the top two. It also produces a routing weight for each selection.
Only those selected experts process the token. The model therefore contains many expert weights while executing only a small subset for each token.
The serving system must move activations when the selected experts are stored on different GPUs.
The visual follows a batch that begins on GPU 0.
The router returns two expert IDs and two routing weights per token. One selected path is shown for each example token to keep the diagram readable.
Token T1 selects E1 on GPU 0. Its activation remains in local GPU memory, where E1 processes it.
T2 selects E4 on GPU 1 in the same server. GPU 0 transfers the activation through NVLink, a high-bandwidth GPU-to-GPU connection. NVSwitch connects several GPUs through this fabric.
T3 selects E7 on GPU 2 in another server. Its activation crosses the cluster network through InfiniBand or Ethernet.
To be clear, the system transfers activation vectors, which are the numerical representations produced for a token by the preceding Transformer operations.
Each destination GPU runs its expert and returns the output to GPU 0.
GPU 0 multiplies both selected expert outputs by their routing weights, adds them together, and restores the original token order.
Different tokens can select different expert pairs. Across a batch, those assignments may involve every GPU storing experts.
Each GPU may therefore send activations to several GPUs while receiving activations for its own experts. This exchange is called all-to-all communication.
And there are several ways to optimize this.
For instance, keeping frequently selected experts within the same server reduces remote traffic.
Balanced routing prevents one GPU from delaying the layer.
Communication overlap allows local expert computation to continue while remote activations move.
In this setup, sparse routing reduces expert FLOPs, but token dispatch and network communication erase part of that saving.
If you want to dive deeper, I recently covered MoE inference engineering, including routing, expert placement, token dispatch, load balancing, communication overlap, memory, quantization, and offloading.
Read my article below.
New M6/A20 ANE can autodetect sparsity (zeros) in weights AND activations + Winograd Sparsity for vision:
Measured on a 256-layer conv512 FP8 chain:
Dense: 56 -60 TFLOPS
75% zero activations (3:1): 71.8 TFLOPS
75% zero weights: 91 TFLOPS
joint ~50% act + 75% weight: 96 TFLOPS
Activation gains flatten near ~72 past ~75% zeros.
No sparse pack format, zeros in the tensor are enough.
Test code:
https://t.co/MQqjzN8mHM
Sam Altman, CEO de OpenAI:
"Ya no hace falta escribir prompts."
En 38 minutos explica cómo usar ChatGPT a un nivel que la mayoría ni se imagina.
Es una charla que dio a estudiantes de Stanford. Un amigo me pasó la grabación anoche.
Cuando terminé de verla me di cuenta de que solo le estaba sacando como un 15% de lo que puede hacer.
NVIDIA and Stanford just challenged Jev.
(their new System 1 architecture runs up to 9x faster.)
It is called a Contrastive Language Model, or CLM.
Like Jev, CLM is not designed to generate text. It handles the small, repeated decisions inside AI systems, such as choosing a tool, ranking a patch, routing a request, or selecting the next action.
But CLM reaches those decisions differently.
Instead of generating an answer token by token, it treats decision-making as a retrieval problem.
Here is how it works.
1) Encode the state
CLM takes the current situation, such as an agent’s context or the state of a game, and converts it into a vector.
It uses a frozen Qwen3-8B model with a small trainable state projection head.
2) Encode every possible action
A separate action head converts each candidate into the same vector space.
In the Mario example, the candidates are left, jump, and right run. CLM does not invent a fourth option. It only evaluates the actions supplied by the application.
3) Learn which states and actions belong together
During training, the correct state-action pair is pulled closer while incorrect pairs are pushed apart.
A batch of B examples produces a B × B similarity matrix. The matching pairs sit on the diagonal. Every other pairing becomes a negative example.
This contrastive training uses InfoNCE, the same general mechanism behind systems such as CLIP and dense retrieval.
4) Turn similarity into a decision
At inference, CLM measures the cosine similarity between the state and every candidate action.
A softmax converts those scores into a probability distribution. The application can choose the winner, apply a confidence threshold, or escalate an uncertain result.
The real speed advantage comes from separating states and actions.
Actions can be embedded once and cached. If an agent repeatedly chooses between the same tools, CLM only needs to encode the changing state and compare it with stored action vectors.
That replaces repeated generation with one embedding pass and a set of cheap dot products.
The researchers report that CLM-8B matches Jev across computer-use, gaming, and tool-calling evaluations while reaching up to 9x lower latency. The improvement is largest when actions repeat or the candidate set grows.
CLM still has limits. It cannot generate new actions, its probabilities are relative to the supplied candidates, and its strongest verifier results require task-specific fine-tuning.
But its central idea is powerful.
The entire research is open-source, including the code.
Read more here: https://t.co/I9kPwMPI7B
When software already knows the possible answers, an AI model should score them instead of generating more words.
I also wrote a full breakdown on how system one models like Jev work.
The article is quoted below.
Google lanzó la herramienta que todo desarrollador pedía desde hace años.
Se llama CodeWiki.
Pegas cualquier repositorio y la IA lo convierte automáticamente en una documentación interactiva.
No solo resume el código:
• Genera diagramas automáticamente
• Explica cómo funciona cada parte
• Crea tutoriales paso a paso
• Detecta arquitectura y dependencias
• Y hasta monta un chatbot que entiende tu código completo
Básicamente:
convierte proyectos imposibles de entender en algo que cualquier desarrollador puede navegar en minutos.
Enlace abajo👇
Djev-Spark (GitHub) figured out how to make DiffusionGemma 26B-A4B behave like Jev. They pre-built structures answer, leaving only the decision slots open, then read the model’s probabilities instead of generating JSON token by token
This runs locally with NVFP4 w/a patched vLLM structured-read engine and exposes a Jev-compatible endpoint.
Runs in GB10 only for now. DiffusionGemma is FAST!
DiffusionGemma-Jev now runs on vLLM 🚀
Ask yes/no, multiple-choice, or scored questions and get confidence with every answer. vLLM seeds a canvas with the response template, leaves only the answer slots noisy, then reads a probability distribution from every slot in a single denoising step.
Huge thanks to @mmastrac for driving this upstream! 🙏
https://t.co/HJJz0Q2KYe
🚀New blog: Accelerating Long-Context and Agentic Inference with NVFP4 KV Cache
4-bit KV cache is here! NVFP4 KV in SGLang packs ~1.78× more context into GPU memory and speeds up long-context decode by up to 78%.
Together with @Alibaba_Qwen and @nvidia, we brought NVFP4 KV cache to Blackwell:
- NVFP4 stores KV in just ~56% of FP8's footprint per token
-️ Decode throughput jumps +37% / +58% / +78% at 32K / 160K / 1M context
- Near-lossless accuracy: matches FP8 on GPQA-Diamond & AIME 2025 (Qwen3.5-397B-A17B)
- Higher cache hit rate keeps AgentX throughput scaling where FP8 drops off
The whole recipe combines NVFP4 two-level scaling, in-kernel dequantization on decode, and paged KV cache, and you can enable it in SGLang with a single flag --kv-cache-dtype nvfp4