class_docstr: Language model embeddings.
  
  Arguments:
      hidden_size: hidden size
      vocab_size: vocabulary size
      max_sequence_length: maximum size of sequence. This
                           is used for positional embedding
      embedding_dropout_prob: dropout probability for embeddings
      init_method: weight initialization method
      num_tokentypes: size of the token-type embeddings. 0 value
                      will ignore this embedding
      position_embedding_type: position embedding type determines whether we instantiate a learnable position embedding table.
code: def forward(self, input_ids, position_ids=None, token_type_ids=None):
      # Embeddings.
      words_embeddings = self.word_embeddings(input_ids)
      if self.position_embedding_type == "learned_absolute":
          assert position_ids is not None
          position_embeddings = self.position_embeddings(position_ids)
          embeddings = words_embeddings + position_embeddings
      elif self.position_embedding_type == "learned_parameters":
          embeddings = words_embeddings + self.position_embeddings
      else:
          embeddings = words_embeddings
      if token_type_ids is not None:
          assert self.tokentype_embeddings is not None
          embeddings = embeddings + self.tokentype_embeddings(
              token_type_ids
          )
      else:
          assert self.tokentype_embeddings is None
  
      # Data format change to avoid explicit tranposes : [b s h] --> [s b h].
      if self.transpose_batch_sequence:
          embeddings = embeddings.transpose(0, 1).contiguous()
  
      # If the input flag for fp32 residual connection is set, convert for float.
      if self.fp32_residual_connection:
          embeddings = embeddings.float()
  
      # Dropout.
      if self.sequence_parallel:
          embeddings = tensor_parallel.mappings.scatter_to_sequence_parallel_region(
              embeddings
          )
          with tensor_parallel.random.get_cuda_rng_tracker().fork():
              embeddings = self.embedding_dropout(embeddings)
      else:
          embeddings = self.embedding_dropout(embeddings)
  
      return embeddings
  
imports: from ast import Mod
  import torch
  from nemo.collections.nlp.modules.common.megatron.adapters.parallel_adapters import AdapterName, PromptEncoderAdapterConfig
  from nemo.collections.nlp.modules.common.megatron.layer_type import LayerType
  from nemo.collections.nlp.modules.common.megatron.module import MegatronModule
  from nemo.collections.nlp.modules.common.megatron.position_embedding import ALiBiRelativePositionEmbedding, KERPLERelativePositionEmbedding, RotaryEmbedding, SandwichRelativePositionEmbedding
  from nemo.collections.nlp.modules.common.megatron.transformer import ParallelTransformer
  from nemo.collections.nlp.modules.common.megatron.utils import ApexGuardDefaults, get_linear_layer, init_method_normal, scaled_init_method_normal
  from nemo.collections.nlp.parts import utils_funcs
  from nemo.core import adapter_mixins
label_desc: Use image node_id 4 for calling the Embedding obj's underlying member method code with example usage: obj.forward(input_ids, position_ids, token_type_ids) and returns: embeddings