class_docstr: A featurizer that uses transformer-based language models.
  
  This component loads a pre-trained language model
  from the Transformers library (https://github.com/huggingface/transformers)
  including BERT, GPT, GPT-2, xlnet, distilbert, and roberta.
  It also tokenizes and featurizes the featurizable dense attributes of
  each message.
class_docstr_tok: ["A","featurizer","that","uses","transformer-based","language","models",".","This","component","loads","a","pre-trained","language","model","from","the","Transformers","library","(","https",":","\/\/github.com\/huggingface\/transformers",")","including","BERT",",","GPT",",","GPT-2",",","xlnet",",","distilbert",",","and","roberta",".","It","also","tokenizes","and","featurizes","the","featurizable","dense","attributes","of","each","message","."]
docstr: Loads the metadata for the specified model and set them as properties.
  
  This includes the model name, model weights, cache directory and the
  maximum sequence length the model can handle.
docstr_tok: ["Loads","the","metadata","for","the","specified","model","and","set","them","as","properties",".","This","includes","the","model","name",",","model","weights",",","cache","directory","and","the","maximum","sequence","length","the","model","can","handle","."]
code: def _load_model_metadata(self) -> None:
      """Loads the metadata for the specified model and set them as properties.
  
      This includes the model name, model weights, cache directory and the
      maximum sequence length the model can handle.
      """
      from rasa.nlu.utils.hugging_face.registry import (
          model_class_dict,
          model_weights_defaults,
      )
  
      self.model_name = self._config["model_name"]
  
      if self.model_name not in model_class_dict:
          raise KeyError(
              f"'{self.model_name}' not a valid model name. Choose from "
              f"{list(model_class_dict.keys())!s} or create"
              f"a new class inheriting from this class to support your model."
          )
  
      self.model_weights = self._config["model_weights"]
      self.cache_dir = self._config["cache_dir"]
  
      if not self.model_weights:
          logger.info(
              f"Model weights not specified. Will choose default model "
              f"weights: {model_weights_defaults[self.model_name]}"
          )
          self.model_weights = model_weights_defaults[self.model_name]
  
      self.max_model_sequence_length = MAX_SEQUENCE_LENGTHS[
          self.model_name
      ]
  
imports: from __future__ import annotations
  import numpy
  import logging
  from typing import Any, Text, List, Dict, Tuple, Type
  import tensorflow
  from rasa.engine.graph import ExecutionContext, GraphComponent
  from rasa.engine.recipes.default_recipe import DefaultV1Recipe
  from rasa.engine.storage.resource import Resource
  from rasa.engine.storage.storage import ModelStorage
  from rasa.nlu.featurizers.dense_featurizer.dense_featurizer import DenseFeaturizer
  from rasa.nlu.tokenizers.tokenizer import Token, Tokenizer
  from rasa.shared.nlu.training_data.training_data import TrainingData
  from rasa.shared.nlu.training_data.message import Message
  from rasa.nlu.constants import DENSE_FEATURIZABLE_ATTRIBUTES, SEQUENCE_FEATURES, SENTENCE_FEATURES, NO_LENGTH_RESTRICTION, NUMBER_OF_SUB_TOKENS, TOKENS_NAMES
  from rasa.shared.nlu.constants import TEXT, ACTION_TEXT
  from rasa.utils import train_utils
  from rasa.utils.tensorflow.model_data import ragged_array_to_ndarray
label_desc: Use image node_id 7 for calling the LanguageModelFeaturizer obj's underlying member method code with example usage: obj._load_model_metadata() without return types