+
    ÒÜ³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 ^ RIHt ^ R	IHt  ! R
 R]4      t ! R R4      tR# )é    N)ÚListÚTuple)ÚBaseAWQForCausalLM)Úfuse_qkv)ÚLlamaLikeBlock)ÚLlamaLikeModel)ÚLlamaDecoderLayer©Ú!LlavaNextForConditionalGeneration)Ú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# )ÚLlavaNextAWQForCausalLMr	   Úmax_position_embeddingsc                ó    <€ V ^8„  d   QhRS[ /# ©é   Úmodelr
   )ÚformatÚ__classdict__s   "€ÚV/home/luca/screen-checking/.venv/lib/python3.14/site-packages/awq/models/llava_next.pyÚ__annotate__Ú$LlavaNextAWQForCausalLM.__annotate__   s   ø€ ÷ ñ Ñ<ñ ó    c                ó   € R # ©N© ©r   s   &r   Úfuse_layersÚ#LlavaNextAWQForCausalLM.fuse_layers   s   € ár   c                ó    <€ V ^8„  d   QhRS[ /# r   r
   )r   r   s   "€r   r   r      s   ø€ ÷ 1ñ 1Ñ Añ 1r   c                óB   € V P                   P                  P                  # r   )Úlanguage_modelr   Úlayersr   s   &r   Úget_model_layersÚ(LlavaNextAWQForCausalLM.get_model_layers   s   € à×#Ñ#×)Ñ)×0Ñ0Ð0r   c                ó    <€ V ^8„  d   QhRS[ /# ©r   Úmodule©ÚOldLlamaDecoderLayer)r   r   s   "€r   r   r      s   ø€ ÷ 'ñ 'Ñ$8ñ 'r   c                ó   € \        R R7      # )F)Úis_scalable)Údict)r(   s   &r   Úget_act_for_scalingÚ+LlavaNextAWQForCausalLM.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    ø€ ÷ añ aÑ;ð aÁSñ ar   c                ó  € V P                  4       P                  V4      V P                  P                  n        V P                  P                  P
                  P                  V4      V P                  P                  n        R # r   )Úget_input_embeddingsÚtor"   r   Úembed_tokensÚ
rotary_emb)r   r1   s   &&r   Ú
move_embedÚ"LlavaNextAWQForCausalLM.move_embed   sa   € à27×2LÑ2LÓ2N×2QÑ2QØó3
ˆ×Ñ×"Ñ"Ô/ð 16×0DÑ0D×0JÑ0J×0UÑ0U×0XÑ0XÐY_Ó0`ˆ×Ñ×"Ñ"Ö-r   c                ó    <€ V ^8„  d   QhRS[ /# r'   r)   )r   r   s   "€r   r   r   &   s   ø€ ÷ 0ñ 0Ñ';ñ 0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Úpost_attention_layernormÚmlpÚ	gate_projÚup_projÚ	down_proj)r(   Ú
input_featÚmodule_kwargsr#   s   &&& r   Úget_layers_for_scalingÚ.LlavaNextAWQForCausalLM.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ôôð 	�‰ÜØ×7Ñ7ØŸ
™
×,Ñ,¨f¯j©j×.@Ñ.@ÐAØ˜Õ/Ø%Ÿz™zô	ô	
ð 	�‰ÜØŸ
™
×*Ñ*ØŸ
™
×,Ñ,Ð-Ø˜Õ/ôô	
ð ˆr   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú
layer_typeÚmax_seq_len_keyÚstaticmethodr   r$   r.   r8   rP   Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r      ss   ø‡ € Ø$€JØ/€Oà÷ó ðð ÷1ó ð1ð ÷'ó ð'ð ÷aó ðað ÷0ó ö0r   r   c                   ó8   a € ] tR t^Yt o V 3R lR ltR tRtV tR# )ÚLlavaNextFuserc                ó    <€ V ^8„  d   QhRS[ /# r   r
   )r   r   s   "€r   r   ÚLlavaNextFuser.__annotate__Z   s   ø€ ÷ 
ñ 
Ñ?ñ 
r   c                ó  € VP                   V 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"   r   Únamed_modulesÚlowerÚ	__class__rR   Úllama_blocks)Úselfr   Únamer(   s   &&  r   Ú__init__ÚLlavaNextFuser.__init__Z   sr   € Ø×)Ñ)ˆŒ
ð !%§
¡
× 8Ñ 8Ô :ôE
á :‘�Ø"×(Ñ(Ó*¨f×.>Ñ.>×.GÑ.G×.MÑ.MÓ.OÑOô ˆT‹NÙ :òE
ˆÖùó E
s   ¯;BÁ/B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\        VP                  P                  VP                  P                   4      p\        VP"                  P                  VP"                  P                   4      p\%        V P                  P&                  R4      '       d"   V P                  P&                  P(                  pM V P                  P&                  P*                  pVP-                  \/        V P                  P&                  P0                  V P                  P&                  P2                  V P                  P&                  P4                  VVP                  P6                  VP8                  VVVVV P                  P&                  P:                  R7      4       EK  	  \=        V P                  P&                  P>                  VV P                  P                  P@                  V P                  P                  PB                  4      V P                  n        \E        V P                  P                  RV P                  P                  PF                  4       R# )zFusing layers...)ÚdescÚmax_seq_len)Úhidden_sizeÚn_headsÚ
n_kv_headsÚ	qkv_layerrH   rJ   Únorm_1Únorm_2Údevrk   Ú
rope_thetaÚblocksN)$Útqdmr   r#   ÚnextÚiterÚ
state_dictÚvaluesr1   r   rB   rC   rD   rE   r   rA   rF   Úvariance_epsilonrI   ÚhasattrÚconfigrk   r   r@   r   rl   Únum_attention_headsÚnum_key_value_headsrH   rJ   rs   r   Ú
vocab_sizer6   ÚnormÚsetattrrt   )re   rt   r(   r1   Úqkvrp   rq   rk   s   &       r   Úfuse_transformerÚLlavaNextFuser.fuse_transformerc   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ô �t—z‘z×(Ñ(¨-×8Ò8Ø"Ÿj™j×/Ñ/×;Ñ;‘à"Ÿj™j×/Ñ/×GÑG�Ø�M‰MÜØ $§
¡
× 1Ñ 1× =Ñ =Ø ŸJ™J×-Ñ-×AÑAØ#Ÿz™z×0Ñ0×DÑDØ!Ø!×+Ñ+×2Ñ2ØŸ
™
Ø!Ø!ØØ +Ø#Ÿz™z×0Ñ0×;Ñ;ô÷ñ' RôF *Ø�J‰J×Ñ×(Ñ(ØØ�J‰J×Ñ×)Ñ)Ø�J‰J×Ñ×!Ñ!ó	
ˆ�
‰
Ôô 	�—
‘
× Ñ  (¨D¯J©J×,<Ñ,<×,CÑ,CÖDr   )rd   r   N)rR   rS   rT   rU   rg   rƒ   rY   rZ   r[   s   @r   r]   r]   Y   s   ø‡ € ÷
ð 
÷-Eð -Er   r]   )ru   Útypingr   r   Úbaser   Úawq.utils.fused_utilsr   Úawq.modules.fused.blockr   Úawq.modules.fused.modelr   Ú(transformers.models.llama.modeling_llamar	   r*   Ú2transformers.models.llava_next.modeling_llava_nextr   Úawq.modules.fused.normr   r   r]   r   r   r   Ú<module>r�      sA   ðÛ ß Ý $Ý *Ý 2Ý 2õõ aÝ ;ôHÐ0ô H÷V7Eó 7Er   