Views
No views yet
moonshotai/Kimi-K2-Instruct, built by the Divinci-AI team for feature-routing inference research.moonshotai/Kimi-K2-Instructkimi_k2 (61 layers, 7168 hidden, 2048 moe_intermediate)gate_proj)gate_vectors.bin — flat float32 binary, layout [moe_layers, n_experts, num_feats, hidden_size]. Each per-expert chunk is the top-64 right singular vectors (Vt[:K, :]) of that expert's gate_proj weight after fp8/MXFP4 dequantization.gate_vectors_index.json — sidecar with per-layer file_offset (bytes), shape, and SVD stats (median_var64, q25_var64, q75_var64). Lookup table for mmap.phase1_moe_svd.json — full per-layer Phase 1 stats (routed/shared/router decomposition).phase2_router_svd.json — router weight SVD per layer (top-K variance, effective rank, s0/s1 ratio).gate_proj, with the singular values not retained. Reconstruction is lossy.1import numpy as np
2
3# Memory-map the binary
4arr = np.memmap("gate_vectors.bin", dtype=np.float32, mode="r")
5
6import json
7idx = json.load(open("gate_vectors_index.json"))
8moe = idx["model_config"]["moe"]
9n_experts = moe["n_routed_experts"]
10n_feats = idx["num_feats"]
11hidden = moe["hidden_size"]
12
13# Get layer L's experts
14def get_layer(L):
15 meta = idx["layers"][str(L)]
16 offset = meta["file_offset"] // 4 # bytes → float32 elements
17 n = n_experts * n_feats * hidden
18 return arr[offset:offset+n].reshape(n_experts, n_feats, hidden)
19
20V_L1 = get_layer(1) # shape (n_experts, n_feats, hidden)
21print("L1 expert 0 top vector L2 norm:", np.linalg.norm(V_L1[0, 0])) # ≈ 1.01@misc{divinci_kimi_k2_instruct_vindex_2026,
2 title = {kimi-k2-instruct-vindex: per-expert gate-vector vindex for moonshotai/Kimi-K2-Instruct},
3 author = {Divinci-AI},
4 year = {2026},
5 url = {https://huggingface.co/Divinci-AI/kimi-k2-instruct-vindex},
6}moe_vindex_builder.py.