+
    œ°³jX  ã                   ón  € R t ^ RIHt ^ RIt^ RIHt ^RIHt ^RIHt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Ht ^RIHtHt ^RIHtHt ^RIHt ^RI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, ]#PZ                  ! ].4      t/ ! R R]P`                  4      t1R t2R)R lt3 ! R R]P`                  4      t4R*R R llt5 ! R R]P`                  4      t6 ! R R]4      t7]! ! R R ]4      4       t8]! ! R! R"]84      4       t9 ! R# R$]8]4      t: ! R% R&]]84      t; ! R' R(]]84      t<. R+Ot=R# ),zPyTorch Persimmon model.)ÚCallableN)Únn)ÚACT2FN)ÚCacheÚDynamicCache)ÚGenerationMixin)Úcreate_causal_mask)ÚFlashAttentionKwargs)Ú GenericForSequenceClassificationÚGenericForTokenClassificationÚGradientCheckpointingLayer)ÚBaseModelOutputWithPastÚCausalLMOutputWithPast)ÚROPE_INIT_FUNCTIONSÚdynamic_rope_update)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚlogging)Údeprecate_kwarg)Úmaybe_autocastÚmerge_with_config_defaults)Úcapture_outputs©ÚPersimmonConfigc                   óÎ   a a€ ] tR t^9t o]! RRR7      R
V3R lV 3R lll4       t]]! RRR7      R
V3R lR ll4       4       t]P                  ! 4       ]
R 4       4       tR	tVtV ;t# )ÚPersimmonRotaryEmbeddingÚdevicez5.18)Úversionc                ó    <€ V ^8„  d   QhRS[ /# ©é   Úconfigr   )ÚformatÚ__classdict__s   "€Úq/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/persimmon/modeling_persimmon.pyÚ__annotate__Ú%PersimmonRotaryEmbedding.__annotate__;   s   ø€ ÷ Oñ O™ñ Oó    c                óä  <€ \         SV `  4        VP                  V n        VP                  V n        Wn        V P
                  P                  R ,          V n        V P                  pV P                  R8w  d   \        V P                  ,          pV! V P
                  V4      w  q@n
        \        P                  ! VRR7      V n        \        P                  ! VP                  4       RR7      V n        R# )Ú	rope_typeÚdefaultF)Ú
