ó
    qyüi&  ã                   óÔ   • S SK Jr  S SKJr  SSKJr  SSKJrJr  SSK	J
r
  \R                  " \5      r\" SS	9\ " S
 S\5      5       5       r\" SS	9\ " S S\5      5       5       rSS/rg)é    )ÚAny)Ústricté   )ÚPreTrainedConfig)Úauto_docstringÚloggingé   )ÚSiglipVisionConfigzgoogle/gemma-3-4b-it)Ú
checkpointc            
       ó>  ^ • \ rS rSr% SrSrS/rSSSSSSSSSS.	rS	/S
/4SS/S/4S/S/4S.rSr	\
\S'   Sr\
\S'   Sr\
\S'   Sr\
\S'   Sr\
\S'   Sr\
\S'   Sr\
\S'   Sr\\S'   Sr\
\S'   S r\\S!'   S"r\\S#'   S$r\\S%'   S&r\
S'-  \S('   S)r\
\\
   -  S'-  \S*'   S+r\
S'-  \S,'   S$r\\S-'   S'r\ S'-  \S.'   S/r!\\S0'   S1r"\
\-  S'-  \S2'   Sr#\
\S3'   S4r$\
S'-  \S5'   S'r%\\   S'-  \S6'   S'r&\S'-  \S7'   S'r'\S'-  \S8'   S/r(\S'-  \S9'   S:S;S<.r)U 4S= jr*S> r+S? r,S@r-U =r.$ )AÚGemma3TextConfigé!   a�  
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                 ób  >• U R                   (       a  U R                  S-  S-   U l        UR                  SS5      U l        U R                  cM  [        U R                  5       Vs/ s H'  n[        US-   U R                  -  5      (       a  SOSPM)     snU l        [        TU ]$  " S0 UD6  g s  snf )Nr	   r.   Úsliding_window_patterné   Úsliding_attentionÚfull_attention© )
r:   r6   ÚgetÚ_sliding_window_patternr7   Úranger   ÚboolÚsuperÚ__post_init__)ÚselfÚkwargsÚiÚ	__class__s      €Úl/home/mande/repo/quber/.venv/lib/python3.13/site-packages/transformers/models/gemma3/configuration_gemma3.pyrH   ÚGemma3TextConfig.__post_init__h   sª   ø€ Ø×+×+Ø#'×#6Ñ#6¸!Ñ#;¸qÑ"@ˆDÔð (.§z¡zÐ2JÈAÓ'NˆÔ$à×ÑÑ#ô ˜t×5Ñ5Ô6ó â6�Aô (,¨Q°©U°d×6RÑ6RÑ,R×'SÑ'SÑ#ÐYiÒiÙ6ñ ˆDÔô
 	‰ÒÑ' Ó'ùò s   Á%.B,c                 óŠ   • U R                   U R                  -  S:w  a&  [        SU R                    SU R                   S35      eg)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)rI   s    rM   Úvalidate_architectureÚ&Gemma3TextConfig.validate_architecturew   sS   € à×Ñ˜d×6Ñ6Ñ6¸!Ó;ÜØ# D×$4Ñ$4Ð#5ð 6Ø×2Ñ2Ð3°2ð7óð ð <ó    c                 ó‚  • UR                  SS 5      nSS0SS0S.nU R                  b  U R                  OUU l        Ub  U R                  S   R                  U5        U R                  R                  S5      c  SS0U R                  S'   U R                  S   R	                  SUR                  SU R
                  S   5      5        U R                  R                  S5      c  SS0U R                  S'   U R                  S   R	                  SUR                  S	U R
                  S
   5      5        U R                  5         U$ )NÚrope_scalingÚ	rope_typeÚdefault)r@   rA   rA   Ú
rope_thetar;   r@   Úrope_local_base_freqr<   )Úpopr2   ÚupdaterC   Ú
setdefaultÚdefault_thetaÚstandardize_rope_params)rI   rJ   rU   Údefault_rope_paramss       rM   Úconvert_rope_params_to_dictÚ,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ô	
ð
 	×$Ñ$Ô&ØˆrS   )rD   r7   r2   r6   )/Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__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,   rF   r-   r/   Úlistr0   r1   r2   Údictr3   r4   r5   r6   r7   r8   r9   r:   r]   rH   rQ   r`   Ú__static_attributes__Ú__classcell__©rL   s   @rM   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õ(ò÷ð rS   r   c                   ó  ^ • \ rS rSr% SrSrSSSS.r\\S.r	S	r
\\\\4   -  S	-  \S
'   S	r\\\\4   -  S	-  \S'   Sr\S	-  \S'   Sr\S	-  \S'   Sr\S	-  \S'   Sr\S	-  \S'   Sr\S	-  \S'   Sr\S	-  \S'   U 4S jrSrU =r$ )ÚGemma3Configé�   aµ  
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_configNr~   r   r$   Úmm_tokens_per_imageiÿç i è i   r)   r*   Tr1   c                 óÒ  >• U R                   c%  [        5       U l         [        R                  S5        O9[	        U R                   [
        5      (       a  [        S0 U R                   D6U l         [	        U R                  [
        5      (       a  [        S0 U R                  D6U l        O1U R                  c$  [        5       U l        [        R                  S5        [        TU ]$  " S0 UD6  g )Nz@text_config is None, using default Gemma3TextConfig text config.zFvision_config is None, using default SiglipVisionConfig vision config.rB   )
r~   r   ÚloggerÚinfoÚ
isinstancerp   r   r
   rG   rH   )rI   rJ   rL   s     €rM   rH   Ú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ä‰ÒÑ' Ó'rS   )rb   rc   rd   re   rf   rg   Úattribute_mapr   r
   Úsub_configsr~   rp   rm   r   rl   r   r€   rk   ry   rz   rx   r*   rn   r1   rF   rH   rq   rr   rs   s   @rM   ru   ru   �   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‘|Ó*Ø'+Ð˜ ™Ó+÷(ó (rS   ru   N)Útypingr   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   r   Úsiglipr
   Ú
get_loggerrb   r‚   r   ru   Ú__all__rB   rS   rM   Ú<module>r�      sŽ   ðõ* å .å 3ß ,Ý 'ð 
×	Ò	˜HÓ	%€ñ Ð1Ñ2ØôwÐ'ó wó ó 3ðwñt Ð1Ñ2Øô?(Ð#ó ?(ó ó 3ð?(ðD Ð-Ð
.�rS   