+
    œ°³j¯¦  ã                   óÖ  € R t ^ RIt^ RIHt ^ RIt^ RIHt ^ RIHt ^RIH	t
 ^RIHt ^RIHtHtHt ^RI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Ht ^RI H!t!H"t" ^RI#H$t$ ^RI%H&t&H't'H(t(H)t)H*t* ^RI+H,t, ^RI-H.t.H/t/ ^RI0H1t1 ]*Pd                  ! ]34      t4R R lt5 ! R R]Pl                  4      t7 ! R R]Pl                  4      t8R1R R llt9 ! R R]Pt                  4      t; ! R R]4      t< ! R R ]4      t=]' ! R! R"]"4      4       t> ! R# R$]>4      t? ! R% R&]>4      t@]' ! R' R(]>4      4       tA]'! R)R*7       ! R+ R,]>]4      4       tB ! R- R.]>4      tC ! R/ R0]>]4      tD. R2OtER# )3zPyTorch Blenderbot model.N)ÚCallable)Únn)ÚCrossEntropyLoss)Úinitialization)ÚACT2FN)ÚCacheÚDynamicCacheÚEncoderDecoderCache)ÚGenerationMixin)Úcreate_bidirectional_maskÚcreate_causal_mask)ÚFlashAttentionKwargs)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚ)BaseModelOutputWithPastAndCrossAttentionsÚ!CausalLMOutputWithCrossAttentionsÚSeq2SeqLMOutputÚSeq2SeqModelOutput)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚis_torchdynamo_compilingÚlogging)Úmerge_with_config_defaults)ÚOutputRecorderÚcapture_outputs©ÚBlenderbotConfigc                óP   € V ^8„  d   QhR\         P                  R\        R\        /# )é   Ú	input_idsÚpad_token_idÚdecoder_start_token_id)ÚtorchÚTensorÚint)Úformats   "Ús/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/blenderbot/modeling_blenderbot.pyÚ__annotate__r+   1   s&   € ÷ ñ ¤%§,¡,ð ¼cð Ô[^ñ ó    c                óÈ   € V P                  V P                  4      pV RRR13,          P                  4       VR&   W#R&   Vf   \        R4      hVP	                  VR8H  V4       V# )z)
