§
    ‚ŠtjHº  ã                   óÐ  — 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j        e¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z ej!        j"        d„ ¦   «         Z#ej!        j"        d„ ¦   «         Z$ej!        j"        d„ ¦   «         Z%ej!        j"        d„ ¦   «         Z&ej!        j"        dej'        de(fd„¦   «         Z)ej!        j"        dej'        dej'        fd„¦   «         Z*ej!        j"        dej'        dej'        de(fd„¦   «         Z+ej!        j"        dej'        dej'        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@dS )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).çê-�™—q=c                 ó  •— t          ¦   «                              ¦   «          t          j        t	          j        |¦  «        ¦  «        | _        t          j        t	          j        |¦  «        ¦  «        | _        || _	        d S ©N)
ÚsuperÚ__init__r   Ú	ParameterÚtorchÚonesÚweightÚzerosÚbiasÚvariance_epsilon)ÚselfÚsizeÚepsÚ	__class__s      €új/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/deberta/modeling_deberta.pyr   zDebertaLayerNorm.__init__)   s]   ø€ Ý‰Œ×ÒÑÔÐÝ”l¥5¤:¨dÑ#3Ô#3Ñ4Ô4ˆŒÝ”L¥¤¨TÑ!2Ô!2Ñ3Ô3ˆŒ	Ø #ˆÔÐÐó    c                 óV  — |j         }|                     ¦   «         }|                     dd¬¦  «        }||z
                       d¦  «                             dd¬¦  «        }||z
  t	          j        || j        z   ¦  «        z  }|                     |¦  «        }| 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Ô3ˆØ! DÑ(×-Ò-¨aÑ0Ô0×5Ò5°bÀ$Ð5ÑGÔGˆØ&¨Ñ-µ´¸HÀtÔG\Ñ<\Ñ1]Ô1]Ñ]ˆØ%×(Ò(¨Ñ4Ô4ˆØŒK˜-Ñ'¨$¬)Ñ3ˆØˆr(   )r   ©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r7   Ú__classcell__©r&   s   @r'   r   r   &   sR   ø€ € € € € Ø<Ð<ð$ð $ð $ð $ð $ð $ðð ð ð ð ð ð 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
        ¦  «        | _        d S 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__;   sa   ø€ Ý‰Œ×ÒÑÔÐÝ”Y˜vÔ1°6Ô3EÑFÔFˆŒ
Ý)¨&Ô*<¸fÔ>SÑTÔTˆŒÝ”z &Ô"<Ñ=Ô=ˆŒˆˆr(   c                 óŠ   — |                       |¦  «        }|                      |¦  «        }|                      ||z   ¦  «        }|S r   ©rD   rI   rF   ©r#   r3   Úinput_tensors      r'   r7   zDebertaSelfOutput.forwardA   ó@   € ØŸ
š
 =Ñ1Ô1ˆØŸš ]Ñ3Ô3ˆØŸš }°|Ñ'CÑDÔDˆØÐr(   ©r9   r:   r;   r   r7   r=   r>   s   @r'   r@   r@   :   sG   ø€ € € € € ð>ð >ð >ð >ð >ðð ð ð ð ð ð r(   r@   c                 ó¦  — |                       d¦  «        }|                      d¦  «        }t          j        |t          j        | j        ¬¦  «        }t          j        |t          j        |j        ¬¦  «        }|dd…df         |                     dd¦  «                             |d¦  «        z
  }|d|…dd…f         }|                     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ÚlongrU   ÚviewÚrepeatÚ	unsqueeze)Úquery_layerÚ	key_layerÚ
query_sizeÚkey_sizeÚq_idsÚk_idsÚrel_pos_idss          r'   Úbuild_relative_positionrb   H   sÁ   € ð$ ×!Ò! "Ñ%Ô%€JØ�~Š~˜bÑ!Ô!€HåŒL˜­5¬:¸kÔ>PÐQÑQÔQ€EÝŒL˜­¬¸IÔ<LÐMÑMÔM€EØ˜˜˜˜4˜”. 5§:¢:¨a°Ñ#4Ô#4×#;Ò#;¸JÈÑ#JÔ#JÑJ€KØ˜k˜z˜k¨1¨1¨1˜nÔ-€KØ×'Ò'¨Ñ*Ô*€KØÐr(   c                 óÌ   — |                       |                     d¦  «        |                     d¦  «        |                     d¦  «        |                     d¦  «        g¦  «        S )Nr   r   r,   r*   ©Úexpandr$   )Úc2p_posr[   Úrelative_poss      r'   Úc2p_dynamic_expandrh   e   sX   € à�>Š>˜;×+Ò+¨AÑ.Ô.°×0@Ò0@ÀÑ0CÔ0CÀ[×EUÒEUÐVWÑEXÔEXÐZf×ZkÒZkÐlnÑZoÔZoÐpÑqÔqÐqr(   c                 óÌ   — |                       |                     d¦  «        |                     d¦  «        |                     d¦  «        |                     d¦  «        g¦  «        S )Nr   r   rS   rd   )rf   r[   r\   s      r'   Úp2c_dynamic_expandrj   j   sV   € à�>Š>˜;×+Ò+¨AÑ.Ô.°×0@Ò0@ÀÑ0CÔ0CÀYÇ^Â^ÐTVÑEWÔEWÐYb×YgÒYgÐhjÑYkÔYkÐlÑmÔmÐmr(   c                 ó¶   — |                       |                     ¦   «         d d…         |                      d¦  «        |                     d¦  «        fz   ¦  «        S )Nr,   rS   rd   )Ú	pos_indexÚp2c_attr\   s      r'   Úpos_dynamic_expandrn   o   sJ   € à×Ò˜GŸLšL™NœN¨2¨A¨2Ô.°)·.².ÀÑ2DÔ2DÀiÇnÂnÐUWÑFXÔFXÐ1YÑYÑZÔZÐZr(   r[   Úscale_factorc                 ó’   — t          j        t          j        |                      d¦  «        t           j        ¬¦  «        |z  ¦  «        S )Nr*   ©r-   )r   r1   Útensorr$   r.   )r[   ro   s     r'   Úscaled_size_sqrtrs   w   s6   € åŒ:•e”l ;×#3Ò#3°BÑ#7Ô#7½u¼{ÐKÑKÔKÈlÑZÑ[Ô[Ð[r(   r\   c                 ó~   — |                       d¦  «        |                      d¦  «        k    rt          | |¦  «        S |S ©NrS   )r$   rb   )r[   r\   rg   s      r'   Ú
build_rposrv   |   s=   € à×Ò˜ÑÔ˜yŸ~š~¨bÑ1Ô1Ò1Ð1Ý& {°IÑ>Ô>Ð>àÐr(   Úmax_relative_positionsc           
      ó®   — t          j        t          t          |                      d¦  «        |                     d¦  «        ¦  «        |¦  «        ¦  «        S ru   )r   rr   ÚminÚmaxr$   )r[   r\   rw   s      r'   Úcompute_attention_spanr{   „   sA   € åŒ<��C × 0Ò 0°Ñ 4Ô 4°i·n²nÀRÑ6HÔ6HÑIÔIÐKaÑbÔbÑcÔcÐcr(   c           	      óô   — |                      d¦  «        |                      d¦  «        k    rK|d d …d d …d d …df                              d¦  «        }t          j        | dt	          || |¦  «        ¬¦  «        S | S )NrS   r   r*   r,   ©ÚdimÚindex)r$   rZ   r   Úgatherrn   )rm   r[   r\   rg   rl   s        r'   Úuneven_size_correctedr�   ‰   s~   € à×Ò˜ÑÔ˜yŸ~š~¨bÑ1Ô1Ò1Ð1Ø     A A A q q q¨! Ô,×6Ò6°rÑ:Ô:ˆ	ÝŒ|˜G¨Õ2DÀYÐPWÐYbÑ2cÔ2cÐdÑdÔdÐdàˆr(   c                   ó  ‡ — 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                 óP  •— t          ¦   «                              ¦   «          |j        |j        z  dk    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        rMt          j	        |j        |j        d¬¦  «        | _        t          j	        |j        |j        d¬¦  «        | _        nd | _        d | _        | j        r§t%          |dd¦  «        | _        | j        dk     r|j        | _        t          j        |j        ¦  «        | _        d| j        v r&t          j	        |j        | j        d¬¦  «        | _        d| j        v r$t          j	        |j        | j        ¦  «        | _        t          j        |j        ¦  «        | _        d S )Nr   zThe hidden size (z6) is not a multiple of the number of attention heads (ú)r   F©r!   rq   Úrelative_attentionÚtalking_headrw   r*   r   Úc2pÚp2c) r   r   rC   Únum_attention_headsÚ
ValueErrorÚintÚattention_head_sizeÚall_head_sizer   rB   Úin_projr   r   r    r.   Úq_biasÚv_biasÚpos_att_typeÚgetattrr‡   rˆ   Úhead_logits_projÚhead_weights_projrw   Úmax_position_embeddingsrG   rH   Úpos_dropoutÚpos_projÚ
pos_q_projÚattention_probs_dropout_probrI   rJ   s     €r'   r   z"DisentangledSelfAttention.__init__    so  ø€ Ý‰Œ×ÒÑÔÐØÔ Ô :Ñ:¸aÒ?Ð?Ýð8 FÔ$6ð 8ð 8Ø Ô4ð8ð 8ð 8ñô ð ð $*Ô#=ˆÔ Ý#& vÔ'9¸FÔ<VÑ'VÑ#WÔ#WˆÔ Ø!Ô5¸Ô8PÑPˆÔÝ”y Ô!3°TÔ5GÈ!Ñ5KÐRWÐXÑXÔXˆŒÝ”l¥5¤;°Ô0BÍ5Ì;Ð#WÑ#WÔ#WÑXÔXˆŒÝ”l¥5¤;°Ô0BÍ5Ì;Ð#WÑ#WÔ#WÑXÔXˆŒØ39Ô3FÐ3R˜FÔ/Ð/ÐXZˆÔå")¨&Ð2FÈÑ"NÔ"NˆÔÝ# F¨N¸EÑBÔBˆÔàÔð 	*Ý$&¤I¨fÔ.HÈ&ÔJdÐkpÐ$qÑ$qÔ$qˆDÔ!Ý%'¤Y¨vÔ/IÈ6ÔKeÐlqÐ%rÑ%rÔ%rˆDÔ"Ð"à$(ˆDÔ!Ø%)ˆDÔ"àÔ"ð 		TÝ*1°&Ð:RÐTVÑ*WÔ*WˆDÔ'ØÔ*¨QÒ.Ð.Ø.4Ô.L�Ô+Ý!œz¨&Ô*DÑEÔEˆDÔà˜Ô)Ð)Ð)Ý "¤	¨&Ô*<¸dÔ>PÐW\Ð ]Ñ ]Ô ]�”Ø˜Ô)Ð)Ð)Ý"$¤)¨FÔ,>ÀÔ@RÑ"SÔ"S�”å”z &Ô"EÑFÔFˆŒˆˆr(   c                 ó¨   — |                      ¦   «         d d…         | j        dfz   }|                     |¦  «        }|                     dddd¦  «        S )Nr*   r   r,   r   r   )r$   r‹   rX   Úpermute)r#   ÚxÚnew_x_shapes      r'   Útranspose_for_scoresz.DisentangledSelfAttention.transpose_for_scoresÆ   sM   € Ø—f’f‘h”h˜s ˜s”m tÔ'?ÀÐ&DÑDˆØ�FŠF�;ÑÔˆØ�yŠy˜˜A˜q !Ñ$Ô$Ð$r(   FNr3   Úattention_maskÚoutput_attentionsÚquery_statesrg   Úrel_embeddingsÚreturnc                 ó$  ‡ ‡— |€E‰                       |¦  «        }‰                      |¦  «                             dd¬¦  «        \  }}	}
�n>‰ j         j                             ‰ j        dz  d¬¦  «        Šˆ ˆfd„t          d¦  «        D ¦   «         }t          j        |d         |                     ¦   «          	                    |d         j
        ¬¦  «        ¦  «        }t          j        |d         |                     ¦   «          	                    |d         j
        ¬¦  «        ¦  «        }t          j        |d	         |                     ¦   «          	                    |d	         j
        ¬¦  «        ¦  «        }ˆ fd
