+
    œ°³jßX  ã                   óR  € R t ^ RIt^ RIHtHtHt ^RIHtHtH	t	H
t
HtHtHt ^RIHt ^RIHtHt ^RIHt ^RIHtHtHtHtHtHtHtHt  ! R R	]4      t ! R
 R]4      t ! R R]4      t  ! R R]4      t! ! R R]4      t" ! R R]4      t# ! R R]4      t$ ! R R]4      t%. ROt&R# )zPyTorch CamemBERT model.N)ÚBCEWithLogitsLossÚCrossEntropyLossÚMSELoss)Ú,BaseModelOutputWithPoolingAndCrossAttentionsÚ!CausalLMOutputWithCrossAttentionsÚMaskedLMOutputÚMultipleChoiceModelOutputÚQuestionAnsweringModelOutputÚSequenceClassifierOutputÚTokenClassifierOutput)ÚUnpack)ÚTransformersKwargsÚauto_docstring)Úcan_return_tuple)ÚRobertaForCausalLMÚRobertaForMaskedLMÚRobertaForMultipleChoiceÚRobertaForQuestionAnsweringÚ RobertaForSequenceClassificationÚRobertaForTokenClassificationÚRobertaModelÚRobertaPreTrainedModelc                   ó   € ] tR t^,tRtRtR# )ÚCamembertPreTrainedModelÚroberta© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úbase_model_prefixÚ__static_attributes__r   ó    Úp/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/camembert/modular_camembert.pyr   r   ,   s   † Ø!Ôr"   r   c                   ó   € ] tR t^0tRtR# )ÚCamembertModelr   N)r   r   r   r   r!   r   r"   r#   r%   r%   0   s   † Ûr"   r%   c                   óh   a a€ ] tR t^4t oRRRR/tV 3R lt]]R	V3R lR ll4       4       tRt	Vt
V ;t# )
ÚCamembertForMaskedLMúlm_head.decoder.weightú)roberta.embeddings.word_embeddings.weightúlm_head.decoder.biasúlm_head.biasc                óN   <€ \         SV `  V4       V =\        VR R7      V n        R# ©F©Úadd_pooling_layerN©ÚsuperÚ__init__Ú	camembertr%   r   ©ÚselfÚconfigÚ	__class__s   &&€r#   r2   ÚCamembertForMaskedLM.__init__:   ó#   ø€ Ü‰Ñ˜Ô ØˆNä% fÀÔFˆŽr"   c                óª  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          R	S[ P                  R,          R
S[S[,          RS[S[ P                  ,          S[,          /
# )é   Ú	input_idsNÚattention_maskÚtoken_type_idsÚposition_idsÚinputs_embedsÚencoder_hidden_statesÚencoder_attention_maskÚlabelsÚkwargsÚreturn)ÚtorchÚ
LongTensorÚFloatTensorr   r   ÚtupleÚTensorr   )ÚformatÚ__classdict__s   "€r#   Ú__annotate__Ú!CamembertForMaskedLM.__annotate__B   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
r"   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=   r>   r?   r@   rA   rB   Úreturn_dictTN©ÚlossÚlogitsÚhidden_statesÚ
attentionséÿÿÿÿ)r   Úlm_headÚtoÚdevicer   Úviewr6   Ú
vocab_sizer   rT   rU   )r5   r<   r=   r>   r?   r@   rA   rB   rC   rD   ÚoutputsÚsequence_outputÚprediction_scoresÚmasked_lm_lossÚloss_fcts   &&&&&&&&&,     r#   ÚforwardÚ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äØØ$Ø!×/Ñ/Ø×)Ñ)ô	
ð 	
r"   ©r   )NNNNNNNN©r   r   r   r   Ú_tied_weights_keysr2   r   r   ra   r!   Ú__classdictcell__Ú__classcell__©r7   rL   s   @@r#   r'   r'   4   sD   ù‡ € à Ð"MØ ðÐõ
Gð Ø÷5
ñ 5
ó ó ÷5
ð 5
r"   r'   c                   ó\   a a€ ] tR t^zt oV 3R lt]]RV3R lR ll4       4       tRtVt	V ;t
# )Ú"CamembertForSequenceClassificationc                óN   <€ \         SV `  V4       V =\        VR R7      V n        R# r-   r0   r4   s   &&€r#   r2   Ú+CamembertForSequenceClassification.__init__{   r9   r"   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<   Nr=   r>   r?   r@   rC   rD   rE   )rF   rG   rH   r   r   rI   rJ   r
   )rK   rL   s   "€r#   rM   Ú/CamembertForSequenceClassification.__annotate__ƒ   s¼   ø€ ÷ C
