"""HuggingFace configuration for the Rose X1 architecture.""" from transformers import PretrainedConfig class RoseX1Config(PretrainedConfig): model_type = "rose_x1" def __init__( self, vocab_size=16384, hidden_size=512, intermediate_size=1408, num_hidden_layers=14, num_attention_heads=8, num_key_value_heads=2, head_dim=None, max_position_embeddings=1024, hidden_act="silu", rms_norm_eps=1e-5, attention_bias=False, mlp_bias=False, attention_dropout=0.0, tie_word_embeddings=True, rope_theta=100000.0, rope_scaling=None, initializer_range=0.02, use_cache=True, # ── Rose X1 specifics ────────────────────────────────────────────── use_qk_norm=True, refresh_gate_enabled=True, refresh_gate_inject_layers=None, refresh_gate_kernel_size=9, **kwargs, ): self.vocab_size = vocab_size 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.head_dim = head_dim if head_dim is not None else hidden_size // num_attention_heads self.max_position_embeddings = max_position_embeddings self.hidden_act = hidden_act self.rms_norm_eps = rms_norm_eps self.attention_bias = attention_bias self.mlp_bias = mlp_bias self.attention_dropout = attention_dropout self.tie_word_embeddings = tie_word_embeddings self.rope_theta = rope_theta self.rope_scaling = rope_scaling self.initializer_range = initializer_range self.use_cache = use_cache self.use_qk_norm = use_qk_norm self.refresh_gate_enabled = refresh_gate_enabled self.refresh_gate_inject_layers = ( list(refresh_gate_inject_layers) if refresh_gate_inject_layers else [] ) self.refresh_gate_kernel_size = refresh_gate_kernel_size super().__init__(**kwargs)