„|||fD ¦   «         \  }}	}
|‰                      ‰ j        dddd…f         ¦  «        z   }|
‰                      ‰ j        dddd…f         ¦  «        z   }
d}dt          ‰ j        ¦  «        z   }t          ||¦  «        }|| 	                    |j
        ¬¦  «        z  }t          j        ||	                     dd¦  «        ¦  «        }‰ j        r2|�0|�.‰                      |¦  «        }‰                      ||	|||¦  «        }|�||z   }‰ j        �A‰                      |                     dd	dd¦  «        ¦  «                             dddd	¦  «        }|                     ¦   «         }|                     | t          j        |j
        ¦  «        j        ¦  «        }t4          j                             |d¬¦  «        }‰                      |¦  «        }‰ j        �A‰                      |                     dd	dd¦  «        ¦  «                             dddd	¦  «        }t          j        ||
¦  «        }|                     dd	dd¦  «                             ¦   «         }|                      ¦   «         dd…         dz   }| !                    |¦  «        }|s|dfS ||fS )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   c                 ó|   •‡— g | ]7Št          j        ˆˆfd „t          ‰j        ¦  «        D ¦   «         d¬¦  «        ‘Œ8S )c                 ó,   •— g | ]}‰|d z  ‰z            ‘ŒS )r   © )Ú.0ÚiÚkÚwss     €€r'   ú
<listcomp>z@DisentangledSelfAttention.forward.<locals>.<listcomp>.<listcomp>ö   s%   ø€ ÐVÐVÐV°˜r ! a¡%¨!¡)œ}ÐVÐVÐVr(   r   r§   )r   ÚcatÚranger‹   )r«   r­   r#   r®   s    @€€r'   r¯   z5DisentangledSelfAttention.forward.<locals>.<listcomp>ö   sN   øø€ ÐqÐqÐqÐcd•E”IÐVÐVÐVÐVÐVµe¸DÔ<TÑ6UÔ6UÐVÑVÔVÐ\]Ð^Ñ^Ô^ÐqÐqÐqr(   rq   r   r,   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS rª   )r    )r«   rž   r#   s     €r'   r¯   z5DisentangledSelfAttention.forward.<locals>.<listcomp>ú   s(   ø€ Ð2cÐ2cÐ2cÐTU°4×3LÒ3LÈQÑ3OÔ3OÐ2cÐ2cÐ2cr(   rS   ©r*   )"r�   r    Úchunkr   r‹   r±   r   ÚmatmulÚtr2   r-   r‘   r’   Úlenr“   rs   Ú	transposer‡   r˜   Údisentangled_att_biasr•   r�   ÚboolÚmasked_fillÚfinfory   r   Ú
functionalÚsoftmaxrI   r–   Ú
contiguousr$   rX   )r#   r3   r¡   r¢   r£   rg   r¤   Úqpr[   r\   Úvalue_layerÚqkvwÚqr­   ÚvÚrel_attro   ÚscaleÚattention_scoresÚattention_probsÚcontext_layerÚnew_context_layer_shaper®   s   `                     @r'   r7   z!DisentangledSelfAttention.forwardË   s  øø€ ðL ÐØ—’˜mÑ,Ô,ˆBØ26×2KÒ2KÈBÑ2OÔ2O×2UÒ2UÐVWÐ]_Ð2UÑ2`Ô2`Ñ/ˆK˜ K¡Kà”Ô$×*Ò*¨4Ô+CÀaÑ+GÈQÐ*ÑOÔOˆBØqÐqÐqÐqÐqÕhmÐnoÑhpÔhpÐqÑqÔqˆDÝ”˜T !œW l§n¢nÑ&6Ô&6×&9Ò&9ÀÀQÄÄÐ&9Ñ&NÔ&NÑOÔOˆAÝ”˜T !œW m§o¢oÑ&7Ô&7×&:Ò&:ÀÀaÄÄÐ&:Ñ&OÔ&OÑPÔPˆAÝ”˜T !œW m§o¢oÑ&7Ô&7×&:Ò&:ÀÀaÄÄÐ&:Ñ&OÔ&OÑPÔPˆAØ2cÐ2cÐ2cÐ2cÐZ[Ð]^Ð`aÐYbÐ2cÑ2cÔ2cÑ/ˆK˜ Kà! D×$=Ò$=¸d¼kÈ$ÐPTÐVWÐVWÐVWÈ-Ô>XÑ$YÔ$YÑYˆØ! D×$=Ò$=¸d¼kÈ$ÐPTÐVWÐVWÐVWÈ-Ô>XÑ$YÔ$YÑYˆàˆà�3˜tÔ0Ñ1Ô1Ñ1ˆÝ  ¨lÑ;Ô;ˆØ! E§H¢H°;Ô3D HÑ$EÔ$EÑEˆÝ œ<¨°Y×5HÒ5HÈÈRÑ5PÔ5PÑQÔQÐàÔ"ð 	u ~Ð'AÀlÐF^Ø!×-Ò-¨nÑ=Ô=ˆNØ×0Ò0°¸iÈÐWeÐgsÑtÔtˆGàÐØ/°'Ñ9Ðð Ô Ð,Ø#×4Ò4Ð5E×5MÒ5MÈaÐQRÐTUÐWXÑ5YÔ5YÑZÔZ×bÒbÐcdÐfgÐijÐlmÑnÔnÐà'×,Ò,Ñ.Ô.ˆØ+×7Ò7¸.Ð8IÍ5Ì;ÐWbÔWhÑKiÔKiÔKmÑnÔnÐåœ-×/Ò/Ð0@ÀbÐ/ÑIÔIˆàŸ,š, Ñ7Ô7ˆØÔ!Ð-Ø"×4Ò4°_×5LÒ5LÈQÐPQÐSTÐVWÑ5XÔ5XÑYÔY×aÒaÐbcÐefÐhiÐklÑmÔmˆOåœ _°kÑBÔBˆØ%×-Ò-¨a°°A°qÑ9Ô9×DÒDÑFÔFˆØ"/×"4Ò"4Ñ"6Ô"6°s¸°sÔ";¸eÑ"CÐØ%×*Ò*Ð+BÑCÔCˆØ ð 	)Ø! 4Ð(Ð(Ø˜Ð/Ð/r(   r[   r\   ro   c           	      ó¨  — |€t          |||j        ¦  «        }|                     ¦   «         dk    r)|                     d¦  «                             d¦  «        }nj|                     ¦   «         dk    r|                     d¦  «        }n<|                     ¦   «         dk    r$t	          d|                     ¦   «         › �¦  «        ‚t          ||| j        ¦  «        }|                     ¦   «         }|| j        |z
  | j        |z   …d d …f                              d¦  «        }d}d| j        v r�|  	                    |¦  «        }|  
                    |¦  «        }t          j        ||                     dd	¦  «        ¦  «        }	t          j        ||z   d|dz  dz
  ¦  «        }
