+
    œ°³ju�  ã                   óì  € R t ^ RIH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 ^R	IHtHt ^R
IHt ^RIHt ^RIHtH t H!t!H"t" ^RI#H$t$ ^RI%H&t& ^RI'H(t( ]"PR                  ! ]*4      t+ ! R R]PX                  4      t- ! R R]PX                  4      t. ! R R]PX                  4      t/ ! R R]PX                  4      t0 ! R R]PX                  4      t1 ! R R]PX                  4      t2 ! R R]PX                  4      t3 ! R R]PX                  4      t4 ! R  R!]PX                  4      t5R9R" R# llt6 ! R$ R%]PX                  4      t7 ! R& R']PX                  4      t8 ! R( R)]4      t9 ! R* R+]PX                  4      t:]  ! R, R-]4      4       t;]  ! R. R/];4      4       t<]  ! R0 R1];4      4       t=] ! R2R37       ! R4 R5];4      4       t>] ! R6R37       ! R7 R8];4      4       t?. R:Ot@R# );zPyTorch MarkupLM model.)ÚCallableN)Únn)ÚBCEWithLogitsLossÚCrossEntropyLossÚMSELoss)Úinitialization)ÚACT2FN)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚBaseModelOutputWithPoolingÚMaskedLMOutputÚQuestionAnsweringModelOutputÚSequenceClassifierOutputÚTokenClassifierOutput)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)Úapply_chunking_to_forward)ÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚlogging)Úmerge_with_config_defaults)Úcapture_outputs©ÚMarkupLMConfigc                   ó@   a a€ ] tR t^-t oRtV 3R ltRR ltRtVtV ;t	# )ÚXPathEmbeddingsz€Construct the embeddings from xpath tags and subscripts.

We drop tree-id in this version, as its info can be covered by xpath.
c           	     óô  <€ \         SV `  4        VP                  V n        \        P                  ! VP
                  V P                  ,          VP                  4      V n        \        P                  ! VP                  4      V n
        \        P                  ! 4       V n        \        P                  ! VP
                  V P                  ,          ^VP                  ,          4      V n        \        P                  ! ^VP                  ,          VP                  4      V n        \        P                  ! \!        V P                  4       Uu. uF.  p\        P"                  ! VP$                  VP
                  4      NK0  	  up4      V n        \        P                  ! \!        V P                  4       Uu. uF.  p\        P"                  ! VP(                  VP
                  4      NK0  	  up4      V n        R# u upi u upi )é   N)ÚsuperÚ__init__Ú	max_depthr   ÚLinearÚxpath_unit_hidden_sizeÚhidden_sizeÚxpath_unitseq2_embeddingsÚDropoutÚhidden_dropout_probÚdropoutÚReLUÚ
activationÚxpath_unitseq2_innerÚ	inner2embÚ
ModuleListÚrangeÚ	EmbeddingÚmax_xpath_tag_unit_embeddingsÚxpath_tag_sub_embeddingsÚmax_xpath_subs_unit_embeddingsÚxpath_subs_sub_embeddings)ÚselfÚconfigÚ_Ú	__class__s   && €Úo/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/markuplm/modeling_markuplm.pyr!   ÚXPathEmbeddings.__init__3   sd  ø€ Ü‰ÑÔØ×)Ñ)ˆŒä)+¯ª°6×3PÑ3PÐSW×SaÑSaÕ3aÐci×cuÑcuÓ)vˆÔ&ä—z’z &×"<Ñ"<Ó=ˆŒäŸ'š'›)ˆŒÜ$&§I¢I¨f×.KÑ.KÈdÏnÉnÕ.\Ð^_Ðbh×btÑbtÕ^tÓ$uˆÔ!ÜŸš 1 v×'9Ñ'9Õ#9¸6×;MÑ;MÓNˆŒä(*¯ªô ˜tŸ~™~Ô.óá.�Aô —’˜V×AÑAÀ6×C`ÑC`ÖaÙ.ñó)
ˆÔ%ô *,¯ªô ˜tŸ~™~Ô.óá.�Aô —’˜V×BÑBÀF×DaÑDaÖbÙ.ñó*
ˆÖ&ùòùòs   Å4G0Æ.4G5c           	     óú  € . p. p\        V P                  4       Fg  pVP                  V P                  V,          ! VR R V3,          4      4       VP                  V P                  V,          ! VR R V3,          4      4       Ki  	  \
        P                  ! VRR7      p\
        P                  ! VRR7      pW4,           pV P                  V P                  V P                  V P                  V4      4      4      4      pV# )ºNNN©Údiméÿÿÿÿ)r/   r"   Úappendr2   r4   ÚtorchÚcatr-   r)   r+   r,   )r5   Úxpath_tags_seqÚxpath_subs_seqÚxpath_tags_embeddingsÚxpath_subs_embeddingsÚiÚxpath_embeddingss   &&&    r9   ÚforwardÚXPathEmbeddings.forwardM   sÝ   € Ø "ÐØ "Ðä�t—~‘~Ö&ˆAØ!×(Ñ(¨×)FÑ)FÀqÖ)IÈ.ÐYZÐ\]Ð_`ÐY`ÕJaÓ)bÔcØ!×(Ñ(¨×)GÑ)GÈÖ)JÈ>ÐZ[Ð]^Ð`aÐZaÕKbÓ)cÖdñ 'ô !&§	¢	Ð*?ÀRÔ HÐÜ %§	¢	Ð*?ÀRÔ HÐà0ÕHÐàŸ>™>¨$¯,©,°t·±Àt×G`ÑG`ÐaqÓGrÓ7sÓ*tÓuÐàÐó    )r+   r)   r-   r"   r4   r2   r&   r,   )NN)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r!   rI   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r8   Ú__classdict__s   @@r9   r   r   -   s   ù‡ € ñõ

÷4 ô  rK   r   c                   ód   a a€ ] tR t^_t oRtV 3R lt]R 4       t]RR l4       tRR lt	Rt
VtV ;t# )	ÚMarkupLMEmbeddingszGConstruct the embeddings from word, position and token_type embeddings.c                ó„  <€ \         SV `  4        Wn        \        P                  ! VP
                  VP                  VP                  R 7      V n        \        P                  ! VP                  VP                  4      V n
        VP                  V n        \        V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      P1                  R4      RR7      V n        VP                  V n        \        P                  ! VP                  VP                  V P4                  R 7      V n
        R# ))Úpadding_idx©ÚepsF)Ú
