+
    œ°³j?½  ã                   ó¼  € R t ^ RIt^ RIt^ RIHt ^ RIHtHtHt ^RIH	t
 ^RIHt ^RIHt ^RIHtHtHtHtHtHtHt ^RIHt ^R	IHtHt ^R
IHt ^RIHtH t H!t!H"t"H#t#H$t$ ]PJ                  ! ]&4      t' ! R R]PP                  4      t) ! R R]PP                  4      t* ! R R]PP                  4      t+ ! R R]PP                  4      t, ! R R]PP                  4      t- ! R R]PP                  4      t. ! R R]PP                  4      t/ ! R R]PP                  4      t0 ! R R]PP                  4      t1] ! R R]4      4       t2] ! R  R!]24      4       t3] ! R" R#]24      4       t4 ! R$ R%]PP                  4      t5]! R&R'7       ! R( R)]24      4       t6] ! R* R+]24      4       t7] ! R, R-]24      4       t8 ! R. R/]PP                  4      t9] ! R0 R1]24      4       t:R3R2 lt;. R4Ot<R# )5zPyTorch I-BERT model.N)Únn)ÚBCEWithLogitsLossÚCrossEntropyLossÚMSELoss)Úinitialization)Úgelu)Úcreate_bidirectional_mask)Ú)BaseModelOutputWithPastAndCrossAttentionsÚ,BaseModelOutputWithPoolingAndCrossAttentionsÚMaskedLMOutputÚMultipleChoiceModelOutputÚQuestionAnsweringModelOutputÚSequenceClassifierOutputÚTokenClassifierOutput)ÚPreTrainedModel)Úauto_docstringÚlogging©ÚIBertConfig)ÚIntGELUÚIntLayerNormÚ
IntSoftmaxÚQuantActÚQuantEmbeddingÚQuantLinearc                   óF   a a€ ] tR t^.t oRtV 3R ltRR ltR tRtVt	V ;t
# )ÚIBertEmbeddingszN
Same as BertEmbeddings with a tiny tweak for positional embeddings indexing.
c                ó’  <€ \         SV `  4        VP                  V n        ^V n        ^V n        ^V n        ^V n        ^ V n        \        VP                  VP                  VP                  V P                  V P                  R7      V n        \        VP                  VP                  V P                  V P                  R7      V n        \        P                   ! \"        P$                  ! VP&                  4      P)                  R4      RR7      V n        VP                  V n        \        VP&                  VP                  V P,                  V P                  V P                  R7      V n        \1        V P                  V P                  R7      V n        \1        V P                  V P                  R7      V n        \7        VP                  VP8                  V P                  V P                  VP:                  R7      V n        \1        V P
                  V P                  R7      V n        \        P@                  ! VPB                  4      V n"        R# )	é   )Úpadding_idxÚ
weight_bitÚ
quant_mode)r    r!   F)Ú
persistent©r!   ©ÚepsÚ
output_bitr!   Úforce_dequantN©é   éÿÿÿÿ)#ÚsuperÚ__init__r!   Úembedding_bitÚembedding_act_bitÚact_bitÚln_input_bitÚln_output_bitr   Ú
vocab_sizeÚhidden_sizeÚpad_token_idÚword_embeddingsÚtype_vocab_sizeÚtoken_type_embeddingsr   ÚBufferÚtorchÚarangeÚmax_position_embeddingsÚexpandÚposition_idsr   Úposition_embeddingsr   Úembeddings_act1Úembeddings_act2r   Úlayer_norm_epsr'   Ú	LayerNormÚoutput_activationÚDropoutÚhidden_dropout_probÚdropout©ÚselfÚconfigÚ	__class__s   &&€Úi/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/ibert/modeling_ibert.pyr,   ÚIBertEmbeddings.__init__3   s¾  ø€ Ü‰ÑÔØ ×+Ñ+ˆŒØˆÔØ!#ˆÔØˆŒØˆÔØˆÔä-Ø×ÑØ×ÑØ×+Ñ+Ø×)Ñ)Ø—‘ô 
ˆÔô &4Ø×"Ñ" F×$6Ñ$6À4×CUÑCUÐbf×bqÑbqô&
ˆÔ"ô
 ŸIšI¤e§l¢l°6×3QÑ3QÓ&R×&YÑ&YÐZaÓ&bÐotÔuˆÔð "×.Ñ.ˆÔÜ#1Ø×*Ñ*Ø×ÑØ×(Ñ(Ø×)Ñ)Ø—‘ô$
ˆÔ ô  (¨×(>Ñ(>È4Ï?É?Ô[ˆÔÜ'¨×(>Ñ(>È4Ï?É?Ô[ˆÔä%Ø×ÑØ×%Ñ%Ø×)Ñ)Ø—‘Ø ×.Ñ.ô
ˆŒô "*¨$¯,©,À4Ç?Á?Ô!SˆÔÜ—z’z &×"<Ñ"<Ó=ˆŽó    c                ó²  € VfF   Ve1   \        WP                  V4      P                  VP                  4      pMV P	                  V4      pVe   VP                  4       pMVP                  4       R R pVf<   \        P                  ! V\        P                  V P                  P                  R7      pVf   V P                  V4      w  rGMR pV P                  V4      w  r‰V P                  VVVV	R7      w  r«V P                  V4      w  rÍV P                  V
VVVR7      w  r«V P                  W«4      w  r«V P                  V
4      p
V P!                  W«4      w  r«W«3# )N©ÚdtypeÚdevice©ÚidentityÚidentity_scaling_factorr*   )Ú"create_position_ids_from_input_idsr   ÚtorQ   Ú&create_position_ids_from_inputs_embedsÚsizer9   ÚzerosÚlongr=   r5   r7   r?   r>   rB   rF   rC   )rH   Ú	input_idsÚtoken_type_idsr=   Úinputs_embedsÚpast_key_values_lengthÚinput_shapeÚinputs_embeds_scaling_factorr7   Ú$token_type_embeddings_scaling_factorÚ
embeddingsÚembeddings_scaling_factorr>   Ú"position_embeddings_scaling_factors   &&&&&&        rK   ÚforwardÚIBertEmbeddings.forwardb   sq  € ð ÒØÒ$äAØ×/Ñ/Ð1Gó ç‘"�Y×%Ñ%Ó&ñ ð  $×JÑJÈ=ÓY�àÒ Ø#Ÿ.™.Ó*‰Kà'×,Ñ,Ó.¨s°Ð3ˆKàÒ!Ü"Ÿ[š[¨¼E¿J¹JÈt×O`ÑO`×OgÑOgÔhˆNàÒ Ø:>×:NÑ:NÈyÓ:YÑ7ˆMÐ7à+/Ð(ØFJ×F`ÑF`ÐaoÓFpÑCÐà04×0DÑ0DØØ(Ø*Ø$Hð	 1Eó 1
Ñ-ˆ
ð CG×BZÑBZÐ[gÓBhÑ?ÐØ04×0DÑ0DØØ%Ø(Ø$Fð	 1Eó 1
Ñ-ˆ
ð 15·±¸zÓ0eÑ-ˆ
Ø—\‘\ *Ó-ˆ
Ø04×0FÑ0FÀzÓ0mÑ-ˆ
ØÐ4Ð4rM   c                ó.  € VP                  4       RR pV^,          p\        P                  ! V P                  ^,           W0P                  ,           ^,           \        P                  VP
                  R7      pVP                  ^ 4      P                  V4      # )z¯
We are provided embeddings directly. We cannot infer which are padded so just generate sequential position ids.

Args:
    inputs_embeds: torch.Tensor

Returns: torch.Tensor
NrO   r*   )rX   r9   r:   r   rZ   rQ   Ú	unsqueezer<   )rH   r]   r_   Úsequence_lengthr=   s   &&   rK   rW   Ú6IBertEmbeddings.create_position_ids_from_inputs_embeds�   s~   € ð $×(Ñ(Ó*¨3¨BÐ/ˆØ% a�.ˆä—|’|Ø×Ñ˜qÕ  /×4DÑ4DÕ"DÀqÕ"HÔPU×PZÑPZÐcp×cwÑcwô
ˆð ×%Ñ% aÓ(×/Ñ/°Ó<Ð<rM   )rB   r/   rF   r.   r-   r?   r@   r0   r1   rC   r   r>   r=   r!   r7   r5   )NNNNé    )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r,   re   rW   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rJ   Ú__classdict__s   @@rK   r   r   .   s    ù‡ € ñõ->ô^,5÷\=ò =rM   r   c                   ó<   a a€ ] tR t^¢t oV 3R ltRR ltRtVtV ;t# )ÚIBertSelfAttentionc           
     ór  <€ \         SV `  4        VP                  VP                  ,          ^ 8w  d9   \	        VR4      '       g'   \        RVP                   RVP                   R24      hVP                  V n        ^V n        ^ V n        ^V n	        VP                  V n        \        VP                  VP                  ,          4      V n        V P                  V P                  ,          V n        \        VP                  V P                  RV P                  V P                  V P                  RR7      V n        \        VP                  V P                  RV P                  V P                  V P                  RR7      V n        \        VP                  V P                  RV P                  V P                  V P                  RR7      V n        \#        V P                  V P                  R7      V n        \#        V P                  V P                  R7      V n        \#        V P                  V P                  R7      V n        \#        V P                  V P                  R7      V n        \,        P.                  ! VP0                  4      V n        \5        V P                  V P                  VP6                  R7      V n        R	# )
