Ë
    ÛÓ^j&  ã                   óà   — d dl mZ d dlmZ ddlmZ ddlmZmZ ddl	m
Z
  ej                  e«      Z ed¬	«      e G d
„ de«      «       «       Z ed¬	«      e G d„ de«      «       «       ZddgZy)é    )ÚAny)Ústricté   )ÚPreTrainedConfig)Úauto_docstringÚloggingé   )ÚSiglipVisionConfigzgoogle/gemma-3-4b-it)Ú
checkpointc            
       ó4  ‡ — 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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
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e	   z  d&z  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/<   d0Z!e	ez  d&z  e
d1<   dZ"e	e
d2<   d3Z#e	d&z  e
d4<   d&Z$ee   d&z  e
d5<   d&Z%ed&z  e
d6<   d&Z&ed&z  e
d7<   d.Z'ed&z  e
d8<   d9d:d;œZ(ˆ fd<„Z)d=„ Z*d>„ Z+ˆ xZ,S )?ÚGemma3TextConfigaé  
    query_pre_attn_scalar (`float`, *optional*, defaults to 256):
        scaling factor used on the attention scores
    final_logit_softcapping (`float`, *optional*):
        Scaling factor when applying tanh softcapping on the logits.
    attn_logit_softcapping (`float`, *optional*):
        Scaling factor when applying tanh softcapping on the attention scores.
    use_bidirectional_attention (`bool`, *optional*, defaults to `False`):
        If True, the model will attend to all text tokens instead of using a causal mask. This does not change
        behavior for vision tokens.

    ```python
    >>> from transformers import Gemma3TextModel, Gemma3TextConfig
    >>> # Initializing a Gemma3Text gemma3_text-7b style configuration
    >>> configuration = Gemma3TextConfig()
    >>> # Initializing a model from the gemma3_text-7b style configuration
    >>> model = Gemma3TextModel(configuration)
    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```
    Úgemma3_textÚpast_key_valuesÚcolwiseÚreplicated_with_grad_allreduceÚrowwise)	zlayers.*.self_attn.q_projzlayers.*.self_attn.k_projzlayers.*.self_attn.v_projzlayers.*.self_attn.q_normzlayers.*.self_attn.k_normz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é   Únum_key_value_headsé   Úhead_dimÚgelu_pytorch_tanhÚhidden_activationi   Úmax_position_embeddingsç{®Gáz”?Úinitializer_rangeg�íµ ÷Æ°>Úrms_norm_epsTÚ	use_cacher   NÚpad_token_idé   Úeos_token_idr	   Úbos_token_idÚtie_word_embeddingsÚrope_parametersFÚattention_biasg        Úattention_dropoutÚquery_pre_attn_scalari   Úsliding_windowÚlayer_typesÚfinal_logit_softcappingÚattn_logit_softcappingÚuse_bidirectional_attentiong    €„.Ag     ˆÃ@)ÚglobalÚlocalc                 óD  •— | j                   r| j                  dz  dz   | _        |j                  dd«      | _        | j                  €Et        | j                  «      D �cg c]!  }t        |dz   | j                  z  «      rdnd‘Œ# c}| _        t        ‰| �$  di |¤Ž y c c}w )Nr	   r-   Úsliding_window_patterné   Úsliding_attentionÚfull_attention© )
r9   r5   ÚgetÚ_sliding_window_patternr6   Úranger   ÚboolÚsuperÚ__post_init__)ÚselfÚkwargsÚiÚ	__class__s      €úz/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/gemma3/configuration_gemma3.pyrG   zGemma3TextConfig.__post_init__h   s¢   ø€ Ø×+Ò+Ø#'×#6Ñ#6¸!Ñ#;¸qÑ"@ˆDÔð (.§z¡zÐ2JÈAÓ'NˆÔ$à×ÑÐ#ô ˜t×5Ñ5Ó6ö àô (,¨Q°©U°d×6RÑ6RÑ,RÔ'SÑ#ÐYiÑiò ˆDÔô
 	‰ÑÑ' Ó'ùò s   Á&Bc                 óˆ   — | j                   | j                  z  dk7  r&t        d| j                   › d| j                  › d�«      ‚y)zOPart of `@strict`-powered validation. Validates the architecture of the config.r   zThe hidden size (z6) is not a multiple of the number of attention heads (z).N)r   r    Ú