persistentN©é   r?   )r    r!   r6   r   r0   Ú
vocab_sizer%   Úpad_token_idÚword_embeddingsÚmax_position_embeddingsÚposition_embeddingsr"   r   rH   Útype_vocab_sizeÚtoken_type_embeddingsÚ	LayerNormÚlayer_norm_epsr'   r(   r)   ÚBufferrA   ÚarangeÚexpandÚposition_idsrY   ©r5   r6   r8   s   &&€r9   r!   ÚMarkupLMEmbeddings.__init__b   s/  ø€ Ü‰ÑÔØŒÜ!Ÿ|š|¨F×,=Ñ,=¸v×?QÑ?QÐ_e×_rÑ_rÔsˆÔÜ#%§<¢<°×0NÑ0NÐPV×PbÑPbÓ#cˆÔ à×)Ñ)ˆŒä /°Ó 7ˆÔä%'§\¢\°&×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\ô$
ˆÖ rK   c                ó  € V P                  4       RR pV^,          p\        P                  ! V^,           W1,           ^,           \        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
N©ÚdtypeÚdevicer?   )ÚsizerA   ri   Úlongrq   Ú	unsqueezerj   )Úinputs_embedsrY   Úinput_shapeÚsequence_lengthrk   s   &&   r9   Ú&create_position_ids_from_inputs_embedsÚ9MarkupLMEmbeddings.create_position_ids_from_inputs_embedsx   sn   € ð $×(Ñ(Ó*¨3¨BÐ/ˆØ% a�.ˆä—|’|Ø˜!�O˜_Õ:¸QÕ>ÄeÇjÁjÐYf×YmÑYmô
ˆð ×%Ñ% aÓ(×/Ñ/°Ó<Ð<rK   c                óØ   € V P                  V4      P                  4       p\        P                  ! V^R7      P	                  V4      V,           V,          pVP                  4       V,           # )zí
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:
    x: torch.Tensor x:

Returns: torch.Tensor
r=   )ÚneÚintrA   ÚcumsumÚtype_asrs   )Ú	input_idsrY   Úpast_key_values_lengthÚmaskÚincremental_indicess   &&&  r9   Ú"create_position_ids_from_input_idsÚ5MarkupLMEmbeddings.create_position_ids_from_input_ids‹   sW   € ð �|‰|˜KÓ(×,Ñ,Ó.ˆÜ$Ÿ|š|¨D°aÔ8×@Ñ@ÀÓFÐI_Õ_ÐcgÕgÐØ"×'Ñ'Ó)¨KÕ7Ð7rK   c                ó  € Ve   VP                  4       pMVP                  4       R R pVe   VP                  MVP                  pVf<   Ve   V P                  WP                  4      pMV P	                  W`P                  4      pVf(   \
        P                  ! V\
        P                  VR7      pVf   V P                  V4      pVfg   V P                  P                  \
        P                  ! \        \        V4      V P                  .,           4      \
        P                  VR7      ,          pVfg   V P                  P                  \
        P                  ! \        \        V4      V P                  .,           4      \
        P                  VR7      ,          pTp	V P!                  V4      p
V P#                  V4      pV P%                  W#4      pWš,           V,           V,           pV P'                  V4      pV P)                  V4      pV# )Nro   r?   )rr   rq   rƒ   rY   rx   rA   Úzerosrs   ra   r6   Ú
tag_pad_idÚonesÚtupleÚlistr"   Úsubs_pad_idrc   re   rH   rf   r)   )r5   r   rC   rD   Útoken_type_idsrk   ru   rv   rq   Úwords_embeddingsrc   re   rH   Ú
embeddingss   &&&&&&&       r9   rI   ÚMarkupLMEmbeddings.forwardœ   s°  € ð Ò Ø#Ÿ.™.Ó*‰Kà'×,Ñ,Ó.¨s°Ð3ˆKà%.Ò%:�×!Ò!À×@TÑ@TˆàÒØÒ$à#×FÑFÀy×RbÑRbÓc‘à#×JÑJÈ=×ZjÑZjÓk�àÒ!Ü"Ÿ[š[¨¼E¿J¹JÈvÔVˆNàÒ Ø ×0Ñ0°Ó;ˆMð Ò!Ø!Ÿ[™[×3Ñ3´e·j²jÜ”d˜;Ó'¨4¯>©>Ð*:Õ:Ó;Ä5Ç:Á:ÐV\ô7õ ˆNð Ò!Ø!Ÿ[™[×4Ñ4´u·z²zÜ”d˜;Ó'¨4¯>©>Ð*:Õ:Ó;Ä5Ç:Á:ÐV\ô8õ ˆNð )ÐØ"×6Ñ6°|ÓDÐà $× :Ñ :¸>Ó JÐà×0Ñ0°ÓPÐØ%Õ;Ð>SÕSÐVfÕfˆ
à—^‘^ JÓ/ˆ
Ø—\‘\ *Ó-ˆ
ØÐrK   )
rf   r6   r)   r"   rY   rc   rk   re   ra   rH   )é    )NNNNNN)rL   rM   rN   rO   rP   r!   Ústaticmethodrx   rƒ   rI   rQ   rR   rS   rT   s   @@r9   rW   rW   _   s?   ù‡ € ÙQõ
ð, ñ=ó ð=ð" ó8ó ð8÷1ô 1rK   rW   c                   óD   a a€ ] tR t^Ñt oV 3R ltV3R lR ltRtVtV ;t# )ÚMarkupLMSelfOutputc                ó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# ©rZ   N)r    r!   r   r#   r%   Údenserf   rg   r'   r(   r)   rl   s   &&€r9   r!   ÚMarkupLMSelfOutput.__init__Ò   s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŽrK   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# ©é   Úhidden_statesÚinput_tensorÚreturn©rA   ÚTensor)ÚformatrU   s   "€r9   Ú__annotate__ÚMarkupLMSelfOutput.__annotate__Ø   ó1   ø€ ÷ ñ ¡U§\¡\ð ÁÇÁð ÑRW×R^ÑR^ñ rK   c                óx   € V P                  V4      pV P                  V4      pV P                  W,           4      pV# ©N©r–   r)   rf   ©r5   r›   rœ   s   &&&r9   rI   ÚMarkupLMSelfOutput.forwardØ   ó5   € ØŸ
™
 =Ó1ˆØŸ™ ]Ó3ˆØŸ™ }Õ'CÓDˆØÐrK   ©rf   r–   r)   ©	rL   rM   rN   rO   r!   rI   rQ   rR   rS   rT   s   @@r9   r“   r“   Ñ   ó   ù‡ € õ>÷÷ ð rK   r“   c                   óD   a a€ ] tR t^àt oV 3R ltV3R lR ltRtVtV ;t# )ÚMarkupLMIntermediatec                ó"  <€ \         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   r#   r%   Úintermediate_sizer–   Ú
isinstanceÚ
hidden_actÚstrr   Úintermediate_act_fnrl   s   &&€r9   r!   ÚMarkupLMIntermediate.__init__á   s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3KÑ3KÓLˆŒ
Ü�f×'Ñ'¬×-Ò-Ü'-¨f×.?Ñ.?Õ'@ˆDÖ$à'-×'8Ñ'8ˆDÖ$rK   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©rš   r›   r�   rž   )r    rU   s   "€r9   r¡   Ú!MarkupLMIntermediate.__annotate__é   s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ rK   c                óJ   € V P                  V4      pV P                  V4      pV# r¥   ©r–   r´   ©r5   r›   s   &&r9   rI   ÚMarkupLMIntermediate.forwardé   s&   € ØŸ
™
 =Ó1ˆØ×0Ñ0°Ó?ˆØÐrK   rº   r«   rT   s   @@r9   r®   r®   à   s   ù‡ € õ9÷÷ ð rK   r®   c                   óD   a a€ ] tR t^ðt oV 3R ltV3R lR ltRtVtV ;t# )ÚMarkupLMOutputc                ó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   r#   r°   r%   r–   rf   rg   r'   r(   r)   rl   s   &&€r9   r!   ÚMarkupLMOutput.__init__ñ   s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×7Ñ7¸×9KÑ9KÓLˆŒ
ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŽrK   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# r™   rž   )r    rU   s   "€r9   r¡   ÚMarkupLMOutput.__annotate__÷   r£   rK   c                óx   € V P                  V4      pV P                  V4      pV P                  W,           4      pV# r¥   r¦   r§   s   &&&r9   rI   ÚMarkupLMOutput.forward÷   r©   rK   rª   r«   rT   s   @@r9   r¾   r¾   ð   r¬   rK   r¾   c                   óD   a a€ ] tR t^ÿt oV 3R ltV3R lR ltRtVtV ;t# )ÚMarkupLMPoolerc                ó¸   <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        P                  ! 4       V n        R # r¥   )r    r!   r   r#   r%   r–   ÚTanhr+   rl   s   &&€r9   r!   ÚMarkupLMPooler.__init__   s9   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸ'š'›)ˆŽrK   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r·   rž   )r    rU   s   "€r9   r¡   ÚMarkupLMPooler.__annotate__  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ rK   c                ó\   € VR,          pV P                  V4      pV P                  V4      pV# )r<   )r<   r�   )r–   r+   )r5   r›   Úfirst_token_tensorÚpooled_outputs   &&  r9   rI   ÚMarkupLMPooler.forward  s2   € ð +¨4Õ0ÐØŸ
™
Ð#5Ó6ˆØŸ™¨Ó6ˆØÐrK   )r+   r–   r«   rT   s   @@r9   rÆ   rÆ   ÿ   s   ù‡ € õ$÷
÷ ð rK   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# )ÚMarkupLMPredictionHeadTransformi  c                ó‚  <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        VP                  \        4      '       d   \        VP                  ,          V n
        MVP                  V n
        \        P                  ! VP                  VP                  R 7      V n        R# r•   )r    r!   r   r#   r%   r–   r±   r²   r³   r   Útransform_act_fnrf   rg   rl   s   &&€r9   r!   Ú(MarkupLMPredictionHeadTransform.__init__  s~   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
Ü�f×'Ñ'¬×-Ò-Ü$*¨6×+<Ñ+<Õ$=ˆDÕ!à$*×$5Ñ$5ˆDÔ!ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŽrK   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r·   rž   )r    rU   s   "€r9   r¡   Ú,MarkupLMPredictionHeadTransform.__annotate__  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ rK   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# r¥   )r–   rÓ   rf   r»   s   &&r9   rI   Ú'MarkupLMPredictionHeadTransform.forward  s4   € ØŸ
™
 =Ó1ˆØ×-Ñ-¨mÓ<ˆØŸ™ }Ó5ˆØÐrK   )rf   r–   rÓ   r«   rT   s   @@r9   rÑ   rÑ     s   ù‡ € õU÷÷ ð rK   rÑ   c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚMarkupLMLMPredictionHeadi!  c                ó  <€ \         SV `  4        \        V4      V n        \        P
                  ! VP                  VP                  R R7      V n        \        P                  ! \        P                  ! VP                  4      4      V n        R# )T)ÚbiasN)r    r!   rÑ   Ú	transformr   r#   r%   r_   ÚdecoderÚ	ParameterrA   r†   rÜ   rl   s   &&€r9   r!   Ú!MarkupLMLMPredictionHead.__init__"  s[   ø€ Ü‰ÑÔÜ8¸Ó@ˆŒô —y’y ×!3Ñ!3°V×5FÑ5FÈTÔRˆŒÜ—L’L¤§¢¨V×->Ñ->Ó!?Ó@ˆŽ	rK   c                óJ   € V P                  V4      pV P                  V4      pV# r¥   )rÝ   rÞ   r»   s   &&r9   rI   Ú MarkupLMLMPredictionHead.forward+  s$   € ØŸ™ }Ó5ˆØŸ™ ]Ó3ˆØÐrK   )rÜ   rÞ   rÝ   r«   rT   s   @@r9   rÚ   rÚ   !  s   ù‡ € õA÷ò rK   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# )ÚMarkupLMOnlyMLMHeadi2  c                óD   <€ \         SV `  4        \        V4      V n        R # r¥   )r    r!   rÚ   Úpredictionsrl   s   &&€r9   r!   ÚMarkupLMOnlyMLMHead.__init__3  s   ø€ Ü‰ÑÔÜ3°FÓ;ˆÖrK   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )rš   Úsequence_outputr�   rž   )r    rU   s   "€r9   r¡   Ú MarkupLMOnlyMLMHead.__annotate__7  s#   ø€ ÷ !ñ !¡u§|¡|ð !¹¿¹ñ !rK   c                ó(   € V P                  V4      pV# r¥   ©ræ   )r5   ré   Úprediction_scoress   && r9   rI   ÚMarkupLMOnlyMLMHead.forward7  s   € Ø ×,Ñ,¨_Ó=ÐØ Ð rK   rì   r«   rT   s   @@r9   rä   rä   2  s   ù‡ € õ<÷!÷ !ð !rK   rä   c                óÞ   € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R\        /# )	rš   ÚmoduleÚqueryÚkeyÚvalueÚattention_maskNÚscalingr)   )r   ÚModulerA   rŸ   Úfloat)r    s   "r9   r¡   r¡   =  sg   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô ð%ô ñ%rK   c                 óÎ  € \         P                  ! WP                  ^^4      4      V,          pVe	   W„,           p\        P                  P                  VR\         P                  R7      P                  VP                  4      p\        P                  P                  W†V P                  R7      p\         P                  ! Wƒ4      p	V	P                  ^^4      P                  4       p	W˜3# )rš   )r>   rp   )ÚpÚtrainingr?   )rA   ÚmatmulÚ	transposer   Ú
