
'''simple docstring'''



from manim import *




class   UpperCAmelCase_					(		_SCREAMING_SNAKE_CASE			):






						'''simple docstring'''






						def  _lowercase     ( self				):

												"""simple docstring"""



												_lowerCAmelCase  						=			Rectangle(height=0.5   ,       width=0.5				)
												_lowerCAmelCase  						=			Rectangle(height=0.46   ,       width=0.46				).set_stroke(width=0				)

												_lowerCAmelCase  						=			[mem.copy() for i in range(6				)]
												_lowerCAmelCase  						=			[mem.copy() for i in range(6				)]
												_lowerCAmelCase  						=			VGroup(*_lowercase				).arrange(_lowercase   ,       buff=0				)
												_lowerCAmelCase  						=			VGroup(*_lowercase				).arrange(_lowercase   ,       buff=0				)
												_lowerCAmelCase  						=			VGroup(_lowercase   ,       _lowercase				).arrange(_lowercase   ,       buff=0				)
												_lowerCAmelCase  						=			Text("""CPU"""   ,       font_size=24				)
												_lowerCAmelCase  						=			Group(_lowercase   ,       _lowercase				).arrange(_lowercase   ,       buff=0.5   ,       aligned_edge=_lowercase				)
												cpu.move_to([-2.5, -0.5, 0]				)
												self.add(_lowercase				)

												_lowerCAmelCase  						=			[mem.copy() for i in range(1				)]
												_lowerCAmelCase  						=			VGroup(*_lowercase				).arrange(_lowercase   ,       buff=0				)
												_lowerCAmelCase  						=			Text("""GPU"""   ,       font_size=24				)
												_lowerCAmelCase  						=			Group(_lowercase   ,       _lowercase				).arrange(_lowercase   ,       buff=0.5   ,       aligned_edge=_lowercase				)
												gpu.align_to(_lowercase   ,       _lowercase				)
												gpu.set_x(gpu.get_x() - 1				)

												self.add(_lowercase				)

												_lowerCAmelCase  						=			[mem.copy() for i in range(6				)]
												_lowerCAmelCase  						=			VGroup(*_lowercase				).arrange(_lowercase   ,       buff=0				)

												_lowerCAmelCase  						=			Text("""Model"""   ,       font_size=24				)
												_lowerCAmelCase  						=			Group(_lowercase   ,       _lowercase				).arrange(_lowercase   ,       buff=0.5   ,       aligned_edge=_lowercase				)
												model.move_to([3, -1.0, 0]				)

												self.play(
												    Create(_lowercase   ,       run_time=1				)   ,       Create(_lowercase   ,       run_time=1				)   ,       Create(_lowercase   ,       run_time=1				)   ,       )

												_lowerCAmelCase  						=			MarkupText(
												    F'First, an empty model skeleton is loaded\ninto <span fgcolor=\'{YELLOW}\'>memory</span> without using much RAM.'   ,       font_size=24   ,       )

												_lowerCAmelCase  						=			Square(side_length=2.2				)
												key.move_to([-5, 2, 0]				)

												_lowerCAmelCase  						=			MarkupText(
												    F'<b>Key:</b>\n\n<span fgcolor=\'{YELLOW}\'>●</span> Empty Model'   ,       font_size=18   ,       )

												key_text.move_to([-5, 2.4, 0]				)

												step_a.move_to([2, 2, 0]				)
												self.play(Write(_lowercase   ,       run_time=2.5				)   ,       Write(_lowercase				)   ,       Write(_lowercase				)				)

												self.add(_lowercase				)

												_lowerCAmelCase  						=			[]
												_lowerCAmelCase  						=			[]
												_lowerCAmelCase  						=			[]
												for i, rect in enumerate(_lowercase				):
																		_lowerCAmelCase  						=			Rectangle(height=0.46   ,       width=0.46				).set_stroke(width=0.0				).set_fill(_lowercase   ,       opacity=0.7				)
																		cpu_target.move_to(_lowercase				)
																		cpu_target.generate_target()
																		_lowerCAmelCase  						=			0.46 / 4
																		_lowerCAmelCase  						=			0.46 / 3

																		if i == 0:
																								cpu_target.target.next_to(cpu_left_col_base[0].get_corner(DOWN + LEFT				)   ,       buff=0.02   ,       direction=_lowercase				)
																								cpu_target.target.set_x(cpu_target.target.get_x() + 0.1				)
																		elif i == 3:
																								cpu_target.target.next_to(cpu_targs[0].target   ,       direction=_lowercase   ,       buff=0.0				)
																		else:
																								cpu_target.target.next_to(cpu_targs[i - 1].target   ,       direction=_lowercase   ,       buff=0.0				)
																		cpu_targs.append(_lowercase				)

																		first_animations.append(rect.animate(run_time=0.5				).set_stroke(_lowercase				)				)
																		second_animations.append(MoveToTarget(_lowercase   ,       run_time=1.5				)				)

												self.play(*_lowercase				)
												self.play(*_lowercase				)

												self.wait()


