code: def get_language_model(
      config,
      num_tokentypes,
      add_pooler,
      encoder_attn_mask_type,
      add_encoder=True,
      add_decoder=False,
      decoder_attn_mask_type=AttnMaskType.causal,
      pre_process=True,
      post_process=True,
  ):
      """Build language model and return along with the key to save."""
      args = get_args()
      if config.init_method is None:
          config.init_method = init_method_normal(
              config.init_method_std
          )
  
      if config.output_layer_init_method is None:
          config.output_layer_init_method = scaled_init_method_normal(
              config.init_method_std, config.num_layers
          )
  
      # Language model.
      language_model = TransformerLanguageModel(
          config,
          encoder_attn_mask_type,
          num_tokentypes=num_tokentypes,
          add_encoder=add_encoder,
          add_decoder=add_decoder,
          decoder_attn_mask_type=decoder_attn_mask_type,
          add_pooler=add_pooler,
          pre_process=pre_process,
          post_process=post_process,
      )
      # key used for checkpoints.
      language_model_key = "language_model"
  
      return language_model, language_model_key
  
imports: import torch
  import torch.nn.functional
  from megatron import get_args
  from megatron.core import mpu, tensor_parallel
  from megatron.core.enums import ModelType
  from megatron.core.models.common.embeddings.rotary_pos_embedding import RotaryEmbedding
  from .enums import AttnMaskType, LayerType
  from .module import MegatronModule
  from .transformer import ParallelTransformer
  from .utils import get_linear_layer
  from .utils import init_method_normal, scaled_init_method_normal
label_desc: Use image node_id 2 for calling a global function with example usage: get_language_model(config, num_tokentypes, add_pooler, encoder_attn_mask_type, add_encoder, add_decoder, decoder_attn_mask_type, pre_process, post_process) and returns: language_model,  language_model_key