§
    ‚Štjk'  ã                   óN  — 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 G d„ d	e¦  «        ¦   «         Ze G d
„ de¦  «        ¦   «         Ze G d„ de¦  «        ¦   «         Z ed¬¦  «        e G d„ de¦  «        ¦   «         ¦   «         Zd„ ZdgZdS )zESM model configurationé    )ÚUnion)Ústricté   )ÚPreTrainedConfig)Úauto_docstringÚlogging)ÚintervalÚis_divisible_byc                   ó@  — e Zd ZU dZ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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dz  ed<   dS )ÚStructureModuleConfiga¤  
    Args:
        sequence_dim:
            Single representation channel dimension
        pairwise_dim:
            Pair representation channel dimension
        ipa_dim:
            IPA hidden channel dimension
        resnet_dim:
            Angle resnet (Alg. 23 lines 11-14) hidden channel dimension
        num_heads_ipa:
            Number of IPA heads
        num_qk_points:
            Number of query/key points to generate during IPA
        num_v_points:
            Number of value points to generate during IPA
        dropout_rate:
            Dropout rate used throughout the layer
        num_blocks:
            Number of structure module blocks
        num_transition_layers:
            Number of layers in the single representation transition (Alg. 23 lines 8-9)
        num_resnet_blocks:
            Number of blocks in the angle resnet
        num_angles:
            Number of angles to generate in the angle resnet
        trans_scale_factor:
            Scale of single representation transition hidden dimension
        epsilon:
            Small number used in angle resnet normalization
        inf:
            Large number used for attention masking
    i€  NÚsequence_dimé€   Úpairwise_dimé   Úipa_dimÚ
resnet_dimé   Únum_heads_ipaé   Únum_qk_pointsé   Únum_v_pointsçš™™™™™¹?Údropout_rateÚ
num_blocksé   Únum_transition_layersé   Únum_resnet_blocksé   Ú
num_anglesé
   Útrans_scale_factorg:Œ0âŽyE>Úepsilong     jø@Úinf)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚintÚ__annotations__r   r   r   r   r   r   r   Úfloatr   r   r   r!   r#   r$   r%   © ó    úg/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/esm/configuration_esm.pyr   r      sN  € € € € € € ð ð  ðD  #€L�#˜‘*Ð"Ð"Ñ"Ø"€L�#˜‘*Ð"Ð"Ñ"Ø€GˆS�4‰ZÐÐÑØ €J��d‘
