Ë
    ÛÓ^jHº  ã                   ól  — d Z ddlZddlmZ ddlmZmZmZ ddlmZ	 ddl
mZ ddlmZ dd	lmZmZmZmZmZ dd
lmZ ddlmZmZ ddlmZ  ej6                  e«      Z G d„ dej<                  «      Z G d„ dej<                  «      Z ejB                  jD                  d„ «       Z#ejB                  jD                  d„ «       Z$ejB                  jD                  d„ «       Z%ejB                  jD                  d„ «       Z&ejB                  jD                  dejN                  de(fd„«       Z)ejB                  jD                  dejN                  dejN                  fd„«       Z*ejB                  jD                  dejN                  dejN                  de(fd„«       Z+ejB                  jD                  dejN                  dejN                  fd„«       Z, G d„ dej<                  «      Z- G d „ d!ej<                  «      Z. G d"„ d#ej<                  «      Z/ G d$„ d%ej<                  «      Z0 G d&„ d'ej<                  «      Z1 G d(„ d)e«      Z2 G d*„ d+ej<                  «      Z3e G d,„ d-e«      «       Z4e G d.„ d/e4«      «       Z5 G d0„ d1ej<                  «      Z6 G d2„ d3ej<                  «      Z7 G d4„ d5ej<                  «      Z8 G d6„ d7ej<                  «      Z9 G d8„ d9ej<                  «      Z:e G d:„ d;e4«      «       Z; G d<„ d=ej<                  «      Z< ed>¬?«       G d@„ dAe4«      «       Z=e G dB„ dCe4«      «       Z>e G dD„ dEe4«      «       Z?g dF¢Z@y)GzPyTorch DeBERTa model.é    N)Únn)ÚBCEWithLogitsLossÚCrossEntropyLossÚMSELossé   )Úinitialization)ÚACT2FN)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚMaskedLMOutputÚQuestionAnsweringModelOutputÚSequenceClassifierOutputÚTokenClassifierOutput)ÚPreTrainedModel)Úauto_docstringÚloggingé   )ÚDebertaConfigc                   ó*   ‡ — e Zd ZdZdˆ fd„	Zd„ Zˆ xZS )ÚDebertaLayerNormz2LayerNorm module (epsilon inside the square root).c                 óä   •— t         ‰| �  «        t        j                  t	        j
                  |«      «      | _        t        j                  t	        j                  |«      «      | _        || _	        y ©N)
ÚsuperÚ__init__r   Ú	ParameterÚtorchÚonesÚweightÚzerosÚbiasÚvariance_epsilon)ÚselfÚsizeÚepsÚ	__class__s      €úw/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/deberta/modeling_deberta.pyr   zDebertaLayerNorm.__init__)   sH   ø€ Ü‰ÑÔÜ—l‘l¤5§:¡:¨dÓ#3Ó4ˆŒÜ—L‘L¤§¡¨TÓ!2Ó3ˆŒ	Ø #ˆÕó    c                 óX  — |j                   }|j                  «       }|j                  dd¬«      }||z
  j                  d«      j                  dd¬«      }||z
  t	        j
                  || j                  z   «      z  }|j                  |«      }| j                  |z  | j                  z   }|S )NéÿÿÿÿT)Úkeepdimé   )
ÚdtypeÚfloatÚmeanÚpowr   Úsqrtr!   Útor   r    )r"   Úhidden_statesÚ
input_typer.   ÚvarianceÚys         r&   ÚforwardzDebertaLayerNorm.forward/   s¤   € Ø"×(Ñ(ˆ
Ø%×+Ñ+Ó-ˆØ×!Ñ! "¨dÐ!Ó3ˆØ! DÑ(×-Ñ-¨aÓ0×5Ñ5°bÀ$Ð5ÓGˆØ&¨Ñ-´·±¸HÀt×G\ÑG\Ñ<\Ó1]Ñ]ˆØ%×(Ñ(¨Ó4ˆØ�K‰K˜-Ñ'¨$¯)©)Ñ3ˆØˆr'   )gê-�™—q=©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r6   Ú__classcell__©r%   s   @r&   r   r   &   s   ø„ Ù<õ$ör'   r   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ÚDebertaSelfOutputc                 ó  •— t         ‰| �  «        t        j                  |j                  |j                  «      | _        t        |j                  |j                  «      | _        t        j                  |j                  «      | _        y r   )r   r   r   ÚLinearÚhidden_sizeÚdenser   Úlayer_norm_epsÚ	LayerNormÚDropoutÚhidden_dropout_probÚdropout©r"   Úconfigr%   s     €r&   r   zDebertaSelfOutput.__init__;   s\   ø€ Ü‰ÑÔÜ—Y‘Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
Ü)¨&×*<Ñ*<¸f×>SÑ>SÓTˆŒÜ—z‘z &×"<Ñ"<Ó=ˆ�r'   c                 ór   — | j                  |«      }| j                  |«      }| j                  ||z   «      }|S r   ©rC   rH   rE   ©r"   r2   Úinput_tensors      r&   r6   zDebertaSelfOutput.forwardA   ó7   € ØŸ
™
 =Ó1ˆØŸ™ ]Ó3ˆØŸ™ }°|Ñ'CÓDˆØÐr'   ©r8   r9   r:   r   r6   r<   r=   s   @r&   r?   r?   :   s   ø„ ô>ör'   r?   c                 óš  — | j                  d«      }|j                  d«      }t        j                  |t        j                  | j                  ¬«      }t        j                  |t        j                  |j                  ¬«      }|dd…df   |j                  dd«      j                  |d«      z
  }|d|…dd…f   }|j                  d«      }|S )aí  
    Build relative position according to the query and key

    We assume the absolute position of query \(P_q\) is range from (0, query_size) and the absolute position of key
    \(P_k\) is range from (0, key_size), The relative positions from query to key is \(R_{q \rightarrow k} = P_q -
    P_k\)

    Args:
        query_size (int): the length of query
        key_size (int): the length of key

    Return:
        `torch.LongTensor`: A tensor with shape [1, query_size, key_size]

    éþÿÿÿ©r,   ÚdeviceNr   r)   r   )r#   r   ÚarangeÚlongrT   ÚviewÚrepeatÚ	unsqueeze)Úquery_layerÚ	key_layerÚ
query_sizeÚkey_sizeÚq_idsÚk_idsÚrel_pos_idss          r&   Úbuild_relative_positionra   H   s¬   € ð$ ×!Ñ! "Ó%€JØ�~‰~˜bÓ!€Hä�L‰L˜¬5¯:©:¸k×>PÑ>PÔQ€EÜ�L‰L˜¬¯©¸I×<LÑ<LÔM€EØš˜4˜‘. 5§:¡:¨a°Ó#4×#;Ñ#;¸JÈÓ#JÑJ€KØ˜k˜z˜kª1˜nÑ-€KØ×'Ñ'¨Ó*€KØÐr'   c                 ó¤   — | j                  |j                  d«      |j                  d«      |j                  d«      |j                  d«      g«      S )Nr   r   r+   r)   ©Úexpandr#   )Úc2p_posrZ   Úrelative_poss      r&   Úc2p_dynamic_expandrg   e   sI   € à�>‰>˜;×+Ñ+¨AÓ.°×0@Ñ0@ÀÓ0CÀ[×EUÑEUÐVWÓEXÐZf×ZkÑZkÐlnÓZoÐpÓqÐqr'   c                 ó¤   — | j                  |j                  d«      |j                  d«      |j                  d«      |j                  d«      g«      S )Nr   r   rR   rc   )re   rZ   r[   s      r&   Úp2c_dynamic_expandri   j   sG   € à�>‰>˜;×+Ñ+¨AÓ.°×0@Ñ0@ÀÓ0CÀYÇ^Á^ÐTVÓEWÐYb×YgÑYgÐhjÓYkÐlÓmÐmr'   c                 óŒ   — | j                  |j                  «       d d | j                  d«      |j                  d«      fz   «      S )Nr+   rR   rc   )Ú	pos_indexÚp2c_attr[   s      r&   Úpos_dynamic_expandrm   o   s=   € à×Ñ˜GŸL™L›N¨2¨AÐ.°)·.±.ÀÓ2DÀiÇnÁnÐUWÓFXÐ1YÑYÓZÐZr'   rZ   Úscale_factorc                 ó–   — t        j                  t        j                  | j                  d«      t         j                  ¬«      |z  «      S )Nr)   ©r,   )r   r0   Útensorr#   r-   )rZ   rn   s     r&   Úscaled_size_sqrtrr   w   s0   € ä�:‰:”e—l‘l ;×#3Ñ#3°BÓ#7¼u¿{¹{ÔKÈlÑZÓ[Ð[r'   r[   c                 ód   — | j                  d«      |j                  d«      k7  rt        | |«      S |S ©NrR   )r#   ra   )rZ   r[   rf   s      r&   Ú
build_rposru   |   s1   € à×Ñ˜Ó˜yŸ~™~¨bÓ1Ò1Ü& {°IÓ>Ð>àÐr'   Úmax_relative_positionsc           
      ó�   — t        j                  t        t        | j	                  d«      |j	                  d«      «      |«      «      S rt   )r   rq   ÚminÚmaxr#   )rZ   r[   rv   s      r&   Úcompute_attention_spanrz   „   s4   € ä�<‰<œœC × 0Ñ 0°Ó 4°i·n±nÀRÓ6HÓIÐKaÓbÓcÐcr'   c           	      óÎ   — |j                  d«      |j                  d«      k7  rA|d d …d d …d d …df   j                  d«      }t        j                  | dt	        || |«      ¬«      S | S )NrR   r   r)   r+   ©ÚdimÚindex)r#   rY   r   Úgatherrm   )rl   rZ   r[   rf   rk   s        r&   Úuneven_size_correctedr€   ‰   s_   € à×Ñ˜Ó˜yŸ~™~¨bÓ1Ò1Ø ¢¢A¢q¨! Ñ,×6Ñ6°rÓ:ˆ	Ü�|‰|˜G¨Ô2DÀYÐPWÐYbÓ2cÔdÐdàˆr'   c                   óp  ‡ — e Zd ZdZˆ fd„Zd„ Z	 	 	 	 ddej                  dej                  dedej                  dz  d	ej                  dz  d
