+
    œ°³jÊ¤  ã                   óN  € 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 ^RIHtHtHtHtHt ^R	IHt ^R
IHt ^RIHtHt ^RIHt ]P@                  ! ]!4      t" ! R R]PF                  4      t$ ! R R]PF                  4      t% ! R R]PF                  4      t& ! R R]PF                  4      t' ! R R]PF                  4      t( ! R R]PF                  4      t) ! R R]PF                  4      t* ! R R]4      t+ ! R R]PF                  4      t, ! R R ]PF                  4      t-] ! R! R"]4      4       t.] ! R# R$].4      4       t/]! R%R&7       ! R' R(].4      4       t0] ! R) R*].4      4       t1 ! R+ R,]PF                  4      t2] ! R- R.].4      4       t3. R/Ot4R# )0zPyTorch LiLT model.N)Únn)ÚBCEWithLogitsLossÚCrossEntropyLossÚMSELoss)Úinitialization)ÚACT2FN)Úcreate_bidirectional_mask)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚBaseModelOutputWithPoolingÚQuestionAnsweringModelOutputÚSequenceClassifierOutputÚTokenClassifierOutput)ÚPreTrainedModel)Úapply_chunking_to_forward)Úauto_docstringÚlogging©Ú
LiltConfigc                   óH   a a€ ] tR t^*t oV 3R ltRR ltR tR tRtVt	V ;t
# )ÚLiltTextEmbeddingsc                ó6  <€ \         SV `  4        \        P                  ! VP                  VP
                  VP                  R 7      V n        \        P                  ! VP                  VP
                  4      V n	        \        P                  ! VP                  VP
                  4      V n        \        P                  ! VP
                  VP                  R7      V n        \        P                  ! VP                  4      V n        \        P"                  ! \$        P&                  ! VP                  4      P)                  R4      RR7      V n        VP                  V n        \        P                  ! VP                  VP
                  V P,                  R 7      V n	        R# )©Úpadding_idx©ÚepsF)Ú