Shift input ids one token to the right.
ºNNNNz1self.model.config.pad_token_id has to be defined.éÿÿÿÿ)r.   :é   NN)r.   é    iœÿÿÿ)Ú	new_zerosÚshapeÚcloneÚ
ValueErrorÚmasked_fill_)r#   r$   r%   Úshifted_input_idss   &&& r*   Úshift_tokens_rightr8   1   sp   € ð "×+Ñ+¨I¯O©OÓ<ÐØ(¨¨C¨R¨C¨Õ0×6Ñ6Ó8Ð�eÑØ4�dÑàÒÜÐLÓMÐMà×"Ñ"Ð#4¸Ñ#<¸lÔKàÐr,   c                   ó^   a a€ ] tR t^At oRtV3R lV 3R lltRV3R lV 3R llltRtVtV ;t	# )Ú$BlenderbotLearnedPositionalEmbeddingzF
This module learns positional embeddings up to a fixed maximum size.
c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r"   Únum_embeddingsÚembedding_dim©r(   )r)   Ú__classdict__s   "€r*   r+   Ú1BlenderbotLearnedPositionalEmbedding.__annotate__F   s   ø€ ÷ 8ñ 8¡sð 8¹3ñ 8r,   c                ó&   <€ \         SV `  W4       R # ©N)ÚsuperÚ__init__)Úselfr<   r=   Ú	__class__s   &&&€r*   rD   Ú-BlenderbotLearnedPositionalEmbedding.__init__F   s   ø€ Ü‰Ñ˜Ö7r,   c                ób   <€ V ^8„  d   QhRS[ P                  RS[RS[ P                  R,          /# )r"   Úinput_ids_shapeÚpast_key_values_lengthÚposition_idsN)r&   ÚSizer(   r'   )r)   r?   s   "€r*   r+   r@   I   s5   ø€ ÷ 	-ñ 	-Ù$Ÿz™zð	-ÙCFð	-ÙZ_×ZfÑZfÐimÕZmñ	-r,   c                óÄ   <€ VfN   VR,          w  rE\         P                  ! W"V,           \         P                  V P                  P                  R7      p\
        SV `  V4      # )z3`input_ids_shape` is expected to be [bsz x seqlen].:Nr"   N)ÚdtypeÚdevice)r&   ÚarangeÚlongÚweightrO   rC   Úforward)rE   rI   rJ   rK   ÚbszÚseq_lenrF   s   &&&&  €r*   rS   Ú,BlenderbotLearnedPositionalEmbedding.forwardI   sV   ø€ ð ÒØ*¨2Õ.‰LˆCÜ Ÿ<š<Ø&ÀÕ(HÔPU×PZÑPZÐcg×cnÑcn×cuÑcuôˆLô ‰w‰˜|Ó,Ð,r,   © )r1   N©
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rD   rS   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rF   r?   s   @@r*   r:   r:   A   s#   ù‡ € ñ÷8ó 8÷	-÷ 	-õ 	-r,   r:   c                   ó^   a a€ ] tR t^Vt oRtRV3R lV 3R llltV3R lV 3R lltRtVtV ;t	# )ÚBlenderbotScaledWordEmbeddingzT
This module overrides nn.Embeddings' forward by multiplying with embeddings scale.
c          	      ó@   <€ V ^8„  d   QhRS[ RS[ RS[ RS[R,          /# )r"   r<   r=   Úpadding_idxÚembed_scaleN)r(   Úfloat)r)   r?   s   "€r*   r+   Ú*BlenderbotScaledWordEmbedding.__annotate__[   s0   ø€ ÷ 'ñ '¡sð '¹3ð 'ÉSð 'Ñ_dÐgkÕ_kñ 'r,   c                ó4   <€ \         SV `  WV4       W@n        R # rB   )rC   rD   rf   )rE   r<   r=   re   rf   rF   s   &&&&&€r*   rD   Ú&BlenderbotScaledWordEmbedding.__init__[   s   ø€ Ü‰Ñ˜¸ÔDØ&Ör,   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r"   r#   )r&   r'   )r)   r?   s   "€r*   r+   rh   _   s   ø€ ÷ =ñ =¡§¡ñ =r,   c                óD   <€ \         SV `  V4      V P                  ,          # rB   )rC   rS   rf   )rE   r#   rF   s   &&€r*   rS   Ú%BlenderbotScaledWordEmbedding.forward_   s   ø€ Ü‰w‰˜yÓ)¨D×,<Ñ,<Õ<Ð<r,   ©rf   )ç      ð?rX   ra   s   @@r*   rc   rc   V   s#   ù‡ € ñ÷'õ '÷=÷ =ó =r,   rc   c                ó  € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R,          R\        R	\
        \        ,          /# )
r"   ÚmoduleÚqueryÚkeyÚvalueÚattention_maskNÚscalingÚdropoutÚkwargs)r   ÚModuler&   r'   rg   r   r   )r)   s   "r*   r+   r+   d   s{   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô �T�\ð%ô ð%ô Ô'Õ(ñ%r,   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# )N©Údim©ÚpÚtrainingr/   ç      à¿)
Úsizer&   ÚmatmulÚ	transposer   Ú
functionalÚsoftmaxrw   r   Ú
contiguous)
rq   rr   rs   rt   ru   rv   rw   rx   Úattn_weightsÚattn_outputs
   &&&&&&&,  r*   Úeager_attention_forwardr‰   d   s±   € ð ‚Ø—*‘*˜R“. DÕ(ˆô —<’< §}¡}°Q¸Ó':Ó;¸gÕE€LàÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2Ð(Ó>€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€Lä—,’,˜|Ó3€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$r,   c                   ó\   a a€ ] tR t^�t oRtRV3R lV 3R llltRV3R lR lltRtVtV ;t	# )	ÚBlenderbotAttentionz=Multi-headed attention from 'Attention Is All You Need' paperc                óf   <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[RS[RS[R,          R	S[ R,          /# )
r"   Ú	embed_dimÚ	num_headsrw   Ú
is_decoderÚbiasÚ	is_causalÚconfigNÚ	layer_idx)r(   rg   Úboolr    )r)   r?   s   "€r*   r+   Ú BlenderbotAttention.__annotate__„   sn   ø€ ÷ %Cñ %Cáð%Cñ ð%Cñ ð	%Cñ
 ð%Cñ ð%Cñ ð%Cñ ! 4Õ'ð%Cñ ˜•:ñ%Cr,   c	                ó¬  <€ \         S	V `  4        Wn        W n        W0n        W,          V n        Wpn        V P
                  V,          V P                  8w  d   \        R V P                   RV R24      hV P
                  R,          V n        W@n	        W`n
        W€n        Vf@   V P                  '       d.   \        P                  RV P                  P                   R24       \         P"                  ! WVR7      V n        \         P"                  ! WVR7      V n        \         P"                  ! WVR7      V n        \         P"                  ! WVR7      V n        R# )z;embed_dim must be divisible by num_heads (got `embed_dim`: z and `num_heads`: z).NzInstantiating a decoder z¸ without passing `layer_idx` is not recommended and will lead to errors during the forward call, if caching is used. Please make sure to provide a `layer_idx` when creating this class.©r�   r€   )rC   rD   r�   rŽ   rw   Úhead_dimr’   r5   rv   r�   r‘   r“   ÚloggerÚwarning_oncerF   rY   r   ÚLinearÚk_projÚv_projÚq_projÚout_proj)
rE   r�   rŽ   rw   r�   r�   r‘   r’   r“   rF   s
   &&&&&&&&&€r*   rD   ÚBlenderbotAttention.__init__„   s  ø€ ô 	‰ÑÔØ"ŒØ"ŒØŒØ!Õ.ˆŒØŒà�M‰M˜IÕ%¨$¯.©.Ô8ÜØMÈdÏnÉnÐM]Ø$ Y K¨rð3óð ð —}‘} dÕ*ˆŒØ$ŒØ"ŒØ"ŒØÒ §§ Ü×ÑØ*¨4¯>©>×+BÑ+BÐ*Cð D,ð ,ôô —i’i 	¸4Ô@ˆŒÜ—i’i 	¸4Ô@ˆŒÜ—i’i 	¸4Ô@ˆŒÜŸ	š	 )¸TÔBˆŽr,   c                ó   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[R,          RS[ P                  R,          RS[S[,          RS[S[ P                  S[ P                  R,          3,          /# )r"   Úhidden_statesÚkey_value_statesNÚpast_key_valuesru   rx   Úreturn)r&   r'   r   r   r   Útuple)r)   r?   s   "€r*   r+   r•   «   s†   ø€ ÷ H)ñ H)á—|‘|ðH)ñ  Ÿ,™,¨Õ-ðH)ñ  �ð	H)ñ
 Ÿ™ tÕ+ðH)ñ Ñ-Õ.ðH)ñ 
‰u�|‰|™UŸ\™\¨DÕ0Ð0Õ	1ñH)r,   c                óV  € VRJpVP                   RR p. VORNV P                  N5pV P                  V4      P                  V4      P	                  ^^4      p	Rp
Ve`   \        V\        4      '       dH   VP                  P                  V P                  4      p
V'       d   VP                  pMVP                  pMTpV'       d   TMTpV'       d\   VeX   V
'       dP   XP                  V P                  ,          P                  pVP                  V P                  ,          P                  pMÝV P                  V4      pV P!                  V4      p. VP                   RR ORNV P                  N5pVP                  V4      P	                  ^^4      pVP                  V4      P	                  ^^4      pVeV   XP#                  WÞV P                  4      w  rÞV'       d0   \        V\        4      '       d   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 P0                  RV P2                  /VB w  ppVP4                  ! . VORN5!  P7                  4       pV P9                  V4      pVV3# )z#Input shape: Batch x Time x ChannelNFTrw   ç        rv   r/   )r3   r˜   rž   Úviewrƒ   Ú
isinstancer	   Ú
is_updatedÚgetr“   Úcross_attention_cacheÚself_attention_cacheÚlayersÚkeysÚvaluesrœ   r�   Úupdater   Úget_interfacer’   Ú_attn_implementationr‰   r   rw   rv   Úreshaper†   rŸ   )rE   r¢   r£   r¤   ru   rx   Úis_cross_attentionÚinput_shapeÚhidden_shapeÚquery_statesr«   Úcurr_past_key_valuesÚcurrent_statesÚ
key_statesÚvalue_statesÚkv_shapeÚattention_interfacerˆ   r‡   s   &&&&&,             r*   rS   ÚBlenderbotAttention.forward«   sl  € ð .°TÐ9Ðð $×)Ñ)¨#¨2Ð.ˆà8˜Ð8 bÐ8¨$¯-©-Ñ8ˆð —{‘{ =Ó1×6Ñ6°|ÓD×NÑNÈqÐRSÓTˆàˆ
ØÒ&Ü˜/Ô+>×?Ò?Ø,×7Ñ7×;Ñ;¸D¿N¹NÓK�
ß%à+:×+PÑ+PÑ(à+:×+OÑ+OÑ(à'6Ð$ç-?Ñ)À]ˆß /Ò"=Ç*à-×4Ñ4°T·^±^ÕD×IÑIˆJØ/×6Ñ6°t·~±~ÕF×MÑM‰LàŸ™ ^Ó4ˆJØŸ;™; ~Ó6ˆLØF˜×-Ñ-¨c¨rÐ2ÐF°BÐF¸¿¹ÑFˆHØ#Ÿ™¨Ó2×<Ñ<¸QÀÓBˆJØ'×,Ñ,¨XÓ6×@Ñ@ÀÀAÓFˆLàÒ*Ø+?×+FÑ+FÀzÐae×aoÑaoÓ+pÑ(�
ç%¬*°_ÔFY×*ZÒ*ZØAE�O×.Ñ.¨t¯~©~Ñ>ä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ	%
ð  $Ÿ}Ÿ}˜}‘C°$·,±,ð	%
ð —L‘Lð	%
ð ñ	%
Ñ!ˆ�\ð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—m‘m KÓ0ˆà˜LÐ(Ð(r,   )r’   rw   r�   r˜   r‘   r�   rœ   r“   rŽ   rŸ   rž   rv   r�   )r¨   FTFNN©NNNrX   ra   s   @@r*   r‹   r‹   �   s'   ù‡ € ÙG÷%Cõ %C÷NH)÷ H)ò H)r,   r‹   c                   óP   a a€ ] tR t^÷t oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚBlenderbotEncoderLayerc                ó    <€ V ^8„  d   QhRS[ /# ©r"   r’   r   )r)   r?   s   "€r*   r+   Ú#BlenderbotEncoderLayer.__annotate__ø   s   ø€ ÷ =ñ =Ñ/ñ =r,   c                óz  <€ \         SV `  4        VP                  V n        \	        V P                  VP
                  VP                  VR 7      V n        \        P                  ! V P                  4      V n
        VP                  V n        \        VP                  ,          V n        VP                  V n        \        P                   ! V P                  VP"                  4      V n        \        P                   ! VP"                  V P                  4      V n        \        P                  ! V P                  4      V n        R# ))r�   rŽ   rw   r’   N)rC   rD   Úd_modelr�   r‹   Úencoder_attention_headsÚattention_dropoutÚ	self_attnr   Ú	LayerNormÚself_attn_layer_normrw   r   Úactivation_functionÚactivation_fnÚactivation_dropoutr›   Úencoder_ffn_dimÚfc1Úfc2Úfinal_layer_norm©rE   r’   rF   s   &&€r*   rD   ÚBlenderbotEncoderLayer.__init__ø   sÑ   ø€ Ü‰ÑÔØŸ™ˆŒä,Ø—n‘nØ×4Ñ4Ø×,Ñ,Øô	