t          j        |	dt!          |
||¦  «        ¬
¦  «        }	||	z  }d| j        v �r|                      |¦  «        }|  
                    |¦  «        }|t%          ||¦  «        z  }t'          |||¦  «        }t          j        | |z   d|dz  dz
  ¦  «        }t          j        ||                     dd	¦  «                             |j        ¬¦  «        ¦  «        }t          j        |dt-          |||¦  «        ¬
¦  «                             dd	¦  «        }t/          ||||¦  «        }||z  }|S )Nr,   r   r   r   é   z2Relative position ids must be of dim 2 or 3 or 4. r‰   r*   rS   r}   rŠ   rq   )rb   rU   r~   rZ   rŒ   r{   rw   rW   r“   r™   r    r   rµ   r¸   Úclampr€   rh   rš   rs   rv   r2   r-   rj   r�   )r#   r[   r\   rg   r¤   ro   Úatt_spanÚscoreÚpos_key_layerÚc2p_attrf   Úpos_query_layerÚr_posÚp2c_posrm   s                  r'   r¹   z/DisentangledSelfAttention.disentangled_att_bias"  sê  € ð ÐÝ2°;À	È;ÔK]Ñ^Ô^ˆLØ×ÒÑÔ Ò"Ð"Ø'×1Ò1°!Ñ4Ô4×>Ò>¸qÑAÔAˆLˆLØ×ÒÑÔ 1Ò$Ð$Ø'×1Ò1°!Ñ4Ô4ˆLˆLà×ÒÑÔ 1Ò$Ð$ÝÐfÐR^×RbÒRbÑRdÔRdÐfÐfÑgÔgÐgå)¨+°yÀ$ÔB]Ñ^Ô^ˆØ#×(Ò(Ñ*Ô*ˆØ'ØÔ'¨(Ñ2°TÔ5PÐS[Ñ5[Ð[Ð]^Ð]^Ð]^Ð^ô
ç
Š)�A‰,Œ,ð 	ð ˆð �DÔ%Ð%Ð%Ø ŸMšM¨.Ñ9Ô9ˆMØ ×5Ò5°mÑDÔDˆMÝ”l ;°×0GÒ0GÈÈBÑ0OÔ0OÑPÔPˆGÝ”k ,°Ñ"9¸1¸hÈ¹lÈQÑ>NÑOÔOˆGÝ”l 7°Õ:LÈWÐVaÐcoÑ:pÔ:pÐqÑqÔqˆGØ�WÑˆEð �DÔ%Ð%Ñ%Ø"Ÿošo¨nÑ=Ô=ˆOØ"×7Ò7¸ÑHÔHˆOØÕ/°ÀÑNÔNÑNˆOÝØØØñô ˆEõ
 ”k 5 &¨8Ñ"3°Q¸À1¹ÀqÑ8HÑIÔIˆGÝ”l 9¨o×.GÒ.GÈÈBÑ.OÔ.O×.RÒ.RÐYbÔYhÐ.RÑ.iÔ.iÑjÔjˆGÝ”lØ˜RÕ'9¸'À;ÐPYÑ'ZÔ'Zðñ ô çŠi˜˜BÑÔð õ ,¨G°[À)È\ÑZÔZˆGØ�WÑˆEàˆr(   ©FNNN)r9   r:   r;   r<   r   r    r   ÚTensorrº   Útupler7   r�   r¹   r=   r>   s   @r'   rƒ   rƒ   •   sG  ø€ € € € € ðð ð$Gð $Gð $Gð $Gð $GðL%ð %ð %ð #(Ø,0Ø,0Ø.2ðU0ð U0à”|ðU0ð œðU0ð  ð	U0ð
 ”l TÑ)ðU0ð ”l TÑ)ðU0ð œ tÑ+ðU0ð 
ˆuŒ|˜Uœ\¨DÑ0Ð0Ô	1ðU0ð U0ð U0ð U0ðn6à”\ð6ð ”<ð6ð ”lð	6ð
 œð6ð ð6ð 6ð 6ð 6ð 6ð 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          ¦   «                              ¦   «          t          |dd¦  «        }t          |d|j        ¦  «        | _        t          j        |j        | j        |¬¦  «        | _        t          |dd¦  «        | _	        | j	        sd | _
        n$t          j        |j        | j        ¦  «        | _
        |j        dk    r%t          j        |j        | j        ¦  «        | _        nd | _        | j        |j        k    r't          j        | j        |j        d¬¦  «        | _        nd | _        t!          |j        |j        ¦  «        | _        t          j        |j        ¦  «        | _        || _        |                      d	t1          j        |j        ¦  «                             d
¦  «        d¬¦  «         d S )NÚpad_token_idr   Úembedding_size)Úpadding_idxÚposition_biased_inputTFr†   Úposition_ids©r   r*   )Ú
persistent)r   r   r”   rC   rÜ   r   Ú	EmbeddingÚ
vocab_sizeÚword_embeddingsrÞ   Úposition_embeddingsr—   Útype_vocab_sizeÚtoken_type_embeddingsrB   Ú
embed_projr   rE   rF   rG   rH   rI   rK   Úregister_bufferr   rV   re   )r#   rK   rÛ   r&   s      €r'   r   zDebertaEmbeddings.__init__^  s”  ø€ Ý‰Œ×ÒÑÔÐÝ˜v ~°qÑ9Ô9ˆÝ% fÐ.>ÀÔ@RÑSÔSˆÔÝ!œ|¨FÔ,=¸tÔ?RÐ`lÐmÑmÔmˆÔå%,¨VÐ5LÈdÑ%SÔ%SˆÔ"ØÔ)ð 	iØ'+ˆDÔ$Ð$å')¤|°FÔ4RÐTXÔTgÑ'hÔ'hˆDÔ$àÔ! AÒ%Ð%Ý)+¬°fÔ6LÈdÔNaÑ)bÔ)bˆDÔ&Ð&à)-ˆDÔ&àÔ &Ô"4Ò4Ð4Ý œi¨Ô(;¸VÔ=OÐV[Ð\Ñ\Ô\ˆDŒOˆOà"ˆDŒOå)¨&Ô*<¸fÔ>SÑTÔTˆŒÝ”z &Ô"<Ñ=Ô=ˆŒØˆŒð 	×ÒØ�EœL¨Ô)GÑHÔH×OÒOÐPWÑXÔXÐejð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r(   Nc                 óÞ  — |�|                      ¦   «         }n|                      ¦   «         d d…         }|d         }|€| j        d d …d |…f         }|€+t          j        |t          j        | j        j        ¬¦  «        }|€|                      |¦  «        }| j        �(|                      |                     ¦   «         ¦  «        }nt          j        |¦  «        }|}	| j	        r|	|z   }	| j
        �|  
                    |¦  «        }
|	|
z   }	| j        �|                      |	¦  «        }	|                      |	¦  «        }	|�ž|                     ¦   «         |	                     ¦   «         k    rU|                     ¦   «         dk    r(|                     d¦  «                             d¦  «        }|                     d¦  «        }|                     |	j        ¦  «        }|	|z  }	|                      |	¦  «        }	|	S )Nr*   r   rT   rÌ   r,   )r$   rß   r   r    rW   rU   rä   rå   Ú
zeros_likerÞ   rç   rè   rF   r~   ÚsqueezerZ   r2   r-   rI   )r#   Ú	input_idsÚtoken_type_idsrß   ÚmaskÚinputs_embedsÚinput_shapeÚ
seq_lengthrå   Ú
embeddingsrç   s              r'   r7   zDebertaEmbeddings.forward}  sÙ  € ØÐ Ø#Ÿ.š.Ñ*Ô*ˆKˆKà'×,Ò,Ñ.Ô.¨s°¨sÔ3ˆKà  ”^ˆ
àÐØÔ,¨Q¨Q¨Q°°°¨^Ô<ˆLàÐ!Ý"œ[¨½E¼JÈtÔO`ÔOgÐhÑhÔhˆNàÐ Ø ×0Ò0°Ñ;Ô;ˆMàÔ#Ð/Ø"&×":Ò":¸<×;LÒ;LÑ;NÔ;NÑ"OÔ"OÐÐå"'Ô"2°=Ñ"AÔ"AÐà"ˆ
ØÔ%ð 	:Ø#Ð&9Ñ9ˆJØÔ%Ð1Ø$(×$>Ò$>¸~Ñ$NÔ$NÐ!Ø#Ð&;Ñ;ˆJàŒ?Ð&ØŸš¨Ñ4Ô4ˆJà—^’^ JÑ/Ô/ˆ
àÐØ�xŠx‰zŒz˜ZŸ^š^Ñ-Ô-Ò-Ð-Ø—8’8‘:”: ’?�?ØŸ<š<¨™?œ?×2Ò2°1Ñ5Ô5�DØ—~’~ aÑ(Ô(�Ø—7’7˜:Ô+Ñ,Ô,ˆDà# dÑ*ˆJà—\’\ *Ñ-Ô-ˆ
ØÐr(   )NNNNNr8   r>   s   @r'   rÙ   rÙ   [  sR   ø€ € € € € ØQÐQð
ð 
ð 
ð 
ð 
ð>,ð ,ð ,ð ,ð ,ð ,ð ,ð ,r(   rÙ   c                   ób   ‡ — 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                 ó¦   •— t          ¦   «                              ¦   «          t          |¦  «        | _        t	          |¦  «        | _        || _        d S r   )r   r   rƒ   r#   r@   ÚoutputrK   rJ   s     €r'   r   zDebertaAttention.__init__­  sB   ø€ Ý‰Œ×ÒÑÔÐÝ-¨fÑ5Ô5ˆŒ	Ý'¨Ñ/Ô/ˆŒØˆŒˆˆr(   FNr¢   r¥   c                 ó†   — |                       ||||||¬¦  «        \  }}|€|}|                      ||¦  «        }	|r|	|fS |	d fS )N)r£   rg   r¤   )r#   r÷   )
r#   r3   r¡   r¢   r£   rg   r¤   Úself_outputÚ
att_matrixÚattention_outputs
             r'   r7   zDebertaAttention.forward³  sr   € ð #'§)¢)ØØØØ%Ø%Ø)ð #,ñ #
