GGML tensors are always four dimensional. For example:

1D vector of length 8:    ne = {8, 1, 1, 1}
2D matrix 3×4:            ne = {4, 3, 1, 1}
3D (batch, H, W) = 2,3,4: ne = {4, 3, 2, 1}

The dimensions are always ordered as follows:

{l, k, j, i}

Where they are indexed C-style like:

x[i][j][k][l]

In the context of matrices:

{columns, rows, stacks, batches}

Or in the context of activations in a transformer:

{d_head_kv, n_tokens, n_head_kv, batch}