
    Z j	                         S SK Jr  SSKJr  \(       a  SSKJr  SSKJr  SSKJ	r	J
r
JrJr  SSKJr  \
" 5       (       a  S S	Kr\R                  " \5      r " S
 S\5      rg	)    )TYPE_CHECKING   )HfQuantizer   )PreTrainedModel)
VptqConfig)is_accelerate_availableis_torch_availableis_vptq_availablelogging)QuantizationConfigMixinNc                   v   ^  \ rS rSr% SrSrS\S'   S\4U 4S jjrS r	  SS jr
\S	\4S
 j5       rS rSrU =r$ )VptqHfQuantizer!   zK
Quantizer of the VPTQ method. Enables the loading of prequantized models.
Tr   quantization_configc                 (   > [         TU ]  " U40 UD6  g )N)super__init__)selfr   kwargs	__class__s      w/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/transformers/quantizers/quantizer_vptq.pyr   VptqHfQuantizer.__init__)   s    ,77    c                     [        5       (       d  [        S5      e[        5       (       d  [        S5      e[        R                  R                  5       (       d  [        S5      eg )NzGUsing `vptq` quantization requires Accelerate: `pip install accelerate`zEUsing `vptq` quantization requires VPTQ>=0.0.4: `pip install -U vptq`z,GPU is required to run VTPQ quantized model.)r	   ImportErrorr   torchcudais_availableRuntimeError)r   argsr   s      r   validate_environment$VptqHfQuantizer.validate_environment,   sP    &((ghh ""effzz&&((MNN )r   c                     SSK Jn  U R                  XR                  R                  UR
                  5      U l        U" UU R                  U R                  S9  g )Nr   )replace_with_vptq_linear)r   modules_to_not_convert)integrationsr%   get_modules_to_not_convertr   r&   _keep_in_fp32_modules)r   modelr   r%   s       r   $_process_model_before_weight_loading4VptqHfQuantizer._process_model_before_weight_loading6   sP    
 	<&*&E&E++BBED_D_'
# 	! $ 8 8#'#>#>	
r   returnc                     g)NF r   s    r   is_trainableVptqHfQuantizer.is_trainableF   s    r   c                     g)NTr/   r0   s    r   is_serializableVptqHfQuantizer.is_serializableJ   s    r   )r&   )r*   r   )__name__
__module____qualname____firstlineno____doc__requires_calibration__annotations__r   r   r"   r+   propertyboolr1   r4   __static_attributes____classcell__)r   s   @r   r   r   !   s[      %%8,C 8O
 
  d   r   r   )typingr   baser   modeling_utilsr   utils.quantization_configr   utilsr	   r
   r   r   r   r   
get_loggerr6   loggerr   r/   r   r   <module>rH      sK    !  06 [ [ ? 			H	%*k *r   