code: def create_block(config, layer_idx=None):
      mixer_cls = create_mixer_cls(config, layer_idx)
      mlp_cls = create_mlp_cls(config, layer_idx)
      norm_cls = partial(nn.LayerNorm, eps=config.layer_norm_epsilon)
      block = Block(
          config.hidden_size,
          mixer_cls,
          mlp_cls,
          norm_cls=norm_cls,
          prenorm=True,
          resid_dropout=config.resid_pdrop,
          fused_dropout_add_ln=getattr(
              config, "fused_dropout_add_ln", False
          ),
      )
      block.layer_idx = layer_idx
      return block
  
imports: import math
  from functools import partial
  from collections import namedtuple
  from collections.abc import Sequence
  import torch
  import torch.nn
  import torch.nn.functional
  from transformers.models.gpt2.configuration_gpt2 import GPT2Config
  from src.models.modules.mha import MHA
  from src.models.modules.mlp import Mlp, FusedDenseGeluDense
  from src.models.modules.block import Block
  from src.models.modules.embedding import GPT2Embeddings
label_desc: Use image node_id 3 for calling a global function with example usage: create_block(config, layer_idx) and returns: block