functionalÚsoftmaxÚfloat32Útorp   r)   rú   Ú
contiguous)
rð   rñ   rò   ró   rô   rõ   r)   ÚkwargsÚattn_weightsÚattn_outputs
   &&&&&&&,  r9   Úeager_attention_forwardr  =  s°   € ô —<’< §}¡}°Q¸Ó':Ó;¸gÕE€LØÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2ÄUÇ]Á]Ð(ÓS×VÑVÐW\×WbÑWbÓc€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€Lä—,’,˜|Ó3€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KØÐ$Ð$rK   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# )ÚMarkupLMSelfAttentioniT  c                ó\  <€ \         SV `  4        VP                  VP                  ,          ^ 8w  d9   \	        VR4      '       g'   \        RVP                   RVP                   R24      hWn        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                   4      V n        VP                   V n        V P                  R,          V n        R# )r�   Úembedding_sizezThe hidden size (z6) is not a multiple of the number of attention heads (Ú)Ng      à¿)r    r!   r%   Únum_attention_headsÚhasattrÚ
ValueErrorr6   r|   Úattention_head_sizeÚall_head_sizer   r#   rñ   rò   ró   r'   Úattention_probs_dropout_probr)   Úattention_dropoutrõ   rl   s   &&€r9   r!   ÚMarkupLMSelfAttention.__init__U  sD  ø€ Ü‰ÑÔØ×Ñ × :Ñ :Õ:¸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ˆŒ
ä—z’z &×"EÑ"EÓFˆŒØ!'×!DÑ!DˆÔØ×/Ñ/°Õ5ˆŽrK   c                óÄ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[S[ P                  S[ P                  R,          3,          /# ©rš   r›   rô   Nr  r�   )rA   rŸ   ÚFloatTensorr   r   r‰   )r    rU   s   "€r9   r¡   Ú"MarkupLMSelfAttention.__annotate__j  s_   ø€ ÷ )ñ )á—|‘|ð)ñ ×)Ñ)¨DÕ0ð)ñ Ñ+Õ,ð	)ñ
 
