Ë
    ÛÓ^j”  ã                   ó   — d Z 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mZ  e	j                  e«      Z ed	¬
«      e G d„ de«      «       «       Z ed	¬
«      e G d„ de«      «       «       Z ed	¬
«      e G d„ de«      «       «       Zg d¢Zy)z InstructBLIP model configurationé    )Ústricté   )ÚPreTrainedConfig)Ú!MODEL_FOR_CAUSAL_LM_MAPPING_NAMES)Úauto_docstringÚloggingé   )ÚCONFIG_MAPPINGÚ
AutoConfigz"Salesforce/instructblip-flan-t5-xl)Ú
checkpointc                   óò   — e Zd ZU dZdZ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e   z  eeef   z  ed<   dZeee   z  eeef   z  ed<   dZeed<   dZeed<   dZeez  ed<   dZeed<   dZeed<   y)ÚInstructBlipVisionConfiga*  
    Example:

    ```python
    >>> from transformers import InstructBlipVisionConfig, InstructBlipVisionModel

    >>> # Initializing a InstructBlipVisionConfig with Salesforce/instructblip-flan-t5-xl style configuration
    >>> configuration = InstructBlipVisionConfig()

    >>> # Initializing a InstructBlipVisionModel (with random weights) from the Salesforce/instructblip-flan-t5-xl style configuration
    >>> model = InstructBlipVisionModel(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Úinstructblip_vision_modelÚvision_configé€  Úhidden_sizei   Úintermediate_sizeé'   Únum_hidden_layersé   Únum_attention_headséà   Ú
image_sizeé   Ú
patch_sizeÚgeluÚ
hidden_actg�íµ ÷Æ°>Úlayer_norm_epsg        Úattention_dropoutg»½×Ùß|Û=Úinitializer_rangeTÚqkv_biasN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
model_typeÚbase_config_keyr   ÚintÚ__annotations__r   r   r   r   ÚlistÚtupler   r   Ústrr   Úfloatr   r    r!   Úbool© ó    ú†/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/instructblip/configuration_instructblip.pyr   r      s´   … ñð  -€JØ%€Oà€K�ÓØ!Ð�sÓ!ØÐ�sÓØ!Ð˜Ó!Ø47€J��d˜3‘i‘ %¨¨S¨¡/Ñ1Ó7Ø46€J��d˜3‘i‘ %¨¨S¨¡/Ñ1Ó6Ø€J�ÓØ €N�EÓ Ø%(Ð�u˜s‘{Ó(Ø$Ð�uÓ$Ø€HˆdÔr0   r   c                   óð   — e Zd ZU dZdZ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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dz  ed<   dZeed<   dZeed<   y)ÚInstructBlipQFormerConfiga  
    cross_attention_frequency (`int`, *optional*, defaults to 2):
        The frequency of adding cross-attention to the Transformer layers.
    encoder_hidden_size (`int`, *optional*, defaults to 1408):
        The hidden size of the hidden states for cross-attention.

    Examples:

    ```python
    >>> from transformers import InstructBlipQFormerConfig, InstructBlipQFormerModel

    >>> # Initializing a InstructBLIP Salesforce/instructblip-flan-t5-xl style configuration
    >>> configuration = InstructBlipQFormerConfig()

    >>> # Initializing a model (with random weights) from the Salesforce/instructblip-flan-t5-xl style configuration
    >>> model = InstructBlipQFormerModel(configuration)
    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Úinstructblip_qformerÚqformer_configi:w  Ú
