
    @Ki              	           S SK Jr  SSKJr  \(       a  SSKJr  SSKJrJr  \R                  " \
5      rSSS	S
SSSSS.r " S S\5      rg)    )TYPE_CHECKING   )HfQuantizer   )PreTrainedModel)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                      ^  \ rS rSrSrSrS/rSrU 4S jrS r	SS	 jr
SSS
\S\4S jrS rSS jrSS jr\S 5       rSrU =r$ )QuarkHfQuantizer*   z7
Quark quantizer (https://quark.docs.amd.com/latest/).
Tquarkc                 J   > [         TU ]  " U40 UD6  UR                  U l        g N)super__init__json_export_config)selfquantization_configkwargs	__class__s      i/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/transformers/quantizers/quantizer_quark.pyr   QuarkHfQuantizer.__init__7   s$    ,77"5"H"H    c                 8    [        5       (       d  [        S5      eg )NzLoading 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_environment%QuarkHfQuantizer.validate_environment<   s#    !## x  $r!   modelr   c                     SSK Jn  U" UU R                  R                  U R                  R
                  U R                  R                  S9  U$ )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_loading5QuarkHfQuantizer._process_model_before_weight_loadingB   sD    8$$11//;;00<<		
 r!   
param_namereturnc                     g)NT )r   r'   r0   r   s       r   param_needs_quantization)QuarkHfQuantizer.param_needs_quantizationN   s    r!   c                     SSK Jn  UR                  S5      S   nU[        ;   a  UR	                  U[        U   5      nU" XUR                  U5      5        g )Nr   )_load_parameter_into_model.)modeling_utilsr7   splitCHECKPOINT_KEYSreplaceto)r   r'   paramr0   param_devicer   r7   postfixs           r   create_quantized_param'QuarkHfQuantizer.create_quantized_paramQ   sL    ?""3'+o%#++G_W5MNJ"5ehh|6LMr!   c                     U$ r   r3   )r   r'   r   s      r   #_process_model_after_weight_loading4QuarkHfQuantizer._process_model_after_weight_loading[   s    r!   c                     gNFr3   )r   safe_serializations     r   is_serializable QuarkHfQuantizer.is_serializable^   s    r!   c                     grH   r3   )r   s    r   is_trainableQuarkHfQuantizer.is_trainablea   s    r!   )r   )r'   r   r   )__name__
__module____qualname____firstlineno____doc__requires_calibrationrequired_packages requires_parameters_quantizationr   r%   r.   strboolr4   rB   rE   rJ   propertyrM   __static_attributes____classcell__)r   s   @r   r   r   *   sp       	
 (,$I

.? S _c N  r!   r   N)typingr   baser   r:   r   utilsr   r	   
get_loggerrO   loggerr<   r   r3   r!   r   <module>ra      sW     !  0 / 
		H	% -(*,6246	9{ 9r!   