§
    ‚Štjµ:  ã            
       óD  — d dl Z ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlm Z  ddl!m"Z" dd	l#m$Z$ dd
l%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z< ddl=m>Z> ddl?m@Z@ ddlAmBZB ddlCmDZD ddlEmFZF ddlGmHZH ddlImJZJ ddlKmLZL ddlMmNZN ddlOmPZP i d e&“d!e*“d"e,“d#e<“d$e"“d%eF“d&eH“d'e6“d(e8“d)e0“d*e>“d+e@“d,e.“d-e2“d.eN“d/e(“d0eP“eLe4e4e$eDeBeJe:d1œ¥ZQi d e“d!e
“d"e
“d)e“d#e“d$e“d%e“d&e“d'e“d(e“d+e“d,e“d-e“d*e“d.e“d/e	“d0e“eeeeeeeed1œ¥ZReeeeeeeefZS ejT        eU¦  «        ZV G d2„ d3¦  «        ZW G d4„ d5¦  «        ZXd6eYfd7„ZZd8eYfd9„Z[d:„ Z\dS );é    Né   )Ú
AutoConfig)Úlogging)Ú
AqlmConfigÚAutoRoundConfigÚ	AwqConfigÚBitNetQuantConfigÚBitsAndBytesConfigÚCompressedTensorsConfigÚ
EetqConfigÚFbgemmFp8ConfigÚFineGrainedFP8ConfigÚFourOverSixConfigÚFPQuantConfigÚGemmaQuantizationConfigÚ
GPTQConfigÚHiggsConfigÚ	HqqConfigÚMetalConfigÚMxfp4ConfigÚQuantizationConfigMixinÚQuantizationMethodÚQuantoConfigÚQuarkConfigÚ
SinqConfigÚ
SpQRConfigÚTorchAoConfigÚ
VptqConfigé   )ÚHfQuantizer)ÚAqlmHfQuantizer)ÚAutoRoundQuantizer)ÚAwqQuantizer)ÚBitNetHfQuantizer)ÚBnb4BitHfQuantizer)ÚBnb8BitHfQuantizer)ÚCompressedTensorsHfQuantizer)ÚEetqHfQuantizer)ÚFbgemmFp8HfQuantizer)ÚFineGrainedFP8HfQuantizer)ÚFourOverSixHfQuantizer)ÚFPQuantHfQuantizer)ÚGemmaQuantizer)ÚGptqHfQuantizer)ÚHiggsHfQuantizer)ÚHqqHfQuantizer)ÚMetalHfQuantizer)ÚMxfp4HfQuantizer)ÚQuantoHfQuantizer)ÚQuarkHfQuantizer)ÚSinqHfQuantizer)ÚSpQRHfQuantizer)ÚTorchAoHfQuantizer)ÚVptqHfQuantizerÚawqÚbitsandbytes_4bitÚbitsandbytes_8bitÚgptqÚaqlmÚquantoÚquarkÚfouroversixÚfp_quantÚeetqÚhiggsÚhqqzcompressed-tensorsÚ
fbgemm_fp8ÚtorchaoÚbitnetÚvptq)ÚspqrÚfp8Úmxfp8z
auto-roundÚmxfp4ÚmetalÚsinqÚgemmac                   óD   — e Zd ZdZedefd„¦   «         Zed„ ¦   «         ZdS )ÚAutoQuantizationConfigz·
    The Auto-HF quantization config class that takes care of automatically dispatching to the correct
    quantization config given a quantization config stored in a dictionary.
    Úquantization_config_dictc           	      óÂ  — |                      d¦  «        }|                      dd¦  «        s|                      dd¦  «        r*|                      dd¦  «        rdnd}t          j        |z   }n|€t          d¦  «        ‚|t          vr9t          d|› d	t          t                               ¦   «         ¦  «        › �¦  «        ‚t          |         }|                     |¦  «        S )