‰u�|‰|™UŸ\™\¨DÕ0Ð0Õ	1ñ)rK   c                ó†  € VP                   R R p. VORNV P                  N5pV P                  V4      P                  V4      P	                  ^^4      pV P                  V4      P                  V4      P	                  ^^4      pV P                  V4      P                  V4      P	                  ^^4      p\        P                  ! V P                  P                  \        4      p	T	! V VVVV3RV P                  '       g   RMV P                  RV P                  /VB w  r«V
P                  ! . VORN5!  P!                  4       p
W«3# )Nr)   ç        rõ   r?   )Úshaper  rñ   Úviewrü   rò   ró   r   Úget_interfacer6   Ú_attn_implementationr  rú   r  rõ   Úreshaper  )r5   r›   rô   r  rv   Úhidden_shapeÚquery_statesÚ
key_statesÚvalue_statesÚattention_interfacer  r  s   &&&,        r9   rI   ÚMarkupLMSelfAttention.forwardj  sA  € ð $×)Ñ)¨#¨2Ð.ˆØC˜ÐC bÐC¨$×*BÑ*BÑCˆà—z‘z -Ó0×5Ñ5°lÓC×MÑMÈaÐQRÓSˆØ—X‘X˜mÓ,×1Ñ1°,Ó?×IÑIÈ!ÈQÓOˆ
Ø—z‘z -Ó0×5Ñ5°lÓC×MÑMÈaÐQRÓSˆä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ	%
ð  $Ÿ}Ÿ}˜}‘C°$×2HÑ2Hð	%
ð —L‘Lð	%
ð ñ	%
Ñ!ˆð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØÐ(Ð(rK   )
r  r  r  r6   r)   rò   r  rñ   rõ   ró   r¥   r«   rT   s   @@r9   r  r  T  s   ù‡ € õ6÷*)÷ )ò )rK   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# )ÚMarkupLMAttentioni‹  c                ód   <€ \         SV `  4        \        V4      V n        \	        V4      V n        R # r¥   )r    r!   r  r5   r“   Úoutputrl   s   &&€r9   r!   ÚMarkupLMAttention.__init__Œ  s&   ø€ Ü‰ÑÔÜ)¨&Ó1ˆŒ	Ü(¨Ó0ˆŽrK   c                óŒ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[ P                  /# r  ©rA   rŸ   r  r   r   )r    rU   s   "€r9   r¡   ÚMarkupLMAttention.__annotate__‘  sL   ø€ ÷ ñ á—|‘|ðñ ×)Ñ)¨DÕ0ðñ Ñ+Õ,ð	ñ
 
�‰ñrK   c                óZ   € TpV P                   ! V3R V/VB w  rV P                  W4      pV# ©rô   )r5   r'  )r5   r›   rô   r  Úresidualr7   s   &&&,  r9   rI   ÚMarkupLMAttention.forward‘  sE   € ð !ˆØŸ9š9Øñ
à)ð
ð ñ
Ñˆð
 Ÿ™ MÓ<ˆØÐrK   )r'  r5   r¥   r«   rT   s   @@r9   r%  r%  ‹  s   ù‡ € õ1÷
