+
    œ°³j�"  ã                   óD  € ^ RI t ^ RI Ht ^RI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 ^RIHt ^R	IHt ^R
IHtHtHtHtHt ^RIHt ]P:                  ! ]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# )é    N)Únn)ÚCacheÚDynamicCache)Úcreate_causal_mask)ÚBaseModelOutputWithPastÚCausalLMOutputWithPast)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚlogging)Úmerge_with_config_defaults)Úcapture_outputs)ÚLlamaAttentionÚLlamaDecoderLayerÚLlamaForCausalLMÚ
LlamaModelÚLlamaPreTrainedModel©ÚGraniteConfigc                   óF   a a€ ] tR t^'t oRtRV3R lV 3R llltRtVtV ;t# )ÚGraniteAttentionz=Multi-headed attention from 'Attention Is All You Need' paperc                ó4   <€ V ^8„  d   QhRS[ RS[R,          /# )é   ÚconfigÚ	layer_idxN©r   Úint)ÚformatÚ__classdict__s   "€Úl/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/granite/modular_granite.pyÚ__annotate__ÚGraniteAttention.__annotate__*   s   ø€ ÷ 3ñ 3™}ð 3¹¸t½ñ 3ó    c                óH   <€ \         SV `  W4       VP                  V n        R # ©N)ÚsuperÚ__init__Úattention_multiplierÚscaling©Úselfr   r   Ú	__class__s   &&&€r!   r(   ÚGraniteAttention.__init__*   s   ø€ Ü‰Ñ˜Ô+Ø×2Ñ2ˆŽr$   )r*   r&   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r(   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r-   r    s   @@r!   r   r   '   s   ù‡ € ÙG÷3÷ 3õ 3r$   r   c                   óT   a a€ ] tR t^/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# )ÚGraniteDecoderLayerc                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   r   r   r   )r   r    s   "€r!   r"   Ú GraniteDecoderLayer.__annotate__0   s   ø€ ÷ Nñ N™}ð N¹ñ Nr$   c                ój   <€ \         SV `  W4       VP                  V n        \        WR 7      V n        R# ))r   r   N)r'   r(   Úresidual_multiplierr   Ú	self_attnr+   s   &&&€r!   r(   ÚGraniteDecoderLayer.__init__0   s*   ø€ Ü‰Ñ˜Ô+Ø#)×#=Ñ#=ˆÔ Ü)°ÔMˆŽ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   Úhidden_statesÚattention_maskNÚposition_idsÚpast_key_valuesÚ	use_cacheÚposition_embeddingsÚkwargsÚreturn)ÚtorchÚTensorÚ
LongTensorr   ÚboolÚtupler	   r
   )r   r    s   "€r!   r"   r;   5   sœ   ø€ ÷ 2ñ 2á—|‘|ð2ñ Ÿ™ tÕ+ð2ñ ×&Ñ&¨Õ-ð	2ñ
  �ð2ñ ˜$•;ð2ñ #¡5§<¡<±·±Ð#=Õ>ÀÕEð2ñ Ñ+Õ,ð2ñ 