Ð Ð Ñ Ø "€M�3˜‘:Ð"Ð"Ñ"Ø !€M�3˜‘:Ð!Ð!Ñ!Ø €L�#˜‘*Ð Ð Ñ Ø!$€L�%˜$‘,Ð$Ð$Ñ$Ø€J��d‘
ÐÐÑØ()Ð˜3 ™:Ð)Ð)Ñ)Ø$%Ð�s˜T‘zÐ%Ð%Ñ%Ø€J��d‘
ÐÐÑØ%'Ð˜˜d™
Ð'Ð'Ñ'Ø €GˆU�T‰\Ð Ð Ñ Ø€Cˆ�‰ÐÐÑÐÐr.   r   c                   ó²  ‡ — e Zd ZU deiZdZedz  ed<   dZedz  ed<     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<     ed¬¦  «        d¬
¦  «        Zeez  dz  ed<   dZeez  dz  ed<   dZedz  ed<     ed¬¦  «        d¬
¦  «        Zedz  ed<   d	Zedz  ed<   dZeedf         dz  ed<   ˆ fd„Zd„ Zˆ xZS )ÚTrunkConfigÚstructure_moduleé0   Nr   i   Úsequence_state_dimr   )Údivisorr   )ÚdefaultÚpairwise_state_dimé    Úsequence_head_widthÚpairwise_head_widthÚposition_binsgš™™™™™Ù?)Úmaxç        ÚdropoutÚ
layer_dropFÚcpu_grad_checkpointr   )Úminr   Úmax_recyclesÚ
chunk_sizer   c                 óÐ   •— | j         €t          ¦   «         | _         n0t          | j         t          ¦  «        rt          di | j         ¤Ž| _          t	          ¦   «         j        di |¤Ž d S ©Nr-   )r2   r   Ú
isinstanceÚdictÚsuperÚ__post_init__©ÚselfÚkwargsÚ	__class__s     €r/   rI   zTrunkConfig.__post_init__b   so   ø€ ØÔ Ð(Ý$9Ñ$;Ô$;ˆDÔ!Ð!Ý˜Ô-­tÑ4Ô4ð 	SÝ$9Ð$RÐ$R¸DÔ<QÐ$RÐ$RˆDÔ!Ø�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'r.   c           	      óæ  — | j         | j         z  dk    r t          d| j         › d| j         › d�¦  «        ‚| j        | j        z  dk    r t          d| j        › d| j        › d�¦  «        ‚| j         | j        z  }| j        | j        z  }| j         || j        z  k    r#t          d| j         › d|› d| j        › d�¦  «        ‚| j        || j        z  k    r#t          d	| j        › d|› d| j        › d�¦  «        ‚d S )
Nr   zM`sequence_state_dim` should be a round multiple of `sequence_state_dim`, got z and ú.zM`pairwise_state_dim` should be a round multiple of `pairwise_state_dim`, got zW`sequence_state_dim` should be equal to `sequence_num_heads * sequence_head_width, got z != z * zW`pairwise_state_dim` should be equal to `pairwise_num_heads * pairwise_head_width, got )r4   Ú
ValueErrorr7   r9   r:   )rK   Úsequence_num_headsÚpairwise_num_headss      r/   Úvalidate_architecturez!TrunkConfig.validate_architecturei   s³  € ØÔ" TÔ%<Ñ<ÀÒAÐAÝðMØÔ+ðMð MØ26Ô2IðMð Mð Mñô ð ð Ô" TÔ%<Ñ<ÀÒAÐAÝðMØÔ+ðMð MØ26Ô2IðMð Mð Mñô ð ð
 "Ô4¸Ô8PÑPÐØ!Ô4¸Ô8PÑPÐàÔ"Ð&8¸4Ô;SÑ&SÒSÐSÝðdØÔ+ðdð dØ1Cðdð dØHLÔH`ðdð dð dñô ð ð Ô"Ð&8¸4Ô;SÑ&SÒSÐSÝðdØÔ+ðdð dØ1Cðdð dØHLÔH`ðdð dð dñô ð ð TÐSr.   )r&   r'   r(   r   Úsub_configsr   r*   r+   r4   r
   r7   r9   r:   r;   r	   r>   r,   r?   r@   ÚboolrB   rC   r2   r   rG   rI   rS   Ú__classcell__©rM   s   @r/   r1   r1   Q   s«  ø€ € € € € € à%Ð'<Ð=€Kà€J��d‘