ej                  dz  de	ej                  ej                  dz  f   fd„Z
dej                  dej                  d	ej                  d
ej                  def
d„Zˆ xZS )ÚDisentangledSelfAttentiona  
    Disentangled self-attention module

    Parameters:
        config (`str`):
            A model config class instance with the configuration to build a new model. The schema is similar to
            *BertConfig*, for more details, please refer [`DebertaConfig`]

    c                 óZ  •— t         ‰| �  «        |j                  |j                  z  dk7  r&t	        d|j                  › d|j                  › d�«      ‚|j                  | _        t        |j                  |j                  z  «      | _        | j                  | j                  z  | _        t        j                  |j                  | j                  dz  d¬«      | _
        t        j                  t        j                  | j                  t        j                  ¬«      «      | _        t        j                  t        j                  | j                  t        j                  ¬«      «      | _        |j"                  �|j"                  ng | _        t%        |d	d«      | _        t%        |d
d«      | _        | j(                  rct        j                  |j                  |j                  d¬«      | _        t        j                  |j                  |j                  d¬«      | _        nd | _        d | _        | j&                  rÒt%        |dd«      | _        | j.                  dk  r|j0                  | _        t        j2                  |j4                  «      | _        d| j"                  v r1t        j                  |j                  | j                  d¬«      | _        d| j"                  v r/t        j                  |j                  | j                  «      | _        t        j2                  |j<                  «      | _        y )Nr   zThe hidden size (z6) is not a multiple of the number of attention heads (ú)r   F©r    rp   Úrelative_attentionÚtalking_headrv   r)   r   Úc2pÚp2c) r   r   rB   Únum_attention_headsÚ
ValueErrorÚintÚattention_head_sizeÚall_head_sizer   rA   Úin_projr   r   r   r-   Úq_biasÚv_biasÚpos_att_typeÚgetattrr†   r‡   Úhead_logits_projÚhead_weights_projrv   Úmax_position_embeddingsrF   rG   Úpos_dropoutÚpos_projÚ
pos_q_projÚattention_probs_dropout_probrH   rI   s     €r&   r   z"DisentangledSelfAttention.__init__    sm  ø€ Ü‰ÑÔØ×Ñ × :Ñ :Ñ:¸aÒ?ÜØ# F×$6Ñ$6Ð#7ð 8Ø ×4Ñ4Ð5°Qð8óð ð $*×#=Ñ#=ˆÔ Ü#& v×'9Ñ'9¸F×<VÑ<VÑ'VÓ#WˆÔ Ø!×5Ñ5¸×8PÑ8PÑPˆÔÜ—y‘y ×!3Ñ!3°T×5GÑ5GÈ!Ñ5KÐRWÔXˆŒÜ—l‘l¤5§;¡;°×0BÑ0BÌ5Ï;É;Ô#WÓXˆŒÜ—l‘l¤5§;¡;°×0BÑ0BÌ5Ï;É;Ô#WÓXˆŒØ39×3FÑ3FÐ3R˜F×/Ò/ÐXZˆÔä")¨&Ð2FÈÓ"NˆÔÜ# F¨N¸EÓBˆÔà×ÒÜ$&§I¡I¨f×.HÑ.HÈ&×JdÑJdÐkpÔ$qˆDÔ!Ü%'§Y¡Y¨v×/IÑ/IÈ6×KeÑKeÐlqÔ%rˆDÕ"à$(ˆDÔ!Ø%)ˆDÔ"à×"Ò"Ü*1°&Ð:RÐTVÓ*WˆDÔ'Ø×*Ñ*¨QÒ.Ø.4×.LÑ.L�Ô+Ü!Ÿz™z¨&×*DÑ*DÓEˆDÔà˜×)Ñ)Ñ)Ü "§	¡	¨&×*<Ñ*<¸d×>PÑ>PÐW\Ô ]�”Ø˜×)Ñ)Ñ)Ü"$§)¡)¨F×,>Ñ,>À×@RÑ@RÓ"S�”ä—z‘z &×"EÑ"EÓFˆ�r'   c                 ó�   — |j                  «       d d | j                  dfz   }|j                  |«      }|j                  dddd«      S )Nr)   r   r+   r   r   )r#   rŠ   rW   Úpermute)r"   ÚxÚnew_x_shapes      r&   Útranspose_for_scoresz.DisentangledSelfAttention.transpose_for_scoresÆ   sF   € Ø—f‘f“h˜s �m t×'?Ñ'?ÀÐ&DÑDˆØ�F‰F�;ÓˆØ�y‰y˜˜A˜q !Ó$Ð$r'   Nr2   Úattention_maskÚoutput_attentionsÚquery_statesrf   Úrel_embeddingsÚreturnc                 óL  — |€9| j                  |«      }| j                  |«      j                  dd¬«      \  }}	}
�n| j                   j                  j                  | j                  dz  d¬«      }t        d«      D ��cg c]C  }t        j                  t        | j                  «      D �cg c]  }||dz  |z      ‘Œ c}d¬«      ‘ŒE }}}t        j                  |d   |j                  «       j                  |d   j                  ¬«      «      }t        j                  |d   |j                  «       j                  |d   j                  ¬«      «      }t        j                  |d   |j                  «       j                  |d   j                  ¬«      «      }|||fD �cg c]  }| j                  |«      ‘Œ c}\  }}	}
|| j                  | j                  dddd…f   «      z   }|
| j                  | j                  dddd…f   «      z   }
d}dt        | j                  «      z   }t!        ||«      }||j                  |j                  ¬«      z  }t        j                  ||	j#                  dd	«      «      }| j$                  r*|�(|�&| j'                  |«      }| j)                  ||	|||«      }|�||z   }| j*                  �5| j+                  |j-                  dddd«      «      j-                  dddd«      }|j/                  «       }|j1                  | t        j2                  |j                  «      j4                  «      }t6        j8                  j;                  |d¬«      }| j=                  |«      }| j>                  �5| j?                  |j-                  dddd«      «      j-                  dddd«      }t        j                  ||
«      }|j-                  dddd«      jA                  «       }|jC                  «       dd	 d
z   }|jE                  |«      }|s|dfS ||fS c c}w c c}}w c c}w )aÑ  
        Call the module

        Args:
            hidden_states (`torch.FloatTensor`):
                Input states to the module usually the output from previous layer, it will be the Q,K and V in
                *Attention(Q,K,V)*

            attention_mask (`torch.BoolTensor`):
                An attention mask matrix of shape [*B*, *N*, *N*] where *B* is the batch size, *N* is the maximum
                sequence length in which element [i,j] = *1* means the *i* th token in the input can attend to the *j*
                th token.

            output_attentions (`bool`, *optional*):
                Whether return the attention matrix.

            query_states (`torch.FloatTensor`, *optional*):
                The *Q* state in *Attention(Q,K,V)*.

            relative_pos (`torch.LongTensor`):
                The relative position encoding between the tokens in the sequence. It's of shape [*B*, *N*, *N*] with
                values ranging in [*-max_relative_positions*, *max_relative_positions*].

            rel_embeddings (`torch.FloatTensor`):
                The embedding of relative distances. It's a tensor of shape [\(2 \times
                \text{max_relative_positions}\), *hidden_size*].


        Nr   r)   ©r}   r   rp   r   r+   rR   )r)   )#r�   rŸ   Úchunkr   rŠ   Úranger   ÚcatÚmatmulÚtr1   r,   r�   r‘   Úlenr’   rr   Ú	transposer†   r—   Údisentangled_att_biasr”   rœ   ÚboolÚmasked_fillÚfinforx   r   Ú
