
    bi                     X    d Z ddlmZ ddlmZ ddlmZmZ  ej        e	          Z
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                     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.
    zYou 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_models       Z/root/projects/butler/venv/lib/python3.11/site-packages/transformers/integrations/liger.pyapply_liger_kernelr      s     %&& 
@
 
 	

 JIIIII!'RM"5))J*o.. m''JJjJMJJJJJklllll    N)__doc__modeling_utilsr   trainer_utilsr   utilsr   r   
get_logger__name__r   r   r   r   r   <module>r      s     - , , , , , - - - - - - 6 6 6 6 6 6 6 6 
	H	%	%m m m m mr   