ô #
Ñˆ�Zð ÐØ(ˆLØŸ;š; {°LÑAÔAÐàð 	,Ø$ jÐ1Ð1à$ dÐ+Ð+r(   rÕ   ©
r9   r:   r;   r   rº   r×   r   rÖ   r7   r=   r>   s   @r'   rõ   rõ   ¬  s†   ø€ € € € € ðð ð ð ð ð #(ØØØð,ð ,ð  ð	,ð 
ˆuŒ|˜Uœ\¨DÑ0Ð0Ô	1ð,ð ,ð ,ð ,ð ,ð ,ð ,ð ,r(   rõ   c                   óB   ‡ — 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                 | _        d S |j        | _        d S r   )r   r   r   rB   rC   Úintermediate_sizerD   Ú
isinstanceÚ
hidden_actÚstrr	   Úintermediate_act_fnrJ   s     €r'   r   zDebertaIntermediate.__init__Ð  sn   ø€ Ý‰Œ×ÒÑÔÐÝ”Y˜vÔ1°6Ô3KÑLÔLˆŒ
Ý�fÔ'­Ñ-Ô-ð 	9Ý'-¨fÔ.?Ô'@ˆDÔ$Ð$Ð$à'-Ô'8ˆDÔ$Ð$Ð$r(   r3   r¥   c                 óZ   — |                       |¦  «        }|                      |¦  «        }|S r   )rD   r  ©r#   r3   s     r'   r7   zDebertaIntermediate.forwardØ  s,   € ØŸ
š
 =Ñ1Ô1ˆØ×0Ò0°Ñ?Ô?ˆØÐr(   ©r9   r:   r;   r   r   rÖ   r7   r=   r>   s   @r'   rþ   rþ   Ï  s^   ø€ € € € € ð9ð 9ð 9ð 9ð 9ð U¤\ð °e´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        ¦  «        | _        || _        d S r   )r   r   r   rB   r   rC   rD   r   rE   rF   rG   rH   rI   rK   rJ   s     €r'   r   zDebertaOutput.__init__ß  sh   ø€ Ý‰Œ×ÒÑÔÐÝ”Y˜vÔ7¸Ô9KÑLÔLˆŒ
Ý)¨&Ô*<¸fÔ>SÑTÔTˆŒÝ”z &Ô"<Ñ=Ô=ˆŒØˆŒˆˆr(   c                 óŠ   — |                       |¦  «        }|                      |¦  «        }|                      ||z   ¦  «        }|S r   rM   rN   s      r'   r7   zDebertaOutput.forwardæ  rP   r(   rQ   r>   s   @r'   r	  r	  Þ  sG   ø€ € € € € ðð ð ð ð ðð ð ð ð ð ð r(   r	  c                   ób   ‡ — 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          |¦  «        | _        d S r   )r   r   rõ   Ú	attentionrþ   Úintermediater	  r÷   rJ   s     €r'   r   zDebertaLayer.__init__î  sK   ø€ Ý‰Œ×ÒÑÔÐÝ)¨&Ñ1Ô1ˆŒÝ/°Ñ7Ô7ˆÔÝ# FÑ+Ô+ˆŒˆˆr(   NFr¢   r¥   c                 ó¨   — |                       ||||||¬¦  «        \  }}|                      |¦  «        }	|                      |	|¦  «        }
|r|
|fS |
d fS )N©r¢   r£   rg   r¤   )r  r  r÷   )r#   r3   r¡   r£   rg   r¤   r¢   rû   rú   Úintermediate_outputÚlayer_outputs              r'   r7   zDebertaLayer.forwardô  s~   € ð (,§~¢~ØØØ/Ø%Ø%Ø)ð (6ñ (
ô (
Ñ$Ð˜*ð #×/Ò/Ð0@ÑAÔAÐØ—{’{Ð#6Ð8HÑIÔIˆàð 	(Ø  *Ð-Ð-à  $Ð'Ð'r(   )NNNFrü   r>   s   @r'   r  r  í  s†   ø€ € € € € ð,ð ,ð ,ð ,ð ,ð ØØØ"'ð(ð (ð  ð(ð 
ˆuŒ|˜Uœ\¨DÑ0Ð0Ô	1ð(ð (ð (ð (ð (ð (ð (ð (r(   r  c                   ór   ‡ — 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        ˆfd„t	          ‰j        ¦  «        D ¦   «         ¦  «        | _        t          ‰dd¦  «        | _        | j        rTt          ‰dd¦  «        | _	        | j	        dk     r‰j
        | _	        t          j        | j	        dz  ‰j        ¦  «        | _        d| _        d S )Nc                 ó.   •— g | ]}t          ‰¦  «        ‘ŒS rª   )r  )r«   Ú_rK   s     €r'   r¯   z+DebertaEncoder.__init__.<locals>.<listcomp>  s!   ø€ Ð#bÐ#bÐ#b¸Q¥L°Ñ$8Ô$8Ð#bÐ#bÐ#br(   r‡   Frw   r*   r   r,   )r   r   r   Ú
ModuleListr±   Únum_hidden_layersÚlayerr”   r‡   rw   r—   râ   rC   r¤   Úgradient_checkpointingrJ   s    `€r'   r   zDebertaEncoder.__init__  sÉ   øø€ Ý‰Œ×ÒÑÔÐÝ”]Ð#bÐ#bÐ#bÐ#bÅ%ÈÔH`ÑBaÔBaÐ#bÑ#bÔ#bÑcÔcˆŒ
Ý")¨&Ð2FÈÑ"NÔ"NˆÔØÔ"ð 	dÝ*1°&Ð:RÐTVÑ*WÔ*WˆDÔ'ØÔ*¨QÒ.Ð.Ø.4Ô.L�Ô+Ý"$¤,¨tÔ/JÈQÑ/NÐPVÔPbÑ"cÔ"cˆDÔØ&+ˆÔ#Ð#Ð#r(   c                 ó0   — | j         r| j        j        nd }|S r   )r‡   r¤   r   )r#   r¤   s     r'   Úget_rel_embeddingz DebertaEncoder.get_rel_embedding  s!   € Ø7;Ô7NÐX˜Ô,Ô3Ð3ÐTXˆØÐr(   c                 ó8  — |                      ¦   «         dk    rT|                     d¦  «                             d¦  «        }||                     d¦  «                             d¦  «        z  }n-|                      ¦   «         dk    r|                     d¦  «        }|S )Nr,   r   rS   r*   r   )r~   rZ   rì   )r#   r¡   Úextended_attention_masks      r'   Úget_attention_maskz!DebertaEncoder.get_attention_mask   s–   € Ø×ÒÑÔ 1Ò$Ð$Ø&4×&>Ò&>¸qÑ&AÔ&A×&KÒ&KÈAÑ&NÔ&NÐ#Ø4Ð7N×7VÒ7VÐWYÑ7ZÔ7Z×7dÒ7dÐegÑ7hÔ7hÑhˆNˆNØ×ÒÑ!Ô! QÒ&Ð&Ø+×5Ò5°aÑ8Ô8ˆNàÐr(   Nc                 ó^   — | j         r%|€#|�t          ||¦  «        }nt          ||¦  «        }|S r   )r‡   rb   )r#   r3   r£   rg   s       r'   Úget_rel_poszDebertaEncoder.get_rel_pos)  s?   € ØÔ"ð 	U |Ð';ØÐ'Ý6°|À]ÑSÔS��å6°}ÀmÑTÔT�ØÐr(   TFr3   r¡   Úoutput_hidden_statesr¢   Úreturn_dictc           	      óŠ  — |                       |¦  «        }|                      |||¦  «        }|r|fnd }|rdnd }	|}
|                      ¦   «         }t          | j        ¦  «        D ]0\  }} ||
|||||¬¦  «        \  }}|r||fz   }|�|}n|}
|r|	|fz   }	Œ1|st          d„ |||	fD ¦   «         ¦  «        S t          |||	¬¦  «        S )Nrª   )r£   rg   r¤   r¢   c              3   ó   K  — | ]}|®|V — Œ	d S r   rª   )r«   rÄ   s     r'   ú	<genexpr>z)DebertaEncoder.forward.<locals>.<genexpr>Z  s(   è è € ÐhÐh˜qÐZ[ÐZg˜ÐZgÐZgÐZgÐZgÐhÐhr(   ©Úlast_hidden_stater3   Ú
attentions)r"  r$  r  Ú	enumerater  r×   r   )r#   r3   r¡   r%  r¢   r£   rg   r&  Úall_hidden_statesÚall_attentionsÚnext_kvr¤   r¬   Úlayer_moduleÚatt_ms                  r'   r7   zDebertaEncoder.forward1  s>  € ð ×0Ò0°Ñ@Ô@ˆØ×'Ò'¨°|À\ÑRÔRˆàL`Ð8j¸Ð8HÐ8HÐfjÐØ0Ð:˜˜°dˆàˆà×/Ò/Ñ1Ô1ˆÝ(¨¬Ñ4Ô4ð 	;ð 	;‰OˆAˆ|Ø#/ <ØØØ)Ø)Ø-Ø"3ð$ñ $ô $Ñ ˆM˜5ð $ð IØ$5¸Ð8HÑ$HÐ!àÐ'Ø,��à'�à ð ;Ø!/°5°(Ñ!:�øàð 	iÝÐhÐh ]Ð4EÀ~Ð$VÐhÑhÔhÑhÔhÐhÝØ+Ð;LÐYgð
ñ 
ô 
ð 	
r(   )NN)TFNNT)r9   r:   r;   r<   r   r  r"  r$  r   rÖ   rº   r7   r=   r>   s   @r'   r  r    sÎ   ø€ € € € € ØBÐBð	,ð 	,ð 	,ð 	,ð 	,ðð ð ðð ð ðð ð ð ð &*Ø"'ØØØ ð,
ð ,
à”|ð,
ð œð,
ð #ð	,
ð
  ð,