functionalÚsoftmaxrH   r•   Ú
contiguousr#   rW   )r"   r2   r    r¡   r¢   rf   r£   ÚqprZ   r[   Úvalue_layerÚwsÚkÚiÚqkvwÚqÚvr�   Úrel_attrn   ÚscaleÚattention_scoresÚattention_probsÚcontext_layerÚnew_context_layer_shapes                            r&   r6   z!DisentangledSelfAttention.forwardË   sà  € ðL ÐØ—‘˜mÓ,ˆBØ26×2KÑ2KÈBÓ2O×2UÑ2UÐVWÐ]_Ð2UÓ2`Ñ/ˆK˜¢Kà—‘×$Ñ$×*Ñ*¨4×+CÑ+CÀaÑ+GÈQÐ*ÓOˆBÜhmÐnoÓhp×qÐcd”E—I‘I´e¸D×<TÑ<TÓ6UÖV°˜r ! a¡%¨!¡)›}ÒVÐ\]Ö^ÐqˆDÑqÜ—‘˜T !™W l§n¡nÓ&6×&9Ñ&9ÀÀQÁÇÁÐ&9Ó&NÓOˆAÜ—‘˜T !™W m§o¡oÓ&7×&:Ñ&:ÀÀaÁÇÁÐ&:Ó&OÓPˆAÜ—‘˜T !™W m§o¡oÓ&7×&:Ñ&:ÀÀaÁÇÁÐ&:Ó&OÓPˆAØZ[Ð]^Ð`aÐYbÖ2cÐTU°4×3LÑ3LÈQÕ3OÒ2cÑ/ˆK˜ Kà! D×$=Ñ$=¸d¿k¹kÈ$ÐPTÒVWÈ-Ñ>XÓ$YÑYˆØ! D×$=Ñ$=¸d¿k¹kÈ$ÐPTÒVWÈ-Ñ>XÓ$YÑYˆàˆàœ3˜t×0Ñ0Ó1Ñ1ˆÜ  ¨lÓ;ˆØ! E§H¡H°;×3DÑ3D HÓ$EÑEˆÜ Ÿ<™<¨°Y×5HÑ5HÈÈRÓ5PÓQÐà×"Ò" ~Ð'AÀlÐF^Ø!×-Ñ-¨nÓ=ˆNØ×0Ñ0°¸iÈÐWeÐgsÓtˆGàÐØ/°'Ñ9Ðð × Ñ Ð,Ø#×4Ñ4Ð5E×5MÑ5MÈaÐQRÐTUÐWXÓ5YÓZ×bÑbÐcdÐfgÐijÐlmÓnÐà'×,Ñ,Ó.ˆØ+×7Ñ7¸.Ð8IÌ5Ï;É;ÐWb×WhÑWhÓKi×KmÑKmÓnÐäŸ-™-×/Ñ/Ð0@ÀbÐ/ÓIˆàŸ,™, Ó7ˆØ×!Ñ!Ð-Ø"×4Ñ4°_×5LÑ5LÈQÐPQÐSTÐVWÓ5XÓY×aÑaÐbcÐefÐhiÐklÓmˆOäŸ™ _°kÓBˆØ%×-Ñ-¨a°°A°qÓ9×DÑDÓFˆØ"/×"4Ñ"4Ó"6°s¸Ð";¸eÑ"CÐØ%×*Ñ*Ð+BÓCˆÙ Ø! 4Ð(Ð(Ø˜Ð/Ð/ùòU WùÓqùò 3ds   Á>+PÂ)PÂ;PÆP!ÐPrZ   r[   rn   c           	      ó$  — |€t        |||j                  «      }|j                  «       dk(  r!|j                  d«      j                  d«      }nT|j                  «       dk(  r|j                  d«      }n/|j                  «       dk7  rt	        d|j                  «       › �«      ‚t        ||| j                  «      }|j                  «       }|| j                  |z
  | j                  |z   …d d …f   j                  d«      }d}d| j                  v r�| j                  |«      }| j                  |«      }t        j                  ||j                  dd	«      «      }	t        j                  ||z   d|dz  dz
  «      }
t        j                  |	dt!        |
||«      ¬
«      }	||	z  }d| j                  v rå| j#                  |«      }| j                  |«      }|t%        ||«      z  }t'        |||«      }t        j                  | |z   d|dz  dz
  «      }t        j                  ||j                  dd	«      j)                  |j*                  ¬«      «      }t        j                  |dt-        |||«      ¬
«      j                  dd	«      }t/        ||||«      }||z  }|S )Nr+   r   r   r   é   z2Relative position ids must be of dim 2 or 3 or 4. rˆ   r)   rR   r|   r‰   rp   )ra   rT   r}   rY   r‹   rz   rv   rV   r’   r˜   rŸ   r   rª   r­   Úclampr   rg   r™   rr   ru   r1   r,   ri   r€   )r"   rZ   r[   rf   r£   rn   Úatt_spanÚscoreÚpos_key_layerÚc2p_attre   Úpos_query_layerÚr_posÚp2c_posrl   s                  r&   r®   z/DisentangledSelfAttention.disentangled_att_bias"  sŠ  € ð ÐÜ2°;À	È;×K]ÑK]Ó^ˆLØ×ÑÓ Ò"Ø'×1Ñ1°!Ó4×>Ñ>¸qÓA‰LØ×ÑÓ 1Ò$Ø'×1Ñ1°!Ó4‰Là×ÑÓ 1Ò$ÜÐQÐR^×RbÑRbÓRdÐQeÐfÓgÐgä)¨+°yÀ$×B]ÑB]Ó^ˆØ#×(Ñ(Ó*ˆØ'Ø×'Ñ'¨(Ñ2°T×5PÑ5PÐS[Ñ5[Ð[Ò]^Ð^ñ
ç
‰)�A‹,ð 	ð ˆð �D×%Ñ%Ñ%Ø ŸM™M¨.Ó9ˆMØ ×5Ñ5°mÓDˆMÜ—l‘l ;°×0GÑ0GÈÈBÓ0OÓPˆGÜ—k‘k ,°Ñ"9¸1¸hÈ¹lÈQÑ>NÓOˆGÜ—l‘l 7°Ô:LÈWÐVaÐcoÓ:pÔqˆGØ�WÑˆEð �D×%Ñ%Ñ%Ø"Ÿo™o¨nÓ=ˆOØ"×7Ñ7¸ÓHˆOØÔ/°ÀÓNÑNˆOÜØØØóˆEô
 —k‘k 5 &¨8Ñ"3°Q¸À1¹ÀqÑ8HÓIˆGÜ—l‘l 9¨o×.GÑ.GÈÈBÓ.O×.RÑ.RÐYb×YhÑYhÐ.RÓ.iÓjˆGÜ—l‘lØ˜RÔ'9¸'À;ÐPYÓ'Zôç‰i˜˜BÓð ô ,¨G°[À)È\ÓZˆGØ�WÑˆEàˆr'   ©FNNN)r8   r9   r:   r;   r   rŸ   r   ÚTensorr¯   Útupler6   rŒ   r®   r<   r=   s   @r&   r‚   r‚   •   só   ø„ ñô$GòL%ð #(Ø,0Ø,0Ø.2ñU0à—|‘|ðU0ð Ÿ™ðU0ð  ð	U0ð
 —l‘l TÑ)ðU0ð —l‘l TÑ)ðU0ð Ÿ™ tÑ+ðU0ð 
ˆu�|‰|˜UŸ\™\¨DÑ0Ð0Ñ	1óU0ðn6à—\‘\ð6ð —<‘<ð6ð —l‘lð	6ð
 Ÿ™ð6ð ÷6r'   r‚   c                   ó*   ‡ — e Zd ZdZˆ fd„Zdd„Zˆ xZS )ÚDebertaEmbeddingszGConstruct the embeddings from word, position and token_type embeddings.c                 óÐ  •— t         ‰| �  «        t        |dd«      }t        |d|j                  «      | _        t        j                  |j                  | j                  |¬«      | _        t        |dd«      | _	        | j                  sd | _
        n/t        j                  |j                  | j                  «      | _
        |j                  dkD  r0t        j                  |j                  | j                  «      | _        nd | _        | j                  |j                  k7  r2t        j                  | j                  |j                  d¬«      | _        nd | _        t!        |j                  |j"                  «      | _        t        j&                  |j(                  «      | _        || _        | j/                  d	t1        j2                  |j                  «      j5                  d
«      d¬«       y )NÚpad_token_idr   Úembedding_size)Úpadding_idxÚposition_biased_inputTFr…   Úposition_ids©r   r)   )Ú
persistent)r   r   r“   rB   rÔ   r   Ú	EmbeddingÚ
vocab_sizeÚword_embeddingsrÖ   Úposition_embeddingsr–   Útype_vocab_sizeÚtoken_type_embeddingsrA   Ú
embed_projr   rD   rE   rF   rG   rH   rJ   Úregister_bufferr   rU   rd   )r"   rJ   rÓ   r%   s      €r&   r   zDebertaEmbeddings.__init__^  sy  ø€ Ü‰ÑÔÜ˜v ~°qÓ9ˆÜ% fÐ.>À×@RÑ@RÓSˆÔÜ!Ÿ|™|¨F×,=Ñ,=¸t×?RÑ?RÐ`lÔmˆÔä%,¨VÐ5LÈdÓ%SˆÔ"Ø×)Ò)Ø'+ˆDÕ$ä')§|¡|°F×4RÑ4RÐTX×TgÑTgÓ'hˆDÔ$à×!Ñ! AÒ%Ü)+¯©°f×6LÑ6LÈd×NaÑNaÓ)bˆDÕ&à)-ˆDÔ&à×Ñ &×"4Ñ"4Ò4Ü Ÿi™i¨×(;Ñ(;¸V×=OÑ=OÐV[Ô\ˆD�Oà"ˆDŒOä)¨&×*<Ñ*<¸f×>SÑ>SÓTˆŒÜ—z‘z &×"<Ñ"<Ó=ˆŒØˆŒð 	×ÑØœEŸL™L¨×)GÑ)GÓH×OÑOÐPWÓXÐejð 	õ 	
r'   c                 ó   — |�|j                  «       }n|j                  «       d d }|d   }|€| j                  d d …d |…f   }|€:t        j                  |t        j                  | j                  j
                  ¬«      }|€| j                  |«      }| j                  � | j                  |j	                  «       «      }nt        j                  |«      }|}	| j                  r|	|z   }	| j                  �| j                  |«      }