persistentN©é   éÿÿÿÿ)ÚsuperÚ__init__r   Ú	EmbeddingÚ
vocab_sizeÚhidden_sizeÚpad_token_idÚword_embeddingsÚmax_position_embeddingsÚposition_embeddingsÚtype_vocab_sizeÚtoken_type_embeddingsÚ	LayerNormÚlayer_norm_epsÚDropoutÚhidden_dropout_probÚdropoutÚBufferÚtorchÚarangeÚexpandÚposition_idsr   ©ÚselfÚconfigÚ	__class__s   &&€Úg/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/lilt/modeling_lilt.pyr!   ÚLiltTextEmbeddings.__init__+   s  ø€ Ü‰ÑÔÜ!Ÿ|š|¨F×,=Ñ,=¸v×?QÑ?QÐ_e×_rÑ_rÔsˆÔÜ#%§<¢<°×0NÑ0NÐPV×PbÑPbÓ#cˆÔ Ü%'§\¢\°&×2HÑ2HÈ&×J\ÑJ\Ó%]ˆÔ"äŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŒô ŸIšI¤e§l¢l°6×3QÑ3QÓ&R×&YÑ&YÐZaÓ&bÐotÔuˆÔð "×.Ñ.ˆÔÜ#%§<¢<Ø×*Ñ*¨F×,>Ñ,>ÈD×L\ÑL\ô$
ˆÖ ó    c                óD  € VfK   Ve6   V P                  WP                  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      pV P                  V4      pWF,           pV P                  V4      pWx,          pV P                  V4      pV P                  V4      pWs3# )N©ÚdtypeÚdevicer   )Ú"create_position_ids_from_input_idsr   Útor?   Ú&create_position_ids_from_inputs_embedsÚsizer1   ÚzerosÚlongr4   r&   r*   r(   r+   r/   )	r6   Ú	input_idsÚtoken_type_idsr4   Úinputs_embedsÚinput_shaper*   Ú
embeddingsr(   s	   &&&&&    r9   ÚforwardÚLiltTextEmbeddings.forward=   s  € ð ÒØÒ$à#×FÑFÀy×RbÑRbÓc×fÑfØ×$Ñ$ó ‘ð  $×JÑJÈ=ÓY�àÒ Ø#Ÿ.™.Ó*‰Kà'×,Ñ,Ó.¨s°Ð3ˆKàÒ!Ü"Ÿ[š[¨¼E¿J¹JÈt×O`ÑO`×OgÑOgÔhˆNàÒ Ø ×0Ñ0°Ó;ˆMØ $× :Ñ :¸>Ó JÐØ"Õ:ˆ
à"×6Ñ6°|ÓDÐØÕ)ˆ
à—^‘^ JÓ/ˆ
Ø—\‘\ *Ó-ˆ
ØÐ'Ð'r;   c                óÊ   € VP                  V4      P                  4       p\        P                  ! V^R7      P	                  V4      V,          pVP                  4       V,           # )zë
Args:
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`.
    x: torch.Tensor x:
Returns: torch.Tensor
©Údim)ÚneÚintr1   ÚcumsumÚtype_asrE   )r6   rF   r   ÚmaskÚincremental_indicess   &&&  r9   r@   Ú5LiltTextEmbeddings.create_position_ids_from_input_idsa   sP   € ð �|‰|˜KÓ(×,Ñ,Ó.ˆÜ$Ÿ|š|¨D°aÔ8×@Ñ@ÀÓFÈ$ÕNÐØ"×'Ñ'Ó)¨KÕ7Ð7r;   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­
Args:
We are provided embeddings directly. We cannot infer which are padded so just generate sequential position ids.
    inputs_embeds: torch.Tensor
Returns: torch.Tensor
Nr=   r   )rC   r1   r2   r   rE   r?   Ú	unsqueezer3   )r6   rH   rI   Úsequence_lengthr4   s   &&   r9   rB   Ú9LiltTextEmbeddings.create_position_ids_from_inputs_embedsn   s~   € ð $×(Ñ(Ó*¨3¨BÐ/ˆØ% a�.ˆä—|’|Ø×Ñ˜qÕ  /×4DÑ4DÕ"DÀqÕ"HÔPU×PZÑPZÐcp×cwÑcwô
ˆð ×%Ñ% aÓ(×/Ñ/°Ó<Ð<r;   )r+   r/   r   r(   r4   r*   r&   )NNNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r!   rK   r@   rB   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r8   Ú__classdict__s   @@r9   r   r   *   s   ù‡ € õ
ô$"(òH8÷=ò =r;   r   c                   ó<   a a€ ] tR t^~t oV 3R ltRR ltRtVtV ;t# )ÚLiltLayoutEmbeddingsc                óê  <€ \         SV `  4        \        P                  ! VP                  VP
                  ^,          4      V n        \        P                  ! VP                  VP
                  ^,          4      V n        \        P                  ! VP                  VP
                  ^,          4      V n        \        P                  ! VP                  VP
                  ^,          4      V n	        VP                  V n        \        P                  ! VP                  VP
                  VP                  ,          V P                  R7      V n        \        P                  ! VP
                  VP
                  VP                  ,          R7      V n        \        P"                  ! VP
                  VP                  ,          VP$                  R7      V n        \        P&                  ! VP(                  4      V n        R# )é   r   )Úin_featuresÚout_featuresr   N)r    r!   r   r"   Úmax_2d_position_embeddingsr$   Úx_position_embeddingsÚy_position_embeddingsÚh_position_embeddingsÚw_position_embeddingsr%   r   r'   Úchannel_shrink_ratioÚbox_position_embeddingsÚLinearÚbox_linear_embeddingsr+   r,   r-   r.   r/   r5   s   &&€r9   r!   ÚLiltLayoutEmbeddings.__init__   s^  ø€ Ü‰ÑÔô &(§\¢\°&×2SÑ2SÐU[×UgÑUgÐklÕUlÓ%mˆÔ"Ü%'§\¢\°&×2SÑ2SÐU[×UgÑUgÐklÕUlÓ%mˆÔ"Ü%'§\¢\°&×2SÑ2SÐU[×UgÑUgÐklÕUlÓ%mˆÔ"Ü%'§\¢\°&×2SÑ2SÐU[×UgÑUgÐklÕUlÓ%mˆÔ"à!×.Ñ.ˆÔÜ')§|¢|Ø×*Ñ*Ø×Ñ &×"=Ñ"=Õ=Ø×(Ñ(ô(
ˆÔ$ô
 &(§Y¢YØ×*Ñ*¸×9KÑ9KÈv×OjÑOjÕ9jô&
ˆÔ"ô Ÿš f×&8Ñ&8¸F×<WÑ<WÕ&WÐ]c×]rÑ]rÔsˆŒÜ—z’z &×"<Ñ"<Ó=ˆŽr;   c                ór  €  V P                  VR,          4      pV P                  VR,          4      pV P                  VR,          4      pV P                  VR,          4      pT P                  TR,          TR,          ,
          4      pT P	                  TR,          TR,          ,
          4      p	\
        P                  ! TTTTTT	.RR7      p
T P                  T
4      p
T P                  T4      pY«,           p
T P                  T
4      p
T P                  T
4      p
T
#   \         d   p\        R4      ThRp?ii ; i)	ºNNNz;The `bbox` coordinate values should be within 0-1000 range.NrN   )ru   ru   é    )ru   ru   r   )ru   ru   é   )ru   ru   é   r   )rk   rl   Ú
IndexErrorrm   rn   r1   Úcatrr   rp   r+   r/   )r6   Úbboxr4   Úleft_position_embeddingsÚupper_position_embeddingsÚright_position_embeddingsÚlower_position_embeddingsÚerm   rn   Úspatial_position_embeddingsrp   s   &&&         r9   rK   ÚLiltLayoutEmbeddings.forward”   s>  € ð	cØ'+×'AÑ'AÀ$ÀwÅ-Ó'PÐ$Ø(,×(BÑ(BÀ4ÈÅ=Ó(QÐ%Ø(,×(BÑ(BÀ4ÈÅ=Ó(QÐ%Ø(,×(BÑ(BÀ4ÈÅ=Ó(QÐ%ð !%× :Ñ :¸4À½=È4ÐPWÍ=Õ;XÓ YÐØ $× :Ñ :¸4À½=È4ÐPWÍ=Õ;XÓ YÐä&+§i¢ià(Ø)Ø)Ø)Ø%Ø%ðð ô
'
Ð#ð '+×&@Ñ&@ÐA\Ó&]Ð#Ø"&×">Ñ">¸|Ó"LÐà&AÕ&[Ð#à&*§n¡nÐ5PÓ&QÐ#Ø&*§l¡lÐ3NÓ&OÐ#à*Ð*øô3 ô 	cÜÐZÓ[ÐabÐbûð	cús   ‚A D ÄD6Ä%D1Ä1D6)	r+   rr   rp   r/   rm   r   rn   rk   rl   )NN©	r[   r\   r]   r^   r!   rK   r_   r`   ra   rb   s   @@r9   re   re   ~   s   ù‡ € õ>÷*+ô +r;   re   c                   óJ   a a€ ] tR t^¶t oRV 3R lltRR ltRR ltRtVtV ;t	# )ÚLiltSelfAttentionc                ó  <€ \         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P                  VP                  ,          4      V n        V P                  V P                  ,          V n        \        P                  ! VP                  V P                  4      V n        \        P                  ! VP                  V P                  4      V n        \        P                  ! VP                  V P                  4      V n        \        P                  ! VP                  VP                  ,          V P                  VP                  ,          4      V n        \        P                  ! VP                  VP                  ,          V P                  VP                  ,          4      V n        \        P                  ! VP                  VP                  ,          V P                  VP                  ,          4      V n        \        P$                  ! VP&                  4      V n        VP                  V n        W n        R# )rv   Úembedding_sizezThe hidden size (z6) is not a multiple of the number of attention heads (Ú)N)r    r!   r$   Únum_attention_headsÚhasattrÚ
ValueErrorrQ   Úattention_head_sizeÚall_head_sizer   rq   ÚqueryÚkeyÚvaluero   Úlayout_queryÚ
layout_keyÚlayout_valuer-   Úattention_probs_dropout_probr/   Ú	layer_idx)r6   r7   r•   r8   s   &&&€r9   r!   ÚLiltSelfAttention.__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ˆÔä—Y’Y˜v×1Ñ1°4×3EÑ3EÓFˆŒ
Ü—9’9˜V×/Ñ/°×1CÑ1CÓDˆŒÜ—Y’Y˜v×1Ñ1°4×3EÑ3EÓFˆŒ
äŸIšIØ×Ñ &×"=Ñ"=Õ=¸t×?QÑ?QÐU[×UpÑUpÕ?pó
ˆÔô Ÿ)š)Ø×Ñ &×"=Ñ"=Õ=¸t×?QÑ?QÐU[×UpÑUpÕ?pó
ˆŒô ŸIšIØ×Ñ &×"=Ñ"=Õ=¸t×?QÑ?QÐU[×UpÑUpÕ?pó
ˆÔô —z’z &×"EÑ"EÓFˆŒà$*×$?Ñ$?ˆÔ!Ø"Žr;   c                ó¸   € VP                  4       R R V P                  V P                  V,          3,           pVP                  ! V!  pVP	                  ^ ^^^4      # )Nr   )rC   r‰   rŒ   ÚviewÚpermute)r6   ÚxÚrÚnew_x_shapes   &&& r9   Útranspose_for_scoresÚ&LiltSelfAttention.transpose_for_scoresÖ   sR   € Ø—f‘f“h˜s �m t×'?Ñ'?À×AYÑAYÐ]^ÕA^Ð&_Õ_ˆØ�FŠF�KÑ ˆØ�y‰y˜˜A˜q !Ó$Ð$r;   c                ó6  € V P                  V P                  V4      V P                  R 7      pV P                  V P                  V4      V P                  R 7      pV P                  V P	                  V4      V P                  R 7      pV P                  V4      pV P                  V P                  V4      4      p	V P                  V P                  V4      4      p
V P                  V4      p\        P                  ! W¹P                  RR4      4      p\        P                  ! WvP                  RR4      4      pV\        P                  ! V P                  4      ,          pV\        P                  ! V P                  V P                  ,          4      ,          pWï,           pWþ,           pVe	   WÓ,           p\        P                  ! RR7      ! V4      pV P!                  V4      p\        P                  ! VV4      pVP#                  ^ ^^^4      P%                  4       pVP'                  4       RR V P(                  V P                  ,          3,           pVP*                  ! V!  pVe	   WÃ,           p\        P                  ! RR7      ! V4      pV P!                  V4      p\        P                  ! VV
4      pVP#                  ^ ^^^4      P%                  4       pVP'                  4       RR V P(                  3,           pVP*                  ! V!  pVV3pV'       d   VV3,           pV# ))r›   NrN   r   éþÿÿÿ)r�   r“   ro   r’   r‘   rŽ   r�   r�   r1   ÚmatmulÚ	transposeÚmathÚsqrtrŒ   r   ÚSoftmaxr/   r™   Ú
contiguousrC   r�   r˜   )r6   Úhidden_statesÚlayout_inputsÚattention_maskÚoutput_attentionsÚlayout_value_layerÚlayout_key_layerÚlayout_query_layerÚmixed_query_layerÚ	key_layerÚvalue_layerÚquery_layerÚattention_scoresÚlayout_attention_scoresÚtmp_attention_scoresÚtmp_layout_attention_scoresÚlayout_attention_probsÚlayout_context_layerÚnew_context_layer_shapeÚattention_probsÚcontext_layerÚoutputss   &&&&&                 r9   rK   ÚLiltSelfAttention.forwardÛ   sÆ  € ð "×6Ñ6°t×7HÑ7HÈÓ7WÐ[_×[tÑ[tÐ6ÓuÐØ×4Ñ4°T·_±_À]Ó5SÐW[×WpÑWpÐ4ÓqÐØ!×6Ñ6°t×7HÑ7HÈÓ7WÐ[_×[tÑ[tÐ6ÓuÐà ŸJ™J }Ó5Ðà×-Ñ-¨d¯h©h°}Ó.EÓFˆ	Ø×/Ñ/°·
±
¸=Ó0IÓJˆØ×/Ñ/Ð0AÓBˆä Ÿ<š<¨×5HÑ5HÈÈRÓ5PÓQÐÜ"'§,¢,Ð/A×C]ÑC]Ð^`ÐbdÓCeÓ"fÐà/´$·)²)¸D×<TÑ<TÓ2UÕUÐØ&=ÄÇ	Â	Ø×$Ñ$¨×(AÑ(AÕAóA
õ '
Ð#ð 0ÕMÐØ"=Õ"TÐàÒ%à&=Õ&NÐ#ô "$§¢°Õ!3Ð4KÓ!LÐð "&§¡Ð.DÓ!EÐä$Ÿ|š|Ð,BÐDVÓWÐà3×;Ñ;¸A¸qÀ!ÀQÓG×RÑRÓTÐØ"6×";Ñ";Ó"=¸c¸rÐ"BÀd×FXÑFXÐ\`×\uÑ\uÕFuÐEwÕ"wÐØ3×8Ò8Ð:QÑRÐàÒ%à/Õ@Ðô Ÿ*š*¨Õ,Ð-=Ó>ˆð Ÿ,™, Ó7ˆäŸš _°kÓBˆà%×-Ñ-¨a°°A°qÓ9×DÑDÓFˆØ"/×"4Ñ"4Ó"6°s¸Ð";¸t×?QÑ?QÐ>SÕ"SÐØ%×*Ò*Ð,CÑDˆà Ð"6Ð7ˆßØ Ð 2Õ2ˆGàˆr;   )r�   rŒ   ro   r/   r�   r•   r’   r‘   r“   r‰   rŽ   r�   ©N)r   ©NF)
r[   r\   r]   r^   r!   r�   rK   r_   r`   ra   rb   s   @@r9   r…   r…   ¶   s   ù‡ € ÷#ô>%÷
Aô Ar;   r…   c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚLiltSelfOutputi   c                ó0  <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        P                  ! VP                  VP                  R 7      V n        \        P                  ! VP                  4      V n
        R# ©r   N)r    r!   r   rq   r$   Údenser+   r,   r-   r.   r/   r5   s   &&€r9   r!   ÚLiltSelfOutput.__init__!  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŽr;   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# ©rw   r§   Úinput_tensorÚreturn©r1   ÚTensor)Úformatrc   s   "€r9   Ú__annotate__ÚLiltSelfOutput.__annotate__'  ó1   ø€ ÷ ñ ¡U§\¡\ð ÁÇÁð ÑRW×R^ÑR^ñ r;   c                óx   € V P                  V4      pV P                  V4      pV P                  W,           4      pV# r½   ©rÃ   r/   r+   ©r6   r§   rÇ   s   &&&r9   rK   ÚLiltSelfOutput.forward'  ó5   € ØŸ
™
 =Ó1ˆØŸ™ ]Ó3ˆØŸ™ }Õ'CÓDˆØÐr;   ©r+   rÃ   r/   rƒ   rb   s   @@r9   rÀ   rÀ      ó   ù‡ € õ>÷÷ ð r;   rÀ   c                   óL   a a€ ] tR tRt oRV 3R lltRV3R lR lltRtVtV ;t# )ÚLiltAttentioni.  c                óî   <€ \         SV `  4        \        WR 7      V n        \	        V4      V n        VP                  pVP                  VP                  ,          Vn        \	        V4      V n        W1n        R# )©r•   N)	r    r!   r…   r6   rÀ   Úoutputr$   ro   Úlayout_output)r6   r7   r•   Úori_hidden_sizer8   s   &&& €r9   r!   ÚLiltAttention.__init__/  s]   ø€ Ü‰ÑÔÜ% fÔBˆŒ	Ü$ VÓ,ˆŒà ×,Ñ,ˆØ#×/Ñ/°6×3NÑ3NÕNˆÔÜ+¨FÓ3ˆÔØ,Ör;   c                ó´   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  R,          RS[R,          RS[S[ P                  ,          /# ©rw   r§   r¨   r©   Nrª   rÈ   ©r1   rÊ   ÚFloatTensorÚboolÚtuple)rË   rc   s   "€r9   rÌ   ÚLiltAttention.__annotate__9  s]   ø€ ÷ ñ á—|‘|ðñ —|‘|ðñ ×)Ñ)¨DÕ0ð	ñ
   $�;ðñ 
‰u�|‰|Õ	ñr;   c                ó´   € V P                  VVVV4      pV P                  V^ ,          V4      pV P                  V^,          V4      pWg3VR,          ,           pV# )rv   ºrw   NN)r6   rÚ   rÛ   )	r6   r§   r¨   r©   rª   Úself_outputsÚattention_outputÚlayout_attention_outputr»   s	   &&&&&    r9   rK   ÚLiltAttention.forward9  sc   € ð —y‘yØØØØó	
ˆð  Ÿ;™; |°A¥¸ÓFÐØ"&×"4Ñ"4°\À!µ_ÀmÓ"TÐØ#Ð=ÀÈRÕ@PÕPˆØˆr;   )rÛ   rÚ   r6   r½   r¾   rƒ   rb   s   @@r9   r×   r×   .  s   ù‡ € ÷-÷÷ ò r;   r×   c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚLiltIntermediateiM  c                ó"  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        VP                  \        4      '       d   \        VP                  ,          V n        R # VP                  V n        R # r½   )r    r!   r   rq   r$   Úintermediate_sizerÃ   Ú
isinstanceÚ
hidden_actÚstrr   Úintermediate_act_fnr5   s   &&€r9   r!   ÚLiltIntermediate.__init__N  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3KÑ3KÓLˆŒ
Ü�f×'Ñ'¬×-Ò-Ü'-¨f×.?Ñ.?Õ'@ˆDÖ$à'-×'8Ñ'8ˆDÖ$r;   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©rw   r§   rÈ   rÉ   )rË   rc   s   "€r9   rÌ   ÚLiltIntermediate.__annotate__V  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r;   c                óJ   € V P                  V4      pV P                  V4      pV# r½   ©rÃ   rò   )r6   r§   s   &&r9   rK   ÚLiltIntermediate.forwardV  s&   € ØŸ
™
 =Ó1ˆØ×0Ñ0°Ó?ˆØÐr;   rø   rƒ   rb   s   @@r9   rì   rì   M  s   ù‡ € õ9÷÷ ð r;   rì   c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )Ú
LiltOutputi]  c                ó0  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        P                  ! VP
                  VP                  R 7      V n        \        P                  ! VP                  4      V n        R# rÂ   )r    r!   r   rq   rî   r$   rÃ   r+   r,   r-   r.   r/   r5   s   &&€r9   r!   ÚLiltOutput.__init__^  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×7Ñ7¸×9KÑ9KÓLˆŒ
ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŽr;   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# rÆ   rÉ   )rË   rc   s   "€r9   rÌ   ÚLiltOutput.__annotate__d  rÎ   r;   c                óx   € V P                  V4      pV P                  V4      pV P                  W,           4      pV# r½   rÐ   rÑ   s   &&&r9   rK   ÚLiltOutput.forwardd  rÓ   r;   rÔ   rƒ   rb   s   @@r9   rû   rû   ]  rÕ   r;   rû   c                   óX   a a€ ] tR tRt oRV 3R lltR	V3R lR lltR tR tRtVt	V ;t
# )
Ú	LiltLayerik  c                óÆ  <€ \         SV `  4        VP                  V n        ^V n        \	        WR7      V n        \        V4      V n        \        V4      V n	        VP                  pVP                  pVP                  VP                  ,          Vn
        VP                  VP                  ,          Vn        \        V4      V n        \        V4      V n        W1n
        WAn        R# )r   rÙ   N)r    r!   Úchunk_size_feed_forwardÚseq_len_dimr×   Ú	attentionrì   Úintermediaterû   rÚ   r$   rî   ro   Úlayout_intermediaterÛ   )r6   r7   r•   rÜ   Úori_intermediate_sizer8   s   &&&  €r9   r!   ÚLiltLayer.__init__l  s¸   ø€ Ü‰ÑÔØ'-×'EÑ'EˆÔ$ØˆÔÜ& vÔCˆŒÜ,¨VÓ4ˆÔÜ  Ó(ˆŒà ×,Ñ,ˆØ &× 8Ñ 8ÐØ#×/Ñ/°6×3NÑ3NÕNˆÔØ#)×#;Ñ#;¸v×?ZÑ?ZÕ#ZˆÔ Ü#3°FÓ#;ˆÔ Ü'¨Ó/ˆÔØ,ÔØ#8Ö r;   c                ó´   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  R,          RS[R,          RS[S[ P                  ,          /# rß   rà   )rË   rc   s   "€r9   rÌ   ÚLiltLayer.__annotate__}  s]   ø€ ÷ ñ á—|‘|ðñ —|‘|ðñ ×)Ñ)¨DÕ0ð	ñ
   $�;ðñ 
‰u�|‰|Õ	ñr;   c                ó*  € V P                  VVVVR 7      pV^ ,          pV^,          pVR,          p\        V P                  V P                  V P                  V4      p	\        V P
                  V P                  V P                  V4      p
Wš3V,           pV# ))rª   ræ   )r  r   Úfeed_forward_chunkr  r  Úlayout_feed_forward_chunk)r6   r§   r¨   r©   rª   Úself_attention_outputsrè   ré   r»   Úlayer_outputÚlayout_layer_outputs   &&&&&      r9   rK   ÚLiltLayer.forward}  s©   € ð "&§¡ØØØØ/ð	 "0ó "
Ðð 2°!Õ4ÐØ"8¸Õ";Ðà(¨Õ,ˆä0Ø×#Ñ# T×%AÑ%AÀ4×CSÑCSÐUeó
ˆô 8Ø×*Ñ*¨D×,HÑ,HÈ$×JZÑJZÐ\só
Ðð  Ð5¸Õ?ˆàˆr;   c                óJ   € V P                  V4      pV P                  W!4      pV# r½   )r  rÚ   ©r6   rè   Úintermediate_outputr  s   &&  r9   r  ÚLiltLayer.feed_forward_chunkš  s)   € Ø"×/Ñ/Ð0@ÓAÐØ—{‘{Ð#6ÓIˆØÐr;   c                óJ   € V P                  V4      pV P                  W!4      pV# r½   )r	  rÛ   r  s   &&  r9   r  Ú#LiltLayer.layout_feed_forward_chunkŸ  s+   € Ø"×6Ñ6Ð7GÓHÐØ×)Ñ)Ð*=ÓPˆØÐr;   )r  r  r  r	  rÛ   rÚ   r  r½   r¾   )r[   r\   r]   r^   r!   rK   r  r  r_   r`   ra   rb   s   @@r9   r  r  k  s#   ù‡ € ÷9÷"ò ò:÷
ò r;   r  c                   óH   a a€ ] tR tRt oV 3R ltRV3R lR lltRtVtV ;t# )ÚLiltEncoderi¥  c                óÈ   <€ \         SV `  4        W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!   r7   r   Ú
ModuleListÚrangeÚnum_hidden_layersr  Úlayer)r6   r7   Ú_r8   s   && €r9   r!   ÚLiltEncoder.__init__¦  sG   ø€ Ü‰ÑÔØŒÜ—]’]¼uÀV×E]ÑE]Ô?^Ó#_Ñ?^¸!¤I¨fÖ$5Ñ?^Ñ#_Ó`ˆŽ
ùÒ#_s   ½Ac                óì   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  R,          RS[R,          RS[R,          RS[R,          RS[S[ P                  ,          S[,          /# )	rw   r§   r¨   r©   Nrª   Úoutput_hidden_statesÚreturn_dictrÈ   )r1   rÊ   rá   râ   rã   r
   )rË   rc   s   "€r9   rÌ   ÚLiltEncoder.__annotate__«  s~   ø€ ÷ .
ñ .
á—|‘|ð.
ñ —|‘|ð.
ñ ×)Ñ)¨DÕ0ð	.
ñ
   $�;ð.
