+
    œ°³j~Ñ  ã                   ój  € ^ 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Ht ^RIHtHtHt ^RIHt ^RIHtHt ^R	IHt ^R
IHtHtHtHtHtHt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, ^RI-H.t.H/t/ ^RI0H1t1 ^RI2H3t3 ],Ph                  ! ]54      t6 ! R R]Pn                  4      t8R@R R llt9 ! R R]Pn                  4      t: ! R R]Pn                  4      t; ! R R]Pn                  4      t< ! R R]Pn                  4      t= ! R R]Pn                  4      t> ! R  R!]Pn                  4      t? ! R" R#]4      t@ ! R$ R%]Pn                  4      tA]+ ! R& R']$4      4       tB ! R( R)]Pn                  4      tC ! R* R+]Pn                  4      tD]+! R,R-7       ! R. R/]B4      4       tE]+ ! R0 R1]B4      4       tF ! R2 R3]Pn                  4      tG]+! R4R-7       ! R5 R6]B4      4       tH]+ ! R7 R8]B4      4       tI]+ ! R9 R:]B4      4       tJ]+ ! R; R<]B4      4       tK]+! R=R-7       ! R> R?]B]4      4       tL. RAOtMR# )Bé    )ÚCallableN)ÚBCEWithLogitsLossÚCrossEntropyLossÚMSELoss)Úinitialization)ÚACT2FNÚgelu)ÚCacheÚDynamicCacheÚEncoderDecoderCache)ÚGenerationMixin)Úcreate_bidirectional_maskÚcreate_causal_mask)ÚGradientCheckpointingLayer)Ú)BaseModelOutputWithPastAndCrossAttentionsÚ,BaseModelOutputWithPoolingAndCrossAttentionsÚ!CausalLMOutputWithCrossAttentionsÚMaskedLMOutputÚMultipleChoiceModelOutputÚQuestionAnsweringModelOutputÚSequenceClassifierOutputÚTokenClassifierOutput)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)Úapply_chunking_to_forward)ÚTransformersKwargsÚauto_docstringÚlogging)Úcan_return_tupleÚmerge_with_config_defaults)Úcapture_outputs)ÚCamembertConfigc                   óp   a a€ ] tR t^8t oRtV 3R ltRV3R lR llt]R 4       t]R	R l4       t	Rt
VtV ;t# )
ÚCamembertEmbeddingszGConstruct the embeddings from word, position and token_type embeddings.c                óˆ  <€ \         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                  R7      V n
        \        P                  ! VP                  4      V n        \        P                  ! \         P"                  ! VP$                  4      P'                  R4      RR7      V n        \        P                  ! \         P*                  ! V P(                  P-                  4       \         P.                  R7      RR7      V n        VP                  V n        \        P                  ! VP$                  VP
                  V P2                  R 7      V n        R# ))Úpadding_idx©ÚepsF)Ú
persistent)ÚdtypeN©é   éÿÿÿÿ)ÚsuperÚ__init__ÚnnÚ	EmbeddingÚ
vocab_sizeÚhidden_sizeÚpad_token_idÚword_embeddingsÚtype_vocab_sizeÚtoken_type_embeddingsÚ	LayerNormÚlayer_norm_epsÚDropoutÚhidden_dropout_probÚdropoutÚBufferÚtorchÚarangeÚmax_position_embeddingsÚexpandÚposition_idsÚzerosÚsizeÚlongÚtoken_type_idsr'   Úposition_embeddings©ÚselfÚconfigÚ	__class__s   &&€Úq/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/camembert/modeling_camembert.pyr0   ÚCamembertEmbeddings.__init__;   s%  ø€ Ü‰ÑÔÜ!Ÿ|š|¨F×,=Ñ,=¸v×?QÑ?QÐ_e×_rÑ_rÔsˆÔÜ%'§\¢\°&×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ˆÔÜ Ÿiši¬¯ª°D×4EÑ4E×4JÑ4JÓ4LÔTY×T^ÑT^Ô(_ÐlqÔrˆÔà!×.Ñ.ˆÔÜ#%§<¢<Ø×*Ñ*¨F×,>Ñ,>ÈD×L\ÑL\ô$
ˆÖ ó    c                óÚ   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[RS[ P                  /# )é   Ú	input_idsNrG   rC   Úinputs_embedsÚpast_key_values_lengthÚreturn)r?   Ú
LongTensorÚFloatTensorÚintÚTensor)ÚformatÚ__classdict__s   "€rM   Ú__annotate__Ú CamembertEmbeddings.__annotate__K   sw   ø€ ÷ .ñ .á×#Ñ# dÕ*ð.ñ ×(Ñ(¨4Õ/ð.ñ ×&Ñ&¨Õ-ð	.ñ
 ×(Ñ(¨4Õ/ð.ñ !$ð.ñ 
�‰ñ.rO   c                ó4  € Vf=   Ve   V P                  WP                  V4      pMV P                  W@P                  4      pVe   VP                  4       pMVP                  4       R R pVw  rxVf¿   \	        V R4      '       dr   V P
                  P                  VP                  4      P                  VP                  ^ ,          R4      p	\        P                  ! V	^VR7      p	V	P                  Wx4      pM;\        P                  ! V\        P                  V P                  P                  R7      pVf   V P                  V4      pV P!                  V4      p
WJ,           pV P#                  V4      pW¼,           pV P%                  V4      pV P'                  V4      pV# )NrG   )ÚdimÚindex©r+   Údevicer.   )Ú"create_position_ids_from_input_idsr'   Ú&create_position_ids_from_inputs_embedsrE   ÚhasattrrG   Útorb   rB   Úshaper?   ÚgatherrD   rF   rC   r6   r8   rH   r9   r=   )rJ   rR   rG   rC   rS   rT   Úinput_shapeÚ
batch_sizeÚ
seq_lengthÚbuffered_token_type_idsr8   Ú
embeddingsrH   s   &&&&&&       rM   ÚforwardÚCamembertEmbeddings.forwardK   st  € ð ÒØÒ$à#×FÑFØ×/Ñ/Ð1Gó ‘ð  $×JÑJÈ=×ZjÑZjÓk�àÒ Ø#Ÿ.™.Ó*‰Kà'×,Ñ,Ó.¨s°Ð3ˆKà!,Ñˆ
ð
 Ò!Ü�tÐ-×.Ò.à*.×*=Ñ*=×*@Ñ*@À×ATÑATÓ*U×*\Ñ*\Ð]i×]oÑ]oÐpqÕ]rÐtvÓ*wÐ'Ü*/¯,ª,Ð7NÐTUÐ]iÔ*jÐ'Ø!8×!?Ñ!?À
