llm-architectures-explained

/models

GPT-3 175B

OpenAI · GPT-3 · closed weights

Facts and where they come from

Released2020-05paperpaperarXiv v1, May 2020
Licenceproprietarylabpaperweights not published
Total parameters175BpaperpaperTable 2.1: GPT-3 175B, 175.0B parameters
Active parametersnot disclosednot disclosed
Context length2K tokenspaperpaper§2.1: context window n_ctx = 2048
Norm placementprecodemodelling codetransformers 5.18.0 gpt2: ln_1 before attention, ln_2 before the MLP
Norm typeLayerNormcodemodelling codetransformers 5.18.0 gpt2: ln_1 before attention, ln_2 before the MLP
QK-normnocodemodelling codeno q/k normalisation in the attention block
Positional encodinglearned absolutepaperpaper§2.1: same architecture as GPT-2 (learned positions)
Parallel attention and MLPnocodemodelling codetransformers 5.18.0 gpt2: ln_1 before attention, ln_2 before the MLP

Architecture, drawn from the data

MHA 96q/96kv. Each column is one layer: its token mixer above, its feed-forward block below. Paler columns reuse another layer’s keys and values.

GPT-3 175B: layer stack and blockslayers (96)mixer / FFNlayer 0: MHA: 96 query / 96 KV heads · head 128layer 0: MLP: 49152layer 1: MHA: 96 query / 96 KV heads · head 128layer 1: MLP: 49152layer 2: MHA: 96 query / 96 KV heads · head 128layer 2: MLP: 49152layer 3: MHA: 96 query / 96 KV heads · head 128layer 3: MLP: 49152layer 4: MHA: 96 query / 96 KV heads · head 128layer 4: MLP: 49152layer 5: MHA: 96 query / 96 KV heads · head 128layer 5: MLP: 49152layer 6: MHA: 96 query / 96 KV heads · head 128layer 6: MLP: 49152layer 7: MHA: 96 query / 96 KV heads · head 128layer 7: MLP: 49152layer 8: MHA: 96 query / 96 KV heads · head 128layer 8: MLP: 49152layer 9: MHA: 96 query / 96 KV heads · head 128layer 9: MLP: 49152layer 10: MHA: 96 query / 96 KV heads · head 128layer 10: MLP: 49152layer 11: MHA: 96 query / 96 KV heads · head 128layer 11: MLP: 49152layer 12: MHA: 96 query / 96 KV heads · head 128layer 12: MLP: 49152layer 13: MHA: 96 query / 96 KV heads · head 128layer 13: MLP: 49152layer 14: MHA: 96 query / 96 KV heads · head 128layer 14: MLP: 49152layer 15: MHA: 96 query / 96 KV heads · head 128layer 15: MLP: 49152layer 16: MHA: 96 query / 96 KV heads · head 128layer 16: MLP: 49152layer 17: MHA: 96 query / 96 KV heads · head 128layer 17: MLP: 49152layer 18: MHA: 96 query / 96 KV heads · head 128layer 18: MLP: 49152layer 19: MHA: 96 query / 96 KV heads · head 128layer 19: MLP: 49152layer 20: MHA: 96 query / 96 KV heads · head 128layer 20: MLP: 49152layer 21: MHA: 96 query / 96 KV heads · head 128layer 21: MLP: 49152layer 22: MHA: 96 query / 96 KV heads · head 128layer 22: MLP: 49152layer 23: MHA: 96 query / 96 KV heads · head 128layer 23: MLP: 49152layer 24: MHA: 96 query / 96 KV heads · head 128layer 24: MLP: 49152layer 25: MHA: 96 query / 96 KV heads · head 128layer 25: MLP: 49152layer 26: MHA: 96 query / 96 KV heads · head 128layer 26: MLP: 49152layer 27: MHA: 96 query / 96 KV heads · head 128layer 27: MLP: 49152layer 28: MHA: 96 query / 96 KV heads · head 128layer 28: MLP: 49152layer 29: MHA: 96 query / 96 KV heads · head 128layer 29: MLP: 49152layer 30: MHA: 96 query / 96 KV heads · head 128layer 30: MLP: 49152layer 31: MHA: 96 query / 96 KV heads · head 128layer 31: MLP: 49152layer 32: MHA: 96 query / 96 KV heads · head 128layer 32: MLP: 49152layer 33: MHA: 96 query / 96 KV heads · head 128layer 33: MLP: 49152layer 34: MHA: 96 query / 96 KV heads · head 128layer 34: MLP: 49152layer 35: MHA: 96 query / 96 KV heads · head 128layer 35: MLP: 49152layer 36: MHA: 96 query / 96 KV heads · head 128layer 36: MLP: 49152layer 37: MHA: 96 query / 96 KV heads · head 128layer 37: MLP: 49152layer 38: MHA: 96 query / 96 KV heads · head 128layer 38: MLP: 49152layer 39: MHA: 96 query / 96 KV heads · head 128layer 39: MLP: 49152layer 40: MHA: 96 query / 96 KV heads · head 128layer 40: MLP: 49152layer 41: MHA: 96 query / 96 KV heads · head 128layer 41: MLP: 49152layer 42: MHA: 96 query / 96 KV heads · head 128layer 42: MLP: 49152layer 43: MHA: 96 query / 96 KV heads · head 128layer 43: MLP: 49152layer 44: MHA: 96 query / 96 KV heads · head 128layer 44: MLP: 49152layer 45: MHA: 96 query / 96 KV heads · head 128layer 45: MLP: 49152layer 46: MHA: 96 query / 96 KV heads · head 128layer 46: MLP: 49152layer 47: MHA: 96 query / 96 KV heads · head 128layer 47: MLP: 49152layer 48: MHA: 96 query / 96 KV heads · head 128layer 48: MLP: 49152layer 49: MHA: 96 query / 96 KV heads · head 128layer 49: MLP: 49152layer 50: MHA: 96 query / 96 KV heads · head 128layer 50: MLP: 49152layer 51: MHA: 96 query / 96 KV heads · head 128layer 51: MLP: 49152layer 52: MHA: 96 query / 96 KV heads · head 128layer 52: MLP: 49152layer 53: MHA: 96 query / 96 KV heads · head 128layer 53: MLP: 49152layer 54: MHA: 96 query / 96 KV heads · head 128layer 54: MLP: 49152layer 55: MHA: 96 query / 96 KV heads · head 128layer 55: MLP: 49152layer 56: MHA: 96 query / 96 KV heads · head 128layer 56: MLP: 49152layer 57: MHA: 96 query / 96 KV heads · head 128layer 57: MLP: 49152layer 58: MHA: 96 query / 96 KV heads · head 128layer 58: MLP: 49152layer 59: MHA: 96 query / 96 KV heads · head 128layer 59: MLP: 49152layer 60: MHA: 96 query / 96 KV heads · head 128layer 60: MLP: 49152layer 61: MHA: 96 query / 96 KV heads · head 128layer 61: MLP: 49152layer 62: MHA: 96 query / 96 KV heads · head 128layer 62: MLP: 49152layer 63: MHA: 96 query / 96 KV heads · head 128layer 63: MLP: 49152layer 64: MHA: 96 query / 96 KV heads · head 128layer 64: MLP: 49152layer 65: MHA: 96 query / 96 KV heads · head 128layer 65: MLP: 49152layer 66: MHA: 96 query / 96 KV heads · head 128layer 66: MLP: 49152layer 67: MHA: 96 query / 96 KV heads · head 128layer 67: MLP: 49152layer 68: MHA: 96 query / 96 KV heads · head 128layer 68: MLP: 49152layer 69: MHA: 96 query / 96 KV heads · head 128layer 69: MLP: 49152layer 70: MHA: 96 query / 96 KV heads · head 128layer 70: MLP: 49152layer 71: MHA: 96 query / 96 KV heads · head 128layer 71: MLP: 49152layer 72: MHA: 96 query / 96 KV heads · head 128layer 72: MLP: 49152layer 73: MHA: 96 query / 96 KV heads · head 128layer 73: MLP: 49152layer 74: MHA: 96 query / 96 KV heads · head 128layer 74: MLP: 49152layer 75: MHA: 96 query / 96 KV heads · head 128layer 75: MLP: 49152layer 76: MHA: 96 query / 96 KV heads · head 128layer 76: MLP: 49152layer 77: MHA: 96 query / 96 KV heads · head 128layer 77: MLP: 49152layer 78: MHA: 96 query / 96 KV heads · head 128layer 78: MLP: 49152layer 79: MHA: 96 query / 96 KV heads · head 128layer 79: MLP: 49152layer 80: MHA: 96 query / 96 KV heads · head 128layer 80: MLP: 49152layer 81: MHA: 96 query / 96 KV heads · head 128layer 81: MLP: 49152layer 82: MHA: 96 query / 96 KV heads · head 128layer 82: MLP: 49152layer 83: MHA: 96 query / 96 KV heads · head 128layer 83: MLP: 49152layer 84: MHA: 96 query / 96 KV heads · head 128layer 84: MLP: 49152layer 85: MHA: 96 query / 96 KV heads · head 128layer 85: MLP: 49152layer 86: MHA: 96 query / 96 KV heads · head 128layer 86: MLP: 49152layer 87: MHA: 96 query / 96 KV heads · head 128layer 87: MLP: 49152layer 88: MHA: 96 query / 96 KV heads · head 128layer 88: MLP: 49152layer 89: MHA: 96 query / 96 KV heads · head 128layer 89: MLP: 49152layer 90: MHA: 96 query / 96 KV heads · head 128layer 90: MLP: 49152layer 91: MHA: 96 query / 96 KV heads · head 128layer 91: MLP: 49152layer 92: MHA: 96 query / 96 KV heads · head 128layer 92: MLP: 49152layer 93: MHA: 96 query / 96 KV heads · head 128layer 93: MLP: 49152layer 94: MHA: 96 query / 96 KV heads · head 128layer 94: MLP: 49152layer 95: MHA: 96 query / 96 KV heads · head 128layer 95: MLP: 4915204895× 96normMHA: 96 query / 96 KV heads · head 128+normMLP: 49152+full attentiondense FFN

