+
    ÒÜ³jO  ã                   ó¤   € ^ RI t ^ RIt^ RIt^ RIHtHt ^RIHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHtHt ^ RIHt  ! R	 R
]4      t ! R R4      tR# )é    N)ÚListÚTuple)ÚBaseAWQForCausalLM)Úfuse_qkv)ÚGemma2LikeBlock)ÚGemma2LikeModel)ÚGemma2DecoderLayerÚGemma2ForCausalLM)ÚFasterTransformerRMSNormc                   ó´   a € ] tR t^t o RtRt]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t	]V 3R	 lR
 l4       t
]V 3R lR l4       tRtV tR# )ÚGemma2AWQForCausalLMr	   Úmax_position_embeddingsc                ó    <€ V ^8„  d   QhRS[ /# ©é   Úmodel©ÚOldGemmaDecoderLayer)ÚformatÚ__classdict__s   "€ÚR/home/luca/screen-checking/.venv/lib/python3.14/site-packages/awq/models/gemma2.pyÚ__annotate__Ú!Gemma2AWQForCausalLM.__annotate__   s   ø€ ÷ !ñ !Ñ/ñ !ó    c                ó<   € \        V 4      pVP                  4        R # ©N)Ú
GemmaFuserÚfuse_transformer)r   Úfusers   & r   Úfuse_layersÚ Gemma2AWQForCausalLM.fuse_layers   s   € ä˜5Ó!ˆØ×ÑÖ r   c                ó    <€ V ^8„  d   QhRS[ /# r   ©ÚOldGemmaForCausalLM)r   r   s   "€r   r   r      s   ø€ ÷ "ñ "Ñ 3ñ "r   c                ó.   € V P                   P                  # r   )r   Úlayers)r   s   &r   Úget_model_layersÚ%Gemma2AWQForCausalLM.get_model_layers   s   € à�{‰{×!Ñ!Ð!r   c                ó    <€ V ^8„  d   QhRS[ /# ©r   Úmoduler   )r   r   s   "€r   r   r      s   ø€ ÷ 'ñ 'Ñ$8ñ 'r   c                ó   € \        R R7      # )F)Úis_scalable)Údict)r+   s   &r   Úget_act_for_scalingÚ(Gemma2AWQForCausalLM.get_act_for_scaling   s   € ä Ô&Ð&r   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   r   Údevice)r$   Ústr)r   r   s   "€r   r   r   "   s    ø€ ÷ Gñ GÑ-ð G±sñ Gr   c                ón   € V P                   P                  P                  V4      V P                   n        R # r   )r   Úembed_tokensÚto)r   r2   s   &&r   Ú
move_embedÚGemma2AWQForCausalLM.move_embed!   s#   € à#(§;¡;×#;Ñ#;×#>Ñ#>¸vÓ#Fˆ�‰Ö r   c                ó    <€ V ^8„  d   QhRS[ /# r*   r   )r   r   s   "€r   r   r   &   s   ø€ ÷ .ñ .Ñ';ñ .r   c           
     ó¤  € . pVP                  \        V P                  V P                  P                  V P                  P
                  V P                  P                  .VR ,          V P                  VR7      4       V P                  P                  P                  P                  V P                  P                  P                  P                  8X  dN   VP                  \        V P                  P                  V P                  P                  .VR,          R7      4       VP                  \        V P                  V P                  P                  V P                  P                  .VR,          V P                  R7      4       VP                  \        V P                  P                  V P                  P                  .VR,          R7      4       V# )zself_attn.q_proj)Úprev_opr&   ÚinpÚmodule2inspectÚkwargszself_attn.o_proj)r;   r&   r<   zmlp.gate_proj)r;   r&   r<   r=   zmlp.down_proj)Úappendr.   Úinput_layernormÚ	self_attnÚq_projÚk_projÚv_projÚweightÚshapeÚo_projÚpre_feedforward_layernormÚmlpÚ	gate_projÚup_projÚ	down_proj)r+   Ú
input_featÚmodule_kwargsr&   s   &&& r   Úget_layers_for_scalingÚ+Gemma2AWQForCausalLM.get_layers_for_scaling%   ss  € àˆð 	�‰ÜØ×.Ñ.à×$Ñ$×+Ñ+Ø×$Ñ$×+Ñ+Ø×$Ñ$×+Ñ+ðð
 Ð1Õ2Ø%×/Ñ/Ø$ô
ô	
ð  ×Ñ×"Ñ"×)Ñ)×/Ñ/°6×3CÑ3C×3JÑ3J×3QÑ3Q×3WÑ3WÔWØ�M‰MÜØ"×,Ñ,×3Ñ3Ø"×,Ñ,×3Ñ3Ð4Ø"Ð#5Õ6ôôð 	�‰ÜØ×8Ñ8ØŸ
™
×,Ñ,¨f¯j©j×.@Ñ.@ÐAØ˜Õ/Ø%Ÿz™zô	ô	
ð 	�‰ÜØŸ
™
×*Ñ*ØŸ
™
×,Ñ,Ð-Ø˜Õ/ôô	
ð ˆr   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú
layer_typeÚmax_new_tokens_keyÚstaticmethodr    r'   r/   r7   rO   Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r      st   ø‡ € Ø%€JØ2Ðà÷!ó ð!ð ÷"ó ð"ð ÷'ó ð'ð ÷Gó ðGð ÷.ó ö.r   r   c                   ó8   a € ] tR t^Vt o V 3R lR ltR tRtV tR# )r   c                ó    <€ V ^8„  d   QhRS[ /# r   r#   )r   r   s   "€r   r   ÚGemmaFuser.__annotate__W   s   ø€ ÷ 
ñ 
Ñ1ñ 
r   c                óø   € Wn         V P                   P                  4        UUu. uFA  w  r#R P                  4       VP                  P                  P                  4       9   g   K>  W#3NKC  	  uppV n        R# u uppi )r	   N)r   Únamed_modulesÚlowerÚ	__class__rR   ÚGemma_blocks)Úselfr   Únamer+   s   &&  r   Ú__init__ÚGemmaFuser.__init__W   sj   € ØŒ
ð !%§
¡
× 8Ñ 8Ô :ôE
á :‘�Ø#×)Ñ)Ó+¨v×/?Ñ/?×/HÑ/H×/NÑ/NÓ/PÑPô ˆT‹NÙ :òE
ˆÖùó E
s   ¤;A6Á$A6c                ó˜  € . p\         P                   ! V P                  P                  P                  R R7       EF#  p\        \	        VP                  4       P                  4       4      4      P                  p\        VVP                  P                  VP                  P                  VP                  P                  4      p\        P                  ! 4       ;_uu_ 4        VP                  ;P                   ^,          un        VP"                  ;P                   ^,          un        VP$                  ;P                   ^,          un        VP&                  ;P                   ^,          un        RRR4       \)        VP                  P                   VP                  P*                  4      p\)        VP"                  P                   VP"                  P*                  4      p\)        VP$                  P                   VP$                  P*                  4      p\)        VP&                  P                   VP&                  P*                  4      pVP-                  \/        V P                  P0                  P2                  V P                  P0                  P4                  V P                  P0                  P6                  VVP                  P8                  VP:                  VVVVVV P                  P0                  P<                  V P                  P0                  P>                  V P                  P0                  P@                  V P                  P0                  PB                  R7      4       EK&  	  \E        V P                  P0                  PF                  VV P                  P                  PH                  V P                  P                  PJ                  V P                  P0                  P2                  4      V P                  n        \M        V P                  P                  RV P                  P                  PN                  4       R#   + '       g   i     ELÖ; i)zFusing layers...)ÚdescN)Úhidden_sizeÚn_headsÚ
n_kv_headsÚ	qkv_layerrG   rI   Únorm_1Únorm_2Únorm_3Únorm_4ÚdevÚmax_seq_lenÚ
rope_thetaÚhead_dimÚattn_logit_softcappingÚblocks)(Útqdmr   r&   ÚnextÚiterÚ
state_dictÚvaluesr2   r   rA   rB   rC   rD   ÚtorchÚno_gradr@   rE   Úpost_attention_layernormrH   Úpost_feedforward_layernormr   Úepsr?   r   Úconfigrj   Únum_attention_headsÚnum_key_value_headsrG   rI   rs   rt   ru   rv   r   Ú
vocab_sizer5   ÚnormÚsetattrrw   )	rd   rw   r+   r2   Úqkvrn   ro   rp   rq   s	   &        r   r   ÚGemmaFuser.fuse_transformer`   s  € Øˆô —i’i §
¡
× 0Ñ 0× 7Ñ 7Ð>P×QÐQˆFÜœ$˜v×0Ñ0Ó2×9Ñ9Ó;Ó<Ó=×DÑDˆFÜØØ× Ñ ×'Ñ'Ø× Ñ ×'Ñ'Ø× Ñ ×'Ñ'ó	ˆCô —’—•ð ×&Ñ&×-Ò-°Õ2Õ-Ø×/Ñ/×6Ò6¸!Õ;Õ6Ø×0Ñ0×7Ò7¸1Õ<Õ7Ø×1Ñ1×8Ò8¸AÕ=Õ8÷ !ô .Ø×&Ñ&×-Ñ-¨v×/EÑ/E×/IÑ/IóˆFô .Ø×/Ñ/×6Ñ6Ø×/Ñ/×3Ñ3óˆFô .Ø×0Ñ0×7Ñ7Ø×0Ñ0×4Ñ4óˆFô .Ø×1Ñ1×8Ñ8Ø×1Ñ1×5Ñ5óˆFð �M‰MÜØ $§
¡
× 1Ñ 1× =Ñ =Ø ŸJ™J×-Ñ-×AÑAØ#Ÿz™z×0Ñ0×DÑDØ!Ø!×+Ñ+×2Ñ2ØŸ
™
Ø!Ø!Ø!Ø!ØØ $§
¡
× 1Ñ 1× =Ñ =Ø#Ÿz™z×0Ñ0×;Ñ;Ø!ŸZ™Z×.Ñ.×7Ñ7Ø+/¯:©:×+<Ñ+<×+SÑ+Sô÷ñ? Rôf +Ø�J‰J×Ñ×(Ñ(ØØ�J‰J×Ñ×)Ñ)Ø�J‰J×Ñ×!Ñ!Ø�J‰J×Ñ×)Ñ)ó
ˆ�
‰
Ôô 	�—
‘
× Ñ  (¨D¯J©J×,<Ñ,<×,CÑ,CÖD÷g !—�ús   ÃBP8Ð8Q	)rc   r   N)rR   rS   rT   rU   rf   r   rY   rZ   r[   s   @r   r   r   V   s   ø‡ € ÷
ð 
÷?Eð ?Er   r   )Úcopyrx   r}   Útypingr   r   Úbaser   Úawq.utils.fused_utilsr   Úawq.modules.fused.blockr   Úawq.modules.fused.modelr   Ú*transformers.models.gemma2.modeling_gemma2r	   r   r
   r$   Úawq.modules.fused.normr   r   r   rQ   r   r   Ú<module>r’      sE   ðÛ Û Û ß Ý $Ý *Ý 3Ý 3÷õ <ôDÐ-ô D÷LIEó IEr   