ÐÐÑØ%)Ð˜˜d™
Ð)Ð)Ñ)Ø%? _ _¸QÐ%?Ñ%?Ô%?ÈÐ%LÑ%LÔ%LÐ˜˜d™
ÐLÐLÑLØ&(Ð˜˜t™Ð(Ð(Ñ(Ø&(Ð˜˜t™Ð(Ð(Ñ(Ø "€M�3˜‘:Ð"Ð"Ñ"Ø"3 ( (¨sÐ"3Ñ"3Ô"3¸CÐ"@Ñ"@Ô"@€GˆU�S‰[˜4ÑÐ@Ð@Ñ@Ø%(€J�˜‘˜dÑ"Ð(Ð(Ñ(Ø',Ð˜ ™Ð,Ð,Ñ,Ø.˜x˜x¨A˜™œ°qÐ9Ñ9Ô9€L�#˜‘*Ð9Ð9Ñ9Ø €J��d‘
Ð Ð Ñ ØDHÐ�e˜DÐ"9Ð9Ô:¸TÑAÐHÐHÑHð(ð (ð (ð (ð (ðð ð ð ð ð ð r.   r1   c                   ó  ‡ — e Zd ZU deiZ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z  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f         dz  ed<   ˆ fd„Zˆ xZS )ÚEsmFoldConfigÚtrunkNÚesm_typeTÚfp16_esmFÚuse_esm_attn_mapÚesm_ablate_pairwiseÚesm_ablate_sequencer=   Úesm_input_dropoutÚembed_aaÚ	bypass_lmr   Úlddt_head_hid_dimr1   c                 óÐ   •— | j         €t          ¦   «         | _         n0t          | j         t          ¦  «        rt          di | j         ¤Ž| _          t	          ¦   «         j        di |¤Ž d S rE   )rZ   r1   rF   rG   rH   rI   rJ   s     €r/   rI   zEsmFoldConfig.__post_init__“   sf   ø€ ØŒ:ÐÝ$™œˆDŒJˆJÝ˜œ
¥DÑ)Ô)ð 	3Ý$Ð2Ð2 t¤zÐ2Ð2ˆDŒJØ�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'r.   )r&   r'   r(   r1   rT   r[   Ústrr+   r\   rU   r]   r^   r_   r`   r,   r*   ra   rb   rc   rZ   r   rG   rI   rV   rW   s   @r/   rY   rY   „   s!  ø€ € € € € € à˜KÐ(€Kà€Hˆc�D‰jÐÐÑØ €Hˆd�T‰kÐ Ð Ñ Ø$)Ð�d˜T‘kÐ)Ð)Ñ)Ø',Ð˜ ™Ð,Ð,Ñ,Ø',Ð˜ ™Ð,Ð,Ñ,Ø,/Ð�u˜s‘{ TÑ)Ð/Ð/Ñ/Ø €Hˆd�T‰kÐ Ð Ñ Ø"€Iˆt�d‰{Ð"Ð"Ñ"Ø$'Ð�s˜T‘zÐ'Ð'Ñ'Ø/3€Eˆ5��}Ð$Ô%¨Ñ,Ð3Ð3Ñ3ð(ð (ð (ð (ð (ð (ð (ð (ð (r.   rY   zfacebook/esm-1b)Ú
checkpointc                   ó(  ‡ — e Zd ZU dZdZdeiZ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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	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	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z  dz  e	d<   dZ e!e         e"ed"f         z  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dz  e	d'<   d(Z'ee!e         z  dz  e	d)<   ˆ fd*„Z(ˆ xZ)S )+Ú	EsmConfiga  
    mask_token_id (`int`, *optional*):
        The index of the mask token in the vocabulary. This must be included in the config because of the
        "mask-dropout" scaling trick, which will scale the inputs depending on the number of masked tokens.
    rope_theta (`float`, defaults to 10000.0):
        The base period of the RoPE embeddings. Only used when `position_embedding_type` is set to `"rotary"`.
    position_embedding_type (`str`, *optional*, defaults to `"absolute"`):
        Type of position embedding. Choose either `"absolute"` or "rotary"`.
    emb_layer_norm_before (`bool`, *optional*):
        Whether to apply layer normalization after embeddings but before the main stem of the network.
    token_dropout (`bool`, defaults to `False`):
        When this is enabled, masked tokens are treated as if they had been dropped out by input dropout.
    is_folding_model (`bool`, defaults to `False`):
        When this is enabled, ESMFold model will be initialized.
    esmfold_config (`dict`, *optional*):
        Configuration to initiate the ESMFold module.
    vocab_list (`list`, *optional*):
        List of the vocabulary items.

    Examples:

    ```python
    >>> from transformers import EsmModel, EsmConfig

    >>> # Initializing a ESM facebook/esm-1b style configuration
    >>> configuration = EsmConfig(vocab_size=33)

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

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```ÚesmÚesmfold_configNÚ
vocab_sizeÚmask_token_idÚpad_token_idi   Úhidden_sizer   Únum_hidden_layersÚnum_attention_headsi   Úintermediate_sizer   Úhidden_dropout_probÚattention_probs_dropout_probi  Úmax_position_embeddingsg     ˆÃ@Ú
rope_thetag{®Gáz”?Úinitializer_rangegê-�™—q=Úlayer_norm_epsÚabsoluteÚposition_embedding_typeTÚ	use_cacheÚemb_layer_norm_beforeFÚtoken_dropoutÚis_folding_model.Ú
vocab_listÚ
is_decoderÚadd_cross_attentionÚtie_word_embeddingsÚbos_token_idr   Úeos_token_idc                 óð  •— | j         rš| j        €.t                               d¦  «         t	          ¦   «         | _        n0t          | j        t          ¦  «        rt	          di | j        ¤Ž| _        | j        €-t                               d¦  «         t          ¦   «         | _        nd | _        d | _        | j        �%t          | j        dd¦  «        rt          d¦  «        ‚ t          ¦   «         j        di |¤Ž d S )NzCNo esmfold_config supplied for folding model, using default values.zHNo vocab_list supplied for folding model, assuming the ESM-2 vocabulary!r]   FzOThe HuggingFace port of ESMFold does not support use_esm_attn_map at this time!r-   )r}   rj   ÚloggerÚinforY   rF   rG   r~   ÚwarningÚget_default_vocab_listÚgetattrrP   rH   rI   rJ   s     €r/   rI   zEsmConfig.__post_init__Ý   sñ   ø€ ØÔ ð 	#ØÔ"Ð*Ý—’ÐaÑbÔbÐbÝ&3¡o¤o�Ô#Ð#Ý˜DÔ/µÑ6Ô6ð KÝ&3Ð&JÐ&J°dÔ6IÐ&JÐ&J�Ô#àŒÐ&Ý—’ÐiÑjÔjÐjÝ"8Ñ":Ô":�”øà"&ˆDÔØ"ˆDŒOàÔÐ*­w°tÔ7JÐL^Ð`eÑ/fÔ/fÐ*ÝÐnÑoÔoÐoà�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'r.   )*r&   r'   r(   r)   Ú
model_typerY   rT   rk   r*   r+   rl   rm   rn   ro   rp   rq   rr   r,   rs   rt   ru   rv   rw   ry   re   rz   rU   r{   r|   r}   rj   rG   r~   ÚlistÚtupler   r€   r�   r‚   rƒ   rI   rV   rW   s   @r/   rh   rh   ›   sS  ø€ € € € € € ð ð  ðD €JØ# ]Ð3€Kà!€J��d‘
Ð!Ð!Ñ!Ø $€M�3˜‘:Ð$Ð$Ñ$Ø#€L�#˜‘*Ð#Ð#Ñ#Ø€K�ÐÐÑØÐ�sÐÐÑØ!Ð˜Ð!Ð!Ñ!Ø!Ð�sÐ!Ð!Ñ!Ø(+Ð˜ ™Ð+Ð+Ñ+Ø14Ð  %¨$¡,Ð4Ð4Ñ4Ø#'Ð˜SÐ'Ð'Ñ'Ø€J�ÐÐÑØ#Ð�uÐ#Ð#Ñ#Ø#(€N�E˜D‘LÐ(Ð(Ñ(Ø*4Ð˜S 4™ZÐ4Ð4Ñ4Ø€IˆtÐÐÑØ)-Ð˜4 $™;Ð-Ð-Ñ-Ø!&€M�4˜$‘;Ð&Ð&Ñ&Ø$)Ð�d˜T‘kÐ)Ð)Ñ)Ø26€N�D˜=Ñ(¨4Ñ/Ð6Ð6Ñ6Ø59€J��S”	˜E # s (œOÑ+¨dÑ2Ð9Ð9Ñ9Ø#€J��t‘Ð#Ð#Ñ#Ø',Ð˜ ™Ð,Ð,Ñ,Ø $Ð˜Ð$Ð$Ñ$Ø#€L�#˜‘*Ð#Ð#Ñ#Ø+,€L�#˜˜Sœ	‘/ DÑ(Ð,Ð,Ñ,ð(ð (ð (ð (ð (ð (ð (ð (ð (r.   rh   c                  ó   — dS )N)!z<cls>z<pad>z<eos>z<unk>ÚLÚAÚGÚVÚSÚEÚRÚTÚIÚDÚPÚKÚQÚNÚFÚYÚMÚHÚWÚCÚXÚBÚUÚZÚOrO   ú-z<null_1>z<mask>r-   r-   r.   r/   rˆ   rˆ   ò   s   € ð"ð "r.   N)r)   Útypingr   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   r   Úutils.type_validatorsr	   r
   Ú
get_loggerr&   r…   r   r1   rY   rh   rˆ   Ú__all__r-   r.   r/   ú<module>r¯      s¤  ðð Ð à Ð Ð Ð Ð Ð à .Ð .Ð .Ð .Ð .Ð .à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >ð 
ˆÔ	˜HÑ	%Ô	%€ð ð1ð 1ð 1ð 1ð 1Ð,ñ 1ô 1ñ „ð1ðh ð/ð /ð /ð /ð /Ð"ñ /ô /ñ „ð/ðd ð(ð (ð (ð (ð (Ð$ñ (ô (ñ „ð(ð, €Ð,Ð-Ñ-Ô-ØðR(ð R(ð R(ð R(ð R(Ð ñ R(ô R(ñ „ñ .Ô-ðR(ðj#ð #ð #ðL ˆ-€€€r.   