÷ ò rK   r%  c                   óN   a a€ ] tR tRt oV 3R ltRV3R lR lltR tRtVtV ;t	# )ÚMarkupLMLayeri¢  c                ó´   <€ \         SV `  4        VP                  V n        ^V n        \	        V4      V n        \        V4      V n        \        V4      V n	        R# )r^   N)
r    r!   Úchunk_size_feed_forwardÚseq_len_dimr%  Ú	attentionr®   Úintermediater¾   r'  rl   s   &&€r9   r!   ÚMarkupLMLayer.__init__£  sI   ø€ Ü‰ÑÔØ'-×'EÑ'EˆÔ$ØˆÔÜ*¨6Ó2ˆŒÜ0°Ó8ˆÔÜ$ VÓ,ˆŽrK   c                óŒ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[ P                  /# r  r*  )r    rU   s   "€r9   r¡   ÚMarkupLMLayer.__annotate__«  sL   ø€ ÷ ñ á—|‘|ðñ ×)Ñ)¨DÕ0ðñ Ñ+Õ,ð	ñ
 
�‰ñrK   c                óˆ   € V P                   ! V3R V/VB p\        V P                  V P                  V P                  V4      pV# r-  )r5  r   Úfeed_forward_chunkr3  r4  )r5   r›   rô   r  s   &&&,r9   rI   ÚMarkupLMLayer.forward«  sW   € ð ŸšØñ
à)ð
ð ñ
ˆô 2Ø×#Ñ# T×%AÑ%AÀ4×CSÑCSÐUbó
ˆð ÐrK   c                óJ   € V P                  V4      pV P                  W!4      pV# r¥   )r6  r'  )r5   Úattention_outputÚintermediate_outputÚlayer_outputs   &&  r9   r;  Ú MarkupLMLayer.feed_forward_chunk½  s)   € Ø"×/Ñ/Ð0@ÓAÐØ—{‘{Ð#6ÓIˆØÐrK   )r5  r3  r6  r'  r4  r¥   )
rL   rM   rN   rO   r!   rI   r;  rQ   rR   rS   rT   s   @@r9   r1  r1  ¢  s   ù‡ € õ-÷ò ÷$ò rK   r1  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# )ÚMarkupLMEncoderiÄ  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 V n	        R# u upi )FN)
r    r!   r6   r   r.   r/   Únum_hidden_layersr1  ÚlayerÚgradient_checkpointing)r5   r6   rG   r8   s   && €r9   r!   ÚMarkupLMEncoder.__init__Å  sR   ø€ Ü‰ÑÔØŒÜ—]’]Ä5È×IaÑIaÔCbÓ#cÑCb¸a¤M°&Ö$9ÑCbÑ#cÓdˆŒ
Ø&+ˆÖ#ùò $ds   ½A&c                óx   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[/# r  )rA   rŸ   r  r   r   r
   )r    rU   s   "€r9   r¡   ÚMarkupLMEncoder.__annotate__Ë  sH   ø€ ÷ 
ñ 
á—|‘|ð
ñ ×)Ñ)¨DÕ0ð
ñ Ñ+Õ,ð	
ñ
 
ñ
rK   c                óT   € V P                    F  pV! VV3/ VB pK  	  \        VR 7      # ))Úlast_hidden_state)rF  r
   )r5   r›   rô   r  Úlayer_modules   &&&, r9   rI   ÚMarkupLMEncoder.forwardË  s>   € ð !ŸJœJˆLÙ(ØØñð ñŠMñ 'ô Ø+ô
ð 	
rK   )r6   rG  rF  r¥   r«   rT   s   @@r9   rC  rC  Ä  s   ù‡ € õ,÷
÷ 
ò 
rK   rC  c                   óv   a a€ ] tR tRt oRtR]R]/t]P                  ! 4       V 3R l4       t
V3R ltRtVtV ;t# )ÚMarkupLMPreTrainedModeliÝ  Úmarkuplmr›   Ú
attentionsc                ó„  <€ \         SV `  V4       \        V\        4      '       d#   \        P
                  ! VP                  4       R# \        V\        4      '       db   \        P                  ! VP                  \        P                  ! VP                  P                  R,          4      P                  R4      4       R# R# )zInitialize the weightsNr?   r]   )r    Ú_init_weightsr±   rÚ   ÚinitÚzeros_rÜ   rW   Úcopy_rk   rA   ri   r  rj   )r5   rð   r8   s   &&€r9   rT  Ú%MarkupLMPreTrainedModel._init_weightsæ  s~   ø€ ô 	‰Ñ˜fÔ%Ü�fÔ6×7Ò7Ü�KŠK˜Ÿ™Ö$Ü˜Ô 2×3Ò3Ü�JŠJ�v×*Ñ*¬E¯LªL¸×9LÑ9L×9RÑ9RÐSUÕ9VÓ,W×,^Ñ,^Ð_fÓ,gÖhñ 4rK   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )rš   r6   r   )r    rU   s   "€r9   r¡   Ú$MarkupLMPreTrainedModel.__annotate__Ý  s   ø‡ ‚ áÑò rK   © )rL   rM   rN   rO   Úbase_model_prefixr1  r  Ú_can_record_outputsrA   Úno_gradrT  Ú__annotate_func__rQ   rR   rS   rT   s   @@r9   rP  rP  Ý  sC   ù‡ € ð #Ðà˜ØÐ+ðÐð
 ‡]‚]ƒ_ôió ði÷ … rK   rP  c                   óv   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       4       4       t
RtVtV ;t# )
ÚMarkupLMModelið  c                óÆ   <€ \         SV `  V4       W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!   r6   rW   rŽ   rC  ÚencoderrÆ   ÚpoolerÚ	post_init)r5   r6   Úadd_pooling_layerr8   s   &&&€r9   r!   ÚMarkupLMModel.__init__ó  sK   ø€ ô
 	‰Ñ˜Ô ØŒä,¨VÓ4ˆŒÜ& vÓ.ˆŒç0A”n VÔ,ÀtˆŒð 	�‰ÖrK   c                ó.   € V P                   P                  # r¥   ©rŽ   ra   )r5   s   &r9   Úget_input_embeddingsÚ"MarkupLMModel.get_input_embeddings  s   € Ø�‰×.Ñ.Ð.rK   c                ó&   € WP                   n        R # r¥   ri  )r5   ró   s   &&r9   Úset_input_embeddingsÚ"MarkupLMModel.set_input_embeddings  s   € Ø*/�‰Ö'rK   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[S[,          R