persistentN)ÚsuperÚ__init__Úmax_position_embeddingsÚmax_seq_len_cachedÚoriginal_max_seq_lenr%   Úrope_parametersr-   Úcompute_default_rope_parametersr   Úattention_scalingr   ÚBufferÚinv_freqÚcloneÚoriginal_inv_freq)Úselfr%   r    Úrope_init_fnr9   Ú	__class__s   &&&  €r(   r1   Ú!PersimmonRotaryEmbedding.__init__:   s¬   ø€ ä‰ÑÔØ"(×"@Ñ"@ˆÔØ$*×$BÑ$BˆÔ!àŒàŸ™×4Ñ4°[ÕAˆŒØ!%×!EÑ!EˆØ�>‰>˜YÔ&Ü.¨t¯~©~Õ>ˆLÙ+7¸¿¹ÀVÓ+LÑ(ˆÔ(äŸ	š	 (°uÔ=ˆŒÜ!#§¢¨8¯>©>Ó+;ÈÔ!NˆÖr+   c                óP   <€ V ^8„  d   QhRS[ RS[S[P                  S[3,          /# )r$   r%   Úreturn)r   ÚtupleÚtorchÚTensorÚfloat)r&   r'   s   "€r(   r)   r*   N   s.   ø€ ÷ 5ñ 5±ð 5Ñ[`Ñaf×amÑamÑotÐatÕ[uñ 5r+   c           	     óŠ  € V P                   R,          pV P                   P                  RR4      p\        V RR4      ;'       g    V P                  V P                  ,          p\        WT,          4      pRpRV\        P                  ! ^ V^\        P                  R7      V,          ,          ,          pVP                  V4      V3# )a]  
Computes the inverse frequencies according to the original RoPE implementation
Args:
    config ([`~transformers.PreTrainedConfig`]):
Returns:
    Tuple of (`torch.Tensor`, `float`), containing the inverse frequencies for the RoPE embeddings and the
    post-processing scaling factor applied to the computed cos/sin (unused in this type of RoPE).
Ú
rope_thetaÚpartial_rotary_factorg      ð?Úhead_dimN©Údtype)
r5   ÚgetÚgetattrÚhidden_sizeÚnum_attention_headsÚintrC   ÚarangerE   Úto)	r%   r    ÚkwargsÚbaserH   rI   ÚdimÚattention_factorr9   s	   &&,      r(   r6   Ú8PersimmonRotaryEmbedding.compute_default_rope_parametersK   s¦   € ð ×%Ñ% lÕ3ˆØ &× 6Ñ 6× :Ñ :Ð;RÐTWÓ XÐÜ˜6 :¨tÓ4×hÐh¸×8JÑ8JÈf×NhÑNhÕ8hˆÜ�(Õ2Ó3ˆàÐà˜$¤5§<¢<°°3¸ÄÇÁÔ#MÐPSÕ#SÕTÕUˆØ�{‰{˜6Ó"Ð$4Ð4Ð4r+   c                ó^  € V P                   R,          P                  VP                  ^ ,          R	^4      P                  \        P
                  VP                  R7      pVR
,          P                  4       p\        VP                  P                  \        4      '       d2   VP                  P                  R8w  d   VP                  P                  MRp\        VRR7      ;_uu_ 4        W4,          P                  ^^4      p\        P                  ! Wf3R	R7      pVP                  4       V P                  ,          pVP                  4       V P                  ,          p	R R R 4       XP                  VP                   R7      X	P                  VP                   R7      3#   + '       g   i     LH; i)N)rK   r    ÚmpsÚcpuF)Údevice_typeÚenabled©rU   rJ   )NºNNNNéÿÿÿÿ)r^   Nr^   )r9   ÚexpandÚshaperR   rC   rE   r    Ú
isinstanceÚtypeÚstrr   Ú	transposeÚcatÚcosr7   ÚsinrK   )
r<   ÚxÚposition_idsÚinv_freq_expandedÚposition_ids_expandedr[   ÚfreqsÚembrg   rh   s
   &&&       r(   ÚforwardÚ PersimmonRotaryEmbedding.forwarda   s2  € ð �M‰M˜-Õ(×/Ñ/°×0BÑ0BÀ1Õ0EÀrÈ1ÓM×PÑPÔW\×WbÑWbÐkl×ksÑksÐPÓtð 	ð !-¨ZÕ 8× >Ñ >Ó @Ðä'1°!·(±(·-±-Ä×'EÒ'EÈ!Ï(É(Ï-É-Ð[`ÔJ`�a—h‘h—m’mÐfkˆä¨¸U×CÖCØ&Õ>×IÑIÈ!ÈQÓOˆEÜ—)’)˜U˜N°Ô3ˆCØ—'‘'“)˜d×4Ñ4Õ4ˆCØ—'‘'“)˜d×4Ñ4Õ4ˆC÷	 Dð �v‰v˜AŸG™GˆvÓ$ c§f¡f°1·7±7 fÓ&;Ð;Ð;÷ D×Cús   Ã(A4FÆF,	)r7   r%   r9   r3   r;   r4   r-   ©N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r1   Ústaticmethodr6   rC   Úno_gradr   ro   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r>   r'   s   @@r(   r   r   9   su   ù‡ € Ù�X vÔ.÷Oô Oó /ðOð  á�X vÔ.÷5ñ 5ó /ó ð5ð& ‡]‚]ƒ_Øñ<ó ó ÷<ð <r+   r   c                óÌ   € V RRV P                   R,          ^,          13,          pV RV P                   R,          ^,          R13,          p\        P                  ! V) V3RR7      # )z*Rotates half the hidden dims of the input..Nr]   r_   )ra   rC   rf   )ri   Úx1Úx2s   &  r(   Úrotate_halfr   u   sZ   € à	
ˆ3Ð"�!—'‘'˜"•+ Õ"Ð"Ð"Õ	#€BØ	
ˆ3�—‘˜•˜qÕ Ñ"Ð"Õ	#€BÜ�9Š9�r�c˜2�Y BÔ'Ð'r+   c                óÈ   € VP                  V4      pVP                  V4      pW,          \        V 4      V,          ,           pW,          \        V4      V,          ,           pWV3# )aI  Applies Rotary Position Embedding to the query and key tensors.

Args:
    q (`torch.Tensor`): The query tensor.
    k (`torch.Tensor`): The key tensor.
    cos (`torch.Tensor`): The cosine part of the rotary embedding.
    sin (`torch.Tensor`): The sine part of the rotary embedding.
    unsqueeze_dim (`int`, *optional*, defaults to 1):
        The 'unsqueeze_dim' argument specifies the dimension along which to unsqueeze cos[position_ids] and
        sin[position_ids] so that they can be properly broadcasted to the dimensions of q and k. For example, note
        that cos[position_ids] and sin[position_ids] have the shape [batch_size, seq_len, head_dim]. Then, if q and
        k have the shape [batch_size, heads, seq_len, head_dim], then setting unsqueeze_dim=1 makes
        cos[position_ids] and sin[position_ids] broadcastable to the shapes of q and k. Similarly, if q and k have
        the shape [batch_size, seq_len, heads, head_dim], then set unsqueeze_dim=2.
Returns:
    `tuple(torch.Tensor)` comprising of the query and key tensors rotated using the Rotary Position Embedding.
)Ú	unsqueezer   )ÚqÚkrg   rh   Úunsqueeze_dimÚq_embedÚk_embeds   &&&&&  r(   Úapply_rotary_pos_embr‡   }   sS   € ð$ �-‰-˜Ó
&€CØ
�-‰-˜Ó
&€CØ�wœ; q›>¨CÕ/Õ0€GØ�wœ; q›>¨CÕ/Õ0€GØÐÐr+   c                   ó8   a a€ ] tR t^—t oV 3R ltR tRtVtV ;t# )ÚPersimmonMLPc                ó  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        P                  ! VP
                  VP                  4      V n        \        VP                  ,          V n
        R # rq   )r0   r1   r   ÚLinearrN   Úintermediate_sizeÚdense_h_to_4hÚdense_4h_to_hr   Ú
hidden_actÚact©r<   r%   r>   s   &&€r(   r1   ÚPersimmonMLP.__init__˜   s^   ø€ Ü‰ÑÔÜŸYšY v×'9Ñ'9¸6×;SÑ;SÓTˆÔÜŸYšY v×'?Ñ'?À×ASÑASÓTˆÔÜ˜&×+Ñ+Õ,ˆŽr+   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rq   )r�   r�   rŽ   )r<   Úhidden_statess   &&r(   ro   ÚPersimmonMLP.forwardž   s6   € Ø×*Ñ*¨=Ó9ˆØŸ™ Ó/ˆØ×*Ñ*¨=Ó9ˆØÐr+   )r�   rŽ   r�   ©	rr   rs   rt   ru   r1   ro   rx   ry   rz   r{   s   @@r(   r‰   r‰   —   s   ù‡ € õ-÷ò r+   r‰   c                óÞ   € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R\        /# )	r$   ÚmoduleÚqueryÚkeyÚvalueÚattention_maskNÚscalingÚdropout)r   ÚModulerC   rD   rE   )r&   s   "r(   r)   r)   ¥   sg   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô ð%ô ñ%r+   c                 óÎ  € \         P                  ! WP                  ^^4      4      V,          pVe	   W„,           p\        P                  P                  VR\         P                  R7      P                  VP                  4      p\        P                  P                  W†V P                  R7      p\         P                  ! Wƒ4      p	V	P                  ^^4      P                  4       p	W˜3# )r$   )rU   rK   )ÚpÚtrainingr_   )rC   Úmatmulre   r   Ú
functionalÚsoftmaxÚfloat32rR   rK   rž   r¢   Ú
contiguous)
r˜   r™   rš   r›   rœ   r�   rž   rS   Úattn_weightsÚattn_outputs
   &&&&&&&,  r(   Úeager_attention_forwardrª   ¥   s°   € ô —<’< §}¡}°Q¸Ó':Ó;¸gÕE€LØÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2ÄUÇ]Á]Ð(ÓS×VÑVÐW\×WbÑWbÓc€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€LÜ—,’,˜|Ó3€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$r+   c                   ón   a a€ ] tR t^»t oR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tRtVt	V ;t
# )ÚPersimmonAttentionz=Multi-headed attention from 'Attention Is All You Need' paperc                ó4   <€ V ^8„  d   QhRS[ RS[R,          /# )r$   r%   Ú	layer_idxN©r   rP   )r&   r'   s   "€r(   r)   ÚPersimmonAttention.__annotate__¾   s#   ø€ ÷ #Fñ #F™ð #F¹3À½:ñ #Fr+   c                ó   <€ \         SV `  4        Wn        W n        Vf.   \        P                  RV P                  P                   R24       VP                  V n        VP                  V n
        V P                  V P                  ,          V n        \        V P                  VP                  R,          ,          4      V n        RV n        V P                  V P                  ,          V P                  8w  d'   \!        RV P                   RV P                   R24      h\"        P$                  ! V P                  ^V P                  ,          RR7      V n        \"        P$                  ! V P                  V P                  ,          V P                  RR7      V n        VP*                  V n        V P                  R
,          V n        V P*                  '       d‡   \"        P.                  ! VP                  V P                  ,          VP0                  RR	7      V n        \"        P.                  ! VP                  V P                  ,          VP0                  RR	7      V n        \"        P6                  ! VP8                  4      V n        R # )NzInstantiating z¹ without passing a `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.rH   Tz?hidden_size must be divisible by num_heads (got `hidden_size`: z and `num_heads`: z).©Úbias)ÚepsÚelementwise_affineg      à¿)r0   r1   r%   r®   ÚloggerÚwarning_oncer>   rr   rN   rO   Ú	num_headsrI   rP   r5   Úrotary_ndimsÚ	is_causalÚ
ValueErrorr   r‹   Úquery_key_valueÚdenseÚqk_layernormr�   Ú	LayerNormÚlayer_norm_epsÚq_layernormÚk_layernormÚDropoutÚattention_dropout©r<   r%   r®   r>   s   &&&€r(   r1   ÚPersimmonAttention.__init__¾   sà  ø€ Ü‰ÑÔØŒØ"ŒØÒÜ×ÑØ  §¡×!8Ñ!8Ð 9ð :,ð ,ôð "×-Ñ-ˆÔØ×3Ñ3ˆŒØ×(Ñ(¨D¯N©NÕ:ˆŒä §¡°×0FÑ0FÐG^Õ0_Õ _Ó`ˆÔØˆŒà�M‰M˜DŸN™NÕ*¨t×/?Ñ/?Ô?ÜØQÐRV×RbÑRbÐQcØ$ T§^¡^Ð$4°Bð8óð ô  "Ÿyšy¨×)9Ñ)9¸1¸t×?OÑ?OÕ;OÐVZÔ[ˆÔÜ—Y’Y˜tŸ~™~°·±Õ=¸t×?OÑ?OÐVZÔ[ˆŒ
Ø"×/Ñ/ˆÔØ—}‘} dÕ*ˆŒà××ÐÜ!Ÿ|š|Ø×"Ñ" d§n¡nÕ4¸&×:OÑ:OÐdhô ˆDÔô  "Ÿ|š|Ø×"Ñ" d§n¡nÕ4¸&×:OÑ:OÐdhô ˆDÔô "$§¢¨F×,DÑ,DÓ!EˆÖr+   c                ó�   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  S[ P                  S[ P                  3,          /# )r$   Ú	fused_qkvrA   )rC   rD   rB   )r&   r'   s   "€r(   r)   r°   ã   s>   ø€ ÷ Pñ P¡e§l¡lð P±u¹U¿\¹\É5Ï<É<ÑY^×YeÑYeÐ=eÕ7fñ Pr+   c                ó¤   € VP                   w  r#pVP                  W#V P                  ^V P                  4      pVR,          VR,          VR,          3# )aŠ  
Split the last dimension into (num_heads, head_dim) without making any copies, results share same memory
storage as `fused_qkv`

Args:
    fused_qkv (`torch.tensor`): [batch_size, seq_length, num_heads * 3 * head_dim]

Returns:
    query: [batch_size, seq_length, num_heads, head_dim] key: [batch_size, seq_length, num_heads, head_dim]
    value: [batch_size, seq_length, num_heads, head_dim]
).é    r^   ).é   r^   ).r$   r^   )ra   Úviewr¸   rI   )r<   rÈ   Ú
batch_sizeÚ
seq_lengthÚthree_times_hidden_sizes   &&   r(   Ú_split_headsÚPersimmonAttention._split_headsã   sL   € ð ;D¿/¹/Ñ7ˆ
Ð 7Ø—N‘N :¸4¿>¹>È1ÈdÏmÉmÓ\ˆ	Ø˜Õ# Y¨yÕ%9¸9ÀYÕ;OÐOÐOr+   c                ó”  <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[R,          RS[RS[RS[S[ P                  S[ P                  3,          R,          R	S[S[,          R
S[S[ P                  S[ P                  R,          S[S[ P                  ,          R,          3,          /	# )r$   r”   rœ   Nrj   Úpast_key_valuesÚoutput_attentionsÚ	use_cacheÚposition_embeddingsrS   rA   ©rC   rD   Ú
LongTensorr   ÚboolrB   r   r	   )r&   r'   s   "€r(   r)   r°   ó   sÐ   ø€ ÷ A)ñ A)á—|‘|ðA)ñ Ÿ™ tÕ+ðA)ñ ×&Ñ&¨Õ-ð	A)ñ
  �ðA)ñ  ðA)ñ ðA)ñ #¡5§<¡<±·±Ð#=Õ>ÀÕEðA)ñ Ñ-Õ.ðA)ñ 
‰u�|‰|™UŸ\™\¨DÕ0±%¹¿¹Õ2EÈÕ2LÐLÕ	MñA)r+   c                ó  € VP                  4       w  ršpV P                  V4      pV P                  V4      w  rÞpV P                  '       d#   V P	                  V4      pV P                  V4      pVP                  ^^4      pVP                  ^^4      pVP                  ^^4      pVw  ppVRRV P                  13,          VRV P                  R13,          ppVRRV P                  13,          VRV P                  R13,          pp\        VVVV4      w  pp\        P                  ! VV3RR7      p\        P                  ! VV3RR7      pVe   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  ppVP+                  WšR4      pV P-                  V4      pVV3# )rË   .Nr]   rž   ç        r�   r_   )Úsizer¼   rÐ   r¾   rÁ   rÂ   re   r¹   r‡   rC   rf   Úupdater®   r   Úget_interfacer%   Ú_attn_implementationrª   r¢   rÄ   r�   Úreshaper½   )r<   r”   rœ   rj   rÓ   rÔ   rÕ   rÖ   rS   ÚbszÚq_lenÚ_rÈ   Úquery_statesÚ
key_statesÚvalue_statesrg   rh   Ú	query_rotÚ
query_passÚkey_rotÚkey_passÚattention_interfacer©   r¨   s   &&&&&&&&,                r(   ro   ÚPersimmonAttention.forwardó   s#  € ð &×*Ñ*Ó,‰ˆ�Að ×(Ñ(¨Ó7ˆ	ð 48×3DÑ3DÀYÓ3OÑ0ˆ <à××ÐØ×+Ñ+¨LÓ9ˆLØ×)Ñ)¨*Ó5ˆJð $×-Ñ-¨a°Ó3ˆØ#×-Ñ-¨a°Ó3ˆØ×)Ñ)¨!¨QÓ/ˆ
à&‰ˆˆSà˜Ð1 × 1Ñ 1Ð1Ð1Õ2Ø˜˜d×/Ñ/Ñ1Ð1Õ2ð ˆ	ð
 �sÐ/˜d×/Ñ/Ð/Ð/Õ0Ø�s˜D×-Ñ-Ñ/Ð/Õ0ð ˆô
 2°)¸WÀcÈ3ÓOÑˆ	�7ô —y’y )¨ZÐ!8¸bÔAˆÜ—Y’Y ¨Ð2¸Ô;ˆ
àÒ&Ø'6×'=Ñ'=¸jÐX\×XfÑXfÓ'gÑ$ˆJä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ	%
ð  $Ÿ}Ÿ}˜}‘C°$·+±+×2OÑ2Oð	%
ð —L‘Lð	%
ð ñ	%
Ñ!ˆ�\ð "×)Ñ)¨#°bÓ9ˆØ—j‘j Ó-ˆà˜LÐ(Ð(r+   )rÄ   r%   r½   rI   rN   rº   rÂ   r®   r¸   rÁ   r¾   r¼   r¹   r�   rq   )NNNFFN)rr   rs   rt   ru   Ú__doc__r1   rÐ   ro   rx   ry   rz   r{   s   @@r(   r¬   r¬   »   s3   ù‡ € ÙG÷#Fõ #F÷JPð P÷ A)÷ A)ò A)r+   r¬   c                   óT   a a€ ] tR tRt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚPersimmonDecoderLayeri7  c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r$   r%   r®   r¯   )r&   r'   s   "€r(   r)   Ú"PersimmonDecoderLayer.__annotate__8  s   ø€ ÷ 9ñ 9™ð 9¹3ñ 9r+   c                ó–  <€ \         SV `  4        VP                  V n        \        WR 7      V n        \        V4      V n        \        P                  ! VP                  VP                  R7      V n
        \        P                  ! VP                  VP                  R7      V n        \        P                  ! VP                  4      V n        R# ))r%   r®   ©r´   N)r0   r1   rN   r¬   Ú	self_attnr‰   Úmlpr   r¿   rÀ   Úinput_layernormÚpost_attention_layernormrÃ   Úhidden_dropoutrž   rÅ   s   &&&€r(   r1   ÚPersimmonDecoderLayer.__init__8  sˆ   ø€ Ü‰ÑÔØ!×-Ñ-ˆÔÜ+°6ÔOˆŒÜ Ó'ˆŒÜ!Ÿ|š|¨F×,>Ñ,>ÀF×DYÑDYÔZˆÔÜ(*¯ª°V×5GÑ5GÈV×MbÑMbÔ(cˆÔ%Ü—z’z &×"7Ñ"7Ó8ˆŽr+   c                ó.  <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          RS[S[ P                  S[ P                  3,          R,          RS[S[,          R	S[ P                  /# )
r$   r”   rœ   Nrj   rÓ   rÕ   rÖ   rS   rA   r×   )r&   r'   s   "€r(   r)   rñ   A  sœ   ø€ ÷ "ñ "á—|‘|ð"ñ Ÿ™ tÕ+ð"ñ ×&Ñ&¨Õ-ð	"ñ
  �ð"ñ ˜$•;ð"ñ #¡5§<¡<±·±Ð#=Õ>ÀÕEð"ñ Ñ-Õ.ð"ñ 
�‰ñ"r+   c                óö   € TpV P                  V4      pV P                  ! RR VRVRVRVRVRV/VB w  rW�,           pTpV P                  V4      pV P                  V4      pV P	                  V4      pW,           pV# )r”   rœ   rj   rÓ   rÕ   rÖ   © )rö   rô   r÷   rõ   rž   )
r<   r”   rœ   rj   rÓ   rÕ   rÖ   rS   Úresidualrã   s
   &&&&&&&,  r(   ro   ÚPersimmonDecoderLayer.forwardA  s¹   € ð !ˆà×,Ñ,¨]Ó;ˆð  Ÿ>š>ñ 
Ø'ð
à)ð
ð &ð
ð ,ð	
ð
  ð
ð !4ð
ð ñ
Ñˆð !Õ0ˆð !ˆØ×5Ñ5°mÓDˆØŸ™ Ó/ˆàŸ™ ]Ó3ˆØ%Õ0ˆàÐr+   )rž   rN   rö   rõ   r÷   rô   )NNNFNr–   r{   s   @@r(   rï   rï   7  s   ù‡ € ÷9ó 9÷"÷ "ò "r+   rï   c                   ó\   a € ] tR tRt o RtRtR.tR.tRtRt	Rt
RtR]R]/tV 3R ltR	tV tR
# )ÚPersimmonPreTrainedModelif  ÚmodelTrï   rÓ   r”   Ú
attentionsc                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r#   r   )r&   r'   s   "€r(   r)   Ú%PersimmonPreTrainedModel.__annotate__f  s   ø‡ ‚ áÑò r+   rü   N)rr   rs   rt   ru   Úbase_model_prefixÚsupports_gradient_checkpointingÚ_no_split_modulesÚ_skip_keys_device_placementÚ_can_compile_fullgraphÚ_supports_sdpaÚ_supports_flash_attnÚ_supports_attention_backendrï   r¬   Ú_can_record_outputsÚ__annotate_func__rx   ry   )r'   s   @r(   r   r   f  sW   ø‡ € ð  ÐØ&*Ð#Ø0Ð1ÐØ#4Ð"5ÐØ!ÐØ€NØÐØ"&ÐàÐ.ØÐ(ðÐ÷ ƒ r+   r   c                   óv   a a€ ] tR tRt o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# )	ÚPersimmonModeliw  z“
Transformer decoder consisting of *config.num_hidden_layers* layers. Each layer is a [`PersimmonDecoderLayer`]