Ó!W‘ä!&§¢¨[ÄÇ
Á
ÐSW×SdÑSd×SkÑSkÔ!l�àÒ Ø ×0Ñ0°Ó;ˆMØ $× :Ñ :¸>Ó JÐØ"Õ:ˆ
à"×6Ñ6°|ÓDÐØÕ5ˆ
à—^‘^ JÓ/ˆ
Ø—\‘\ *Ó-ˆ
ØÐrO   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
Nra   r.   )rE   r?   r@   rF   rb   Ú	unsqueezerB   )rS   r'   ri   Úsequence_lengthrC   s   &&   rM   rd   Ú:CamembertEmbeddings.create_position_ids_from_inputs_embeds{   sn   € ð $×(Ñ(Ó*¨3¨BÐ/ˆØ% a�.ˆä—|’|Ø˜!�O˜_Õ:¸QÕ>ÄeÇjÁjÐYf×YmÑYmô
ˆð ×%Ñ% aÓ(×/Ñ/°Ó<Ð<rO   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_   )ÚnerX   r?   ÚcumsumÚtype_asrF   )rR   r'   rT   ÚmaskÚincremental_indicess   &&&  rM   rc   Ú6CamembertEmbeddings.create_position_ids_from_input_ids�   sW   € ð �|‰|˜KÓ(×,Ñ,Ó.ˆÜ$Ÿ|š|¨D°aÔ8×@Ñ@ÀÓFÐI_Õ_ÐcgÕgÐØ"×'Ñ'Ó)¨KÕ7Ð7rO   )r9   r=   r'   rH   rC   r8   rG   r6   )NNNNr   )r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r0   rn   Ústaticmethodrd   rc   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rL   r[   s   @@rM   r%   r%   8   sE   ù‡ € ÙQõ
÷ .ò .ð` ñ=ó ð=ð" ó8ó ÷8ð 8rO   r%   c                ó  € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R,          R\        R	\
        \        ,          /# )
rQ   ÚmoduleÚqueryÚkeyÚvalueÚattention_maskNÚscalingr=   Úkwargs)r1   ÚModuler?   rY   Úfloatr   r   )rZ   s   "rM   r\   r\   ž   s{   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô �T�\ð%ô ð%ô Ô'Õ(ñ%rO   c                 ó¶  € Vf   VP                  R4      R,          p\        P                  ! WP                  ^^4      4      V,          pVe	   W„,           p\        P
                  P                  VRR7      p\        P
                  P                  W†V P                  R7      p\        P                  ! Wƒ4      p	V	P                  ^^4      P                  4       p	W˜3# )Nru   )ÚpÚtrainingr.   ç      à¿)
rE   r?   ÚmatmulÚ	transposer1   Ú
functionalÚsoftmaxr=   r’   Ú
contiguous)
r‡   rˆ   r‰   rŠ   r‹   rŒ   r=   r�   Úattn_weightsÚattn_outputs
   &&&&&&&,  rM   Úeager_attention_forwardr›   ž   s±   € ð ‚Ø—*‘*˜R“. DÕ(ˆô —<’< §}¡}°Q¸Ó':Ó;¸gÕE€LàÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2Ð(Ó>€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€Lä—,’,˜|Ó3€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$rO   c                   óL   a a€ ] tR t^ºt oRV 3R lltRV3R lR lltRtVtV ;t# )ÚCamembertSelfAttentionc                ót  <€ \         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	        V P                  R,          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        W n        W0n        R# ©r   Úembedding_sizezThe hidden size (z6) is not a multiple of the number of attention heads (Ú)Nr“   )r/   r0   r4   Únum_attention_headsre   Ú
ValueErrorrK   rX   Úattention_head_sizeÚall_head_sizerŒ   r1   ÚLinearrˆ   r‰   rŠ   r;   Úattention_probs_dropout_probr=   Ú
is_decoderÚ	is_causalÚ	layer_idx©rJ   rK   r©   rª   rL   s   &&&&€rM   r0   ÚCamembertSelfAttention.__init__»   sM  ø€ Ü‰ÑÔØ×Ñ × :Ñ :Õ:¸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ˆÔØ×/Ñ/°Õ5ˆŒä—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ˆŒà ×+Ñ+ˆŒØ"ŒØ"ŽrO   c                ó°   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[R,          RS[S[,          RS[S[ P                  ,          /# )rQ   Úhidden_statesr‹   NÚpast_key_valuesr�   rU   ©r?   rY   rW   r
   r   r   Útuple)rZ   r[   s   "€rM   r\   Ú#CamembertSelfAttention.__annotate__Ó   s_   ø€ ÷ ')ñ ')á—|‘|ð')ñ ×)Ñ)¨DÕ0ð')ñ  �ð	')ñ
 Ñ+Õ,ð')ñ 
‰u�|‰|Õ	ñ')rO   c                ó   € VP                   R R p. VORNV P                  N5pV P                  V4      P                  ! V!  P	                  ^^4      pV P                  V4      P                  ! V!  P	                  ^^4      pV P                  V4      P                  ! V!  P	                  ^^4      p	VeC   Tp
\        V\        4      '       d   VP                  p
V
P                  W‰V P                  4      w  r‰\        P                  ! V P                  P                  \         4      pT! V VVV	V3RV P"                  '       g   RMV P$                  P&                  RV P(                  /VB w  rÍVP*                  ! . VORN5!  P-                  4       pWÍ3# )Nr=   ç        rŒ   r.   )rg   r¤   rˆ   Úviewr•   r‰   rŠ   Ú
isinstancer   Úself_attention_cacheÚupdaterª   r   Úget_interfacerK   Ú_attn_implementationr›   r’   r=   r‘   rŒ   Úreshaper˜   )rJ   r®   r‹   r¯   r�   ri   Úhidden_shapeÚquery_layerÚ	key_layerÚvalue_layerÚcurrent_past_key_valuesÚattention_interfacerš   r™   s   &&&&,         rM   rn   ÚCamembertSelfAttention.forwardÓ   s‰  € ð $×)Ñ)¨#¨2Ð.ˆØC˜ÐC bÐC¨$×*BÑ*BÑCˆð —j‘j Ó/×4Ò4°lÑC×MÑMÈaÐQRÓSˆØ—H‘H˜]Ó+×0Ò0°,Ñ?×IÑIÈ!ÈQÓOˆ	Ø—j‘j Ó/×4Ò4°lÑC×MÑMÈaÐQRÓSˆàÒ&à&5Ð#Ü˜/Ô+>×?Ò?Ø*9×*NÑ*NÐ'ð &=×%CÑ%CÀIÐ\`×\jÑ\jÓ%kÑ"ˆIä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ	%
ð  $Ÿ}Ÿ}˜}‘C°$·,±,·.±.ð	%
ð —L‘Lð	%
ð ñ	%
Ñ!ˆð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØÐ(Ð(rO   )r¥   r¤   rK   r=   r©   r¨   r‰   rª   r¢   rˆ   rŒ   rŠ   ©FN)NN©	r|   r}   r~   r   r0   rn   r‚   rƒ   r„   r…   s   @@rM   r�   r�   º   s   ù‡ € ÷#÷0')÷ ')ò ')rO   r�   c                   óL   a a€ ] tR t^ýt oRV 3R lltRV3R lR lltRtVtV ;t# )ÚCamembertCrossAttentionc                óR  <€ \         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	        V P                  R,          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        W n        W0n        R# rŸ   )r/   r0   r4   r¢   re   r£   rK   rX   r¤   r¥   rŒ   r1   r¦   rˆ   r‰   rŠ   r;   r§   r=   r©   rª   r«   s   &&&&€rM   r0   Ú CamembertCrossAttention.__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ˆÔØ×/Ñ/°Õ5ˆŒä—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ˆŒà"ŒØ"ŽrO   c                óØ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[R,          RS[S[,          RS[S[ P                  ,          /# )rQ   r®   Úencoder_hidden_statesNr‹   r¯   r�   rU   )r?   rY   rW   r   r   r   r±   )rZ   r[   s   "€rM   r\   Ú$CamembertCrossAttention.__annotate__  su   ø€ ÷ 1)ñ 1)á—|‘|ð1)ñ  %×0Ñ0°4Õ7ð1)ñ ×)Ñ)¨DÕ0ð	1)ñ
 -¨tÕ3ð1)ñ Ñ+Õ,ð1)ñ 
‰u�|‰|Õ	ñ1)rO   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e&   VP
                  P                  V P                  4      MRp	Vel   V	'       dd   VP                  P                  V P                  ,          P                  p
VP                  P                  V P                  ,          P                  pMÅ. VP                   R R 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eB   VP                  P                  W«V P                  4      w  r«RVP
                  V P                  &   \        P                   ! V P"                  P$                  \&        4      pT! V VV
VV3RV P(                  '       g   RMV P*                  P,                  RV P.                  /VB w  rïVP0                  ! . VORN5!  P3                  4       pWï3# )NFTr=   r´   rŒ   r.   )rg   r¤   rˆ   rµ   r•   Ú
is_updatedÚgetrª   Úcross_attention_cacheÚlayersÚkeysÚvaluesr‰   rŠ   r¸   r   r¹   rK   rº   r›   r’   r=   r‘   rŒ   r»   r˜   )rJ   r®   rÊ   r‹   r¯   r�   ri   r¼   r½   rÍ   r¾   r¿   Úkv_shaperÁ   rš   r™   s   &&&&&,          rM   rn   ÚCamembertCrossAttention.forward  s  € ð $×)Ñ)¨#¨2Ð.ˆàC˜ÐC bÐC¨$×*BÑ*BÑCˆð —j‘j Ó/×4Ñ4°\ÓB×LÑLÈQÐPQÓRˆàGVÒGb�_×/Ñ/×3Ñ3°D·N±NÔCÐhmˆ
ØÒ&¯:à'×=Ñ=×DÑDÀTÇ^Á^ÕT×YÑYˆIØ)×?Ñ?×FÑFÀtÇ~Á~ÕV×]Ñ]‰KàXÐ.×4Ñ4°S°bÐ9ÐX¸2ÐX¸t×?WÑ?WÑXˆHØŸ™Ð!6Ó7×<Ñ<¸XÓF×PÑPÐQRÐTUÓVˆIØŸ*™*Ð%:Ó;×@Ñ@ÀÓJ×TÑTÐUVÐXYÓZˆKàÒ*à)8×)NÑ)N×)UÑ)UØ¨D¯N©Nó*Ñ&�	ð >B�×*Ñ*¨4¯>©>Ñ:ä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ	%
ð  $Ÿ}Ÿ}˜}‘C°$·,±,·.±.ð	%
ð —L‘Lð	%
ð ñ	%
Ñ!ˆð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØÐ(Ð(rO   )r¥   r¤   rK   r=   r©   r‰   rª   r¢   rˆ   rŒ   rŠ   rÃ   )NNNrÄ   r…   s   @@rM   rÆ   rÆ   ý   s   ù‡ € ÷#÷.1)÷ 1)ò 1)rO   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# )ÚCamembertSelfOutputiI  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/   r0   r1   r¦   r4   Údenser9   r:   r;   r<   r=   rI   s   &&€rM   r0   ÚCamembertSelfOutput.__init__J  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŽrO   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# ©rQ   r®   Úinput_tensorrU   ©r?   rY   )rZ   r[   s   "€rM   r\   Ú CamembertSelfOutput.__annotate__P  ó1   ø€ ÷ ñ ¡U§\¡\ð ÁÇÁð ÑRW×R^ÑR^ñ rO   c                óx   € V P                  V4      pV P                  V4      pV P                  W,           4      pV# ©N©rÙ   r=   r9   ©rJ   r®   rÝ   s   &&&rM   rn   ÚCamembertSelfOutput.forwardP  ó5   € ØŸ
™
 =Ó1ˆØŸ™ ]Ó3ˆØŸ™ }Õ'CÓDˆØÐrO   ©r9   rÙ   r=   rÄ   r…   s   @@rM   rÖ   rÖ   I  ó   ù‡ € õ>÷÷ ð rO   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# )ÚCamembertAttentioniW  c                ó–   <€ \         SV `  4        W@n        V'       d   \        M\        pV! WVR 7      V n        \        V4      V n        R# )©r©   rª   N)r/   r0   Úis_cross_attentionrÆ   r�   rJ   rÖ   Úoutput)rJ   rK   r©   rª   rí   Úattention_classrL   s   &&&&& €rM   r0   ÚCamembertAttention.__init__X  s9   ø€ Ü‰ÑÔØ"4Ôß5GÕ1ÔMcˆÙ# FÈ9ÔUˆŒ	Ü)¨&Ó1ˆŽrO   c                ó   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[S[,          RS[S[ P                  ,          /# ©	rQ   r®   r‹   NrÊ   Úencoder_attention_maskr¯   r�   rU   r°   )rZ   r[   s   "€rM   r\   ÚCamembertAttention.__annotate___  s‰   ø€ ÷ .ñ .á—|‘|ð.ñ ×)Ñ)¨DÕ0ð.ñ  %×0Ñ0°4Õ7ð	.ñ
 !&× 1Ñ 1°DÕ 8ð.ñ  �ð.ñ Ñ+Õ,ð.ñ 
‰u�|‰|Õ	ñ.rO   c           	     óŒ   € V P                   '       g   TMTpV P                  ! V3R VRVRV/VB w  rxV P                  Wq4      pWx3# )rÊ   r‹   r¯   )rí   rJ   rî   )	rJ   r®   r‹   rÊ   ró   r¯   r�   Úattention_outputr™   s	   &&&&&&,  rM   rn   ÚCamembertAttention.forward_  sm   € ð 04×/F×/FÐ/F™ÐLbˆØ)-¯ªØñ*
à"7ð*
ð *ð*
ð ,ð	*
ð
 ñ*
Ñ&Ðð  Ÿ;™;Ð'7ÓGÐØÐ-Ð-rO   )rí   rî   rJ   )FNF©NNNNrÄ   r…   s   @@rM   rê   rê   W  s   ù‡ € ÷2÷.÷ .ò .rO   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# )ÚCamembertIntermediateit  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/   r0   r1   r¦   r4   Úintermediate_sizerÙ   r¶   Ú
hidden_actÚstrr   Úintermediate_act_fnrI   s   &&€rM   r0   ÚCamembertIntermediate.__init__u  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3KÑ3KÓLˆŒ
Ü�f×'Ñ'¬×-Ò-Ü'-¨f×.?Ñ.?Õ'@ˆDÖ$à'-×'8Ñ'8ˆDÖ$rO   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©rQ   r®   rU   rÞ   )rZ   r[   s   "€rM   r\   Ú"CamembertIntermediate.__annotate__}  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ rO   c                óJ   € V P                  V4      pV P                  V4      pV# râ   ©rÙ   rÿ   )rJ   r®   s   &&rM   rn   ÚCamembertIntermediate.forward}  s&   € ØŸ
™
 =Ó1ˆØ×0Ñ0°Ó?ˆØÐrO   r  rÄ   r…   s   @@rM   rú   rú   t  s   ù‡ € õ9÷÷ ð rO   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# )ÚCamembertOutputiƒ  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/   r0   r1   r¦   rü   r4   rÙ   r9   r:   r;   r<   r=   rI   s   &&€rM   r0   ÚCamembertOutput.__init__„  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×7Ñ7¸×9KÑ9KÓLˆŒ
ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŽrO   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# rÜ   rÞ   )rZ   r[   s   "€rM   r\   ÚCamembertOutput.__annotate__Š  rà   rO   c                óx   € V P                  V4      pV P                  V4      pV P                  W,           4      pV# râ   rã   rä   s   &&&rM   rn   ÚCamembertOutput.forwardŠ  ræ   rO   rç   rÄ   r…   s   @@rM   r  r  ƒ  rè   rO   r  c                   óR   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VtV ;t	# )	ÚCamembertLayeri‘  c                óœ  <€ \         SV `  4        VP                  V n        ^V n        \	        WP
                  VR7      V n        VP
                  V n        VP                  V n        V P                  '       d5   V P
                  '       g   \        V  R24      h\	        VRVRR7      V n	        \        V4      V n        \        V4      V n        R# )r-   rì   z> should be used as a decoder model if cross attention is addedFT)r©   rª   rí   N)r/   r0   Úchunk_size_feed_forwardÚseq_len_dimrê   r¨   Ú	attentionÚadd_cross_attentionr£   Úcrossattentionrú   Úintermediater  rî   )rJ   rK   rª   rL   s   &&&€rM   r0   ÚCamembertLayer.__init__’  s°   ø€ Ü‰ÑÔØ'-×'EÑ'EˆÔ$ØˆÔÜ+¨F×>OÑ>OÐ[dÔeˆŒØ ×+Ñ+ˆŒØ#)×#=Ñ#=ˆÔ Ø×#×#Ð#Ø—?—?�?Ü  D 6Ð)gÐ!hÓiÐiÜ"4ØØØ#Ø#'ô	#ˆDÔô 2°&Ó9ˆÔÜ% fÓ-ˆŽrO   c                óð   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[S[,          RS[ P                  /# rò   )r?   rY   rW   r
   r   r   )rZ   r[   s   "€rM   r\   ÚCamembertLayer.__annotate__¥  s„   ø€ ÷ %ñ %á—|‘|ð%ñ ×)Ñ)¨DÕ0ð%ñ  %×0Ñ0°4Õ7ð	%ñ
 !&× 1Ñ 1°DÕ 8ð%ñ  �ð%ñ Ñ+Õ,ð%ñ 
�‰ñ%rO   c                ó8  € V P                   ! VV3R V/VB w  rxTp	V P                  '       dB   Ve>   \        V R4      '       g   \        RV  R24      hV P                  ! VRVV3R V/VB w  r¨T
p	\        V P                  V P                  V P                  V	4      pV# )r¯   Nr  z'If `encoder_hidden_states` are passed, z` has to be instantiated with cross-attention layers by setting `config.add_cross_attention=True`)	r  r¨   re   r£   r  r   Úfeed_forward_chunkr  r  )rJ   r®   r‹   rÊ   ró   r¯   r�   Úself_attention_outputÚ_rö   Úcross_attention_outputÚlayer_outputs   &&&&&&,     rM   rn   ÚCamembertLayer.forward¥  sâ   € ð $(§>¢>ØØñ$
ð ,ð$
ð ñ	$
Ñ Ðð 1Ðà�?�?ˆ?Ð4Ò@Ü˜4Ð!1×2Ò2Ü Ø=¸d¸Vð DDð Dóð ð
 )-×(;Ò(;Ø%ØØ%Ø&ñ	)ð
 !0ð)ð ñ)Ñ%Ð"ð  6Ðä0Ø×#Ñ# T×%AÑ%AÀ4×CSÑCSÐUeó