ð ð,
ð ,
ð ,
ð ,
ð ,
ð ,
ð ,
ð ,
r(   r  c                   ób   ‡ — e Zd ZU eed<   dZdgZdZ ej	        ¦   «         ˆ fd„¦   «         Z
ˆ xZS )ÚDebertaPreTrainedModelrK   Údebertarå   Tc                 ó  •— t          ¦   «                              |¦  «         t          |t          ¦  «        r4t	          j        |j        ¦  «         t	          j        |j        ¦  «         dS t          |t          t          f¦  «        rt	          j        |j
        ¦  «         dS t          |t          ¦  «        rQt	          j        |j        t          j        |j        j        d         ¦  «                             d¦  «        ¦  «         dS dS )zInitialize the weights.r*   rà   N)r   Ú_init_weightsr  rƒ   ÚinitÚzeros_r‘   r’   ÚLegacyDebertaLMPredictionHeadÚDebertaLMPredictionHeadr!   rÙ   Úcopy_rß   r   rV   Úshapere   )r#   Úmoduler&   s     €r'   r7  z$DebertaPreTrainedModel._init_weightsg  sí   ø€ õ 	‰Œ×Ò˜fÑ%Ô%Ð%Ý�fÕ7Ñ8Ô8ð 	iÝŒK˜œÑ&Ô&Ð&ÝŒK˜œÑ&Ô&Ð&Ð&Ð&Ý˜Õ!>Õ@WÐ XÑYÔYð 	iÝŒK˜œÑ$Ô$Ð$Ð$Ð$Ý˜Õ 1Ñ2Ô2ð 	iÝŒJ�vÔ*­E¬L¸Ô9LÔ9RÐSUÔ9VÑ,WÔ,W×,^Ò,^Ð_fÑ,gÔ,gÑhÔhÐhÐhÐhð	ið 	ir(   )r9   r:   r;   r   Ú__annotations__Úbase_model_prefixÚ"_keys_to_ignore_on_load_unexpectedÚsupports_gradient_checkpointingr   Úno_gradr7  r=   r>   s   @r'   r4  r4  `  sv   ø€ € € € € € àÐÐÑØ!ÐØ*?Ð)@Ð&Ø&*Ð#à€U„]�_„_ð	ið 	ið 	ið 	iñ „_ð	ið 	ið 	ið 	ið 	ir(   r4  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| _        || _        |                      ¦   «          d S ©Nr   )	r   r   rÙ   ró   r  ÚencoderÚz_stepsrK   Ú	post_initrJ   s     €r'   r   zDebertaModel.__init__v  s]   ø€ Ý‰Œ×Ò˜Ñ Ô Ð å+¨FÑ3Ô3ˆŒÝ% fÑ-Ô-ˆŒØˆŒØˆŒà�ŠÑÔÐÐÐr(   c                 ó   — | j         j        S r   ©ró   rä   ©r#   s    r'   Úget_input_embeddingsz!DebertaModel.get_input_embeddings€  s   € ØŒÔ.Ð.r(   c                 ó   — || j         _        d S r   rL  ©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¦  «        ‚|�+‰                      ||¦  «         |                     ¦   «         }
n.|�|                     ¦   «         d d…         }
nt	          d¦  «        ‚|�|j        n|j        }|€t          j	        |
|¬¦  «        }|€!t          j
        |
t          j        |¬¦  «        }‰                      |||||¬¦  «        }‰                      ||d||¬¦  «        }|d	         }‰ j        d	k    r°|d
         }ˆ fd„t          ‰ j        ¦  «        D ¦   «         }|d         }‰ j                             ¦   «         }‰ j                             |¦  «        }‰ j                             |¦  «        }|d	d …         D ](} |||d|||¬¦  «        }|                     |¦  «         Œ)|d         }|s|f||rd	ndd …         z   S t)          ||r|j        nd |j        ¬¦  «        S )NzDYou cannot specify both input_ids and inputs_embeds at the same timer*   z5You have to specify either input_ids or inputs_embeds)rU   rT   )rí   rî   rß   rï   rð   T)r%  r¢   r&  r   rS   c                 ó4   •— g | ]}‰j         j        d          ‘ŒS r³   )rH  r  )r«   r  r#   s     €r'   r¯   z(DebertaModel.forward.<locals>.<listcomp>½  s#   ø€ ÐJÐJÐJ°�d”lÔ(¨Ô,ÐJÐJÐJr(   Fr  r,   r*  )rK   r¢   r%  r&  rŒ   Ú%warn_if_padding_and_no_attention_maskr$   rU   r   r   r    rW   ró   rH  rI  r±   r  r"  r$  Úappendr   r3   r,  )r#   rí   r¡   rî   rß   rð   r¢   r%  r&  Úkwargsrñ   rU   Úembedding_outputÚencoder_outputsÚencoded_layersr3   Úlayersr£   r¤   Úrel_posr  Úsequence_outputs   `                     r'   r7   zDebertaModel.forward†  s¯  ø€ ð 2CÐ1NÐ-Ð-ÐTXÔT_ÔTqÐà$8Ð$DÐ Ð È$Ì+ÔJjð 	ð &1Ð%<�k�kÀ$Ä+ÔBYˆàÐ  ]Ð%>ÝÐcÑdÔdÐdØÐ"Ø×6Ò6°yÀ.ÑQÔQÐQØ#Ÿ.š.Ñ*Ô*ˆKˆKØÐ&Ø'×,Ò,Ñ.Ô.¨s°¨sÔ3ˆKˆKåÐTÑUÔUÐUà%.Ð%:�Ô!Ð!ÀÔ@TˆàÐ!Ý"œZ¨¸FÐCÑCÔCˆNØÐ!Ý"œ[¨½E¼JÈvÐVÑVÔVˆNàŸ?š?ØØ)Ø%ØØ'ð +ñ 
ô 
Ðð Ÿ,š,ØØØ!%Ø/Ø#ð 'ñ 
ô 
ˆð )¨Ô+ˆàŒ<˜!ÒÐØ*¨2Ô.ˆMØJÐJÐJÐJµe¸D¼LÑ6IÔ6IÐJÑJÔJˆFØ)¨"Ô-ˆLØ!œ\×;Ò;Ñ=Ô=ˆNØ!œ\×<Ò<¸^ÑLÔLˆNØ”l×.Ò.Ð/?Ñ@Ô@ˆGØ   œð 	4ð 	4�Ø$˜uØ!Ø"Ø&+Ø!-Ø!(Ø#1ð ñ  ô  �ð ×%Ò% lÑ3Ô3Ð3Ð3à(¨Ô,ˆàð 	^Ø#Ð%¨Ð>RÐ9Y¸¸ÐXYÐ8\Ð8\Ô(]Ñ]Ð]åØ-Ø;OÐY˜/Ô7Ð7ÐUYØ&Ô1ð
ñ 
ô 
ð 	
r(   )NNNNNNNN)r9   r:   r;   r   rN  rR  r   r   rÖ   rº   r×   r   r7   r=   r>   s   @r'   rE  rE  t  s3  ø€ € € € € ðð ð ð ð ð/ð /ð /ð9ð 9ð 9ð ð *.Ø.2Ø.2Ø,0Ø-1Ø)-Ø,0Ø#'ðO
ð O
à”< $Ñ&ðO
ð œ tÑ+ðO
ð œ tÑ+ð	O
ð
 ”l TÑ)ðO
