Safe By Design AI

LlamaForCausalLM

LlamaForCausalLM at 32 layers and hidden size 4096. 11 published checkpoints share this shape.

Implementing it

How to read this sheet: method.

From GneissWeb.7B_ablation_model_on_350B_FineWeb.Edu.seed1

Also covers GneissWeb.7B_ablation_model_on_350B_FineWeb.Edu.seed2, GneissWeb.7B_ablation_model_on_350B_FineWeb.Edu.seed3, GneissWeb.7B_ablation_model_on_350B_FineWeb.seed1, GneissWeb.7B_ablation_model_on_350B_FineWeb.seed2, GneissWeb.7B_ablation_model_on_350B_FineWeb.seed3, GneissWeb.7B_ablation_model_on_350B_GneissWeb.seed1, GneissWeb.7B_ablation_model_on_350B_GneissWeb.seed2, GneissWeb.7B_ablation_model_on_350B_GneissWeb.seed3.

x = embed[ids]                    # [T, 4096]

for i in 0 .. 31:
    h = rmsnorm(x, layers[i].input_layernorm, eps=1e-05)
    q = h @ layers[i].self_attn.q_proj.T       # [T, 32*128]
    k = h @ layers[i].self_attn.k_proj.T       # [T, 32*128]
    v = h @ layers[i].self_attn.v_proj.T       # [T, 32*128]
    q, k = rope(q, k, theta=10000)
    a = softmax(q @ k.T / sqrt(128), mask=causal) @ v
    a = a @ layers[i].self_attn.o_proj.T
    x = x + a

    h = rmsnorm(x, layers[i].post_attention_layernorm)
    g = silu(h @ layers[i].mlp.gate_proj.T)           # [T, 10928]
    u =       h @ layers[i].mlp.up_proj.T
    y = (g * u) @ layers[i].mlp.down_proj.T
    x = x + y

x = rmsnorm(x, model.norm)
logits = x @ lm_head.T

Differs from the block above

The same arithmetic with these values changed. Everything not listed is as above.

checkpointFFN widthvocabularycontext
granite-7b-instruct11,00832,0084,096
granite-7b-base11,00832,0004,096

Notes

head_dim is not published; 4096 / 32 = 128 is used.

Geometry

layers32
hidden size4,096
attention heads32
feed-forward width10,928 (9) / 11,008 (2) — by checkpoint in the list below
vocabulary49,152 (9) / 32,008 (1) / 32,000 (1) — by checkpoint in the list below
trained context8,192 tokens (9) / 4,096 tokens (2) — by checkpoint in the list below
largest checkpoint6.8B

Weight structure

The tensors one element of the repeating stack holds, by the names the published checkpoint uses.

repeating stackdepthwhat one element holds
model.layers.#32input_layernorm.weight, mlp.down_proj.weight, mlp.gate_proj.weight, mlp.up_proj.weight, post_attention_layernorm.weight, self_attn.k_proj.weight, self_attn.o_proj.weight, self_attn.q_proj.weight, self_attn.v_proj.weight

Other shapes of LlamaForCausalLM

Identical across all of them: heads 32.

Only the columns that differ are shown; a cell with several values means the checkpoints of that shape disagree.

shapelayerswidthKV headsFFN widthvocabularycontextcheckpoints
36L x 4,096364,096814,33649,1524,096 / 128,0004
32L x 4,096 (this sheet)324,0963210,928 / 11,00832,000 / 32,008 / 49,1524,096 / 8,19211
32L x 2,560322,5603210,24049,1522,048 / 128,0004

How this was checked

Status and evidence grade in the assessment (see what the grades mean):

Parts of the author's unpublished implementation that exist for this shape:

Checkpoints with this architecture

modelparameterscontextFFN widthvocabulary
GneissWeb.7B_ablation_model_on_350B_FineWeb.Edu.seed16.8B8,19210,92849,152
GneissWeb.7B_ablation_model_on_350B_FineWeb.Edu.seed26.8B8,19210,92849,152
GneissWeb.7B_ablation_model_on_350B_FineWeb.Edu.seed36.8B8,19210,92849,152
GneissWeb.7B_ablation_model_on_350B_FineWeb.seed16.8B8,19210,92849,152
GneissWeb.7B_ablation_model_on_350B_FineWeb.seed26.8B8,19210,92849,152
GneissWeb.7B_ablation_model_on_350B_FineWeb.seed36.8B8,19210,92849,152
GneissWeb.7B_ablation_model_on_350B_GneissWeb.seed16.8B8,19210,92849,152
GneissWeb.7B_ablation_model_on_350B_GneissWeb.seed26.8B8,19210,92849,152
GneissWeb.7B_ablation_model_on_350B_GneissWeb.seed36.8B8,19210,92849,152
granite-7b-instruct6.7B4,09611,00832,008
granite-7b-base6.7B4,09611,00832,000

Recorded pass: passes.