§
    Þ˜ºh
  ã            	       óà   — d dl mZmZ ddlmZ ddlmZ erddlmZ  e¦   «         rd dl	Z	ddl
mZmZmZ  e¦   «         rd d	lmZ  ej        e¦  «        Zd
ddddddddœZ G d„ de¦  «        ZdS )é    )ÚTYPE_CHECKINGÚAnyé   )Úis_torch_availableé   )ÚHfQuantizer)ÚPreTrainedModelN)Úis_accelerate_availableÚis_quark_availableÚlogging)Úset_module_tensor_to_devicezweight_quantizer.scalezbias_quantizer.scalezinput_quantizer.scalezoutput_quantizer.scalezweight_quantizer.zero_pointzbias_quantizer.zero_pointzinput_quantizer.zero_pointzoutput_quantizer.zero_point)Úweight_scaleÚ
bias_scaleÚinput_scaleÚoutput_scaleÚweight_zero_pointÚbias_zero_pointÚinput_zero_pointÚoutput_zero_pointc            
       óœ   ‡ — e Zd ZdZdZdgZdZˆ fd„Zd„ Zdd„Z	ddd	d
de
dee
ef         def
d„Z	 	 dd„Zdd„Zdd„Zed„ ¦   «         Zˆ xZS )ÚQuarkHfQuantizerz?
    Quark quantizer (https://quark.docs.amd.com/latest/).
    TÚquarkc                 óT   •—  t          ¦   «         j        |fi |¤Ž |j        | _        d S ©N)ÚsuperÚ__init__Újson_export_config)ÚselfÚquantization_configÚkwargsÚ	__class__s      €úo/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/transformers/quantizers/quantizer_quark.pyr   zQuarkHfQuantizer.__init__>   s4   ø€ Ø�‰ŒÔÐ,Ð7Ð7°Ð7Ð7Ð7à"5Ô"HˆÔÐÐó    c                 ó@   — t          ¦   «         st          d¦  «        ‚d S )Nz¥Loading a Quark quantized model requires the `quark` library but it was not found in the environment. Please refer to https://quark.docs.amd.com/latest/install.html.)r   ÚImportError)r   Úargsr    s      r"   Úvalidate_environmentz%QuarkHfQuantizer.validate_environmentC   s2   € Ý!Ñ#Ô#ð 	Ýð xñô ð ð	ð 	r#   Úmodelr	   c                 ól   — ddl m}  ||| j        j        | j        j        | j        j        ¬¦  «         |S )Nr   )Ú_map_to_quark)Úpack_methodÚcustom_mode)Úquark.torch.export.apir*   r   Úquant_configr   r+   r,   )r   r(   r    r*   s       r"   Ú$_process_model_before_weight_loadingz5QuarkHfQuantizer._process_model_before_weight_loadingI   sR   € Ø8Ð8Ð8Ð8Ð8Ð8àˆØØÔ$Ô1ØÔ/Ô;ØÔ0Ô<ð		
ñ 	
ô 	
ð 	
ð ˆr#   Úparam_valueztorch.TensorÚ
param_nameÚ
state_dictÚreturnc                 ó   — dS )NT© )r   r(   r0   r1   r2   r    s         r"   Úcheck_quantized_paramz&QuarkHfQuantizer.check_quantized_paramU   s	   € ð ˆtr#   útorch.nn.Parameterc                 ó¶   — |                      d¦  «        d         }|t          v r!|                     |t          |         ¦  «        }t          ||||¬¦  «         d S )Nú.éÿÿÿÿ)Úvalue)ÚsplitÚCHECKPOINT_KEYSÚreplacer   )r   r(   Úparamr1   Úparam_devicer2   Úunexpected_keysÚpostfixs           r"   Úcreate_quantized_paramz'QuarkHfQuantizer.create_quantized_param_   s^   € ð ×"Ò" 3Ñ'Ô'¨Ô+ˆà•oÐ%Ð%Ø#×+Ò+¨Gµ_ÀWÔ5MÑNÔNˆJå# E¨:°|È5ÐQÑQÔQÐQÐQÐQr#   c                 ó   — |S r   r5   )r   r(   r    s      r"   Ú#_process_model_after_weight_loadingz4QuarkHfQuantizer._process_model_after_weight_loadingi   s   € Øˆr#   Nc                 ó   — dS ©NFr5   )r   Úsafe_serializations     r"   Úis_serializablez QuarkHfQuantizer.is_serializablel   s   € Øˆur#   c                 ó   — dS rG   r5   )r   s    r"   Úis_trainablezQuarkHfQuantizer.is_trainableo   s   € àˆur#   )r(   r	   )r3   r7   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úrequires_calibrationÚrequired_packagesÚ requires_parameters_quantizationr   r'   r/   ÚstrÚdictr   Úboolr6   rC   rE   rI   ÚpropertyrK   Ú__classcell__)r!   s   @r"   r   r   1   s2  ø€ € € € € ðð ð  ÐØ ˜	Ðð
 (,Ð$ðIð Ið Ið Ið Ið
ð ð ð
ð 
ð 
ð 
ðà ðð $ðð ð	ð
 ˜˜c˜”Nðð 
ðð ð ð ðRà	ðRð Rð Rð Rðð ð ð ðð ð ð ð ðð ñ „Xðð ð ð ð r#   r   )Útypingr   r   Ú
file_utilsr   Úbaser   Úmodeling_utilsr	   ÚtorchÚutilsr
   r   r   Úaccelerate.utilsr   Ú
get_loggerrL   Úloggerr=   r   r5   r#   r"   ú<module>ra      s2  ðð  &Ð %Ð %Ð %Ð %Ð %Ð %Ð %à +Ð +Ð +Ð +Ð +Ð +Ø Ð Ð Ð Ð Ð ð ð Ø0Ð0Ð0Ð0Ð0Ð0àÐÑÔð Øˆˆˆà HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ Hð ÐÑÔð =Ø<Ð<Ð<Ð<Ð<Ð<à	ˆÔ	˜HÑ	%Ô	%€ð -Ø(Ø*Ø,Ø6Ø2Ø4Ø6ð	ð 	€ð@ð @ð @ð @ð @�{ñ @ô @ð @ð @ð @r#   