rk   Úembedding_sizezThe hidden size (z6) is not a multiple of the number of attention heads (Ú)T©Úbiasr    Úbias_bitr!   Úper_channelr#   ©r!   r'   N)r+   r,   r3   Únum_attention_headsÚhasattrÚ
ValueErrorr!   r    r}   r/   ÚintÚattention_head_sizeÚall_head_sizer   ÚqueryÚkeyÚvaluer   Úquery_activationÚkey_activationÚvalue_activationrC   r   rD   Úattention_probs_dropout_probrF   r   r'   ÚsoftmaxrG   s   &&€rK   r,   ÚIBertSelfAttention.__init__£   s  ø€ Ü‰ÑÔØ×Ñ × :Ñ :Õ:¸aÔ?ÌÐPVÐXh×HiÒHiÜØ# F×$6Ñ$6Ð#7ð 8Ø ×4Ñ4Ð5°Qð8óð ð !×+Ñ+ˆŒØˆŒØˆŒØˆŒà#)×#=Ñ#=ˆÔ Ü#& v×'9Ñ'9¸F×<VÑ<VÕ'VÓ#WˆÔ Ø!×5Ñ5¸×8PÑ8PÕPˆÔô !Ø×ÑØ×ÑØØ—‘Ø—]‘]Ø—‘Øô
ˆŒ
ô Ø×ÑØ×ÑØØ—‘Ø—]‘]Ø—‘Øô
ˆŒô !Ø×ÑØ×ÑØØ—‘Ø—]‘]Ø—‘Øô
ˆŒ
ô !)¨¯©À$Ç/Á/Ô RˆÔÜ& t§|¡|ÀÇÁÔPˆÔÜ (¨¯©À$Ç/Á/Ô RˆÔÜ!)¨$¯,©,À4Ç?Á?Ô!SˆÔä—z’z &×"EÑ"EÓFˆŒä! $§,¡,¸4¿?¹?ÐZ`×ZnÑZnÔoˆŽrM   c                ó¨  € V P                  W4      w  rVV P                  W4      w  rxV P                  W4      w  ršV P                  WV4      w  r¼V P	                  Wx4      w  rÞV P                  Wš4      w  ppVP                  R R p. VORNV P                  N5pVP                  V4      P                  ^^4      pVP                  V4      P                  ^^4      pVP                  V4      P                  ^^4      p\        P                  ! W½P                  RR4      4      p\        P                  ! V P                  4      pVV,          pV P                  '       d   WÎ,          V,          pMR pVe
   VV,           pV P                  VV4      w  ppV P!                  V4      p\        P                  ! VV4      pVe   VV,          pMR pVP#                  ^ ^^^4      P%                  4       pVP'                  4       R R V P(                  3,           pVP                  ! V!  pV P+                  VV4      w  ppV'       d   VV3MV3pV'       d   VV3MV3pVV3# )Nr*   éþÿÿÿ)r†   r‡   rˆ   r‰   rŠ   r‹   Úshaper„   ÚviewÚ	transposer9   ÚmatmulÚmathÚsqrtr!   r�   rF   ÚpermuteÚ
contiguousrX   r…   rC   )rH   Úhidden_statesÚhidden_states_scaling_factorÚattention_maskÚoutput_attentionsÚmixed_query_layerÚ mixed_query_layer_scaling_factorÚmixed_key_layerÚmixed_key_layer_scaling_factorÚmixed_value_layerÚ mixed_value_layer_scaling_factorÚquery_layerÚquery_layer_scaling_factorÚ	key_layerÚkey_layer_scaling_factorÚvalue_layerÚvalue_layer_scaling_factorr_   Úhidden_shapeÚattention_scoresÚscaleÚattention_scores_scaling_factorÚattention_probsÚattention_probs_scaling_factorÚcontext_layerÚcontext_layer_scaling_factorÚnew_context_layer_shapeÚoutputsÚoutput_scaling_factors   &&&&&                        rK   re   ÚIBertSelfAttention.forwardÚ   sr  € ð ?C¿j¹jÈÓ>uÑ;ÐØ:>¿(¹(À=Ó:oÑ7ˆØ>B¿j¹jÈÓ>uÑ;Ðð 37×2GÑ2GØó3
Ñ/ˆð /3×.AÑ.AÀ/Ó.rÑ+ˆ	Ø26×2GÑ2GØó3
Ñ/ˆÐ/ð
 $×)Ñ)¨#¨2Ð.ˆØC˜ÐC bÐC¨$×*BÑ*BÑCˆØ!×&Ñ& |Ó4×>Ñ>¸qÀ!ÓDˆØ—N‘N <Ó0×:Ñ:¸1¸aÓ@ˆ	Ø!×&Ñ& |Ó4×>Ñ>¸qÀ!ÓDˆô !Ÿ<š<¨×5HÑ5HÈÈRÓ5PÓQÐÜ—	’	˜$×2Ñ2Ó3ˆØ+¨eÕ3ÐØ�?�?ˆ?Ø.HÕ.cÐfkÕ.kÑ+à.2Ð+àÒ%à/°.Õ@Ðð ;?¿,¹,ØÐ=ó;
Ñ7ˆÐ7ð Ÿ,™, Ó7ˆäŸš _°kÓBˆØ)Ò5Ø+IÐLfÕ+fÑ(à+/Ð(à%×-Ñ-¨a°°A°qÓ9×DÑDÓFˆØ"/×"4Ñ"4Ó"6°s¸Ð";¸t×?QÑ?QÐ>SÕ"SÐØ%×*Ò*Ð,CÑDˆð 7;×6LÑ6LØÐ7ó7
Ñ3ˆÐ3÷ 7H�= /Ñ2ÈmÐM]ˆ÷ !ð *Ð+IÑJà.Ð0ð 	ð Ð-Ð-Ð-rM   )r/   r…   r„   r}   rF   r‡   rŠ   r€   rC   r!   r†   r‰   r�   rˆ   r‹   r    ©NF©	rl   rm   rn   ro   r,   re   rq   rr   rs   rt   s   @@rK   rw   rw   ¢   s   ù‡ € õ5p÷nH.ô H.rM   rw   c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚIBertSelfOutputi%  c           
     óŽ  <€ \         SV `  4        VP                  V n        ^V n        ^V n        ^ V n        ^V n        ^ V n        \        VP                  VP                  RV P                  V P
                  V P                  RR7      V n
        \        V P                  V P                  R7      V n        \        VP                  VP                  V P                  V P                  VP                  R7      V n        \        V P                  V P                  R7      V n        \$        P&                  ! VP(                  4      V n        R# ©r   Tr{   r#   r$   N)r+   r,   r!   r/   r    r}   r0   r1   r   r3   Údenser   Úln_input_actr   rA   r'   rB   rC   r   rD   rE   rF   rG   s   &&€rK   r,   ÚIBertSelfOutput.__init__&  sú   ø€ Ü‰ÑÔØ ×+Ñ+ˆŒØˆŒØˆŒØˆŒØˆÔØˆÔä Ø×ÑØ×ÑØØ—‘Ø—]‘]Ø—‘Øô
ˆŒ
ô % T×%6Ñ%6À4Ç?Á?ÔSˆÔÜ%Ø×ÑØ×%Ñ%Ø×)Ñ)Ø—‘Ø ×.Ñ.ô
ˆŒô "*¨$¯,©,À4Ç?Á?Ô!SˆÔÜ—z’z &×"<Ñ"<Ó=ˆŽrM   c                óÊ   € V P                  W4      w  rV P                  V4      pV P                  VVVVR 7      w  rV P                  W4      w  rV P	                  W4      w  rW3# ©rR   ©r»   rF   r¼   rB   rC   ©rH   r™   rš   Úinput_tensorÚinput_tensor_scaling_factors   &&&&&rK   re   ÚIBertSelfOutput.forwardC  óz   € Ø6:·j±jÀÓ6mÑ3ˆØŸ™ ]Ó3ˆØ6:×6GÑ6GØØ(Ø!Ø$?ð	 7Hó 7
Ñ3ˆð 7;·n±nÀ]Ó6qÑ3ˆà6:×6LÑ6LØó7
Ñ3ˆð Ð:Ð:rM   ©rB   r/   r}   r»   rF   r¼   r0   r1   rC   r!   r    r¶   rt   s   @@rK   r¸   r¸   %  ó   ù‡ € õ>÷:;ò ;rM   r¸   c                   ó<   a a€ ] tR tRt oV 3R ltRR ltRtVtV ;t# )ÚIBertAttentioniT  c                ó†   <€ \         SV `  4        VP                  V n        \        V4      V n        \        V4      V n        R # ©N)r+   r,   r!   rw   rH   r¸   ÚoutputrG   s   &&€rK   r,   ÚIBertAttention.__init__U  s3   ø€ Ü‰ÑÔØ ×+Ñ+ˆŒÜ& vÓ.ˆŒ	Ü% fÓ-ˆŽrM   c                ó¾   € V P                  VVVV4      w  rVV P                  V^ ,          V^ ,          W4      w  rxV3VR,          ,           p	V3VR,          ,           p
Wš3# )rk   ºr)   NN)rH   rÌ   )rH   r™   rš   r›   rœ   Úself_outputsÚself_outputs_scaling_factorÚattention_outputÚattention_output_scaling_factorr²   Úoutputs_scaling_factors   &&&&&      rK   re   ÚIBertAttention.forward[  sy   € ð 59·I±IØØ(ØØó	5
Ñ1ˆð =A¿K¹KØ˜�OÐ8¸Õ;¸]ó=
Ñ9Ðð $Ð%¨°RÕ(8Õ8ˆØ"AÐ!CÐFaÐbdÕFeÕ!eÐØÐ.Ð.rM   )rÌ   r!   rH   rµ   r¶   rt   s   @@rK   rÉ   rÉ   T  s   ù‡ € õ.÷/ô /rM   rÉ   c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚIBertIntermediateip  c           
     óÒ  <€ \         SV `  4        VP                  V n        ^V n        ^V n        ^ V n        \        VP                  VP                  RV P                  V P
                  V P                  RR7      V n	        VP                  R8w  d   \        R4      h\        V P                  VP                  R7      V n        \        V P                  V P                  R7      V n        R# )r   Tr{   r   z3I-BERT only supports 'gelu' for `config.hidden_act`r   r#   N)r+   r,   r!   r/   r    r}   r   r3   Úintermediate_sizer»   Ú
hidden_actr‚   r   r'   Úintermediate_act_fnr   rC   rG   s   &&€rK   r,   ÚIBertIntermediate.__init__q  s¶   ø€ Ü‰ÑÔØ ×+Ñ+ˆŒØˆŒØˆŒØˆŒÜ Ø×ÑØ×$Ñ$ØØ—‘Ø—]‘]Ø—‘Øô
ˆŒ
ð ×Ñ Ô&ÜÐRÓSÐSÜ#*°d·o±oÐU[×UiÑUiÔ#jˆÔ Ü!)¨$¯,©,À4Ç?Á?Ô!SˆÖrM   c                óz   € V P                  W4      w  rV P                  W4      w  rV P                  W4      w  rW3# rË   )r»   rÛ   rC   )rH   r™   rš   s   &&&rK   re   ÚIBertIntermediate.forward…  sL   € Ø6:·j±jÀÓ6mÑ3ˆØ6:×6NÑ6NØó7
Ñ3ˆð
 7;×6LÑ6LØó7
Ñ3ˆð Ð:Ð:rM   )r/   r}   r»   rÛ   rC   r!   r    r¶   rt   s   @@rK   r×   r×   p  s   ù‡ € õT÷(
;ò 
;rM   r×   c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚIBertOutputi’  c           
     óŽ  <€ \         SV `  4        VP                  V n        ^V n        ^V n        ^ V n        ^V n        ^ V n        \        VP                  VP                  RV P                  V P
                  V P                  RR7      V n        \        V P                  V P                  R7      V n        \        VP                  VP                  V P                  V P                  VP                   R7      V n        \        V P                  V P                  R7      V n        \&        P(                  ! VP*                  4      V n        R# rº   )r+   r,   r!   r/   r    r}   r0   r1   r   rÙ   r3   r»   r   r¼   r   rA   r'   rB   rC   r   rD   rE   rF   rG   s   &&€rK   r,   ÚIBertOutput.__init__“  sú   ø€ Ü‰ÑÔØ ×+Ñ+ˆŒØˆŒØˆŒØˆŒØˆÔØˆÔä Ø×$Ñ$Ø×ÑØØ—‘Ø—]‘]Ø—‘Øô
ˆŒ
ô % T×%6Ñ%6À4Ç?Á?ÔSˆÔÜ%Ø×ÑØ×%Ñ%Ø×)Ñ)Ø—‘Ø ×.Ñ.ô
ˆŒô "*¨$¯,©,À4Ç?Á?Ô!SˆÔÜ—z’z &×"<Ñ"<Ó=ˆŽrM   c                óÊ   € V P                  W4      w  rV P                  V4      pV P                  VVVVR 7      w  rV P                  W4      w  rV P	                  W4      w  rW3# r¿   rÀ   rÁ   s   &&&&&rK   re   ÚIBertOutput.forward°  rÅ   rM   rÆ   r¶   rt   s   @@rK   rà   rà   ’  rÇ   rM   rà   c                   óB   a a€ ] tR tRt oV 3R ltRR ltR tRtVtV ;t	# )Ú
IBertLayeriÁ  c                óZ  <€ \         SV `  4        VP                  V n        ^V n        ^V n        \        V4      V n        \        V4      V n        \        V4      V n
        \        V P                  V P                  R7      V n        \        V P                  V P                  R7      V n        R# )r   r#   N)r+   r,   r!   r/   Úseq_len_dimrÉ   Ú	attentionr×   Úintermediaterà   rÌ   r   Úpre_intermediate_actÚpre_output_actrG   s   &&€rK   r,   ÚIBertLayer.__init__Â  s}   ø€ Ü‰ÑÔØ ×+Ñ+ˆŒØˆŒàˆÔÜ'¨Ó/ˆŒÜ-¨fÓ5ˆÔÜ! &Ó)ˆŒä$,¨T¯\©\ÀdÇoÁoÔ$VˆÔ!Ü& t§|¡|ÀÇÁÔPˆÖrM   c                ó¤   € V P                  VVVVR 7      w  rVV^ ,          pV^ ,          pVR,          p	V P                  Wx4      w  r«V
3V	,           p	V	# ))rœ   rÏ   )ré   Úfeed_forward_chunk)rH   r™   rš   r›   rœ   Úself_attention_outputsÚ%self_attention_outputs_scaling_factorrÒ   rÓ   r²   Úlayer_outputÚlayer_output_scaling_factors   &&&&&       rK   re   ÚIBertLayer.forwardÏ  sx   € ð IMÏÉØØ(ØØ/ð	 IWó I
ÑEÐð 2°!Õ4ÐØ*OÐPQÕ*RÐ'à(¨Õ,ˆà48×4KÑ4KØó5
Ñ1ˆð  �/ GÕ+ˆàˆrM   c                ó¢   € V P                  W4      w  rV P                  W4      w  r4V P                  W44      w  r4V P                  W4W4      w  rVWV3# rË   )rë   rê   rì   rÌ   )rH   rÒ   rÓ   Úintermediate_outputÚ"intermediate_output_scaling_factorrò   ró   s   &&&    rK   rï   ÚIBertLayer.feed_forward_chunkè  su   € Ø<@×<UÑ<UØó=
Ñ9Ðð CG×BSÑBSØóC
Ñ?Ðð CG×BUÑBUØóC
Ñ?Ðð 59·K±KØÐEUó5
Ñ1ˆð Ð8Ð8rM   )r/   ré   rê   rÌ   rë   rì   r!   rè   rµ   )
rl   rm   rn   ro   r,   re   rï   rq   rr   rs   rt   s   @@rK   ræ   ræ   Á  s   ù‡ € õQô÷29ò 9rM   ræ   c                   ó<   a a€ ] tR tRt oV 3R ltRR ltRtVtV ;t# )ÚIBertEncoderiù  c                óê   <€ \         SV `  4        Wn        VP                  V n        \        P
                  ! \        VP                  4       Uu. uF  p\        V4      NK  	  up4      V n	        R # u upi rË   )