Args:
    config: PersimmonConfig
c                ó    <€ V ^8„  d   QhRS[ /# r#   r   )r&   r'   s   "€r(   r)   ÚPersimmonModel.__annotate__€  s   ø€ ÷ ñ ™ñ r+   c           	     ó>  <€ \         SV `  V4       VP                  V n        VP                  V n        \
        P                  ! VP                  VP                  V P                  4      V n        \
        P                  ! \        VP                  4       Uu. uF  p\        W4      NK  	  up4      V n        \
        P                  ! VP                  VP                  R 7      V n        \#        V P$                  R7      V n        RV n        V P+                  4        R# u upi )ró   ©r%   FN)r0   r1   Úpad_token_idÚpadding_idxÚ
vocab_sizer   Ú	EmbeddingrN   Úembed_tokensÚ
ModuleListÚrangeÚnum_hidden_layersrï   Úlayersr¿   rÀ   Úfinal_layernormr   r%   Ú
rotary_embÚgradient_checkpointingÚ	post_initrÅ   s   && €r(   r1   ÚPersimmonModel.__init__€  sÑ   ø€ Ü‰Ñ˜Ô Ø!×.Ñ.ˆÔØ ×+Ñ+ˆŒäŸLšL¨×):Ñ):¸F×<NÑ<NÐPT×P`ÑP`ÓaˆÔÜ—m’mÜGLÈV×MeÑMeÔGfÓgÑGf¸)Ô" 6Ö5ÑGfÑgó
ˆŒô  "Ÿ|š|¨F×,>Ñ,>ÀF×DYÑDYÔZˆÔÜ2¸$¿+¹+ÔFˆŒØ&+ˆÔ#à�‰Öùò hs   ÂDc                óþ   <€ V ^8„  d   Qh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$   Ú	input_idsNrœ   rj   rÓ   Úinputs_embedsrÕ   rS   rA   )	rC   rØ   rD   r   ÚFloatTensorrÙ   r   r   r   )r&   r'   s   "€r(   r)   r  ’  s“   ø€ ÷ 3
ñ 3
á×#Ñ# dÕ*ð3
ñ Ÿ™ tÕ+ð3
ñ ×&Ñ&¨Õ-ð	3
ñ
  �ð3