|	|
z   }	| j                  �| j                  |	«      }	| j                  |	«      }	|�…|j                  «       |	j                  «       k7  rD|j                  «       dk(  r |j                  d«      j                  d«      }|j                  d«      }|j!                  |	j"                  «      }|	|z  }	| j%                  |	«      }	|	S )Nr)   r   rS   rÄ   r+   )r#   r×   r   r   rV   rT   rÜ   rÝ   Ú
zeros_likerÖ   rß   rà   rE   r}   ÚsqueezerY   r1   r,   rH   )r"   Ú	input_idsÚtoken_type_idsr×   ÚmaskÚinputs_embedsÚinput_shapeÚ
seq_lengthrÝ   Ú
embeddingsrß   s              r&   r6   zDebertaEmbeddings.forward}  s¬  € ØÐ Ø#Ÿ.™.Ó*‰Kà'×,Ñ,Ó.¨s°Ð3ˆKà  ‘^ˆ
àÐØ×,Ñ,ªQ°°°¨^Ñ<ˆLàÐ!Ü"Ÿ[™[¨¼E¿J¹JÈt×O`ÑO`×OgÑOgÔhˆNàÐ Ø ×0Ñ0°Ó;ˆMà×#Ñ#Ð/Ø"&×":Ñ":¸<×;LÑ;LÓ;NÓ"OÑä"'×"2Ñ"2°=Ó"AÐà"ˆ
Ø×%Ò%Ø#Ð&9Ñ9ˆJØ×%Ñ%Ð1Ø$(×$>Ñ$>¸~Ó$NÐ!Ø#Ð&;Ñ;ˆJà�?‰?Ð&ØŸ™¨Ó4ˆJà—^‘^ JÓ/ˆ
àÐØ�x‰x‹z˜ZŸ^™^Ó-Ò-Ø—8‘8“: ’?ØŸ<™<¨›?×2Ñ2°1Ó5�DØ—~‘~ aÓ(�Ø—7‘7˜:×+Ñ+Ó,ˆDà# dÑ*ˆJà—\‘\ *Ó-ˆ
ØÐr'   )NNNNNr7   r=   s   @r&   rÑ   rÑ   [  s   ø„ ÙQô
÷>,r'   rÑ   c                   óp   ‡ — e Zd Zˆ fd„Z	 	 	 	 ddedeej                  ej                  dz  f   fd„Zˆ xZ	S )ÚDebertaAttentionc                 óp   •— t         ‰| �  «        t        |«      | _        t	        |«      | _        || _        y r   )r   r   r‚   r"   r?   ÚoutputrJ   rI   s     €r&   r   zDebertaAttention.__init__­  s-   ø€ Ü‰ÑÔÜ-¨fÓ5ˆŒ	Ü'¨Ó/ˆŒØˆ�r'   Nr¡   r¤   c                 óv   — | j                  ||||||¬«      \  }}|€|}| j                  ||«      }	|r|	|fS |	d fS )N)r¢   rf   r£   )r"   rï   )
r"   r2   r    r¡   r¢   rf   r£   Úself_outputÚ
att_matrixÚattention_outputs
             r&   r6   zDebertaAttention.forward³  se   € ð #'§)¡)ØØØØ%Ø%Ø)ð #,ó #
Ñˆ�Zð ÐØ(ˆLØŸ;™; {°LÓAÐáØ$ jÐ1Ð1à$ dÐ+Ð+r'   rÍ   ©
r8   r9   r:   r   r¯   rÏ   r   rÎ   r6   r<   r=   s   @r&   rí   rí   ¬  sF   ø„ ôð #(ØØØñ,ð  ð	,ð 
ˆu�|‰|˜UŸ\™\¨DÑ0Ð0Ñ	1÷,r'   rí   c                   óV   ‡ — e Zd Zˆ fd„Zdej
                  dej
                  fd„Zˆ xZS )ÚDebertaIntermediatec                 ó  •— t         ‰| �  «        t        j                  |j                  |j
                  «      | _        t        |j                  t        «      rt        |j                     | _        y |j                  | _        y r   )r   r   r   rA   rB   Úintermediate_sizerC   Ú
isinstanceÚ
hidden_actÚstrr	   Úintermediate_act_fnrI   s     €r&   r   zDebertaIntermediate.__init__Ð  s]   ø€ Ü‰ÑÔÜ—Y‘Y˜v×1Ñ1°6×3KÑ3KÓLˆŒ
Ü�f×'Ñ'¬Ô-Ü'-¨f×.?Ñ.?Ñ'@ˆDÕ$à'-×'8Ñ'8ˆDÕ$r'   r2   r¤   c                 óJ   — | j                  |«      }| j                  |«      }|S r   )rC   rü   ©r"   r2   s     r&   r6   zDebertaIntermediate.forwardØ  s&   € ØŸ
™
 =Ó1ˆØ×0Ñ0°Ó?ˆØÐr'   ©r8   r9   r:   r   r   rÎ   r6   r<   r=   s   @r&   rö   rö   Ï  s#   ø„ ô9ð U§\¡\ð °e·l±l÷ r'   rö   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ÚDebertaOutputc                 ó   •— t         ‰| �  «        t        j                  |j                  |j
                  «      | _        t        |j
                  |j                  «      | _	        t        j                  |j                  «      | _        || _        y r   )r   r   r   rA   rø   rB   rC   r   rD   rE   rF   rG   rH   rJ   rI   s     €r&   r   zDebertaOutput.__init__ß  sc   ø€ Ü‰ÑÔÜ—Y‘Y˜v×7Ñ7¸×9KÑ9KÓLˆŒ
Ü)¨&×*<Ñ*<¸f×>SÑ>SÓTˆŒÜ—z‘z &×"<Ñ"<Ó=ˆŒØˆ�r'   c                 ór   — | j                  |«      }| j                  |«      }| j                  ||z   «      }|S r   rL   rM   s      r&   r6   zDebertaOutput.forwardæ  rO   r'   rP   r=   s   @r&   r  r  Þ  s   ø„ ôör'   r  c                   óp   ‡ — e Zd Zˆ fd„Z	 	 	 	 ddedeej                  ej                  dz  f   fd„Zˆ xZ	S )ÚDebertaLayerc                 ó‚   •— t         ‰| �  «        t        |«      | _        t	        |«      | _        t        |«      | _        y r   )r   r   rí   Ú	attentionrö   Úintermediater  rï   rI   s     €r&   r   zDebertaLayer.__init__î  s3   ø€ Ü‰ÑÔÜ)¨&Ó1ˆŒÜ/°Ó7ˆÔÜ# FÓ+ˆ�r'   Nr¡   r¤   c                 ó�   — | j                  ||||||¬«      \  }}| j                  |«      }	| j                  |	|«      }
|r|
|fS |
d fS )N©r¡   r¢   rf   r£   )r  r  rï   )r"   r2   r    r¢   rf   r£   r¡   ró   rò   Úintermediate_outputÚlayer_outputs              r&   r6   zDebertaLayer.forwardô  sn   € ð (,§~¡~ØØØ/Ø%Ø%Ø)ð (6ó (
Ñ$Ð˜*ð #×/Ñ/Ð0@ÓAÐØ—{‘{Ð#6Ð8HÓIˆáØ  *Ð-Ð-à  $Ð'Ð'r'   )NNNFrô   r=   s   @r&   r  r  í  sF   ø„ ô,ð ØØØ"'ñ(ð  ð(ð 
ˆu�|‰|˜UŸ\™\¨DÑ0Ð0Ñ	1÷(r'   r  c                   ó†   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zdd„Z	 	 	 	 	 ddej                  dej                  de
d	e
d
e
f
d„Zˆ xZS )ÚDebertaEncoderz8Modified BertEncoder with relative position bias supportc                 óÆ  •— t         ‰| �  «        t        j                  t	        |j
                  «      D �cg c]  }t        |«      ‘Œ c}«      | _        t        |dd«      | _	        | j                  rdt        |dd«      | _
        | j                  dk  r|j                  | _
        t        j                  | j                  dz  |j                  «      | _        d| _        y c c}w )Nr†   Frv   r)   r   r+   )r   r   r   Ú