ˆŒô %'§L¢L°·±Ó$@ˆÔ!Ø—~‘~ˆŒÜ# F×$>Ñ$>Õ?ˆÔØ"(×";Ñ";ˆÔÜ—9’9˜TŸ^™^¨V×-CÑ-CÓDˆŒÜ—9’9˜V×3Ñ3°T·^±^ÓDˆŒÜ "§¢¨T¯^©^Ó <ˆÖr,   c                ó~   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[S[,          RS[ P                  /# )r"   r¢   ru   rx   r¥   )r&   r'   r   r   )r)   r?   s   "€r*   r+   rÆ   
  sE   ø€ ÷ "ñ "á—|‘|ð"ñ Ÿ™ð"ñ Ñ+Õ,ð	"ñ
 
�‰ñ"r,   c                ó  € TpV P                  V4      pV P                  ! RRVRV/VB w  r\        P                  P	                  WP                  V P
                  R7      pWA,           pTpV P                  V4      pV P                  V P                  V4      4      p\        P                  P	                  WP                  V P
                  R7      pV P                  V4      p\        P                  P	                  WP                  V P
                  R7      pWA,           pVP                  \        P                  8X  dK   \        P                  ! VP                  4      P                  R,
          p\        P                   ! W) VR7      pV# )a  
Args:
    hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)`
    attention_mask (`torch.FloatTensor`): attention mask of size
        `(batch, 1, tgt_len, src_len)` where padding elements are indicated by very large negative values.
r¢   ru   r}   iè  )ÚminÚmaxrW   )rÍ   rË   r   r„   rw   r   rÔ   rÏ   rÒ   rÐ   rÓ   rN   r&   Úfloat16ÚfinforÚ   Úclamp)rE   r¢   ru   rx   ÚresidualÚ_Úclamp_values   &&&,   r*   rS   ÚBlenderbotEncoderLayer.forward
  sI  € ð !ˆØ×1Ñ1°-Ó@ˆØŸ>š>ñ 
Ø'ð
à)ð
ð ñ
Ñˆô
 Ÿ™×-Ñ-¨m¿|¹|ÐVZ×VcÑVcÐ-ÓdˆØ Õ0ˆà ˆØ×-Ñ-¨mÓ<ˆØ×*Ñ*¨4¯8©8°MÓ+BÓCˆÜŸ™×-Ñ-¨m×?VÑ?VÐae×anÑanÐ-ÓoˆØŸ™ Ó/ˆÜŸ™×-Ñ-¨m¿|¹|ÐVZ×VcÑVcÐ-ÓdˆØ Õ0ˆà×Ñ¤%§-¡-Ô/ÜŸ+š+ m×&9Ñ&9Ó:×>Ñ>ÀÕEˆKÜ!ŸKšK¨¸<È[ÔYˆMàÐr,   )	rÐ   rÏ   rw   r�   rÒ   rÓ   rÔ   rË   rÍ   ©	rY   rZ   r[   r\   rD   rS   r^   r_   r`   ra   s   @@r*   rÃ   rÃ   ÷   s   ù‡ € ÷=ó =÷$"÷ "ð "r,   rÃ   c                   óX   a a€ ] tR tRt oRV3R lV 3R llltRV3R lR lltRtVtV ;t# )	ÚBlenderbotDecoderLayeri0  c                ó4   <€ V ^8„  d   QhRS[ RS[R,          /# )r"   r’   r“   N)r    r(   )r)   r?   s   "€r*   r+   Ú#BlenderbotDecoderLayer.__annotate__1  s    ø€ ÷ =ñ =Ñ/ð =¹CÀ$½Jñ =r,   c           
     ó2  <€ \         SV `  4        VP                  V n        \	        V P                  VP
                  VP                  R R VVR7      V n        VP                  V n        \        VP                  ,          V n        VP                  V n        \        P                  ! V P                  4      V n        \	        V P                  VP
                  VP                  R VVR7      V n        \        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        R# )T)r�   rŽ   rw   r�   r‘   r’   r“   )rw   r�   r’   r“   N)rC   rD   rÈ   r�   r‹   Údecoder_attention_headsrÊ   rË   rw   r   rÎ   rÏ   rÐ   r   rÌ   rÍ   Úencoder_attnÚencoder_attn_layer_normr›   Údecoder_ffn_dimrÒ   rÓ   rÔ   )rE   r’   r“   rF   s   &&&€r*   rD   ÚBlenderbotDecoderLayer.__init__1  s   ø€ Ü‰ÑÔØŸ™ˆŒä,Ø—n‘nØ×4Ñ4Ø×,Ñ,ØØØØô
ˆŒð —~‘~ˆŒÜ# F×$>Ñ$>Õ?ˆÔØ"(×";Ñ";ˆÔä$&§L¢L°·±Ó$@ˆÔ!Ü/Ø�N‰NØ×*Ñ*Ø×,Ñ,ØØØô
ˆÔô (*§|¢|°D·N±NÓ'CˆÔ$Ü—9’9˜TŸ^™^¨V×-CÑ-CÓDˆŒÜ—9’9˜V×3Ñ3°T·^±^ÓDˆŒÜ "§¢¨T¯^©^Ó <ˆÖr,   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[ P                  /# )
r"   r¢   ru   NÚencoder_hidden_statesÚencoder_attention_maskr¤   Ú	use_cacherx   r¥   )r&   r'   r   r”   r   r   )r)   r?   s   "€r*   r+   ræ   P  sŒ   ø€ ÷ :ñ :á—|‘|ð:ñ Ÿ™ tÕ+ð:ñ  %Ÿ|™|¨dÕ2ð	:ñ
 !&§¡¨tÕ 3ð:ñ  �ð:ñ ˜$•;ð:ñ Ñ+Õ,ð:ñ 
�‰ñ:r,   c                ó&  € TpV P                  V4      pV P                  ! RRVRVRV/VB w  r\        P                  P	                  WP                  V P
                  R7      pW�,           pVem   TpV P                  V4      pV P                  ! RRVRVRVRV/VB w  r\        P                  P	                  WP                  V P
                  R7      pW�,           pTpV P                  V4      pV P                  V P                  V4      4      p\        P                  P	                  WP                  V P
                  R7      pV P                  V4      p\        P                  P	                  WP                  V P
                  R7      pW�,           pV# )a   
Args:
    hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)`
    attention_mask (`torch.FloatTensor`): attention mask of size
        `(batch, 1, tgt_len, src_len)` where padding elements are indicated by very large negative values.
    encoder_hidden_states (`torch.FloatTensor`):
        cross attention input to the layer of shape `(batch, seq_len, embed_dim)`
    encoder_attention_mask (`torch.FloatTensor`): encoder attention mask of size
        `(batch, 1, tgt_len, src_len)` where padding elements are indicated by very large negative values.
    past_key_values (`Cache`): cached past key and value projection states
r¢   r¤   ru   r}   r£   rW   )rÍ   rË   r   r„   rw   r   rê   ré   rÔ   rÏ   rÒ   rÐ   rÓ   )
rE   r¢   ru   rî   rï   r¤   rð   rx   rÞ   rß   s
   &&&&&&&,  r*   rS   ÚBlenderbotDecoderLayer.forwardP  s   € ð* !ˆØ×1Ñ1°-Ó@ˆð  Ÿ>š>ñ 