ValueError)rH   s    rL   Úvalidate_architecturez&Gemma3TextConfig.validate_architecturew   sS   € à×Ñ˜d×6Ñ6Ñ6¸!Ò;ÜØ# D×$4Ñ$4Ð#5ð 6Ø×2Ñ2Ð3°2ð7óð ð <ó    c                 óz  — |j                  dd «      }ddiddidœ}| j                  �| j                  n|| _        |�| j                  d   j                  |«       | j                  j                  d«      €ddi| j                  d<   | j                  d   j	                  d|j                  d| j
                  d   «      «       | j                  j                  d«      €ddi| j                  d<   | j                  d   j	                  d|j                  d	| j
                  d
   «      «       | j                  «        |S )NÚrope_scalingÚ	rope_typeÚdefault)r?   r@   r@   Ú
rope_thetar:   r?   Úrope_local_base_freqr;   )Úpopr1   ÚupdaterB   Ú
setdefaultÚdefault_thetaÚstandardize_rope_params)rH   rI   rR   Údefault_rope_paramss       rL   Úconvert_rope_params_to_dictz,Gemma3TextConfig.convert_rope_params_to_dict   sI  € Ø—z‘z .°$Ó7ˆð
 #.¨yÐ!9Ø*¨IÐ6ñ
Ðð 8<×7KÑ7KÐ7W˜t×3Ò3Ð]pˆÔØÐ#Ø× Ñ Ð!1Ñ2×9Ñ9¸,ÔGð ×Ñ×#Ñ#Ð$4Ó5Ð=Ø6AÀ9Ð5MˆD× Ñ Ð!1Ñ2Ø×ÑÐ-Ñ.×9Ñ9Ø˜&Ÿ*™* \°4×3EÑ3EÀhÑ3OÓPô	
ð ×Ñ×#Ñ#Ð$7Ó8Ð@Ø9DÀiÐ8PˆD× Ñ Ð!4Ñ5Ø×ÑÐ0Ñ1×<Ñ<Ø˜&Ÿ*™*Ð%;¸T×=OÑ=OÐPWÑ=XÓYô	
ð
 	×$Ñ$Ô&ØˆrP   )-Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