ModuleListr¨   Únum_hidden_layersr  Úlayerr“   r†   rv   r–   rÚ   rB   r£   Úgradient_checkpointing)r"   rJ   Ú_r%   s      €r&   r   zDebertaEncoder.__init__  s¶   ø€ Ü‰ÑÔÜ—]‘]Ä%È×H`ÑH`ÓBaÖ#b¸Q¤L°Õ$8Ò#bÓcˆŒ
Ü")¨&Ð2FÈÓ"NˆÔØ×"Ò"Ü*1°&Ð:RÐTVÓ*WˆDÔ'Ø×*Ñ*¨QÒ.Ø.4×.LÑ.L�Ô+Ü"$§,¡,¨t×/JÑ/JÈQÑ/NÐPV×PbÑPbÓ"cˆDÔØ&+ˆÕ#ùò $cs   ¶Cc                 óR   — | j                   r| j                  j                  }|S d }|S r   )r†   r£   r   )r"   r£   s     r&   Úget_rel_embeddingz DebertaEncoder.get_rel_embedding  s0   € Ø7;×7NÒ7N˜×,Ñ,×3Ñ3ˆØÐð UYˆØÐr'   c                 óþ   — |j                  «       dk  rE|j                  d«      j                  d«      }||j                  d«      j                  d«      z  }|S |j                  «       dk(  r|j                  d«      }|S )Nr+   r   rR   r)   r   )r}   rY   rä   )r"   r    Úextended_attention_masks      r&   Úget_attention_maskz!DebertaEncoder.get_attention_mask   sƒ   € Ø×ÑÓ 1Ò$Ø&4×&>Ñ&>¸qÓ&A×&KÑ&KÈAÓ&NÐ#Ø4Ð7N×7VÑ7VÐWYÓ7Z×7dÑ7dÐegÓ7hÑhˆNð Ðð ×ÑÓ! QÒ&Ø+×5Ñ5°aÓ8ˆNàÐr'   c                 óZ   — | j                   r|€|�t        ||«      }|S t        ||«      }|S r   )r†   ra   )r"   r2   r¢   rf   s       r&   Úget_rel_poszDebertaEncoder.get_rel_pos)  s>   € Ø×"Ò" |Ð';ØÐ'Ü6°|À]ÓS�ð Ðô  7°}ÀmÓT�ØÐr'   r2   r    Úoutput_hidden_statesr¡   Úreturn_dictc           	      ó^  — | j                  |«      }| j                  |||«      }|r|fnd }|rdnd }	|}
| j                  «       }t        | j                  «      D ].  \  }} ||
|||||¬«      \  }}|r||fz   }|�|}n|}
|sŒ)|	|fz   }	Œ0 |st        d„ |||	fD «       «      S t        |||	¬«      S )N© )r¢   rf   r£   r¡   c              3   ó&   K  — | ]	  }|€Œ|–— Œ y ­wr   r  )Ú.0r¼   s     r&   ú	<genexpr>z)DebertaEncoder.forward.<locals>.<genexpr>Z  s   è ø€ Òh˜qÐZ[ÑZgœÑhùs   ‚Š©Úlast_hidden_stater2   Ú
attentions)r  r  r  Ú	enumerater  rÏ   r   )r"   r2   r    r  r¡   r¢   rf   r  Úall_hidden_statesÚall_attentionsÚnext_kvr£   r¹   Úlayer_moduleÚatt_ms                  r&   r6   zDebertaEncoder.forward1  sõ   € ð ×0Ñ0°Ó@ˆØ×'Ñ'¨°|À\ÓRˆáL`¸Ñ8HÐfjÐÙ0™°dˆàˆà×/Ñ/Ó1ˆÜ(¨¯©Ó4ò 	;‰OˆAˆ|Ù#/ØØØ)Ø)Ø-Ø"3ô$Ñ ˆM˜5ñ $Ø$5¸Ð8HÑ$HÐ!àÐ'Ø,‘à'�â Ø!/°5°(Ñ!:‘ð'	;ñ* ÜÑh ]Ð4EÀ~Ð$VÔhÓhÐhÜØ+Ð;LÐYgô
ð 	
r'   )NN)TFNNT)r8   r9   r:   r;   r   r  r  r  r   rÎ   r¯   r6   r<   r=   s   @r&   r  r    sh   ø„ ÙBô	,òòóð &*Ø"'ØØØ ñ,
à—|‘|ð,
ð Ÿ™ð,
ð #ð	,
ð
  ð,
ð ÷,
r'   r  c                   ó`   ‡ — e Zd ZU eed<   dZdgZdZ ej                  «       ˆ fd„«       Z
ˆ xZS )ÚDebertaPreTrainedModelrJ   ÚdebertarÝ   Tc                 ó  •— t         ‰| �  |«       t        |t        «      r?t	        j
                  |j                  «       t	        j
                  |j                  «       yt        |t        t        f«      r t	        j
                  |j                  «       yt        |t        «      rZt	        j                  |j                  t        j                  |j                  j                   d   «      j#                  d«      «       yy)zInitialize the weights.r)   rØ   N)r   Ú_init_weightsrù   r‚   ÚinitÚzeros_r�   r‘   ÚLegacyDebertaLMPredictionHeadÚDebertaLMPredictionHeadr    rÑ   Úcopy_r×   r   rU   Úshaperd   )r"   Úmoduler%   s     €r&   r0  z$DebertaPreTrainedModel._init_weightsg  s©   ø€ ô 	‰Ñ˜fÔ%Ü�fÔ7Ô8Ü�K‰K˜Ÿ™Ô&Ü�K‰K˜Ÿ™Õ&Ü˜Ô!>Ô@WÐ XÔYÜ�K‰K˜Ÿ™Õ$Ü˜Ô 1Ô2Ü�J‰J�v×*Ñ*¬E¯L©L¸×9LÑ9L×9RÑ9RÐSUÑ9VÓ,W×,^Ñ,^Ð_fÓ,gÕhð 3r'   )r8   r9   r:   r   Ú__annotations__Úbase_model_prefixÚ"_keys_to_ignore_on_load_unexpectedÚsupports_gradient_checkpointingr   Úno_gradr0  r<   r=   s   @r&   r-  r-  `  s:   ø… àÓØ!ÐØ*?Ð)@Ð&Ø&*Ð#à€U‡]�]ƒ_ó	ió ô	ir'   r-  c                   ó  ‡ — e Zd Zˆ fd„Zd„ Zd„ Ze	 	 	 	 	 	 	 	 ddej                  dz  dej                  dz  dej                  dz  dej                  dz  d	ej                  dz  d
e	dz  de	dz  de	dz  de
ez  fd„«       Zˆ xZS )ÚDebertaModelc                 ó    •— t         ‰| �  |«       t        |«      | _        t	        |«      | _        d| _        || _        | j                  «        y ©Nr   )	r   r   rÑ   rë   r  ÚencoderÚz_stepsrJ   Ú	post_initrI   s     €r&   r   zDebertaModel.__init__v  s@   ø€ Ü‰Ñ˜Ô ä+¨FÓ3ˆŒÜ% fÓ-ˆŒØˆŒØˆŒà�‰Õr'   c                 ó.   — | j                   j                  S r   ©rë   rÜ   ©r"   s    r&   Úget_input_embeddingsz!DebertaModel.get_input_embeddings€  s   € Ø�‰×.Ñ.Ð.r'   c                 ó&   — || j                   _        y r   rE  ©r"   Únew_embeddingss     r&   Úset_input_embeddingsz!DebertaModel.set_input_embeddingsƒ  s   € Ø*8ˆ�‰Õ'r'   Nrå   r    ræ   r×   rè   r¡   r  r  r¤   c	           	      ó|  — |�|n| j                   j                  }|�|n| j                   j                  }|�|n| j                   j                  }|�|�t	        d«      ‚|�#| j                  ||«       |j                  «       }
n!|�|j                  «       d d }
nt	        d«      ‚|�|j                  n|j                  }|€t        j                  |
|¬«      }|€&t        j                  |
t        j                  |¬«      }| j                  |||||¬«      }| j                  ||d||¬«      }|d	   }| j                  d	kD  r¼|d
   }t        | j                  «      D �cg c]  }| j                  j                   d   ‘Œ }}|d   }| j                  j#                  «       }| j                  j%                  |«      }| j                  j'                  |«      }|d	d  D ]!  } |||d|||¬«      }|j)                  |«       Œ# |d   }|s|f||rd	d  z   S dd  z   S t+        ||r|j,                  nd |j.                  ¬«      S c c}w )NzDYou cannot specify both input_ids and inputs_embeds at the same timer)   z5You have to specify either input_ids or inputs_embeds)rT   rS   )rå   ræ   r×   rç   rè   T)r  r¡   r  r   rR   Fr
  r+   r#  )rJ   r¡   r  r  r‹   Ú%warn_if_padding_and_no_attention_maskr#   rT   r   r   r   rV   rë   rA  rB  r¨   r  r  r  r  Úappendr   r2   r%  )r"   rå   r    ræ   r×   rè   r¡   r  r  Úkwargsré   rT   Úembedding_outputÚencoder_outputsÚencoded_layersr2   r  Úlayersr¢   r£   Úrel_posr  Úsequence_outputs                          r&   r6   zDebertaModel.forward†  sz  € ð 2CÐ1NÑ-ÐTX×T_ÑT_×TqÑTqÐà$8Ð$DÑ È$Ï+É+×JjÑJjð 	ð &1Ð%<‘kÀ$Ç+Á+×BYÑBYˆàÐ  ]Ð%>ÜÐcÓdÐdØÐ"Ø×6Ñ6°yÀ.ÔQØ#Ÿ.™.Ó*‰KØÐ&Ø'×,Ñ,Ó.¨s°Ð3‰KäÐTÓUÐUà%.Ð%:�×!Ò!À×@TÑ@TˆàÐ!Ü"ŸZ™Z¨¸FÔCˆNØÐ!Ü"Ÿ[™[¨¼E¿J¹JÈvÔVˆNàŸ?™?ØØ)Ø%ØØ'ð +ó 
Ðð Ÿ,™,ØØØ!%Ø/Ø#ð 'ó 
ˆð )¨Ñ+ˆà�<‰<˜!ÒØ*¨2Ñ.ˆMÜ6;¸D¿L¹LÓ6IÖJ°�d—l‘l×(Ñ(¨Ó,ÐJˆFÐJØ)¨"Ñ-ˆLØ!Ÿ\™\×;Ñ;Ó=ˆNØ!Ÿ\™\×<Ñ<¸^ÓLˆNØ—l‘l×.Ñ.Ð/?Ó@ˆGØ  ˜ò 	4�Ù$Ø!Ø"Ø&+Ø!-Ø!(Ø#1ô �ð ×%Ñ% lÕ3ð	4ð )¨Ñ,ˆáØ#Ð%¨Ñ>R¸Ð8\Ð(]Ñ]Ð]ÐXYÐ8\Ð(]Ñ]Ð]äØ-Ù;O˜/×7Ò7ÐUYØ&×1Ñ1ô
ð 	
ùò+ Ks   Å H9)NNNNNNNN)r8   r9   r:   r   rG  rK  r   r   rÎ   r¯   rÏ   r   r6   r<   r=   s   @r&   r>  r>  t  sá   ø„ ôò/ò9ð ð *.Ø.2Ø.2Ø,0Ø-1Ø)-Ø,0Ø#'ñO
à—<‘< $Ñ&ðO
ð Ÿ™ tÑ+ðO
ð Ÿ™ tÑ+ð	O
ð
 —l‘l TÑ)ðO
