o
    ‚›i¼  ã                   @   s:   d dl mZ d dlmZ eƒ rddlZG dd„ deƒZdS )é   )ÚConversionOps)Úis_torch_availableé    Nc                   @   sZ   e Zd Zdd„ Z			ddejdejjdB dee	 dB de	dB de
e	ejf f
d	d
„ZdS )ÚQuarkDeserializec                 C   s
   || _ d S )N)Úhf_quantizer)Úselfr   © r   úa/sda-disk/www/egybert/egybert_env/lib/python3.10/site-packages/transformers/integrations/quark.pyÚ__init__   s   
zQuarkDeserialize.__init__NÚ
input_dictÚmodelÚmissing_keysÚfull_layer_nameÚreturnc                 K   s€   t | ¡ ƒd \}}t|tƒr|d n|}| dd¡d }| dd¡d }	| dd¡d d | d d |	 }
| |¡ |
|iS )Nr   Ú_é   éÿÿÿÿÚ.Ú
_quantizer)ÚtupleÚitemsÚ
isinstanceÚlistÚsplitÚrsplitÚdiscard)r   r   r   r   r   ÚkwargsÚ
target_keyÚvalueÚparamÚquant_stateÚsub_module_stater   r   r	   Úconvert   s   	$
zQuarkDeserialize.convert)NNN)Ú__name__Ú
__module__Ú__qualname__r
   ÚtorchÚTensorÚnnÚModuler   ÚstrÚdictr"   r   r   r   r	   r      s     ûþ
ý
üûùr   )Úcore_model_loadingr   Úutilsr   r&   r   r   r   r   r	   Ú<module>   s
   