model_typeÚkeys_to_ignore_at_inferenceÚbase_model_tp_planÚbase_model_pp_planr   ÚintÚ__annotations__r   r   r   r    r"   r$   r&   Ústrr'   r)   Úfloatr*   r+   rE   r,   r.   Úlistr/   r0   r1   Údictr2   r3   r4   r5   r6   r7   r8   r9   rZ   rG   rO   r]   Ú__classcell__©rK   s   @rL   r   r   !   sÎ  ø… ñð, €JØ#4Ð"5Ðà%.Ø%.Ø%.Ø%EØ%EØ%.Ø"+Ø )Ø"+ñ
Ðð &˜¨Ð(9Ð:Ø#Ð%5Ð6¸Ð8IÐJØ!Ð" _Ð$5Ð6ñÐð €J�ÓØ€K�ÓØ!Ð�sÓ!ØÐ�sÓØ Ð˜Ó Ø Ð˜Ó Ø€HˆcÓØ0Ð�sÓ0Ø#*Ð˜SÓ*Ø#Ð�uÓ#Ø€L�%ÓØ€IˆtÓØ €L�#˜‘*Ó Ø+,€L�#˜˜S™	‘/ DÑ(Ó,Ø €L�#˜‘*Ó Ø $Ð˜Ó$Ø#'€O�T˜D‘[Ó'Ø €N�DÓ Ø,/Ð�s˜U‘{ TÑ)Ó/Ø!$Ð˜3Ó$Ø!%€N�C˜$‘JÓ%Ø$(€K��c‘˜TÑ!Ó(Ø,0Ð˜U T™\Ó0Ø+/Ð˜E D™LÓ/Ø/4Ð ¨¡Ó4Ø*°XÑ>€Mô(òörP   r   c                   óþ   ‡ — e Zd ZU dZdZddddœZeedœZdZ	ee
eef   z  dz  ed	<   dZee
eef   z  dz  ed
<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   ˆ fd„Zˆ xZS )ÚGemma3Configa  
    mm_tokens_per_image (`int`, *optional*, defaults to 256):
        The number of tokens per image embedding.
    boi_token_index (`int`, *optional*, defaults to 255999):
        The begin-of-image token index to wrap the image prompt.
    eoi_token_index (`int`, *optional*, defaults to 256000):
        The end-of-image token index to wrap the image prompt.

    Example:

    ```python
    >>> from transformers import Gemma3ForConditionalGeneration, Gemma3Config, SiglipVisionConfig, Gemma3TextConfig

    >>> # Initializing a Siglip-like vision config
    >>> vision_config = SiglipVisionConfig()

    >>> # Initializing a Gemma3 Text config
    >>> text_config = Gemma3TextConfig()

    >>> # Initializing a Gemma3 gemma-3-4b style configuration
    >>> configuration = Gemma3Config(vision_config, text_config)

    >>> # Initializing a model from the gemma-3-4b style configuration
    >>> model = Gemma3TextConfig(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Úgemma3Úimage_token_indexÚboi_token_indexÚeoi_token_index)Úimage_token_idÚboi_token_idÚeoi_token_id)Útext_configÚvision_configNrw   rx   r#   Úmm_tokens_per_imageiÿç i è i   r(   r)   Tr0   c                 ó¸  •— | j                   €%t        «       | _         t        j                  d«       n4t	        | j                   t
        «      rt        di | j                   ¤Ž| _         t	        | j                  t
        «      rt        di | j                  ¤Ž| _        n0| j                  €$t        «       | _        t        j                  d«       t        ‰| �$  di |¤Ž y )Nz@text_config is None, using default Gemma3TextConfig text config.zFvision_config is None, using default SiglipVisionConfig vision config.rA   )
rw   r   ÚloggerÚinfoÚ
isinstancerk   rx   r
   rF   rG   )rH   rI   rK   s     €rL   rG   zGemma3Config.__post_init__Ñ   s§   ø€ Ø×ÑÐ#Ü/Ó1ˆDÔÜ�K‰KÐZÕ[Ü˜×(Ñ(¬$Ô/Ü/ÑC°$×2BÑ2BÑCˆDÔä�d×(Ñ(¬$Ô/Ü!3Ñ!I°d×6HÑ6HÑ!IˆDÕØ×ÑÐ'Ü!3Ó!5ˆDÔÜ�K‰KÐ`Ôaä‰ÑÑ' Ó'rP   )r^   r_   r`   ra   rb   Úattribute_mapr   r
   Úsub_configsrw   rk   rh   r   rg   rx   ry   rf   rr   rs   rq   r)   ri   r0   rE   rG   rl   rm   s   @rL   ro   ro   �   sÍ   ø… ñð: €Jà-Ø)Ø)ñ€Mð (Ø+ñ€Kð
 =A€KÐ! D¨¨c¨¡NÑ2°TÑ9Ó@Ø@D€MÐ%¨¨S°#¨X©Ñ6¸Ñ=ÓDØ&)Ð˜˜t™Ó)Ø")€O�S˜4‘ZÓ)Ø")€O�S˜4‘ZÓ)Ø$+Ð�s˜T‘zÓ+Ø&*Ð�u˜t‘|Ó*Ø'+Ð˜ ™Ó+÷(ð (rP   ro   N)Útypingr   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   r   Úsiglipr
   Ú
get_loggerr^   r{   r   ro   Ú__all__rA   rP   rL   ú<module>r‡      s�   ðõ* å .å 3ß ,Ý 'ð 
ˆ×	Ñ	˜HÓ	%€ñ Ð1Ô2ØôwÐ'ó wó ó 3ðwñt Ð1Ô2Øô?(Ð#ó ?(ó ó 3ð?(ðD Ð-Ð
.�rP   