ˆð ÐrO   c                óJ   € V P                  V4      pV P                  W!4      pV# râ   )r  rî   )rJ   rö   Úintermediate_outputr   s   &&  rM   r  Ú!CamembertLayer.feed_forward_chunkÌ  s)   € Ø"×/Ñ/Ð0@ÓAÐØ—{‘{Ð#6ÓIˆØÐrO   )r  r  r  r  r  r¨   rî   r  râ   rø   )
r|   r}   r~   r   r0   rn   r  r‚   rƒ   r„   r…   s   @@rM   r  r  ‘  s   ù‡ € ÷.÷&%ò %÷Nò rO   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	# )ÚCamembertLMHeadiÒ  z,Camembert Head for masked language modeling.c                ó¸  <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        P                  ! VP                  VP                  R 7      V n        \        P                  ! VP                  VP                  4      V n
        \        P                  ! \        P                  ! VP                  4      4      V n        R# rØ   )r/   r0   r1   r¦   r4   rÙ   r9   r:   Ú
layer_normr3   ÚdecoderÚ	Parameterr?   rD   ÚbiasrI   s   &&€rM   r0   ÚCamembertLMHead.__init__Õ  s‡   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸ,š, v×'9Ñ'9¸v×?TÑ?TÔUˆŒä—y’y ×!3Ñ!3°V×5FÑ5FÓGˆŒÜ—L’L¤§¢¨V×->Ñ->Ó!?Ó@ˆŽ	rO   c                ó‚   € V P                  V4      p\        V4      pV P                  V4      pV P                  V4      pV# râ   )rÙ   r	   r(  r)  ©rJ   Úfeaturesr�   Úxs   &&, rM   rn   ÚCamembertLMHead.forwardÝ  s;   € Ø�J‰J�xÓ ˆÜ�‹GˆØ�O‰O˜AÓˆð �L‰L˜‹OˆàˆrO   )r+  r)  rÙ   r(  ©
r|   r}   r~   r   r€   r0   rn   r‚   rƒ   r„   r…   s   @@rM   r&  r&  Ò  s   ù‡ € Ù6õA÷ò rO   r&  c                   ó†   a a€ ] tR tRt o]tRtRtRtRt	Rt
RtR]R]R]/t]P"                  ! 4       V 3R l4       tRtVtV ;t# )	ÚCamembertPreTrainedModeliè  ÚrobertaTr®   Ú
attentionsÚcross_attentionsc                óÄ  <€ \         SV `  V4       \        V\        4      '       d#   \        P
                  ! VP                  4       R# \        V\        4      '       d‚   \        P                  ! VP                  \        P                  ! VP                  P                  R,          4      P                  R4      4       \        P
                  ! VP                  4       R# R# )zInitialize the weightsNr.   r,   )r/   Ú_init_weightsr¶   r&  ÚinitÚzeros_r+  r%   Úcopy_rC   r?   r@   rg   rB   rG   )rJ   r‡   rL   s   &&€rM   r9  Ú&CamembertPreTrainedModel._init_weights÷  s�   ø€ ô 	‰Ñ˜fÔ%Ü�fœo×.Ò.Ü�KŠK˜Ÿ™Ö$Ü˜Ô 3×4Ò4Ü�JŠJ�v×*Ñ*¬E¯LªL¸×9LÑ9L×9RÑ9RÐSUÕ9VÓ,W×,^Ñ,^Ð_fÓ,gÔhÜ�KŠK˜×-Ñ-Ö.ñ 5rO   © )r|   r}   r~   r   r#   Úconfig_classÚbase_model_prefixÚsupports_gradient_checkpointingÚ_supports_flash_attnÚ_supports_sdpaÚ_supports_flex_attnÚ_supports_attention_backendr  r�   rÆ   Ú_can_record_outputsr?   Úno_gradr9  r‚   rƒ   r„   r…   s   @@rM   r4  r4  è  se   ù‡ € à"€LØ!ÐØ&*Ð#ØÐØ€NØÐØ"&Ðà˜ØÐ,ØÐ3ðÐð ‡]‚]ƒ_ô/ó ÷/ð /rO   r4  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# )ÚCamembertEncoderi  c           
     óÊ   <€ \         SV `  4        Wn        \        P                  ! \        VP                  4       Uu. uF  p\        WR 7      NK  	  up4      V n        R# u upi ))rª   N)	r/   r0   rK   r1   Ú