S[S[,          /	# )rš   r   NrC   rD   rô   rŒ   rk   ru   r  r�   )rA   Ú
LongTensorr  r   r   r‰   r   )r    rU   s   "€r9   r¡   ÚMarkupLMModel.__annotate__  sÉ   ø€ ÷ K
ñ K
á×#Ñ# dÕ*ðK
ñ ×(Ñ(¨4Õ/ðK
ñ ×(Ñ(¨4Õ/ð	K
ñ
 ×)Ñ)¨DÕ0ðK
ñ ×(Ñ(¨4Õ/ðK
ñ ×&Ñ&¨Õ-ðK
ñ ×(Ñ(¨4Õ/ðK
ñ Ñ+Õ,ðK
ñ 
Ñ+Õ	+ñK
rK   c           	     óÚ  € 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e   VP                  MVP                  p
Vf   \        P
                  ! WšR7      pVf(   \        P                  ! V	\        P                  V
R7      pVP                  ^4      P                  ^4      pVP                  V P                  R7      pRV,
          R,          pV P                  VVVVVVR7      pV P                  ! VV3/ VB pV^ ,          pV P                  e   V P                  V4      MRp\        VVR	7      # )ao  
xpath_tags_seq (`torch.LongTensor` of shape `(batch_size, sequence_length, config.max_depth)`, *optional*):
    Tag IDs for each token in the input sequence, padded up to config.max_depth.
xpath_subs_seq (`torch.LongTensor` of shape `(batch_size, sequence_length, config.max_depth)`, *optional*):
    Subscript IDs for each token in the input sequence, padded up to config.max_depth.

Examples:

```python
>>> from transformers import AutoProcessor, MarkupLMModel

>>> processor = AutoProcessor.from_pretrained("microsoft/markuplm-base")
>>> model = MarkupLMModel.from_pretrained("microsoft/markuplm-base")

>>> html_string = "<html> <head> <title>Page Title</title> </head> </html>"

>>> encoding = processor(html_string, return_tensors="pt")

>>> outputs = model(**encoding)
>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 4, 768]
```NzDYou cannot specify both input_ids and inputs_embeds at the same timez5You have to specify either input_ids or inputs_embeds)rq   ro   )rp   g      ð?)r   rC   rD   rk   rŒ   ru   )rL  Úpooler_outputr?   g     ˆÃÀ)r  Ú%warn_if_padding_and_no_attention_maskrr   rq   rA   rˆ   r†   rs   rt   r   rp   rŽ   rc  rd  r   )r5   r   rC   rD   rô   rŒ   rk   ru   r  rv   rq   Úextended_attention_maskÚembedding_outputÚencoder_outputsré   rÎ   s   &&&&&&&&,       r9   rI   ÚMarkupLMModel.forward	  so  € ðJ Ò  ]Ò%>ÜÐcÓdÐdØÒ"Ø×6Ñ6°yÔQØ#Ÿ.™.Ó*‰KØÒ&Ø'×,Ñ,Ó.¨s°Ð3‰KäÐTÓUÐUà%.Ò%:�×!Ò!À×@TÑ@TˆàÒ!Ü"ŸZšZ¨ÔCˆNàÒ!Ü"Ÿ[š[¨¼E¿J¹JÈvÔVˆNà"0×":Ñ":¸1Ó"=×"GÑ"GÈÓ"JÐØ"9×"<Ñ"<À4Ç:Á:Ð"<Ó"NÐØ#&Ð)@Õ#@ÀHÕ"LÐàŸ?™?ØØ)Ø)Ø%Ø)Ø'ð +ó 
Ðð Ÿ,š,ØØ#ñ
ð ñ
ˆð
 *¨!Õ,ˆØ8<¿¹Ò8O˜Ÿ™ OÔ4ÐUYˆä)Ø-Ø'ô
ð 	
rK   )r6   rŽ   rc  rd  )T)NNNNNNN)rL   rM   rN   rO   r!   rj  rm  r   r   r   rI   rQ   rR   rS   rT   s   @@r9   ra  ra  ð  sF   ù‡ € ÷ò /ò0ð  ØØ÷K
ñ K
ó ó ó  ÷K
ð K
rK   ra  c                   ó\   a a€ ] tR tRt oV 3R lt]]RV3R lR ll4       4       tRtVt	V ;t
# )ÚMarkupLMForQuestionAnsweringiZ  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# ©F)rf  N)
r    r!   Ú
num_labelsra  rQ  r   r#   r%   Ú
qa_outputsre  rl   s   &&€r9   r!   Ú%MarkupLMForQuestionAnswering.__init__]  sU   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒä% fÀÔFˆŒÜŸ)š) F×$6Ñ$6¸×8IÑ8IÓJˆŒð 	�‰ÖrK   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[ P                  R,          RS[S[,          RS[S[ P                  ,          S[,          /# )rš   r   NrC   rD   rô   rŒ   rk   ru   Ústart_positionsÚend_positionsr  r�   )rA   rŸ   r   r   r‰   r   )r    rU   s   "€r9   r¡   Ú)MarkupLMForQuestionAnswering.__annotate__i  sì   ø€ ÷ T
ñ T
á—<‘< $Õ&ðT
ñ Ÿ™ tÕ+ðT
ñ Ÿ™ tÕ+ð	T
ñ
 Ÿ™ tÕ+ðT
ñ Ÿ™ tÕ+ðT
ñ —l‘l TÕ)ðT
ñ —|‘| dÕ*ðT
ñ Ÿ™¨Õ,ðT
ñ —|‘| dÕ*ðT
ñ Ñ+Õ,ðT
ñ 
‰u�|‰|Õ	Ñ;Õ	;ñT
rK   c
                óô  € V P                   ! V3RVRVRVRVRVRV/V
B pV^ ,          pV P                  V4      pVP                  ^RR7      w  rï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       V	P                  ^ V4       \        VR	7      pV! Wè4      pV! Wù4      pVV,           ^,          p\        VVVVP                  VP                  R
7      # )a½  
xpath_tags_seq (`torch.LongTensor` of shape `(batch_size, sequence_length, config.max_depth)`, *optional*):
    Tag IDs for each token in the input sequence, padded up to config.max_depth.
xpath_subs_seq (`torch.LongTensor` of shape `(batch_size, sequence_length, config.max_depth)`, *optional*):
    Subscript IDs for each token in the input sequence, padded up to config.max_depth.

Examples:

```python
>>> from transformers import AutoProcessor, MarkupLMForQuestionAnswering
>>> import torch

>>> processor = AutoProcessor.from_pretrained("microsoft/markuplm-base-finetuned-websrc")
>>> model = MarkupLMForQuestionAnswering.from_pretrained("microsoft/markuplm-base-finetuned-websrc")

>>> html_string = "<html> <head> <title>My name is Niels</title> </head> </html>"
>>> question = "What's his name?"

>>> encoding = processor(html_string, questions=question, return_tensors="pt")

>>> with torch.no_grad():
...     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]
>>> processor.decode(predict_answer_tokens).strip()
'Niels'
```rC   rD   rô   rŒ   rk   ru   r=   N)Úignore_index)ÚlossÚstart_logitsÚ
end_logitsr›   rR  r?   )rQ  r~  ÚsplitÚsqueezer  Úlenrr   Úclamp_r   r   r›   rR  )r5   r   rC   rD   rô   rŒ   rk   ru   r�  r‚  r  Úoutputsré   Úlogitsr‡  rˆ  Ú
total_lossÚignored_indexÚloss_fctÚ
start_lossÚend_losss   &&&&&&&&&&,          r9   rI   Ú$MarkupLMForQuestionAnswering.forwardg  s›  € ðZ —-’-Øñ	
à)ð	
ð *ð	
ð *ð		
ð
 *ð	
