Ë
    ÜÓ^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Phi-3 model configurationé    )Ústricté   )ÚPreTrainedConfig)ÚRopeParameters)Úauto_docstringz microsoft/Phi-3-mini-4k-instruct)Ú
checkpointc                   óú  ‡ — e Zd ZU dZdZdgZ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	z  e
d<   dZee	z  e
d<   dZee	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e
d%<   d&Zee
d'<   dZeez  dz  e
d(<   d)Z e	dz  e
d*<   d+Z!e	e"e	   z  dz  e
d,<   d+Z#e	dz  e
d-<   dZ$e	dz  e
d.<   ˆ fd/„Z%	 d4d0e	ez  d1e&dz  fd2„Z'ˆ fd3„Z(ˆ xZ)S )5Ú
Phi3Configa�  
    original_max_position_embeddings (`int`, *optional*, defaults to 4096):
        The maximum sequence length that this model was trained with. This is used to determine the size of the
        original RoPE embeddings when using long scaling.

    Example:

    ```python
    >>> from transformers import Phi3Model, Phi3Config

    >>> # Initializing a Phi-3 style configuration
    >>> configuration = Phi3Config.from_pretrained("microsoft/Phi-3-mini-4k-instruct")

    >>> # Initializing a model from the configuration
    >>> model = Phi3Model(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Úphi3Úpast_key_valuesÚcolwise_gather_outputÚrowwise_split_input)zlayers.*.self_attn.qkv_projzlayers.*.self_attn.o_projzlayers.*.mlp.gate_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_headsNÚnum_key_value_headsg        Úresid_pdropÚ
embd_pdropÚattention_dropoutÚsiluÚ
hidden_acti   Úmax_position_embeddingsÚ original_max_position_embeddingsg{®Gáz”?Úinitializer_rangegñhãˆµøä>Úrms_norm_epsTÚ	use_cacheFÚtie_word_embeddingsÚrope_parametersé   Úbos_token_idi }  Úeos_token_idÚpad_token_idÚsliding_windowc                 ó^   •— | j                   €| j                  | _         t        ‰| �  di |¤Ž y )N© )r   r   ÚsuperÚ__post_init__)ÚselfÚkwargsÚ	__class__s     €úv/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/phi3/configuration_phi3.pyr1   zPhi3Config.__post_init__S   s-   ø€ Ø×#Ñ#Ð+Ø'+×'?Ñ'?ˆDÔ$ä‰ÑÑ' Ó'ó    Údefault_thetaÚignore_keysc                 óÄ  — |j                  dd «      }|xs | j                  | _        | j                  �| j                  ni | _        | j                  j                  d|j                  d|«      «       | j                  j                  d|j                  dd«      «       | j	                  «        | j                  j                  dd «      }|�|dv rd| j                  d<   |S )NÚrope_scalingÚ
rope_thetaÚpartial_rotary_factorg      ð?Ú	rope_type)ÚsuÚyarnÚlongrope)Úpopr(   Ú
setdefaultÚgetÚstandardize_rope_params)r2   r7   r8   r3   r:   Úrope_parameters_types         r5   Úconvert_rope_params_to_dictz&Phi3Config.convert_rope_params_to_dictY   sÔ   € ð —z‘z .°$Ó7ˆØ+ÒC¨t×/CÑ/CˆÔØ7;×7KÑ7KÐ7W˜t×3Ò3Ð]_ˆÔð 	×Ñ×'Ñ'¨°f·j±jÀÈ}Ó6]Ô^Ø×Ñ×'Ñ'Ð(?ÀÇÁÐLcÐehÓAiÔjØ×$Ñ$Ô&ð  $×3Ñ3×7Ñ7¸ÀTÓJÐØÐ+Ð0DÈÑ0VØ0:ˆD× Ñ  Ñ-Øˆr6   c                 ó8  •— t         ‰| �  «        t        | j                  t        «      st        d| j                  › �«      ‚| j                  j                  dd«      }| j                  j                  dd«      }| j                  j                  dd«      }t        | j                  | j                  z  | j                  d   z  «      }|dvrt        d|› �«      ‚|�^t        |t        «      rt        d	„ |D «       «      st        d
|› �«      ‚t        |«      |dz  k(  st        d|dz  › dt        |«      › �«      ‚|�_t        |t        «      rt        d„ |D «       «      st        d|› �«      ‚t        |«      |dz  k(  st        d|dz  › dt        |«      › �«      ‚yy)z?
        Validate the `rope_parameters` configuration.
        z/`rope_parameters` must be a dictionary but got r=   NÚshort_factorÚlong_factorr<   )Údefaultr@   z@`rope_parameters`'s type field must be one of ['longrope'], got c              3   óH   K  — | ]  }t        |t        t        f«      –— Œ y ­w©N©Ú
isinstanceÚintÚfloat©Ú.0Úxs     r5   ú	<genexpr>z+Phi3Config.validate_rope.<locals>.<genexpr>€   s   è ø€ ÒZ¸œ
 1¤s¬E l×3ÑZùó   ‚ "zF`rope_parameters`'s short_factor field must be a list of numbers, got é   z8`rope_parameters`'s short_factor field must have length z, got c              3   óH   K  — | ]  }t        |t        t        f«      –— Œ y ­wrL   rM   rQ   s     r5   rT   z+Phi3Config.validate_rope.<locals>.<genexpr>�   s   è ø€ ÒY¸œ
 1¤s¬E l×3ÑYùrU   zE`rope_parameters`'s long_factor field must be a list of numbers, got z7`rope_parameters`'s long_factor field must have length )r0   Úvalidate_roperN   r(   ÚdictÚ
ValueErrorrC   rO   r   r   ÚlistÚallÚlen)r2   rE   Úrope_parameters_short_factorÚrope_parameters_long_factorÚrotary_ndimsr4   s        €r5   rX   zPhi3Config.validate_ropek   sø  ø€ ô 	‰ÑÔô ˜$×.Ñ.´Ô5ÜÐNÈt×OcÑOcÐNdÐeÓfÐfØ#×3Ñ3×7Ñ7¸ÀTÓJÐØ'+×';Ñ';×'?Ñ'?ÀÐPTÓ'UÐ$Ø&*×&:Ñ&:×&>Ñ&>¸}ÈdÓ&SÐ#ÜØ×Ñ × 8Ñ 8Ñ8¸4×;OÑ;OÐPgÑ;hÑhó
ˆð  Ð'>Ñ>ÜÐ_Ð`tÐ_uÐvÓwÐwà'Ð3äÐ7¼Ô>ÜÑZÐ=YÔZÔZä Ø\Ð]yÐ\zÐ{óð ô Ð3Ó4¸ÈÑ8IÒIÜ ØNÈ|Ð_`ÑO`ÐNaÐagÔhkð  mIó  iJð  hKð  Lóð ð 'Ð2äÐ6¼Ô=ÜÑYÐ=XÔYÔYä Ø[Ð\wÐ[xÐyóð ô Ð2Ó3°|ÀqÑ7HÒHÜ ØMÈlÐ^_ÑN_ÐM`Ð`fÔgjð  lGó  hHð  gIð  Jóð ð Ið 3r6   )g     ˆÃ@N)*Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
model_typeÚkeys_to_ignore_at_inferenceÚbase_model_tp_planÚbase_model_pp_planr   rO   Ú__annotations__r   r   r   r   r   r   rP   r   r   r!   Ústrr"   r#   r$   r%   r&   Úboolr'   r(   r   rY   r*   r+   r[   r,   r-   r1   ÚsetrF   rX   Ú__classcell__)r4   s   @r5   r
   r
      s¥  ø… ñð( €JØ#4Ð"5Ðà'>Ø%:Ø%<Ø"7ñ	Ðð &˜¨Ð(9Ð:Ø#Ð%5Ð6¸Ð8IÐJØ!Ð" _Ð$5Ð6ñÐð €J�ÓØ€K�ÓØ!Ð�sÓ!ØÐ�sÓØ!Ð˜Ó!Ø&*Ð˜˜t™Ó*Ø"€K�˜‘Ó"Ø!€J�˜‘Ó!Ø%(Ð�u˜s‘{Ó(Ø€J�ÓØ#'Ð˜SÓ'Ø,0Ð$ cÓ0Ø#Ð�uÓ#Ø€L�%ÓØ€IˆtÓØ %Ð˜Ó%Ø48€O�^ dÑ*¨TÑ1Ó8Ø €L�#˜‘*Ó Ø+0€L�#˜˜S™	‘/ DÑ(Ó0Ø$€L�#˜‘*Ó$Ø!%€N�C˜$‘JÓ%ô(ð PTñØ  5™[ðØBEÈÁ*ó÷$*ð *r6   r
   N)rd   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úmodeling_rope_utilsr   Úutilsr   r
   Ú__all__r/   r6   r5   ú<module>rs      sM   ðñ  å .å 3Ý 1Ý #ñ Ð=Ô>Øô{Ð!ó {ó ó ?ð{ð| ˆ.�r6   