Ø'ð
à+ð
ð *ð
ð ñ	
Ñˆô Ÿ™×-Ñ-¨m¿|¹|ÐVZ×VcÑVcÐ-ÓdˆØ Õ0ˆð !Ò,Ø$ˆHØ ×8Ñ8¸ÓGˆMà#×0Ò0ñ  Ø+ð à!6ð ð  6ð ð !0ð	 ð
 ñ ÑˆMô ŸM™M×1Ñ1°-Ç<Á<ÐZ^×ZgÑZgÐ1ÓhˆMØ$Õ4ˆMð !ˆØ×-Ñ-¨mÓ<ˆØ×*Ñ*¨4¯8©8°MÓ+BÓCˆÜŸ™×-Ñ-¨m×?VÑ?VÐae×anÑanÐ-ÓoˆØŸ™ Ó/ˆÜŸ™×-Ñ-¨m¿|¹|ÐVZ×VcÑVcÐ-ÓdˆØ Õ0ˆàÐr,   )rÐ   rÏ   rw   r�   ré   rê   rÒ   rÓ   rÔ   rË   rÍ   rB   )NNNNTrâ   ra   s   @@r*   rä   rä   0  s   ù‡ € ÷=õ =÷>:÷ :ò :r,   rä   c                   óf   a a€ ] tR tRt oRtRtRtRtRtRt	V 3R lt
]R 4       tV3R ltRtVtV ;t# )ÚBlenderbotPreTrainedModeli�  ÚmodelTc                ó–   <€ \         SV `  V4       \        V\        4      '       d#   \        P
                  ! VP                  4       R # R # rB   )rC   Ú_init_weightsrª   Ú"BlenderbotForConditionalGenerationÚinitÚzeros_Úfinal_logits_bias)rE   rq   rF   s   &&€r*   r÷   Ú'BlenderbotPreTrainedModel._init_weights—  s6   ø€ Ü‰Ñ˜fÔ%Ü�fÔ@×AÒAÜ�KŠK˜×0Ñ0Ö1ñ Br,   c                ó¶   € V P                   P                  p\        P                  ! . RO^ ^^^V..V P                  R7      pRVP                  V4      RVRV/pV# )r1   ©rO   ru   r#   Údecoder_input_ids)r1   é   é
   é   r"   )r’   r$   r&   ÚtensorrO   Úne)rE   Ú	pad_tokenr#   Údummy_inputss   &   r*   r  Ú&BlenderbotPreTrainedModel.dummy_inputsœ  s`   € à—K‘K×,Ñ,ˆ	Ü—L’LÒ"2°Q¸¸2¸qÀ)Ð4LÐ!MÐVZ×VaÑVaÔbˆ	à˜iŸl™l¨9Ó5Ø˜Ø ð
ˆð
 Ðr,   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # rÅ   r   )r)   r?   s   "€r*   r+   Ú&BlenderbotPreTrainedModel.__annotate__�  s   ø‡ ‚ áÑò r,   rW   )rY   rZ   r[   r\   Úbase_model_prefixÚsupports_gradient_checkpointingÚ_supports_flash_attnÚ_supports_sdpaÚ_supports_flex_attnÚ_can_compile_fullgraphr÷   Úpropertyr  Ú__annotate_func__r^   r_   r`   ra   s   @@r*   rô   rô   �  sJ   ù‡ € ð  ÐØ&*Ð#ØÐØ€NØÐØ!Ðõ2ð
 ñó ð÷! … r,   rô   c                   ó‚   a a€ ] tR tRt oRtR]R]/tV3R lV 3R llt]	]
]R
V3R lR ll4       4       4       tR	tVtV ;t# )ÚBlenderbotEncoderi¨  zÔ
Transformer encoder consisting of *config.encoder_layers* self attention layers. Each layer is a
[`BlenderbotEncoderLayer`].

Args:
    config: BlenderbotConfig
    embed_tokens (nn.Embedding): output embedding