ñ # T�kð.
ñ ˜D•[ð.
ñ 
‰u�|‰|Õ	™Õ	.ñ.
r;   c                ó°  € V'       d   RMR pV'       d   RMR p\        V P                  4       FM  w  ršV'       d
   Wq3,           pV
! VVVV4      pV^ ,          pV^,          pV'       g   K=  W‹^,          3,           pKO  	  V'       d
   Wq3,           pV'       g3   \        ;QJ d    . R VVV3 4       F  NK  	  5# ! R VVV3 4       4      # \        VVVR7      # )Nc              3   ó2   "  € T F  pVf   K	  Vx € K  	  R # 5ir½   © )Ú.0Úvs   & r9   Ú	<genexpr>Ú&LiltEncoder.forward.<locals>.<genexpr>Ì  s"   é € ð ñ�Að
 ÷ ’óùs   ‚�
)Úlast_hidden_stater§   Ú
attentionsr*  )Ú	enumerater!  rã   r
   )r6   r§   r¨   r©   rª   r%  r&  Úall_hidden_statesÚall_self_attentionsÚiÚlayer_moduleÚlayer_outputss   &&&&&&&     r9   rK   ÚLiltEncoder.forward«  s÷   € ÷ #7™B¸DÐß$5™b¸4Ðä(¨¯©Ö4‰OˆAß#Ø$5Ð8HÕ$HÐ!á(ØØØØ!ó	ˆMð *¨!Õ,ˆMØ)¨!Õ,ˆMç Ñ Ø&9È1Õ=MÐ<OÕ&OÒ#ñ  5÷"  Ø 1Ð4DÕ DÐçß”5ñ ð "Ø%Ø'ñó—5ð �5ñ ð "Ø%Ø'ñóó ð ô Ø+Ø+Ø*ô
