Safe By Design AI

LlamaForCausalLM

LlamaForCausalLM at 36 layers and hidden size 4096. 4 published checkpoints share this shape.

Implementing it

How to read this sheet: method.

From granite-8b-code-base-128k

Also covers granite-8b-code-instruct-128k.

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

for i in 0 .. 35:
    h = rmsnorm(x, layers[i].input_layernorm, eps=1e-05)
    q = h @ layers[i].self_attn.q_proj.T + bias       # [T, 32*128]
    k = h @ layers[i].self_attn.k_proj.T + bias       # [T, 8*128]
    v = h @ layers[i].self_attn.v_proj.T + bias       # [T, 8*128]
    # `attention_bias: true` puts a bias on all four attention
    #   projections, o_proj included (see Notes).
    q, k = rope(q, k, theta=10000000)
    k, v = repeat_kv(k, v, 4)            # 32 query heads share 8 key/value heads
    a = softmax(q @ k.T / sqrt(128), mask=causal) @ v
    a = a @ layers[i].self_attn.o_proj.T + bias
    x = x + a

    h = rmsnorm(x, layers[i].post_attention_layernorm)
    g = silu(h @ layers[i].mlp.gate_proj.T + ...bias)           # [T, 14336]
    u =       h @ layers[i].mlp.up_proj.T + ...bias
    y = (g * u) @ layers[i].mlp.down_proj.T + ...bias
    # `mlp_bias: true` — three more bias tensors, one per projection.
    x = x + y

x = rmsnorm(x, model.norm)
logits = x @ embed.T        # tied to the input embedding

Differs from the block above

The same arithmetic with this value changed. Everything not listed is as above.

checkpointrope thetacontext
granite-8b-code-base-4k, granite-8b-code-instruct-4k10,0004,096

Notes

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

In transformers' LlamaAttention at v4.57.1, attention_bias sets the bias on q, k, v and o_proj (L210-L221), and mlp_bias on all three MLP projections (L149-L151); the checkpoint ships all seven bias tensors. Qwen2 has no such flag: it hard-codes a bias on q, k and v and none on o_proj (modeling_qwen2.py L134-L137), so a port that borrows Qwen2's attention drops o_proj.bias.

Geometry

layers36
hidden size4,096
attention heads32, 8 key/value
feed-forward width14,336
vocabulary49,152
trained context128,000 tokens (granite-8b-code-base-128k, granite-8b-code-instruct-128k); 4,096 tokens (granite-8b-code-base-4k, granite-8b-code-instruct-4k)
largest checkpoint8.1B

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.#36input_layernorm.weight, mlp.down_proj.bias, mlp.down_proj.weight, mlp.gate_proj.bias, mlp.gate_proj.weight, mlp.up_proj.bias, mlp.up_proj.weight, post_attention_layernorm.weight, self_attn.k_proj.bias, self_attn.k_proj.weight, self_attn.o_proj.bias, self_attn.o_proj.weight, self_attn.q_proj.bias, self_attn.q_proj.weight, self_attn.v_proj.bias, 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,096 (this sheet)364,096814,33649,1524,096 / 128,0004
32L x 4,096324,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

modelparameterscontext
granite-8b-code-base-128k8.1B128,000
granite-8b-code-base-4k8.1B4,096
granite-8b-code-instruct-128k8.1B128,000
granite-8b-code-instruct-4k8.1B4,096

Recorded pass: passes.