ð —|‘| dÑ*ðO
ð   $™;ðO
ð # T™kðO
ð ˜D‘[ðO
ð 
�Ñ	 òO
ó ôO
r'   r>  c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )Ú$LegacyDebertaPredictionHeadTransformc                 ó   •— t         ‰| �  «        t        |d|j                  «      | _        t        j                  |j                  | j                  «      | _        t        |j                  t        «      rt        |j                     | _        n|j                  | _        t        j                  | j                  |j                  ¬«      | _        y )NrÔ   )r$   )r   r   r“   rB   rÔ   r   rA   rC   rù   rú   rû   r	   Útransform_act_fnrE   rD   rI   s     €r&   r   z-LegacyDebertaPredictionHeadTransform.__init__Ú  s“   ø€ Ü‰ÑÔÜ% fÐ.>À×@RÑ@RÓSˆÔä—Y‘Y˜v×1Ñ1°4×3FÑ3FÓGˆŒ
Ü�f×'Ñ'¬Ô-Ü$*¨6×+<Ñ+<Ñ$=ˆDÕ!à$*×$5Ñ$5ˆDÔ!ÜŸ™ d×&9Ñ&9¸v×?TÑ?TÔUˆ�r'   c                 ól   — | j                  |«      }| j                  |«      }| j                  |«      }|S r   )rC   rY  rE   rþ   s     r&   r6   z,LegacyDebertaPredictionHeadTransform.forwardå  s4   € ØŸ
™
 =Ó1ˆØ×-Ñ-¨mÓ<ˆØŸ™ }Ó5ˆØÐr'   rP   r=   s   @r&   rW  rW  Ù  s   ø„ ô	Vör'   rW  c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )r3  c                 óJ  •— t         ‰| �  «        t        |«      | _        t	        |d|j
                  «      | _        t        j                  | j                  |j                  d¬«      | _
        t        j                  t        j                  |j                  «      «      | _        y )NrÔ   Tr…   )r   r   rW  Ú	transformr“   rB   rÔ   r   rA   rÛ   Údecoderr   r   r   r    rI   s     €r&   r   z&LegacyDebertaLMPredictionHead.__init__í  ss   ø€ Ü‰ÑÔÜ=¸fÓEˆŒä% fÐ.>À×@RÑ@RÓSˆÔô —y‘y ×!4Ñ!4°f×6GÑ6GÈdÔSˆŒä—L‘L¤§¡¨V×->Ñ->Ó!?Ó@ˆ�	r'   c                 óJ   — | j                  |«      }| j                  |«      }|S r   )r]  r^  rþ   s     r&   r6   z%LegacyDebertaLMPredictionHead.forwardø  s$   € ØŸ™ }Ó5ˆØŸ™ ]Ó3ˆØÐr'   rP   r=   s   @r&   r3  r3  ì  s   ø„ ô	Aör'   r3  c                   óV   ‡ — e Zd Zˆ fd„Zdej
                  dej
                  fd„Zˆ xZS )ÚLegacyDebertaOnlyMLMHeadc                 óB   •— t         ‰| �  «        t        |«      | _        y r   )r   r   r3  ÚpredictionsrI   s     €r&   r   z!LegacyDebertaOnlyMLMHead.__init__   s   ø€ Ü‰ÑÔÜ8¸Ó@ˆÕr'   rU  r¤   c                 ó(   — | j                  |«      }|S r   )rc  )r"   rU  Úprediction_scoress      r&   r6   z LegacyDebertaOnlyMLMHead.forward  s   € Ø ×,Ñ,¨_Ó=ÐØ Ð r'   rÿ   r=   s   @r&   ra  ra  ÿ  s$   ø„ ôAð! u§|¡|ð !¸¿¹÷ !r'   ra  c                   ó(   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ xZS )r4  zMhttps://github.com/microsoft/DeBERTa/blob/master/DeBERTa/deberta/bert.py#L270c                 óØ  •— t         ‰| �  «        t        j                  |j                  |j                  «      | _        t        |j                  t        «      rt        |j                     | _
        n|j                  | _
        t        j                  |j                  |j                  d¬«      | _        t        j                  t        j                  |j                   «      «      | _        y )NT)r$   Úelementwise_affine)r   r   r   rA   rB   rC   rù   rú   rû   r	   rY  rE   rD   r   r   r   rÛ   r    rI   s     €r&   r   z DebertaLMPredictionHead.__init__  s�   ø€ Ü‰ÑÔÜ—Y‘Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ä�f×'Ñ'¬Ô-Ü$*¨6×+<Ñ+<Ñ$=ˆDÕ!à$*×$5Ñ$5ˆDÔ!äŸ™ f×&8Ñ&8¸f×>SÑ>SÐhlÔmˆŒä—L‘L¤§¡¨V×->Ñ->Ó!?Ó@ˆ�	r'   c                 óâ   — | j                  |«      }| j                  |«      }| j                  |«      }t        j                  ||j
                  j                  «       «      | j                  z   }|S r   )rC   rY  rE   r   rª   r   r«   r    )r"   r2   rÜ   s      r&   r6   zDebertaLMPredictionHead.forward  sd   € ØŸ
™
 =Ó1ˆØ×-Ñ-¨mÓ<ˆØŸ™Øó
ˆô Ÿ™ ]°O×4JÑ4J×4LÑ4LÓ4NÓOÐRV×R[ÑR[Ñ[ˆØÐr'   r7   r=   s   @r&   r4  r4  	  s   ø„ ÙWôAör'   r4  c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ÚDebertaOnlyMLMHeadc                 óB   •— t         ‰| �  «        t        |«      | _        y r   )r   r   r4  Úlm_headrI   s     €r&   r   zDebertaOnlyMLMHead.__init__%  s   ø€ Ü‰ÑÔÜ.¨vÓ6ˆ�r'   c                 ó*   — | j                  ||«      }|S r   )rm  )r"   rU  rÜ   re  s       r&   r6   zDebertaOnlyMLMHead.forward*  s   € Ø ŸL™L¨¸/ÓJÐØ Ð r'   rP   r=   s   @r&   rk  rk  $  s   ø„ ô7ö
!r'   rk  c                   ó6  ‡ — e Zd ZdddœZˆ fd„Zd„ Zd„ Ze	 	 	 	 	 	 	 	 	 ddej                  dz  d	ej                  dz  d
ej                  dz  dej                  dz  dej                  dz  dej                  dz  de
dz  de
dz  de
dz  deez  fd„«       Zˆ xZS )ÚDebertaForMaskedLMzcls.predictions.biasú)deberta.embeddings.word_embeddings.weight)zcls.predictions.decoder.biaszcls.predictions.decoder.weightc                 óò   •— t         ‰| �  |«       |j                  | _        t        |«      | _        | j                  rt        |«      | _        nddi| _        t        |«      | _	        | j                  «        y )Nzlm_predictions.lm_head.weightrq  )r   r   Úlegacyr>  r.  ra  ÚclsÚ_tied_weights_keysrk  Úlm_predictionsrC  rI   s     €r&   r   zDebertaForMaskedLM.__init__6  sg   ø€ Ü‰Ñ˜Ô Ø—m‘mˆŒÜ# FÓ+ˆŒØ�;Š;Ü/°Ó7ˆD�Hð 0Ð1\ð'ˆDÔ#ô #5°VÓ"<ˆDÔð 	�‰Õr'   c                 óš   — | j                   r | j                  j                  j                  S | j                  j
                  j                  S r   )rs  rt  rc  r^  rv  rm  rC   rF  s    r&   Úget_output_embeddingsz(DebertaForMaskedLM.get_output_embeddingsE  s7   € Ø�;Š;Ø—8‘8×'Ñ'×/Ñ/Ð/à×&Ñ&×.Ñ.×4Ñ4Ð4r'   c                 ó  — | j                   rA|| j                  j                  _        |j                  | j                  j                  _        y || j
                  j                  _        |j                  | j
                  j                  _        y r   )rs  rt  rc  r^  r    rv  rm  rC   rI  s     r&   Úset_output_embeddingsz(DebertaForMaskedLM.set_output_embeddingsK  sa   € Ø�;Š;Ø+9ˆD�H‰H× Ñ Ô(Ø(6×(;Ñ(;ˆD�H‰H× Ñ Õ%à0>ˆD×Ñ×'Ñ'Ô-Ø/=×/BÑ/BˆD×Ñ×'Ñ'Õ,r'   Nrå   r    ræ   r×   rè   Úlabelsr¡   r  r  r¤   c
           
      ó  — |	�|	n| j                   j                  }	| j                  ||||||||	¬«      }|d   }| j                  r| j	                  |«      }n0| j                  || j                  j                  j                  «      }d}|�Ft        «       } ||j                  d| j                   j                  «      |j                  d«      «      }|	s|f|dd z   }|�|f|z   S |S t        |||j                  |j                  ¬«      S )a¢  
        labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
            Labels for computing the masked language modeling loss. Indices should be in `[-100, 0, ...,
            config.vocab_size]` (see `input_ids` docstring) Tokens with indices set to `-100` are ignored (masked), the
            loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`
        N©r    ræ   r×   rè   r¡   r  r  r   r)   r   ©ÚlossÚlogitsr2   r%  )rJ   r  r.  rs  rt  rv  rë   rÜ   r   rW   rÛ   r   r2   r%  )r"   rå   r    ræ   r×   rè   r{  r¡   r  r  rO  ÚoutputsrU  re  Úmasked_lm_lossÚloss_fctrï   s                    r&   r6   zDebertaForMaskedLM.forwardS  s!  € ð* &1Ð%<‘kÀ$Ç+Á+×BYÑBYˆà—,‘,ØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ó 	
ˆð " !™*ˆØ�;Š;Ø $§¡¨Ó 9Ñà $× 3Ñ 3°OÀTÇ\Á\×E\ÑE\×ElÑElÓ mÐàˆØÐÜ'Ó)ˆHÙ%Ð&7×&<Ñ&<¸RÀÇÁ×AWÑAWÓ&XÐZ`×ZeÑZeÐfhÓZiÓjˆNáØ'Ð)¨G°A°B¨KÑ7ˆFØ3AÐ3M�^Ð%¨Ñ.ÐYÐSYÐYäØØ$Ø!×/Ñ/Ø×)Ñ)ô	
ð 	
r'   ©	NNNNNNNNN)r8   r9   r:   ru  r   rx  rz  r   r   rÎ   r¯   rÏ   r   r6   r<   r=   s   @r&   rp  rp  /  sý   ø„ ð )?Ø*UñÐô
ò5òCð ð *.Ø.2Ø.2Ø,0Ø-1Ø&*Ø)-Ø,0Ø#'ñ5
à—<‘< $Ñ&ð5
ð Ÿ™ tÑ+ð5
ð Ÿ™ tÑ+ð	5
ð
 —l‘l TÑ)ð5