ð ”| dÑ*ðO
ð   $™;ðO
ð # T™kðO
ð ˜D‘[ðO
ð 
�Ñ	 ðO
ð O
ð O
ñ „^ðO
ð O
ð O
ð O
ð O
r(   rE  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        ¬¦  «        | _        d S )NrÜ   )r%   )r   r   r”   rC   rÜ   r   rB   rD   r  r  r  r	   Útransform_act_fnrF   rE   rJ   s     €r'   r   z-LegacyDebertaPredictionHeadTransform.__init__Ú  s�   ø€ Ý‰Œ×ÒÑÔÐÝ% fÐ.>ÀÔ@RÑSÔSˆÔå”Y˜vÔ1°4Ô3FÑGÔGˆŒ
Ý�fÔ'­Ñ-Ô-ð 	6Ý$*¨6Ô+<Ô$=ˆDÔ!Ð!à$*Ô$5ˆDÔ!Ýœ dÔ&9¸vÔ?TÐUÑUÔUˆŒˆˆr(   c                 ó„   — |                       |¦  «        }|                      |¦  «        }|                      |¦  «        }|S r   )rD   ra  rF   r  s     r'   r7   z,LegacyDebertaPredictionHeadTransform.forwardå  s=   € ØŸ
š
 =Ñ1Ô1ˆØ×-Ò-¨mÑ<Ô<ˆØŸš }Ñ5Ô5ˆØÐr(   rQ   r>   s   @r'   r_  r_  Ù  sL   ø€ € € € € ð	Vð 	Vð 	Vð 	Vð 	Vðð ð ð ð ð ð r(   r_  c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )r:  c                 óR  •— t          ¦   «                              ¦   «          t          |¦  «        | _        t	          |d|j        ¦  «        | _        t          j        | j        |j	        d¬¦  «        | _
        t          j        t          j        |j	        ¦  «        ¦  «        | _        d S )NrÜ   Tr†   )r   r   r_  Ú	transformr”   rC   rÜ   r   rB   rã   Údecoderr   r   r    r!   rJ   s     €r'   r   z&LegacyDebertaLMPredictionHead.__init__í  s‚   ø€ Ý‰Œ×ÒÑÔÐÝ=¸fÑEÔEˆŒå% fÐ.>ÀÔ@RÑSÔSˆÔõ ”y Ô!4°fÔ6GÈdÐSÑSÔSˆŒå”L¥¤¨VÔ->Ñ!?Ô!?Ñ@Ô@ˆŒ	ˆ	ˆ	r(   c                 óZ   — |                       |¦  «        }|                      |¦  «        }|S r   )re  rf  r  s     r'   r7   z%LegacyDebertaLMPredictionHead.forwardø  s*   € ØŸš }Ñ5Ô5ˆØŸš ]Ñ3Ô3ˆØÐr(   rQ   r>   s   @r'   r:  r:  ì  sL   ø€ € € € € ð	Að 	Að 	Að 	Að 	Aðð ð ð ð ð ð r(   r:  c                   óB   ‡ — e Zd Zˆ fd„Zdej        dej        fd„Zˆ xZS )ÚLegacyDebertaOnlyMLMHeadc                 óp   •— t          ¦   «                              ¦   «          t          |¦  «        | _        d S r   )r   r   r:  ÚpredictionsrJ   s     €r'   r   z!LegacyDebertaOnlyMLMHead.__init__   s/   ø€ Ý‰Œ×ÒÑÔÐÝ8¸Ñ@Ô@ˆÔÐÐr(   r]  r¥   c                 ó0   — |                       |¦  «        }|S r   )rk  )r#   r]  Úprediction_scoress      r'   r7   z LegacyDebertaOnlyMLMHead.forward  s   € Ø ×,Ò,¨_Ñ=Ô=ÐØ Ð r(   r  r>   s   @r'   ri  ri  ÿ  sc   ø€ € € € € ðAð Að Að Að Að! u¤|ð !¸¼ð !ð !ð !ð !ð !ð !ð !ð !r(   ri  c                   ó(   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ xZS )r;  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        ¦  «        ¦  «        | _        d S )NT)r%   Úelementwise_affine)r   r   r   rB   rC   rD   r  r  r  r	   ra  rF   rE   r   r   r    rã   r!   rJ   s     €r'   r   z DebertaLMPredictionHead.__init__  s¦   ø€ Ý‰Œ×ÒÑÔÐÝ”Y˜vÔ1°6Ô3EÑFÔFˆŒ
å�fÔ'­Ñ-Ô-ð 	6Ý$*¨6Ô+<Ô$=ˆDÔ!Ð!à$*Ô$5ˆDÔ!åœ fÔ&8¸fÔ>SÐhlÐmÑmÔmˆŒå”L¥¤¨VÔ->Ñ!?Ô!?Ñ@Ô@ˆŒ	ˆ	ˆ	r(   c                 óì   — |                       |¦  «        }|                      |¦  «        }|                      |¦  «        }t          j        ||j                             ¦   «         ¦  «        | j        z   }|S r   )rD   ra  rF   r   rµ   r   r¶   r!   )r#   r3   rä   s      r'   r7   zDebertaLMPredictionHead.forward  sm   € ØŸ
š
 =Ñ1Ô1ˆØ×-Ò-¨mÑ<Ô<ˆØŸšØñ
ô 
ˆõ œ ]°OÔ4J×4LÒ4LÑ4NÔ4NÑOÔOÐRVÔR[Ñ[ˆØÐr(   r8   r>   s   @r'   r;  r;  	  sR   ø€ € € € € ØWÐWðAð Að Að Að Aðð ð ð ð ð ð r(   r;  c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ÚDebertaOnlyMLMHeadc                 óp   •— t          ¦   «                              ¦   «          t          |¦  «        | _        d S r   )r   r   r;  Úlm_headrJ   s     €r'   r   zDebertaOnlyMLMHead.__init__%  s,   ø€ Ý‰Œ×ÒÑÔÐÝ.¨vÑ6Ô6ˆŒˆˆr(   c                 ó2   — |                       ||¦  «        }|S r   )ru  )r#   r]  rä   rm  s       r'   r7   zDebertaOnlyMLMHead.forward*  s   € Ø ŸLšL¨¸/ÑJÔJÐØ Ð r(   rQ   r>   s   @r'   rs  rs  $  sG   ø€ € € € € ð7ð 7ð 7ð 7ð 7ð
!ð !ð !ð !ð !ð !ð !r(   rs  c                   ó   ‡ — 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          |¦  «        | _	        |  
                    ¦   «          d S )Nzlm_predictions.lm_head.weightry  )r   r   ÚlegacyrE  r5  ri  ÚclsÚ_tied_weights_keysrs  Úlm_predictionsrJ  rJ   s     €r'   r   zDebertaForMaskedLM.__init__6  sŠ   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ø”mˆŒÝ# FÑ+Ô+ˆŒØŒ;ð 	=Ý/°Ñ7Ô7ˆDŒHˆHð 0Ð1\ð'ˆDÔ#õ #5°VÑ"<Ô"<ˆDÔð 	�ŠÑÔÐÐÐr(   c                 óT   — | j         r| j        j        j        S | j        j        j        S r   )r{  r|  rk  rf  r~  ru  rD   rM  s    r'   Úget_output_embeddingsz(DebertaForMaskedLM.get_output_embeddingsE  s)   € ØŒ;ð 	5Ø”8Ô'Ô/Ð/àÔ&Ô.Ô4Ð4r(   c                 ó´   — | j         r)|| j        j        _        |j        | j        j        _        d S || j        j        _        |j        | j        j        _        d S r   )r{  r|  rk  rf  r!   r~  ru  rD   rP  s     r'   Úset_output_embeddingsz(DebertaForMaskedLM.set_output_embeddingsK  sU   € ØŒ;ð 	CØ+9ˆDŒHÔ Ô(Ø(6Ô(;ˆDŒHÔ Ô%Ð%Ð%à0>ˆDÔÔ'Ô-Ø/=Ô/BˆDÔÔ'Ô,Ð,Ð,r(   Nrí   r¡   rî   rß   rð   Úlabelsr¢   r%  r&  r¥   c
           
      óü  — |	�|	n| j         j        }	|                      ||||||||	¬¦  «        }|d         }| j        r|                      |¦  «        }n%|                      || j        j        j        ¦  «        }d}|�Kt          ¦   «         } || 	                    d| j         j
        ¦  «        | 	                    d¦  «        ¦  «        }|	s|f|dd…         z   }|�|f|z   n|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Úlogitsr3   r,  )rK   r&  r5  r{  r|  r~  ró   rä   r   rX   rã   r   r3   r,  )r#   rí   r¡   rî   rß   rð   rƒ  r¢   r%  r&  rW  Úoutputsr]  rm  Úmasked_lm_lossÚloss_fctr÷   s                    r'   r7   zDebertaForMaskedLM.forwardS  s=  € ð* &1Ð%<�k�kÀ$Ä+ÔBYˆà—,’,ØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ñ 	
ô 	
ˆð " !œ*ˆØŒ;ð 	nØ $§¢¨Ñ 9Ô 9ÐÐà $× 3Ò 3°OÀTÄ\ÔE\ÔElÑ mÔ mÐàˆØÐÝ'Ñ)Ô)ˆHØ%˜XÐ&7×&<Ò&<¸RÀÄÔAWÑ&XÔ&XÐZ`×ZeÒZeÐfhÑZiÔZiÑjÔjˆNàð 	ZØ'Ð)¨G°A°B°B¬KÑ7ˆFØ3AÐ3M�^Ð%¨Ñ.Ð.ÐSYÐYåØØ$Ø!Ô/ØÔ)ð	
ñ 
ô 
ð 	
r(   ©	NNNNNNNNN)r9   r:   r;   r}  r   r€  r‚  r   r   rÖ   rº   r×   r   r7   r=   r>   s   @r'   rx  rx  /  sM  ø€ € € € € ð )?Ø*Uðð Ðð
ð ð ð ð ð5ð 5ð 5ðCð Cð Cð ð *.Ø.2Ø.2Ø,0Ø-1Ø&*Ø)-Ø,0Ø#'ð5
ð 5
à”< $Ñ&ð5
ð œ tÑ+ð5
ð œ tÑ+ð	5
ð
 ”l TÑ)ð5