ð &ð	
ð (ð	
ð ñ	
ˆð " !�*ˆà—‘ Ó1ˆØ#)§<¡<°°r <Ó#:Ñ ˆØ#×+Ñ+¨BÓ/×:Ñ:Ó<ˆØ×'Ñ'¨Ó+×6Ñ6Ó8ˆ
àˆ
ØÒ&¨=Ò+Dä�?×'Ñ'Ó)Ó*¨QÔ.Ø"1×"9Ñ"9¸"Ó"=�Ü�=×%Ñ%Ó'Ó(¨1Ô,Ø -× 5Ñ 5°bÓ 9�à(×-Ñ-¨aÓ0ˆMØ×"Ñ" 1 mÔ4Ø× Ñ   MÔ2ä'°]ÔCˆHÙ! ,Ó@ˆJÙ 
Ó:ˆHØ$ xÕ/°1Õ4ˆJä+ØØ%Ø!Ø!×/Ñ/Ø×)Ñ)ô
ð 	
rK   )rQ  r}  r~  )	NNNNNNNNN©rL   rM   rN   rO   r!   r   r   rI   rQ   rR   rS   rT   s   @@r9   rz  rz  Z  s4   ù‡ € õð Ø÷T
ñ T
ó ó ÷T
ð T
rK   rz  zC
    MarkupLM Model with a `token_classification` head on top.
    )Úcustom_introc                   ó\   a a€ ] tR tRt oV 3R lt]]RV3R lR ll4       4       tRtVt	V ;t
# )ÚMarkupLMForTokenClassificationiÀ  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# r|  )r    r!   r}  ra  rQ  Úclassifier_dropoutr(   r   r'   r)   r#   r%   Ú
classifierre  ©r5   r6   rš  r8   s   && €r9   r!   Ú'MarkupLMForTokenClassification.__init__Ç  sŠ   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒä% fÀÔFˆŒà)/×)BÑ)BÒ)NˆF×%Ò%ÐTZ×TnÑTnð 	ô —z’zÐ"4Ó5ˆŒÜŸ)š) F×$6Ñ$6¸×8IÑ8IÓJˆŒð 	�‰ÖrK   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[S[,          RS[S[ P                  ,          S[,          /
# ©rš   r   NrC   rD   rô   rŒ   rk   ru   Úlabelsr  r�   )rA   rŸ   r   r   r‰   r   )r    rU   s   "€r9   r¡   Ú+MarkupLMForTokenClassification.__annotate__×  s×   ø€ ÷ D
ñ D
á—<‘< $Õ&ðD
ñ Ÿ™ tÕ+ðD
ñ Ÿ™ tÕ+ð	D
ñ
 Ÿ™ tÕ+ðD
ñ Ÿ™ tÕ+ðD
ñ —l‘l TÕ)ðD
ñ —|‘| dÕ*ðD
ñ —‘˜tÕ#ðD
ñ Ñ+Õ,ðD
ñ 
‰u�|‰|Õ	™~Õ	-ñD
rK   c	                óR  € V P                   ! V3RVRVRVRVRVRV/V	B 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VV
P                  V
P                  R7      # )
aé  
xpath_tags_seq (`torch.LongTensor` of shape `(batch_size, sequence_length, config.max_depth)`, *optional*):
    Tag IDs for each token in the input sequence, padded up to config.max_depth.
xpath_subs_seq (`torch.LongTensor` of shape `(batch_size, sequence_length, config.max_depth)`, *optional*):
    Subscript IDs for each token in the input sequence, padded up to config.max_depth.
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 AutoProcessor, AutoModelForTokenClassification
>>> import torch

>>> processor = AutoProcessor.from_pretrained("microsoft/markuplm-base")
>>> processor.parse_html = False
>>> model = AutoModelForTokenClassification.from_pretrained("microsoft/markuplm-base", num_labels=7)

>>> nodes = ["hello", "world"]
>>> xpaths = ["/html/body/div/li[1]/div/span", "/html/body/div/li[1]/div/span"]
>>> node_labels = [1, 2]
>>> encoding = processor(nodes=nodes, xpaths=xpaths, node_labels=node_labels, return_tensors="pt")

>>> with torch.no_grad():
...     outputs = model(**encoding)