ð —|‘| dÑ*ð5
ð —‘˜tÑ#ð5
ð   $™;ð5
ð # T™kð5
ð ˜D‘[ð5
ð 
�Ñ	ò5
ó ô5
r'   rp  c                   ó4   ‡ — e Zd Zˆ fd„Zd„ Zed„ «       Zˆ xZS )ÚContextPoolerc                 óÖ   •— t         ‰| �  «        t        j                  |j                  |j                  «      | _        t        j                  |j                  «      | _        || _	        y r   )
r   r   r   rA   Úpooler_hidden_sizerC   rF   Úpooler_dropoutrH   rJ   rI   s     €r&   r   zContextPooler.__init__�  sI   ø€ Ü‰ÑÔÜ—Y‘Y˜v×8Ñ8¸&×:SÑ:SÓTˆŒ
Ü—z‘z &×"7Ñ"7Ó8ˆŒØˆ�r'   c                 ó    — |d d …df   }| j                  |«      }| j                  |«      }t        | j                  j                     |«      }|S r@  )rH   rC   r	   rJ   Úpooler_hidden_act)r"   r2   Úcontext_tokenÚpooled_outputs       r&   r6   zContextPooler.forward“  sM   € ð &¢a¨ dÑ+ˆØŸ™ ]Ó3ˆØŸ
™
 =Ó1ˆÜ˜tŸ{™{×<Ñ<Ñ=¸mÓLˆØÐr'   c                 ó.   — | j                   j                  S r   )rJ   rB   rF  s    r&   Ú
output_dimzContextPooler.output_dim�  s   € à�{‰{×&Ñ&Ð&r'   )r8   r9   r:   r   r6   Úpropertyr�  r<   r=   s   @r&   r†  r†  Œ  s!   ø„ ôòð ñ'ó ô'r'   r†  zŸ
    DeBERTa Model transformer with a sequence classification/regression head on top (a linear layer on top of the
    pooled output) e.g. for GLUE tasks.
    )Úcustom_introc                   ó,  ‡ — e Zd Zˆ fd„Zd„ Zd„ Ze	 	 	 	 	 	 	 	 	 ddej                  dz  dej                  dz  dej                  dz  dej                  dz  d	ej                  dz  d
ej                  dz  de	dz  de	dz  de	dz  de
ez  fd„«       Zˆ xZS )Ú DebertaForSequenceClassificationc                 ó�  •— t         ‰| �  |«       t        |dd«      }|| _        t	        |«      | _        t        |«      | _        | j                  j                  }t        j                  ||«      | _        t        |dd «      }|€| j                  j                  n|}t        j                  |«      | _        | j!                  «        y )NÚ
num_labelsr+   Úcls_dropout)r   r   r“   r•  r>  r.  r†  Úpoolerr�  r   rA   Ú
classifierrJ   rG   rF   rH   rC  )r"   rJ   r•  r�  Údrop_outr%   s        €r&   r   z)DebertaForSequenceClassification.__init__©  sž   ø€ Ü‰Ñ˜Ô ä˜V \°1Ó5ˆ
Ø$ˆŒä# FÓ+ˆŒÜ# FÓ+ˆŒØ—[‘[×+Ñ+ˆ
äŸ)™) J°
Ó;ˆŒÜ˜6 =°$Ó7ˆØ6>Ð6F�4—;‘;×2Ò2ÈHˆÜ—z‘z (Ó+ˆŒð 	�‰Õr'   c                 ó6   — | j                   j                  «       S r   )r.  rG  rF  s    r&   rG  z5DebertaForSequenceClassification.get_input_embeddings»  s   € Ø�|‰|×0Ñ0Ó2Ð2r'   c                 ó:   — | j                   j                  |«       y r   )r.  rK  rI  s     r&   rK  z5DebertaForSequenceClassification.set_input_embeddings¾  s   € Ø�‰×)Ñ)¨.Õ9r'   Nrå   r    ræ   r×   rè   r{  r¡   r  r  r¤   c
           
      ó  — |	�|	n| j                   j                  }	| j                  ||||||||	¬«      }|d   }| j                  |«      }| j	                  |«      }| j                  |«      }d}|��Ý| j                   j                  �€â| j                  dk(  rXt        j                  «       }|j                  d«      j                  |j                  «      } |||j                  d«      «      }�n_|j                  «       dk(  s|j                  d«      dk(  �r|dk\  j                  «       }|j!                  «       }|j                  d«      dkD  r·t#        j$                  |d|j'                  |j                  d«      |j                  d«      «      «      }t#        j$                  |d|j                  d«      «      }t)        «       } ||j                  d| j                  «      j+                  «       |j                  d«      «      }�nIt#        j,                  d«      j                  |«      }�n#t        j.                  d«      } ||«      |z  j1                  d«      j3                  «        }nä| j                   j                  dk(  rIt        «       }| j                  dk(  r& ||j5                  «       |j5                  «       «      }nŒ |||«      }n‚| j                   j                  dk(  r=t)        «       } ||j                  d| j                  «      |j                  d«      «      }n,| j                   j                  dk(  rt7        «       } |||«      }|	s|f|dd z   }|�|f|z   S |S t9        |||j:                  |j<                  ¬	«      S )
a�  
        labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
            Labels for computing the sequence classification/regression loss. Indices should be in `[0, ...,
            config.num_labels - 1]`. If `config.num_labels == 1` a regression loss is computed (Mean-Square loss), If
            `config.num_labels > 1` a classification loss is computed (Cross-Entropy).
        N)ræ   r    r×   rè   r¡   r  r  r   r   r)   Ú
regressionÚsingle_label_classificationÚmulti_label_classificationr~  )rJ   r  r.  r—  rH   r˜  Úproblem_typer•  r   r   rW   r1   r,   r}   r#   ÚnonzerorV   r   r   rd   r   r-   rq   Ú
LogSoftmaxÚsumr.   rä   r   r   r2   r%  )r"   rå   r    ræ   r×   rè   r{  r¡   r  r  rO  r�  Úencoder_layerr�  r€  r  Úloss_fnÚlabel_indexÚlabeled_logitsrƒ  Úlog_softmaxrï   s                         r&   r6   z(DebertaForSequenceClassification.forwardÁ  s  € ð( &1Ð%<‘kÀ$Ç+Á+×BYÑBYˆà—,‘,ØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ó 	
ˆð   ™
ˆØŸ™ MÓ2ˆØŸ™ ]Ó3ˆØ—‘ Ó/ˆàˆØÑØ�{‰{×'Ñ'Ñ/Ø—?‘? aÒ'ä Ÿj™j›l�GØ#Ÿ[™[¨›_×/Ñ/°·±Ó=�FÙ" 6¨6¯;©;°r«?Ó;’DØ—Z‘Z“\ QÒ&¨&¯+©+°b«/¸QÓ*>Ø#)¨Q¡;×"7Ñ"7Ó"9�KØ#Ÿ[™[›]�FØ"×'Ñ'¨Ó*¨QÒ.Ü).¯©Ø" A {×'9Ñ'9¸+×:JÑ:JÈ1Ó:MÈvÏ{É{Ð[\Ë~Ó'^ó*˜ô "'§¡¨f°a¸×9IÑ9IÈ"Ó9MÓ!N˜Ü#3Ó#5˜Ù'¨×(;Ñ(;¸BÀÇÁÓ(P×(VÑ(VÓ(XÐZ`×ZeÑZeÐfhÓZiÓjšä$Ÿ|™|¨A›×1Ñ1°&Ó9šä"$§-¡-°Ó"3�KÙ)¨&Ó1°FÑ:×?Ñ?ÀÓC×IÑIÓKÐK‘DØ—‘×)Ñ)¨\Ò9Ü"›9�Ø—?‘? aÒ'Ù# F§N¡NÓ$4°f·n±nÓ6FÓG‘Dá# F¨FÓ3‘DØ—‘×)Ñ)Ð-JÒJÜ+Ó-�Ù §¡¨B°·±Ó @À&Ç+Á+ÈbÃ/ÓR‘Ø—‘×)Ñ)Ð-IÒIÜ,Ó.�Ù ¨Ó/�ÙØ�Y ¨¨ Ñ,ˆFØ)-Ð)9�T�G˜fÑ$ÐE¸vÐEä'Ø˜f°G×4IÑ4IÐV]×VhÑVhô
ð 	
r'   r„  )r8   r9   r:   r   rG  rK  r   r   rÎ   r¯   rÏ   r   r6   r<   r=   s   @r&   r“  r“  ¢  sù   ø„ ôò$3ò:ð ð *.Ø.2Ø.2Ø,0Ø-1Ø&*Ø)-Ø,0Ø#'ñN
à—<‘< $Ñ&ðN
ð Ÿ™ tÑ+ðN
ð Ÿ™ tÑ+ð	N
ð
 —l‘l TÑ)ðN
ð —|‘| dÑ*ðN
ð —‘˜tÑ#ðN
ð   $™;ðN
ð # T™kðN
ð ˜D‘[ðN
ð 
Ð)Ñ	)òN
ó ôN
r'   r“  c                   ó   ‡ — e Zd Zˆ fd„Ze	 	 	 	 	 	 	 	 	 ddej                  dz  dej                  dz  dej                  dz  dej                  dz  dej                  dz  dej                  dz  d	edz  d
edz  dedz  dee	z  fd„«       Z
ˆ xZS )ÚDebertaForTokenClassificationc                 ó,  •— t         ‰| �  |«       |j                  | _        t        |«      | _        t        j                  |j                  «      | _        t        j                  |j                  |j                  «      | _        | j                  «        y r   )r   r   r•  r>  r.  r   rF   rG   rH   rA   rB   r˜  rC  rI   s     €r&   r   z&DebertaForTokenClassification.__init__  si   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒä# FÓ+ˆŒÜ—z‘z &×"<Ñ"<Ó=ˆŒÜŸ)™) F×$6Ñ$6¸×8IÑ8IÓJˆŒð 	�‰Õr'   Nrå   r    ræ   r×   rè   r{  r¡   r  r  r¤   c
           
      ó¦  — |	�|	n| j                   j                  }	| j                  ||||||||	¬«      }|d   }| j                  |«      }| j	                  |«      }d}|�<t        «       } ||j                  d| j                  «      |j                  d«      «      }|	s|f|dd z   }|�|f|z   S |S t        |||j                  |j                  ¬«      S )zÛ
        labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
            Labels for computing the token classification loss. Indices should be in `[0, ..., config.num_labels - 1]`.
        Nr}  r   r)   r   r~  )rJ   r  r.  rH   r˜  r   rW   r•  r   r2   r%  )r"   rå   r    ræ   r×   rè   r{  r¡   r  r  rO  r�  rU  r€  r  rƒ  rï   s                    r&   r6   z%DebertaForTokenClassification.forward   sñ   € ð$ &1Ð%<‘kÀ$Ç+Á+×BYÑBYˆà—,‘,ØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ó 	