ñ ×(Ñ(¨4Õ/ð3
ñ ˜$•;ð3
ñ Ñ+Õ,ð3
ñ 
!ñ3
r+   c                óZ  € VR J VR J,          '       d   \        R4      hV'       d   Vf   \        V P                  R7      pVf   V P                  V4      pVfb   Ve   VP	                  4       M^ p\
        P                  ! VP                  ^,          VP                  R7      V,           pVP                  ^ 4      p\        V P                  VVVVR7      p	Tp
V P                  W£R7      pV P                   F  pV! V
3RV	RVRVR	VR
V/VB p
K  	  V P                  V
4      p
\        V
VR7      # )Nz:You must specify exactly one of input_ids or inputs_embedsr  )r    )r%   r%  rœ   rÓ   rj   )rj   rœ   rj   rÓ   rÕ   rÖ   )Úlast_hidden_staterÓ   )r»   r   r%   r  Úget_seq_lengthrC   rQ   ra   r    r�   r   r  r  r  r   )r<   r$  rœ   rj   rÓ   r%  rÕ   rS   Úpast_seen_tokensÚcausal_maskr”   rÖ   Údecoder_layers   &&&&&&&,     r(   ro   ÚPersimmonModel.forward�  sT  € ð ˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZç˜Ò0Ü*°$·+±+Ô>ˆOàÒ Ø ×-Ñ-¨iÓ8ˆMàÒØCRÒC^˜×=Ñ=Ô?ÐdeÐÜ Ÿ<š<¨×(;Ñ(;¸AÕ(>À}×G[ÑG[Ô\Ð_oÕoˆLØ'×1Ñ1°!Ó4ˆLä(Ø—;‘;Ø'Ø)Ø+Ø%ô
ˆð &ˆØ"Ÿo™o¨m˜oÓWÐà!Ÿ[œ[ˆMÙ)Øñà*ðð *ðð !0ð	ð
 $ðð %8ðð ñŠMñ )ð ×,Ñ,¨]Ó;ˆä&Ø+Ø+ô
