+
    ÒÜ³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 R	]4      t ! R
 R4      tR# )é    N)ÚListÚTuple)ÚBaseAWQForCausalLM)ÚLlamaLikeBlock)ÚLlamaLikeModel)ÚLlamaDecoderLayer)ÚFasterTransformerRMSNormc                   ó„   a € ] tR t^t o RtRt]R 4       t]R 4       t]R 4       t	]V 3R lR l4       t
]R 4       tR	tV tR
# )ÚBaichuanAWQForCausalLMÚBaichuanLayerÚmodel_max_lengthc                ó<   € \        V 4      pVP                  4        R # ©N)ÚBaichuanFuserÚfuse_transformer)ÚmodelÚfusers   & ÚT/home/luca/screen-checking/.venv/lib/python3.14/site-packages/awq/models/baichuan.pyÚfuse_layersÚ"BaichuanAWQForCausalLM.fuse_layers   s   € ä˜eÓ$ˆØ×ÑÖ ó    c                ó.   € V P                   P                  # r   )r   Úlayers)r   s   &r   Úget_model_layersÚ'BaichuanAWQForCausalLM.get_model_layers   s   € à�{‰{×!Ñ!Ð!r   c                ó   € \        R R7      # )F)Úis_scalable)Údict)Úmodules   &r   Úget_act_for_scalingÚ*BaichuanAWQForCausalLM.get_act_for_scaling   s   € ä Ô&Ð&r   c                ó    <€ V ^8„  d   QhRS[ /# )é   Údevice)Ústr)ÚformatÚ__classdict__s   "€r   Ú__annotate__Ú#BaichuanAWQForCausalLM.__annotate__   s   ø€ ÷ Cñ C¡#ñ Cr   c                óÖ   € V P                   P                  P                  V4      V P                   n        V P                   P                  P                  V4      V P                   n        R # r   )r   Úembed_tokensÚtoÚ
rotary_emb)r   r$   s   &&r   Ú
move_embedÚ!BaichuanAWQForCausalLM.move_embed   sD   € à#(§;¡;×#;Ñ#;×#>Ñ#>¸vÓ#Fˆ�‰Ô Ø!&§¡×!7Ñ!7×!:Ñ!:¸6Ó!Bˆ�‰Ör   c           
     ó¢  € . 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 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.W_pack)Úprev_opr   ÚinpÚmodule2inspectÚkwargszself_attn.o_proj)r1   r   r2   zmlp.gate_proj)r1   r   r2   r3   zmlp.down_proj)Úappendr   Úinput_layernormÚ	self_attnÚW_packÚo_projÚpost_attention_layernormÚmlpÚ	gate_projÚup_projÚ	down_proj)r   Ú
input_featÚmodule_kwargsr   s   &&& r   Úget_layers_for_scalingÚ-BaichuanAWQForCausalLM.get_layers_for_scaling"   s  € ð ˆð 	�‰ÜØ×.Ñ.Ø×(Ñ(×/Ñ/Ð0ØÐ1Õ2Ø%×/Ñ/Ø$ôô	
ð* 	�‰ÜØ×(Ñ(×/Ñ/Ø×(Ñ(×/Ñ/Ð0ØÐ1Õ2ôô	
ð 	�‰ÜØ×7Ñ7ØŸ
™
×,Ñ,¨f¯j©j×.@Ñ.@ÐAØ˜Õ/Ø%Ÿz™zô	ô	
ð 	�‰ÜØŸ
™
×*Ñ*ØŸ
™
×,Ñ,Ð-Ø˜Õ/ôô	
ð ˆr   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú
layer_typeÚmax_seq_len_keyÚstaticmethodr   r   r    r.   rA   Ú__static_attributes__Ú__classdictcell__©r'   s   @r   r   r      ss   ø‡ € Ø €JØ(€Oàñ!ó ð!ð ñ"ó ð"ð ñ'ó ð'ð ÷Có ðCð ñ4ó ö4r   r   c                   ó,   a € ] tR t^[t o R tR tRtV tR# )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__rD   Úllama_blocks)Úselfr   Únamer   s   &&  r   Ú__init__ÚBaichuanFuser.__init__\   sj   € ØŒ
ð !%§
¡
× 8Ñ 8Ô :ôE
á :‘�Ø"×(Ñ(Ó*¨f×.>Ñ.>×.GÑ.G×.MÑ.MÓ.OÑOô ˆT‹NÙ :òE
ˆÖùó E
s   ¤;A6Á$A6c                óÚ  € . p\         P                   ! V P                  P                  P                  R R7       EFw  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,                  RR7      4       EKz  	  \/        V P                  P"                  P0                  VV P                  P                  P2                  V P                  P                  P4                  4      V P                  n        \7        V P                  P                  RV P                  P                  P8                  4       R# )zFusing layers...)ÚdescT)Úhidden_sizeÚn_headsÚ
n_kv_headsÚ	qkv_layerr9   r;   Únorm_1Únorm_2ÚdevÚmax_seq_lenÚ	use_alibiÚblocksN)Útqdmr   r   ÚnextÚiterÚ
state_dictÚvaluesr$   r7   r8   r	   r6   ÚweightÚepsilonr:   r5   r   ÚconfigrZ   Únum_attention_headsr9   r;   ra   r   Ú
vocab_sizer+   ÚnormÚsetattrrc   )rT   rc   r   r$   Úqkvr^   r_   s   &      r   r   ÚBaichuanFuser.fuse_transformere   s»  € Øˆä—i’i §
¡
× 0Ñ 0× 7Ñ 7Ð>P×QÐQˆFÜœ$˜v×0Ñ0Ó2×9Ñ9Ó;Ó<Ó=×DÑDˆFð ×"Ñ"×)Ñ)ˆCÜ-Ø×&Ñ&×-Ñ-¨v×/EÑ/E×/MÑ/MóˆFô .Ø×/Ñ/×6Ñ6Ø×/Ñ/×7Ñ7óˆFð �M‰MÜØ $§
¡
× 1Ñ 1× =Ñ =Ø ŸJ™J×-Ñ-×AÑAØ#Ÿz™z×0Ñ0×DÑDØ!Ø!×+Ñ+×2Ñ2ØŸ
™
Ø!Ø!ØØ $§
¡
× 1Ñ 1× =Ñ =Ø"ô÷ñ! Rô@ *Ø�J‰J×Ñ×(Ñ(ØØ�J‰J×Ñ×)Ñ)Ø�J‰J×Ñ×!Ñ!ó	
ˆ�
‰
Ôô 	�—
‘
× Ñ  (¨D¯J©J×,<Ñ,<×,CÑ,CÖDr   )rS   r   N)rD   rE   rF   rG   rV   r   rK   rL   rM   s   @r   r   r   [   s   ø‡ € ò
÷*Eð *Er   r   )rd   Útypingr   r   Úbaser   Úawq.modules.fused.blockr   Úawq.modules.fused.modelr   Ú(transformers.models.llama.modeling_llamar   ÚOldLlamaDecoderLayerÚawq.modules.fused.normr	   r   r   rC   r   r   Ú<module>ry      s:   ðÛ ß Ý $Ý 2Ý 2õõ <ôLÐ/ô L÷^4Eó 4Er   