ð ”| dÑ*ð5
ð ”˜tÑ#ð5
ð   $™;ð5
ð # T™kð5
ð ˜D‘[ð5
ð 
�Ñ	ð5
ð 5
ð 5
ñ „^ð5
ð 5
ð 5
ð 5
ð 5
r(   rx  c                   ó:   ‡ — e Zd Zˆ fd„Zd„ Zed„ ¦   «         Zˆ xZS )ÚContextPoolerc                 óÚ   •— t          ¦   «                              ¦   «          t          j        |j        |j        ¦  «        | _        t          j        |j        ¦  «        | _        || _	        d S r   )
r   r   r   rB   Úpooler_hidden_sizerD   rG   Úpooler_dropoutrI   rK   rJ   s     €r'   r   zContextPooler.__init__�  sQ   ø€ Ý‰Œ×ÒÑÔÐÝ”Y˜vÔ8¸&Ô:SÑTÔTˆŒ
Ý”z &Ô"7Ñ8Ô8ˆŒØˆŒˆˆr(   c                 ó°   — |d d …df         }|                       |¦  «        }|                      |¦  «        }t          | j        j                 |¦  «        }|S rG  )rI   rD   r	   rK   Úpooler_hidden_act)r#   r3   Úcontext_tokenÚpooled_outputs       r'   r7   zContextPooler.forward“  sU   € ð & a a a¨ dÔ+ˆØŸš ]Ñ3Ô3ˆØŸ
š
 =Ñ1Ô1ˆÝ˜tœ{Ô<Ô=¸mÑLÔLˆØÐr(   c                 ó   — | j         j        S r   )rK   rC   rM  s    r'   Ú
output_dimzContextPooler.output_dim�  s   € àŒ{Ô&Ð&r(   )r9   r:   r;   r   r7   Úpropertyr—  r=   r>   s   @r'   rŽ  rŽ  Œ  sb   ø€ € € € € ðð ð ð ð ðð ð ð ð'ð 'ñ „Xð'ð 'ð 'ð 'ð '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        |¦  «        | _        |                      ¦   «          d S )NÚ
num_labelsr,   Úcls_dropout)r   r   r”   r�  rE  r5  rŽ  Úpoolerr—  r   rB   Ú
classifierrK   rH   rG   rI   rJ  )r#   rK   r�  r—  Údrop_outr&   s        €r'   r   z)DebertaForSequenceClassification.__init__©  s¼   ø€ Ý‰Œ×Ò˜Ñ Ô Ð å˜V \°1Ñ5Ô5ˆ
Ø$ˆŒå# FÑ+Ô+ˆŒÝ# FÑ+Ô+ˆŒØ”[Ô+ˆ
åœ) J°
Ñ;Ô;ˆŒÝ˜6 =°$Ñ7Ô7ˆØ6>Ð6F�4”;Ô2Ð2ÈHˆÝ”z (Ñ+Ô+ˆŒð 	�ŠÑÔÐÐÐr(   c                 ó4   — | j                              ¦   «         S r   )r5  rN  rM  s    r'   rN  z5DebertaForSequenceClassification.get_input_embeddings»  s   € ØŒ|×0Ò0Ñ2Ô2Ð2r(   c                 ó:   — | j                              |¦  «         d S r   )r5  rR  rP  s     r'   rR  z5DebertaForSequenceClassification.set_input_embeddings¾  s   € ØŒ×)Ò)¨.Ñ9Ô9Ð9Ð9Ð9r(   Nrí   r¡   rî   rß   rð   rƒ  r¢   r%  r&  r¥   c
           
      óœ  — |	�|	n| j         j        }	|                      ||||||||	¬¦  «        }|d         }|                      |¦  «        }|                      |¦  «        }|                      |¦  «        }d}|��| j         j        �€(| j        dk    rat          j	        ¦   «         }| 
                    d¦  «                             |j        ¦  «        } ||| 
                    d¦  «        ¦  «        }�n¤|                     ¦   «         dk    s|                     d¦  «        dk    �rA|dk                         ¦   «         }|                     ¦   «         }|                     d¦  «        dk    rÓt#          j        |d|                     |                     d¦  «        |                     d¦  «        ¦  «        ¦  «        }t#          j        |d| 
                    d¦  «        ¦  «        }t)          ¦   «         } || 
                    d| j        ¦  «                             ¦   «         | 
                    d¦  «        ¦  «        }�nZt#          j        d¦  «                             |¦  «        }�n1t          j        d¦  «        } ||¦  «        |z                       d¦  «                             ¦   «          }nè| j         j        dk    rWt          ¦   «         }| j        dk    r1 ||                     ¦   «         |                     ¦   «         ¦  «        }nŽ |||¦  «        }n�| j         j        dk    rGt)          ¦   «         } || 
                    d| j        ¦  «        | 
                    d¦  «        ¦  «        }n*| j         j        dk    rt7          ¦   «         } |||¦  «        }|	s|f|dd…         z   }|�|f|z   n|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†  )rK   r&  r5  rŸ  rI   r   Úproblem_typer�  r   r   rX   r2   r-   r~   r$   ÚnonzerorW   r   r€   re   r   r.   rr   Ú
LogSoftmaxÚsumr/   rì   r   r   r3   r,  )r#   rí   r¡   rî   rß   rð   rƒ  r¢   r%  r&  rW  r‰  Úencoder_layerr•  rˆ  r‡  Úloss_fnÚlabel_indexÚlabeled_logitsr‹  Úlog_softmaxr÷   s                         r'   r7   z(DebertaForSequenceClassification.forwardÁ  s‘  € ð( &1Ð%<�k�kÀ$Ä+ÔBYˆà—,’,ØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ñ 	
ô 	
ˆð   œ
ˆØŸš MÑ2Ô2ˆØŸš ]Ñ3Ô3ˆØ—’ Ñ/Ô/ˆàˆØÑØŒ{Ô'Ñ/Ø”? aÒ'Ð'å œj™lœl�GØ#Ÿ[š[¨™_œ_×/Ò/°´Ñ=Ô=�FØ"˜7 6¨6¯;ª;°r©?¬?Ñ;Ô;�D‘DØ—Z’Z‘\”\ QÒ&Ð&¨&¯+ª+°b©/¬/¸QÒ*>Ñ*>Ø#)¨Q¢;×"7Ò"7Ñ"9Ô"9�KØ#Ÿ[š[™]œ]�FØ"×'Ò'¨Ñ*Ô*¨QÒ.Ð.Ý).¬Ø" A {×'9Ò'9¸+×:JÒ:JÈ1Ñ:MÔ:MÈvÏ{Ê{Ð[\É~Ì~Ñ'^Ô'^ñ*ô *˜õ "'¤¨f°a¸×9IÒ9IÈ"Ñ9MÔ9MÑ!NÔ!N˜Ý#3Ñ#5Ô#5˜Ø'˜x¨×(;Ò(;¸BÀÄÑ(PÔ(P×(VÒ(VÑ(XÔ(XÐZ`×ZeÒZeÐfhÑZiÔZiÑjÔj˜™å$œ|¨A™œ×1Ò1°&Ñ9Ô9˜™å"$¤-°Ñ"3Ô"3�KØ)˜k¨&Ñ1Ô1°FÑ:×?Ò?ÀÑCÔC×IÒIÑKÔKÐK�D�DØ”Ô)¨\Ò9Ð9Ý"™9œ9�Ø”? aÒ'Ð'Ø#˜8 F§N¢NÑ$4Ô$4°f·n²nÑ6FÔ6FÑGÔG�D�Dà#˜8 F¨FÑ3Ô3�D�DØ”Ô)Ð-JÒJÐJÝ+Ñ-Ô-�Ø�x §¢¨B°´Ñ @Ô @À&Ç+Â+ÈbÁ/Ä/ÑRÔR��Ø”Ô)Ð-IÒIÐIÝ,Ñ.Ô.�Ø�x ¨Ñ/Ô/�Øð 	FØ�Y ¨¨¨¤Ñ,ˆFØ)-Ð)9�T�G˜fÑ$Ð$¸vÐEå'Ø˜f°GÔ4IÐV]ÔVhð
ñ 
ô 
ð 	
r(   rŒ  )r9   r:   r;   r   rN  rR  r   r   rÖ   rº   r×   r   r7   r=   r>   s   @r'   r›  r›  ¢  sI  ø€ € € € € ðð ð ð ð ð$3ð 3ð 3ð:ð :ð :ð ð *.Ø.2Ø.2Ø,0Ø-1Ø&*Ø)-Ø,0Ø#'ðN
ð N
à”< $Ñ&ðN
ð œ tÑ+ðN
ð œ tÑ+ð	N
ð
 ”l TÑ)ðN