ModuleListÚrangeÚnum_hidden_layersr  Úlayer)rJ   rK   ÚirL   s   && €rM   r0   ÚCamembertEncoder.__init__  sI   ø€ Ü‰ÑÔØŒÜ—]’]ÔQVÐW]×WoÑWoÔQpÓ#qÑQpÈA¤N°6×$GÑQpÑ#qÓrˆŽ
ùÒ#qs   ½A c                ó$  <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          RS[S[,          R	S[S[ P                  ,          S[,          /# )
rQ   r®   r‹   NrÊ   ró   r¯   Ú	use_cacher�   rU   )	r?   rY   rW   r
   Úboolr   r   r±   r   )rZ   r[   s   "€rM   r\   ÚCamembertEncoder.__annotate__  s�   ø€ ÷ 
ñ 
á—|‘|ð
ñ ×)Ñ)¨DÕ0ð
ñ  %×0Ñ0°4Õ7ð	
ñ
 !&× 1Ñ 1°DÕ 8ð
ñ  �ð
ñ ˜$•;ð
ñ Ñ+Õ,ð
ñ 
‰u�|‰|Õ	ÑHÕ	Hñ
rO   c                ó”   € \        V P                  4       F  w  r‰V	! VVV3R VRV/VB pK  	  \        TV'       d   VR7      # RR7      # )ró   r¯   N)Úlast_hidden_stater¯   )Ú	enumeraterN  r   )
rJ   r®   r‹   rÊ   ró   r¯   rR  r�   rO  Úlayer_modules
   &&&&&&&,  rM   rn   ÚCamembertEncoder.forward  sn   € ô  )¨¯©Ö4‰OˆAÙ(ØØØ%ñð (>ð	ð
 !0ðð ñŠMñ  5ô 9Ø+ß/8˜Oô
ð 	
à>Bô
ð 	
rO   )rK   rN  )NNNNNrÄ   r…   s   @@rM   rI  rI    s   ù‡ € õs÷

÷ 
ò 
rO   rI  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# )ÚCamembertPooleri"  c                ó¸   <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        P                  ! 4       V n        R # râ   )r/   r0   r1   r¦   r4   rÙ   ÚTanhÚ
activationrI   s   &&€rM   r0   ÚCamembertPooler.__init__#  s9   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸ'š'›)ˆŽrO   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r  rÞ   )rZ   r[   s   "€rM   r\   ÚCamembertPooler.__annotate__(  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ rO   c                ó\   € VR,          pV P                  V4      pV P                  V4      pV# )ºNNN)rc  r   )rÙ   r^  )rJ   r®   Úfirst_token_tensorÚpooled_outputs   &&  rM   rn   ÚCamembertPooler.forward(  s2   € ð +¨4Õ0ÐØŸ
™
Ð#5Ó6ˆØŸ™¨Ó6ˆØÐrO   )r^  rÙ   rÄ   r…   s   @@rM   r[  r[  "  s   ù‡ € õ$÷
÷ ð rO   r[  a
  
    The model can behave as an encoder (with only self-attention) as well as a decoder, in which case a layer of
    cross-attention is added between the self-attention layers, following the architecture described in [Attention is
    all you need](https://huggingface.co/papers/1706.03762) by Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit,
    Llion Jones, Aidan N. Gomez, Lukasz Kaiser and Illia Polosukhin.

    To behave as an decoder the model needs to be initialized with the `is_decoder` argument of the configuration set
    to `True`. To be used in a Seq2Seq model, the model needs to initialized with both `is_decoder` argument and
    `add_cross_attention` set to `True`; an `encoder_hidden_states` is then expected as an input to the forward pass.
    )Úcustom_introc                   ó„   a a€ ] tR tRt oRR.t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R