r+   r,   rI   r!   r   Ú
ModuleListÚrangeÚnum_hidden_layersræ   Úlayer)rH   rI   Ú_rJ   s   && €rK   r,   ÚIBertEncoder.__init__ú  sT   ø€ Ü‰ÑÔØŒØ ×+Ñ+ˆŒÜ—]’]ÄÀf×F^ÑF^Ô@_Ó#`Ñ@_¸1¤J¨vÖ$6Ñ@_Ñ#`ÓaˆŽ
ùÒ#`s   ÁA0c                ó¨  € V'       d   RMR pV'       d   RMR pR p	\        V P                  4       FD  w  r«V'       d
   Wq3,           pV! VVVV4      pV^ ,          pV'       g   K4  WŒ^,          3,           pKF  	  V'       d
   Wq3,           pV'       g5   \        ;QJ d    . R VVVV	3 4       F  NK  	  5# ! R VVVV	3 4       4      # \        VVVV	R7      # )Nc              3   ó2   "  € T F  pVf   K	  Vx € K  	  R # 5irË   © )Ú.0Úvs   & rK   Ú	<genexpr>Ú'IBertEncoder.forward.<locals>.<genexpr>   s"   é € ð 	ñ�Að ÷ ’óùs   ‚�
)Úlast_hidden_stater™   Ú
attentionsÚcross_attentionsr  )Ú	enumeraterÿ   Útupler	   )rH   r™   rš   r›   rœ   Úoutput_hidden_statesÚreturn_dictÚall_hidden_statesÚall_self_attentionsÚall_cross_attentionsÚiÚlayer_moduleÚlayer_outputss   &&&&&&&      rK   re   ÚIBertEncoder.forward   sü   € ÷ #7™B¸DÐß$5™b¸4ÐØ#Ðä(¨¯©Ö4‰OˆAß#Ø$5Ð8HÕ$HÐ!á(ØØ,ØØ!ó	ˆMð *¨!Õ,ˆMß Ñ Ø&9È1Õ=MÐ<OÕ&OÒ#ñ  5÷  Ø 1Ð4DÕ DÐçß”5ñ 	ð "Ø%Ø'Ø(ñ	ó	—5ð 	�5ñ 	ð "Ø%Ø'Ø(ñ	ó	ó 	ð 	ô 9Ø+Ø+Ø*Ø1ô	
ð 	
rM   )rI   rÿ   r!   )NFFTr¶   rt   s   @@rK   rú   rú   ù  s   ù‡ € õb÷/
ô /
rM   rú   c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚIBertPooleri2  c                óÚ   <€ \         SV `  4        VP                  V n        \        P                  ! VP
                  VP
                  4      V n        \        P                  ! 4       V n        R # rË   )	r+   r,   r!   r   ÚLinearr3   r»   ÚTanhÚ
activationrG   s   &&€rK   r,   ÚIBertPooler.__init__3  sF   ø€ Ü‰ÑÔØ ×+Ñ+ˆŒÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸ'š'›)ˆŽrM   c                ó\   € VR,          pV P                  V4      pV P                  V4      pV# )ºNNN)r  rk   )r»   r  )rH   r™   Úfirst_token_tensorÚpooled_outputs   &&  rK   re   ÚIBertPooler.forward9  s2   € ð +¨4Õ0ÐØŸ
™
Ð#5Ó6ˆØŸ™¨Ó6ˆØÐrM   )r  r»   r!   r¶   rt   s   @@rK   r  r  2  s   ù‡ € õ$÷ò rM   r  c                   ót   a a€ ] tR tRt oRt]P                  ! 4       V 3R l4       tRR ltV3R lt	Rt
VtV ;t# )ÚIBertPreTrainedModeliB  Úibertc                óü  <€ \         SV `  V4       \        V\        4      '       dè   \        P
                  ! VP                  RV P                  P                  R7       VP                  e!   \        P                  ! VP                  4       \        VRR4      eA   \        P                  ! VP                  4       \        P                  ! VP                  4       \        VRR4      e#   \        P                  ! VP                  4       R# R# \        V\        4      '       dç   \        P
                  ! VP                  RV P                  P                  R7       VP                   eO   \        VP                  RR4      '       g2   \        P                  ! VP                  VP                   ,          4       \        VRR4      eC   \        P                  ! VP"                  4       \        P                  ! VP                  4       R# R# \        V\$        4      '       d4   \        VR	R4      e#   \        P                  ! VP&                  4       R# R# \        V\(        4      '       d#   \        P                  ! VP                  4       R# \        V\*        4      '       db   \        P,                  ! VP.                  \0        P2                  ! VP.                  P4                  R,          4      P7                  R4      4       R# \        V\8        4      '       de   \        P:                  ! VP<                  R4       \        P:                  ! VP>                  R