r¢   Ú
attentionsc                ó    <€ V ^8„  d   QhRS[ /# rÅ   r   )r)   r?   s   "€r*   r+   ÚBlenderbotEncoder.__annotate__·  s   ø€ ÷ ñ Ñ/ñ r,   c                ó®  <€ \         SV `  V4       VP                  V n        VP                  V n        VP
                  pVP                  V n        VP                  V n	        VP                  '       d   \        P                  ! V4      MR p\        VP                  W P                  VR7      V n        \!        VP                  V4      V n        \$        P&                  ! \)        VP*                  4       Uu. uF  p\-        V4      NK  	  up4      V n        \$        P0                  ! VP
                  4      V n        RV n        V P7                  4        R# u upi )ro   rn   FN)rC   rD   rw   Úencoder_layerdropÚ	layerdroprÈ   r$   re   Úmax_position_embeddingsÚmax_source_positionsÚscale_embeddingÚmathÚsqrtrc   Ú
vocab_sizeÚembed_tokensr:   Úembed_positionsr   Ú
ModuleListÚrangeÚencoder_layersrÃ   r¯   rÌ   Ú
layer_normÚgradient_checkpointingÚ	post_init)rE   r’   r�   rf   rß   rF   s   &&   €r*   rD   ÚBlenderbotEncoder.__init__·  s  ø€ Ü‰Ñ˜Ô à—~‘~ˆŒØ×1Ñ1ˆŒà—N‘Nˆ	Ø!×.Ñ.ˆÔØ$*×$BÑ$BˆÔ!Ø.4×.D×.DÐ.D”d—i’i 	Ô*È#ˆä9Ø×Ñ˜y×*:Ñ*:Èô
ˆÔô  DØ×*Ñ*Øó 
ˆÔô —m’mÌUÐSY×ShÑShÔMiÓ$jÑMiÈÔ%;¸FÖ%CÑMiÑ$jÓkˆŒÜŸ,š, v§~¡~Ó6ˆŒà&+ˆÔ#à�‰Öùò %ks   Ã4Ec          
      ó®   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[/# )r"   r#   Nru   Úinputs_embedsrx   r¥   )r&   Ú
LongTensorr'   ÚFloatTensorr   r   r   )r)   r?   s   "€r*   r+   r  Ô  sb   ø€ ÷ ,
ñ ,
á×#Ñ# dÕ*ð,
ñ Ÿ™ tÕ+ð,
ñ ×(Ñ(¨4Õ/ð	,
ñ
 Ñ+Õ,ð,
ñ 
ñ,
r,   c                óp  € VR J VR J,          '       d   \        R4      hVf   V P                  V4      pVP                  4       R R pV P                  V4      pW6,           p\        P
                  P                  WpP                  V P                  R7      p\        V P                  VVR7      p\        V P                  4       FU  w  r‰Rp
V P                  '       d)   \        P                  ! . 4      pW°P                  8  d   Rp
V
'       d   KK  V	! VV3/ VB pKW  	  V P                  V4      p\!        VR7      # )Nz:You must specify exactly one of input_ids or inputs_embedsr}   )r’   r*  ru   FT)Úlast_hidden_stater/   )r5   r   r�   r!  r   r„   rw   r   r   r’   Ú	enumerater¯   r&   Úrandr  r%  r   )rE   r#   ru   r*  rx   r·   Ú	embed_posr¢   ÚidxÚencoder_layerÚto_dropÚdropout_probabilitys   &&&&,       r*   rS   ÚBlenderbotEncoder.forwardÑ  s%  € ð ˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZàÒ Ø ×-Ñ-¨iÓ8ˆMà#×(Ñ(Ó*¨3¨BÐ/ˆØ×(Ñ(¨Ó5ˆ	à%Õ1ˆÜŸ™×-Ñ-¨m¿|¹|ÐVZ×VcÑVcÐ-Ódˆä2Ø—;‘;Ø'Ø)ô
ˆô
 #,¨D¯K©KÖ"8ÑˆCàˆGØ�}�}ˆ}Ü&+§j¢j°£nÐ#Ø&¯©Ô7Ø"�Gç‘7Ù -Ø!Ø"ñ!ð ñ!’ñ #9ð  Ÿ™¨Ó6ˆäØ+ô
ð 	
r,   )	rw   r!  r   r&  r%  r  r¯   r  re   rÁ   )rY   rZ   r[   r\   r]   rÃ   r‹   Ú_can_record_outputsrD   r   r   r   rS   r^   r_   r`   ra   s   @@r*   r  r  ¨  sX   ù‡ € ñð 	Ð/ØÐ)ðÐ÷
ó ð4  ØØ÷,
ñ ,
ó ó ó  ÷,
ð ,
r,   r  c                   óª   a a€ ] tR tRt oRtR]R]! ]^RR7      R]! ]^RR7      /tV3R	 lV 3R
 llt	]
]]RV3R lR ll4       4       4       tRtVtV ;t# )ÚBlenderbotDecoderi  zÄ
Transformer decoder consisting of *config.decoder_layers* layers. Each layer is a [`BlenderbotDecoderLayer`]

Args:
    config: BlenderbotConfig
    embed_tokens (nn.Embedding): output embedding
r¢   r  rË   )ÚindexÚ
layer_nameÚcross_attentionsré   c                ó    <€ V ^8„  d   QhRS[ /# rÅ   r   )r)   r?   s   "€r*   r+   ÚBlenderbotDecoder.__annotate__  s   ø€ ÷ ñ Ñ/ñ r,   c           
     óÖ  <€ \         SV `  V4       VP                  V n        VP                  V n        VP
                  V n        VP                  V n        VP                  '       d!   \        P                  ! VP                  4      MR p\        VP                  VP                  V P                  VR7      V n        \!        VP                  VP                  4      V n        \$        P&                  ! \)        VP*                  4       Uu. uF  p\-        WR7      NK  	  up4      V n        \$        P0                  ! VP                  4      V n        RV n        V P7                  4        R# u upi )ro   rn   )r“   FN)rC   rD   rw   Údecoder_layerdropr  r$   re   r  Úmax_target_positionsr  r  r  rÈ   rc   r  r   r:   r!  r   r"  r#  Údecoder_layersrä   r¯   rÌ   r%  r&  r'  )rE   r’   rf   ÚirF   s   &&  €r*   rD   ÚBlenderbotDecoder.__init__  s  ø€ Ü‰Ñ˜Ô Ø—~‘~ˆŒØ×1Ñ1ˆŒØ!×.Ñ.ˆÔØ$*×$BÑ$BˆÔ!Ø39×3I×3IÐ3I”d—i’i §¡Ô/Èsˆä9Ø×Ñ˜vŸ~™~¨t×/?Ñ/?È[ô
ˆÔô  DØ×*Ñ*Ø�N‰Nó 
ˆÔô —m’mÜBGÈ×H]ÑH]ÔB^Ó_ÑB^¸QÔ# F×8ÑB^Ñ_ó
ˆŒô Ÿ,š, v§~¡~Ó6ˆŒà&+ˆÔ#à�‰Öùò `s   ÄE&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,          RS[ P                  R,          RS[R,          R	S[S[,          R
S[/	# )r"   r#   Nru   rî   rï   r¤   r*  rð   rx   r¥   )	r&   r+  r'   r,  r   r”   r   r   r   )r)   r?   s   "€r*   r+   r>  .  s³   ø€ ÷ U
ñ U
á×#Ñ# dÕ*ðU
ñ Ÿ™ tÕ+ðU
ñ  %×0Ñ0°4Õ7ð	U
ñ
 !&× 0Ñ 0°4Õ 7ðU
ñ  �ðU
ñ ×(Ñ(¨4Õ/ðU
ñ ˜$•;ðU
ñ Ñ+Õ,ðU
ñ 
3ñU
r,   c           
     ó  € VR J VR J,          '       d   \        R4      hVf   V P                  V4      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P                  4       R R w  ršVe   VP                  4       M^ p\        P                  ! W¦P                  R7      V,           pVf;   \        4       '       g+   Wº,           p\        P                  ! W�VP                  R7      p\        V\        4      '       d   VP                  MTp\        V P                  VVVR7      p\!        V P                  VVVR7      pV P#                  Wš3W¼R7      pWl,           p\$        P&                  P)                  VV P(                  V P*                  R7      p\-        V P.                  4       Fs  w  ppV P*                  '       d*   \        P0                  ! . 4      pVV P2                  8  d   KA  V! VVV3RVR	VR
V/VB p\        V\4        4      '       d
   V^ ,          MTpKu  	  V P7                  V4      p\9        VVR7      # )NzTYou cannot specify both decoder_input_ids and decoder_inputs_embeds at the same time)r’   rþ   )r’   r*  ru   r¤   )r’   r*  ru   rî   )rK   r}   rï   r¤   rð   )r.  r¤   r/   )r5   r   r’   Úis_encoder_decoderr	   r   r�   Úget_seq_lengthr&   rP   rO   r   Úonesrª   r®   r   r   r!  r   r„   rw   r   r/  r¯   r0  r  r¦   r%  r   )rE   r#   ru   rî   rï   r¤   r*  rð   rx   Ú
batch_sizeÚ
seq_lengthrJ   rK   Úmask_seq_lengthÚself_attn_cacheÚcausal_maskr¢   r2  Údecoder_layerr5  Úlayer_outputss   &&&&&&&&,            r*   rS   ÚBlenderbotDecoder.forward+  si  € ð ˜Ð -°tÐ";×<Ô<ÜÐsÓtÐtàÒ Ø ×-Ñ-¨iÓ8ˆM÷ ˜Ò0ð )Ò4¸¿¹×8V×8VÐ8Vô $¤L¸¿¹Ô$DÄlÐZ^×ZeÑZeÔFfÔgä!¨¯©Ô5ð ð "/×!3Ñ!3Ó!5°c°rÐ!:Ñˆ
ØETÒE` ×!?Ñ!?Ô!AÐfgÐÜ—|’| J×7KÑ7KÔLÐOeÕeˆàÒ!Ô*B×*DÒ*Dà4ÕAˆOÜ"ŸZšZ¨
ÈM×L`ÑL`ÔaˆNô ˜/Ô+>×?Ò?ð ×0Ò0à ð 	ô )Ø—;‘;Ø'Ø)Ø+ô	
ˆô ";Ø—;‘;Ø'Ø1Ø"7ô	"
Ðð ×+Ñ+ØÐ$Ð&<ð ,ó 
ˆð &Õ4ˆÜŸ™×-Ñ-¨m¸t¿|¹|ÐVZ×VcÑVcÐ-Ódˆä"+¨D¯K©KÖ"8ÑˆC�à�}�}ˆ}Ü&+§j¢j°£nÐ#Ø&¨¯©Ô7Ùá)ØØØ%ñð (>ð	ð
 !0ðð $ðð ñˆMô 1;¸=Ì%×0PÒ0P˜M¨!Ö,ÐVcŠMñ! #9ð& Ÿ™¨Ó6ˆä8Ø+Ø+ô
ð 	
r,   )	rw   r!  r   r&  r%  r  r¯   rA  re   )NNNNNNN)rY   rZ   r[   r\   r]   rä   r   r‹   r7  rD   r   r   r   rS   r^   r_   r`   ra   s   @@r*   r9  r9    su   ù‡ € ñð 	Ð/Ø‘nÐ%8ÀÈkÔZØ™NÐ+>ÀaÐTbÔcðÐ÷ó ð2  ØØ÷U
ñ U
ó ó ó  ÷U
ð U
r,   r9  c                   ó€   a a€ ] tR tRt oRRRR/tV3R lV 3R lltR tR t]]	RV3R	 lR
 ll4       4       t
