inspector / ir /artifacts /clipseg.json
lysandre's picture
lysandre HF Staff
Deploy architecture inspector
32d8c58 verified
Raw
History Blame Contribute Delete
26.5 kB
{
"architecture": {
"attention_variant": "MHA",
"family": "zero_shot_image_classification",
"is_moe": false,
"mixer": "attention",
"positional": "learned",
"towers": [
{
"attention_variant": "MHA",
"config_class": "CLIPSegTextConfig",
"hidden_size": 512,
"name": "text",
"num_attention_heads": 8,
"num_hidden_layers": 12,
"positional": "learned"
},
{
"attention_variant": "MHA",
"config_class": "CLIPSegVisionConfig",
"hidden_size": 768,
"name": "vision",
"num_attention_heads": 12,
"num_hidden_layers": 12
}
],
"view": "multimodal"
},
"capabilities": {
"attention_backends": [
"eager",
"sdpa",
"flash_attention",
"flex_attention"
],
"attention_patterns": [
"bidirectional"
],
"attention_schedule": null,
"task_heads": [
"zero_shot_image_classification"
],
"tensor_parallel": false
},
"components": [
{
"children": [
"text_model",
"vision_model",
"visual_projection",
"text_projection"
],
"class_name": "CLIPSegModel",
"id": "model",
"kind": "model",
"path_pattern": "model"
},
{
"children": [
"text_model.embeddings",
"text_model.encoder",
"text_model.final_layer_norm"
],
"class_name": "CLIPSegTextModel",
"id": "text_model",
"kind": "model",
"path_pattern": "model.text_model"
},
{
"attributes": {
"embedding_dim": "config.hidden_size",
"num_embeddings": "config.vocab_size"
},
"children": [
"text_model.embeddings.token_embedding",
"text_model.embeddings.position_embedding"
],
"class_name": "CLIPSegTextEmbeddings",
"id": "text_model.embeddings",
"kind": "embedding",
"path_pattern": "model.text_model.embeddings"
},
{
"attributes": {
"embedding_dim": "config.hidden_size",
"num_embeddings": "config.vocab_size"
},
"class_name": "Embedding",
"id": "text_model.embeddings.token_embedding",
"kind": "embedding",
"path_pattern": "model.text_model.embeddings.token_embedding"
},
{
"attributes": {
"max_position_embeddings": "config.max_position_embeddings",
"scheme": "learned"
},
"class_name": "Embedding",
"id": "text_model.embeddings.position_embedding",
"kind": "position",
"path_pattern": "model.text_model.embeddings.position_embedding"
},
{
"children": [
"encoder_layers"
],
"class_name": "CLIPSegEncoder",
"id": "text_model.encoder",
"kind": "encoder",
"path_pattern": "model.text_model.encoder"
},
{
"attributes": {
"norm_type": "layer"
},
"class_name": "LayerNorm",
"id": "text_model.final_layer_norm",
"kind": "normalization",
"path_pattern": "model.text_model.final_layer_norm"
},
{
"children": [
"vision_model.embeddings",
"vision_model.pre_layrnorm",
"vision_model.encoder",
"vision_model.post_layernorm"
],
"class_name": "CLIPSegVisionModel",
"id": "vision_model",
"kind": "model",
"path_pattern": "model.vision_model"
},
{
"attributes": {
"embedding_dim": "config.hidden_size"
},
"children": [
"vision_model.embeddings.patch_embedding",
"vision_model.embeddings.position_embedding"
],
"class_name": "CLIPSegVisionEmbeddings",
"id": "vision_model.embeddings",
"kind": "embedding",
"path_pattern": "model.vision_model.embeddings"
},
{
"class_name": "Conv2d",
"id": "vision_model.embeddings.patch_embedding",
"kind": "convolution",
"path_pattern": "model.vision_model.embeddings.patch_embedding"
},
{
"attributes": {},
"class_name": "Embedding",
"id": "vision_model.embeddings.position_embedding",
"kind": "position",
"path_pattern": "model.vision_model.embeddings.position_embedding"
},
{
"attributes": {
"norm_type": "layer"
},
"class_name": "LayerNorm",
"id": "vision_model.pre_layrnorm",
"kind": "normalization",
"path_pattern": "model.vision_model.pre_layrnorm"
},
{
"children": [
"encoder_layer_2s"
],
"class_name": "CLIPSegEncoder",
"id": "vision_model.encoder",
"kind": "encoder",
"path_pattern": "model.vision_model.encoder"
},
{
"attributes": {
"norm_type": "layer"
},
"class_name": "LayerNorm",
"id": "vision_model.post_layernorm",
"kind": "normalization",
"path_pattern": "model.vision_model.post_layernorm"
},
{
"attributes": {
"in_features": "config.hidden_size",
"out_features": 512
},
"class_name": "Linear",
"id": "visual_projection",
"kind": "projection",
"path_pattern": "model.visual_projection"
},
{
"attributes": {
"in_features": 512,
"out_features": 512
},
"class_name": "Linear",
"id": "text_projection",
"kind": "projection",
"path_pattern": "model.text_projection"
}
],
"config": {
"class_name": "CLIPSegConfig",
"model_type": "clipseg",
"module": "transformers.models.clipseg.configuration_clipseg",
"referenced_fields": {},
"salient_fields": {
"is_encoder_decoder": false
}
},
"dataflow": {
"input": {
"name": "input_ids",
"shape": [
"B",
"S"
]
},
"output": {
"shape": [
"B",
1
]
},
"shapes": {
"encoder_layer.layer_norm1": {
"in": [
"B",
"S",
512
],
"out": [
"B",
"S",
512
]
},
"encoder_layer.layer_norm2": {
"in": [
"B",
"S",
512
],
"out": [
"B",
"S",
512
]
},
"encoder_layer.mlp": {
"in": [
"B",
"S",
512
],
"out": [
"B",
"S",
512
]
},
"encoder_layer.self_attn": {
"in": null,
"out": [
"B",
"S",
512
]
},
"encoder_layer_2.layer_norm1": {
"in": [
"B",
50,
768
],
"out": [
"B",
50,
768
]
},
"encoder_layer_2.layer_norm2": {
"in": [
"B",
50,
768
],
"out": [
"B",
50,
768
]
},
"encoder_layer_2.mlp": {
"in": [
"B",
50,
768
],
"out": [
"B",
50,
768
]
},
"encoder_layer_2.self_attn": {
"in": null,
"out": [
"B",
50,
768
]
},
"text_model": {
"in": null,
"out": [
"B",
"S",
512
]
},
"text_projection": {
"in": [
"B",
512
],
"out": [
"B",
512
]
},
"vision_model": {
"in": null,
"out": [
"B",
50,
768
]
},
"visual_projection": {
"in": [
"B",
768
],
"out": [
"B",
512
]
}
},
"source": "observed_forward_meta"
},
"edges": [
{
"kind": "data",
"source": "text_model",
"target": "vision_model"
},
{
"kind": "data",
"source": "text_model.embeddings",
"target": "text_model.encoder"
},
{
"kind": "data",
"source": "text_model.encoder",
"target": "text_model.final_layer_norm"
},
{
"kind": "data",
"source": "vision_model.embeddings",
"target": "vision_model.pre_layrnorm"
},
{
"kind": "data",
"source": "vision_model.pre_layrnorm",
"target": "vision_model.encoder"
},
{
"kind": "data",
"source": "vision_model.encoder",
"target": "vision_model.post_layernorm"
},
{
"kind": "mask",
"source": "input:attention_mask",
"target": "encoder_layer.self_attn"
},
{
"kind": "mask",
"source": "input:attention_mask",
"target": "encoder_layer_2.self_attn"
},
{
"kind": "residual",
"source": "encoder_layer",
"target": "encoder_layer.self_attn"
},
{
"kind": "residual",
"source": "encoder_layer",
"target": "encoder_layer.mlp"
},
{
"kind": "residual",
"source": "encoder_layer_2",
"target": "encoder_layer_2.self_attn"
},
{
"kind": "residual",
"source": "encoder_layer_2",
"target": "encoder_layer_2.mlp"
},
{
"kind": "position",
"source": "text_model.embeddings.position_embedding",
"target": "text_model.embeddings"
},
{
"kind": "position",
"source": "vision_model.embeddings.position_embedding",
"target": "vision_model.embeddings"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer.self_attn",
"target": "encoder_layer.self_attn.k_proj"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer.self_attn",
"target": "encoder_layer.self_attn.v_proj"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer.self_attn",
"target": "encoder_layer.self_attn.q_proj"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer.self_attn.k_proj",
"target": "encoder_layer.self_attn.out_proj"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer.self_attn.v_proj",
"target": "encoder_layer.self_attn.out_proj"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer.self_attn.q_proj",
"target": "encoder_layer.self_attn.out_proj"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer.mlp",
"target": "encoder_layer.mlp.fc1"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer.mlp.fc1",
"target": "encoder_layer.mlp.fc2"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer_2.self_attn",
"target": "encoder_layer_2.self_attn.k_proj"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer_2.self_attn",
"target": "encoder_layer_2.self_attn.v_proj"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer_2.self_attn",
"target": "encoder_layer_2.self_attn.q_proj"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer_2.self_attn.k_proj",
"target": "encoder_layer_2.self_attn.out_proj"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer_2.self_attn.v_proj",
"target": "encoder_layer_2.self_attn.out_proj"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer_2.self_attn.q_proj",
"target": "encoder_layer_2.self_attn.out_proj"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer_2.mlp",
"target": "encoder_layer_2.mlp.fc1"
},
{
"kind": "data",
"provenance": "intra_module",
"source": "encoder_layer_2.mlp.fc1",
"target": "encoder_layer_2.mlp.fc2"
},
{
"kind": "data",
"provenance": "observed_forward",
"source": "encoder_layer.layer_norm1",
"target": "encoder_layer.self_attn"
},
{
"kind": "data",
"provenance": "observed_forward",
"source": "encoder_layer.self_attn",
"target": "encoder_layer.layer_norm2"
},
{
"kind": "data",
"provenance": "observed_forward",
"source": "encoder_layer.layer_norm2",
"target": "encoder_layer.mlp"
},
{
"kind": "data",
"provenance": "observed_forward",
"source": "encoder_layer_2.layer_norm1",
"target": "encoder_layer_2.self_attn"
},
{
"kind": "data",
"provenance": "observed_forward",
"source": "encoder_layer_2.self_attn",
"target": "encoder_layer_2.layer_norm2"
},
{
"kind": "data",
"provenance": "observed_forward",
"source": "encoder_layer_2.layer_norm2",
"target": "encoder_layer_2.mlp"
},
{
"kind": "data",
"provenance": "observed_forward",
"source": "vision_model",
"target": "visual_projection"
},
{
"kind": "data",
"provenance": "observed_forward",
"source": "visual_projection",
"target": "text_model"
},
{
"kind": "data",
"provenance": "observed_forward",
"source": "text_model",
"target": "text_projection"
}
],
"extends": "clip",
"model_type": "clipseg",
"patches": [
{
"added": {
"attrs": [
"projection_dim"
]
},
"component_kind": "config",
"parent_class": "CLIPTextConfig",
"relation": "new",
"target_class": "CLIPSegTextConfig"
},
{
"added": {
"attrs": [
"projection_dim"
]
},
"component_kind": "config",
"parent_class": "CLIPVisionConfig",
"relation": "new",
"target_class": "CLIPSegVisionConfig"
},
{
"added": {
"attrs": [
"conditional_layer",
"decoder_attention_dropout",
"decoder_hidden_act",
"decoder_intermediate_size",
"decoder_num_attention_heads",
"extract_layers",
"reduce_dim",
"use_complex_transposed_convolution"
]
},
"component_kind": "config",
"parent_class": "CLIPConfig",
"relation": "new",
"target_class": "CLIPSegConfig"
},
{
"added": {
"attrs": [
"attentions",
"hidden_states",
"logits"
]
},
"component_kind": null,
"parent_class": "ModelOutput",
"relation": "new",
"target_class": "CLIPSegDecoderOutput"
},
{
"added": {
"attrs": [
"conditional_embeddings",
"decoder_output",
"logits",
"loss",
"pooled_output",
"vision_model_output"
],
"methods": [
"to_tuple"
]
},
"component_kind": null,
"parent_class": "ModelOutput",
"relation": "new",
"target_class": "CLIPSegImageSegmentationOutput"
},
{
"component_kind": "embedding",
"overridden": {
"methods": [
"forward"
]
},
"parent_class": "CLIPVisionEmbeddings",
"relation": "inherits",
"target_class": "CLIPSegVisionEmbeddings"
},
{
"component_kind": "transformer_block",
"overridden": {
"methods": [
"forward"
]
},
"parent_class": "CLIPEncoderLayer",
"relation": "inherits",
"target_class": "CLIPSegDecoderLayer"
},
{
"component_kind": "model",
"overridden": {
"attrs": [
"_can_record_outputs"
],
"methods": [
"_init_weights"
]
},
"parent_class": "CLIPPreTrainedModel",
"relation": "inherits",
"target_class": "CLIPSegPreTrainedModel"
},
{
"added": {
"methods": [
"__init__",
"forward"
]
},
"component_kind": "decoder",
"parent_class": "CLIPSegPreTrainedModel",
"relation": "new",
"target_class": "CLIPSegDecoder"
},
{
"component_kind": "model",
"overridden": {
"methods": [
"forward"
]
},
"parent_class": "CLIPTextModel",
"relation": "inherits",
"target_class": "CLIPSegTextModel"
},
{
"component_kind": "model",
"overridden": {
"methods": [
"forward"
]
},
"parent_class": "CLIPVisionModel",
"relation": "inherits",
"target_class": "CLIPSegVisionModel"
},
{
"component_kind": "model",
"overridden": {
"methods": [
"forward",
"get_image_features",
"get_text_features"
]
},
"parent_class": "CLIPModel",
"relation": "inherits",
"target_class": "CLIPSegModel"
},
{
"added": {
"attrs": [
"config"
],
"methods": [
"__init__",
"forward",
"get_conditional_embeddings"
]
},
"component_kind": null,
"parent_class": "CLIPSegPreTrainedModel",
"relation": "new",
"target_class": "CLIPSegForImageSegmentation"
}
],
"provenance": {
"config_class": "CLIPSegConfig",
"config_module": "transformers.models.clipseg.configuration_clipseg",
"model_class": "CLIPSegModel",
"model_module": "transformers.models.clipseg.modeling_clipseg"
},
"repeats": [
{
"body": "encoder_layer",
"container_path_pattern": "model.text_model.encoder.layers",
"count": 12,
"count_expr": "12",
"count_source": "module_tree",
"id": "encoder_layers",
"index_symbol": "i",
"item_path_pattern": "model.text_model.encoder.layers.{i}",
"kind": "symbolic_repeat",
"provenance": {
"class_name": "CLIPSegEncoderLayer",
"container_path_pattern": "model.text_model.encoder.layers",
"item_path_pattern": "model.text_model.encoder.layers.{i}",
"source": "module_tree_repeat_collapse"
},
"repeated_class_name": "CLIPSegEncoderLayer"
},
{
"body": "encoder_layer_2",
"container_path_pattern": "model.vision_model.encoder.layers",
"count": 12,
"count_expr": "12",
"count_source": "module_tree",
"id": "encoder_layer_2s",
"index_symbol": "i",
"item_path_pattern": "model.vision_model.encoder.layers.{i}",
"kind": "symbolic_repeat",
"provenance": {
"class_name": "CLIPSegEncoderLayer",
"container_path_pattern": "model.vision_model.encoder.layers",
"item_path_pattern": "model.vision_model.encoder.layers.{i}",
"source": "module_tree_repeat_collapse"
},
"repeated_class_name": "CLIPSegEncoderLayer"
}
],
"schema_version": "architecture-template-v0",
"templates": [
{
"children": [
"encoder_layer.self_attn",
"encoder_layer.layer_norm1",
"encoder_layer.mlp",
"encoder_layer.layer_norm2"
],
"class_name": "CLIPSegEncoderLayer",
"id": "encoder_layer",
"kind": "transformer_block",
"path_pattern": "model.text_model.encoder.layers.{i}"
},
{
"attributes": {
"head_dim": 64,
"n_heads": 8,
"n_kv_heads": 8,
"rope": false,
"variant": "MHA"
},
"children": [
"encoder_layer.self_attn.k_proj",
"encoder_layer.self_attn.v_proj",
"encoder_layer.self_attn.q_proj",
"encoder_layer.self_attn.out_proj"
],
"class_name": "CLIPSegAttention",
"id": "encoder_layer.self_attn",
"kind": "attention",
"path_pattern": "model.text_model.encoder.layers.{i}.self_attn"
},
{
"attributes": {
"in_features": "config.hidden_size",
"out_features": "config.hidden_size"
},
"class_name": "Linear",
"id": "encoder_layer.self_attn.k_proj",
"kind": "projection",
"path_pattern": "model.text_model.encoder.layers.{i}.self_attn.k_proj"
},
{
"attributes": {
"in_features": "config.hidden_size",
"out_features": "config.hidden_size"
},
"class_name": "Linear",
"id": "encoder_layer.self_attn.v_proj",
"kind": "projection",
"path_pattern": "model.text_model.encoder.layers.{i}.self_attn.v_proj"
},
{
"attributes": {
"in_features": "config.hidden_size",
"out_features": "config.hidden_size"
},
"class_name": "Linear",
"id": "encoder_layer.self_attn.q_proj",
"kind": "projection",
"path_pattern": "model.text_model.encoder.layers.{i}.self_attn.q_proj"
},
{
"attributes": {
"in_features": "config.hidden_size",
"out_features": "config.hidden_size"
},
"class_name": "Linear",
"id": "encoder_layer.self_attn.out_proj",
"kind": "projection",
"path_pattern": "model.text_model.encoder.layers.{i}.self_attn.out_proj"
},
{
"attributes": {
"norm_type": "layer"
},
"class_name": "LayerNorm",
"id": "encoder_layer.layer_norm1",
"kind": "normalization",
"path_pattern": "model.text_model.encoder.layers.{i}.layer_norm1"
},
{
"attributes": {
"activation": "quick_gelu",
"hidden_size": 512,
"intermediate_size": 2048
},
"children": [
"encoder_layer.mlp.fc1",
"encoder_layer.mlp.fc2"
],
"class_name": "CLIPSegMLP",
"id": "encoder_layer.mlp",
"kind": "feed_forward",
"path_pattern": "model.text_model.encoder.layers.{i}.mlp"
},
{
"attributes": {
"in_features": "config.hidden_size",
"out_features": "config.intermediate_size"
},
"class_name": "Linear",
"id": "encoder_layer.mlp.fc1",
"kind": "projection",
"path_pattern": "model.text_model.encoder.layers.{i}.mlp.fc1"
},
{
"attributes": {
"in_features": "config.intermediate_size",
"out_features": "config.hidden_size"
},
"class_name": "Linear",
"id": "encoder_layer.mlp.fc2",
"kind": "projection",
"path_pattern": "model.text_model.encoder.layers.{i}.mlp.fc2"
},
{
"attributes": {
"norm_type": "layer"
},
"class_name": "LayerNorm",
"id": "encoder_layer.layer_norm2",
"kind": "normalization",
"path_pattern": "model.text_model.encoder.layers.{i}.layer_norm2"
},
{
"children": [
"encoder_layer_2.self_attn",
"encoder_layer_2.layer_norm1",
"encoder_layer_2.mlp",
"encoder_layer_2.layer_norm2"
],
"class_name": "CLIPSegEncoderLayer",
"id": "encoder_layer_2",
"kind": "transformer_block",
"path_pattern": "model.vision_model.encoder.layers.{i}"
},
{
"attributes": {
"head_dim": 64,
"n_heads": 12,
"n_kv_heads": 12,
"rope": false,
"variant": "MHA"
},
"children": [
"encoder_layer_2.self_attn.k_proj",
"encoder_layer_2.self_attn.v_proj",
"encoder_layer_2.self_attn.q_proj",
"encoder_layer_2.self_attn.out_proj"
],
"class_name": "CLIPSegAttention",
"id": "encoder_layer_2.self_attn",
"kind": "attention",
"path_pattern": "model.vision_model.encoder.layers.{i}.self_attn"
},
{
"attributes": {
"in_features": "config.hidden_size",
"out_features": "config.hidden_size"
},
"class_name": "Linear",
"id": "encoder_layer_2.self_attn.k_proj",
"kind": "projection",
"path_pattern": "model.vision_model.encoder.layers.{i}.self_attn.k_proj"
},
{
"attributes": {
"in_features": "config.hidden_size",
"out_features": "config.hidden_size"
},
"class_name": "Linear",
"id": "encoder_layer_2.self_attn.v_proj",
"kind": "projection",
"path_pattern": "model.vision_model.encoder.layers.{i}.self_attn.v_proj"
},
{
"attributes": {
"in_features": "config.hidden_size",
"out_features": "config.hidden_size"
},
"class_name": "Linear",
"id": "encoder_layer_2.self_attn.q_proj",
"kind": "projection",
"path_pattern": "model.vision_model.encoder.layers.{i}.self_attn.q_proj"
},
{
"attributes": {
"in_features": "config.hidden_size",
"out_features": "config.hidden_size"
},
"class_name": "Linear",
"id": "encoder_layer_2.self_attn.out_proj",
"kind": "projection",
"path_pattern": "model.vision_model.encoder.layers.{i}.self_attn.out_proj"
},
{
"attributes": {
"norm_type": "layer"
},
"class_name": "LayerNorm",
"id": "encoder_layer_2.layer_norm1",
"kind": "normalization",
"path_pattern": "model.vision_model.encoder.layers.{i}.layer_norm1"
},
{
"attributes": {
"activation": "quick_gelu",
"hidden_size": 768,
"intermediate_size": 3072
},
"children": [
"encoder_layer_2.mlp.fc1",
"encoder_layer_2.mlp.fc2"
],
"class_name": "CLIPSegMLP",
"id": "encoder_layer_2.mlp",
"kind": "feed_forward",
"path_pattern": "model.vision_model.encoder.layers.{i}.mlp"
},
{
"attributes": {
"in_features": "config.hidden_size",
"out_features": "config.intermediate_size"
},
"class_name": "Linear",
"id": "encoder_layer_2.mlp.fc1",
"kind": "projection",
"path_pattern": "model.vision_model.encoder.layers.{i}.mlp.fc1"
},
{
"attributes": {
"in_features": "config.intermediate_size",
"out_features": "config.hidden_size"
},
"class_name": "Linear",
"id": "encoder_layer_2.mlp.fc2",
"kind": "projection",
"path_pattern": "model.vision_model.encoder.layers.{i}.mlp.fc2"
},
{
"attributes": {
"norm_type": "layer"
},
"class_name": "LayerNorm",
"id": "encoder_layer_2.layer_norm2",
"kind": "normalization",
"path_pattern": "model.vision_model.encoder.layers.{i}.layer_norm2"
}
]
}