




from ...configuration_utils import PretrainedConfig
from ...utils import logging


lowerCamelCase	:	Tuple				=   logging.get_logger(__name__)

lowerCamelCase	:	str				=   {
    'RWKV/rwkv-4-169m-pile': 'https://huggingface.co/RWKV/rwkv-4-169m-pile/resolve/main/config.json',
    'RWKV/rwkv-4-430m-pile': 'https://huggingface.co/RWKV/rwkv-4-430m-pile/resolve/main/config.json',
    'RWKV/rwkv-4-1b5-pile': 'https://huggingface.co/RWKV/rwkv-4-1b5-pile/resolve/main/config.json',
    'RWKV/rwkv-4-3b-pile': 'https://huggingface.co/RWKV/rwkv-4-3b-pile/resolve/main/config.json',
    'RWKV/rwkv-4-7b-pile': 'https://huggingface.co/RWKV/rwkv-4-7b-pile/resolve/main/config.json',
    'RWKV/rwkv-4-14b-pile': 'https://huggingface.co/RWKV/rwkv-4-14b-pile/resolve/main/config.json',
    'RWKV/rwkv-raven-1b5': 'https://huggingface.co/RWKV/rwkv-raven-1b5/resolve/main/config.json',
    'RWKV/rwkv-raven-3b': 'https://huggingface.co/RWKV/rwkv-raven-3b/resolve/main/config.json',
    'RWKV/rwkv-raven-7b': 'https://huggingface.co/RWKV/rwkv-raven-7b/resolve/main/config.json',
    'RWKV/rwkv-raven-14b': 'https://huggingface.co/RWKV/rwkv-raven-14b/resolve/main/config.json',
}




class 						__lowercase		(lowerCamelCase__							):




      """simple docstring"""





      _snake_case												=						"""rwkv"""
      _snake_case												=						{"""max_position_embeddings""": """context_length"""}

      def __init__(				self    ,				A=5_0_2_7_7    ,				A=1_0_2_4    ,				A=4_0_9_6    ,				A=3_2    ,				A=None    ,				A=None    ,				A=1e-5    ,				A=0    ,				A=0    ,				A=6    ,				A=False    ,				A=True    ,				**A    ,				)		->    List[str]:
         snake_case				:    int           =	vocab_size
         snake_case				:    List[str]           =	context_length
         snake_case				:    Any           =	hidden_size
         snake_case				:    Tuple           =	num_hidden_layers
         snake_case				:    str           =	attention_hidden_size if attention_hidden_size is not None else hidden_size
         snake_case				:    List[Any]           =	intermediate_size if intermediate_size is not None else 4 * hidden_size
         snake_case				:    Optional[int]           =	layer_norm_epsilon
         snake_case				:    int           =	rescale_every
         snake_case				:    Any           =	use_cache

         snake_case				:    List[str]           =	bos_token_id
         snake_case				:    Any           =	eos_token_id

         super().__init__(
             tie_word_embeddings=snake_case__    ,				bos_token_id=snake_case__    ,				eos_token_id=snake_case__    ,				**snake_case__     )











import warnings
from functools import wraps
from typing import Callable




def 						SCREAMING_SNAKE_CASE__ (   lowercase					)  ->       Callable:

   @wraps(lowercase					)
   def _inner_fn(*lowercase						,**lowercase					):
      warnings.warn(
          (f"""'{fn.__name__}' is experimental and might be subject to breaking changes in the future.""")						,lowercase						,)
      return fn(*lowercase						,**lowercase					)

   return _inner_fn