ð 	
r;   )r7   r!  )NFFTrƒ   rb   s   @@r9   r  r  ¥  s   ù‡ € õa÷
.
÷ .
ò .
r;   r  c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )Ú
LiltPooleriÝ  c                ó¸   <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        P                  ! 4       V n        R # r½   )r    r!   r   rq   r$   rÃ   ÚTanhÚ
activationr5   s   &&€r9   r!   ÚLiltPooler.__init__Þ  s9   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸ'š'›)ˆŽr;   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rõ   rÉ   )rË   rc   s   "€r9   rÌ   ÚLiltPooler.__annotate__ã  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r;   c                ó\   € VR,          pV P                  V4      pV P                  V4      pV# )ru   )ru   rv   )rÃ   r<  )r6   r§   Úfirst_token_tensorÚpooled_outputs   &&  r9   rK   ÚLiltPooler.forwardã  s2   € ð +¨4Õ0ÐØŸ
™
Ð#5Ó6ˆØŸ™¨Ó6ˆØÐr;   )r<  rÃ   rƒ   rb   s   @@r9   r9  r9  Ý  s   ù‡ € õ$÷
÷ ð r;   r9  c                   óJ   a a€ ] tR tRt oRtRt. tV 3R ltV3R ltRt	Vt
V ;t# )ÚLiltPreTrainedModeliì  ÚliltTc                ó  <€ \         SV `  V4       \        V\        4      '       db   \        P
                  ! VP                  \        P                  ! VP                  P                  R,          4      P                  R4      4       R# R# )r   Nr   r   )r    Ú_init_weightsrï   r   ÚinitÚcopy_r4   r1   r2   Úshaper3   )r6   Úmoduler8   s   &&€r9   rH  Ú!LiltPreTrainedModel._init_weightsó  s^   ø€ Ü‰Ñ˜fÔ%Ü�fÔ0×1Ò1Ü�JŠJ�v×*Ñ*¬E¯LªL¸×9LÑ9L×9RÑ9RÐSUÕ9VÓ,W×,^Ñ,^Ð_fÓ,gÖhñ 2r;   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )rw   r7   r   )rË   rc   s   "€r9   rÌ   Ú LiltPreTrainedModel.__annotate__ì  s   ø‡ ‚ áÑò r;   r*  )r[   r\   r]   r^   Úbase_model_prefixÚsupports_gradient_checkpointingÚ_no_split_modulesrH  Ú__annotate_func__r_   r`   ra   rb   s   @@r9   rE  rE  ì  s&   ù‡ € ð ÐØ&*Ð#ØÐõi÷ … r;   rE  c                   ób   a a€ ] tR tRt o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# )