ð 	
r+   )r  r  r   r  r  r  r  )NNNNNN)rr   rs   rt   ru   rí   r1   r   r   r   ro   rx   ry   rz   r{   s   @@r(   r  r  w  sB   ù‡ € ñ÷ó ð  ØØ÷3
ñ 3
ó ó ó  ÷3
ð 3
r+   r  c                   ód   a a€ ] tR tRt o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# )	ÚPersimmonForCausalLMiÈ  zlm_head.weightzmodel.embed_tokens.weightc                óì   <€ \         SV `  V4       \        V4      V n        VP                  V n        \
        P                  ! VP                  VP                  R R7      V n        V P                  4        R# )Fr²   N)
r0   r1   r  r  r  r   r‹   rN   Úlm_headr!  r‘   s   &&€r(   r1   ÚPersimmonForCausalLM.__init__Ì  sU   ø€ Ü‰Ñ˜Ô Ü# FÓ+ˆŒ
Ø ×+Ñ+ˆŒÜ—y’y ×!3Ñ!3°V×5FÑ5FÈUÔSˆŒð 	�‰Ör+   c                óP  <€ V ^8„  d   Qh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[	/
# )r$   r$  Nrœ   rj   rÓ   r%  ÚlabelsrÕ   Úlogits_to_keeprS   rA   )
rC   rØ   rD   r   r&  rÙ   rP   r   r   r   )r&   r'   s   "€r(   r)   Ú!PersimmonForCausalLM.__annotate__×  s»   ø€ ÷ :
ñ :
á×#Ñ# dÕ*ð:
ñ Ÿ™ tÕ+ð:
ñ ×&Ñ&¨Õ-ð	:
ñ
  �ð:
ñ ×(Ñ(¨4Õ/ð:
ñ × Ñ  4Õ'ð:
ñ ˜$•;ð:
ñ ™eŸl™lÕ*ð:
ñ Ñ+Õ,ð:
ñ 
 ñ:
r+   c	                ó�  € V P                   ! RRVRVRVRVRVRV/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                  ! WÖ3R	V P                  P                  /V	B p\        VVV
P                  V
P                  V
P                  R
7      # )uë  
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, PersimmonForCausalLM

>>> model = PersimmonForCausalLM.from_pretrained("adept/persimmon-8b-base")
>>> tokenizer = AutoTokenizer.from_pretrained("adept/persimmon-8b-base")

>>> prompt = "human: Hey, what should I eat for dinner?"
>>> inputs = tokenizer(prompt, return_tensors="pt")

>>> # Generate
>>> generate_ids = model.generate(inputs.input_ids, max_length=30)
>>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
'human: Hey, what should I eat for dinner?\n\ncat: ðŸ�±\n\nhuman: ðŸ˜�\n\n'
```r$  rœ   rj   rÓ   r%  rÕ   Nr^   r  )ÚlossÚlogitsrÓ   r”   r  rü   )r  r(  rb   rP   Úslicer1  Úloss_functionr%   r  r   rÓ   r”   r  )r<   r$  rœ   rj   rÓ   r%  r4  rÕ   r5  rS   Úoutputsr”   Úslice_indicesr9  r8  s   &&&&&&&&&,     r(   ro   ÚPersimmonForCausalLM.forwardÕ  sø   € ðH ,0¯:ª:ñ ,
Øð,
à)ð,
ð &ð,
ð ,ð	,
ð
 (ð,
ð  ð,
ð ñ,
ˆð  ×1Ñ1ˆÜ8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ—‘˜m¨A¨}¸aÐ,?Õ@ÓAˆàˆØÒØ×%Ò% fÑbÀÇÁ×AWÑAWÐbÐ[aÑbˆDä%ØØØ#×3Ñ3Ø!×/Ñ/Ø×)Ñ)ô
ð 	
r+   )r1  r  r  )NNNNNNNrÊ   )rr   rs   rt   ru   Ú_tied_weights_keysr1   r   r   ro   rx   ry   rz   r{   s   @@r(   r/  r/  È  s<   ù‡ € Ø*Ð,GÐHÐõð Ø÷:
ñ :
ó ó ÷:
ð :
r+   r/  c                   ó   € ] tR tRtRtR# )Ú"PersimmonForSequenceClassificationi  rü   N©rr   rs   rt   ru   rx   rü   r+   r(   rA  rA    s   † Ófir+   rA  c                   ó   € ] tR tRtRtR# )ÚPersimmonForTokenClassificationi  rü   NrB  rü   r+   r(   rD  rD    s   † Ó`cr+   rD  )rË   )rÛ   )r/  r  r   rA  rD  )>rí   Úcollections.abcr   rC   r   Úactivationsr   Úcache_utilsr   r   Ú
generationr   Úmasking_utilsr   Úmodeling_flash_attention_utilsr	   Úmodeling_layersr
   r   r   Úmodeling_outputsr   r   Úmodeling_rope_utilsr   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   r   Úutils.deprecationr   Úutils.genericr   r   Úutils.output_capturingr   Úconfiguration_persimmonr   Ú
get_loggerrr   r¶   rŸ   r   r   r‡   r‰   rª   r¬   rï   r   r  r/  rA  rD  Ú__all__rü   r+   r(   Ú<module>rW     s&  ðñ& å $ã Ý å !ß .Ý )Ý /Ý B÷ñ ÷
÷÷ GÝ &ß RÓ RÝ 0ß GÝ 5Ý 4ð 
×	Ò	˜HÓ	%€ô8<˜rŸy™yô 8<òx(ôô4�2—9‘9ô ÷%ô,y)˜Ÿ™ô y)ôx,Ð6ô ,ð^ ô˜ó ó ðð  ôM
Ð-ó M
ó ðM
ô`I
Ð3°_ô I
ôX jÐ)IÐKcÔ iô dÐ&CÐE]Ô cò‚r+   