





# Copyright 2023 The HuggingFace Team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


SCREAMING_SNAKE_CASE_   :      int			=   {
    '''configuration_mgp_str''': ['''MGP_STR_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''MgpstrConfig'''],
    '''processing_mgp_str''': ['''MgpstrProcessor'''],
    '''tokenization_mgp_str''': ['''MgpstrTokenizer'''],
}

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		SCREAMING_SNAKE_CASE_   :      List[Any]			=   [
		    '''MGP_STR_PRETRAINED_MODEL_ARCHIVE_LIST''',
		    '''MgpstrModel''',
		    '''MgpstrPreTrainedModel''',
		    '''MgpstrForSceneTextRecognition''',
		]

if TYPE_CHECKING:
		from .configuration_mgp_str import MGP_STR_PRETRAINED_CONFIG_ARCHIVE_MAP, MgpstrConfig
		from .processing_mgp_str import MgpstrProcessor
		from .tokenization_mgp_str import MgpstrTokenizer

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_mgp_str import (
				    MGP_STR_PRETRAINED_MODEL_ARCHIVE_LIST,
				    MgpstrForSceneTextRecognition,
				    MgpstrModel,
				    MgpstrPreTrainedModel,
				)
else:
		import sys

		SCREAMING_SNAKE_CASE_   :      List[str]			=   _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)











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


SCREAMING_SNAKE_CASE_   :      Dict			=   logging.get_logger(__name__)

SCREAMING_SNAKE_CASE_   :      Union[str, Any]			=   {
    '''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 		snake_case_   (							UpperCAmelCase_						):







	'''simple docstring'''
	__UpperCamelCase   =		'''rwkv'''
	__UpperCamelCase   =		{'''max_position_embeddings''': '''context_length'''}




	def __init__(						self							:     List[str]					,      __lowerCamelCase							:     Tuple=50_277					,      __lowerCamelCase							:     List[str]=1_024					,      __lowerCamelCase							:     List[Any]=4_096					,      __lowerCamelCase							:     Tuple=32					,      __lowerCamelCase							:     List[str]=None					,      __lowerCamelCase							:     Optional[int]=None					,      __lowerCamelCase							:     Optional[Any]=1E-5					,      __lowerCamelCase							:     Tuple=0					,      __lowerCamelCase							:     int=0					,      __lowerCamelCase							:     Dict=6					,      __lowerCamelCase							:     List[Any]=False					,      __lowerCamelCase							:     Tuple=True					,      **__lowerCamelCase							:     Optional[int]					,      )       -> List[Any]:

			'''simple docstring'''




			__lowercase											=     vocab_size
			__lowercase											=     context_length
			__lowercase											=     hidden_size
			__lowercase											=     num_hidden_layers
			__lowercase											=     attention_hidden_size if attention_hidden_size is not None else hidden_size
			__lowercase											=     intermediate_size if intermediate_size is not None else 4 * hidden_size
			__lowercase											=     layer_norm_epsilon
			__lowercase											=     rescale_every
			__lowercase											=     use_cache

			__lowercase											=     bos_token_id
			__lowercase											=     eos_token_id

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




