
    qi                     Z    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y)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} |xs i }t	        |       }t        |t              r |dd|i| yt        j                  d       y)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       Q/opt/pipecat/venv/lib/python3.12/site-packages/transformers/integrations/liger.pyapply_liger_kernelr      s^     %&@
 	

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