+
    ÒÜ³j”  ã                   ó”   € ^ 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)Ú	Phi3Block)Ú	Phi3Model)ÚPhi3DecoderLayerÚPhi3ForCausalLM)Ú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# )ÚPhi3AWQForCausalLMr	   Úmax_position_embeddingsc                ó    <€ V ^8„  d   QhRS[ /# ©é   Úmodel©ÚOldPhi3ForCausalLM)ÚformatÚ__classdict__s   "€ÚP/home/luca/screen-checking/.venv/lib/python3.14/site-packages/awq/models/phi3.pyÚ__annotate__ÚPhi3AWQForCausalLM.__annotate__   s   ø€ ÷ !ñ !Ñ-ñ !ó    c                ó<   € \        V 4      pVP                  4        R # ©N)Ú	Phi3FuserÚfuse_transformer)r   Úfusers   & r   Úfuse_layersÚPhi3AWQForCausalLM.fuse_layers   s   € ä˜%Ó ˆØ×ÑÖ r   c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   r      s   ø€ ÷ "ñ "Ñ 2ñ "r   c                ó.   € V P                   P                  # r   )r   Úlayers)r   s   &r   Úget_model_layersÚ#Phi3AWQForCausalLM.get_model_layers   s   € à�{‰{×!Ñ!Ð!r   c                ó    <€ V ^8„  d   QhRS[ /# ©r   Úmodule©ÚOldPhi3DecoderLayer)r   r   s   "€r   r   r      s   ø€ ÷ 'ñ 'Ñ$7ñ 'r   c                ó   € \        R R7      # )F)Úis_scalable)Údict)r)   s   &r   Úget_act_for_scalingÚ&Phi3AWQForCausalLM.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±cñ 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ÚPhi3AWQForCausalLM.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           
     óx  € . pVP                  \        V P                  V P                  P                  .VR ,          V P                  VR7      4       VP                  \        V P                  P                  V P                  P
                  .VR,          R7      4       VP                  \        V 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.qkv_proj)Úprev_opr$   ÚinpÚmodule2inspectÚkwargszself_attn.o_proj)r;   r$   r<   zmlp.gate_up_proj)r;   r$   r<   r=   zmlp.down_proj)
Úappendr.   Úinput_layernormÚ	self_attnÚqkv_projÚo_projÚpost_attention_layernormÚmlpÚgate_up_projÚ	down_proj)r)   Ú
input_featÚmodule_kwargsr$   s   &&& r   Úget_layers_for_scalingÚ)Phi3AWQForCausalLM.get_layers_for_scaling#   s  € àˆð 	�‰ÜØ×.Ñ.Ø×(Ñ(×1Ñ1Ð2ØÐ3Õ4Ø%×/Ñ/Ø$ôô	
ð 	�‰ÜØ×(Ñ(×1Ñ1Ø×(Ñ(×/Ñ/Ð0ØÐ1Õ2ôô	
ð 	�‰ÜØ×7Ñ7ØŸ
™
×/Ñ/Ð0ØÐ1Õ2Ø%Ÿz™zô	ô	
ð 	�‰ÜØŸ
™
×/Ñ/ØŸ
™
×,Ñ,Ð-Ø˜Õ/ôô	
ð ˆr   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú
layer_typeÚmax_seq_len_keyÚstaticmethodr    r%   r/   r7   rJ   Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r      ss   ø‡ € Ø#€JØ/€Oà÷!ó ð!ð ÷"ó ð"ð ÷'ó ð'ð ÷Gó ðGð ÷*ó ö*r   r   c                   ó8   a € ] tR t^Qt 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   ÚPhi3Fuser.__annotate__R   s   ø€ ÷ 
ñ 
Ñ0ñ 
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__rM   Úphi3_blocks)Úselfr   Únamer)   s   &&  r   Ú__init__ÚPhi3Fuser.__init__R   sj   € ØŒ
ð !%§
¡
× 8Ñ 8Ô :ôC
á :‘�Ø!×'Ñ'Ó)¨V×-=Ñ-=×-FÑ-F×-LÑ-LÓ-NÑNô ˆT‹NÙ :òC
ˆÖùó C
s   ¤;A6Á$A6c                óT  € . p\         P                   ! V P                  P                  P                  R R7       EF´  p\        \	        VP                  4       P                  4       4      4      P                  pVP                  P                  p\        VP                  P                  VP                  P                  4      p\        VP                  P                  VP                  P                  4      pVP                  \!        V P                  P"                  P$                  V P                  P"                  P&                  V P                  P"                  P(                  VVP                  P*                  VP,                  VVVV P                  P"                  P.                  V P                  P"                  P0                  V P                  P"                  P2                  R7      4       EK·  	  \5        V P                  P"                  P6                  VV P                  P                  P8                  V P                  P                  P:                  4      V P                  n        \=        V P                  P                  RV P                  P                  P>                  4       R# )zFusing layers...)Údesc)Úhidden_sizeÚn_headsÚ
n_kv_headsÚ	qkv_layerrC   rE   Únorm_1Únorm_2ÚdevÚmax_seq_lenÚ
rope_thetaÚrope_scalingÚblocksN) Útqdmr   r$   ÚnextÚiterÚ
state_dictÚvaluesr2   rA   rB   r   r@   ÚweightÚvariance_epsilonrD   r?   r   Úconfigre   Únum_attention_headsÚnum_key_value_headsrC   rE   r   rm   rn   ÚAWQPhi3ModelÚ
vocab_sizer5   ÚnormÚsetattrro   )r_   ro   r)   r2   Úqkvri   rj   s   &      r   r   ÚPhi3Fuser.fuse_transformer[   sÝ  € Øˆô —i’i §
¡
× 0Ñ 0× 7Ñ 7Ð>P×QÐQˆFÜœ$˜v×0Ñ0Ó2×9Ñ9Ó;Ó<Ó=×DÑDˆFØ×"Ñ"×+Ñ+ˆCÜ-Ø×&Ñ&×-Ñ-¨v×/EÑ/E×/VÑ/VóˆFô .Ø×/Ñ/×6Ñ6Ø×/Ñ/×@Ñ@óˆFð �M‰MÜØ $§
¡
× 1Ñ 1× =Ñ =Ø ŸJ™J×-Ñ-×AÑAØ#Ÿz™z×0Ñ0×DÑDØ!Ø!×+Ñ+×2Ñ2ØŸ
™
Ø!Ø!ØØ $§
¡
× 1Ñ 1× IÑ IØ#Ÿz™z×0Ñ0×;Ñ;Ø!%§¡×!2Ñ!2×!?Ñ!?ô÷ñ Rô6 (Ø�J‰J×Ñ×(Ñ(ØØ�J‰J×Ñ×)Ñ)Ø�J‰J×Ñ×!Ñ!ó	
ˆ�
‰
Ôô 	�—
‘
× Ñ  (¨D¯J©J×,<Ñ,<×,CÑ,CÖDr   )r   r^   N)rM   rN   rO   rP   ra   r   rT   rU   rV   s   @r   r   r   Q   s   ø‡ € ÷
ð 
÷%Eð %Er   r   )rp   Útypingr   r   Úbaser   Úawq.utils.fused_utilsr   Úawq.modules.fused.blockr   Úawq.modules.fused.modelr   rz   Ú&transformers.models.phi3.modeling_phi3r	   r+   r
   r   Úawq.modules.fused.normr   r   r   rL   r   r   Ú<module>r‡      s=   ðÛ ß Ý $Ý *Ý -Ý =÷õ <ô@Ð+ô @÷F/Eó /Er   