ˆð " !™*ˆàŸ,™, Ó7ˆØ—‘ Ó1ˆàˆØÐÜ'Ó)ˆHÙ˜FŸK™K¨¨D¯O©OÓ<¸f¿k¹kÈ"»oÓNˆDáØ�Y ¨¨ Ñ,ˆFØ)-Ð)9�T�G˜fÑ$ÐE¸vÐEä$Ø˜f°G×4IÑ4IÐV]×VhÑVhô
ð 	
r'   r„  )r8   r9   r:   r   r   r   rÎ   r¯   rÏ   r   r6   r<   r=   s   @r&   rª  rª    sã   ø„ ô	ð ð *.Ø.2Ø.2Ø,0Ø-1Ø&*Ø)-Ø,0Ø#'ñ.
à—<‘< $Ñ&ð.
ð Ÿ™ tÑ+ð.
ð Ÿ™ tÑ+ð	.
ð
 —l‘l TÑ)ð.
ð —|‘| dÑ*ð.
ð —‘˜tÑ#ð.
ð   $™;ð.
ð # T™kð.
ð ˜D‘[ð.
ð 
Ð&Ñ	&ò.
ó ô.
r'   rª  c                   ó@  ‡ — e Zd Zˆ fd„Ze	 	 	 	 	 	 	 	 	 	 ddej                  dz  dej                  dz  dej                  dz  dej                  dz  dej                  dz  dej                  dz  d	ej                  dz  d
edz  dedz  dedz  dee	z  fd„«       Z
ˆ xZS )ÚDebertaForQuestionAnsweringc                 óä   •— t         ‰| �  |«       |j                  | _        t        |«      | _        t        j                  |j                  |j                  «      | _        | j                  «        y r   )
r   r   r•  r>  r.  r   rA   rB   Ú
qa_outputsrC  rI   s     €r&   r   z$DebertaForQuestionAnswering.__init__T  sS   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒä# FÓ+ˆŒÜŸ)™) F×$6Ñ$6¸×8IÑ8IÓJˆŒð 	�‰Õr'   Nrå   r    ræ   r×   rè   Ústart_positionsÚend_positionsr¡   r  r  r¤   c           
      ó&  — |
�|
n| j                   j                  }
| j                  |||||||	|
¬«      }|d   }| j                  |«      }|j	                  dd¬«      \  }}|j                  d«      j                  «       }|j                  d«      j                  «       }d }|�·|�µt        |j                  «       «      dkD  r|j                  d«      }t        |j                  «       «      dkD  r|j                  d«      }|j                  d«      }|j                  d|«      }|j                  d|«      }t        |¬«      } |||«      } |||«      }||z   dz  }|
s||f|dd  z   }|�|f|z   S |S t        ||||j                  |j                  ¬«      S )	Nr}  r   r   r)   r¦   )Úignore_indexr+   )r  Ústart_logitsÚ
end_logitsr2   r%  )rJ   r  r.  r°  Úspliträ   r´   r¬   r#   rÅ   r   r   r2   r%  )r"   rå   r    ræ   r×   rè   r±  r²  r¡   r  r  rO  r�  rU  r€  rµ  r¶  Ú
total_lossÚignored_indexrƒ  Ú
start_lossÚend_lossrï   s                          r&   r6   z#DebertaForQuestionAnswering.forward^  s¿  € ð &1Ð%<‘kÀ$Ç+Á+×BYÑBYˆà—,‘,ØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ó 	
ˆð " !™*ˆà—‘ Ó1ˆØ#)§<¡<°°r <Ó#:Ñ ˆ�jØ#×+Ñ+¨BÓ/×:Ñ:Ó<ˆØ×'Ñ'¨Ó+×6Ñ6Ó8ˆ
àˆ
ØÐ&¨=Ð+Dä�?×'Ñ'Ó)Ó*¨QÒ.Ø"1×"9Ñ"9¸"Ó"=�Ü�=×%Ñ%Ó'Ó(¨1Ò,Ø -× 5Ñ 5°bÓ 9�à(×-Ñ-¨aÓ0ˆMØ-×3Ñ3°A°}ÓEˆOØ)×/Ñ/°°=ÓAˆMä'°]ÔCˆHÙ! ,°Ó@ˆJÙ 
¨MÓ:ˆHØ$ xÑ/°1Ñ4ˆJáØ" JÐ/°'¸!¸"°+Ñ=ˆFØ/9Ð/E�Z�M FÑ*ÐQÈ6ÐQä+ØØ%Ø!Ø!×/Ñ/Ø×)Ñ)ô
ð 	
r'   )
NNNNNNNNNN)r8   r9   r:   r   r   r   rÎ   r¯   rÏ   r   r6   r<   r=   s   @r&   r®  r®  R  sù   ø„ ôð ð *.Ø.2Ø.2Ø,0Ø-1Ø/3Ø-1Ø)-Ø,0Ø#'ñ=
à—<‘< $Ñ&ð=
ð Ÿ™ tÑ+ð=
ð Ÿ™ tÑ+ð	=
ð
 —l‘l TÑ)ð=
ð —|‘| dÑ*ð=
ð Ÿ™¨Ñ,ð=
ð —|‘| dÑ*ð=
ð   $™;ð=
ð # T™kð=
ð ˜D‘[ð=
ð 
Ð-Ñ	-ò=
ó ô=
r'   r®  )rp  r®  r“  rª  r>  r-  )Ar;   r   r   Útorch.nnr   r   r   Ú r   r1  Úactivationsr	   Úmodeling_layersr
   Úmodeling_outputsr   r   r   r   r   Úmodeling_utilsr   Úutilsr   r   Úconfiguration_debertar   Ú
get_loggerr8   ÚloggerÚModuler   r?   ÚjitÚscriptra   rg   ri   rm   rÎ   rŒ   rr   ru   rz   r€   r‚   rÑ   rí   rö   r  r  r  r-  r>  rW  r3  ra  r4  rk  rp  r†  r“  rª  r®  Ú__all__r  r'   r&   ú<module>rÊ     sg  ðñ ã Ý ß AÑ Aå &Ý !Ý 9÷õ õ .ß ,Ý 0ð 
ˆ×	Ñ	˜HÓ	%€ô�r—y‘yô ô(˜Ÿ	™	ô ð ‡�×Ññó ðð8 ‡�×Ññró ðrð ‡�×Ññnó ðnð ‡�×Ññ[ó ð[ð ‡�×Ñð\ %§,¡,ð \¸cò \ó ð\ð ‡�×Ñð˜EŸL™Lð °U·\±\ò ó ðð ‡�×Ñðd¨¯©ð dÀÇÁð dÐgjò dó ðdð ‡�×Ñð°·±ð ÈÏÉò ó ðôC §	¡	ô CôLN˜Ÿ	™	ô Nôb,�r—y‘yô ,ôF˜"Ÿ)™)ô ô�B—I‘Iô ô(Ð-ô (ôBO
�R—Y‘Yô O
ðd ôi˜_ó ió ðið& ôa
Ð)ó a
ó ða
ôH¨2¯9©9ô ô& B§I¡Iô ô&!˜rŸy™yô !ô˜bŸi™iô ô6!˜Ÿ™ô !ð ôY
Ð/ó Y
ó ðY
ôx'�B—I‘Iô 'ñ, ðôôh
Ð'=ó h
óðh
ðV ô;
Ð$:ó ;
ó ð;
ð| ôI
Ð"8ó I
ó ðI
òX�r'   