RtVtV ;t# )ÚBlenderbotModeli†  zencoder.embed_tokens.weightzshared.weightzdecoder.embed_tokens.weightc                ó    <€ V ^8„  d   QhRS[ /# rÅ   r   )r)   r?   s   "€r*   r+   ÚBlenderbotModel.__annotate__�  s   ø€ ÷ 
ñ 
Ñ/ñ 
r,   c                óT  <€ \         SV `  V4       VP                  VP                  r2VP                  '       d!   \
        P                  ! VP                  4      MR p\        W1P                  W$R7      V n	        \        V4      V n        \        V4      V n        V P                  4        R# )ro   rn   N)rC   rD   r$   r  r  r  r  rÈ   rc   Úsharedr  Úencoderr9  Údecoderr'  )rE   r’   re   r  rf   rF   s   &&   €r*   rD   ÚBlenderbotModel.__init__�  sy   ø€ Ü‰Ñ˜Ô à"(×"5Ñ"5°v×7HÑ7H�ZØ39×3I×3IÐ3I”d—i’i §¡Ô/ÈsˆÜ3°JÇÁÐP[ÔuˆŒÜ(¨Ó0ˆŒÜ(¨Ó0ˆŒð 	�‰Ör,   c                ó   € V P                   # rB   )rW  ©rE   s   &r*   Úget_input_embeddingsÚ$BlenderbotModel.get_input_embeddings™  s   € Ø�{‰{Ðr,   c                ó~   € Wn         V P                   V P                  n        V P                   V P                  n        R # rB   )rW  rX  r   rY  ©rE   rt   s   &&r*   Úset_input_embeddingsÚ$BlenderbotModel.set_input_embeddingsœ  s'   € ØŒØ$(§K¡Kˆ�‰Ô!Ø$(§K¡Kˆ�‰Ö!r,   c                ób  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          RS[ P
                  R,          R	S[ P
                  R,          R
S[R,          RS[S[,          RS[	/# )r"   r#   Nru   rÿ   Údecoder_attention_maskÚencoder_outputsr¤   r*  Údecoder_inputs_embedsrð   rx   r¥   )
r&   r+  r'   r   r   r,  r”   r   r   r   )r)   r?   s   "€r*   r+   rU  £  sÙ   ø€ ÷ P
ñ P
á×#Ñ# dÕ*ðP
ñ Ÿ™ tÕ+ðP
ñ !×+Ñ+¨dÕ2ð	P
ñ
 !&× 0Ñ 0°4Õ 7ðP
ñ )¨4Õ/ðP
ñ  �ðP
ñ ×(Ñ(¨4Õ/ðP
ñ  %×0Ñ0°4Õ7ðP
ñ ˜$•;ðP
ñ Ñ+Õ,ðP
ñ 
ñP
r,   c
                ó
  € Vf   V P                   ! RRVRVRV/V
B pM]\        V\        4      '       gH   \        V^ ,          \        V4      ^8”  d
   V^,          MR\        V4      ^8”  d
   V^,          MRR7      pV P                  ! RRVRVRV^ ,          RVRVRVR	V	/V
B p\        VP                  VP                  VP                  VP                  VP                  VP                  VP                  VP                  R
7      # )aÄ  
decoder_input_ids (`torch.LongTensor` of shape `(batch_size, target_sequence_length)`, *optional*):
    Indices of decoder input sequence tokens in the vocabulary.

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

    [What are decoder input IDs?](../glossary#decoder-input-ids)

    Blenderbot uses the `bos_token_id` as the starting token for `decoder_input_ids` generation. If
    `past_key_values` is used, optionally only the last `decoder_input_ids` have to be input (see
    `past_key_values`).
decoder_attention_mask (`torch.LongTensor` of shape `(batch_size, target_sequence_length)`, *optional*):
    Default behavior: generate a tensor that ignores pad tokens in `decoder_input_ids`. Causal mask will also
    be used by default.

Example:

```python
>>> from transformers import AutoTokenizer, BlenderbotModel

>>> model = BlenderbotModel.from_pretrained("facebook/blenderbot-400M-distill")
>>> tokenizer = AutoTokenizer.from_pretrained("facebook/blenderbot-400M-distill")

>>> inputs = tokenizer("Studies have been shown that owning a dog is good for you", return_tensors="pt")
>>> decoder_input_ids = tokenizer("Studies show that", return_tensors="pt").input_ids  # Batch size 1
>>> outputs = model(input_ids=inputs.input_ids, decoder_input_ids=decoder_input_ids)

>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 6, 1280]
```Nr#   ru   r*  )r.  r¢   r  rî   rï   r¤   rð   )r.  r¤   Údecoder_hidden_statesÚdecoder_attentionsr<  Úencoder_last_hidden_staterî   Úencoder_attentionsrW   )rX  rª   r   ÚlenrY  r   r.  r¤   r¢   r  r<  )rE   r#   ru   rÿ   rd  re  r¤   r*  rf  rð   rx   Údecoder_outputss   &&&&&&&&&&, r*   rS   ÚBlenderbotModel.forward¡  sN  € ð` Ò"Ø/3¯|ª|ñ 0Ø#ð0à-ð0ð ,ð0ð ñ	0‰Oô ˜O¬_×=Ò=Ü-Ø"1°!Õ"4Ü47¸Ó4HÈ1Ô4L˜o¨aÖ0ÐRVÜ14°_Ó1EÈÔ1I˜?¨1Ö-ÈtôˆOð FJÇ\Â\ñ 	F
Ø'ð	F
à1ð	F
ð #2°!Õ"4ð	F
ð $2ð		F
ð
 ,ð	F
ð 0ð	F
ð  ð	F
ð ñ	F
ˆô "Ø-×?Ñ?Ø+×;Ñ;Ø"1×"?Ñ"?Ø.×9Ñ9Ø,×=Ñ=Ø&5×&GÑ&GØ"1×"?Ñ"?Ø.×9Ñ9ô	
ð 		
r,   )rY  rX  rW  )	NNNNNNNNN©rY   rZ   r[   r\   Ú_tied_weights_keysrD   r]  ra  r   r   rS   r^   r_   r`   ra   s   @@r*   rS  rS  †  sW   ù‡ € ð 	& Ø% ðÐ÷

ó 
òò0ð
 Ø÷P
ñ P
ó ó ÷P
ð P
r,   rS  z\
    The Blenderbot Model with a language modeling head. Can be used for summarization.
    )Úcustom_introc                   ó¨   a a€ ] tR tRt oRtR.tRR/tV3R lV 3R lltRV3R lV 3R	 llltV3R
 lR lt	]
]RV3R lR ll4       4       tRtVtV ;t# )rø   iö  rõ   rû   úlm_head.weightzmodel.shared.weightc                ó    <€ V ^8„  d   QhRS[ /# rÅ   r   )r)   r?   s   "€r*   r+   Ú/BlenderbotForConditionalGeneration.__annotate__  s   ø€ ÷ ñ Ñ/ñ r,   c                ó�  <€ \         SV `  V4       \        V4      V n        \        P
                  ! \        P                  ! ^V P                  P                  P                  34      4      V n
        \        P                  ! VP                  V P                  P                  P                  RR7      V n        V P                  4        R# )r0   Fr—   N)rC   rD   rS  rõ   r   ÚBufferr&   ÚzerosrW  r<   rû   r›   rÈ   Úlm_headr'  rÕ   s   &&€r*   rD   Ú+BlenderbotForConditionalGeneration.__init__  s€   ø€ Ü‰Ñ˜Ô Ü$ VÓ,ˆŒ
