§
    ‚ŠtjŽ  ã                   óŒ   — 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	d
S )é    )Ústricté   )ÚPreTrainedConfig)ÚRopeParameters)Úauto_docstringzHuggingFaceTB/SmolLM3-3B)Ú
checkpointc                   ó"  ‡ — e Zd ZU dZdZdgZdZ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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ed#<   d$Ze
dz  ed%<   d&Ze
dz  ed'<   d(Ze
ee
         z  dz  ed)<   dZeez  dz  ed*<   d+Z eed,<   dZ!e
dz  ed-<   dZ"ee
         dz  ed.<   dZ#e
ed/<   dZ$ee         dz  ed0<   d+Z%eed1<   d2Z&ee
z  ed3<   d+Z'eed4<   d"Z(eed5<   ˆ fd6„Z)ˆ xZ*S )7ÚSmolLM3Configa>  
    no_rope_layers (`List[int]`, *optional*):
        List with at least the same length as the number of layers in the model.
        A `1` at an index position indicates that the corresponding layer will use RoPE,
        while a `0` indicates that it's a NoPE layer.
    no_rope_layer_interval (`int`, *optional*, defaults to 4):
        If `no_rope_layers` is `None`, it will be created using a NoPE layer every
        `no_rope_layer_interval` layers.

    ```python
    >>> from transformers import SmolLM3Model, SmolLM3Config

    >>> # Initializing a SmolLM3 style configuration
    >>> configuration = SmolLM3Config()

    >>> # Initializing a model from the SmolLM3 style configuration
    >>> model = SmolLM3Model(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Úsmollm3Úpast_key_valuesg    €„>AÚcolwiseÚrowwise)zlayers.*.self_attn.q_projzlayers.*.self_attn.k_projzlayers.*.self_attn.v_projzlayers.*.self_attn.o_projzlayers.*.mlp.gate_projzlayers.*.mlp.up_projzlayers.*.mlp.down_projÚ	input_idsÚinputs_embedsÚhidden_statesÚattention_mask)Úembed_tokensÚlayersÚnormi õ Ú
vocab_sizei   Úhidden_sizei +  Úintermediate_sizeé$   Únum_hidden_layersé   Únum_attention_headsé   NÚnum_key_value_headsÚsiluÚ
hidden_acti €  Úmax_position_embeddingsg{®Gáz”?Úinitializer_rangeg�íµ ÷Æ°>Úrms_norm_epsTÚ	use_cacheiô Úpad_token_idi ô Úbos_token_idiô Úeos_token_idÚrope_parametersFÚuse_sliding_windowÚsliding_windowÚno_rope_layersÚno_rope_layer_intervalÚlayer_typesÚattention_biasg        Úattention_dropoutÚmlp_biasÚtie_word_embeddingsc                 ó¨  •‡ — ‰ j         €‰ j        ‰ _         ‰ j        €%ˆ fd„t          ‰ j        ¦  «        D ¦   «         ‰ _        ‰ j        €pg ‰ _        t          ‰ j        ¦  «        D ]T}‰ j        |         }‰ j        r$‰ j        �|s‰ j                             d¦  «         Œ:‰ j                             d¦  «         ŒU t          ¦   «         j
        di |¤Ž d S )Nc                 óL   •— g | ] }t          |d z   ‰j        z  dk    ¦  «        ‘Œ!S )é   r   )Úintr,   )Ú.0Ú	layer_idxÚselfs     €úo/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/smollm3/configuration_smollm3.pyú
<listcomp>z/SmolLM3Config.__post_init__.<locals>.<listcomp>f   s?   ø€ ð #ð #ð #ØLU•�Y ‘] dÔ&AÑAÀQÒFÑGÔGð#ð #ð #ó    Úsliding_attentionÚfull_attention© )r   r   r+   Úranger   r-   r)   r*   ÚappendÚsuperÚ__post_init__)r8   Úkwargsr7   Úhas_ropeÚ	__class__s   `   €r9   rB   zSmolLM3Config.__post_init__a   s  øø€ ØÔ#Ð+Ø'+Ô'?ˆDÔ$àÔÐ&ð#ð #ð #ð #ÝY^Ð_cÔ_uÑYvÔYvð#ñ #ô #ˆDÔð ÔÐ#Ø!ˆDÔÝ" 4Ô#9Ñ:Ô:ð >ð >�	ØÔ.¨yÔ9�ØÔ*ð >¨tÔ/BÐ/NÐW_Ð/NØÔ$×+Ò+Ð,?Ñ@Ô@Ð@Ð@àÔ$×+Ò+Ð,<Ñ=Ô=Ð=Ð=à�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'r;   )+Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
model_typeÚkeys_to_ignore_at_inferenceÚdefault_thetaÚbase_model_tp_planÚbase_model_pp_planr   r5   Ú__annotations__r   r   r   r   r   r    Ústrr!   r"   Úfloatr#   r$   Úboolr%   r&   r'   Úlistr(   r   Údictr)   r*   r+   r,   r-   r.   r/   r0   r1   rB   Ú__classcell__)rE   s   @r9   r
   r
      s�  ø€ € € € € € ðð ð, €JØ#4Ð"5ÐØ€Mð &/Ø%.Ø%.Ø%.Ø"+Ø )Ø"+ðð Ðð &˜¨Ð(9Ð:Ø#Ð%5Ð6¸Ð8IÐJØ!Ð" _Ð$5Ð6ðð Ðð €J�ÐÐÑØ€K�ÐÐÑØ"Ð�sÐ"Ð"Ñ"ØÐ�sÐÐÑØ!Ð˜Ð!Ð!Ñ!Ø&'Ð˜˜t™Ð'Ð'Ñ'Ø€J�ÐÐÑØ#(Ð˜SÐ(Ð(Ñ(Ø#Ð�uÐ#Ð#Ñ#Ø€L�%ÐÐÑØ€IˆtÐÐÑØ%€L�#˜‘*Ð%Ð%Ñ%Ø%€L�#˜‘*Ð%Ð%Ñ%Ø+1€L�#˜˜Sœ	‘/ DÑ(Ð1Ð1Ñ1Ø48€O�^ dÑ*¨TÑ1Ð8Ð8Ñ8Ø$Ð˜Ð$Ð$Ñ$Ø!%€N�C˜$‘JÐ%Ð%Ñ%Ø'+€N�D˜”I Ñ$Ð+Ð+Ñ+Ø"#Ð˜CÐ#Ð#Ñ#Ø$(€K��c”˜TÑ!Ð(Ð(Ñ(Ø €N�DÐ Ð Ñ Ø%(Ð�u˜s‘{Ð(Ð(Ñ(Ø€HˆdÐÐÑØ $Ð˜Ð$Ð$Ñ$ð(ð (ð (ð (ð (ð (ð (ð (ð (r;   r
   N)
Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úmodeling_rope_utilsr   Úutilsr   r
   Ú__all__r>   r;   r9   ú<module>r[      s¶   ðð* /Ð .Ð .Ð .Ð .Ð .à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø #Ð #Ð #Ð #Ð #Ð #ð €Ð5Ð6Ñ6Ô6ØðU(ð U(ð U(ð U(ð U(Ð$ñ U(ô U(ñ „ñ 7Ô6ðU(ðp Ð
€€€r;   