Ú	LiltModeliù  c                óæ   <€ \         SV `  V4       Wn        \        V4      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!   r7   r   rJ   re   Úlayout_embeddingsr  Úencoderr9  ÚpoolerÚ	post_init)r6   r7   Úadd_pooling_layerr8   s   &&&€r9   r!   ÚLiltModel.__init__û  sX   ø€ ô
 	‰Ñ˜Ô ØŒä,¨VÓ4ˆŒÜ!5°fÓ!=ˆÔÜ" 6Ó*ˆŒç,=”j Ô(À4ˆŒð 	�‰Ör;   c                ó.   € V P                   P                  # r½   ©rJ   r&   )r6   s   &r9   Úget_input_embeddingsÚLiltModel.get_input_embeddings  s   € Ø�‰×.Ñ.Ð.r;   c                ó&   € WP                   n        R # r½   r^  )r6   r�   s   &&r9   Úset_input_embeddingsÚLiltModel.set_input_embeddings  s   € Ø*/�‰Ö'r;   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[ P                  ,          S[,          /
# )rw   rF   Nr{   r©   rG   r4   rH   rª   r%  r&  rÈ   )r1   rÊ   râ   rã   r   )rË   rc   s   "€r9   rÌ   ÚLiltModel.__annotate__  sÌ   ø€ ÷ j
ñ j
á—<‘< $Õ&ðj
ñ �l‰l˜TÕ!ðj
ñ Ÿ™ tÕ+ð	j
ñ
 Ÿ™ tÕ+ðj
ñ —l‘l TÕ)ðj
ñ —|‘| dÕ*ðj
ñ   $�;ðj
ñ # T�kðj
ñ ˜D•[ðj
ñ 
‰u�|‰|Õ	Ñ9Õ	9ñj
r;   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                  ! VR,           \        P                  VR7      pVf   \        P                  ! WÍ3VR7      pVfy   \        V P                  R4      '       d6   V P                  P                  RRV13,          pVP                  WÍ4      pTpM'\        P                  ! V\        P                  VR7      pV P                  VVVVR7      w  pp\!        V P                   VVR	7      pV P#                  W%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,                  R7      # )a-  
bbox (`torch.LongTensor` of shape `(batch_size, sequence_length, 4)`, *optional*):
    Bounding boxes of each input sequence tokens. Selected in the range `[0,
    config.max_2d_position_embeddings-1]`. Each bounding box should be a normalized version in (x0, y0, x1, y1)
    format, where (x0, y0) corresponds to the position of the upper left corner in the bounding box, and (x1,
    y1) represents the position of the lower right corner. See [Overview](#Overview) for normalization.

Examples:

```python
>>> from transformers import AutoTokenizer, AutoModel
>>> from datasets import load_dataset

