+
    QV-jÍ	  ã                   óÆ   € ^ RI Ht ^RIHt ]'       d   ^RIHt ^RIHt ^RIH	t	H
t
HtHt ^RIHt ]
! 4       '       d   ^ RIt]P                  ! ]4      t ! R R	]4      tR# )
é    )ÚTYPE_CHECKING)ÚHfQuantizer)ÚPreTrainedModel)Ú
VptqConfig)Úis_accelerate_availableÚis_torch_availableÚis_vptq_availableÚlogging©ÚQuantizationConfigMixinNc                   óŒ   a a€ ] tR t^!t oRtRtV3R lV 3R lltR tV3R lR lt]	V3R lR	 l4       t
R
 tV3R ltRtVtV ;t# )ÚVptqHfQuantizerzK
Quantizer of the VPTQ method. Enables the loading of prequantized models.
Tc                ó    <€ V ^8„  d   QhRS[ /# )é   Úquantization_configr   )ÚformatÚ__classdict__s   "€Úw/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/transformers/quantizers/quantizer_vptq.pyÚ__annotate__ÚVptqHfQuantizer.__annotate__)   s   ø€ ÷ 8ñ 8Ñ,Cñ 8ó    c                ó*   <€ \         SV `  ! V3/ VB  R # )N)ÚsuperÚ__init__)Úselfr   ÚkwargsÚ	__class__s   &&,€r   r   ÚVptqHfQuantizer.__init__)   s   ø€ Ü‰ÒÐ,Ñ7°Ô7r   c                óÐ   € \        4       '       g   \        R 4      h\        4       '       g   \        R4      h\        P                  P                  4       '       g   \        R4      hR# )zGUsing `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.N)r   ÚImportErrorr	   ÚtorchÚcudaÚis_availableÚRuntimeError)r   Úargsr   s   &*,r   Úvalidate_environmentÚ$VptqHfQuantizer.validate_environment,   sP   € Ü&×(Ò(ÜÐgÓhÐhä ×"Ò"ÜÐeÓfÐfä�z‰z×&Ñ&×(Ò(ÜÐMÓNÐNñ )r   c                ó   <€ V ^8„  d   QhRR/# )r   Úmodelr   © )r   r   s   "€r   r   r   6   s   ø€ ÷ 
ñ 
à ñ
r   c                óº   € ^RI Hp V P                  WP                  P                  VP
                  4      V n        V! VV P                  V P                  R7       R# )r   )Úreplace_with_vptq_linear)r   Úmodules_to_not_convertN)Úintegrationsr,   Úget_modules_to_not_convertr   r-   Ú_keep_in_fp32_modules)r   r)   r   r,   s   &&, r   Ú$_process_model_before_weight_loadingÚ4VptqHfQuantizer._process_model_before_weight_loading6   sP   € õ
 	<à&*×&EÑ&EØ×+Ñ+×BÑBÀE×D_ÑD_ó'
ˆÔ#ñ 	!ØØ $× 8Ñ 8Ø#'×#>Ñ#>÷	
r   c                ó    <€ V ^8„  d   QhRS[ /# )r   Úreturn)Úbool)r   r   s   "€r   r   r   G   s   ø€ ÷ ñ ™dñ r   c                ó   € R # )Fr*   ©r   s   &r   Úis_trainableÚVptqHfQuantizer.is_trainableF   s   € ár   c                ó   € R # )Tr*   r7   s   &r   Úis_serializableÚVptqHfQuantizer.is_serializableJ   s   € Ùr   c                ó$   <€ V ^8„  d   Qh/ R;R&   # )r   r   r   r*   )r   r   s   "€r   r   r   !   s   ø‡ ‚ ð &Ñ%ò r   )r-   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úrequires_calibrationr   r&   r1   Úpropertyr8   r;   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r   r   s   @@r   r   r   !   sM   ù‡ € ñð  Ð÷8ó 8òO÷
ð 
ð  ÷ó ðò÷S … r   r   )Útypingr   Úbaser   Úmodeling_utilsr   Úutils.quantization_configr   Úutilsr   r   r	   r
   r   r!   Ú
get_loggerr>   Úloggerr   r*   r   r   Ú<module>rP      sK   ðõ !å ÷ Ý0Ý6ç [Ó [Ý ?ñ ×ÒÛà	×	Ò	˜HÓ	%€ô*�kö *r   