from transformers import PretrainedConfig class PersadianNanoV4Config(PretrainedConfig): model_type = "persadian_nano_v4" def __init__( self, hidden_size=512, intermediate_size=1024, num_hidden_layers=12, num_attention_heads=8, num_key_value_heads=4, num_experts=4, num_experts_per_tok=2, progressive_experts=True, min_experts=1, max_experts=2, use_hyper_connection=True, use_compressed_attention=True, compress_ratio=4, vocab_size=50257, max_position_embeddings=2048, bos_token_id=50256, eos_token_id=50256, rope_theta=10000.0, layer_norm_eps=1e-5, dropout=0.1, attention_dropout=0.0, use_flash_attention=True, **kwargs ): super().__init__(**kwargs) self.hidden_size = hidden_size self.intermediate_size = intermediate_size self.num_hidden_layers = num_hidden_layers self.num_attention_heads = num_attention_heads self.num_key_value_heads = num_key_value_heads self.num_experts = num_experts self.num_experts_per_tok = num_experts_per_tok self.progressive_experts = progressive_experts self.min_experts = min_experts self.max_experts = max_experts self.use_hyper_connection = use_hyper_connection self.use_compressed_attention = use_compressed_attention self.compress_ratio = compress_ratio self.vocab_size = vocab_size self.max_position_embeddings = max_position_embeddings self.bos_token_id = bos_token_id self.eos_token_id = eos_token_id self.rope_theta = rope_theta self.layer_norm_eps = layer_norm_eps self.dropout = dropout self.attention_dropout = attention_dropout self.use_flash_attention = use_flash_attention