4       \        P                  ! VP@                  4       R# R# )zInitialize the weightsg        )ÚmeanÚstdNÚweight_integerÚbias_integerÚ_is_hf_initializedFÚweight_scaling_factorÚshiftgñhãˆµøä>r*   r(   gñhãˆµøä¾)!r+   Ú_init_weightsÚ
isinstancer   ÚinitÚnormal_ÚweightrI   Úinitializer_ranger|   Úzeros_Úgetattrr)  Úfc_scaling_factorr*  r   r   r,  r   r-  ÚIBertLMHeadr   Úcopy_r=   r9   r:   r‘   r<   r   Ú	constant_Úx_minÚx_maxÚact_scaling_factor)rH   ÚmodulerJ   s   &&€rK   r.  Ú"IBertPreTrainedModel._init_weightsG  s2  ø€ ô 	‰Ñ˜fÔ%Ü�fœk×*Ò*Ü�LŠL˜Ÿ™¨S°d·k±k×6SÑ6SÕTØ�{‰{Ò&Ü—’˜FŸK™KÔ(Ü�vÐ/°Ó6ÒBÜ—’˜F×1Ñ1Ô2Ü—’˜F×4Ñ4Ô5Ü�v˜~¨tÓ4Ò@Ü—’˜F×/Ñ/Ö0ñ Aä˜¤×/Ò/Ü�LŠL˜Ÿ™¨S°d·k±k×6SÑ6SÕTà×!Ñ!Ò-´g¸f¿m¹mÐMaÐch×6iÒ6iÜ—’˜FŸM™M¨&×*<Ñ*<Õ=Ô>Ü�vÐ6¸Ó=ÒIÜ—’˜F×8Ñ8Ô9Ü—’˜F×1Ñ1Ö2ñ Jô ˜¤×-Ò-Ü�v˜w¨Ó-Ò9Ü—’˜FŸL™LÖ)ñ :ä˜¤×,Ò,Ü�KŠK˜Ÿ™Ö$Ü˜¤×0Ò0Ü�JŠJ�v×*Ñ*¬E¯LªL¸×9LÑ9L×9RÑ9RÐSUÕ9VÓ,W×,^Ñ,^Ð_fÓ,gÖhÜ˜¤×)Ò)Ü�NŠN˜6Ÿ<™<¨Ô/Ü�NŠN˜6Ÿ<™<¨Ô.Ü�KŠK˜×1Ñ1Ö2ñ *rM   c                ó   € \        R 4      h)z6`resize_token_embeddings` is not supported for I-BERT.)ÚNotImplementedError)rH   Únew_num_tokenss   &&rK   Úresize_token_embeddingsÚ,IBertPreTrainedModel.resize_token_embeddingsh  s   € Ü!Ð"ZÓ[Ð[rM   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )é   rI   r   )Úformatru   s   "€rK   Ú__annotate__Ú!IBertPreTrainedModel.__annotate__B  s   ø‡ ‚ áÑò rM   r  rË   )rl   rm   rn   ro   Úbase_model_prefixr9   Úno_gradr.  rB  Ú__annotate_func__rq   rr   rs   rt   s   @@rK   r$  r$  B  s4   ù‡ € ð  Ðà
‡]‚]ƒ_ô3ó ð3ô@\÷M … rM   r$  c                   óf   a a€ ] tR tRt oRtR	V 3R lltR tR t]R
V3R lR ll4       t	Rt
VtV ;t# )Ú
IBertModelil  aš  

