+
    ÒÜ³jqc  ã            	       óT  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	H
t
Ht ^ RIHtHt ^ RIHtHt ^ RIHtHtHtHtHtHtHtHtHtHtHt ^ RIHtH t H!t!H"t" ^ RI#H$t$H%t%H&t& ^ R	IH't'H(t(H)t)H*t*H+t+H,t,H-t- ^ R
I.H/t/H0t0 ^ RI1H2t2 ^ RI3H4t4 ^ RI5H6t6 ^ RIHtH t  / RRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbR Rb/ R!R"bR#RbR$R"bR%RbR&RbR'RbR(RbR)RbR*RbR+R"bR,RbR-RbR.RbR/RbR0RbR1RbR2RbCR3RR$R"R4R"R5R6/Ct7 ! R7 R8]Pp                  4      t9R# )9é    N)Útqdm)ÚListÚUnionÚDict)ÚDocÚ	Annotated)Úsnapshot_downloadÚsave_torch_state_dict)ÚWQLinear_GEMMÚWQLinear_GEMVÚWQLinear_IPEXÚWQLinear_MarlinÚWQLinear_ExllamaÚWQLinear_ExllamaV2ÚWQLinear_GEMVFastÚmarlin_post_initÚexllama_post_initÚexllamav2_post_initÚipex_post_init)Úget_named_linearsÚset_op_by_nameÚexclude_layers_to_not_quantizeÚ
try_import)Úget_best_deviceÚipex_availableÚtriton_available)Ú
AutoConfigÚPreTrainedModelÚPretrainedConfigÚAutoProcessorÚBaseImageProcessorÚProcessorMixinÚPreTrainedTokenizer)Úinit_empty_weightsÚload_checkpoint_and_dispatch)Ú	AwqConfig)ÚScaledActivation)ÚAwqQuantizer)r   r   ÚmptÚAutoModelForCausalLMÚllamaÚoptÚ
RefinedWebÚRefinedWebModelÚexaoneÚfalconÚbloomÚgptjÚgpt_bigcodeÚmistralÚmixtralÚgpt_neoxÚaquilaÚYiÚqwenÚbaichuanÚllavaÚAutoModelForVision2SeqÚqwen2Úqwen2_vlÚqwen3Ú	qwen3_moeÚgemmaÚgemma2ÚstablelmÚ
starcoder2Ú
llava_nextÚphi3Úphi3_vÚcohereÚdeepseek_v2Údeepseek_v3ÚminicpmÚminicpm3Ú	internlm2Ú
qwen2_5_vlÚqwen2_5_omniÚAutoModelForTextToWaveformc                   ó¼  a a€ ] tR t^at oV3R lV 3R lltV3R lR ltR tR t]P                  ! 4       R/ RR	R
RRRR^€RR]
3V3R lR ll4       t]P                  ! 4       R 4       t]R 4       tR V3R lR llt]]P"                  RRRRRR3V3R lR ll4       t]RR]P"                  RRRRRRRRRR3V3R lR ll4       tR!R ltR"R lt]R 4       tRtVtV ;t# )#ÚBaseAWQForCausalLMc                ó
  <€ V ^8„  d   QhRS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          R	S[ S[S[! R
4      3,          RS[ S[S[! R4      3,          /# )é   Úmodelz"The pretrained or quantized model.Ú
model_typez%The model type, found in config.json.Úis_quantizedz,Indicates if the current model is quantized.ÚconfigzThe config of the model.Úquant_configz%The quantization config of the model.Ú	processorz.An optional processor, e.g. for vision models.)r   r   r   ÚstrÚboolr   r&   r!   )ÚformatÚ__classdict__s   "€ÚP/home/luca/screen-checking/.venv/lib/python3.14/site-packages/awq/models/base.pyÚ__annotate__ÚBaseAWQForCausalLM.__annotate__b   s±   ø€ ÷ 3ñ 3á™ª#Ð.RÓ*SÐSÕTð3ñ ™c¢3Ð'NÓ#OÐOÕPð3ñ  Ù’#ÐDÓEÐEõ
ð	3ñ Ñ*ªCÐ0JÓ,KÐKÕLð3ñ  Ù’sÐBÓCÐCõ
ð3ñ Ù¢Ð$TÓ UÐUõ
ñ3ó    c                óz   <€ \         SV `  4        Wn        W n        W0n        RV n        W@n        WPn        W`n        R# )z&The base model for all AutoAWQ models.N)	ÚsuperÚ__init__rU   rV   rW   Úsearch_resultrX   rY   rZ   )ÚselfrU   rV   rW   rX   rY   rZ   Ú	__class__s   &&&&&&&€r_   re   ÚBaseAWQForCausalLM.__init__b   s8   ø€ ô  	‰ÑÔØ&+Œ
Ø)ŒØ".ÔØ!ˆÔØ(.ŒØ'3ÔØ)2Žrb   c                óB   <€ V ^8„  d   QhRS[ S[S[! R4      3,          /# )rT   Údevicez!The device to move your model to.)r   r[   r   )r]   r^   s   "€r_   r`   ra   {   s$   ø€ ÷ %ñ %™¡3ªÐ,OÓ(PÐ#PÕQñ %rb   c                ó8   € V P                   P                  V4      # )z4A utility function for moving the model to a device.)rU   Úto)rg   rk   s   &&r_   rm   ÚBaseAWQForCausalLM.to{   s   € à�z‰z�}‰}˜VÓ$Ð$rb   c                ó&   € V P                   ! V/ VB # )z1A forward function that mimics the torch forward.©rU   ©rg   ÚargsÚkwargss   &*,r_   ÚforwardÚBaseAWQForCausalLM.forward   s   € à�zŠz˜4Ð* 6Ñ*Ð*rb   c                ó²   € \         P                  ! 4       ;_uu_ 4        V P                  P                  ! V/ VB uuRRR4       #   + '       g   i     R# ; i)z9A generate function that mimics the HF generate function.N)ÚtorchÚinference_moderU   Úgeneraterq   s   &*,r_   ry   ÚBaseAWQForCausalLM.generateƒ   s7   € ä×!Ò!×#Õ#Ø—:‘:×&Ò&¨Ð7°Ñ7÷ $×#×#Ó#ús   žAÁA	NÚpilevalÚtrainÚtextTFi   c                óH  <€ V ^8„  d   QhRS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[S[S[,          3,          S[! R4      3,          RS[ S[S[! R4      3,          R	S[ S[S[! R
4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[	S[! R4      3,          /# )rT   Ú	tokenizerz&The tokenizer to use for quantization.rY   z(The quantization config you want to use.Ú
calib_datazaThe calibration dataset. Either a string pointing to Huggingface or a list of preloaded examples.ÚsplitzThe split of calib_data.Útext_columnzThe text column of calib_data.Úduo_scalingz*Whether to scale using both w/x or just x.Úexport_compatiblezcThis argument avoids real quantization by only applying the scales without quantizing down to FP16.Ú
apply_clipzrWhether to apply clipping to the model during quantization. Some models may perform better with this set to False.Ún_parallel_calib_samplesa"  The number of parallel samples to run through the model. A high number of parallel samples can result in OOM during quantization if max_calib_samples is high enough. If None, runs through all samples at the same time. You can set this to a low number for more memory efficient quantization.Úmax_calib_samplesz7The maximum number of samples to run through the model.Úmax_calib_seq_lenzgThe maximum sequence length of the calibration dataset. Discard samples greater than max_calib_seq_len.Úmax_chunk_memoryzÉThe loss computation and per-channel mean is optimized into chunked computations. Adjust this parameter to increase or decrease memory usage for these computations. Default is 1GB (1024 * 1024 * 1024).Úquantizer_clszZIf you want to customize the quantization class, you can use AwqQuantizer as a base class.)
r   r#   r   r   r   r[   r   r\   Úintr(   )r]   r^   s   "€r_   r`   ra   ‰   sÌ  ø€ ÷ n!ñ n!áÙ¢Ð%MÓ!NÐNõ
ðn!ñ
  Ù’#Ð@ÓAÐAõ
ðn!ñ Ù‘#‘t™C•y�.Õ!ÚØsóðõ
ðn!ñ ™šcÐ"<Ó=Ð=Õ>ðn!ñ ™s¢CÐ(HÓ$IÐIÕJðn!ñ  Ù’#ÐBÓCÐCõ
ð!n!ñ& %ÙÚØuóðõ
ð'n!ñ2 ÙÚð Eóðõ
ð3n!ñ> #,ÙÚð[óðõ#
ð?n!ñP %Ù’ÐNÓOÐOõ
ðQn!ñV %ÙÚØyóðõ
ðWn!ñb $ÙÚð8óðõ
ðcn!ñv !ÙÚÐlÓmðnõ
ñwn!rb   c                ó   € \         P                  ! V4      V n        \        V R4      '       d   V P                  V P                  n        V! V V P
                  VV P                  P                  V P                  P                  V P                  P                  V P                  P                  VVVV3RV P                  P                  RVRVRV	RV
RVRV/VB V n
        V P                  P                  4        RV n        R	# )
a°  
The main quantization function that you can use to quantize your model.

Example:

```python
from awq import AutoAWQForCausalLM
from transformers import AutoTokenizer

model_path = "..."
model = AutoAWQForCausalLM.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)

quant_config = { "zero_point": True, "q_group_size": 128, "w_bit": 4, "version": "GEMM" }
model.quantize(tokenizer, quant_config)
```
Úmodules_to_not_convertr„   r…   r†   r‡   rˆ   r‰   TN)r&   Ú	from_dictrY   Úhasattrr�   rU   Úw_bitÚq_group_sizeÚ
zero_pointÚversionÚ	quantizerÚquantizerW   )rg   r   rY   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   rs   s   &&&&&&&&&&&&&&,r_   r•   ÚBaseAWQForCausalLM.quantizeˆ   s  € ôf (1×':Ò':¸<Ó'HˆÔä�4Ð1×2Ò2Ø7;×7RÑ7RˆD×ÑÔ4á&ØØ�J‰JØØ×Ñ×#Ñ#Ø×Ñ×*Ñ*Ø×Ñ×(Ñ(Ø×Ñ×%Ñ%ØØØØñ
ð $(×#4Ñ#4×#KÑ#Kð
ð 0ð
ð "ð
ð &>ð
ð  0ð!
ð" 0ð#
ð$ .ð%
ð& ñ'
ˆŒð* 	�‰×ÑÔ!à ˆÖrb   c                ó:   € V P                   P                  4        R# )a¥  
A utility function for the following scenario. Note that save_quantized will
overwrite existing weights if you use the same quant_path.

Example:

```python
model.quantize(
    tokenizer,
    quant_config=quant_config,
    export_compatible=True
)
model.save_quantized(...)  # produces GGUF/other compat weights
model.pack(...) # makes the model CUDA compat
model.save_quantized(...)  # produces CUDA compat weights
```
N)r”   Úpack)rg   s   &r_   r˜   ÚBaseAWQForCausalLM.packù   s   € ð& 	�‰×ÑÖrb   c                ó   € R # ©N© rp   s   &r_   Úfuse_layersÚBaseAWQForCausalLM.fuse_layers  s   € árb   c          
      ó’   <€ V ^8„  d   QhRS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          /# )rT   Úsave_dirz$The directory to save your model to.Úsafetensorsz8Whether to save the model as safetensors or torch files.Ú
shard_sizez>The shard size for sharding large models into multiple chunks.)r   r[   r   r\   )r]   r^   s   "€r_   r`   ra     s_   ø€ ÷ -
ñ -
á™C¢Ð%KÓ!LÐLÕMð-
ñ Ù’#ÐPÓQÐQõ
ð-
ñ Ù’ÐUÓVÐVõ
ñ-
rb   c           	     óÒ  a€ VR
,          R8X  d   VRR
 MTp ! V3R lR\         P                  4      oV P                  P                  4       V P                  P
                  n        RV P                  P                  n        V P                  P                  VS! 4       P                  4       R7       V P                  e   V P                  P                  V4       V R2V R2.pV F@  p\        P                  P                  V4      '       g   K*  \        P                  ! V4       KB  	  \!        V P                  P                  4       VVVRV P                  P"                  R	7       R# )é   Ú/Nc                   ó<   <a a€ ] tR tRt oVV 3R ltR tRtVtV ;t# )Ú6BaseAWQForCausalLM.save_quantized.<locals>.EmptyModulei  c                ó$   <€ \         SV `  4        R # r›   )rd   re   )rg   ÚEmptyModulerh   s   &€€r_   re   Ú?BaseAWQForCausalLM.save_quantized.<locals>.EmptyModule.__init__   s   ø€ Ü�k 4Ñ1Ö3rb   c                ó   € V# r›   rœ   )rg   Úxs   &&r_   rt   Ú>BaseAWQForCausalLM.save_quantized.<locals>.EmptyModule.forward#  s   € Ø�rb   rœ   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__re   rt   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)rh   r^   r©   s   @@€r_   r©   r§     s   ú‡ € ö4÷ò rb   r©   T)Ú
