
    ^j                     v    d Z ddlmZ ddlmZ ddlmZ ddlmZ  ed      e G d	 d
e                    Z	d
gZ
y)zMistral4 model configuration    )strict   )PreTrainedConfig)RopeParameters)auto_docstringz#mistralai/Mistral-Small-4-119B-2603)
checkpointc            
           e Zd ZU dZdZdgZdddddddddd	Zd	gd
gfddgdgfdgdgfdZdddddZddiZ	dZ
eed<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   dZedz  ed <   d!Zeed"<   d#Zeed<   d$Zeed%<   d&Zeed'<   d(Zedz  ed)<   d*Zeed+<   d#Zedz  ed,<   d*Zeed-<   d!Zedz  ed.<   d!Zedz  ed/<   d0Zedz  ed1<   d2Zedz  ed3<   d4Z e!dz  ed5<   d6Z"e#ed7<   d8Z$eed9<   d:Z%eed;<   d<Z&eed=<   d4Z'e!ed><   d?Z(edz  ed@<   d!Z)edz  edA<   dBZ*ee+e   z  dz  edC<   d!Z,edz  edD<   dEZ-e!edF<   dZ.e/e0z  dz  edG<   d4Z1e!dz  edH<   dEZ2e!edI<   dJZ3eez  dz  edK<    fdLZ4 xZ5S )MMistral4Configa  
    n_group (`int`, *optional*, defaults to 1):
        Number of groups for routed experts.
    first_k_dense_replace (`int`, *optional*, defaults to 0):
        Number of dense layers in shallow layers(embed->dense->dense->...->dense->moe->moe...->lm_head).
                                                        \--k dense layers--/
    rope_interleave (`bool`, *optional*, defaults to `True`):
        Whether to interleave the rotary position embeddings.

    Example:

    ```python
    >>> from transformers import Mistral4Model, Mistral4Config

    >>> # Initializing a Mistral4 style configuration
    >>> configuration = Mistral4Config()

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```mistral4past_key_valuespacked_colwiserowwisemoe_tp_expertscolwise)	!layers.*.mlp.experts.gate_up_projlayers.*.mlp.experts.down_projlayers.*.mlp.expertsz%layers.*.mlp.shared_experts.gate_projz#layers.*.mlp.shared_experts.up_projz%layers.*.mlp.shared_experts.down_projzlayers.*.mlp.gate_projzlayers.*.mlp.up_projzlayers.*.mlp.down_proj	input_idsinputs_embedshidden_statesattention_mask)embed_tokenslayersnorm	ep_routergrouped_gemm)zlayers.*.mlp.gater   r   r   num_local_expertsn_routed_expertsi   
vocab_sizei   hidden_sizei 0  intermediate_sizei   moe_intermediate_size$   num_hidden_layers    num_attention_headsNnum_key_value_heads   n_shared_experts         ?routed_scaling_factor   kv_lora_ranki   q_lora_rank@   qk_rope_head_dim
v_head_dimqk_nope_head_dimn_group
topk_group   num_experts_per_tokr   first_k_dense_replaceTnorm_topk_probsilu
hidden_acti   max_position_embeddingsg{Gz?initializer_rangegư>rms_norm_eps	use_cache   pad_token_idbos_token_id   eos_token_idpretraining_tpFtie_word_embeddingsrope_parametersrope_interleaveattention_biasg        attention_dropoutc                    | j                   Adddd| j                  ddddd| j                  | j                  | j                  z   z  d| _         | j                  | j
                  | _        | j                  | j                  z   | _        | j                  | j                  z   | _        | j                   j                  d	| j                  | j                  z         t        | (  dd
ddhi| y )Nyarng     @g      `@i    g      @@r+   g?)type
rope_thetafactor original_max_position_embeddingsr<   	beta_fast	beta_slowmscale_all_dimmscalellama_4_scaling_betapartial_rotary_factorrV   ignore_keys_at_rope_validationrU   r<    )rG   r<   r1   r3   r'   r&   qk_head_dimhead_dim
setdefaultsuper__post_init__)selfkwargs	__class__s     ~/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/mistral4/configuration_mistral4.pyr]   zMistral4Config.__post_init__n   s    '%48+/+G+G! "%(+)-)>)>$BWBWZ^ZoZoBo)p$D  ##+'+'?'?D$0043H3HH--0E0EE''(?AVAVY]YfYfAfg 	
,BD]+^	
bh	
    )6__name__
__module____qualname____doc__
model_typekeys_to_ignore_at_inferencebase_model_tp_planbase_model_pp_planbase_model_ep_planattribute_mapr   int__annotations__r    r!   r"   r$   r&   r'   r)   r   r,   floatr.   r/   r1   r2   r3   r4   r5   r7   r8   r9   boolr;   strr<   r=   r>   r?   rA   rB   rD   listrE   rF   rG   r   dictrH   rI   rJ   r]   __classcell__)r`   s   @ra   r
   r
      sV   * J#4"5-=*3 01:/81:"+ )"+
 &(9:#%568IJ!"_$56 )-;*8 0	 	/M JK"s"!%3%s!!&(t(cc#&5&L#"Kt"c Jd
 cGS4ZJd
&'t'()3:)"&ND4K&J#*S*#u#L%It!L#*! L#* +,L#S	/D(,!"NC$J" %%48O^d*T18#'OTD[' ND ,/us{T)/
 
rb   r
   N)rf   huggingface_hub.dataclassesr   configuration_utilsr   modeling_rope_utilsr   utilsr   r
   __all__rX   rb   ra   <module>rz      sO    # . 3 1 # @Am
% m
  Bm
` 
rb   