{ "architecture": { "attention_variant": "MHA", "family": "masked_lm", "is_moe": false, "mixer": "attention", "positional": "learned", "tie_word_embeddings": true, "view": "encoder" }, "capabilities": { "attention_backends": [ "eager" ], "attention_patterns": [ "bidirectional" ], "attention_schedule": null, "task_heads": [ "masked_lm", "multiple_choice", "question_answering", "sequence_classification", "token_classification" ], "tensor_parallel": false }, "components": [ { "children": [ "embeddings", "encoder" ], "class_name": "ConvBertModel", "id": "model", "kind": "model", "path_pattern": "model" }, { "attributes": { "embedding_dim": "config.hidden_size", "num_embeddings": "config.vocab_size" }, "children": [ "embeddings.word_embeddings", "embeddings.position_embeddings", "embeddings.token_type_embeddings", "embeddings.LayerNorm" ], "class_name": "ConvBertEmbeddings", "id": "embeddings", "kind": "embedding", "path_pattern": "model.embeddings" }, { "attributes": { "embedding_dim": "config.hidden_size", "num_embeddings": "config.vocab_size", "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", "kind": "embedding", "path_pattern": "model.embeddings.word_embeddings" }, { "attributes": { "max_position_embeddings": "config.max_position_embeddings", "scheme": "learned" }, "class_name": "Embedding", "id": "embeddings.position_embeddings", "kind": "position", "path_pattern": "model.embeddings.position_embeddings" }, { "attributes": { "embedding_dim": "config.hidden_size", "num_embeddings": 2 }, "class_name": "Embedding", "id": "embeddings.token_type_embeddings", "kind": "embedding", "path_pattern": "model.embeddings.token_type_embeddings" }, { "attributes": { "norm_type": "layer" }, "class_name": "LayerNorm", "id": "embeddings.LayerNorm", "kind": "normalization", "path_pattern": "model.embeddings.LayerNorm" }, { "children": [ "encoder_layers" ], "class_name": "ConvBertEncoder", "id": "encoder", "kind": "encoder", "path_pattern": "model.encoder" } ], "config": { "class_name": "ConvBertConfig", "model_type": "convbert", "module": "transformers.models.convbert.configuration_convbert", "referenced_fields": { "num_hidden_layers": 12 }, "salient_fields": { "hidden_act": "gelu", "hidden_size": 768, "intermediate_size": 3072, "is_encoder_decoder": false, "max_position_embeddings": 512, "num_attention_heads": 12, "num_hidden_layers": 12, "tie_word_embeddings": true, "vocab_size": 30522 } }, "edges": [ { "kind": "data", "source": "embeddings", "target": "encoder" }, { "kind": "data", "source": "embeddings.word_embeddings", "target": "embeddings.token_type_embeddings" }, { "kind": "data", "source": "embeddings.token_type_embeddings", "target": "embeddings.LayerNorm" }, { "kind": "data", "source": "encoder_layer.attention", "target": "encoder_layer.intermediate" }, { "kind": "data", "source": "encoder_layer.intermediate", "target": "encoder_layer.output" }, { "kind": "mask", "source": "input:attention_mask", "target": "encoder_layer.attention" }, { "kind": "mask", "source": "input:attention_mask", "target": "encoder_layer.attention.self" }, { "kind": "position", "source": "embeddings.position_embeddings", "target": "embeddings" }, { "kind": "data", "provenance": "intra_module", "source": "encoder_layer.attention.self", "target": "encoder_layer.attention.self.query" }, { "kind": "data", "provenance": "intra_module", "source": "encoder_layer.attention.self", "target": "encoder_layer.attention.self.key" }, { "kind": "data", "provenance": "intra_module", "source": "encoder_layer.attention.self", "target": "encoder_layer.attention.self.value" }, { "kind": "data", "provenance": "intra_module", "source": "encoder_layer.attention.self", "target": "encoder_layer.attention.self.conv_kernel_layer" }, { "kind": "data", "provenance": "intra_module", "source": "encoder_layer.attention.self", "target": "encoder_layer.attention.self.conv_out_layer" }, { "kind": "data", "provenance": "intra_module", "source": "encoder_layer.intermediate", "target": "encoder_layer.intermediate.dense" }, { "kind": "data", "provenance": "intra_module", "source": "encoder_layer.output", "target": "encoder_layer.output.dense" } ], "extends": null, "model_type": "convbert", "provenance": { "config_class": "ConvBertConfig", "config_module": "transformers.models.convbert.configuration_convbert", "model_class": "ConvBertModel", "model_module": "transformers.models.convbert.modeling_convbert" }, "repeats": [ { "body": "encoder_layer", "container_path_pattern": "model.encoder.layer", "count": 12, "count_expr": "config.num_hidden_layers", "count_source": "config", "id": "encoder_layers", "index_symbol": "i", "item_path_pattern": "model.encoder.layer.{i}", "kind": "symbolic_repeat", "provenance": { "class_name": "ConvBertLayer", "container_path_pattern": "model.encoder.layer", "item_path_pattern": "model.encoder.layer.{i}", "source": "module_tree_repeat_collapse" }, "repeated_class_name": "ConvBertLayer" } ], "schema_version": "architecture-template-v0", "templates": [ { "children": [ "encoder_layer.attention", "encoder_layer.intermediate", "encoder_layer.output" ], "class_name": "ConvBertLayer", "id": "encoder_layer", "kind": "convolution", "path_pattern": "model.encoder.layer.{i}" }, { "attributes": { "head_dim": 64, "n_heads": 12, "n_kv_heads": 12, "pattern": "bidirectional", "rope": false, "variant": "MHA" }, "children": [ "encoder_layer.attention.self", "encoder_layer.attention.output" ], "class_name": "ConvBertAttention", "id": "encoder_layer.attention", "kind": "attention", "path_pattern": "model.encoder.layer.{i}.attention" }, { "attributes": { "head_dim": 64, "n_heads": 12, "n_kv_heads": 12, "pattern": "bidirectional", "rope": false, "variant": "MHA" }, "children": [ "encoder_layer.attention.self.query", "encoder_layer.attention.self.key", "encoder_layer.attention.self.value", "encoder_layer.attention.self.key_conv_attn_layer", "encoder_layer.attention.self.conv_kernel_layer", "encoder_layer.attention.self.conv_out_layer" ], "class_name": "ConvBertSelfAttention", "id": "encoder_layer.attention.self", "kind": "attention", "path_pattern": "model.encoder.layer.{i}.attention.self" }, { "attributes": { "in_features": "config.hidden_size", "out_features": 384 }, "class_name": "Linear", "id": "encoder_layer.attention.self.query", "kind": "projection", "path_pattern": "model.encoder.layer.{i}.attention.self.query" }, { "attributes": { "in_features": "config.hidden_size", "out_features": 384 }, "class_name": "Linear", "id": "encoder_layer.attention.self.key", "kind": "projection", "path_pattern": "model.encoder.layer.{i}.attention.self.key" }, { "attributes": { "in_features": "config.hidden_size", "out_features": 384 }, "class_name": "Linear", "id": "encoder_layer.attention.self.value", "kind": "projection", "path_pattern": "model.encoder.layer.{i}.attention.self.value" }, { "children": [ "encoder_layer.attention.self.key_conv_attn_layer.depthwise", "encoder_layer.attention.self.key_conv_attn_layer.pointwise" ], "class_name": "SeparableConv1D", "id": "encoder_layer.attention.self.key_conv_attn_layer", "kind": "convolution", "path_pattern": "model.encoder.layer.{i}.attention.self.key_conv_attn_layer" }, { "class_name": "Conv1d", "id": "encoder_layer.attention.self.key_conv_attn_layer.depthwise", "kind": "convolution", "path_pattern": "model.encoder.layer.{i}.attention.self.key_conv_attn_layer.depthwise" }, { "class_name": "Conv1d", "id": "encoder_layer.attention.self.key_conv_attn_layer.pointwise", "kind": "convolution", "path_pattern": "model.encoder.layer.{i}.attention.self.key_conv_attn_layer.pointwise" }, { "attributes": { "in_features": 384, "out_features": 54 }, "class_name": "Linear", "id": "encoder_layer.attention.self.conv_kernel_layer", "kind": "projection", "path_pattern": "model.encoder.layer.{i}.attention.self.conv_kernel_layer" }, { "attributes": { "in_features": "config.hidden_size", "out_features": 384 }, "class_name": "Linear", "id": "encoder_layer.attention.self.conv_out_layer", "kind": "projection", "path_pattern": "model.encoder.layer.{i}.attention.self.conv_out_layer" }, { "children": [ "encoder_layer.attention.output.LayerNorm" ], "class_name": "ConvBertSelfOutput", "id": "encoder_layer.attention.output", "kind": "module", "path_pattern": "model.encoder.layer.{i}.attention.output" }, { "attributes": { "norm_type": "layer" }, "class_name": "LayerNorm", "id": "encoder_layer.attention.output.LayerNorm", "kind": "normalization", "path_pattern": "model.encoder.layer.{i}.attention.output.LayerNorm" }, { "attributes": { "activation": "gelu", "hidden_size": 768, "intermediate_size": 3072 }, "children": [ "encoder_layer.intermediate.dense" ], "class_name": "ConvBertIntermediate", "id": "encoder_layer.intermediate", "kind": "feed_forward", "path_pattern": "model.encoder.layer.{i}.intermediate" }, { "attributes": { "in_features": "config.hidden_size", "out_features": "config.intermediate_size" }, "class_name": "Linear", "id": "encoder_layer.intermediate.dense", "kind": "projection", "path_pattern": "model.encoder.layer.{i}.intermediate.dense" }, { "attributes": { "activation": "gelu", "hidden_size": 768, "intermediate_size": 3072 }, "children": [ "encoder_layer.output.dense", "encoder_layer.output.LayerNorm" ], "class_name": "ConvBertOutput", "id": "encoder_layer.output", "kind": "feed_forward", "path_pattern": "model.encoder.layer.{i}.output" }, { "attributes": { "in_features": "config.intermediate_size", "out_features": "config.hidden_size" }, "class_name": "Linear", "id": "encoder_layer.output.dense", "kind": "projection", "path_pattern": "model.encoder.layer.{i}.output.dense" }, { "attributes": { "norm_type": "layer" }, "class_name": "LayerNorm", "id": "encoder_layer.output.LayerNorm", "kind": "normalization", "path_pattern": "model.encoder.layer.{i}.output.LayerNorm" } ] }