vocab_sizei   r   é   r   r   i   r   r   r   gš™™™™™¹?Úhidden_dropout_probÚattention_probs_dropout_probi   Úmax_position_embeddingsç{®Gáz”?r    gê-�™—q=r   r   NÚpad_token_idr	   Úcross_attention_frequencyr   Úencoder_hidden_size)r"   r#   r$   r%   r&   r'   r6   r(   r)   r   r   r   r   r   r,   r8   r-   r9   r:   r    r   r<   r=   r>   r/   r0   r1   r3   r3   >   s´   … ñð( (€JØ&€Oà€J�ÓØ€K�ÓØÐ�sÓØ!Ð˜Ó!Ø!Ð�sÓ!Ø€J�ÓØ'*Ð˜ ™Ó*Ø03Ð  %¨#¡+Ó3Ø#&Ð˜SÓ&Ø#Ð�uÓ#Ø!€N�EÓ!Ø €L�#˜‘*Ó Ø%&Ð˜sÓ&Ø#Ð˜Ô#r0   r3   c                   óÈ   ‡ — e Zd ZU dZdZddiZe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z  dz  ed	<   d
Zeed<   dZedz  ed<   dZeed<   dZeed<   ˆ fd„Zˆ xZS )ÚInstructBlipConfigaÁ  
    qformer_config (`dict`, *optional*):
        Dictionary of configuration options used to initialize [`InstructBlipQFormerConfig`].
    num_query_tokens (`int`, *optional*, defaults to 32):
        The number of query tokens passed through the Transformer.

    Example:

    ```python
    >>> from transformers import (
    ...     InstructBlipVisionConfig,
    ...     InstructBlipQFormerConfig,
    ...     OPTConfig,
    ...     InstructBlipConfig,
    ...     InstructBlipForConditionalGeneration,
    ... )

    >>> # Initializing a InstructBlipConfig with Salesforce/instructblip-flan-t5-xl style configuration
    >>> configuration = InstructBlipConfig()

    >>> # Initializing a InstructBlipForConditionalGeneration (with random weights) from the Salesforce/instructblip-flan-t5-xl style configuration
    >>> model = InstructBlipForConditionalGeneration(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config

    >>> # We can also initialize a InstructBlipConfig from a InstructBlipVisionConfig, InstructBlipQFormerConfig and any PreTrainedConfig

    >>> # Initializing InstructBLIP vision, InstructBLIP Q-Former and language model configurations
    >>> vision_config = InstructBlipVisionConfig()
    >>> qformer_config = InstructBlipQFormerConfig()
    >>> text_config = OPTConfig()

    >>> config = InstructBlipConfig(vision_config=vision_config, qformer_config=qformer_config, text_config=text_config)
    ```ÚinstructblipÚimage_token_idÚimage_token_index)Útext_configr5   r   Nr   r5   rD   é    Únum_query_tokensg      ð?Úinitializer_factorr;   r    c                 óR  •— | j                   €(t        d   «       | _         t        j                  d«       nSt	        | j                   t
        «      r9| j                   j                  dd«      }t        |   di | j                   ¤Ž| _         | j                  €%t        «       | _        t        j                  d«       n4t	        | j                  t
        «      rt        di | j                  ¤Ž| _        | j                  €%t        «       | _	        t        j                  d«       n4t	        | j                  t
        «      rt        di | j                  ¤Ž| _	        | j                  j                  | j                  _        | j                   j                  t        v | _        t!        ‰| �D  di |¤Ž y )NÚoptzTtext_config is None. Initializing the text config with default values (`OPTConfig`).r&   zWqformer_config is None. Initializing the InstructBlipQFormerConfig with default values.z[`vision_config` is `None`. initializing the `InstructBlipVisionConfig` with default values.r/   )rD   r
   ÚloggerÚinfoÚ
isinstanceÚdictÚgetr5   r3   r   r   r   r>   r&   r   Úuse_decoder_only_language_modelÚsuperÚ__post_init__)ÚselfÚkwargsÚtext_model_typeÚ	__class__s      €r1   rQ   z InstructBlipConfig.__post_init__¡   sG  ø€ Ø×ÑÐ#Ü-¨eÑ4Ó6ˆDÔÜ�K‰KÐnÕoÜ˜×(Ñ(¬$Ô/Ø"×.Ñ.×2Ñ2°<ÀÓGˆOÜ-¨oÑ>ÑRÀ×AQÑAQÑRˆDÔà×ÑÐ&Ü";Ó"=ˆDÔÜ�K‰KÐqÕrÜ˜×+Ñ+¬TÔ2Ü";Ñ"R¸d×>QÑ>QÑ"RˆDÔà×ÑÐ%Ü!9Ó!;ˆDÔÜ�K‰KÐuÕvÜ˜×*Ñ*¬DÔ1Ü!9Ñ!O¸D×<NÑ<NÑ!OˆDÔà26×2DÑ2D×2PÑ2Pˆ×ÑÔ/Ø/3×/?Ñ/?×/JÑ/JÔNoÐ/oˆÔ,Ü‰ÑÑ' Ó'r0   )r"   r#   r$   r%   r&   Úattribute_mapr   r3   r   Úsub_configsr   rM   r   r)   r5   rD   rF   r(   rC   rG   r-   r    rQ   Ú__classcell__)rU   s   @r1   r@   r@   h   sª   ø… ñ"ðH  €JàÐ-ð€Mð "Ø3Ø1ñ€Kð 59€M�4Ð*Ñ*¨TÑ1Ó8Ø59€N�DÐ+Ñ+¨dÑ2Ó9Ø26€K�Ð(Ñ(¨4Ñ/Ó6ØÐ�cÓØ$(Ð�s˜T‘zÓ(Ø #Ð˜Ó#Ø#Ð�uÓ#÷(ð (r0   r@   )r@   r3   r   N)r%   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úmodels.auto.modeling_autor   Úutilsr   r   Úautor
   r   Ú
get_loggerr"   rJ   r   r3   r@   Ú__all__r/   r0   r1   ú<module>r`      s¼   ðñ 'å .å 3Ý Jß ,ß -ð 
ˆ×	Ñ	˜HÓ	%€ñ Ð?Ô@ØôÐ/ó ó ó AðñB Ð?Ô@Øô%$Ð 0ó %$ó ó Að%$ñP Ð?Ô@ØôM(Ð)ó M(ó ó AðM(ò` Z�r0   