ð ”| dÑ*ðN
ð ”˜tÑ#ðN
ð   $™;ðN
ð # T™kðN
ð ˜D‘[ðN
ð 
Ð)Ñ	)ðN
ð N
ð N
ñ „^ðN
ð N
ð 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                 ó6  •— t          ¦   «                              |¦  «         |j        | _        t          |¦  «        | _        t          j        |j        ¦  «        | _        t          j	        |j
        |j        ¦  «        | _        |                      ¦   «          d S r   )r   r   r�  rE  r5  r   rG   rH   rI   rB   rC   r   rJ  rJ   s     €r'   r   z&DebertaForTokenClassification.__init__  sy   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ø Ô+ˆŒå# FÑ+Ô+ˆŒÝ”z &Ô"<Ñ=Ô=ˆŒÝœ) FÔ$6¸Ô8IÑJÔJˆŒð 	�ŠÑÔÐÐÐr(   Nrí   r¡   rî   rß   rð   rƒ  r¢   r%  r&  r¥   c
           
      óÂ  — |	�|	n| j         j        }	|                      ||||||||	¬¦  «        }|d         }|                      |¦  «        }|                      |¦  «        }d}|�Ft          ¦   «         } ||                     d| j        ¦  «        |                     d¦  «        ¦  «        }|	s|f|dd…         z   }|�|f|z   n|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†  )rK   r&  r5  rI   r   r   rX   r�  r   r3   r,  )r#   rí   r¡   rî   rß   rð   rƒ  r¢   r%  r&  rW  r‰  r]  rˆ  r‡  r‹  r÷   s                    r'   r7   z%DebertaForTokenClassification.forward   s  € ð$ &1Ð%<�k�kÀ$Ä+ÔBYˆà—,’,ØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ñ 	
ô 	
ˆð " !œ*ˆàŸ,š, Ñ7Ô7ˆØ—’ Ñ1Ô1ˆàˆØÐÝ'Ñ)Ô)ˆHØ�8˜FŸKšK¨¨D¬OÑ<Ô<¸f¿kºkÈ"¹o¼oÑNÔNˆDàð 	FØ�Y ¨¨¨¤Ñ,ˆFØ)-Ð)9�T�G˜fÑ$Ð$¸vÐEå$Ø˜f°GÔ4IÐV]ÔVhð
ñ 
ô 
ð 	
r(   rŒ  )r9   r:   r;   r   r   r   rÖ   rº   r×   r   r7   r=   r>   s   @r'   r²  r²    s  ø€ € € € € ð	ð 	ð 	ð 	ð 	ð ð *.Ø.2Ø.2Ø,0Ø-1Ø&*Ø)-Ø,0Ø#'ð.
ð .
à”< $Ñ&ð.
ð œ tÑ+ð.
ð œ tÑ+ð	.
ð
 ”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        ¦  «        | _        |  	                    ¦   «          d S r   )
r   r   r�  rE  r5  r   rB   rC   Ú
qa_outputsrJ  rJ   s     €r'   r   z$DebertaForQuestionAnswering.__init__T  se   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ø Ô+ˆŒå# FÑ+Ô+ˆŒÝœ) FÔ$6¸Ô8IÑJÔJˆŒð 	�ŠÑÔÐÐÐr(   Nrí   r¡   rî   rß   rð   Ústart_positionsÚend_positionsr¢   r%  r&  r¥   c           
      ó®  — |
�|
n| j         j        }
|                      |||||||	|
¬¦  «        }|d         }|                      |¦  «        }|                     dd¬¦  «        \  }}|                     d¦  «                             ¦   «         }|                     d¦  «                             ¦   «         }d }|�ç|�åt          |                     ¦   «         ¦  «        dk    r|                     d¦  «        }t          |                     ¦   «         ¦  «        dk    r|                     d¦  «        }|                     d¦  «        }| 	                    d|¦  «        }| 	                    d|¦  «        }t          |¬¦  «        } |||¦  «        } |||¦  «        }||z   dz  }|
s||f|dd …         z   }|�|f|z   n|S t          ||||j        |j        ¬¦  «        S )	Nr…  r   r   r*   r§   )Úignore_indexr,   )r‡  Ústart_logitsÚ
end_logitsr3   r,  )rK   r&  r5  r¸  Úsplitrì   r¿   r·   r$   rÍ   r   r   r3   r,  )r#   rí   r¡   rî   rß   rð   r¹  rº  r¢   r%  r&  rW  r‰  r]  rˆ  r½  r¾  Ú
total_lossÚignored_indexr‹  Ú
start_lossÚend_lossr÷   s                          r'   r7   z#DebertaForQuestionAnswering.forward^  s  € ð &1Ð%<�k�kÀ$Ä+ÔBYˆà—,’,ØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ñ 	
ô 	
ˆð " !œ*ˆà—’ Ñ1Ô1ˆØ#)§<¢<°°r <Ñ#:Ô#:Ñ ˆ�jØ#×+Ò+¨BÑ/Ô/×:Ò:Ñ<Ô<ˆØ×'Ò'¨Ñ+Ô+×6Ò6Ñ8Ô8ˆ
àˆ
ØÐ&¨=Ð+Då�?×'Ò'Ñ)Ô)Ñ*Ô*¨QÒ.Ð.Ø"1×"9Ò"9¸"Ñ"=Ô"=�Ý�=×%Ò%Ñ'Ô'Ñ(Ô(¨1Ò,Ð,Ø -× 5Ò 5°bÑ 9Ô 9�à(×-Ò-¨aÑ0Ô0ˆMØ-×3Ò3°A°}ÑEÔEˆOØ)×/Ò/°°=ÑAÔAˆMå'°]ÐCÑCÔCˆHØ!˜ ,°Ñ@Ô@ˆJØ�x 
¨MÑ:Ô:ˆHØ$ xÑ/°1Ñ4ˆJàð 	RØ" JÐ/°'¸!¸"¸"´+Ñ=ˆFØ/9Ð/E�Z�M FÑ*Ð*È6ÐQå+ØØ%Ø!Ø!Ô/ØÔ)ð
ñ 
ô 
ð 	
r(   )
NNNNNNNNNN)r9   r:   r;   r   r   r   rÖ   rº   r×   r   r7   r=   r>   s   @r'   r¶  r¶  R  s,  ø€ € € € € ðð ð ð ð ð ð *.Ø.2Ø.2Ø,0Ø-1Ø/3Ø-1Ø)-Ø,0Ø#'ð=
ð =
à”< $Ñ&ð=
ð œ tÑ+ð=
ð œ tÑ+ð	=
ð
 ”l TÑ)ð=
ð ”| dÑ*ð=
ð œ¨Ñ,ð=
ð ”| dÑ*ð=
ð   $™;ð=
ð # T™kð=
ð ˜D‘[ð=
ð 
Ð-Ñ	-ð=
ð =
ð =
ñ „^ð=
ð =
ð =
ð =
ð =
r(   r¶  )rx  r¶  r›  r²  rE  r4  )Ar<   r   r   Útorch.nnr   r   r   Ú r   r8  Úactivationsr	   Úmodeling_layersr
   Úmodeling_outputsr   r   r   r   r   Úmodeling_utilsr   Úutilsr   r   Úconfiguration_debertar   Ú
get_loggerr9   ÚloggerÚModuler   r@   ÚjitÚscriptrb   rh   rj   rn   rÖ   r�   rs   rv   r{   r�   rƒ   rÙ   rõ   rþ   r	  r  r  r4  rE  r_  r:  ri  r;  rs  rx  rŽ  r›  r²  r¶  Ú__all__rª   r(   r'   ú<module>rÒ     sè  ðð Ð à €€€Ø Ð Ð Ð Ð Ð Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ Aà &Ð &Ð &Ð &Ð &Ð &Ø !Ð !Ð !Ð !Ð !Ð !Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð ð ð ð ð ð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ð 
ˆÔ	˜HÑ	%Ô	%€ðð ð ð ð �r”yñ ô ð ð(ð ð ð ð ˜œ	ñ ô ð ð „Ôðð ñ Ôðð8 „Ôðrð rñ Ôðrð „Ôðnð nñ Ôðnð „Ôð[ð [ñ Ôð[ð „Ôð\ %¤,ð \¸cð \ð \ð \ñ Ôð\ð „Ôð˜EœLð °U´\ð ð ð ñ Ôðð „Ôðd¨¬ð dÀÄð dÐgjð dð dð dñ Ôðdð „Ôð°´ð ÈÌð ð ð ñ ÔððCð Cð Cð Cð C ¤	ñ Cô Cð CðLNð Nð Nð Nð N˜œ	ñ Nô Nð Nðb,ð ,ð ,ð ,ð ,�r”yñ ,ô ,ð ,ðFð ð ð ð ˜"œ)ñ ô ð ðð ð ð ð �B”Iñ ô ð ð(ð (ð (ð (ð (Ð-ñ (ô (ð (ðBO
ð O
ð O
ð O
ð O
�R”Yñ O
ô O
ð O
ðd ðið ið ið ið i˜_ñ iô iñ „ðið& ða
ð a
ð a
ð a
ð a
Ð)ñ a
ô a
ñ „ða
ðHð ð ð ð ¨2¬9ñ ô ð ð&ð ð ð ð  B¤Iñ ô ð ð&!ð !ð !ð !ð !˜rœyñ !ô !ð !ðð ð ð ð ˜bœiñ ô ð ð6!ð !ð !ð !ð !˜œñ !ô !ð !ð ðY
ð Y
ð Y
ð Y
ð Y
Ð/ñ Y
ô Y
ñ „ðY
ðx'ð 'ð 'ð 'ð '�B”Iñ 'ô 'ð 'ð, €ððñ ô ðh
ð h
ð h
ð h
ð h
Ð'=ñ h
ô h
ñô ðh
ðV ð;
ð ;
ð ;
ð ;
ð ;
Ð$:ñ ;
ô ;
ñ „ð;
ð| ðI
ð I
ð I
ð I
ð I
Ð"8ñ I
ô I
ñ „ðI
ðXð ð €€€r(   