o
    ‚›iÜ  ã                   @   sB   d Z ddlmZ ddlmZ ddlmZmZ e e	¡Z
dd„ ZdS )z’
Liger Kernel integration for applying optimized Triton kernels to transformer models.

See https://github.com/linkedin/Liger-Kernel for details.
é   )ÚPreTrainedModel)Úunwrap_peft_model)Úis_liger_kernel_availableÚloggingc                 C   sX   t ƒ stdƒ‚ddlm} |pi }t| ƒ}t|tƒr%|dd|i|¤Ž dS t d¡ dS )al  
    Apply Liger Kernel optimizations to a model instance.

    Liger Kernel provides optimized Triton kernels for common transformer operations.
    This function patches the model in-place with those kernels.

    Args:
        model: The model to patch. Must be a `PreTrainedModel` or a PEFT wrapper around one.
        kernel_config: Kernel configuration.
    z‡You have set `use_liger_kernel` to `True` but liger-kernel >= 0.3.0 is not available. Please install it with `pip install liger-kernel`é    )Ú_apply_liger_kernel_to_instanceÚmodelzRThe model is not an instance of PreTrainedModel. No liger kernels will be applied.N© )	r   ÚImportErrorÚliger_kernel.transformersr   r   Ú
isinstancer   ÚloggerÚwarning)r   Úkernel_configr   Ú
base_modelr	   r	   úa/sda-disk/www/egybert/egybert_env/lib/python3.10/site-packages/transformers/integrations/liger.pyÚapply_liger_kernel   s   ÿ
r   N)Ú__doc__Úmodeling_utilsr   Útrainer_utilsr   Úutilsr   r   Ú
get_loggerÚ__name__r   r   r	   r	   r	   r   Ú<module>   s   
