You now have all the parts. A complete modern decoder-only Transformer block looks like this:
x ← x + MultiHeadAttention(RMSNorm(x))
x ← x + SwiGLU_FFN(RMSNorm(x))
x ← x + SwiGLU_FFN(RMSNorm(x))
That's it. Two sublayers, each preceded by a normalization and followed by a residual addition. Stack N copies, and you have the full Transformer body. The output of the last block goes through a final RMSNorm and the LM head (a projection back to vocab size, often weight-tied with the input embedding).
What changes between models
The block is remarkably stable across the major model families. What varies:
- Attention type: dense MHA / GQA / MQA / sliding-window / sparse.
- Position scheme: RoPE / ALiBi / iRoPE / Sandwich / yarn-scaled.
- Activation: GELU / SwiGLU / GeGLU.
- FFN: standard / Mixture-of-Experts replacing the FFN with a router + many experts.
- Normalization: LayerNorm / RMSNorm / DeepNorm (rare).
Once you can read this diagram, you can read essentially every modern model card. The 95% of the architecture that doesn't change is what you've now internalized.