Ü!#§¢¬5¯;ª;¸¸4¿:¹:×;LÑ;L×;[Ñ;[Ð7\Ó+]Ó!^ˆÔÜ—y’y §¡°·±×1BÑ1B×1QÑ1QÐX]Ô^ˆŒð 	�‰Ör,   c                óT   <€ V ^8„  d   QhRS[ RS[ R,          RS[RS[P                  /# )r"   Únew_num_tokensÚpad_to_multiple_ofNÚmean_resizingr¥   )r(   r”   r   Ú	Embedding)r)   r?   s   "€r*   r+   ru    s5   ø€ ÷ ñ Ù!ðÙ7:¸TµzðÙY]ðá	�‰ñr,   c                ó€   <€ \         SV `  WV4      pV P                  VP                  P                  ^ ,          4       V# )r1   )rC   Úresize_token_embeddingsÚ_resize_final_logits_biasrR   r3   )rE   r|  r}  r~  Únew_embeddingsrF   s   &&&& €r*   r�  Ú:BlenderbotForConditionalGeneration.resize_token_embeddings  s<   ø€ ô ™Ñ8¸Ð]jÓkˆØ×&Ñ& ~×'<Ñ'<×'BÑ'BÀ1Õ'EÔFØÐr,   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r"   r|  r¥   Nr>   )r)   r?   s   "€r*   r+   ru    s   ø€ ÷ 5ñ 5¹ð 5Àñ 5r,   c                ób  € V P                   P                  R,          pW8:  d   V P                   RRV13,          pMX\        P                  ! ^W,
          3V P                   P                  R7      p\        P
                  ! V P                   V.^R7      p\        P                  ! V4      V n         R# )r0   r.   Nrþ   r{   r/   )rû   r3   r&   rx  rO   Úcatr   rw  )rE   r|  Úold_num_tokensÚnew_biasÚ