NÚquant_methodÚload_in_8bitFÚload_in_4bitÚ_4bitÚ_8bitú‰The model's quantization config from the arguments has no `quant_method` attribute. Make sure that the model has been correctly quantizedúUnknown quantization type, got ú - supported types are: )	Úgetr   ÚBITS_AND_BYTESÚ
ValueErrorÚ AUTO_QUANTIZATION_CONFIG_MAPPINGÚlistÚAUTO_QUANTIZER_MAPPINGÚkeysÚ	from_dict)ÚclsrR   rT   ÚsuffixÚ
target_clss        úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/quantizers/auto.pyrc   z AutoQuantizationConfig.from_dict˜   s  € à/×3Ò3°NÑCÔCˆà#×'Ò'¨¸Ñ>Ô>ð 	ÐBZ×B^ÒB^Ð_mÐotÑBuÔBuð 	Ø 8× <Ò <¸^ÈUÑ SÔ SÐ`�W�WÐY`ˆFÝ-Ô<¸vÑEˆLˆLØÐ!Ýð \ñô ð ð Õ?Ð?Ð?Ýð:°,ð :ð :ÝÕ/×4Ò4Ñ6Ô6Ñ7Ô7ð:ð :ñô ð õ
 6°lÔCˆ
Ø×#Ò#Ð$<Ñ=Ô=Ð=ó    c                 óÄ   — t          j        |fi |¤Ž}t          |dd ¦  «        €t          d|› d�¦  «        ‚|j        }|                      |¦  «        } |j        di |¤Ž |S )NÚquantization_configz)Did not found a `quantization_config` in z2. Make sure that the model is correctly quantized.© )r   Úfrom_pretrainedÚgetattrr^   rj   rc   Úupdate)rd   Úpretrained_model_name_or_pathÚkwargsÚmodel_configrR   rj   s         rg   rl   z&AutoQuantizationConfig.from_pretrained­   sš   € å!Ô1Ð2OÐZÐZÐSYÐZÐZˆÝ�<Ð!6¸Ñ=Ô=ÐEÝð NÐ<Yð  Nð  Nð  Nñô ð ð $0Ô#CÐ Ø!ŸmšmÐ,DÑEÔEÐà"ÐÔ"Ð,Ð, VÐ,Ð,Ð,Ø"Ð"rh   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚclassmethodÚdictrc   rl   rk   rh   rg   rQ   rQ   ’   s`   € € € € € ðð ð
 ð>°ð >ð >ð >ñ „[ð>ð( ð
#ð 
#ñ „[ð
#ð 
#ð 
#rh   rQ   c                   óŒ   — e Zd ZdZedeez  fd„¦   «         Zed„ ¦   «         Zedeez  dedz  fd„¦   «         Z	e
d„ ¦   «         ZdS )	ÚAutoHfQuantizerz–
     The Auto-HF quantizer class that takes care of automatically instantiating to the correct
    `HfQuantizer` given the `QuantizationConfig`.
    rj   c           	      óª  — t          |t          ¦  «        rt                               |¦  «        }|j        }|t
          j        k    r6t          |t          ¦  «        st          d¦  «        ‚|j	        r|dz  }n|dz  }|t          vr9t          d|› dt          t                               ¦   «         ¦  «        › �¦  «        ‚t          |         } ||fi |¤ŽS )NzZFound `quant_method=bitsandbytes` but `quantization_config` is not a `BitsAndBytesConfig`.rX   rW   rZ   r[   )Ú
