{ "architecture": { "attention_variant": "MHA", "family": "causal_lm", "is_moe": false, "mixer": "attention", "tie_word_embeddings": true, "view": "decoder" }, "capabilities": { "attention_backends": [ "eager" ], "attention_patterns": [ "causal" ], "attention_schedule": null, "task_heads": [ "causal_lm", "pretraining", "question_answering", "sequence_classification", "token_classification" ], "tensor_parallel": false }, "components": [ { "children": [ "word_embeddings", "word_embeddings_layernorm", "blocks", "ln_f" ], "class_name": "BloomModel", "id": "model", "kind": "model", "path_pattern": "model" }, { "attributes": { "embedding_dim": "config.hidden_size", "num_embeddings": "config.vocab_size", "tied_lm_head": true }, "class_name": "Embedding", "id": "word_embeddings", "kind": "embedding", "path_pattern": "model.word_embeddings" }, { "attributes": { "norm_type": "layer" }, "class_name": "LayerNorm", "id": "word_embeddings_layernorm", "kind": "normalization", "path_pattern": "model.word_embeddings_layernorm" }, { "attributes": { "norm_type": "layer" }, "class_name": "LayerNorm", "id": "ln_f", "kind": "normalization", "path_pattern": "model.ln_f" } ], "config": { "class_name": "BloomConfig", "model_type": "bloom", "module": "transformers.models.bloom.configuration_bloom", "referenced_fields": {}, "salient_fields": { "hidden_size": 64, "is_encoder_decoder": false, "num_attention_heads": 8, "num_hidden_layers": 2, "tie_word_embeddings": true, "vocab_size": 250880 } }, "dataflow": { "input": { "name": "input_ids", "shape": [ "B", "S" ] }, "output": { "shape": [ "B", "S", "config.hidden_size" ] }, "shapes": { "block.input_layernorm": { "in": [ "B", "S", "config.hidden_size" ], "out": [ "B", "S", "config.hidden_size" ] }, "block.mlp": { "in": [ "B", "S", "config.hidden_size" ], "out": [ "B", "S", "config.hidden_size" ] }, "block.post_attention_layernorm": { "in": [ "B", "S", "config.hidden_size" ], "out": [ "B", "S", "config.hidden_size" ] }, "block.self_attention": { "in": [ "B", "S", "config.hidden_size" ], "out": [ "B", "S", "config.hidden_size" ] }, "blocks": { "in": [ "B", "S", "config.hidden_size" ], "out": [ "B", "S", "config.hidden_size" ] }, "ln_f": { "in": [ "B", "S", "config.hidden_size" ], "out": [ "B", "S", "config.hidden_size" ] }, "word_embeddings": { "in": [ "B", "S" ], "out": [ "B", "S", "config.hidden_size" ] }, "word_embeddings_layernorm": { "in": [ "B", "S", "config.hidden_size" ], "out": [ "B", "S", "config.hidden_size" ] } }, "source": "observed_forward_meta" }, "edges": [ { "kind": "data", "source": "word_embeddings", "target": "word_embeddings_layernorm" }, { "kind": "data", "source": "word_embeddings_layernorm", "target": "blocks" }, { "kind": "data", "source": "blocks", "target": "ln_f" }, { "kind": "mask", "source": "input:attention_mask", "target": "block.self_attention" }, { "kind": "residual", "source": "block", "target": "block.self_attention" }, { "kind": "residual", "source": "block", "target": "block.mlp" }, { "kind": "data", "provenance": "intra_module", "source": "block.self_attention", "target": "block.self_attention.query_key_value" }, { "kind": "data", "provenance": "intra_module", "source": "block.self_attention", "target": "block.self_attention.dense" }, { "kind": "data", "provenance": "intra_module", "source": "block.mlp", "target": "block.mlp.dense_h_to_4h" }, { "kind": "data", "provenance": "intra_module", "source": "block.mlp.dense_h_to_4h", "target": "block.mlp.dense_4h_to_h" }, { "kind": "cache_read", "source": "state:kv_cache", "target": "block.self_attention" }, { "kind": "cache_write", "source": "block.self_attention", "target": "state:kv_cache" }, { "kind": "data", "provenance": "observed_forward", "source": "block.input_layernorm", "target": "block.self_attention" }, { "kind": "data", "provenance": "observed_forward", "source": "block.self_attention", "target": "block.post_attention_layernorm" }, { "kind": "data", "provenance": "observed_forward", "source": "block.post_attention_layernorm", "target": "block.mlp" } ], "extends": null, "model_type": "bloom", "provenance": { "config_class": "BloomConfig", "config_module": "transformers.models.bloom.configuration_bloom", "model_class": "BloomModel", "model_module": "transformers.models.bloom.modeling_bloom" }, "repeats": [ { "body": "block", "container_path_pattern": "model.h", "count": 2, "count_expr": "config.num_hidden_layers", "count_source": "config", "id": "blocks", "index_symbol": "i", "item_path_pattern": "model.h.{i}", "kind": "symbolic_repeat", "provenance": { "class_name": "BloomBlock", "container_path_pattern": "model.h", "item_path_pattern": "model.h.{i}", "source": "module_tree_repeat_collapse" }, "repeated_class_name": "BloomBlock" } ], "schema_version": "architecture-template-v0", "templates": [ { "children": [ "block.input_layernorm", "block.self_attention", "block.post_attention_layernorm", "block.mlp" ], "class_name": "BloomBlock", "id": "block", "kind": "transformer_block", "path_pattern": "model.h.{i}" }, { "attributes": { "norm_type": "layer" }, "class_name": "LayerNorm", "id": "block.input_layernorm", "kind": "normalization", "path_pattern": "model.h.{i}.input_layernorm" }, { "attributes": { "head_dim": 8, "n_heads": 8, "n_kv_heads": 8, "pattern": "causal", "rope": false, "variant": "MHA" }, "children": [ "block.self_attention.query_key_value", "block.self_attention.dense" ], "class_name": "BloomAttention", "id": "block.self_attention", "kind": "attention", "path_pattern": "model.h.{i}.self_attention" }, { "attributes": { "in_features": "config.hidden_size", "out_features": 192 }, "class_name": "Linear", "id": "block.self_attention.query_key_value", "kind": "projection", "path_pattern": "model.h.{i}.self_attention.query_key_value" }, { "attributes": { "in_features": "config.hidden_size", "out_features": "config.hidden_size" }, "class_name": "Linear", "id": "block.self_attention.dense", "kind": "projection", "path_pattern": "model.h.{i}.self_attention.dense" }, { "attributes": { "norm_type": "layer" }, "class_name": "LayerNorm", "id": "block.post_attention_layernorm", "kind": "normalization", "path_pattern": "model.h.{i}.post_attention_layernorm" }, { "attributes": { "hidden_size": 64 }, "children": [ "block.mlp.dense_h_to_4h", "block.mlp.gelu_impl", "block.mlp.dense_4h_to_h" ], "class_name": "BloomMLP", "id": "block.mlp", "kind": "feed_forward", "path_pattern": "model.h.{i}.mlp" }, { "attributes": { "in_features": "config.hidden_size", "out_features": 256 }, "class_name": "Linear", "id": "block.mlp.dense_h_to_4h", "kind": "projection", "path_pattern": "model.h.{i}.mlp.dense_h_to_4h" }, { "attributes": { "hidden_size": 64 }, "class_name": "BloomGelu", "id": "block.mlp.gelu_impl", "kind": "feed_forward", "path_pattern": "model.h.{i}.mlp.gelu_impl" }, { "attributes": { "in_features": 256, "out_features": "config.hidden_size" }, "class_name": "Linear", "id": "block.mlp.dense_4h_to_h", "kind": "projection", "path_pattern": "model.h.{i}.mlp.dense_4h_to_h" } ] }