class_docstr: This is the configuration class to store the configuration of a [`PersimmonModel`]. It is used to instantiate an
  Persimmon model according to the specified arguments, defining the model architecture. Instantiating a
  configuration with the defaults will yield a similar configuration to that of the
  [adept/persimmon-8b-base](https://huggingface.co/adept/persimmon-8b-base).
  
  Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the
  documentation from [`PretrainedConfig`] for more information.
  
  
  Args:
      vocab_size (`int`, *optional*, defaults to 262144):
          Vocabulary size of the Persimmon model. Defines the number of different tokens that can be represented by
          the `inputs_ids` passed when calling [`PersimmonModel`]
      hidden_size (`int`, *optional*, defaults to 4096):
          Dimension of the hidden representations.
      intermediate_size (`int`, *optional*, defaults to 16384):
          Dimension of the MLP representations.
      num_hidden_layers (`int`, *optional*, defaults to 36):
          Number of hidden layers in the Transformer encoder.
      num_attention_heads (`int`, *optional*, defaults to 64):
          Number of attention heads for each attention layer in the Transformer encoder.
      hidden_act (`str` or `function`, *optional*, defaults to `"relu2"`):
          The non-linear activation function (function or string) in the decoder.
      max_position_embeddings (`int`, *optional*, defaults to 16384):
          The maximum sequence length that this model might ever be used with.
      initializer_range (`float`, *optional*, defaults to 0.02):
          The standard deviation of the truncated_normal_initializer for initializing all weight matrices.
      layer_norm_eps (`float`, *optional*, defaults to 1e-5):
          The epsilon used by the rms normalization layers.
      use_cache (`bool`, *optional*, defaults to `True`):
          Whether or not the model should return the last key/values attentions (not used by all models). Only
          relevant if `config.is_decoder=True`.
      tie_word_embeddings(`bool`, *optional*, defaults to `False`):
          Whether to tie weight embeddings
      rope_theta (`float`, *optional*, defaults to 25000.0):
          The base period of the RoPE embeddings.
      rope_scaling (`Dict`, *optional*):
          Dictionary containing the scaling configuration for the RoPE embeddings. Currently supports two scaling
          strategies: linear and dynamic. Their scaling factor must be a float greater than 1. The expected format is
          `{"type": strategy name, "factor": scaling factor}`. When using this flag, don't update
          `max_position_embeddings` to the expected new maximum. See the following thread for more information on how
          these scaling strategies behave:
          https://www.reddit.com/r/LocalPersimmon/comments/14mrgpr/dynamically_scaled_rope_further_increases/. This
          is an experimental feature, subject to breaking API changes in future versions.
      qk_layernorm (`bool`, *optional*, default to `True`):
          Whether or not to normalize the Queries and Keys after projecting the hidden states
      hidden_dropout (`float`, *optional*, default to 0.0):
          The dropout ratio after applying the MLP to the hidden states.
      attention_dropout (`float`, *optional*, default to 0.0):
          The dropout ratio after computing the attention scores.
      partial_rotary_factor (`float`, *optional*, default to 0.5):
          Percentage of the query and keys which will have rotary embedding.
  
      Example:
  
  ```python
  >>> from transformers import PersimmonModel, PersimmonConfig
  
  >>> # Initializing a Persimmon persimmon-7b style configuration
  >>> configuration = PersimmonConfig()
  ```
class_docstr_tok: ["This","is","the","configuration","class","to","store","the","configuration","of","a","[","`","PersimmonModel","`","]",".","It","is","used","to","instantiate","an","Persimmon","model","according","to","the","specified","arguments",",","defining","the","model","architecture",".","Instantiating","a","configuration","with","the","defaults","will","yield","a","similar","configuration","to","that","of","the","[","adept\/persimmon-8b-base","]","(","https",":","\/\/huggingface.co\/adept\/persimmon-8b-base",")",".","Configuration","objects","inherit","from","[","`","PretrainedConfig","`","]","and","can","be","used","to","control","the","model","outputs",".","Read","the","documentation","from","[","`","PretrainedConfig","`","]","for","more","information",".","Args",":","vocab_size","(","`","int","`",",","*","optional","*",",","defaults","to","262144",")",":","Vocabulary","size","of","the","Persimmon","model",".","Defines","the","number","of","different","tokens","that","can","be","represented","by","the","`","inputs_ids","`","passed","when","calling","[","`","PersimmonModel","`","]","hidden_size","(","`","int","`",",","*","optional","*",",","defaults","to","4096",")",":","Dimension","of","the","hidden","representations",".","intermediate_size","(","`","int","`",",","*","optional","*",",","defaults","to","16384",")",":","Dimension","of","the","MLP","representations",".","num_hidden_layers","(","`","int","`",",","*","optional","*",",","defaults","to","36",")",":","Number","of","hidden","layers","in","the","Transformer","encoder",".","num_attention_heads","(","`","int","`",",","*","optional","*",",","defaults","to","64",")",":","Number","of","attention","heads","for","each","attention","layer","in","the","Transformer","encoder",".","hidden_act","(","`","str","`","or","`","function","`",",","*","optional","*",",","defaults","to","`","``","relu2","''","`",")",":","The","non-linear","activation","function","(","function","or","string",")","in","the","decoder",".","max_position_embeddings","(","`","int","`",",","*","optional","*",",","defaults","to","16384",")",":","The","maximum","sequence","length","that","this","model","might","ever","be","used","with",".","initializer_range","(","`","float","`",",","*","optional","*",",","defaults","to","0.02",")",":","The","standard","deviation","of","the","truncated_normal_initializer","for","initializing","all","weight","matrices",".","layer_norm_eps","(","`","float","`",",","*","optional","*",",","defaults","to","1e-5",")",":","The","epsilon","used","by","the","rms","normalization","layers",".","use_cache","(","`","bool","`",",","*","optional","*",",","defaults","to","`","True","`",")",":","Whether","or","not","the","model","should","return","the","last","key\/values","attentions","(","not","used","by","all","models",")",".","Only","relevant","if","`","config.is_decoder=True","`",".","tie_word_embeddings","(","`","bool","`",",","*","optional","*",",","defaults","to","`","False","`",")",":","Whether","to","tie","weight","embeddings","rope_theta","(","`","float","`",",","*","optional","*",",","defaults","to","25000.0",")",":","The","base","period","of","the","RoPE","embeddings",".","rope_scaling","(","`","Dict","`",",","*","optional","*",")",":","Dictionary","containing","the","scaling","configuration","for","the","RoPE","embeddings",".","Currently","supports","two","scaling","strategies",":","linear","and","dynamic",".","Their","scaling","factor","must","be","a","float","greater","than","1",".","The","expected","format","is","`","{","``","type","''",":","strategy","name",",","``","factor","''",":","scaling","factor","}","`",".","When","using","this","flag",",","do","n't","update","`","max_position_embeddings","`","to","the","expected","new","maximum",".","See","the","following","thread","for","more","information","on","how","these","scaling","strategies","behave",":","https",":","\/\/www.reddit.com\/r\/LocalPersimmon\/comments\/14mrgpr\/dynamically_scaled_rope_further_increases\/",".","This","is","an","experimental","feature",",","subject","to","breaking","API","changes","in","future","versions",".","qk_layernorm","(","`","bool","`",",","*","optional","*",",","default","to","`","True","`",")",":","Whether","or","not","to","normalize","the","Queries","and","Keys","after","projecting","the","hidden","states","hidden_dropout","(","`","float","`",",","*","optional","*",",","default","to","0.0",")",":","The","dropout","ratio","after","applying","the","MLP","to","the","hidden","states",".","attention_dropout","(","`","float","`",",","*","optional","*",",","default","to","0.0",")",":","The","dropout","ratio","after","computing","the","attention","scores",".","partial_rotary_factor","(","`","float","`",",","*","optional","*",",","default","to","0.5",")",":","Percentage","of","the","query","and","keys","which","will","have","rotary","embedding",".","Example",":","``","`","python",">",">",">","from","transformers","import","PersimmonModel",",","PersimmonConfig",">",">",">","#","Initializing","a","Persimmon","persimmon-7b","style","configuration",">",">",">","configuration","=","PersimmonConfig","(",")","``","`"]
docstr: Validate the `rope_scaling` configuration.
docstr_tok: ["Validate","the","`","rope_scaling","`","configuration","."]
code: def _rope_scaling_validation(self):
      """
      Validate the `rope_scaling` configuration.
      """
      if self.rope_scaling is None:
          return
  
      if (
          not isinstance(self.rope_scaling, dict)
          or len(self.rope_scaling) != 2
      ):
          raise ValueError(
              "`rope_scaling` must be a dictionary with with two fields, `type` and `factor`, "
              f"got {self.rope_scaling}"
          )
      rope_scaling_type = self.rope_scaling.get("type", None)
      rope_scaling_factor = self.rope_scaling.get("factor", None)
      if rope_scaling_type is None or rope_scaling_type not in [
          "linear",
          "dynamic",
      ]:
          raise ValueError(
              f"`rope_scaling`'s type field must be one of ['linear', 'dynamic'], got {rope_scaling_type}"
          )
      if (
          rope_scaling_factor is None
          or not isinstance(rope_scaling_factor, float)
          or rope_scaling_factor <= 1.0
      ):
          raise ValueError(
              f"`rope_scaling`'s factor field must be a float > 1, got {rope_scaling_factor}"
          )
  
imports: from ...configuration_utils import PretrainedConfig
  from ...utils import logging
label_desc: Use image node_id 2 for calling the PersimmonConfig obj's underlying member method code with example usage: obj._rope_scaling_validation() without return types