§
    ‚ŠtjW  ã                   ó�   — d dl mZ ddlmZ ddlmZ ddlmZmZ  ed¬¦  «        e G d	„ d
e¦  «        ¦   «         ¦   «         Z	d
gZ
dS )é    )Ústricté   )ÚPreTrainedConfig)Úauto_docstringé   )ÚCONFIG_MAPPINGÚ
AutoConfigzlerobot/pi0_base)Ú
checkpointc                   ó  ‡ — e Zd ZU dZdZeedœZdZee	z  dz  e
d<   dZee	z  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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<   ˆ fd„Zd„ Zˆ xZS )Ú	PI0ConfigaÜ  
    vlm_config (`dict`, *optional*):
        Configuration for the vlm backbone (PaliGemmaModel).
    dit_config (`dict`, *optional*):
        Configuration for the DiT backbone. Defaults to a Gemma 300M variant.
    chunk_size (`int`, *optional*, defaults to 50):
        Number of action steps to predict per chunk.
    max_state_dim (`int`, *optional*, defaults to 32):
        Maximum state vector dimension (shorter vectors are zero-padded).
    max_action_dim (`int`, *optional*, defaults to 32):
        Maximum action vector dimension (shorter vectors are zero-padded).
    num_inference_steps (`int`, *optional*, defaults to 10):
        Number of denoising steps during inference.
    time_sampling_beta_alpha (`float`, *optional*, defaults to 1.5):
        Alpha parameter for Beta distribution used to sample diffusion time during training.
    time_sampling_beta_beta (`float`, *optional*, defaults to 1.0):
        Beta parameter for Beta distribution used to sample diffusion time during training.
    time_sampling_scale (`float`, *optional*, defaults to 0.999):
        Scale factor for sampled time values.
    time_sampling_offset (`float`, *optional*, defaults to 0.001):
        Offset added to sampled time values.
    min_period (`float`, *optional*, defaults to 0.004):
        Minimum period for sinusoidal time embedding.
    max_period (`float`, *optional*, defaults to 4.0):
        Maximum period for sinusoidal time embedding.
    loss_reduction (`str`, *optional*, defaults to `"mean"`):
        The reduction to use on MSE loss.

    Example:
    ```python
    >>> from transformers import PI0ForConditionalGeneration, PI0Config

    >>> config = PI0Config()
    >>> model = PI0ForConditionalGeneration(config)
    ```
    Úpi0)Ú
vlm_configÚ
dit_configNr   r   é2   Ú
chunk_sizeé    Úmax_state_dimÚmax_action_dimé
   Únum_inference_stepsg      ø?Útime_sampling_beta_alphag      ð?Útime_sampling_beta_betag+‡ÙÎ÷ï?Útime_sampling_scalegü©ñÒMbP?Útime_sampling_offsetgü©ñÒMbp?Ú
min_periodg      @Ú
max_periodÚmeanÚloss_reductionc                 ó°  •— t          | j        t          ¦  «        r8| j                             dd¦  «        }t	          |         di | j        ¤Ž| _        n7| j        €0t	          d         ddddddd	d
œdddddddd	ddœ	dd	¬¦  «        | _        t          | j        t          ¦  «        r8| j                             dd¦  «        }t	          |         di | j        ¤Ž| _        n7| j        €0t	          d         dddddd| j        j        j        ¬¦  «        | _        d| j        _        d| j        _	        d| j        j        _	         t          ¦   «         j        di |¤Ž d S )NÚ
model_typeÚ	paligemmaÚgemmai   é   i @  é   é   i€ì )r    Úhidden_sizeÚnum_hidden_layersÚintermediate_sizeÚnum_attention_headsÚnum_key_value_headsÚ
vocab_sizeÚsiglip_vision_modeliÐ  i€  é   éà   é   é   F)	r    r(   r&   Ú
patch_sizeÚ
image_sizer'   r)   r+   Úvision_use_head)Útext_configÚvision_configÚprojection_dimÚimage_token_idi   i   é   )r&   r'   r(   r)   r*   Úhead_dimr+   T© )Ú
isinstancer   ÚdictÚgetr   r   r4   r+   Ú	is_causalÚuse_bidirectional_attentionÚsuperÚ__post_init__)ÚselfÚkwargsÚvlm_model_typeÚdit_model_typeÚ	__class__s       €úg/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/pi0/configuration_pi0.pyrA   zPI0Config.__post_init__T   sŽ  ø€ Ý�d”o¥tÑ,Ô,ð 	Ø!œ_×0Ò0°¸{ÑKÔKˆNÝ,¨^Ô<ÐOÐO¸t¼ÐOÐOˆDŒOˆOØŒ_Ð$Ý,¨[Ô9à")Ø#'Ø)+Ø).Ø+,Ø+,Ø"(ðð ð #8Ø)-Ø#'Ø"$Ø"%Ø)+Ø+-Ø"(Ø',ð
ð 
ð  $Ø%ð-ñ ô ˆDŒOõ2 �d”o¥tÑ,Ô,ð 	Ø!œ_×0Ò0°¸wÑGÔGˆNÝ,¨^Ô<ÐOÐO¸t¼ÐOÐOˆDŒOˆOØŒ_Ð$Ý,¨WÔ5Ø Ø"$Ø"&Ø$%Ø$%ØØœ?Ô6ÔAðñ ô ˆDŒOð %)ˆŒÔ!Ø6:ˆŒÔ3ØBFˆŒÔ#Ô?Ø�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'ó    c                 óp   — | j         j        dz  dk    r"t          d| j        j         j        › d�¦  «        ‚dS )zOPart of `@strict`-powered validation. Validates the architecture of the config.r   r   zDiT hidden dim=(z) must be divisible by 2N)r   r&   Ú
ValueErrorÚconfig)rB   s    rG   Úvalidate_architecturezPI0Config.validate_architecture†   sA   € àŒ?Ô&¨Ñ*¨aÒ/Ð/ÝÐl°´Ô0FÔ0RÐlÐlÐlÑmÔmÐmð 0Ð/rH   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r    r	   Úsub_configsr   r<   r   Ú__annotations__r   r   Úintr   r   r   r   Úfloatr   r   r   r   r   r   ÚstrrA   rL   Ú__classcell__)rF   s   @rG   r   r      s[  ø€ € € € € € ð#ð #ðJ €JØ!+¸:ÐFÐF€Kà15€J�Ð'Ñ'¨$Ñ.Ð5Ð5Ñ5Ø15€J�Ð'Ñ'¨$Ñ.Ð5Ð5Ñ5Ø€J�ÐÐÑØ€M�3ÐÐÑØ€N�CÐÐÑØ!Ð˜Ð!Ð!Ñ!Ø&)Ð˜eÐ)Ð)Ñ)Ø%(Ð˜UÐ(Ð(Ñ(Ø!&Ð˜Ð&Ð&Ñ&Ø"'Ð˜%Ð'Ð'Ñ'Ø€J�ÐÐÑØ€J�ÐÐÑØ €N�CÐ Ð Ñ ð0(ð 0(ð 0(ð 0(ð 0(ðdnð nð nð nð nð nð nrH   r   N)Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   Úautor   r	   r   Ú__all__r:   rH   rG   ú<module>r\      sÃ   ðð( /Ð .Ð .Ð .Ð .Ð .à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø #Ð #Ð #Ð #Ð #Ð #Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -ð €Ð-Ð.Ñ.Ô.Øðlnð lnð lnð lnð lnÐ ñ lnô lnñ „ñ /Ô.ðlnð^ ˆ-€€€rH   