tVtV ;t# )ÚCamembertModeli1  r%   r  c                óÔ   <€ \         SV `  V4       Wn        R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
FN)r/   r0   rK   Úgradient_checkpointingr%   rm   rI  Úencoderr[  ÚpoolerÚ	post_init)rJ   rK   Úadd_pooling_layerrL   s   &&&€rM   r0   ÚCamembertModel.__init__@  sS   ø€ ô
 	‰Ñ˜Ô ØŒØ&+ˆÔ#ä-¨fÓ5ˆŒÜ'¨Ó/ˆŒç1B”o fÔ-ÈˆŒð 	�‰ÖrO   c                ó.   € V P                   P                  # râ   ©rm   r6   ©rJ   s   &rM   Úget_input_embeddingsÚ#CamembertModel.get_input_embeddingsQ  s   € Ø�‰×.Ñ.Ð.rO   c                ó&   € WP                   n        R # râ   rr  )rJ   rŠ   s   &&rM   Úset_input_embeddingsÚ#CamembertModel.set_input_embeddingsT  s   € Ø*/�‰Ö'rO   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[S[,          RS[S[ P                  ,          S[,          /# )rQ   rR   Nr‹   rG   rC   rS   rÊ   ró   r¯   rR  r�   rU   )r?   rY   r
   rS  r   r   r±   r   )rZ   r[   s   "€rM   r\   ÚCamembertModel.__annotate__Z  sÕ   ø€ ÷ ?
ñ ?
á—<‘< $Õ&ð?
ñ Ÿ™ tÕ+ð?
ñ Ÿ™ tÕ+ð	?
ñ
 —l‘l TÕ)ð?
ñ —|‘| dÕ*ð?
ñ  %Ÿ|™|¨dÕ2ð?
ñ !&§¡¨tÕ 3ð?
ñ  �ð?
ñ ˜$•;ð?
ñ Ñ+Õ,ð?
ñ 
‰u�|‰|Õ	ÑKÕ	Kñ?
rO   c
                óð  € VR J VR J,          '       d   \        R4      hV P                  P                  '       d   V	e   T	MV P                  P                  p	MRp	V	'       do   Vfk   Vf   V P                  P                  '       d5   \        \        V P                  R7      \        V P                  R7      4      M\        V P                  R7      pVe   VP                  4       M^ pV P                  VVVVVR7      pV P                  VVVVVR7      w  r'V P                  ! V3RVRVRVR	VR
V	RV/V
B pVP                  pV P                  e   V P                  V4      MR p\        VVVP                  R7      # )Nz:You must specify exactly one of input_ids or inputs_embedsF)rK   )rR   rC   rG   rS   rT   )r‹   ró   Úembedding_outputrÊ   r¯   r‹   rÊ   ró   r¯   rR  rC   )rV  Úpooler_outputr¯   )r£   rK   r¨   rR  Úis_encoder_decoderr   r   Úget_seq_lengthrm   Ú_create_attention_masksrl  rV  rm  r   r¯   )rJ   rR   r‹   rG   rC   rS   rÊ   ró   r¯   rR  r�   rT   r|  Úencoder_outputsÚsequence_outputre  s   &&&&&&&&&&,     rM   rn   ÚCamembertModel.forwardW  s£  € ð  ˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZà�;‰;×!×!Ð!Ø%.Ò%:™	ÀÇÁ×@UÑ@U‰IàˆIç˜Ò0ð )Ò4¸¿¹×8V×8VÐ8Vô $¤L¸¿¹Ô$DÄlÐZ^×ZeÑZeÔFfÔgä!¨¯©Ô5ð ð FUÒE` ×!?Ñ!?Ô!AÐfgÐàŸ?™?ØØ%Ø)Ø'Ø#9ð +ó 
Ðð 26×1MÑ1MØ)Ø#9Ø-Ø"7Ø+ð 2Nó 2
Ñ.ˆð Ÿ,š,Øñ	
à)ð	
ð #8ð	
ð $:ð		
ð
 ,ð	
ð  ð	
ð &ð	
ð ñ	
ˆð *×;Ñ;ˆØ8<¿¹Ò8O˜Ÿ™ OÔ4ÐUYˆä;Ø-Ø'Ø+×;Ñ;ô
ð 	
rO   c                óÞ   € V P                   P                  '       d   \        V P                   VVVR 7      pM\        V P                   VVR7      pVe   \        V P                   VVVR7      pW3# ))rK   rS   r‹   r¯   )rK   rS   r‹   )rK   rS   r‹   rÊ   )rK   r¨   r   r   )rJ   r‹   ró   r|  rÊ   r¯   s   &&&&&&rM   r€  Ú&CamembertModel._create_attention_masks›  su   € ð �;‰;×!×!Ð!Ü/Ø—{‘{Ø.Ø-Ø /ô	‰Nô 7Ø—{‘{Ø.Ø-ôˆNð "Ò-Ü%>Ø—{‘{Ø.Ø5Ø&;ô	&Ð"ð Ð5Ð5rO   )rK   rm   rl  rk  rm  )T)	NNNNNNNNN)r|   r}   r~   r   Ú_no_split_modulesr0   rt  rw  r!   r"   r   rn   r€  r‚   rƒ   r„   r…   s   @@rM   ri  ri  1  sV   ù‡ € ð /Ð0@ÐAÐ÷ò"/ò0ð  ØØ÷?
ñ ?
ó ó ó  ð?
÷B6ò 6rO   ri  c                   ót   a a€ ] tR tRt oRRRR/tV 3R ltR tR t]]	RV3R	 lR
 ll4       4       t
