§
    ‚Štj  ã            	       óœ   — d dl mZ ddlmZ erddlmZ ddlmZ ddlm	Z	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é   )ÚHfQuantizeré   )ÚPreTrainedModel)ÚQuarkConfig)Úis_quark_availableÚloggingz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                   óv   ‡ — e Zd ZU dZdZded<   ˆ fd„Zd„ Zdd	„Zddd
e	de
fd„Zd„ Zed„ ¦   «         Zd„ Zˆ xZS )ÚQuarkHfQuantizerz?
    Quark quantizer (https://quark.docs.amd.com/latest/).
    Tr   Úquantization_configc                 óT   •—  t          ¦   «         j        |fi |¤Ž |j        | _        d S )N)ÚsuperÚ__init__Újson_export_config)Úselfr   ÚkwargsÚ	__class__s      €úe/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/quantizers/quantizer_quark.pyr   zQuarkHfQuantizer.__init__2   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_environment7   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_loading=   sR   € Ø8Ð8Ð8Ð8Ð8Ð8àˆØØÔ$Ô1ØÔ/Ô;ØÔ0Ô<ð		
ñ 	
ô 	
ð 	
ð ˆr   Ú
param_nameÚreturnc                 ó   — dS )NT© )r   r#   r+   r   s       r   Úparam_needs_quantizationz)QuarkHfQuantizer.param_needs_quantizationI   s   € Øˆtr   c                 ó   — dS ©NFr.   ©r   s    r   Úis_serializablez QuarkHfQuantizer.is_serializableL   s   € Øˆur   c                 ó   — dS r1   r.   r2   s    r   Úis_trainablezQuarkHfQuantizer.is_trainableO   s   € àˆur   c           
      ó¸   — ddl m} ddlm} g }t                               ¦   «         D ]1\  }}|                      ||g| || ¦  «        g¬¦  «        ¦  «         Œ2|S )Nr   )ÚWeightConverter)ÚQuarkDeserialize)Úsource_patternsÚtarget_patternsÚ
operations)Úcore_model_loadingr7   Úintegrations.quarkr8   ÚCHECKPOINT_KEYSÚitemsÚappend)r   r7   r8   Ú
convertersÚ
source_keyÚ
target_keys         r   Úget_weight_conversionsz'QuarkHfQuantizer.get_weight_conversionsS   sŸ   € Ø8Ð8Ð8Ð8Ð8Ð8Ø9Ð9Ð9Ð9Ð9Ð9ð ˆ
Ý&5×&;Ò&;Ñ&=Ô&=ð 	ð 	Ñ"ˆJ˜
Ø×ÒØ�Ø%/ LØ$.Ø 0Ð 0°Ñ 6Ô 6Ð7ðñ ô ñô ð ð ð Ðr   )r#   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úrequires_calibrationÚ__annotations__r   r"   r*   ÚstrÚboolr/   r3   Úpropertyr5   rD   Ú__classcell__)r   s   @r   r   r   *   sä   ø€ € € € € € ðð ð  ÐØ&Ð&Ð&Ñ&ðIð Ið Ið Ið Ið
ð ð ð
ð 
ð 
ð 
ðÐ.?ð ÈSð Ð_cð ð ð ð ðð ð ð ðð ñ „Xððð ð ð ð ð ð r   r   N)Útypingr   Úbaser   Úmodeling_utilsr   Úutils.quantization_configr   Úutilsr	   r
   Ú
get_loggerrE   Úloggerr>   r   r.   r   r   ú<module>rV      sß   ðð !Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð ð ð 8Ø0Ð0Ð0Ð0Ð0Ð0Ø7Ð7Ð7Ð7Ð7Ð7à /Ð /Ð /Ð /Ð /Ð /Ð /Ð /ð 
ˆÔ	˜HÑ	%Ô	%€ð -Ø(Ø*Ø,Ø6Ø2Ø4Ø6ð	ð 	€ð>ð >ð >ð >ð >�{ñ >ô >ð >ð >ð >r   