�‰ñ2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�V P                  ,          ,           pTpV P                  V4      pV P	                  V4      pW�V P                  ,          ,           pV# )aÎ  
Args:
    hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)`
    attention_mask (`torch.FloatTensor`, *optional*):
        attention mask of size `(batch_size, sequence_length)` if flash attention is used or `(batch_size, 1,
        query_sequence_length, key_sequence_length)` if default attention is used.
    output_attentions (`bool`, *optional*):
        Whether or not to return the attentions tensors of all attention layers. See `attentions` under
        returned tensors for more detail.
    use_cache (`bool`, *optional*):
        If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding
        (see `past_key_values`).
    past_key_values (`Cache`, *optional*): cached past key and value projection states
    position_embeddings (`tuple[torch.FloatTensor, torch.FloatTensor]`, *optional*):
        Tuple containing the cosine and sine positional embeddings of shape `(batch_size, seq_len, head_dim)`,
        with `head_dim` being the embedding dimension of each attention head.
    kwargs (`dict`, *optional*):
        Arbitrary kwargs to be ignored, used for FSDP and other methods that injects code
        into the model
rA   rB   rC   rD   rE   rF   © )Úinput_layernormr>   r=   Úpost_attention_layernormÚmlp)
r,   rA   rB   rC   rD   rE   rF   rG   ÚresidualÚ_s
   &&&&&&&,  r!   ÚforwardÚGraniteDecoderLayer.forward5   s½   € ð< !ˆà×,Ñ,¨]Ó;ˆàŸ>š>ñ 
Ø'ð
à)ð
ð &ð
ð ,ð	
ð
  ð
ð !4ð
ð ñ
Ñˆð !°4×3KÑ3KÕ#KÕKˆà ˆØ×5Ñ5°mÓDˆØŸ™ Ó/ˆØ °4×3KÑ3KÕ#KÕKˆàÐr$   )r=   r>   )NNNFN)	r/   r0   r1   r2   r(   rU   r4   r5   r6   r7   s   @@r!   r9   r9   /   s    ù‡ € ÷Nó N÷
2÷ 2ò 2r$   r9   c                   ó"   € ] tR t^jtR]R]/tRtR# )ÚGranitePreTrainedModelrA   Ú
attentionsrO   N)r/   r0   r1   r2   r9   r   Ú_can_record_outputsr4   rO   r$   r!   rX   rX   j   s   † àÐ,ØÐ&ðÔr$   rX   c                   ór   a a€ ] tR t^qt o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# )ÚGraniteModelc                ó    <€ V ^8„  d   QhRS[ /# )r   r   r   )r   r    s   "€r!   r"   ÚGraniteModel.__annotate__r   s   ø€ ÷ 
ñ 
™}ñ 
r$   c           	     óà   <€ \         SV `  V4       VP                  V n        \        P                  ! \        VP                  4       Uu. uF  p\        W4      NK  	  up4      V n        R # u upi r&   )	r'   r(   Úembedding_multiplierr   Ú
ModuleListÚrangeÚnum_hidden_layersr9   Úlayersr+   s   && €r!   r(   ÚGraniteModel.__init__r   sV   ø€ Ü‰Ñ˜Ô Ø$*×$?Ñ$?ˆÔ!Ü—m’mÜEJÈ6×KcÑKcÔEdÓeÑEd¸	Ô  Ö3ÑEdÑeó
ˆŽùÚes   Á	A+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_idsNrB   rC   rD   Úinputs_embedsrE   rG   rH   )	rI   rK   rJ   r   ÚFloatTensorrL   r	   r
   r   )r   r    s   "€r!   r"   r^   |   s“   ø€ ÷ 5
ñ 5
á×#Ñ# dÕ*ð5
ñ Ÿ™ tÕ+ð5
ñ ×&Ñ&¨Õ-ð	5
ñ
  �ð5