RtVtV ;t# )ÚCamembertForMaskedLMi¼  úlm_head.decoder.weightú)roberta.embeddings.word_embeddings.weightúlm_head.decoder.biasúlm_head.biasc                óØ   <€ \         SV `  V4       VP                  '       d   \        P	                  R 4       \        V4      V n        \        VRR7      V n        V P                  4        R# )zpIf you want to use `CamembertForMaskedLM` make sure `config.is_decoder=False` for bi-directional self-attention.F©ro  N©
r/   r0   r¨   ÚloggerÚwarningr&  Úlm_headri  r5  rn  rI   s   &&€rM   r0   ÚCamembertForMaskedLM.__init__Ã  sU   ø€ Ü‰Ñ˜Ô à××ÐÜ�N‰Nð1ôô ' vÓ.ˆŒä% fÀÔFˆŒð 	�‰ÖrO   c                ó.   € V P                   P                  # râ   ©r’  r)  rs  s   &rM   Úget_output_embeddingsÚ*CamembertForMaskedLM.get_output_embeddingsÒ  ó   € Ø�|‰|×#Ñ#Ð#rO   c                ó&   € WP                   n        R # râ   r•  ©rJ   Únew_embeddingss   &&rM   Úset_output_embeddingsÚ*CamembertForMaskedLM.set_output_embeddingsÕ  ó   € Ø-�‰ÖrO   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[,          /
# )rQ   rR   Nr‹   rG   rC   rS   rÊ   ró   Úlabelsr�   rU   )r?   rV   rW   r   r   r±   rY   r   )rZ   r[   s   "€rM   r\   Ú!CamembertForMaskedLM.__annotate__Ú  sÛ   ø€ ÷ 5
ñ 5
á×#Ñ# dÕ*ð5
ñ ×)Ñ)¨DÕ0ð5
ñ ×(Ñ(¨4Õ/ð	5
ñ
 ×&Ñ&¨Õ-ð5
ñ ×(Ñ(¨4Õ/ð5
ñ  %×0Ñ0°4Õ7ð5
ñ !&× 1Ñ 1°DÕ 8ð5
ñ × Ñ  4Õ'ð5
ñ Ñ+Õ,ð5
ñ 
‰u�|‰|Õ	™~Õ	-ñ5
rO   c	                óŒ  € V P                   ! V3RVRVRVRVRVRVRR/V	B p
V
^ ,          pV P                  V4      pR	pVeb   VP                  VP                  4      p\	        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”  
token_type_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Segment token indices to indicate first and second portions of the inputs. Indices are selected in `[0,1]`:

    - 0 corresponds to a *sentence A* token,
    - 1 corresponds to a *sentence B* token.
    This parameter can only be used when the model is initialized with `type_vocab_size` parameter with value
    >= 2. All the value in this tensor should be always < type_vocab_size.

    [What are token type IDs?](../glossary#token-type-ids)
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the masked language modeling loss. Indices should be in `[-100, 0, ...,
    config.vocab_size]` (see `input_ids` docstring) Tokens with indices set to `-100` are ignored (masked), the
    loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`
r‹   rG   rC   rS   rÊ   ró   Úreturn_dictTN©ÚlossÚlogitsr®   r6  r.   )r5  r’  rf   rb   r   rµ   rK   r3   r   r®   r6  )rJ   rR   r‹   rG   rC   rS   rÊ   ró   r   r�   Úoutputsr‚  Úprediction_scoresÚmasked_lm_lossÚloss_fcts   &&&&&&&&&,     rM   rn   ÚCamembertForMaskedLM.forwardØ  sû   € ð: —,’,Øñ

à)ð

ð *ð

ð &ð	

ð
 (ð

ð #8ð

ð $:ð

ð ð

ð ñ

ˆð " !�*ˆØ ŸL™L¨Ó9ÐàˆØÒà—Y‘YÐ0×7Ñ7Ó8ˆFÜ'Ó)ˆHÙ%Ð&7×&<Ñ&<¸RÀÇÁ×AWÑAWÓ&XÐZ`×ZeÑZeÐfhÓZiÓjˆNäØØ$Ø!×/Ñ/Ø×)Ñ)ô	
ð 	
rO   ©r’  r5  )NNNNNNNN©r|   r}   r~   r   Ú_tied_weights_keysr0   r–  rœ  r    r   rn   r‚   rƒ   r„   r…   s   @@rM   rˆ  rˆ  ¼  sO   ù‡ € ð 	!Ð"MØ ðÐõ
ò$ò.ð Ø÷5
ñ 5
ó ó ÷5
ð 5
rO   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	# )ÚCamembertClassificationHeadi  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/   r0   r1   r¦   r4   rÙ   Úclassifier_dropoutr<   r;   r=   Ú
num_labelsÚout_proj©rJ   rK   r²  rL   s   && €rM   r0   Ú$CamembertClassificationHead.__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ˆŽrO   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# )rc  )rc  r   rc  )r=   rÙ   r?   Útanhr´  r.  s   &&, rM   rn   Ú#CamembertClassificationHead.forward  sS   € Ø�WÕˆØ�L‰L˜‹OˆØ�J‰J�q‹MˆÜ�JŠJ�q‹MˆØ�L‰L˜‹OˆØ�M‰M˜!ÓˆØˆrO   )rÙ   r=   r´  r2  r…   s   @@rM   r°  r°    s   ù‡ € Ù7õI÷ò rO   r°  z¡
    Camembert 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
# )Ú"CamembertForSequenceClassificationi(  c                ó¸   <€ \         SV `  V4       VP                  V n        Wn        \	        V4      V n        \        VR R7      V n        V P                  4        R# ©FrŽ  N)	r/   r0   r³  rK   r°  Ú
classifierri  r5  rn  rI   s   &&€rM   r0   Ú+CamembertForSequenceClassification.__init__/  sH   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒØŒÜ5°fÓ=ˆŒä% fÀÔFˆŒð 	�‰ÖrO   c                óZ  <€ 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[S[,          R	S[S[ P                  ,          S[,          /# ©
rQ   rR   Nr‹   rG   rC   rS   r   r�   rU   )r?   rV   rW   r   r   r±   rY   r   )rZ   r[   s   "€rM   r\   Ú/CamembertForSequenceClassification.__annotate__<  s¼   ø€ ÷ C
ñ C
á×#Ñ# dÕ*ðC
ñ ×)Ñ)¨DÕ0ðC
ñ ×(Ñ(¨4Õ/ð	C
ñ
 ×&Ñ&¨Õ-ðC
ñ ×(Ñ(¨4Õ/ðC
ñ × Ñ  4Õ'ðC
ñ Ñ+Õ,ðC
ñ 
‰u�|‰|Õ	Ñ7Õ	7ñC
rO   c                ó(  € V P                   ! V3RVRVRVRVRR/VB 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V
VP"                  VP$                  R7      # )a  
token_type_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Segment token indices to indicate first and second portions of the inputs. Indices are selected in `[0,1]`:

    - 0 corresponds to a *sentence A* token,
    - 1 corresponds to a *sentence B* token.
    This parameter can only be used when the model is initialized with `type_vocab_size` parameter with value
    >= 2. All the value in this tensor should be always < type_vocab_size.

    [What are token type IDs?](../glossary#token-type-ids)
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).
r‹   rG   rC   rS   r£  TNÚ
regressionÚsingle_label_classificationÚmulti_label_classificationr¤  r.   )r5  r¾  rf   rb   rK   Úproblem_typer³  r+   r?   rF   rX   r   Úsqueezer   rµ   r   r   r®   r6  ©rJ   rR   r‹   rG   rC   rS   r   r�   r§  r‚  r¦  r¥  rª  s   &&&&&&&,     rM   rn   Ú*CamembertForSequenceClassification.forward:  sÃ  € ð6 —,’,Øñ
à)ð
ð *ð
ð &ð	
ð
 (ð
ð ð
ð ñ
ˆð " !�*ˆØ—‘ Ó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Ü,Ó.�Ù Ó/�ä'ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
rO   )r¾  rK   r³  r5  ©NNNNNN©r|   r}   r~   r   r0   r    r   rn   r‚   rƒ   r„   r…   s   @@rM   r»  r»  (  s4   ù‡ € õ	ð Ø÷C
ñ C
ó ó ÷C
ð C
rO   r»  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
# )ÚCamembertForMultipleChoicei‚  c                ó   <€ \         SV `  V4       \        P                  ! VP                  4      V n        \        P                  ! VP                  ^4      V n        \        VRR7      V n
        V P                  4        R# )r-   TrŽ  N)r/   r0   r1   r;   r<   r=   r¦   r4   r¾  ri  r5  rn  rI   s   &&€rM   r0   Ú#CamembertForMultipleChoice.__init__„  sX   ø€ Ü‰Ñ˜Ô Ü—z’z &×"<Ñ"<Ó=ˆŒÜŸ)š) F×$6Ñ$6¸Ó:ˆŒä% fÀÔEˆŒð 	�‰ÖrO   c                óZ  <€ 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[S[,          R	S[S[ P                  ,          S[,          /# )
rQ   rR   NrG   r‹   r   rC   rS   r�   rU   )r?   rV   rW   r   r   r±   rY   r   )rZ   r[   s   "€rM   r\   Ú'CamembertForMultipleChoice.__annotate__�  s¼   ø€ ÷ P
ñ P
á×#Ñ# dÕ*ðP
ñ ×(Ñ(¨4Õ/ðP
ñ ×)Ñ)¨DÕ0ð	P
ñ
 × Ñ  4Õ'ðP
ñ ×&Ñ&¨Õ-ðP
ñ ×(Ñ(¨4Õ/ðP
ñ Ñ+Õ,ðP
ñ 
‰u�|‰|Õ	Ñ8Õ	8ñP
rO   c                ó^  € Ve   VP                   ^,          MVP                   ^,          pVe"   VP                  R	VP                  R	4      4      MRp	Ve"   VP                  R	VP                  R	4      4      MRp
Ve"   VP                  R	VP                  R	4      4      MRpVe"   VP                  R	VP                  R	4      4      MRpVe2   VP                  R	VP                  R
4      VP                  R	4      4      MRpV P                  ! V	3RV
RVRVRVRR/VB pV^,          pV P	                  V4      pV P                  V4      pVP                  R	V4      pRpVe/   VP                  VP                  4      p\        4       pV! VV4      p\        VVVP                  VP                  R7      # )aO  
input_ids (`torch.LongTensor` of shape `(batch_size, num_choices, sequence_length)`):
    Indices of input sequence tokens in the vocabulary.

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

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

    - 0 corresponds to a *sentence A* token,
    - 1 corresponds to a *sentence B* token.
    This parameter can only be used when the model is initialized with `type_vocab_size` parameter with value
    >= 2. All the value in this tensor should be always < type_vocab_size.

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

    [What are position IDs?](../glossary#position-ids)
inputs_embeds (`torch.FloatTensor` of shape `(batch_size, num_choices, sequence_length, hidden_size)`, *optional*):
    Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. This
    is useful if you want more control over how to convert `input_ids` indices into associated vectors than the
    model's internal embedding lookup matrix.
NrC   rG   r‹   rS   r£  Tr¤  r.   éþÿÿÿ)rg   rµ   rE   r5  r=   r¾  rf   rb   r   r   r®   r6  )rJ   rR   rG   r‹   r   rC   rS   r�   Únum_choicesÚflat_input_idsÚflat_position_idsÚflat_token_type_idsÚflat_attention_maskÚflat_inputs_embedsr§  re  r¦  Úreshaped_logitsr¥  rª  s   &&&&&&&,            rM   rn   Ú"CamembertForMultipleChoice.forwardŽ  sÏ  € ðV -6Ò,A�i—o‘o aÖ(À}×GZÑGZÐ[\ÕG]ˆàCLÒCX˜Ÿ™¨¨I¯N©N¸2Ó,>Ô?Ð^bˆØLXÒLd˜L×-Ñ-¨b°,×2CÑ2CÀBÓ2GÔHÐjnÐØR`ÒRl˜n×1Ñ1°"°n×6IÑ6IÈ"Ó6MÔNÐrvÐØR`ÒRl˜n×1Ñ1°"°n×6IÑ6IÈ"Ó6MÔNÐrvÐð Ò(ð ×Ñ˜r =×#5Ñ#5°bÓ#9¸=×;MÑ;MÈbÓ;QÔRàð 	ð —,’,Øñ
à*ð
ð /ð
ð /ð	
ð
 -ð
ð ð
ð ñ
ˆð   �
ˆàŸ™ ]Ó3ˆØ—‘ Ó/ˆØ Ÿ+™+ b¨+Ó6ˆàˆØÒà—Y‘Y˜×5Ñ5Ó6ˆFÜ'Ó)ˆHÙ˜O¨VÓ4ˆDä(ØØ"Ø!×/Ñ/Ø×)Ñ)ô	
ð 	
rO   )r¾  r=   r5  rË  rÌ  r…   s   @@rM   rÎ  rÎ  ‚  s4   ù‡ € õð Ø÷P
ñ P
ó ó ÷P
ð P
rO   rÎ  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
# )ÚCamembertForTokenClassificationiã  c                ón  <€ \         SV `  V4       VP                  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RR7      V n        V P                  4        R # )NFrŽ  )r/   r0   r³  r²  r<   r1   r;   r=   r¦   r4   r¾  ri  r5  rn  rµ  s   && €rM   r0   Ú(CamembertForTokenClassification.__init__å  sŠ   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒà)/×)BÑ)BÒ)NˆF×%Ò%ÐTZ×TnÑTnð 	ô —z’zÐ"4Ó5ˆŒÜŸ)š) F×$6Ñ$6¸×8IÑ8IÓJˆŒä% fÀÔFˆŒð 	�‰ÖrO   c                óZ  <€ 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[S[,          R	S[S[ P                  ,          S[,          /# rÁ  )r?   rV   rW   r   r   r±   rY   r   )rZ   r[   s   "€rM   r\   Ú,CamembertForTokenClassification.__annotate__õ  s²   ø€ ÷ 2
ñ 2
á×#Ñ# dÕ*ð2
ñ ×)Ñ)¨DÕ0ð2
ñ ×(Ñ(¨4Õ/ð	2
ñ
 ×&Ñ&¨Õ-ð2
ñ ×(Ñ(¨4Õ/ð2
ñ × Ñ  4Õ'ð2
ñ Ñ+Õ,ð2
ñ 
‰u�|‰|Õ	Ñ4Õ	4ñ2
rO   c                ó’  € V P                   ! V3RVRVRVRVRR/VB 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V
VP                  VP                  R7      # )
aÝ  
token_type_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Segment token indices to indicate first and second portions of the inputs. Indices are selected in `[0,1]`:

    - 0 corresponds to a *sentence A* token,
    - 1 corresponds to a *sentence B* token.
    This parameter can only be used when the model is initialized with `type_vocab_size` parameter with value
    >= 2. All the value in this tensor should be always < type_vocab_size.

    [What are token type IDs?](../glossary#token-type-ids)
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]`.
r‹   rG   rC   rS   r£  TNr¤  r.   )r5  r=   r¾  rf   rb   r   rµ   r³  r   r®   r6  rÉ  s   &&&&&&&,     rM   rn   Ú'CamembertForTokenClassification.forwardó  sã   € ð2 —,’,Øñ
à)ð
ð *ð
ð &ð	
ð
 (ð
ð ð
ð ñ
ˆð " !�*ˆàŸ,™, Ó7ˆØ—‘ Ó1ˆàˆØÒà—Y‘Y˜vŸ}™}Ó-ˆFÜ'Ó)ˆHÙ˜FŸK™K¨¨D¯O©OÓ<¸f¿k¹kÈ"»oÓNˆDä$ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
rO   )r¾  r=   r³  r5  rË  rÌ  r…   s   @@rM   rÞ  rÞ  ã  s0   ù‡ € õð Ø÷2
ñ 2
ó ó ÷2
ð 2
rO   rÞ  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
# )ÚCamembertForQuestionAnsweringi*  c                óì   <€ \         SV `  V4       VP                  V n        \        P                  ! VP
                  VP                  4      V n        \        VR R7      V n        V P                  4        R# r½  )
r/   r0   r³  r1   r¦   r4   Ú
qa_outputsri  r5  rn  rI   s   &&€rM   r0   Ú&CamembertForQuestionAnswering.__init__,  sU   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒÜŸ)š) F×$6Ñ$6¸×8IÑ8IÓJˆŒä% fÀÔFˆŒð 	�‰ÖrO   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[ P                  ,          S[,          /	# )rQ   rR   Nr‹   rG   rC   rS   Ústart_positionsÚend_positionsr�   rU   )r?   rV   rW   r   r   r±   rY   r   )rZ   r[   s   "€rM   r\   Ú*CamembertForQuestionAnswering.__annotate__8  sÇ   ø€ ÷ >
ñ >
á×#Ñ# dÕ*ð>
ñ ×)Ñ)¨DÕ0ð>
ñ ×(Ñ(¨4Õ/ð	>
ñ
 ×&Ñ&¨Õ-ð>
ñ ×(Ñ(¨4Õ/ð>
ñ ×)Ñ)¨DÕ0ð>
ñ ×'Ñ'¨$Õ.ð>
ñ Ñ+Õ,ð>
ñ 
‰u�|‰|Õ	Ñ;Õ	;ñ>
rO   c                óð  € V P                   ! V3RVRVRVRVRR/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      pVP                  ^ V4      p\        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  
token_type_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Segment token indices to indicate first and second portions of the inputs. Indices are selected in `[0,1]`:

    - 0 corresponds to a *sentence A* token,
    - 1 corresponds to a *sentence B* token.
    This parameter can only be used when the model is initialized with `type_vocab_size` parameter with value
    >= 2. All the value in this tensor should be always < type_vocab_size.

    [What are token type IDs?](../glossary#token-type-ids)
r‹   rG   rC   rS   r£  Tru   N)Úignore_index)r¥  Ústart_logitsÚ
end_logitsr®   r6  r.   )r5  rè  ÚsplitrÈ  r˜   ÚlenrE   Úclampr   r   r®   r6  )rJ   rR   r‹   rG   rC   rS   rë  rì  r�   r§  r‚  r¦  rð  rñ  Ú
total_lossÚignored_indexrª  Ú
start_lossÚend_losss   &&&&&&&&,          rM   rn   Ú%CamembertForQuestionAnswering.forward6  s”  € ð0 —,’,Øñ
à)ð
ð *ð
ð &ð	
ð
 (ð
ð ð
ð ñ
ˆð " !�*ˆà—‘ Ó1ˆØ#)§<¡<°°r <Ó#:Ñ ˆØ#×+Ñ+¨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Ù 
Ó:ˆHØ$ xÕ/°1Õ4ˆJä+ØØ%Ø!Ø!×/Ñ/Ø×)Ñ)ô
ð 	
rO   )r³  rè  r5  )NNNNNNNrÌ  r…   s   @@rM   ræ  ræ  *  s0   ù‡ € õð Ø÷>
ñ >
ó ó ÷>
ð >
rO   ræ  zU
    Camembert Model with a `language modeling` head on top for CLM fine-tuning.
    c                   ót   a a€ ] tR tRt oRRRR/tV 3R ltR tR t]]	RV3R	 lR
 ll4       4       t