isinstancerw   rQ   rc   rT   r   r]   r
   Ú	TypeErrorrU   ra   r^   r`   rb   )rd   rj   rp   rT   rf   s        rg   Úfrom_configzAutoHfQuantizer.from_configÁ   s  € õ Ð)­4Ñ0Ô0ð 	XÝ"8×"BÒ"BÐCVÑ"WÔ"WÐà*Ô7ˆð Õ-Ô<Ò<Ð<ÝÐ1Õ3EÑFÔFð ÝØpñô ð ð #Ô/ð (Ø Ñ'��à Ñ'�àÕ5Ð5Ð5Ýð:°,ð :ð :ÝÕ/×4Ò4Ñ6Ô6Ñ7Ô7ð:ð :ñô ð õ
 ,¨LÔ9ˆ
ØˆzÐ-Ð8Ð8°Ð8Ð8Ð8rh   c                 óP   — t          j        |fi |¤Ž}|                      |¦  «        S )N)rQ   rl   r}   )rd   ro   rp   rj   s       rg   rl   zAutoHfQuantizer.from_pretrainedÞ   s0   € å4ÔDÐEbÐmÐmÐflÐmÐmÐØ�ŠÐ2Ñ3Ô3Ð3rh   Úquantization_config_from_argsNc                 ó&  — |�d}nd}t          |t          ¦  «        rDt          |t          ¦  «        rt          j        |¦  «        }nt                               |¦  «        }|�D|j        j        |j        j        k    r*t          d|j        j        › d|j        j        › d�¦  «        ‚t          |t          ¦  «        r~t          |t          ¦  «        ri| 	                    ¦   «         }| 
                    ¦   «         D ]\  }}t          |||¦  «         Œ|r(|dt          |                     ¦   «         ¦  «        › d�z  }|dk    r7t          |t          t          t           f¦  «        st#          j        |¦  «         nt&                               |¦  «         |S )	z„
        handles situations where both quantization_config from args and quantization_config from model config are present.
        NzÑYou passed `quantization_config` or equivalent parameters to `from_pretrained` but the model you're loading already has a `quantization_config` attribute. The `quantization_config` from the model will be used.Ú zThe model is quantized with z but you are passing a z| config. Please make sure to pass the same quantization config class to `from_pretrained` with different loading attributes.z"However, loading attributes (e.g. z]) will be overwritten with the one you passed to `from_pretrained`. The rest will be ignored.)r{   rw   r   rc   rQ   Ú	__class__rr   r^   ÚLOADING_ATTRIBUTES_CONFIG_TYPESÚget_loading_attributesÚitemsÚsetattrr`   rb   r   r   r   ÚwarningsÚwarnÚloggerÚinfo)rd   rj   r   Úwarning_msgÚloading_attr_dictÚattrÚvals          rg   Úmerge_quantization_configsz*AutoHfQuantizer.merge_quantization_configsã   só  € ð )Ð4ðyð ˆKð
 ˆKåÐ)­4Ñ0Ô0ð 	\åÐ7½ÑIÔIð \Ý&5Ô&?Ð@SÑ&TÔ&TÐ#Ð#å&<×&FÒ&FÐGZÑ&[Ô&[Ð#ð *Ð5Ø#Ô-Ô6Ð:WÔ:aÔ:jÒjÐjåðFÐ/BÔ/LÔ/Uð Fð Fð  oLô  oVô  o_ð Fð Fð Fñô ð õ
 Ð)Õ+JÑKÔKð 	BÕPZØ)Õ+JñQ
ô Q
ð 	Bð !>× TÒ TÑ VÔ VÐØ.×4Ò4Ñ6Ô6ð 8ð 8‘	��cÝÐ+¨T°3Ñ7Ô7Ð7Ð7à ð BØð   BÅDÐIZ×I_ÒI_ÑIaÔIaÑDbÔDbð   Bð   Bð   Bñ  B�à˜"ÒÐ¥ZÐ0CÅkÕS^Õ`tÐEuÑ%vÔ%vÐÝŒM˜+Ñ&Ô&Ð&Ð&õ �KŠK˜Ñ$Ô$Ð$Ø"Ð"rh   c           	      ó   — |                       dd ¦  «        }|                       dd¦  «        s|                       dd¦  «        r*|                       dd¦  «        rdnd}t          j        |z   }n|€t          d¦  «        ‚|t          vrGt
                               d|› d	t          t           	                    ¦   «         ¦  «        › d
