§
    ‚Štjš-  ã                   óö  — d Z ddlmZ ddlmZ ddl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 ed¬¦  «        e G d„ de¦  «        ¦   «         ¦   «         Z ed¬¦  «        e G d„ de¦  «        ¦   «         ¦   «         Zg d¢ZdS )zBlt model configurationé    )Ústricté   )ÚPreTrainedConfig)ÚRopeParameters)Úauto_docstringÚloggingzitazap/blt-1b-hf)Ú
checkpointc                   ó4  ‡ — e Zd ZU dZdZdZdZe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ed<   dZeed<   dZedz  ed<   dZeed<   dZeed<   dZeez  dz  ed<   dZe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<   ˆ fd „Zˆ xZS )!ÚBltLocalEncoderConfigáb  
    cross_attn_all_layers (`bool`, *optional*, defaults to `True`):
        Whether all attention layers have cross attention.
    cross_attn_k (`int`, *optional*, defaults to 2):
        Number of cross-attention heads used in the model.
    hidden_size_global (`int`, *int*, defaults to 2048):
        Hidden size of the global transformer layer.
    Úblt_local_encoderç    €„Aé  Ú
vocab_sizeFNÚcross_attn_all_layersé   Úcross_attn_ké   Úhidden_size_globalé   Úhidden_sizeé   Únum_attention_headsÚnum_key_value_headsé   Únum_hidden_layersçñhãˆµøä>Úrms_norm_epsç        Údropouté `  Úmax_position_embeddingsÚrope_parametersÚsiluÚ
hidden_actÚintermediate_sizeç{®Gáz”?Úinitializer_rangec                 óº   •— | j         p| j        | _         | j        pt          d| j        z  dz  ¦  «        | _        d| _         t          ¦   «         j        di |¤Ž d S ©Né   r   F© )r   r   r&   Úintr   Útie_word_embeddingsÚsuperÚ__post_init__©ÚselfÚkwargsÚ	__class__s     €úg/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/blt/configuration_blt.pyr0   z#BltLocalEncoderConfig.__post_init__9   sg   ø€ Ø#'Ô#;Ð#W¸tÔ?WˆÔ Ø!%Ô!7Ð!X½3¸qÀ4ÔCSÑ?SÐVWÑ?WÑ;XÔ;XˆÔØ#(ˆÔ Ø�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
model_typeÚdefault_thetar   r-   Ú__annotations__r   Úboolr   r   r   r   r   r   r   Úfloatr    r"   r#   r   Údictr%   Ústrr&   r(   r0   Ú__classcell__©r4   s   @r5   r   r      so  ø€ € € € € € ðð ð %€JØ€Mà€J�ÐÐÑØ).Ð˜4 $™;Ð.Ð.Ñ.Ø €L�#˜‘*Ð Ð Ñ Ø%)Ð˜˜d™
Ð)Ð)Ñ)Ø€K�ÐÐÑØ!Ð˜Ð!Ð!Ñ!Ø&*Ð˜˜t™Ð*Ð*Ñ*ØÐ�sÐÐÑØ€L�%ÐÐÑØ"%€GˆU�S‰[˜4ÑÐ%Ð%Ñ%Ø#(Ð˜SÐ(Ð(Ñ(Ø48€O�^ dÑ*¨TÑ1Ð8Ð8Ñ8Ø€J�ÐÐÑØ$(Ð�s˜T‘zÐ(Ð(Ñ(Ø#Ð�uÐ#Ð#Ñ#ð(ð (ð (ð (ð (ð (ð (ð (ð (r6   r   c                   óŠ  ‡ — e Zd ZU dZdZdZdZe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ed<   dZeed<   dZedz  ed<   dZeed<   dZeed<   dZeez  dz  ed<   dZe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dz  ed!<   dZedz  ed"<   dZeee         z  dz  ed#<   d$Z e
ed%<   ˆ fd&„Z!ˆ xZ"S )'ÚBltLocalDecoderConfigr   Úblt_local_decoderr   r   r   TNr   r   r   r   r   r   r   r   r   r   é	   r   r   r   r   r    r!   r"   r#   r$   r%   i   r&   r'   r(   Úpad_token_idÚbos_token_idÚeos_token_idFr.   c                 óâ   •— | j         p| j        | _         | j        | j        z  | _        | j        pt          d| j        z  dz  ¦  «        | _        d| _         t          ¦   «         j        di |¤Ž d S r*   ©	r   r   r   Úhead_dimr&   r-   r.   r/   r0   r1   s     €r5   r0   z#BltLocalDecoderConfig.__post_init__c   sy   ø€ Ø#'Ô#;Ð#W¸tÔ?WˆÔ ØÔ(¨DÔ,DÑDˆŒØ!%Ô!7Ð!X½3¸qÀ4ÔCSÑ?SÐVWÑ?WÑ;XÔ;XˆÔØ#(ˆÔ Ø�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'r6   )#r7   r8   r9   r:   r;   r<   r   r-   r=   r   r>   r   r   r   r   r   r   r   r?   r    r"   r#   r   r@   r%   rA   r&   r(   rH   rI   rJ   Úlistr.   r0   rB   rC   s   @r5   rE   rE   @   sÁ  ø€ € € € € € ðð ð %€JØ€Mà€J�ÐÐÑØ)-Ð˜4 $™;Ð-Ð-Ñ-Ø €L�#˜‘*Ð Ð Ñ Ø%)Ð˜˜d™
Ð)Ð)Ñ)Ø€K�ÐÐÑØ!Ð˜Ð!Ð!Ñ!Ø&*Ð˜˜t™Ð*Ð*Ñ*ØÐ�sÐÐÑØ€L�%ÐÐÑØ"%€GˆU�S‰[˜4ÑÐ%Ð%Ñ%Ø#(Ð˜SÐ(Ð(Ñ(Ø48€O�^ dÑ*¨TÑ1Ð8Ð8Ñ8Ø€J�ÐÐÑØ!Ð�sÐ!Ð!Ñ!Ø#Ð�uÐ#Ð#Ñ#Ø#€L�#˜‘*Ð#Ð#Ñ#Ø#€L�#˜‘*Ð#Ð#Ñ#Ø+/€L�#˜˜Sœ	‘/ DÑ(Ð/Ð/Ñ/Ø %Ð˜Ð%Ð%Ñ%ð(ð (ð (ð (ð (ð (ð (ð (ð (r6   rE   c                   óî   ‡ — e Zd ZU dZdZ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<   dZeez  dz  ed<   dZe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<   ˆ fd„Zˆ xZS )ÚBltGlobalTransformerConfigÚblt_global_transformerr   r   r   r   r   Nr   é   r   r   r   r   r    é   r"   r#   r$   r%   i   r&   r'   r(   Fr.   c                 óâ   •— | j         p| j        | _         | j        | j        z  | _        | j        pt          d| j        z  dz  ¦  «        | _        d| _         t          ¦   «         j        di |¤Ž d S r*   rL   r1   s     €r5   r0   z(BltGlobalTransformerConfig.__post_init__~   sy   ø€ Ø#'Ô#;Ð#W¸tÔ?WˆÔ ØÔ(¨DÔ,DÑDˆŒØ!%Ô!7Ð!X½3¸qÀ4ÔCSÑ?SÐVWÑ?WÑ;XÔ;XˆÔØ#(ˆÔ à�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'r6   )r7   r8   r9   r;   r<   r   r-   r=   r   r   r   r   r?   r    r"   r#   r   r@   r%   rA   r&   r(   r.   r>   r0   rB   rC   s   @r5   rP   rP   k   s$  ø€ € € € € € ð *€JØ€Mà€K�ÐÐÑØ!Ð˜Ð!Ð!Ñ!Ø&*Ð˜˜t™Ð*Ð*Ñ*ØÐ�sÐÐÑØ€L�%ÐÐÑØ"%€GˆU�S‰[˜4ÑÐ%Ð%Ñ%Ø#'Ð˜SÐ'Ð'Ñ'Ø48€O�^ dÑ*¨TÑ1Ð8Ð8Ñ8Ø€J�ÐÐÑØ!Ð�sÐ!Ð!Ñ!Ø#Ð�uÐ#Ð#Ñ#Ø %Ð˜Ð%Ð%Ñ%ð(ð (ð (ð (ð (ð (ð (ð (ð (r6   rP   c                   óê   ‡ — e Zd ZU 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d
z  ed<   dZeed<   dZeed<   dZeez  d
z  ed<   dZeed<   d
Zeez  d
z  ed<   dZeed<   dZeed<   ˆ fd„Zˆ xZS )ÚBltPatcherConfigÚblt_patcherr   r   i   r   é   r   é   r   Nr   i    r"   r   r   r   r    r   r&   r#   r'   r(   Fr.   c                 óð   •— | j         p| j        | _         | j        | j        z  | _        | j        pt          d| j        z  dz  ¦  «        | _        d| _        d| _         t          ¦   «         j	        di |¤Ž d S )Nr+   r   Fr$   r,   )
r   r   r   rM   r&   r-   r.   r%   r/   r0   r1   s     €r5   r0   zBltPatcherConfig.__post_init__™   s€   ø€ Ø#'Ô#;Ð#W¸tÔ?WˆÔ ØÔ(¨DÔ,DÑDˆŒØ!%Ô!7Ð!X½3¸qÀ4ÔCSÑ?SÐVWÑ?WÑ;XÔ;XˆÔØ#(ˆÔ Ø ˆŒà�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'r6   )r7   r8   r9   r;   r   r-   r=   r   r   r   r   r"   r   r?   r    r&   r#   r   r@   r(   r.   r>   r0   rB   rC   s   @r5   rV   rV   ‡   s  ø€ € € € € € ð €Jà€J�ÐÐÑØ€K�ÐÐÑØÐ�sÐÐÑØ!Ð˜Ð!Ð!Ñ!Ø&*Ð˜˜t™Ð*Ð*Ñ*Ø#'Ð˜SÐ'Ð'Ñ'Ø€L�%ÐÐÑØ"%€GˆU�S‰[˜4ÑÐ%Ð%Ñ%Ø!Ð�sÐ!Ð!Ñ!Ø48€O�^ dÑ*¨TÑ1Ð8Ð8Ñ8Ø#Ð�uÐ#Ð#Ñ#Ø %Ð˜Ð%Ð%Ñ%ð(ð (ð (ð (ð (ð (ð (ð (ð (r6   rV   c                   ó*  ‡ — e Zd ZU dZdZdgZdZeee	e
dœZdZeed<   dZe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<   dZedz  ed<   dZee         dz  ed<   dZedz  ed<   dZe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 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dz  ed#<   dZ'edz  ed$<   dZ(eee         z  dz  ed%<   d&Z)eed'<   dZ*e+ez  dz  ed(<   ˆ fd)„Z,ˆ xZ-S )*Ú	BltConfiga  
    patch_in_forward (`bool`, *optional*, defaults to `True`):
        Whether to perform patching during the forward pass.
    patch_size (`int`, *optional*, defaults to 4):
        Size of the patches used in the patching mechanism.
    patching_mode (`str`, *optional*, defaults to `"entropy"`):
        The mode used for patching, such as entropy-based patching.
    patching_threshold (`float`, *optional*, defaults to 1.34):
        Threshold value used for determining when to apply patches.
    patching_batch_size (`int`, *optional*, defaults to 1):
        Batch size used during the patching process.
    max_patch_length (`int`, *optional*):
        Maximum length of patches that can be generated.
    cross_attn_k (`int`, *optional*, defaults to 2):
        Number of cross-attention heads used in the model.
    encoder_hash_byte_group_size (`list`, *optional*):
        List of byte group sizes used in the encoder hash function.
    encoder_hash_byte_group_vocab (`int`, *optional*, defaults to 500002):
        Vocabulary size for the encoder hash byte groups.
    encoder_hash_byte_group_nb_functions (`int`, *optional*, defaults to 1):
        Number of hash functions used in the encoder byte grouping.
    patcher_config (`BltPatcherConfig`, *optional*):
        Configuration for the patcher component of the model.
    global_config (`BltGlobalTransformerConfig`, *optional*):
        Configuration for the global transformer component of the model.

    Example:
    ```python
    >>> from transformers import BltModel, BltConfig

    >>> # Initializing a Blt configuration
    >>> configuration = BltConfig()

    >>> # Initializing a model from the configuration
    >>> model = BltModel(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```ÚbltÚpast_key_valuesr   )Úpatcher_configÚencoder_configÚdecoder_configÚglobal_configr   r   rS   r"   TNÚpatch_in_forwardé   Ú
patch_sizeÚentropyÚpatching_modeg   €ø]õ?Úpatching_thresholdr   Úpatching_batch_sizeÚmax_patch_lengthr   r   Úencoder_hash_byte_group_sizei"¡ Úencoder_hash_byte_group_vocabÚ$encoder_hash_byte_group_nb_functionsr_   r`   ra   rb   Fr.   Ú	use_cacherH   rI   rJ   r'   r(   r#   c                 ó  •— | j         pg d¢| _         | j        €5t          | j        ¬¦  «        | _        t                               d¦  «         nPt          | j        t          ¦  «        r6| j                             d| j        ¦  «         t          di | j        ¤Ž| _        | j	        €5t          | j        ¬¦  «        | _	        t                               d¦  «         nPt          | j	        t          ¦  «        r6| j	                             d| j        ¦  «         t          di | j	        ¤Ž| _	        | j        €5t          | j        ¬¦  «        | _        t                               d¦  «         nPt          | j        t          ¦  «        r6| j                             d| j        ¦  «         t          di | j        ¤Ž| _        | j        €5t          | j        ¬¦  «        | _        t                               d¦  «         nPt          | j        t          ¦  «        r6| j                             d| j        ¦  «         t          di | j        ¤Ž| _        | j	        j        | j        z  }|| j        j        k    r|nd | j        _         t%          ¦   «         j        di |¤Ž d S )	N)r   rd   é   é   é   r+   )r(   z8patcher_config is None, using default Blt patcher configr(   z8encoder_config is None, using default Blt encoder configz8decoder_config is None, using default Blt decoder configz6global_config is None, using default Blt global configr,   )rk   r_   rV   r(   ÚloggerÚinfoÚ
isinstancer@   Ú
setdefaultr`   r   ra   rE   rb   rP   r   r   Úencoder_cross_output_sizer/   r0   )r2   r3   rw   r4   s      €r5   r0   zBltConfig.__post_init__ð   s€  ø€ Ø,0Ô,MÐ,cÐQcÐQcÐQcˆÔ)ð ÔÐ&Ý"2ÀTÔE[Ð"\Ñ"\Ô"\ˆDÔÝ�KŠKÐRÑSÔSÐSÐSÝ˜Ô+­TÑ2Ô2ð 	JØÔ×*Ò*Ð+>ÀÔ@VÑWÔWÐWÝ"2Ð"IÐ"I°TÔ5HÐ"IÐ"IˆDÔàÔÐ&Ý"7È$ÔJ`Ð"aÑ"aÔ"aˆDÔÝ�KŠKÐRÑSÔSÐSÐSÝ˜Ô+­TÑ2Ô2ð 	OØÔ×*Ò*Ð+>ÀÔ@VÑWÔWÐWÝ"7Ð"NÐ"N¸$Ô:MÐ"NÐ"NˆDÔàÔÐ&Ý"7È$ÔJ`Ð"aÑ"aÔ"aˆDÔÝ�KŠKÐRÑSÔSÐSÐSÝ˜Ô+­TÑ2Ô2ð 	OØÔ×*Ò*Ð+>ÀÔ@VÑWÔWÐWÝ"7Ð"NÐ"N¸$Ô:MÐ"NÐ"NˆDÔàÔÐ%Ý!;ÈdÔNdÐ!eÑ!eÔ!eˆDÔÝ�KŠKÐPÑQÔQÐQÐQÝ˜Ô*­DÑ1Ô1ð 	RØÔ×)Ò)Ð*=¸tÔ?UÑVÔVÐVÝ!;Ð!QÐ!Q¸dÔ>PÐ!QÐ!QˆDÔð %)Ô$7Ô$CÀdÔFWÑ$WÐ!à)BÀdÔFXÔFdÒ)dÐ)dÐ%Ð%Ðjnð 	ÔÔ4ð 	�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'r6   ).r7   r8   r9   r:   r;   Úkeys_to_ignore_at_inferencer<   rV   r   rE   rP   Úsub_configsr   r-   r=   r"   rc   r>   re   rg   rA   rh   r?   ri   rj   r   rk   rN   rl   rm   r_   r@   r   r`   ra   rb   r.   rn   rH   rI   rJ   r(   r#   r   r0   rB   rC   s   @r5   r\   r\   £   sf  ø€ € € € € € ð&ð &ðP €JØ#4Ð"5ÐØ€Mà*Ø/Ø/Ø3ð	ð €Kð €J�ÐÐÑØ#'Ð˜SÐ'Ð'Ñ'Ø$(Ð�d˜T‘kÐ(Ð(Ñ(Ø€J��d‘
ÐÐÑØ )€M�3˜‘:Ð)Ð)Ñ)Ø'8Ð˜ ™Ð8Ð8Ñ8Ø&'Ð˜˜t™Ð'Ð'Ñ'Ø#'Ð�c˜D‘jÐ'Ð'Ñ'Ø €L�#˜‘*Ð Ð Ñ Ø59Ð  $ s¤)¨dÑ"2Ð9Ð9Ñ9Ø06Ð! 3¨¡:Ð6Ð6Ñ6Ø78Ð(¨#°©*Ð8Ð8Ñ8Ø59€N�DÐ+Ñ+¨dÑ2Ð9Ð9Ñ9Ø59€N�DÐ+Ñ+¨dÑ2Ð9Ð9Ñ9Ø59€N�DÐ+Ñ+¨dÑ2Ð9Ð9Ñ9Ø48€M�4Ð*Ñ*¨TÑ1Ð8Ð8Ñ8Ø %Ð˜Ð%Ð%Ñ%Ø€IˆtÐÐÑØ#€L�#˜‘*Ð#Ð#Ñ#Ø#€L�#˜‘*Ð#Ð#Ñ#Ø+/€L�#˜˜Sœ	‘/ DÑ(Ð/Ð/Ñ/Ø#Ð�uÐ#Ð#Ñ#Ø48€O�^ dÑ*¨TÑ1Ð8Ð8Ñ8ð&(ð &(ð &(ð &(ð &(ð &(ð &(ð &(ð &(r6   r\   )r\   rV   r   rE   rP   N)r:   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úmodeling_rope_utilsr   Úutilsr   r   Ú
get_loggerr7   rs   r   rE   rP   rV   r\   Ú__all__r,   r6   r5   ú<module>r€      s  ðð Ð à .Ð .Ð .Ð .Ð .Ð .à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,ð 
ˆÔ	˜HÑ	%Ô	%€ð €Ð-Ð.Ñ.Ô.Øð!(ð !(ð !(ð !(ð !(Ð,ñ !(ô !(ñ „ñ /Ô.ð!(ðH €Ð-Ð.Ñ.Ô.Øð&(ð &(ð &(ð &(ð &(Ð,ñ &(ô &(ñ „ñ /Ô.ð&(ðR €Ð-Ð.Ñ.Ô.Øð(ð (ð (ð (ð (Ð!1ñ (ô (ñ „ñ /Ô.ð(ð4 €Ð-Ð.Ñ.Ô.Øð(ð (ð (ð (ð (Ð'ñ (ô (ñ „ñ /Ô.ð(ð4 €Ð-Ð.Ñ.Ô.Øðq(ð q(ð q(ð q(ð q(Ð ñ q(ô q(ñ „ñ /Ô.ðq(ðhð ð €€€r6   