RtVtV ;t# )ÚCamembertForCausalLMiy  r‰  rŠ  r‹  rŒ  c                óØ   <€ \         SV `  V4       VP                  '       g   \        P	                  R 4       \        V4      V n        \        VRR7      V n        V P                  4        R# )zQIf you want to use `CamembertLMHeadModel` as a standalone, add `is_decoder=True.`FrŽ  Nr�  rI   s   &&€rM   r0   ÚCamembertForCausalLM.__init__„  sO   ø€ Ü‰Ñ˜Ô à× × Ð Ü�N‰NÐnÔoÜ& vÓ.ˆŒä% fÀÔFˆŒð 	�‰ÖrO   c                ó.   € V P                   P                  # râ   r•  rs  s   &rM   r–  Ú*CamembertForCausalLM.get_output_embeddings�  r˜  rO   c                ó&   € WP                   n        R # râ   r•  rš  s   &&rM   rœ  Ú*CamembertForCausalLM.set_output_embeddings“  rž  rO   c                ó0  <€ 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[S[ P                  ,          ,          R,          RS[R,          RS[S[ P                  ,          RS[S[,          RS[S[ P                  ,          S[	,          /# )rQ   rR   Nr‹   rG   rC   rS   rÊ   ró   r   r¯   rR  Úlogits_to_keepr�   rU   )
r?   rV   rW   r±   rS  rX   rY   r   r   r   )rZ   r[   s   "€rM   r\   Ú!CamembertForCausalLM.__annotate__˜  s+  ø€ ÷ O
ñ O
á×#Ñ# dÕ*ðO
ñ ×)Ñ)¨DÕ0ðO
ñ ×(Ñ(¨4Õ/ð	O
ñ
 ×&Ñ&¨Õ-ðO
ñ ×(Ñ(¨4Õ/ðO
ñ  %×0Ñ0°4Õ7ðO
ñ !&× 1Ñ 1°DÕ 8ðO
ñ × Ñ  4Õ'ðO
ñ ™u¡U×%6Ñ%6Õ7Õ8¸4Õ?ðO
ñ ˜$•;ðO
ñ ™eŸl™lÕ*ðO
ñ Ñ+Õ,ðO
ñ 
‰u�|‰|Õ	Ñ@Õ	@ñO
rO   c                óÆ  € Ve   Rp
V P                   ! V3RVRVRVRVRVRVR	V	R
V
RR/	VB pVP                  p\        V\        4      '       d   \	        V) R4      MTpV P                  VRVR3,          4      pRpVe-   V P                  ! RRVRVRV P                  P                  /VB p\        VVVP                  VP                  VP                  VP                  R7      # )a¹  
token_type_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Segment token indices to indicate first and second portions of the inputs. Indices are selected in `[0,1]`:

    - 0 corresponds to a *sentence A* token,
    - 1 corresponds to a *sentence B* token.
    This parameter can only be used when the model is initialized with `type_vocab_size` parameter with value
    >= 2. All the value in this tensor should be always < type_vocab_size.

    [What are token type IDs?](../glossary#token-type-ids)
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the left-to-right language modeling loss (next word prediction). Indices should be in
    `[-100, 0, ..., config.vocab_size]` (see `input_ids` docstring) Tokens with indices set to `-100` are
    ignored (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`

Example:

```python
>>> from transformers import AutoTokenizer, CamembertForCausalLM, AutoConfig
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("almanach/camembert-base")
>>> config = AutoConfig.from_pretrained("almanach/camembert-base")
>>> config.is_decoder = True
>>> model = CamembertForCausalLM.from_pretrained("almanach/camembert-base", config=config)

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> outputs = model(**inputs)

>>> prediction_logits = outputs.logits
```NFr‹   rG   rC   rS   rÊ   ró   r¯   rR  r£  Trc  r¦  r   r3   )r¥  r¦  r¯   r®   r6  r7  r>  )r5  rV  r¶   rX   Úslicer’  Úloss_functionrK   r3   r   r¯   r®   r6  r7  )rJ   rR   r‹   rG   rC   rS   rÊ   ró   r   r¯   rR  r  r�   r§  r®   Úslice_indicesr¦  r¥  s   &&&&&&&&&&&&,     rM   rn   ÚCamembertForCausalLM.forward–  sB  € ð` ÒØˆIà@DÇÂØñA
à)ðA
ð *ðA
ð &ð	A
ð
 (ðA
ð #8ðA
ð $:ðA
ð ,ðA
ð  ðA
ð ðA
ð ñA
ˆð  ×1Ñ1ˆä8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ—‘˜m¨A¨}¸aÐ,?Õ@ÓAˆàˆØÒØ×%Ò%Ñp¨VÐp¸FÐpÈtÏ{É{×OeÑOeÐpÐioÑpˆDä0ØØØ#×3Ñ3Ø!×/Ñ/Ø×)Ñ)Ø$×5Ñ5ô
ð 	
rO   r¬  )NNNNNNNNNNr   r­  r…   s   @@rM   rû  rû  y  sS   ù‡ € ð 	!Ð"MØ ðÐõ

ò$ò.ð Ø÷O
ñ O
ó ó ÷O
ð O
rO   rû  )Nr´   )rû  rˆ  rÎ  ræ  r»  rÞ  ri  r4  )NÚcollections.abcr   r?   Útorch.nnr1   r   r   r   Ú r   r:  Úactivationsr   r	   Úcache_utilsr
   r   r   Ú
generationr   Úmasking_utilsr   r   Úmodeling_layersr   Úmodeling_outputsr   r   r   r   r   r   r   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úpytorch_utilsr   Úutilsr   r   r   Úutils.genericr    r!   Úutils.output_capturingr"   Úconfiguration_camembertr#   Ú
get_loggerr|   r�  rŽ   r%   r›   r�   rÆ   rÖ   rê   rú   r  r  r&  r4  rI  r[  ri  rˆ  r°  r»  rÎ  rÞ  ræ  rû  Ú__all__r>  rO   rM   Ú<module>r     sV  ðõ, %ã Ý ß AÑ Aå &ß 'ß CÑ CÝ )ß JÝ 9÷	÷ 	ó 	÷ GÝ &Ý 6ß @Ñ @ß IÝ 5Ý 4ð 
×	Ò	˜HÓ	%€ôc8˜"Ÿ)™)ô c8÷L%ô8@)˜RŸY™Yô @)ôFI)˜bŸi™iô I)ôX˜"Ÿ)™)ô ô.˜Ÿ™ô .ô:˜BŸI™Iô ô�b—i‘iô ô>Ð/ô >ôB�b—i‘iô ð, ô/˜ó /ó ð/ô2
�r—y‘yô 
ô@�b—i‘iô ñ ð	ôô|6Ð-ó |6óð|6ð~ ôR
Ð3ó R
ó ðR
ôj "§)¡)ô ñ, ðôôQ
Ð)Aó Q
óðQ
ðh ô]
Ð!9ó ]
ó ð]
ð@ ôC
Ð&>ó C
ó ðC
ðL ôK
Ð$<ó K
ó ðK
ñ\ ðôô
i
Ð3°_ó i
óð
i
òX	‚rO   