�¦  «         dS dS )NrT   rU   FrV   rW   rX   rY   rZ   r[   z~. Hence, we will skip the quantization. To remove the warning, you can delete the quantization_config attribute in config.jsonT)
r\   r   r]   r^   r_   r‰   Úwarningr`   ra   rb   )rR   rT   re   s      rg   Úsupports_quant_methodz%AutoHfQuantizer.supports_quant_method  s  € à/×3Ò3°NÀDÑIÔIˆØ#×'Ò'¨¸Ñ>Ô>ð 	ÐBZ×B^ÒB^Ð_mÐotÑBuÔBuð 	Ø 8× <Ò <¸^ÈUÑ SÔ SÐ`�W�WÐY`ˆFÝ-Ô<¸vÑEˆLˆLØÐ!Ýð \ñô ð ð Õ?Ð?Ð?Ý�NŠNði°,ð ið iÝÕ/×4Ò4Ñ6Ô6Ñ7Ô7ðið ið iñô ð ð
 �5Øˆtrh   )rr   rs   rt   ru   rv   r   rw   r}   rl   r�   Ústaticmethodr’   rk   rh   rg   ry   ry   »   s¿   € € € € € ðð ð
 ð9Ð.EÈÑ.Lð 9ð 9ð 9ñ „[ð9ð8 ð4ð 4ñ „[ð4ð ð/#à!Ð$;Ñ;ð/#ð (?ÀÑ'Eð/#ð /#ð /#ñ „[ð/#ðb ðð ñ „\ðð ð rh   ry   Úmethodc                 ó   ‡ — ˆ fd„}|S )z-Register a custom quantization configuration.c                 óœ   •— ‰t           v rt          d‰› d�¦  «        ‚t          | t          ¦  «        st	          d¦  «        ‚| t           ‰<   | S )NzConfig 'ú' already registeredz*Config must extend QuantizationConfigMixin)r_   r^   Ú
issubclassr   r|   )rd   r”   s    €rg   Úregister_config_fnz8register_quantization_config.<locals>.register_config_fn-  s\   ø€ ØÕ5Ð5Ð5ÝÐD¨ÐDÐDÐDÑEÔEÐEå˜#Õ6Ñ7Ô7ð 	JÝÐHÑIÔIÐIà36Õ(¨Ñ0Øˆ
rh   rk   )r”   r™   s   ` rg   Úregister_quantization_configrš   *  s$   ø€ ðð ð ð ð ð Ðrh   Únamec                 ó   ‡ — ˆ fd„}|S )zRegister a custom quantizer.c                 óœ   •— ‰t           v rt          d‰› d�¦  «        ‚t          | t          ¦  «        st	          d¦  «        ‚| t           ‰<   | S )NzQuantizer 'r—   z!Quantizer must extend HfQuantizer)ra   r^   r˜   r    r|   )rd   r›   s    €rg   Úregister_quantizer_fnz1register_quantizer.<locals>.register_quantizer_fn=  s[   ø€ ØÕ)Ð)Ð)ÝÐE¨4ÐEÐEÐEÑFÔFÐFå˜#�{Ñ+Ô+ð 	AÝÐ?Ñ@Ô@Ð@à'*Õ˜tÑ$Øˆ
rh   rk   )r›   rž   s   ` rg   Úregister_quantizerrŸ   :  s$   ø€ ðð ð ð ð ð !Ð rh   c                 ó|  — t          | dd ¦  «        p$t          |                      d¬¦  «        dd ¦  «        }|d u}|rt                               |¦  «        sd}|s|�L|r!t                               ||¦  «        | _        n|| _        t                               | j        |¬¦  «        }nd }|�Œ|                     ||¬¦  «         |                     |¦  «        }| 	                    | ¦  «        } | 
                    | ¦  «        } t          |j        dd¦  «        s |j        j        }t          |d|¦  «        |d	<   || |fS )
Nrj   T)ÚdecoderF)Úpre_quantized)Ú
device_mapÚweights_onlyÚ
dequantizeÚvalueÚquant)rm   Úget_text_configry   r’   r�   rj   r}   Úvalidate_environmentÚupdate_device_mapÚupdate_tp_planÚupdate_ep_planrT   )	Úconfigrj   r£   r¤   Ú
user_agentÚquantization_params_from_configr¢   Úhf_quantizerrT   s	            rg   Úget_hf_quantizerr±   J  sŠ  € Ý&-¨fÐ6KÈTÑ&RÔ&Rð 'ÕV]Ø×Ò tÐÑ,Ô,Ð.CÀTñWô WÐ#ð 4¸4Ð?€MØð �_×BÒBÐCbÑcÔcð Øˆàð Ð+Ð7Øð 	=Ý)8×)SÒ)SØ/Ð1Dñ*ô *ˆFÔ&Ð&ð *=ˆFÔ&å&×2Ò2ØÔ&Ø'ð 3ñ 
ô 
ˆˆð
 ˆàÐØ×)Ò)Ø!Ø%ð 	*ñ 	
ô 	
ð 	
ð "×3Ò3°JÑ?Ô?ˆ
Ø×,Ò,¨VÑ4Ô4ˆØ×,Ò,¨VÑ4Ô4ˆõ �|Ô7¸ÀuÑMÔMð 	OØ'Ô;ÔHˆLÝ")¨,¸ÀÑ"NÔ"NˆJ�wÑØ˜ Ð+Ð+rh   )]r‡   Úmodels.auto.configuration_autor   Úutilsr   Úutils.quantization_configr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úbaser    Úquantizer_aqlmr!   Úquantizer_auto_roundr"   Úquantizer_awqr#   Úquantizer_bitnetr$   Úquantizer_bnb_4bitr%   Úquantizer_bnb_8bitr&   Úquantizer_compressed_tensorsr'   Úquantizer_eetqr(   Úquantizer_fbgemm_fp8r)   Úquantizer_finegrained_fp8r*   Úquantizer_fouroversixr+   Úquantizer_fp_quantr,   Úquantizer_gemmar-   Úquantizer_gptqr.   Úquantizer_higgsr/   Úquantizer_hqqr0   Úquantizer_metalr1   Úquantizer_mxfp4r2   Úquantizer_quantor3   Úquantizer_quarkr4   Úquantizer_sinqr5   Úquantizer_spqrr6   Úquantizer_torchaor7   Úquantizer_vptqr8   ra   r_   rƒ   Ú
get_loggerrr   r‰   rQ   ry   Ústrrš   rŸ   r±   rk   rh   rg   ú<module>rÐ      sé  ðð €€€à 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð6 Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø /Ð /Ð /Ð /Ð /Ð /Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø FÐ FÐ FÐ FÐ FÐ FØ +Ð +Ð +Ð +Ð +Ð +Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø @Ð @Ð @Ð @Ð @Ð @Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø +Ð +Ð +Ð +Ð +Ð +Ø +Ð +Ð +Ð +Ð +Ð +Ø -Ð -Ð -Ð -Ð -Ð -Ø )Ð )Ð )Ð )Ð )Ð )Ø -Ð -Ð -Ð -Ð -Ð -Ø -Ð -Ð -Ð -Ð -Ð -Ø /Ð /Ð /Ð /Ð /Ð /Ø -Ð -Ð -Ð -Ð -Ð -Ø +Ð +Ð +Ð +Ð +Ð +Ø +Ð +Ð +Ð +Ð +Ð +Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø +Ð +Ð +Ð +Ð +Ð +ðØ	ˆ<ðàÐ+ðð Ð+ðð ˆOð	ð
 ˆOðð Ððð Ððð Ð)ðð Ð"ðð ˆOðð Ððð 
ˆ>ðð Ð6ðð Ð&ðð Ð!ðð  Ðð!ð" ˆOð#ð$ Ø$ð 'Ø$ØØØØð9ð ð Ð ð>$Ø	ˆ9ð$àÐ+ð$ð Ð+ð$ð ˆJð	$ð
 ˆJð$ð ˆJð$ð ˆlð$ð ˆ[ð$ð Ð$ð$ð �ð$ð 
ˆ9ð$ð Ð1ð$ð �/ð$ð ˆ[ð$ð ˆ}ð$ð  Ðð!$ð" ˆJð#$ð$ ØØ!Ø!ØØØØ$ð3$ð $ð $Ð  ð: ØØØØØØØð	#Ð ð 
ˆÔ	˜HÑ	%Ô	%€ð&#ð &#ð &#ð &#ð &#ñ &#ô &#ð &#ðRlð lð lð lð lñ lô lð lð^¨ð ð ð ð ð !˜Sð !ð !ð !ð !ð $,ð $,ð $,ð $,ð $,rh   