'''simple docstring'''



from collections import OrderedDict
from typing import Mapping

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


_lowercase    =		logging.get_logger(__name__)

_lowercase    =		{
    """YituTech/conv-bert-base""": """https://huggingface.co/YituTech/conv-bert-base/resolve/main/config.json""",
    """YituTech/conv-bert-medium-small""": (
        """https://huggingface.co/YituTech/conv-bert-medium-small/resolve/main/config.json"""
    ),
    """YituTech/conv-bert-small""": """https://huggingface.co/YituTech/conv-bert-small/resolve/main/config.json""",
    # See all ConvBERT models at https://huggingface.co/models?filter=convbert
}




class   UpperCAmelCase_					(		_SCREAMING_SNAKE_CASE			):






						'''simple docstring'''






						_lowercase		:				List[Any]									=       '''convbert'''




						def __init__( self   ,       _lowercase=30_522   ,       _lowercase=768   ,       _lowercase=12   ,       _lowercase=12   ,       _lowercase=3_072   ,       _lowercase="gelu"   ,       _lowercase=0.1   ,       _lowercase=0.1   ,       _lowercase=512   ,       _lowercase=2   ,       _lowercase=0.02   ,       _lowercase=1e-12   ,       _lowercase=1   ,       _lowercase=0   ,       _lowercase=2   ,       _lowercase=768   ,       _lowercase=2   ,       _lowercase=9   ,       _lowercase=1   ,       _lowercase=None   ,       **_lowercase   ,       ):

												"""simple docstring"""



												super().__init__(
												    pad_token_id=_lowercase   ,       bos_token_id=_lowercase   ,       eos_token_id=_lowercase   ,       **_lowercase   ,       )

												_lowerCAmelCase  						=			vocab_size
												_lowerCAmelCase  						=			hidden_size
												_lowerCAmelCase  						=			num_hidden_layers
												_lowerCAmelCase  						=			num_attention_heads
												_lowerCAmelCase  						=			intermediate_size
												_lowerCAmelCase  						=			hidden_act
												_lowerCAmelCase  						=			hidden_dropout_prob
												_lowerCAmelCase  						=			attention_probs_dropout_prob
												_lowerCAmelCase  						=			max_position_embeddings
												_lowerCAmelCase  						=			type_vocab_size
												_lowerCAmelCase  						=			initializer_range
												_lowerCAmelCase  						=			layer_norm_eps
												_lowerCAmelCase  						=			embedding_size
												_lowerCAmelCase  						=			head_ratio
												_lowerCAmelCase  						=			conv_kernel_size
												_lowerCAmelCase  						=			num_groups
												_lowerCAmelCase  						=			classifier_dropout






class   UpperCAmelCase_					(		_SCREAMING_SNAKE_CASE			):






						'''simple docstring'''






						@property
						def  _lowercase     ( self				):

												"""simple docstring"""



												if self.task == "multiple-choice":
																		_lowerCAmelCase  						=			{0: """batch""", 1: """choice""", 2: """sequence"""}
												else:
																		_lowerCAmelCase  						=			{0: """batch""", 1: """sequence"""}
												return OrderedDict(
												    [
												        ("""input_ids""", dynamic_axis),
												        ("""attention_mask""", dynamic_axis),
												        ("""token_type_ids""", dynamic_axis),
												    ]				)