The model can behave as an encoder (with only self-attention) as well as a decoder, in which case a layer of
cross-attention is added between the self-attention layers, following the architecture described in [Attention is
all you need](https://huggingface.co/papers/1706.03762) by Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit,
Llion Jones, Aidan N. Gomez, Lukasz Kaiser and Illia Polosukhin.

c                óè   <€ \         SV `  V4       Wn        VP                  V n        \	        V4      V n        \        V4      V n        V'       d   \        V4      MRV n	        V P                  4        R# )z^
add_pooling_layer (bool, *optional*, defaults to `True`):
    Whether to add a pooling layer
N)r+   r,   rI   r!   r   rb   rú   Úencoderr  ÚpoolerÚ	post_init)rH   rI   Úadd_pooling_layerrJ   s   &&&€rK   r,   ÚIBertModel.__init__w  sX   ø€ ô
 	‰Ñ˜Ô ØŒØ ×+Ñ+ˆŒä)¨&Ó1ˆŒÜ# FÓ+ˆŒç->”k &Ô)ÀDˆŒð 	�‰ÖrM   c                ó.   € V P                   P                  # rË   ©rb   r5   ©rH   s   &rK   Úget_input_embeddingsÚIBertModel.get_input_embeddingsˆ  s   € Ø�‰×.Ñ.Ð.rM   c                ó&   € WP                   n        R # rË   rU  )rH   rˆ   s   &&rK   Úset_input_embeddingsÚIBertModel.set_input_embeddings‹  s   € Ø*/�‰Ö'rM   c                óX  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          R	S[R,          R
S[S[S[ P                  ,          ,          /	# )rE  r[   Nr›   r\   r=   r]   rœ   r  r  Úreturn)r9   Ú
LongTensorÚFloatTensorÚboolr
   r  )rF  ru   s   "€rK   rG  ÚIBertModel.__annotate__�  sÃ   ø€ ÷ E
ñ E
á×#Ñ# dÕ*ðE
ñ ×)Ñ)¨DÕ0ðE
ñ ×(Ñ(¨4Õ/ð	E
ñ
 ×&Ñ&¨Õ-ðE
ñ ×(Ñ(¨4Õ/ðE
ñ   $�;ðE
ñ # T�kðE
ñ ˜D•[ðE
ñ 
6¹¹e×>OÑ>OÕ8PÕ	PñE
rM   c	           	     ó¢  € Ve   TMV P                   P                  pVe   TMV P                   P                  pVe   TMV P                   P                  pVe   Ve   \	        R4      hVe#   V P                  W4       VP                  4       p
M#Ve   VP                  4       R R
 p
M\	        R4      hV
w  r¼Ve   VP                  MVP                  pVf   \        P                  ! W¼3VR7      pVf(   \        P                  ! V
\        P                  VR7      pV P                  VVVVR7      w  rï\        V P                   VVR7      pV P                  VVVVVVR7      pV^ ,          pV P                  e   V P                  V4      MR pV'       g   VV3VR,          ,           # \!        VVVP"                  VP$                  VP&                  R	7      # )NzDYou cannot specify both input_ids and inputs_embeds at the same timez5You have to specify either input_ids or inputs_embeds)rQ   rO   )r[   r=   r\   r]   )rI   r]   r›   )r›   rœ   r  r  rÏ   )r	  Úpooler_outputr™   r
  r  r*   )rI   rœ   r  r  r‚   Ú%warn_if_padding_and_no_attention_maskrX   rQ   r9   ÚonesrY   rZ   rb   r   rO  rP  r
   r™   r
  r  )rH   r[   r›   r\   r=   r]   rœ   r  r  Úkwargsr_   Ú
batch_sizeÚ
seq_lengthrQ   Úembedding_outputÚembedding_output_scaling_factorÚencoder_outputsÚsequence_outputr!  s   &&&&&&&&&,         rK   re   ÚIBertModel.forwardŽ  sÕ  € ð 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¨*Ð)AÈ6ÔRˆNØÒ!Ü"Ÿ[š[¨¼E¿J¹JÈvÔVˆNà<@¿O¹OØØ%Ø)Ø'ð	 =Ló =
Ñ9Ðô 3Ø—;‘;Ø*Ø)ô
ˆð Ÿ,™,ØØ+Ø)Ø/Ø!5Ø#ð 'ó 
ˆð *¨!Õ,ˆØ8<¿¹Ò8O˜Ÿ™ OÔ4ÐUYˆçØ# ]Ð3°oÀbÕ6IÕIÐIä;Ø-Ø'Ø)×7Ñ7Ø&×1Ñ1Ø,×=Ñ=ô
ð 	
rM   )rI   rb   rO  rP  r!   )T)NNNNNNNN)rl   rm   rn   ro   rp   r,   rW  rZ  r   re   rq   rr   rs   rt   s   @@rK   rM  rM  l  s;   ù‡ € ñ÷ò"/ò0ð ÷E
ñ E
ó ÷E
ð E
rM   rM  c                   ój   a a€ ] tR tRt oRRRR/tV 3R ltR tR t]RV3R	 lR
 ll4       t	Rt
VtV ;t# )ÚIBertForMaskedLMi×  zlm_head.decoder.weightz(ibert.embeddings.word_embeddings.weight$zlm_head.decoder.biaszlm_head.biasc                óŠ   <€ \         SV `  V4       \        VR R7      V n        \	        V4      V n        V P                  4        R# ©F)rR  N)r+   r,   rM  r%  r7  Úlm_headrQ  rG   s   &&€rK   r,   ÚIBertForMaskedLM.__init__Þ  s6   ø€ Ü‰Ñ˜Ô ä ¸%Ô@ˆŒ
Ü" 6Ó*ˆŒð 	�‰ÖrM   c                ó.   € V P                   P                  # rË   )rr  ÚdecoderrV  s   &rK   Úget_output_embeddingsÚ&IBertForMaskedLM.get_output_embeddingsç  s   € Ø�|‰|×#Ñ#Ð#rM   c                ó\   € WP                   n        VP                  V P                   n        R # rË   )rr  ru  r|   )rH   Únew_embeddingss   &&rK   Úset_output_embeddingsÚ&IBertForMaskedLM.set_output_embeddingsê  s   € Ø-�‰ÔØ*×/Ñ/ˆ�‰ÖrM   c                ó€  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          R	S[R,          R
S[R,          RS[S[S[ P                  ,          ,          /
# ©rE  r[   Nr›   r\   r=   r]   Úlabelsrœ   r  r  r]  )r9   r^  r_  r`  r   r  )rF  ru   s   "€rK   rG  ÚIBertForMaskedLM.__annotate__ï  sÍ   ø€ ÷ 0
ñ 0
á×#Ñ# dÕ*ð0
ñ ×)Ñ)¨DÕ0ð0
ñ ×(Ñ(¨4Õ/ð	0
ñ
 ×&Ñ&¨Õ-ð0
ñ ×(Ñ(¨4Õ/ð0
ñ × Ñ  4Õ'ð0
ñ   $�;ð0
ñ # T�kð0
ñ ˜D•[ð0
ñ 
™%¡× 1Ñ 1Õ2Õ	2ñ0
rM   c
                óÐ  € V	e   T	MV P                   P                  p	V P                  VVVVVVVV	R7      pV^ ,          pV P                  V4      pRpVeG   \	        4       pV! VP                  RV P                   P                  4      VP                  R4      4      pV	'       g"   V3VR,          ,           pVe   V3V,           # T# \        VVVP                  VP                  R7      # )az  
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  ºrE  NN©ÚlossÚlogitsr™   r
  r*   )
rI   r  r%  rr  r   r’   r2   r   r™   r
  )rH   r[   r›   r\   r=   r]   r~  rœ   r  r  rf  r²   rl  Úprediction_scoresÚmasked_lm_lossÚloss_fctrÌ   s   &&&&&&&&&&,      rK   re   ÚIBertForMaskedLM.forwardî  sõ   € ð( &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆà—*‘*ØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ó 	
ˆð " !�*ˆØ ŸL™L¨Ó9ÐàˆØÒÜ'Ó)ˆHÙ%Ð&7×&<Ñ&<¸RÀÇÁ×AWÑAWÓ&XÐZ`×ZeÑZeÐfhÓZiÓjˆNçØ'Ð)¨G°B­KÕ7ˆFØ3AÒ3M�^Ð%¨Õ.ÐYÐSYÐYäØØ$Ø!×/Ñ/Ø×)Ñ)ô	
ð 	
rM   )r%  rr  ©	NNNNNNNNN)rl   rm   rn   ro   Ú_tied_weights_keysr,   rv  rz  r   re   rq   rr   rs   rt   s   @@rK   ro  ro  ×  sG   ù‡ € ð 	!Ð"LØ ðÐõ
ò$ò0ð ÷0
ñ 0
ó ÷0
ð 0
rM   ro  c                   ó<   a a€ ] tR tRt oRtV 3R ltR tRtVtV ;t	# )r7  i"  z)I-BERT Head for masked language modeling.c                ó¸  <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        P                  ! VP                  VP                  R 7      V n        \        P                  ! VP                  VP                  4      V n
        \        P                  ! \        P                  ! VP                  4      4      V n        R# ))r%   N)r+   r,   r   r  r3   r»   rB   rA   Ú
layer_normr2   ru  Ú	Parameterr9   rY   r|   rG   s   &&€rK   r,   ÚIBertLMHead.__init__%  s‡   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸ,š, v×'9Ñ'9¸v×?TÑ?TÔUˆŒä—y’y ×!3Ñ!3°V×5FÑ5FÓGˆŒÜ—L’L¤§¢¨V×->Ñ->Ó!?Ó@ˆŽ	rM   c                ó‚   € V P                  V4      p\        V4      pV P                  V4      pV P                  V4      pV# rË   )r»   r   rŽ  ru  )rH   Úfeaturesrf  Úxs   &&, rK   re   ÚIBertLMHead.forward-  s;   € Ø�J‰J�xÓ ˆÜ�‹GˆØ�O‰O˜AÓˆð �L‰L˜‹OˆàˆrM   )r|   ru  r»   rŽ  ©
rl   rm   rn   ro   rp   r,   re   rq   rr   rs   rt   s   @@rK   r7  r7  "  s   ù‡ € Ù3õA÷ò rM   r7  zž
    I-BERT 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                   óR   a a€ ] tR tRt oV 3R lt]RV3R lR ll4       tRtVtV ;t	# )ÚIBertForSequenceClassificationi8  c                ó¬   <€ \         SV `  V4       VP                  V n        \        VR R7      V n        \        V4      V n        V P                  4        R# rq  )r+   r,   Ú
num_labelsrM  r%  ÚIBertClassificationHeadÚ
classifierrQ  rG   s   &&€rK   r,   Ú'IBertForSequenceClassification.__init__?  sC   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒä ¸%Ô@ˆŒ
Ü1°&Ó9ˆŒð 	�‰ÖrM   c                ó€  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          R	S[R,          R
S[R,          RS[S[S[ P                  ,          ,          /
# r}  )r9   r^  r_  r`  r   r  )rF  ru   s   "€rK   rG  Ú+IBertForSequenceClassification.__annotate__J  sÙ   ø€ ÷ A
ñ A
á×#Ñ# dÕ*ðA
ñ ×)Ñ)¨DÕ0ðA
ñ ×(Ñ(¨4Õ/ð	A
ñ
 ×&Ñ&¨Õ-ðA
ñ ×(Ñ(¨4Õ/ðA
ñ × Ñ  4Õ'ðA
ñ   $�;ðA
ñ # T�kðA
ñ ˜D•[ðA
ñ 
"¡E©%×*;Ñ*;Õ$<Õ	<ñA
rM   c
                ót  € V	e   T	MV P                   P                  p	V P                  VVVVVVVV	R7      pV^ ,          pV P                  V4      pRpVEe˜   V P                   P                  f–   V P
                  ^8X  d   RV P                   n        MrV P
                  ^8”  dQ   VP                  \        P                  8X  g    VP                  \        P                  8X  d   RV P                   n        MRV P                   n        V P                   P                  R8X  dK   \        4       pV P
                  ^8X  d'   V! VP                  4       VP                  4       4      pMŽV! WÖ4      pM…V P                   P                  R8X  d>   \        4       pV! VP                  RV P
                  4      VP                  R4      4      pM-V P                   P                  R8X  d   \        4       pV! WÖ4      pV	'       g"   V3VR,          ,           pVe   V3V,           # T# \        VVVP                   VP"                  R7      # )	ae  
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).
Nr�  Ú
regressionÚsingle_label_classificationÚmulti_label_classificationr‚  rƒ  r*   )rI   r  r%  rœ  Úproblem_typerš  rP   r9   rZ   rƒ   r   Úsqueezer   r’   r   r   r™   r
  ©rH   r[   r›   r\   r=   r]   r~  rœ   r  r  rf  r²   rl  r…  r„  rˆ  rÌ   s   &&&&&&&&&&,      rK   re   Ú&IBertForSequenceClassification.forwardI  sÑ  € ð( &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆà—*‘*ØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ó 	
ˆð " !�*ˆØ—‘ Ó1ˆàˆØÓØ�{‰{×'Ñ'Ò/Ø—?‘? aÔ'Ø/;�D—K‘KÕ,Ø—_‘_ qÔ(¨f¯l©l¼e¿j¹jÔ.HÈFÏLÉLÔ\a×\eÑ\eÔLeØ/L�D—K‘KÕ,à/K�D—K‘KÔ,à�{‰{×'Ñ'¨<Ô7Ü"›9�Ø—?‘? aÔ'Ù# F§N¡NÓ$4°f·n±nÓ6FÓG‘Dá# FÓ3‘DØ—‘×)Ñ)Ð-JÔJÜ+Ó-�Ù §¡¨B°·±Ó @À&Ç+Á+ÈbÃ/ÓR‘Ø—‘×)Ñ)Ð-IÔIÜ,Ó.�Ù Ó/�ßØ�Y ¨¥Õ,ˆFØ)-Ò)9�T�G˜fÕ$ÐE¸vÐEä'ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
rM   )rœ  r%  rš  rŠ  ©
rl   rm   rn   ro   r,   r   re   rq   rr   rs   rt   s   @@rK   r˜  r˜  8  s,   ù‡ € õð ÷A
ñ A
ó ÷A
ð A
rM   r˜  c                   óR   a a€ ] tR tRt oV 3R lt]RV3R lR ll4       tRtVtV ;t	# )ÚIBertForMultipleChoiceiŽ  c                óü   <€ \         SV `  V4       \        V4      V n        \        P
                  ! VP                  4      V n        \        P                  ! VP                  ^4      V n
        V P                  4        R# )r)   N)r+   r,   rM  r%  r   rD   rE   rF   r  r3   rœ  rQ  rG   s   &&€rK   r,   ÚIBertForMultipleChoice.__init__�  sV   ø€ Ü‰Ñ˜Ô ä Ó'ˆŒ
Ü—z’z &×"<Ñ"<Ó=ˆŒÜŸ)š) F×$6Ñ$6¸Ó:ˆŒð 	�‰ÖrM   c                ó€  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          R	S[R,          R
S[R,          RS[S[S[ P                  ,          ,          /
# )rE  r[   Nr\   r›   r~  r=   r]   rœ   r  r  r]  )r9   r^  r_  r`  r   r  )rF  ru   s   "€rK   rG  Ú#IBertForMultipleChoice.__annotate__›  sÙ   ø€ ÷ V
ñ V
á×#Ñ# dÕ*ðV
ñ ×(Ñ(¨4Õ/ðV
ñ ×)Ñ)¨DÕ0ð	V
ñ
 × Ñ  4Õ'ðV
ñ ×&Ñ&¨Õ-ðV
ñ ×(Ñ(¨4Õ/ðV
ñ   $�;ðV
ñ # T�kðV
ñ ˜D•[ðV
ñ 
#¡U©5×+<Ñ+<Õ%=Õ	=ñV
rM   c
                óª  € V	e   T	MV P                   P                  p	Ve   VP                  ^,          MVP                  ^,          pVe"   VP                  RVP	                  R4      4      MRpVe"   VP                  RVP	                  R4      4      MRpVe"   VP                  RVP	                  R4      4      MRpVe"   VP                  RVP	                  R4      4      MRpVe2   VP                  RVP	                  R4      VP	                  R4      4      MRpV P                  VVVVVVVV	R7      pV^,          pV P                  V4      pV P                  V4      pVP                  RV4      pRpVe   \        4       pV! VV4      pV	'       g"   V3VR,          ,           pVe   V3V,           # T# \        VVVP                  VP                  R7      # )a›  
input_ids (`torch.LongTensor` of shape `(batch_size, num_choices, sequence_length)`):
    Indices of input sequence tokens in the vocabulary.

    Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and
    [`PreTrainedTokenizer.__call__`] for details.

    [What are input IDs?](../glossary#input-ids)
token_type_ids (`torch.LongTensor` of shape `(batch_size, num_choices, sequence_length)`, *optional*):
    Segment token indices to indicate first and second portions of the inputs. Indices are selected in `[0,
    1]`:

    - 0 corresponds to a *sentence A* token,
    - 1 corresponds to a *sentence B* token.

    [What are token type IDs?](../glossary#token-type-ids)
labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
    Labels for computing the multiple choice classification loss. Indices should be in `[0, ...,
    num_choices-1]` where `num_choices` is the size of the second dimension of the input tensors. (See
    `input_ids` above)
position_ids (`torch.LongTensor` of shape `(batch_size, num_choices, sequence_length)`, *optional*):
    Indices of positions of each input sequence tokens in the position embeddings. Selected in the range `[0,
    config.max_position_embeddings - 1]`.

    [What are position IDs?](../glossary#position-ids)
inputs_embeds (`torch.FloatTensor` of shape `(batch_size, num_choices, sequence_length, hidden_size)`, *optional*):
    Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. This
    is useful if you want more control over how to convert `input_ids` indices into associated vectors than the
    model's internal embedding lookup matrix.
N)r=   r\   r›   r]   rœ   r  r  r‚  rƒ  r*   r�   )rI   r  r‘   r’   rX   r%  rF   rœ  r   r   r™   r
  )rH   r[   r\   r›   r~  r=   r]   rœ   r  r  rf  Únum_choicesÚflat_input_idsÚflat_position_idsÚflat_token_type_idsÚflat_attention_maskÚflat_inputs_embedsr²   r!  r…  Úreshaped_logitsr„  rˆ  rÌ   s   &&&&&&&&&&,             rK   re   ÚIBertForMultipleChoice.forwardš  sÜ  € ðX &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆØ,5Ò,A�i—o‘o aÖ(À}×GZÑGZÐ[\ÕG]ˆàCLÒCX˜Ÿ™¨¨I¯N©N¸2Ó,>Ô?Ð^bˆØLXÒLd˜L×-Ñ-¨b°,×2CÑ2CÀBÓ2GÔHÐjnÐØR`ÒRl˜n×1Ñ1°"°n×6IÑ6IÈ"Ó6MÔNÐrvÐØR`ÒRl˜n×1Ñ1°"°n×6IÑ6IÈ"Ó6MÔNÐrvÐð Ò(ð ×Ñ˜r =×#5Ñ#5°bÓ#9¸=×;MÑ;MÈbÓ;QÔRàð 	ð —*‘*ØØ*Ø.Ø.Ø,Ø/Ø!5Ø#ð ó 	
ˆð   �
ˆàŸ™ ]Ó3ˆØ—‘ Ó/ˆØ Ÿ+™+ b¨+Ó6ˆàˆØÒÜ'Ó)ˆHÙ˜O¨VÓ4ˆDçØ%Ð'¨'°"­+Õ5ˆFØ)-Ò)9�T�G˜fÕ$ÐE¸vÐEä(ØØ"Ø!×/Ñ/Ø×)Ñ)ô	
ð 	
rM   )rœ  rF   r%  rŠ  r¨  rt   s   @@rK   rª  rª  Ž  s,   ù‡ € õð ÷V
ñ V
ó ÷V
ð V
rM   rª  c                   óR   a a€ ] tR tRt oV 3R lt]RV3R lR ll4       tRtVtV ;t	# )ÚIBertForTokenClassificationiô  c                ó6  <€ \         SV `  V4       VP                  V n        \        VR R7      V n        \
        P                  ! VP                  4      V n        \
        P                  ! VP                  VP                  4      V n        V P                  4        R# rq  )r+   r,   rš  rM  r%  r   rD   rE   rF   r  r3   rœ  rQ  rG   s   &&€rK   r,   Ú$IBertForTokenClassification.__init__ö  sk   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒä ¸%Ô@ˆŒ
Ü—z’z &×"<Ñ"<Ó=ˆŒÜŸ)š) F×$6Ñ$6¸×8IÑ8IÓJˆŒð 	�‰ÖrM   c                ó€  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          R	S[R,          R
S[R,          RS[S[S[ P                  ,          ,          /
# r}  )r9   r^  r_  r`  r   r  )rF  ru   s   "€rK   rG  Ú(IBertForTokenClassification.__annotate__  sÍ   ø€ ÷ 1
ñ 1
á×#Ñ# dÕ*ð1
ñ ×)Ñ)¨DÕ0ð1
ñ ×(Ñ(¨4Õ/ð	1
ñ
 ×&Ñ&¨Õ-ð1
ñ ×(Ñ(¨4Õ/ð1
ñ × Ñ  4Õ'ð1
ñ   $�;ð1
ñ # T�kð1
ñ ˜D•[ð1
ñ 
¡¡u×'8Ñ'8Õ!9Õ	9ñ1
rM   c
                óÞ  € V	e   T	MV P                   P                  p	V P                  VVVVVVVV	R7      pV^ ,          pV P                  V4      pV P	                  V4      pRpVe=   \        4       pV! VP                  RV P                  4      VP                  R4      4      pV	'       g"   V3VR,          ,           pVe   V3V,           # T# \        VVVP                  VP                  R7      # )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*   )rI   r  r%  rF   rœ  r   r’   rš  r   r™   r
  r¦  s   &&&&&&&&&&,      rK   re   Ú#IBertForTokenClassification.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ä$ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
rM   )rœ  rF   r%  rš  rŠ  r¨  rt   s   @@rK   r¹  r¹  ô  s(   ù‡ € õ	ð ÷1
ñ 1
ó ÷1
ð 1
rM   r¹  c                   ó<   a a€ ] tR tRt oRtV 3R ltR tRtVtV ;t	# )r›  i6  z-Head for sentence-level classification tasks.c                ó.  <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        P                  ! VP                  4      V n        \        P                  ! VP                  VP                  4      V n
        R # rË   )r+   r,   r   r  r3   r»   rD   rE   rF   rš  Úout_projrG   s   &&€rK   r,   Ú IBertClassificationHead.__init__9  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
Ü—z’z &×"<Ñ"<Ó=ˆŒÜŸ	š	 &×"4Ñ"4°f×6GÑ6GÓHˆŽrM   c                óÌ   € VR,          pV P                  V4      pV P                  V4      p\        P                  ! V4      pV P                  V4      pV P	                  V4      pV# )r  )r  rk   r  )rF   r»   r9   ÚtanhrÂ  )rH   r’  rf  r™   s   &&, rK   re   ÚIBertClassificationHead.forward?  sX   € Ø  Õ)ˆØŸ™ ]Ó3ˆØŸ
™
 =Ó1ˆÜŸ
š
 =Ó1ˆØŸ™ ]Ó3ˆØŸ™ mÓ4ˆØÐrM   )r»   rF   rÂ  r•  rt   s   @@rK   r›  r›  6  s   ù‡ € Ù7õI÷ò rM   r›  c                   óR   a a€ ] tR tRt oV 3R lt]RV3R lR ll4       tRtVtV ;t	# )ÚIBertForQuestionAnsweringiI  c                óì   <€ \         SV `  V4       VP                  V n        \        VR R7      V n        \
        P                  ! VP                  VP                  4      V n        V P                  4        R# rq  )
r+   r,   rš  rM  r%  r   r  r3   Ú
qa_outputsrQ  rG   s   &&€rK   r,   Ú"IBertForQuestionAnswering.__init__K  sU   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒä ¸%Ô@ˆŒ
ÜŸ)š) F×$6Ñ$6¸×8IÑ8IÓJˆŒð 	�‰ÖrM   c                ó¨  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          R	S[R,          R
S[R,          RS[R,          RS[S[S[ P                  ,          ,          /# )rE  r[   Nr›   r\   r=   r]   Ústart_positionsÚend_positionsrœ   r  r  r]  )r9   r^  r_  r`  r   r  )rF  ru   s   "€rK   rG  Ú&IBertForQuestionAnswering.__annotate__V  sâ   ø€ ÷ =
ñ =
á×#Ñ# dÕ*ð=
ñ ×)Ñ)¨DÕ0ð=
ñ ×(Ñ(¨4Õ/ð	=
ñ
 ×&Ñ&¨Õ-ð=
ñ ×(Ñ(¨4Õ/ð=
ñ ×)Ñ)¨DÕ0ð=
ñ ×'Ñ'¨$Õ.ð=
ñ   $�;ð=
ñ # T�kð=
ñ ˜D•[ð=
ñ 
&©©e×.?Ñ.?Õ(@Õ	@ñ=
rM   c                óx  € V
e   T
MV P                   P                  p
V P                  VVVVVVV	V
R7      pV^ ,          pV P                  V4      pVP	                  ^RR7      w  ppVP                  R4      P                  4       pVP                  R4      P                  4       pR pVeÅ   VeÁ   \        VP                  4       4      ^8”  d   VP                  R4      p\        VP                  4       4      ^8”  d   VP                  R4      pVP                  ^4      pVP                  ^ V4      pVP                  ^ V4      p\        VR7      pV! Wö4      pV! VV4      pVV,           ^,          pV
'       g#   VV3VR,          ,           pVe   V3V,           # T# \        VVVVP                  VP                  R7      # )Nr�  ©Údim)Úignore_indexr‚  )r„  Ústart_logitsÚ
end_logitsr™   r
  r*   )rI   r  r%  rÊ  Úsplitr¥  r˜   ÚlenrX   Úclampr   r   r™   r
  )rH   r[   r›   r\   r=   r]   rÍ  rÎ  rœ   r  r  rf  r²   rl  r…  rÔ  rÕ  Ú
total_lossÚignored_indexrˆ  Ú
start_lossÚend_lossrÌ   s   &&&&&&&&&&&,           rK   re   Ú!IBertForQuestionAnswering.forwardU  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ä+ØØ%Ø!Ø!×/Ñ/Ø×)Ñ)ô
ð 	
rM   )r%  rš  rÊ  )
NNNNNNNNNNr¨  rt   s   @@rK   rÈ  rÈ  I  s(   ù‡ € õð ÷=
ñ =
ó ÷=
ð =
rM   rÈ  c                óØ   € V P                  V4      P                  4       p\        P                  ! V^R7      P	                  V4      V,           V,          pVP                  4       V,           # )a1  
Replace non-padding symbols with their position numbers. Position numbers begin at padding_idx+1. Padding symbols
are ignored. This is modified from fairseq's *utils.make_positions*.

Args:
input_ids (`torch.LongTensor`):
       Indices of input sequence tokens in the vocabulary.

Returns: torch.Tensor
rÑ  )Únerƒ   r9   ÚcumsumÚtype_asrZ   )r[   r   r^   ÚmaskÚincremental_indicess   &&&  rK   rU   rU   –  sW   € ð �<‰<˜Ó$×(Ñ(Ó*€DÜ Ÿ<š<¨°!Ô4×<Ñ<¸TÓBÐE[Õ[Ð_cÕcÐØ×#Ñ#Ó%¨Õ3Ð3rM   )rk   )ro  rª  rÈ  r˜  r¹  rM  r$  )=rp   r•   r9   r   Útorch.nnr   r   r   Ú r   r0  Úactivationsr   Úmasking_utilsr   Úmodeling_outputsr	   r
   r   r   r   r   r   Úmodeling_utilsr   Úutilsr   r   Úconfiguration_ibertr   Úquant_modulesr   r   r   r   r   r   Ú
get_loggerrl   ÚloggerÚModuler   rw   r¸   rÉ   r×   rà   ræ   rú   r  r$  rM  ro  r7  r˜  rª  r¹  r›  rÈ  rU   Ú__all__r  rM   rK   Ú<module>rñ     s  ðñ" ã ã Ý ß AÑ Aå &Ý Ý 6÷÷ ñ õ .ß ,Ý ,ß c× cð 
×	Ò	˜HÓ	%€ôq=�b—i‘iô q=ôh@.˜Ÿ™ô @.ôF,;�b—i‘iô ,;ô^/�R—Y‘Yô /ô8;˜Ÿ	™	ô ;ôD,;�"—)‘)ô ,;ô^59�—‘ô 59ôp6
�2—9‘9ô 6
ôr�"—)‘)ô ð  ô&\˜?ó &\ó ð&\ðR ôg
Ð%ó g
ó ðg
ðT ôG
Ð+ó G
ó ðG
ôT�"—)‘)ô ñ, ðôôM
Ð%9ó M
óðM
ð` ôb
Ð1ó b
ó ðb
ðJ ô>
Ð"6ó >
ó ð>
ôB˜bŸi™iô ð& ôI
Ð 4ó I
ó ðI
ôX4ò"‚rM   