inspector / examples /01-structure.jsonc
lysandre's picture
lysandre HF Staff
Deploy architecture inspector
3335a58 verified
Raw
History Blame Contribute Delete
6.43 kB
// 01 — structure: components, edges, dataflow + per-node facts (the annotated diagram).
// Trimmed mistral (real values); "…" marks omitted repetition. Tiers 0204 add to this.
{
"schema_version": "architecture-template-v0",
"model_type": "mistral",
"architecture": {
"view": "decoder",
"family": "causal_lm",
"attention_variant": "GQA",
"positional": "rope",
"is_moe": false,
"mixer": "attention",
"sliding_window": 4096,
"tie_word_embeddings": false
},
"config": {
"class_name": "MistralConfig",
"module": "transformers.models.mistral.configuration_mistral",
"model_type": "mistral",
"referenced_fields": {
"num_hidden_layers": 32
},
"salient_fields": {
"hidden_size": 4096,
"intermediate_size": 14336,
"num_attention_heads": 32,
"num_key_value_heads": 8,
"head_dim": 128,
"vocab_size": 32000,
"sliding_window": 4096
}
},
"components": [
{
"id": "model",
"kind": "model",
"class_name": "MistralModel",
"path_pattern": "model",
"children": [
"embed_tokens",
"decoder_layers",
"norm",
"rotary_emb"
]
},
// "decoder_layers" is the repeat id
{
"id": "embed_tokens",
"kind": "embedding",
"class_name": "Embedding",
"path_pattern": "model.embed_tokens",
"attributes": {
"num_embeddings": "config.vocab_size",
"embedding_dim": "config.hidden_size"
}
},
{
"id": "norm",
"kind": "normalization",
"class_name": "MistralRMSNorm",
"path_pattern": "model.norm",
"attributes": {
"norm_type": "rms",
"kernel": "RMSNorm"
}
},
{
"id": "rotary_emb",
"kind": "position",
"class_name": "MistralRotaryEmbedding",
"path_pattern": "model.rotary_emb",
"attributes": {
"scheme": "rope",
"rope_theta": 10000.0,
"head_dim": "config.head_dim"
}
}
],
"templates": [
{
"id": "decoder_layer",
"kind": "transformer_block",
"class_name": "MistralDecoderLayer",
"path_pattern": "model.layers.{i}",
// {i} = layer index
"children": [
"decoder_layer.input_layernorm",
"decoder_layer.self_attn",
"decoder_layer.post_attention_layernorm",
"decoder_layer.mlp"
]
},
{
"id": "decoder_layer.self_attn",
"kind": "attention",
"class_name": "MistralAttention",
"path_pattern": "model.layers.{i}.self_attn",
"children": [
"decoder_layer.self_attn.q_proj",
"decoder_layer.self_attn.o_proj"
],
// … k_proj, v_proj
"attributes": {
"variant": "GQA",
"n_heads": 32,
"n_kv_heads": 8,
"head_dim": 128,
"rope": true,
"sliding_window": 4096,
"pattern": "sliding"
}
},
{
"id": "decoder_layer.self_attn.q_proj",
"kind": "projection",
"class_name": "Linear",
"path_pattern": "model.layers.{i}.self_attn.q_proj",
"attributes": {
"in_features": "config.hidden_size",
"out_features": 4096,
"tp": "colwise"
}
},
{
"id": "decoder_layer.mlp",
"kind": "feed_forward",
"class_name": "MistralMLP",
"path_pattern": "model.layers.{i}.mlp",
"children": [
"decoder_layer.mlp.gate_proj",
"decoder_layer.mlp.up_proj",
"decoder_layer.mlp.down_proj"
],
"attributes": {
"hidden_size": 4096,
"intermediate_size": 14336,
"activation": "silu"
}
},
{
"id": "decoder_layer.input_layernorm",
"kind": "normalization",
"class_name": "MistralRMSNorm",
"path_pattern": "model.layers.{i}.input_layernorm",
"attributes": {
"norm_type": "rms",
"kernel": "RMSNorm"
}
}
// … post_attention_layernorm, and the k/v/o + gate/up/down projection nodes
],
"repeats": [
{
"id": "decoder_layers",
"kind": "symbolic_repeat",
"body": "decoder_layer",
"count_expr": "config.num_hidden_layers",
"count": 32,
"count_source": "config",
"index_symbol": "i",
"container_path_pattern": "model.layers",
"item_path_pattern": "model.layers.{i}",
"repeated_class_name": "MistralDecoderLayer"
}
// 32 identical layers → one symbolic entry
],
"edges": [
{
"source": "embed_tokens",
"target": "decoder_layers",
"kind": "data"
},
{
"source": "decoder_layers",
"target": "norm",
"kind": "data"
},
{
"source": "decoder_layer.input_layernorm",
"target": "decoder_layer.self_attn",
"kind": "data",
"provenance": "observed_forward"
},
{
"source": "decoder_layer",
"target": "decoder_layer.self_attn",
"kind": "residual"
},
{
"source": "rotary_emb",
"target": "decoder_layer.self_attn",
"kind": "position"
},
{
"source": "input:attention_mask",
"target": "decoder_layer.self_attn",
"kind": "mask"
},
{
"source": "state:kv_cache",
"target": "decoder_layer.self_attn",
"kind": "cache_read"
}
// … kinds: data | residual | mask | position | cross_attention | route | cache_read | cache_write
],
"dataflow": {
"source": "observed_forward_meta",
"input": {
"name": "input_ids",
"shape": [
"B",
"S"
]
},
// B=batch, S=sequence
"output": {
"shape": [
"B",
"S",
"config.hidden_size"
]
},
"shapes": {
// per-node observed shapes (symbolized); node ORDER lives in edges
"embed_tokens": {
"in": [
"B",
"S"
],
"out": [
"B",
"S",
"config.hidden_size"
]
},
"decoder_layer.self_attn": {
"in": [
"B",
"S",
"config.hidden_size"
],
"out": [
"B",
"S",
"config.hidden_size"
]
}
}
},
"provenance": {
"config_class": "MistralConfig",
"config_module": "transformers.models.mistral.configuration_mistral",
"model_class": "MistralModel",
"model_module": "transformers.models.mistral.modeling_mistral"
}
}