state_dictz/model.safetensorsz/pytorch_model.bin)rµ   Úsave_directoryÚmax_shard_sizeÚsafe_serializationÚforce_contiguousÚshared_tensors_to_discardéÿÿÿÿ)ÚnnÚModulerY   Úto_transformers_dictrU   rX   Úquantization_configÚgeneration_configÚ	do_sampleÚsave_pretrainedrµ   rZ   ÚosÚpathÚexistsÚremover
   Ú_tied_weights_keys)rg   r    r¡   r¢   Údefault_pathsrÄ   r©   s   &&&&  @r_   Úsave_quantizedÚ!BaseAWQForCausalLM.save_quantized  s  ø€ ð %-¨R¥L°CÔ$7�8˜C˜R‘=¸Xˆ÷	œ"Ÿ)™)ô 	ð 15×0AÑ0A×0VÑ0VÓ0Xˆ�
‰
×ÑÔ-Ø15ˆ�
‰
×$Ñ$Ô.Ø�
‰
×"Ñ" 8¹»×8PÑ8PÓ8RÐ"ÔSð �>‰>Ò%Ø�N‰N×*Ñ*¨8Ô4ð ˆjÐ*Ð+ØˆjÐ*Ð+ð
ˆó "ˆDÜ�w‰w�~‰~˜d×#Ô#Ü—	’	˜$–ñ "ô 	Ø—z‘z×,Ñ,Ó.Ø#Ø%Ø*Ø!Ø&*§j¡j×&CÑ&C÷	
rb   Úautoc                óÔ  <€ V ^8„  d   QhRS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[P                  S[! R4      3,          RS[ S[S[! R4      3,          R	S[ S[S[! R
4      3,          RS[ S[S[S[3,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          /
# )rT   Ú
model_pathú,A Huggingface path or local path to a model.rV   ú(The model type, loaded from config.json.Útorch_dtypeúLThe dtype to load the model as. May not work with other values than float16.Útrust_remote_codeúXUseful for Huggingface repositories that have not been integrated into transformers yet.r¡   ú>Whether to download/load safetensors instead of torch weights.Ú
device_mapúQA device map that will be passed onto the model loading method from transformers.Údownload_kwargsú!Used for configure download modelÚlow_cpu_mem_usagez5Use low_cpu_mem_usage when loading from transformers.Ú	use_cachez&Use use_cache argument in transformersÚmodel_init_kwargszEAdditional kwargs that are passed to the model during initialization.)r   r[   r   rw   Údtyper\   r   r   )r]   r^   s   "€r_   r`   ra   B  sb  ø€ ÷ U
ñ U
á™c¢3Ð'UÓ#VÐVÕWðU
ñ ™c¢3Ð'QÓ#RÐRÕSðU
ñ Ù�K‰KÚØ^óðõ
ð	U
ñ %ÙÚØjóðõ
ðU
ñ  Ù’#ÐVÓWÐWõ
ð!U
ñ& Ù‘#‘t�)ÕÚØcóðõ
ð'U
ñ2 #ÙÚÐ3Ó4ð6õ
ð3U
ñ: %ÙÚÐGÓHðIõ
ð;U
ñB ÙÚÐ8Ó9ð:õ
ðCU
ñJ 'ÙÚØWóðõ
ñKU
rb   c
                óº  € V P                  V VRVVVR7      w  r¼p\        VP                  ,          p\        \        V4      pRpVR8X  g   VR8X  d   \
        P                  ! V4      pV
P                  R4      f   WŠR&   V
P                  R4      f   VR8X  g   VR8X  g   WšR&   VP                  ! V3RVR	VR
VRV/V
B pVP                  4        V ! VVRVVVR7      # )zBA method for initialization of pretrained models, usually in FP16.Ú )rÒ   r×   Nr<   rP   rÙ   rÚ   rÒ   rÐ   Úuse_safetensorsrÕ   F©rW   rX   rY   rZ   )	Ú_load_configÚTRANSFORMERS_AUTO_MAPPING_DICTrV   ÚgetattrÚtransformersr    Úfrom_pretrainedÚgetÚeval)rg   rÍ   rV   rÐ   rÒ   r¡   rÕ   r×   rÙ   rÚ   rÛ   Úmodel_weights_pathrX   rY   Útarget_cls_nameÚ
target_clsrZ   rU   s   &&&&&&&&&&,       r_   rå   Ú"BaseAWQForCausalLM.from_pretrainedA  s8  € ð^ 48×3DÑ3DØØØØØ/Ø+ð 4Eó 4
Ñ0Ð Lô 9¸×9JÑ9JÕKˆÜœ\¨?Ó;ˆ
àˆ	ØÐ6Ô6¸/ÐMiÔ:iÜ%×5Ò5Ð6HÓIˆIØ× Ñ Ð!4Ó5Ò=Ø5FÐ1Ñ2Ø× Ñ  Ó-Ò5ÀÐSkÔ@kð  rAð  Eaô  raØ-6˜kÑ*ð ×*Ò*Øñ
à/ð
ð $ð
ð (ð	
ð
 "ð
ð  ñ
ˆð 	�
‰
ŒáØØØØØ%Øô
ð 	
rb   rÞ   Úbalancedc          $      ó  <€ V ^8„  d   QhRS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          R	S[ S[P
                  S[! R
4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[S[3,          S[! R4      3,          RS[ S[S[S[S[3,          S[S[S[3,          3,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R 4      3,          /# )!rT   rÍ   rÎ   rV   rÏ   Úmodel_filenamez=Load a specific model's filename by specifying this argument.Úmax_seq_lenzsThe maximum sequence cached sequence length of the model. Larger values may increase loading time and memory usage.rÐ   rÑ   rÒ   rÓ   r¡   rÔ   r�   zIWhether to use fused/optimized combination of layers for increased speed.Úuse_exllamaz0Whether to map the weights to ExLlamaV1 kernels.Úuse_exllama_v2z0Whether to map the weights to ExLlamaV2 kernels.Úuse_ipexzBWhether to map the weights to ipex kernels for CPU and XPU device.rÕ   rÖ   Ú
max_memoryu˜   A dictionary device identifier to maximum memory which will be passed onto the model loading method from transformers. For exampleï¼š{0: "4GB",1: "10GB"Úoffload_folderz#The folder ot offload the model to.r×   rØ   Úconfig_kwargszFAdditional kwargs that are passed to the config during initialization.)	r   r[   r   r‹   rw   rÜ   r\   r   r   )r]   r^   s   "€r_   r`   ra   š  sM  ø€ ÷ `
ñ `
á™c¢3Ð'UÓ#VÐVÕWð`
ñ ™c¢3Ð'QÓ#RÐRÕSð`
ñ "Ù’ÐTÓUÐUõ
ð	`
ñ ÙÚð Fóðõ
ð`
ñ Ù�K‰KÚØ^óðõ
ð`
ñ& %ÙÚØjóðõ
ð'`
ñ2 Ù’#ÐVÓWÐWõ
ð3`
ñ8 ÙÚØ[óðõ
ð9`
ñD Ù’#ÐHÓIÐIõ
ðE`
ñJ "Ù’#ÐHÓIÐIõ
ðK`
ñP Ù’#ÐZÓ[Ð[õ
ðQ`
ñV Ù‘#‘t�)ÕÚØcóðõ
ðW`
ñb Ù‘‘s™C�x•¡%©©S¨¥/Ð1Õ2Úð kóðõ
ðc`
ñn "ÙÚÐ5Ó6ð8õ
ðo`
ñv #ÙÚÐ3Ó4ð6õ
ðw`
ñ~ #ÙÚØXóðõ
ñ`
rb   c           
     ó  € V P                   ! V VVVV3RVRV/VB w  ppp\        VP                  ,          p\        \        V4      p\        4       ;_uu_ 4        VP                  VVVR7      pRRR4       \        4       pVR8X  g   VR8X  d   \        '       g   RpV'       d   \        '       g   \        R4      hV P                  V XVVP                  V	V
VR	7       VP                  4        \        VVVVV P                  .VVR
7       \!        R4      w  ppV'       d;   VR9   d#   Vf   \"        P$                  ! RV,           4       MV P'                  V4       V'       d   \)        V4      pMoVP                  R8X  d   \+        V4      pMRV	'       d   \-        V4      pM>V
'       d7   \/        TT;'       g    R\1        \2        P4                  ! R^4      4      R7      pVP7                  4        V ! VVRVVRR7      #   + '       g   i     EL–; i)zBA method for initialization of a quantized model, usually in INT4.rï   r×   )rX   rÐ   rÒ   NÚcpuzxpu:0TzlPlease install intel_extension_for_pytorch with `pip install intel_extension_for_pytorch` for 'ipex' kernel!)rð   rñ   rò   )Ú
checkpointrÕ   ró   Úno_split_module_classesrô   rÜ   Úawq_extz?Skipping fusing modules because AWQ extension is not installed.Úmarliné   ÚAWQ_BATCH_SIZE)Úmax_input_lenÚmax_batch_sizerà   )Úmpszcuda:0)rá   râ   rV   rã   rä   r$   Úfrom_configr   r   r   ÚImportErrorÚ_load_quantized_modulesr“   Útie_weightsr%   Ú
layer_typer   ÚwarningsÚwarnr�   r   r   r   r   r‹   rÃ   Úgetenvrç   )rg   rÍ   rV   rî   rï   rÐ   rÒ   r¡   r�   rð   rñ   rò   rÕ   ró   rô   r×   rõ   rè   rX   rY   ré   rê   rU   Úbest_devicerú   Úmsgs   &&&&&&&&&&&&&&&&,         r_   Úfrom_quantizedÚ!BaseAWQForCausalLM.from_quantized™  s  € ðR 48×3DÒ3DØØØØØñ	4
ð $ð	4
ð ,ð	4
ð ñ	4
Ñ0Ð˜F Lô 9¸×9JÑ9JÕKˆÜœ\¨?Ó;ˆ
ô  ×!Õ!Ø×*Ñ*ØØ'Ø"3ð +ó ˆE÷ "ô &Ó'ˆØ˜%Ô K°7Ô$:×CSÓCSØˆHßŸN›NÜðOóð ð
 	×$Ñ$ØØØØ× Ñ Ø#Ø)Øð 	%ô 	
ð 	×ÑÔô 	%ØØ)Ø!Ø!Ø%)§_¡_Ð$5Ø)Øõ	
ô " )Ó,‰ˆ�ßØÐ/Ô/°G²OÜ—’Ð_ÐbeÕeÕfà× Ñ  Ô'çä" 5Ó)‰EØ×!Ñ! XÔ-Ü$ UÓ+‰Eßä% eÓ,‰Eßä'ØØ)×1Ð1¨TÜ"¤2§9¢9Ð-=¸qÓ#AÓBôˆEð 	�
‰
ŒáØØØØØ%Øô
ð 	
÷E "×!Ð!ús   ÁG;Ç;H	c                óV  € \         P                  P                  V4      '       g­   . R	OpV'       d   VP                  . R
O4       MVP	                  R4       Vf   / pRV9   da   VP                  R4      p	\        V	\        4      '       d   VP	                  V	4       M'\        V	\        4      '       d   VP                  V	4       \        V3RV/VB pVR8w  d   VRV 2,           p
MTp
\        P                  ! V4      pVf   \        V R4      '       dm   \        P                  ! V3RV/VB p\        WÀP                  R4      Vn        \        VR4      '       d&   \        WÀP                  R4      VP"                  n        M'Vf   RMTp\        P                  ! V3RV/VB pW\n        W¬V3# )ú	*msgpack*z*.safetensors*Úignore_patternsrÞ   r¥   Úmax_seq_len_keyrÒ   rü   Útext_config)r  z*h5*zoptimizer.ptz*.onnx*)z*.pt*z*.bin*zconsolidated*)rÃ   rÄ   ÚisdirÚextendÚappendÚpopÚ
isinstancer[   Úlistr	   r&   rå   r�   r   rã   r  rï   r  )rg   rÍ   rî   r¡   rÒ   rï   r×   rõ   r  Údownload_kwargs_ignore_patternsrè   rY   rX   s   &&&&&&&,     r_   rá   ÚBaseAWQForCausalLM._load_config<  s­  € ô �w‰w�}‰}˜Z×(Ò(ÚNˆOßØ×&Ñ&Ò'KÕLà×&Ñ&Ð'7Ô8àÒ&Ø"$�à  OÔ3Ø2A×2EÑ2EÐFWÓ2XÐ/äÐ=¼s×CÒCØ#×*Ñ*Ð+JÕKÜÐ ?Ä×FÒFØ#×*Ñ*Ð+JÔKä*ØñØ,;ðØ?NñˆJð ˜RÔØ!+°°.Ð1AÐ.BÕ!BÑà!+Ðô !×0Ò0°Ó<ˆð Ò¤7¨4Ð1B×#CÒ#CÜ×/Ò/ØñØ.?ðØCPñˆFô ")¨×1EÑ1EÀtÓ!LˆFÔä�v˜}×-Ò-Ü18Ø×0Ñ0°$ó2�×"Ñ"Ô.øð #.Ò"5™$¸;ˆKÜ×/Ò/ØñØ.?ðØCPñˆFð "-Ôà!¨<Ð7Ð7rb   c                óp  € VR 8X  d    V'       g   V'       g	   V'       d   Q R4       hV P                  V4      p\        \        \        V4      4      RR7       EFZ  pWx,          p	\	        V	4      p
\        W¢P                  4      p
V P                  W	4       V
P                  4        FÎ  w  r¼V'       d   \        pMUVR8X  d   \        pMGV'       d   \        pM8V'       d   \        pM)VR8X  d   \        pMVR 8X  d   \        pMVR8X  d   \        pXP!                  WÂP"                  VP$                  R4      pVP'                  \)        V	P+                  4       4      P,                  4       \/        W›V4       KÐ  	  V'       g   \0        P2                  P5                  4        \6        P8                  ! 4        EK]  	  R# )	Úgemvz*Exllama kernels only support GEMM version.zReplacing layers...)Údescrû   ÚgemmÚ	gemv_fastTN)Úget_model_layersr   ÚrangeÚlenr   r   r�   Ú_scale_activationsÚitemsr   r   r   r   r   r   r   Úfrom_linearr�   r‘   rm   ÚnextÚ
parametersrk   r   rw   ÚcudaÚempty_cacheÚgcÚcollect)rg   rU   rY   r“   rð   rñ   rò   ÚlayersÚiÚlayerÚnamed_linearsÚnameÚmoduleÚq_linear_moduleÚq_linears   &&&&&&&        r_   r  Ú*BaseAWQForCausalLM._load_quantized_modulesz  s`  € ð
 �vÔ§;·.ÇHð	8à7ó	8ð 
ð
 ×&Ñ& uÓ-ˆä”eœC ›KÓ(Ð/D×EÐEˆAØ•IˆEô .¨eÓ4ˆMô ;Ø×BÑBóˆMð
 ×#Ñ# DÔ0ð !.× 3Ñ 3Ö 5‘�ßÜ&3‘OØ Ô(Ü&5‘Oß Ü&6‘Oß#Ü&8‘OØ Ô&Ü&3‘OØ Ô&Ü&3‘OØ Ô+Ü&7�Oð +×6Ñ6Ø×.Ñ.°×0IÑ0IÈ4ó�ð —‘œD ×!1Ñ!1Ó!3Ó4×;Ñ;Ô<Ü˜u¨HÖ5ñ+ !6÷. Ü—
‘
×&Ñ&Ô(Ü�JŠJ�LóQ Frb   c                ón  € V P                  V4      pVR ,          '       d•   \        VR,          \        4      '       gv   \        VP	                  4       4      p\
        P                  ! VR,          VP                  VP                  R7      p\        VR,          V4      p\        WR,          V4       R# R# R# )Úis_scalableÚscale_layerÚscale_shape)rÜ   rk   Ú
scale_nameN)
Úget_act_for_scalingr  r'   r%  r&  rw   ÚonesrÜ   rk   r   )rg   r-  Ú
scale_dictÚparamÚ
scale_likeÚ
scaled_acts   &&    r_   r"  Ú%BaseAWQForCausalLM._scale_activations¯  s”   € à×-Ñ-¨eÓ4ˆ
à�m×$Ô$Ü˜j¨Õ7Ô9I×JÒJÜ˜U×-Ñ-Ó/Ó0�ô #ŸZšZØ˜}Õ-°U·[±[ÈÏÉô�
ô
 .¨j¸Õ.GÈÓT�
Ü˜u°Õ&>À
ÖKñ Kñ %rb   )rX   rW   rU   rV   rZ   rY   r”   rf   i   @)TÚ5GB)TTi   N)F)r®   r¯   r°   r±   re   rm   rt   ry   rw   Úno_gradr(   r•   r˜   Ústaticmethodr�   rÉ   ÚclassmethodÚfloat16rå   r  rá   r  r"  r²   r³   r´   )rh   r^   s   @@r_   rR   rR   a   s�  ù‡ € ÷3ó 3÷2%ð %ò+ò8ð
 ‡]‚]ƒ_ð
 ð ð ØAHØMSð ð ð ð ð ð ðð ÷}n!ñ n!ó ðn!ð` ‡]‚]ƒ_ñó ðð( ñó ð÷-
ò -
ð^ ð �M‰Mð ð ð ð ð ð ÷IU
ñ U
ó ðU
ðn ð ð ð �M‰Mð ð ð ð ð ð ð ð ð ð ÷}`
ñ `
ó ð`
ôD<8ô|3ðj ñLó ÷Lð Lrb   rR   ):rÃ   r)  r  rw   rä   Útorch.nnr¼   r   Útypingr   r   r   Útyping_extensionsr   r   Úhuggingface_hubr	   r
   Úawq.modules.linearr   r   r   r   r   r   r   r   r   r   r   Úawq.utils.moduler   r   r   r   Úawq.utils.utilsr   r   r   r   r   r   r    r!   r"   r#   Úaccelerate.big_modelingr$   r%   Úawq.models._configr&   Úawq.modules.actr'   Úawq.quantize.quantizerr(   râ   r½   rR   rœ   rb   r_   Ú<module>rP     si  ðÛ 	Û 	Û Û Û Ý å ß $Ñ $ß ,ß D÷÷ ÷ ñ ÷ó ÷ NÑ M÷÷ ñ ÷õ
 )Ý ,Ý /ß >ð
'"Ø	Ð!ð'"àÐ#ð'"ð 
Ð!ð'"ð Ð(ð	'"ð
 Ð-ð'"ð Ð$ð'"ð Ð$ð'"ð Ð#ð'"ð Ð"ð'"ð Ð)ð'"ð Ð%ð'"ð Ð%ð'"ð Ð&ð'"ð Ð$ð'"ð 	Ð
 ð'"ð  Ð"ð!'"ð" Ð&ñ#'"ð$ Ð%ð%'"ð& Ð#ð''"ð( Ð(ð)'"ð* Ð#ð+'"ð, Ð'ð-'"ð. Ð#ð/'"ð0 Ð$ð1'"ð2 Ð&ð3'"ð4 Ð(ð5'"ð6 Ð*ð7'"ð8 Ð"ð9'"ð: Ð$ð;'"ð< Ð$ð='"ð> Ð)ð?'"ð@ Ð)ðA'"ðB Ð%ðC'"ðD Ð&ñE'"ðF Ð'ØÐ(ØÐ*ØÐ0ñM'"Ð ôT]	L˜Ÿ™ö ]	Lrb   