ñ C
á×#Ñ# dÕ*ðC
ñ ×)Ñ)¨DÕ0ðC
ñ ×(Ñ(¨4Õ/ð	C
ñ
 ×&Ñ&¨Õ-ðC
ñ ×(Ñ(¨4Õ/ðC
ñ × Ñ  4Õ'ðC
ñ Ñ+Õ,ðC
ñ 
‰u�|‰|Õ	Ñ7Õ	7ñC
r"   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=   r>   r?   r@   rP   TNÚ
regressionÚsingle_label_classificationÚmulti_label_classificationrQ   rV   )r   Ú
classifierrX   rY   r6   Úproblem_typeÚ
num_labelsÚdtyperF   ÚlongÚintr   Úsqueezer   rZ   r   r
   rT   rU   ©r5   r<   r=   r>   r?   r@   rC   rD   r\   r]   rS   rR   r`   s   &&&&&&&,     r#   ra   Ú*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Ü,Ó.�Ù Ó/�ä'ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
r"   rc   ©NNNNNN©r   r   r   r   r2   r   r   ra   r!   rf   rg   rh   s   @@r#   rj   rj   z   s5   ù‡ € õGð Ø÷C
ñ C
ó ó ÷C
ð C
r"   rj   c                   ó\   a a€ ] tR t^Ét oV 3R lt]]RV3R lR ll4       4       tRtVt	V ;t
# )ÚCamembertForMultipleChoicec                óN   <€ \         SV `  V4       V =\        VR R7      V n        R# )Tr.   Nr0   r4   s   &&€r#   r2   Ú#CamembertForMultipleChoice.__init__Ê   s#   ø€ Ü‰Ñ˜Ô ØˆNä% fÀÔEˆŽr"   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<   Nr>   r=   rC   r?   r@   rD   rE   )rF   rG   rH   r   r   rI   rJ   r   )rK   rL   s   "€r#   rM   Ú'CamembertForMultipleChoice.__annotate__Ò   s¼   ø€ ÷ P
ñ P
á×#Ñ# dÕ*ðP
ñ ×(Ñ(¨4Õ/ðP
ñ ×)Ñ)¨DÕ0ð	P
ñ
 × Ñ  4Õ'ðP
ñ ×&Ñ&¨Õ-ðP
ñ ×(Ñ(¨4Õ/ðP
ñ Ñ+Õ,ðP
ñ 
‰u�|‰|Õ	Ñ8Õ	8ñP
r"   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.
Nr?   r>   r=   r@   rP   TrQ   rV   éþÿÿÿ)ÚshaperZ   Úsizer   Údropoutrt   rX   rY   r   r   rT   rU   )r5   r<   r>   r=   rC   r?   r@   rD   Únum_choicesÚflat_input_idsÚflat_position_idsÚflat_token_type_idsÚflat_attention_maskÚflat_inputs_embedsr\   Úpooled_outputrS   Úreshaped_logitsrR   r`   s   &&&&&&&,            r#   ra   Ú"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ä(ØØ"Ø!×/Ñ/Ø×)Ñ)ô	
ð 	
r"   rc   r}   r~   rh   s   @@r#   r€   r€   É   s5   ù‡ € õFð Ø÷P
ñ P
ó ó ÷P
ð P
r"   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 =\        VR R7      V n        R# r-   r0   r4   s   &&€r#   r2   Ú(CamembertForTokenClassification.__init__&  r9   r"   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[,          /# rn   )rF   rG   rH   r   r   rI   rJ   r   )rK   rL   s   "€r#   rM   Ú,CamembertForTokenClassification.__annotate__.  s²   ø€ ÷ 2
ñ 2
á×#Ñ# dÕ*ð2
ñ ×)Ñ)¨DÕ0ð2
ñ ×(Ñ(¨4Õ/ð	2
ñ
 ×&Ñ&¨Õ-ð2
ñ ×(Ñ(¨4Õ/ð2
ñ × Ñ  4Õ'ð2
ñ Ñ+Õ,ð2
ñ 
‰u�|‰|Õ	Ñ4Õ	4ñ2
r"   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=   r>   r?   r@   rP   TNrQ   rV   )r   r‰   rt   rX   rY   r   rZ   rv   r   rT   rU   r{   s   &&&&&&&,     r#   ra   Ú'CamembertForTokenClassification.forward,  sã   € ð2 —,’,Øñ
à)ð
ð *ð
ð &ð	
ð
 (ð
ð ð
ð ñ
ˆð " !�*ˆàŸ,™, Ó7ˆØ—‘ Ó1ˆàˆØÒà—Y‘Y˜vŸ}™}Ó-ˆFÜ'Ó)ˆHÙ˜FŸK™K¨¨D¯O©OÓ<¸f¿k¹kÈ"»oÓNˆDä$ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
r"   rc   r}   r~   rh   s   @@r#   r”   r”   %  s1   ù‡ € õGð Ø÷2
ñ 2
ó ó ÷2
ð 2
r"   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
# )ÚCamembertForQuestionAnsweringic  c                óN   <€ \         SV `  V4       V =\        VR R7      V n        R# r-   r0   r4   s   &&€r#   r2   Ú&CamembertForQuestionAnswering.__init__d  r9   r"   c                ó‚  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          R	S[S[,          R
S[S[ P                  ,          S[,          /	# )r;   r<   Nr=   r>   r?   r@   Ústart_positionsÚend_positionsrD   rE   )rF   rG   rH   r   r   rI   rJ   r	   )rK   rL   s   "€r#   rM   Ú*CamembertForQuestionAnswering.__annotate__l  sÇ   ø€ ÷ >
ñ >
á×#Ñ# dÕ*ð>
ñ ×)Ñ)¨DÕ0ð>
ñ ×(Ñ(¨4Õ/ð	>
ñ
 ×&Ñ&¨Õ-ð>
ñ ×(Ñ(¨4Õ/ð>
ñ ×)Ñ)¨DÕ0ð>
ñ ×'Ñ'¨$Õ.ð>
ñ Ñ+Õ,ð>
ñ 
‰u�|‰|Õ	Ñ;Õ	;ñ>
r"   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=   r>   r?   r@   rP   T)ÚdimN)Úignore_index)rR   Ústart_logitsÚ
end_logitsrT   rU   rV   )r   Ú
qa_outputsÚsplitrz   Ú
contiguousÚlenrˆ   Úclampr   r	   rT   rU   )r5   r<   r=   r>   r?   r@   r    r¡   rD   r\   r]   rS   r¦   r§   Ú
total_lossÚignored_indexr`   Ú
start_lossÚend_losss   &&&&&&&&,          r#   ra   Ú%CamembertForQuestionAnswering.forwardj  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ä+ØØ%Ø!Ø!×/Ñ/Ø×)Ñ)ô
ð 	
r"   rc   )NNNNNNNr~   rh   s   @@r#   rœ   rœ   c  s1   ù‡ € õGð Ø÷>
ñ >
ó ó ÷>
ð >
r"   rœ   c                   óh   a a€ ] tR tRt oRRRR/tV 3R lt]]R
V3R lR ll4       4       tR	t	Vt
V ;t# )ÚCamembertForCausalLMi­  r(   r)   r*   r+   c                óN   <€ \         SV `  V4       V =\        VR R7      V n        R# r-   r0   r4   s   &&€r#   r2   ÚCamembertForCausalLM.__init__³  r9   r"   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[	,          /# )r;   r<   Nr=   r>   r?   r@   rA   rB   rC   Úpast_key_valuesÚ	use_cacheÚlogits_to_keeprD   rE   )
rF   rG   rH   rI   Úboolry   rJ   r   r   r   )rK   rL   s   "€r#   rM   Ú!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
r"   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=   r>   r?   r@   rA   rB   r·   r¸   rP   T:NNNrS   rC   r[   )rR   rS   r·   rT   rU   Úcross_attentionsr   )r   Úlast_hidden_stateÚ
isinstancery   ÚslicerW   Úloss_functionr6   r[   r   r·   rT   rU   r½   )r5   r<   r=   r>   r?   r@   rA   rB   rC   r·   r¸   r¹   rD   r\   rT   Úslice_indicesrS   rR   s   &&&&&&&&&&&&,     r#   ra   Ú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ô
ð 	
r"   rc   )NNNNNNNNNNé    rd   rh   s   @@r#   r³   r³   ­  sH   ù‡ € à Ð"MØ ðÐõ
Gð Ø÷O
ñ O
ó ó ÷O
ð O
r"   r³   )r³   r'   r€   rœ   rj   r”   r%   r   )'Ú__doc__rF   Útorch.nnr   r   r   Úmodeling_outputsr   r   r   r   r	   r
   r   Úprocessing_utilsr   Úutilsr   r   Úutils.genericr   Úroberta.modeling_robertar   r   r   r   r   r   r   r   r   r%   r'   rj   r€   r”   rœ   r³   Ú__all__r   r"   r#   Ú<module>rÍ      sº   ðñ ã ß AÑ A÷÷ ñ õ 'ß 7Ý -÷	÷ 	ó 	ô"Ð5ô "ô	�\ô 	ôC
Ð-ô C
ôLL
Ð)Iô L
ô^Y
Ð!9ô Y
ôx;
Ð&Cô ;
ô|G
Ð$?ô G
ôT]
Ð-ô ]
ò@	‚r"   