>>> tokenizer = AutoTokenizer.from_pretrained("SCUT-DLVCLab/lilt-roberta-en-base")
>>> model = AutoModel.from_pretrained("SCUT-DLVCLab/lilt-roberta-en-base")

>>> dataset = load_dataset("nielsr/funsd-layoutlmv3", split="train")
>>> example = dataset[0]
>>> words = example["tokens"]
>>> boxes = example["bboxes"]

>>> encoding = tokenizer(words, boxes=boxes, return_tensors="pt")

>>> outputs = model(**encoding)
>>> last_hidden_states = outputs.last_hidden_state
```NzDYou cannot specify both input_ids and inputs_embeds at the same timez5You have to specify either input_ids or inputs_embedsr=   )r?   rG   ru   )rF   r4   rG   rH   )r7   rH   r©   )r{   r4   )r©   rª   r%  r&  :r   NN)r/  Úpooler_outputr§   r0  r   )é   )r7   rª   r%  r&  r‹   Ú%warn_if_padding_and_no_attention_maskrC   r?   r1   rD   rE   ÚonesrŠ   rJ   rG   r3   r   rW  rX  rY  r   r§   r0  )r6   rF   r{   r©   rG   r4   rH   rª   r%  r&  ÚkwargsrI   Ú
batch_sizeÚ
seq_lengthr?   Úbuffered_token_type_idsÚ buffered_token_type_ids_expandedÚembedding_outputÚlayout_embedding_outputÚencoder_outputsÚsequence_outputrB  s   &&&&&&&&&&,           r9   rK   ÚLiltModel.forward  sI  € ðP 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ˆàŠ<Ü—;’;˜{¨TÕ1¼¿¹ÈFÔSˆDàÒ!Ü"ŸZšZ¨*Ð)AÈ6ÔRˆNàÒ!Ü�t—‘Ð(8×9Ò9Ø*.¯/©/×*HÑ*HÈÈKÈZÈKÈÕ*XÐ'Ø3J×3QÑ3QÐR\Ó3iÐ0Ø!A‘ä!&§¢¨[ÄÇ
Á
ÐSYÔ!Z�à)-¯©ØØ%Ø)Ø'ð	 *9ó *
Ñ&Ð˜,ô 3Ø—;‘;Ø*Ø)ô
ˆð #'×"8Ñ"8¸dÐ"8Ó"^ÐàŸ,™,ØØ#Ø)Ø/Ø!5Ø#ð 'ó 
ˆð *¨!Õ,ˆØ8<¿¹Ò8O˜Ÿ™ OÔ4ÐUYˆçØ# ]Ð3°oÀbÕ6IÕIÐIä)Ø-Ø'Ø)×7Ñ7Ø&×1Ñ1ô	
ð 	
r;   )r7   rJ   rX  rW  rY  )T)	NNNNNNNNN)r[   r\   r]   r^   r!   r_  rb  r   rK   r_   r`   ra   rb   s   @@r9   rU  rU  ù  s6   ù‡ € ÷ò"/ò0ð ÷j
ñ j
ó ÷j
ð j
r;   rU  zœ
    LiLT 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	# )ÚLiltForSequenceClassificationi€  c                ó¸   <€ \         SV `  V4       VP                  V n        Wn        \	        VR R7      V n        \        V4      V n        V P                  4        R# ©F)r[  N)	r    r!   Ú