Modelled costs

From the cost model, batch size 1. Totals the lab states are in the table above; differences come from rounding, from what a lab counts, or from parts the model does not describe (listed on the about page).

Parameters (modelled)175B
Active per token (modelled)175B
Without embeddings and output head174B total, 174B active
KV cache per token, BF16 (layers that grow with context)4.5 MiB
KV cache + state at 2K tokens, BF169 GiB
Decode FLOPs per token at 4K context368 GFLOP
Prefill FLOPs for a 4K prompt1.46 PFLOP

KV cache against context

GPT-3 175B: KV cache bytes against context length101001,0009.5 MiB95 MiB950 MiB9.3 GiBcontext (tokens)KV cache + state (BF16)GPT-3 175B

Compare with other models →

Every architecture field

FieldValueSource
d_model12,288paperpaperTable 2.1: d_model 12288
vocab50,257paperpaper§2.1: same model and architecture as GPT-2; GPT-2 BPE vocabulary of 50,257 (openai-community/gpt2-xl config)
tied_embeddingstruecodemodelling codetransformers 5.18.0 gpt2: lm_head tied to wte
mixers.full.typeattncodemodelling codeattention block
mixers.full.heads96paperpaperTable 2.1: n_heads 96 (d_head 128)
mixers.full.kv_heads96paperpaperTable 2.1: n_heads 96 (d_head 128)
mixers.full.head_dim128codemodelling codetransformers 5.18.0: head_dim = hidden_size / n_head
mixers.full.biastruecodemodelling codec_attn/c_proj have biases
ffns.dense.typedensecodemodelling codeMLP
ffns.dense.d_ff49,152codemodelling codetransformers 5.18.0 gpt2: n_inner defaults to 4 * n_embd
ffns.dense.gatedfalsecodemodelling codeGELU MLP, two matrices
ffns.dense.biastruecodemodelling codeMLP biases
layout96× full/densepaperpaperTable 2.1: n_layers 96
extra_embedding_params25,165,824codemodelling codelearned position embeddings: n_positions x n_embd

Sources