ñ ×(Ñ(¨4Õ/ð5
ñ ˜$•;ð5
ñ Ñ+Õ,ð5
ñ 
!ñ5
r$   c                ó¬  € VR J VR J,          '       d   \        R4      hVf   V P                  V4      pWPP                  ,          pV'       d   Vf   \        V P                  R7      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                  R V P                  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_embeds)r   )Údevice)r   rh   rB   rD   rC   )rC   rB   rC   rD   rE   rF   )Úlast_hidden_staterD   )Ú
ValueErrorÚembed_tokensr`   r   r   Úget_seq_lengthrI   ÚarangeÚshaperk   Ú	unsqueezer   Ú
rotary_embrd   rc   Únormr   )r,   rg   rB   rC   rD   rh   rE   rG   Úpast_seen_tokensÚcausal_maskrA   rF   Údecoder_layers   &&&&&&&,     r!   rU   ÚGraniteModel.forwardy   ss  € ð ˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZàÒ Ø ×-Ñ-¨iÓ8ˆMà%×(AÑ(AÕAˆç˜Ò0Ü*°$·+±+Ô>ˆOàÒØCRÒC^˜×=Ñ=Ô?ÐdeÐÜ Ÿ<š<¨×(;Ñ(;¸AÕ(>À}×G[ÑG[Ô\Ð_oÕoˆLØ'×1Ñ1°!Ó4ˆLä(Ø—;‘;Ø'Ø)Ø+Ø%ô
ˆð &ˆØ"Ÿo™o¨m˜oÓWÐà!Ÿ[™[Ð)H¨4¯;©;×+HÑ+HÓIˆMÙ)Øñà*ðð *ðð !0ð	ð
 $ðð %8ðð ñŠMñ Jð Ÿ	™	 -Ó0ˆä&Ø+Ø+ô
ð 	
r$   )r`   rd   )NNNNNN)r/   r0   r1   r2   r(   r   r   r   rU   r4   r5   r6   r7   s   @@r!   r\   r\   q   s=   ù‡ € ÷
ó 
ð  ØØ÷5
ñ 5
ó ó ó  ÷5
ð 5
r$   r\   c                   óJ   a € ] tR t^´t o ]]RV 3R lR ll4       4       tRtV tR# )ÚGraniteForCausalLMNc                ó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   rg   NrB   rC   rD   rh   ÚlabelsrE   Úlogits_to_keeprG   rH   )
rI   rK   rJ   r   ri   rL   r   r	   r
   r   )r   r    s   "€r!   r"   ÚGraniteForCausalLM.__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WÐP                  P                  ,          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                  R7      # )rg   rB   rC   rD   rh   rE   N:NNNÚlogitsr|   Ú
vocab_size)Úlossr€   rD   rA   rY   rO   )Úmodelrl   Ú
isinstancer   ÚsliceÚlm_headr   Úlogits_scalingÚloss_functionr�   r   rD   rA   rY   )r,   rg   rB   rC   rD   rh   r|   rE   r}   rG   ÚoutputsrA   Úslice_indicesr€   r‚   s   &&&&&&&&&,     r!   rU   ÚGraniteForCausalLM.forwardµ   s  € ð ,0¯:ª:ñ ,
Øð,
à)ð,
ð &ð,
ð ,ð	,
ð
 (ð,
ð  ð,
ð ñ,
ˆð  ×1Ñ1ˆÜ8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ—‘˜m¨A¨}¸aÐ,?Õ@ÓAˆØŸ+™+×4Ñ4Õ4ˆàˆØÒØ×%Ò%Ñp¨VÐp¸FÐpÈtÏ{É{×OeÑOeÐpÐioÑpˆDä%ØØØ#×3Ñ3Ø!×/Ñ/Ø×)Ñ)ô
ð 	
r$   rO   )NNNNNNNr   )	r/   r0   r1   r2   r   r   rU   r4   r5   )r    s   @r!   rz   rz   ´   s$   ø‡ € ØØ÷%
ñ %
ó ó ö%
r$   rz   )rz   r\   rX   )&rI   r   Úcache_utilsr   r   Úmasking_utilsr   Úmodeling_outputsr   r   Úprocessing_utilsr	   Úutilsr
   r   r   r   Úutils.genericr   Úutils.output_capturingr   Úllama.modeling_llamar   r   r   r   r   Úconfiguration_graniter   Ú
get_loggerr/   Úloggerr   r9   rX   r\   rz   Ú__all__rO   r$   r!   Ú<module>r˜      s’   ðó  Ý ç .Ý /ß OÝ &ß RÓ RÝ 7Ý 5÷õ õ 1ð 
×	Ò	˜HÓ	%€ô3�~ô 3ô8Ð+ô 8ôvÐ1ô ô@
�:ô @
ôF(
Ð)ô (
òV K‚r$   