num_labelsr7   rU  rF  ÚLiltClassificationHeadÚ
classifierrZ  r5   s   &&€r9   r!   Ú&LiltForSequenceClassification.__init__ˆ  sH   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒØŒä˜f¸Ô>ˆŒ	Ü0°Ó8ˆŒð 	�‰Ör;   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[ P                  ,          S[,          /# ©rw   rF   Nr{   r©   rG   r4   rH   Úlabelsrª   r%  r&  rÈ   )r1   Ú
LongTensorrÊ   rá   râ   rã   r   )rË   rc   s   "€r9   rÌ   Ú*LiltForSequenceClassification.__annotate__”  sì   ø€ ÷ _
ñ _
á×#Ñ# dÕ*ð_
ñ �l‰l˜TÕ!ð_
ñ ×)Ñ)¨DÕ0ð	_
ñ
 ×(Ñ(¨4Õ/ð_
ñ ×&Ñ&¨Õ-ð_
ñ ×(Ñ(¨4Õ/ð_
ñ × Ñ  4Õ'ð_
ñ   $�;ð_
ñ # T�kð_
ñ ˜D•[ð_
ñ 
‰u�|‰|Õ	Ñ7Õ	7ñ_
r;   c                ó¬  € V
e   T
MV P                   P                  p
V P                  V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	                  VP
                  4      p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      # )	a  
bbox (`torch.LongTensor` of shape `(batch_size, sequence_length, 4)`, *optional*):
    Bounding boxes of each input sequence tokens. Selected in the range `[0,
    config.max_2d_position_embeddings-1]`. Each bounding box should be a normalized version in (x0, y0, x1, y1)
    format, where (x0, y0) corresponds to the position of the upper left corner in the bounding box, and (x1,
    y1) represents the position of the lower right corner. See [Overview](#Overview) for normalization.
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).

Examples:

```python
>>> from transformers import AutoTokenizer, AutoModelForSequenceClassification
>>> from datasets import load_dataset

>>> tokenizer = AutoTokenizer.from_pretrained("SCUT-DLVCLab/lilt-roberta-en-base")
>>> model = AutoModelForSequenceClassification.from_pretrained("SCUT-DLVCLab/lilt-roberta-en-base")

>>> dataset = load_dataset("nielsr/funsd-layoutlmv3", split="train")
>>> example = dataset[0]
>>> words = example["tokens"]
>>> boxes = example["bboxes"]

>>> encoding = tokenizer(words, boxes=boxes, return_tensors="pt")

>>> outputs = model(**encoding)
>>> predicted_class_idx = outputs.logits.argmax(-1).item()
>>> predicted_class = model.config.id2label[predicted_class_idx]
```N©r{   r©   rG   r4   rH   rª   r%  r&  Ú
regressionÚsingle_label_classificationÚmulti_label_classificationræ   ©ÚlossÚlogitsr§   r0  r   )r7   r&  rF  r|  rA   r?   Úproblem_typerz  r>   r1   rE   rQ   r   Úsqueezer   r˜   r   r   r§   r0  ©r6   rF   r{   r©   rG   r4   rH   r€  rª   r%  r&  rk  r»   rs  rŠ  r‰  Úloss_fctrÚ   s   &&&&&&&&&&&,      r9   rK   Ú%LiltForSequenceClassification.forward“  sç  € ð\ &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆà—)‘)ØØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ó 

ˆð " !�*ˆØ—‘ Ó1ˆàˆØÓà—Y‘Y˜vŸ}™}Ó-ˆFØ�{‰{×'Ñ'Ò/Ø—?‘? 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ä'ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
r;   )r|  r7   rF  rz  ©
NNNNNNNNNN©
r[   r\   r]   r^   r!   r   rK   r_   r`   ra   rb   s   @@r9   rw  rw  €  s,   ù‡ € õ	ð ÷_
ñ _
ó ÷_
ð _
r;   rw  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	# )ÚLiltForTokenClassificationiö  c                ón  <€ \         SV `  V4       VP                  V n        \        VR R7      V n        VP
                  e   VP
                  MVP                  p\        P                  ! V4      V n	        \        P                  ! VP                  VP                  4      V n        V P                  4        R# ry  )r    r!   rz  rU  rF  Úclassifier_dropoutr.   r   r-   r/   rq   r$   r|  rZ  ©r6   r7   r•  r8   s   && €r9   r!   Ú#LiltForTokenClassification.__init__ù  sŠ   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒä˜f¸Ô>ˆŒ	à)/×)BÑ)BÒ)NˆF×%Ò%ÐTZ×TnÑTnð 	ô —z’zÐ"4Ó5ˆŒÜŸ)š) F×$6Ñ$6¸×8IÑ8IÓJˆŒð 	�‰Ör;   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[ P
                  ,          S[,          /# r  )r1   r�  rá   râ   rã   rÊ   r   )rË   rc   s   "€r9   rÌ   Ú'LiltForTokenClassification.__annotate__  sî   ø€ ÷ M
ñ M
á×#Ñ# dÕ*ðM
ñ ×Ñ Õ%ðM
ñ ×)Ñ)¨DÕ0ð	M
ñ
 ×(Ñ(¨4Õ/ðM
ñ ×&Ñ&¨Õ-ðM
ñ ×(Ñ(¨4Õ/ðM
ñ × Ñ  4Õ'ðM
ñ   $�;ðM
ñ # T�kðM
ñ ˜D•[ðM
ñ 
‰u�|‰|Õ	Ñ4Õ	4ñM
r;   c                ó  € V
e   T
MV P                   P                  p
V P                  V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eX   VP                  VP                  4      p\        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      # )a   
bbox (`torch.LongTensor` of shape `(batch_size, sequence_length, 4)`, *optional*):
    Bounding boxes of each input sequence tokens. Selected in the range `[0,
    config.max_2d_position_embeddings-1]`. Each bounding box should be a normalized version in (x0, y0, x1, y1)
    format, where (x0, y0) corresponds to the position of the upper left corner in the bounding box, and (x1,
    y1) represents the position of the lower right corner. See [Overview](#Overview) for normalization.
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]`.

Examples:

```python
>>> from transformers import AutoTokenizer, AutoModelForTokenClassification
>>> from datasets import load_dataset

>>> tokenizer = AutoTokenizer.from_pretrained("SCUT-DLVCLab/lilt-roberta-en-base")
>>> model = AutoModelForTokenClassification.from_pretrained("SCUT-DLVCLab/lilt-roberta-en-base")

>>> dataset = load_dataset("nielsr/funsd-layoutlmv3", split="train")
>>> example = dataset[0]
>>> words = example["tokens"]
>>> boxes = example["bboxes"]

>>> encoding = tokenizer(words, boxes=boxes, return_tensors="pt")

>>> outputs = model(**encoding)
>>> predicted_class_indices = outputs.logits.argmax(-1)
```Nr„  ræ   rˆ  r   )r7   r&  rF  r/   r|  rA   r?   r   r˜   rz  r   r§   r0  r�  s   &&&&&&&&&&&,      r9   rK   Ú"LiltForTokenClassification.forward  s  € ðV &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆà—)‘)ØØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ó 

ˆð " !�*ˆàŸ,™, Ó7ˆØ—‘ Ó1ˆàˆØÒà—Y‘Y˜vŸ}™}Ó-ˆFÜ'Ó)ˆHÙ˜FŸK™K¨¨D¯O©OÓ<¸f¿k¹kÈ"»oÓNˆDçØ�Y ¨¥Õ,ˆFØ)-Ò)9�T�G˜fÕ$ÐE¸vÐEä$ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
r;   )r|  r/   rF  rz  r�  r‘  rb   s   @@r9   r“  r“  ö  s,   ù‡ € õð ÷M
ñ M
ó ÷M
ð M
r;   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{  iY  z-Head for sentence-level classification tasks.c                óf  <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        VP                  e   VP                  MVP                  p\        P                  ! V4      V n	        \        P                  ! VP                  VP                  4      V n        R # r½   )r    r!   r   rq   r$   rÃ   r•  r.   r-   r/   rz  Úout_projr–  s   && €r9   r!   ÚLiltClassificationHead.__init__\  s   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
à)/×)BÑ)BÒ)NˆF×%Ò%ÐTZ×TnÑTnð 	ô —z’zÐ"4Ó5ˆŒÜŸ	š	 &×"4Ñ"4°f×6GÑ6GÓHˆŽr;   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# )ru   )ru   rv   ru   )r/   rÃ   r1   Útanhrž  )r6   Úfeaturesrk  rš   s   &&, r9   rK   ÚLiltClassificationHead.forwarde  sS   € Ø�WÕˆØ�L‰L˜‹OˆØ�J‰J�q‹MˆÜ�JŠJ�q‹MˆØ�L‰L˜‹OˆØ�M‰M˜!ÓˆØˆr;   )rÃ   r/   rž  )
r[   r\   r]   r^   Ú__doc__r!   rK   r_   r`   ra   rb   s   @@r9   r{  r{  Y  s   ù‡ € Ù7õI÷ò r;   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	# )ÚLiltForQuestionAnsweringio  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# ry  )
r    r!   rz  rU  rF  r   rq   r$   Ú
qa_outputsrZ  r5   s   &&€r9   r!   Ú!LiltForQuestionAnswering.__init__r  sU   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒä˜f¸Ô>ˆŒ	ÜŸ)š) F×$6Ñ$6¸×8IÑ8IÓJˆŒð 	�‰Ör;   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[ P                  R,          R
S[R,          RS[R,          RS[R,          RS[S[ P
                  ,          S[,          /# )rw   rF   Nr{   r©   rG   r4   rH   Ústart_positionsÚend_positionsrª   r%  r&  rÈ   )r1   r�  rá   râ   rã   rÊ   r   )rË   rc   s   "€r9   rÌ   Ú%LiltForQuestionAnswering.__annotate__}  s  ø€ ÷ ^
ñ ^
á×#Ñ# dÕ*ð^
ñ ×Ñ Õ%ð^
ñ ×)Ñ)¨DÕ0ð	^
ñ
 ×(Ñ(¨4Õ/ð^
ñ ×&Ñ&¨Õ-ð^
ñ ×(Ñ(¨4Õ/ð^
ñ ×)Ñ)¨DÕ0ð^
ñ ×'Ñ'¨$Õ.ð^
ñ   $�;ð^
ñ # T�kð^
ñ ˜D•[ð^
ñ 
‰u�|‰|Õ	Ñ;Õ	;ñ^
r;   c                ó|  € Ve   TMV P                   P                  pV P                  V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! VV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      # )a*  
bbox (`torch.LongTensor` of shape `(batch_size, sequence_length, 4)`, *optional*):
    Bounding boxes of each input sequence tokens. Selected in the range `[0,
    config.max_2d_position_embeddings-1]`. Each bounding box should be a normalized version in (x0, y0, x1, y1)
    format, where (x0, y0) corresponds to the position of the upper left corner in the bounding box, and (x1,
    y1) represents the position of the lower right corner. See [Overview](#Overview) for normalization.

Examples:

```python
>>> from transformers import AutoTokenizer, AutoModelForQuestionAnswering
>>> from datasets import load_dataset

>>> tokenizer = AutoTokenizer.from_pretrained("SCUT-DLVCLab/lilt-roberta-en-base")
>>> model = AutoModelForQuestionAnswering.from_pretrained("SCUT-DLVCLab/lilt-roberta-en-base")

>>> dataset = load_dataset("nielsr/funsd-layoutlmv3", split="train")
>>> example = dataset[0]
>>> words = example["tokens"]
>>> boxes = example["bboxes"]

>>> encoding = tokenizer(words, boxes=boxes, return_tensors="pt")

>>> outputs = model(**encoding)

>>> answer_start_index = outputs.start_logits.argmax()
>>> answer_end_index = outputs.end_logits.argmax()

>>> predict_answer_tokens = encoding.input_ids[0, answer_start_index : answer_end_index + 1]
>>> predicted_answer = tokenizer.decode(predict_answer_tokens)
```Nr„  rN   )Úignore_indexræ   )r‰  Ústart_logitsÚ
end_logitsr§   r0  r   )r7   r&  rF  r¨  ÚsplitrŒ  r¦   ÚlenrC   Úclampr   r   r§   r0  )r6   rF   r{   r©   rG   r4   rH   r«  r¬  rª   r%  r&  rk  r»   rs  rŠ  r°  r±  Ú
total_lossÚignored_indexrŽ  Ú
start_lossÚend_lossrÚ   s   &&&&&&&&&&&&,           r9   rK   Ú LiltForQuestionAnswering.forward|  sÁ  € ð^ &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆà—)‘)ØØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ó 

ˆð " !�*ˆà—‘ Ó1ˆØ#)§<¡<°°r <Ó#:Ñ ˆ�jØ#×+Ñ+¨BÓ/×:Ñ:Ó<ˆØ×'Ñ'¨Ó+×6Ñ6Ó8ˆ
àˆ
ØÒ&¨=Ò+Dä�?×'Ñ'Ó)Ó*¨QÔ.Ø"1×"9Ñ"9¸"Ó"=�Ü�=×%Ñ%Ó'Ó(¨1Ô,Ø -× 5Ñ 5°bÓ 9�à(×-Ñ-¨aÓ0ˆMØ-×3Ñ3°A°}ÓEˆOØ)×/Ñ/°°=ÓAˆMä'°]ÔCˆHÙ! ,°Ó@ˆJÙ 
¨MÓ:ˆHØ$ xÕ/°1Õ4ˆJçØ" JÐ/°'¸"µ+Õ=ˆFØ/9Ò/E�Z�M FÕ*ÐQÈ6ÐQä+ØØ%Ø!Ø!×/Ñ/Ø×)Ñ)ô
ð 	
r;   )rF  rz  r¨  )NNNNNNNNNNNr‘  rb   s   @@r9   r¦  r¦  o  s,   ù‡ € õð ÷^
ñ ^
ó ÷^
ð ^
r;   r¦  )r¦  rw  r“  rU  rE  )5r¤  r£   r1   r   Útorch.nnr   r   r   Ú r   rI  Úactivationsr   Úmasking_utilsr   Úmodeling_layersr	   Úmodeling_outputsr
   r   r   r   r   Úmodeling_utilsr   Úpytorch_utilsr   Úutilsr   r   Úconfiguration_liltr   Ú
get_loggerr[   ÚloggerÚModuler   re   r…   rÀ   r×   rì   rû   r  r  r9  rE  rU  rw  r“  r{  r¦  Ú__all__r*  r;   r9   Ú<module>rÈ     s´  ðñ ã ã Ý ß AÑ Aå &Ý !Ý 6Ý 9÷õ õ .Ý 6ß ,Ý *ð 
×	Ò	˜HÓ	%€ôQ=˜Ÿ™ô Q=ôh5+˜2Ÿ9™9ô 5+ôpf˜Ÿ	™	ô fôT�R—Y‘Yô ô�B—I‘Iô ô>�r—y‘yô ô �—‘ô ô7Ð*ô 7ôt4
�"—)‘)ô 4
ôp�—‘ô ð ô	i˜/ó 	ió ð	ið ôC
Ð#ó C
ó ðC
ñL ðôôm
Ð$7ó m
óðm
ð` ô^
Ð!4ó ^
ó ð^
ôD˜RŸY™Yô ð, ôk
Ð2ó k
ó ðk
ò\‚r;   