extra_biass   &&   r*   r‚  Ú<BlenderbotForConditionalGeneration._resize_final_logits_bias  sˆ   € Ø×/Ñ/×5Ñ5°bÕ9ˆØÔ+Ø×-Ñ-¨a°°.°Ð.@ÕA‰HäŸš a¨Õ)HÐ%IÐRV×RhÑRh×RoÑRoÔpˆJÜ—y’y $×"8Ñ"8¸*Ð!EÈ1ÔMˆHÜ!#§¢¨8Ó!4ˆÖ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[R,          RS[R,          RS[ P
                  R,          R	S[ P
                  R,          R
S[ P                  R,          RS[R,          RS[S[,          RS[	/# )r"   r#   Nru   rÿ   rd  re  r¤   r*  rf  Úlabelsrð   rx   r¥   )
r&   r+  r'   r   r   r,  r”   r   r   r   )r)   r?   s   "€r*   r+   ru    sï   ø€ ÷ k
ñ k
á×#Ñ# dÕ*ðk
ñ Ÿ™ tÕ+ðk
ñ !×+Ñ+¨dÕ2ð	k
ñ
 !&× 0Ñ 0°4Õ 7ðk
ñ )¨4Õ/ðk
ñ  �ðk
ñ ×(Ñ(¨4Õ/ðk
ñ  %×0Ñ0°4Õ7ðk
ñ × Ñ  4Õ'ðk
ñ ˜$•;ðk
ñ Ñ+Õ,ðk
ñ 
ñk
r,   c                ó  € V	e\   V
'       d   \         P                  R4       Rp
Vf9   Vf5   \        W�P                  P                  V P                  P
                  4      pV P                  ! V3RVRVRVRVRVR	VR
VRV
/VB pV P                  V^ ,          4      pWÐP                  P                  VP                  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                   VP"                  VP$                  VP&                  VP(                  VP*                  R7	      # )aä	  
decoder_input_ids (`torch.LongTensor` of shape `(batch_size, target_sequence_length)`, *optional*):
    Indices of decoder input sequence tokens in the vocabulary.

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

    [What are decoder input IDs?](../glossary#decoder-input-ids)

    Blenderbot uses the `bos_token_id` as the starting token for `decoder_input_ids` generation. If
    `past_key_values` is used, optionally only the last `decoder_input_ids` have to be input (see
    `past_key_values`).
decoder_attention_mask (`torch.LongTensor` of shape `(batch_size, target_sequence_length)`, *optional*):
    Default behavior: generate a tensor that ignores pad tokens in `decoder_input_ids`. Causal mask will also
    be used by default.
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,
    config.vocab_size]` or -100 (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 conversation:

```python
>>> from transformers import AutoTokenizer, BlenderbotForConditionalGeneration

>>> mname = "facebook/blenderbot-400M-distill"
>>> model = BlenderbotForConditionalGeneration.from_pretrained(mname)
>>> tokenizer = AutoTokenizer.from_pretrained(mname)
>>> UTTERANCE = "My friends are cool but they eat too many carbs."
>>> print("Human: ", UTTERANCE)
Human:  My friends are cool but they eat too many carbs.

>>> inputs = tokenizer([UTTERANCE], return_tensors="pt")
>>> reply_ids = model.generate(**inputs)
>>> print("Bot: ", tokenizer.batch_decode(reply_ids, skip_special_tokens=True)[0])
Bot: That's unfortunate. Are they trying to lose weight or are they just trying to be healthier?

>>> REPLY = "I'm not sure"
>>> print("Human: ", REPLY)
Human: I'm not sure

>>> NEXT_UTTERANCE = (
...     "My friends are cool but they eat too many carbs.</s> <s>That's unfortunate. "
...     "Are they trying to lose weight or are they just trying to be healthier?</s> "
...     "<s> I'm not sure."
... )
>>> inputs = tokenizer([NEXT_UTTERANCE], return_tensors="pt")
>>> next_reply_ids = model.generate(**inputs)
>>> print("Bot: ", tokenizer.batch_decode(next_reply_ids, skip_special_tokens=True)[0])
Bot:   I see. Well, it's good that they're trying to change their eating habits.
```
NzJThe `use_cache` argument is changed to `False` since `labels` is provided.Fru   rÿ   re  rd  r¤   r*  rf  rð   )	ÚlossÚlogitsr¤   rh  ri  r<  rj  rî   rk  r/   )r™   Úwarningr8   r’   r$   r%   rõ   ry  rû   ÚtorO   r   r©   r  r   r¤   rh  ri  r<  rj  rî   rk  )rE   r#   ru   rÿ   rd  re  r¤   r*  rf  r�  rð   rx   ÚoutputsÚ	lm_logitsÚmasked_lm_lossÚloss_fcts   &&&&&&&&&&&,    r*   rS   Ú*BlenderbotForConditionalGeneration.forward  s•  € ðH ÒßÜ—‘ÐkÔlØˆIØ Ò(Ð-BÒ-JÜ$6ØŸK™K×4Ñ4°d·k±k×6XÑ6Xó%Ð!ð '+§j¢jØñ'
à)ð'
ð 0ð'
ð ,ð	'
ð
 $:ð'
ð ,ð'
ð (ð'
ð #8ð'
ð  ð'
ð ñ'
ˆð —L‘L ¨¥Ó,ˆ	Ø× 6Ñ 6× 9Ñ 9¸)×:JÑ:JÓ KÕKˆ	àˆØÒØ—Y‘Y˜y×/Ñ/Ó0ˆFÜ'Ó)ˆHÙ% i§n¡n°R¸¿¹×9OÑ9OÓ&PÐRX×R]ÑR]Ð^`ÓRaÓbˆNäØØØ#×3Ñ3Ø")×"?Ñ"?Ø&×9Ñ9Ø$×5Ñ5Ø&-×&GÑ&GØ")×"?Ñ"?Ø&×9Ñ9ô

ð 
	
r,   )rû   ry  rõ   )NT)
NNNNNNNNNN)rY   rZ   r[   r\   r
  Ú_keys_to_ignore_on_load_missingrp  rD   r�  r‚  r   r   rS   r^   r_   r`   ra   s   @@r*   rø   rø   ö  sl   ù‡ € ð  ÐØ':Ð&;Ð#àÐ/ðÐ÷ó ÷õ ÷5ð 5ð Ø÷k
ñ k
ó ó ÷k
ð k
r,   rø   c                   ó<   a a€ ] tR tRt oRtV 3R ltR tRtVtV ;t	# )ÚBlenderbotDecoderWrapperiŒ  z±
This wrapper class is a helper class to correctly load pretrained checkpoints when the causal language model is
used in combination with the [`EncoderDecoderModel`] framework.
c                óf   <€ \         SV `  V4       \        V4      V n        V P	                  4        R # rB   )rC   rD   r9  rY  r'  rÕ   s   &&€r*   rD   Ú!BlenderbotDecoderWrapper.__init__’  s&   ø€ Ü‰Ñ˜Ô Ü(¨Ó0ˆŒØ�‰Ör,   c                ó&   € V P                   ! V/ VB # rB   ©rY  )rE   Úargsrx   s   &*,r*   rS   Ú BlenderbotDecoderWrapper.forward—  s   € Ø�|Š|˜TÐ, VÑ,Ð,r,   rž  rX   ra   s   @@r*   rš  rš  Œ  s   ù‡ € ñõ
÷
-ò -r,   rš  c                   óp   a a€ ] tR tRt o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# )ÚBlenderbotForCausalLMiœ  rs  z!model.decoder.embed_tokens.weightc                óæ   <€ R Vn         RVn        \        SV `  V4       \	        V4      V n        \        P                  ! VP                  VP                  RR7      V n
        V P                  4        R# )TFr—   N)r�   rG  rC   rD   rš  rõ   r   r›   Úhidden_sizer  ry  r'  rÕ   s   &&€r*   rD   ÚBlenderbotForCausalLM.__init__¡  sX   ø€ Ø ˆÔØ$)ˆÔ!Ü‰Ñ˜Ô Ü-¨fÓ5ˆŒ
ä—y’y ×!3Ñ!3°V×5FÑ5FÈUÔSˆŒð 	�‰Ör,   c                óB   € V P                   P                  P                  # rB   ©rõ   rY  r   r\  s   &r*   r]  Ú*BlenderbotForCausalLM.get_input_embeddings¬  s   € Ø�z‰z×!Ñ!×.Ñ.Ð.r,   c                ó:   € WP                   P                  n        R # rB   r§  r`  s   &&r*   ra  Ú*BlenderbotForCausalLM.set_input_embeddings¯  s   € Ø*/�
‰
×ÑÖ'r,   c                óˆ  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          RS[ P                  R,          R	S[R,          R
S[S[ P                  ,          RS[S[,          RS[	S[
,          /# )r"   r#   Nru   rî   rï   r¤   r*  r�  rð   Úlogits_to_keeprx   r¥   )r&   r+  r'   r,  r   r”   r(   r   r   r¦   r   )r)   r?   s   "€r*   r+   Ú"BlenderbotForCausalLM.__annotate__´  sã   ø€ ÷ A
ñ A
á×#Ñ# dÕ*ðA
ñ Ÿ™ tÕ+ðA
ñ  %×0Ñ0°4Õ7ð	A
ñ
 !&× 1Ñ 1°DÕ 8ðA
ñ  �ðA
ñ ×(Ñ(¨4Õ/ðA
ñ × Ñ  4Õ'ðA
ñ ˜$•;ðA
ñ ™eŸl™lÕ*ðA
ñ Ñ+Õ,ðA
ñ 
Ñ2Õ	2ñA
r,   c
                ó(  € V P                   P                  ! RRVRVRVRVRVRVRV/V
B pV^ ,          p\        V	\        4      '       d   \	        V	) R4      MT	pV P                  VR	VR	3,          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                  VP                  VP                   R
7      # )aà  
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,
    config.vocab_size]` or -100 (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, BlenderbotForCausalLM

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/blenderbot-400M-distill")
>>> model = BlenderbotForCausalLM.from_pretrained("facebook/blenderbot-400M-distill")
>>> assert model.config.is_decoder, f"{model.__class__} has to be configured as a decoder."
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> outputs = model(**inputs)

>>> logits = outputs.logits
>>> expected_shape = [1, inputs.input_ids.shape[-1], model.config.vocab_size]
>>> list(logits.shape) == expected_shape
True
```r#   ru   rî   rï   r¤   r*  rð   Nr.   )r�  r�  r¤   r¢   r  r<  rW   r/   )rõ   rY  rª   r(   Úslicery  r’  rO   r   r©   r’   r  r   r¤   r¢   r  r<  )rE   r#   ru   rî   rï   r¤   r*  r�  rð   r¬  rx   r“  r¢   Úslice_indicesr�  r�  r–  s   &&&&&&&&&&,      r*   rS   ÚBlenderbotForCausalLM.forward²  s/  € ðL >B¿Z¹Z×=OÒ=Oñ 	>
Øð	>
à)ð	>
ð #8ð	>
ð $:ð		>
ð
 ,ð	>
ð (ð	>
ð  ð	>
ð ñ	>
ˆð   �
ˆä8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ—‘˜m¨A¨}¸aÐ,?Õ@ÓAˆàˆØÒØ—Y‘Y˜vŸ}™}Ó-ˆFÜ'Ó)ˆHÙ˜FŸK™K¨¨D¯K©K×,BÑ,BÓCÀVÇ[Á[ÐQSÃ_ÓUˆDä0ØØØ#×3Ñ3Ø!×/Ñ/Ø×)Ñ)Ø$×5Ñ5ô
ð 	
r,   )ry  rõ   )	NNNNNNNNr1   ro  ra   s   @@r*   r¢  r¢  œ  sL   ù‡ € àÐ=ðÐõ	ò/ò0ð Ø÷A
ñ A
ó ó ÷A
ð A
r,   r¢  )Nr¨   )r¢  rø   rS  rô   )Fr]   r  Úcollections.abcr   r&   r   Útorch.nnr   Ú r   rù   Úactivationsr   Úcache_utilsr   r   r	   Ú
generationr
   Úmasking_utilsr   r   Úmodeling_flash_attention_utilsr   Úmodeling_layersr   Úmodeling_outputsr   r   r   r   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   r   r   Úutils.genericr   Úutils.output_capturingr   r   Úconfiguration_blenderbotr    Ú
get_loggerrY   r™   r8   r  r:   rc   r‰   ry   r‹   rÃ   rä   rô   r  r9  rS  rø   rš  r¢  Ú__all__rW   r,   r*   Ú<module>rÄ     sm  ðñ  ã Ý $ã Ý Ý %å &Ý !ß CÑ CÝ )ß JÝ BÝ 9÷õ ÷ GÝ &ß lÕ lÝ 7ß EÝ 6ð 
×	Ò	˜HÓ	%€õô -¨2¯<©<ô -ô*
= B§L¡Lô 
=÷%ô:r)˜"Ÿ)™)ô r)ôl5Ð7ô 5ôrZÐ7ô Zðz ô ó ó ðô4X
Ð1ô X
ôv@
Ð1ô @
ðF ôl
Ð/ó l
ó ðl
ñ^ ðôô
M
Ð)BÀOó M
óð
M
ôb-Ð8ô -ô Y
Ð5°ô Y
òx‚r,   