ó
    qyüi\  ã                   óÒ   • S SK Jr  SSKJr  SSKJr  SSKJr  \" SS9\ " S S	\5      5       5       r\" SS9\ " S
 S\5      5       5       r	\" SS9\ " S S\5      5       5       r
/ SQrg)é    )Ústricté   )ÚPreTrainedConfig)ÚRopeParameters)Úauto_docstringzzai-org/GLM-4.1V-9B-Thinking)Ú
checkpointc                   óN  • \ rS rSr% SrSr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\\\   -  \\\4   -  \	S'   Sr\\\   -  \\\4   -  \	S'   Sr\\	S'   Sr\\	S'   Sr\\\   -  \\\4   -  \	S'   Sr\\	S'   Sr\\	S'   S r\\	S!'   S"rg#)$ÚGlm4vVisionConfigé   aü  
out_hidden_size (`int`, *optional*, defaults to 4096):
    The output hidden size of the vision model.

Example:

```python
>>> from transformers import Glm4vVisionConfig, Glm4vVisionModel

>>> # Initializing a Glm4vVisionConfig GLM-4.1V-9B style configuration
>>> configuration = Glm4vVisionConfig()

>>> # Initializing a model (with random weights) from the GLM-4.1V-9B configuration
>>> model = Glm4vVisionModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```Úglm4v_visionÚvision_configé   Údepthi   Úhidden_sizeÚsiluÚ
hidden_actFÚattention_biasç        Úattention_dropouté   Ú	num_headsr   Úin_channelsiP  Ú
image_sizeé   Ú
patch_sizeçñhãˆµøä>Úrms_norm_epsé   Úspatial_merge_sizeÚtemporal_patch_sizeé   Úout_hidden_sizeé€5  Úintermediate_sizeç{®Gáz”?Úinitializer_range© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú
model_typeÚbase_config_keyr   ÚintÚ__annotations__r   r   Ústrr   Úboolr   Úfloatr   r   r   ÚlistÚtupler   r   r   r    r"   r$   r&   Ú__static_attributes__r'   ó    Új/home/mande/repo/quber/.venv/lib/python3.13/site-packages/transformers/models/glm4v/configuration_glm4v.pyr
   r
      sð   ‡ ñð&  €JØ%€Oà€Eˆ3ƒOØ€K�ÓØ€J�ÓØ €N�DÓ Ø%(Ð�u˜s‘{Ó(Ø€IˆsÓØ€K�ÓØ47€J��d˜3‘i‘ %¨¨S¨¡/Ñ1Ó7Ø46€J��d˜3‘i‘ %¨¨S¨¡/Ñ1Ó6Ø€L�%ÓØÐ˜ÓØ=>Ð˜˜t C™y™¨5°°c°©?Ñ:Ó>Ø€O�SÓØ"Ð�sÓ"Ø#Ð�uÖ#r7   r
   c                   ó\  ^ • \ rS rSr% SrSrSrS/rSSSSSS	S
.rS/S/4SS/S/4S/S/4S.r	S1r
Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\S-  \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+'   U 4S, jr S-r!U =r"$ ).ÚGlm4vTextConfigéE   a\  
Example:

```python
>>> from transformers import Glm4vTextModel, Glm4vConfig

>>> # Initializing a GLM-4.1V style configuration
>>> configuration = Glm4vConfig()

>>> # Initializing a model from the GLM-4.1V style configuration
>>> model = Glm4vTextModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```Ú
glm4v_textÚtext_configÚpast_key_valuesÚcolwiseÚrowwiseÚcolwise_gather_outputÚrowwise_split_input)zlayers.*.self_attn.q_projzlayers.*.self_attn.k_projzlayers.*.self_attn.v_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ÚnormÚmrope_sectioni P Ú
vocab_sizer!   r   r#   r$   é(   Únum_hidden_layersé    Únum_attention_headsr   NÚnum_key_value_headsr   r   i €  Úmax_position_embeddingsr%   r&   r   r   TÚ	use_cacher   r   Úrope_parametersÚpad_token_idc                 ób   >• U R                   c  U R                  U l         [        TU ]  " S0 UD6  g )Nr'   )rP   rO   ÚsuperÚ__post_init__©ÚselfÚkwargsÚ	__class__s     €r8   rW   ÚGlm4vTextConfig.__post_init__z   s-   ø€ Ø×#Ñ#Ñ+Ø'+×'?Ñ'?ˆDÔ$ä‰ÒÑ' Ó'r7   )rP   )#r(   r)   r*   r+   r,   r-   r.   Úkeys_to_ignore_at_inferenceÚbase_model_tp_planÚbase_model_pp_planÚignore_keys_at_rope_validationrK   r/   r0   r   r$   rM   rO   rP   r   r1   rQ   r&   r3   r   rR   r2   r   rS   r   ÚdictrT   rW   r6   Ú__classcell__©r[   s   @r8   r:   r:   E   s-  ø‡ ñð  €JØ#€OØ#4Ð"5Ðð &/Ø%.Ø%.Ø%.Ø%<Ø"7ñÐð &˜¨Ð(9Ð:Ø#Ð%5Ð6¸Ð8IÐJØ!Ð" _Ð$5Ð6ñÐð
 '6Ð%6Ð"à€J�ÓØ€K�ÓØ"Ð�sÓ"ØÐ�sÓØ!Ð˜Ó!Ø&'Ð˜˜t™Ó'Ø€J�ÓØ#(Ð˜SÓ(Ø#Ð�uÓ#Ø€L�%ÓØ€IˆtÓØ%(Ð�u˜s‘{Ó(Ø48€O�^ dÑ*¨TÑ1Ó8Ø#€L�#˜‘*Ó#÷(ó (r7   r:   c                   óØ   ^ • \ rS rSr% SrSr\\S.rS/r	Sr
\\-  S-  \S'   Sr\\-  S-  \S'   S	r\\S
'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   U 4S jrSrU =r$ )ÚGlm4vConfigé�   aU  
image_start_token_id (`int`, *optional*, defaults to 151339):
    The image start token index to encode the start of image.
image_end_token_id (`int`, *optional*, defaults to 151340):
    The image end token index to encode the end of image.
video_start_token_id (`int`, *optional*, defaults to 151341):
    The video start token index to encode the start of video.
video_end_token_id (`int`, *optional*, defaults to 151342):
    The video end token index to encode the end of video.

```python
>>> from transformers import Glm4vForConditionalGeneration, Glm4vConfig

>>> # Initializing a GLM-4.1V style configuration
>>> configuration = Glm4vConfig()

>>> # Initializing a model from the GLM-4.1V style configuration
>>> model = Glm4vForConditionalGeneration(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```Úglm4v)r   r=   r>   Nr=   r   i/O Úimage_token_idi0O Úvideo_token_idi+O Úimage_start_token_idi,O Úimage_end_token_idi-O Úvideo_start_token_idi.O Úvideo_end_token_idFÚtie_word_embeddingsc                 óÒ  >• [        U R                  [        5      (       a%  U R                  S   " S0 U R                  D6U l        O'U R                  c  U R                  S   " S0 UD6U l        [        U R                  [        5      (       a%  U R                  S   " S0 U R                  D6U l        O'U R                  c  U R                  S   " S0 UD6U l        [
        TU ]  " S0 UD6  g )Nr   r=   r'   )Ú
isinstancer   ra   Úsub_configsr=   rV   rW   rX   s     €r8   rW   ÚGlm4vConfig.__post_init__©   sÉ   ø€ Ü�d×(Ñ(¬$×/Ñ/Ø!%×!1Ñ!1°/Ò!BÑ!XÀT×EWÑEWÑ!XˆDÕØ×ÑÑ'Ø!%×!1Ñ!1°/Ò!BÑ!LÀVÑ!LˆDÔä�d×&Ñ&¬×-Ñ-Ø#×/Ñ/°Ò>ÑRÀ×AQÑAQÑRˆDÕØ×ÑÑ%Ø#×/Ñ/°Ò>ÑHÀÑHˆDÔä‰ÒÑ' Ó'r7   )r=   r   )r(   r)   r*   r+   r,   r-   r
   r:   rq   r]   r=   ra   r   r0   r   rh   r/   ri   rj   rk   rl   rm   rn   r2   rW   r6   rb   rc   s   @r8   re   re   �   s¡   ø‡ ñð. €JØ$5ÀoÑV€KØ#4Ð"5Ðà26€K�Ð(Ñ(¨4Ñ/Ó6Ø48€M�4Ð*Ñ*¨TÑ1Ó8Ø €N�CÓ Ø €N�CÓ Ø &Ð˜#Ó&Ø$Ð˜Ó$Ø &Ð˜#Ó&Ø$Ð˜Ó$Ø %Ð˜Ó%÷(ó (r7   re   )re   r:   r
   N)Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úmodeling_rope_utilsr   Úutilsr   r
   r:   re   Ú__all__r'   r7   r8   Ú<module>rx      sœ   ðõ( /å 3Ý 1Ý #ñ Ð9Ñ:Øô%$Ð(ó %$ó ó ;ð%$ñP Ð9Ñ:Øô7(Ð&ó 7(ó ó ;ð7(ñt Ð9Ñ:Øô1(Ð"ó 1(ó ó ;ð1(òh B�r7   