>>> loss = outputs.loss
>>> logits = outputs.logits
```rC   rD   rô   rŒ   rk   ru   N©r†  rŽ  r›   rR  r?   )	rQ  r›  r   r  r6   r}  r   r›   rR  )r5   r   rC   rD   rô   rŒ   rk   ru   r   r  r�  ré   rí   r†  r‘  s   &&&&&&&&&,     r9   rI   Ú&MarkupLMForTokenClassification.forwardÕ  sÝ   € ðV —-’-Øñ	
à)ð	
ð *ð	
ð *ð		
ð
 *ð	
ð &ð	
ð (ð	
ð ñ	
ˆð " !�*ˆØ ŸO™O¨OÓ<ÐàˆØÒÜ'Ó)ˆHÙØ!×&Ñ& r¨4¯;©;×+AÑ+AÓBØ—‘˜B“óˆDô
 %ØØ$Ø!×/Ñ/Ø×)Ñ)ô	
ð 	
rK   )r›  r)   rQ  r}  ©NNNNNNNNr•  rT   s   @@r9   r˜  r˜  À  s4   ù‡ € õð Ø÷D
ñ D
ó ó ÷D
ð D
rK   r˜  z 
    MarkupLM Model transformer with a sequence classification/regression head on top (a linear layer on top of the
    pooled output) e.g. for GLUE tasks.
    c                   ó\   a a€ ] tR tRt oV 3R lt]]RV3R lR ll4       4       tRtVt	V ;t
# )Ú!MarkupLMForSequenceClassificationi  c                óv  <€ \         SV `  V4       VP                  V n        Wn        \	        V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        V P                  4        R # r¥   )r    r!   r}  r6   ra  rQ  rš  r(   r   r'   r)   r#   r%   r›  re  rœ  s   && €r9   r!   Ú*MarkupLMForSequenceClassification.__init__&  s�   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒØŒä% fÓ-ˆŒà)/×)BÑ)BÒ)NˆF×%Ò%ÐTZ×TnÑTnð 	ô —z’zÐ"4Ó5ˆŒÜŸ)š) F×$6Ñ$6¸×8IÑ8IÓJˆŒð 	�‰ÖrK   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[S[,          RS[S[ P                  ,          S[,          /
# rŸ  )rA   rŸ   r   r   r‰   r   )r    rU   s   "€r9   r¡   Ú.MarkupLMForSequenceClassification.__annotate__7  sØ   ø€ ÷ T
ñ T
á—<‘< $Õ&ðT
ñ Ÿ™ tÕ+ðT
ñ Ÿ™ tÕ+ð	T
ñ
 Ÿ™ tÕ+ðT
ñ Ÿ™ tÕ+ðT
ñ —l‘l TÕ)ðT
ñ —|‘| dÕ*ðT
ñ —‘˜tÕ#ðT
ñ Ñ+Õ,ðT
ñ 
‰u�|‰|Õ	Ñ7Õ	7ñT
rK   c	                ó  € V P                   ! V3RVRVRVRVRVRV/V	B p
V
^,          pV P                  V4      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VV
P                   V
P"                  R7      # )a  
xpath_tags_seq (`torch.LongTensor` of shape `(batch_size, sequence_length, config.max_depth)`, *optional*):
    Tag IDs for each token in the input sequence, padded up to config.max_depth.
xpath_subs_seq (`torch.LongTensor` of shape `(batch_size, sequence_length, config.max_depth)`, *optional*):
    Subscript IDs for each token in the input sequence, padded up to config.max_depth.
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 AutoProcessor, AutoModelForSequenceClassification
>>> import torch

>>> processor = AutoProcessor.from_pretrained("microsoft/markuplm-base")
>>> model = AutoModelForSequenceClassification.from_pretrained("microsoft/markuplm-base", num_labels=7)

>>> html_string = "<html> <head> <title>Page Title</title> </head> </html>"
>>> encoding = processor(html_string, return_tensors="pt")

>>> with torch.no_grad():
...     outputs = model(**encoding)

>>> loss = outputs.loss
>>> logits = outputs.logits
```rC   rD   rô   rŒ   rk   ru   NÚ
regressionÚsingle_label_classificationÚmulti_label_classificationr£  r?   )rQ  r)   r›  r6   Úproblem_typer}  rp   rA   rs   r|   r   rŠ  r   r  r   r   r›   rR  )r5   r   rC   rD   rô   rŒ   rk   ru   r   r  r�  rÎ   rŽ  r†  r‘  s   &&&&&&&&&,     r9   rI   Ú)MarkupLMForSequenceClassification.forward5  sÊ  € ðT —-’-Øñ	
à)ð	
ð *ð	
ð *ð		
ð
 *ð	
ð &ð	
ð (ð	
ð ñ	
ˆð   �
ˆàŸ™ ]Ó3ˆØ—‘ Ó/ˆàˆØÓØ�{‰{×'Ñ'Ò/Ø—?‘? 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Ü,Ó.�Ù Ó/�ä'ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
rK   )r›  r6   r)   rQ  r}  r¥  r•  rT   s   @@r9   r§  r§    s4   ù‡ € õð Ø÷T
ñ T
ó ó ÷T
ð T
rK   r§  )r  )rz  r§  r˜  ra  rP  )ArP   Úcollections.abcr   rA   r   Útorch.nnr   r   r   Ú r   rU  Úactivationsr   Úmodeling_layersr	   Úmodeling_outputsr
   r   r   r   r   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úpytorch_utilsr   Úutilsr   r   r   r   Úutils.genericr   Úutils.output_capturingr   Úconfiguration_markuplmr   Ú
get_loggerrL   Úloggerrö   r   rW   r“   r®   r¾   rÆ   rÑ   rÚ   rä   r  r  r%  r1  rC  rP  ra  rz  r˜  r§  Ú__all__r[  rK   r9   Ú<module>rÂ     sê  ðñ å $ã Ý ß AÑ Aå &Ý !Ý 9÷÷ ÷ GÝ &Ý 6ß RÓ RÝ 7Ý 5Ý 2ð 
×	Ò	˜HÓ	%€ô/ �b—i‘iô / ôdn˜Ÿ™ô nôd˜Ÿ™ô ô˜2Ÿ9™9ô ô �R—Y‘Yô ô�R—Y‘Yô ô  b§i¡iô ô$˜rŸy™yô ô"!˜"Ÿ)™)ô !÷%ô.3)˜BŸI™Iô 3)ôn˜Ÿ	™	ô ô.Ð.ô ôD
�b—i‘iô 
ð2 ôi˜oó ió ðið$ ôf
Ð+ó f
ó ðf
ðR ôb
Ð#:ó b
ó ðb
ñJ ðôô
V
Ð%<ó V
óð
V
ñr ðôôg
Ð(?ó g
óðg
òT‚rK   