§
    Ý˜ºhc  ã                   óJ  — U d dl Z d dlmZ d dlmZm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 d	Zd
 edd¬¦  «        id
 edd¬¦  «        i edd¬¦  «        ej         edd¬¦  «        idœd
 edd¬¦  «        iej         edd¬¦  «        ej         edd¬¦  «        iej         edd¬¦  «        idœdœZeeeeeef         ef         f         ed<    ee¦  «         n## e$ r dZd„ Z G d„ d¦  «        Zd„ Zd„ ZY nw xY wd ee         d!efd"„Zd ed!dfd#„Zg d$¢ZdS )%é    N)Úpartial)ÚOptionalÚUnioné   )Úlazy_import_flash_attentioné   )Úflash_attention_forward)ÚDeviceÚLayerRepositoryÚModeÚ
get_kernelÚregister_kernel_mappingÚreplace_kernel_forward_from_hubÚuse_kernel_forward_from_hubTÚcudaz!kernels-community/deformable-detrÚMultiScaleDeformableAttention)Úrepo_idÚ
layer_namezkernels-community/moeÚLlama4TextMoezkernels-community/liger_kernelsÚLigerRMSNorm)r   Úrocmzmedmekk/triton-llama-mlpÚTritonLlamaMLPzkernels-community/megablocksÚMegaBlocksMoeMLPzahadnagy/megablocks)r   r   ÚRMSNormÚMLPr   Ú_KERNEL_MAPPINGFc                  ó   — d„ }|S )Nc                 ó   — | S )N© )Úclss    úm/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/transformers/integrations/hub_kernels.pyÚ	decoratorz.use_kernel_forward_from_hub.<locals>.decoratora   s   € ØˆJó    r   )ÚargsÚkwargsr"   s      r!   r   r   `   s   € ð	ð 	ð 	ð Ðr#   c                   ó   — e Zd Zd„ ZdS )r   c                 ó    — t          d¦  «        ‚)NzNLayerRepository requires `kernels` to be installed. Run `pip install kernels`.©ÚRuntimeError)Úselfr$   r%   s      r!   Ú__init__zLayerRepository.__init__g   s   € ÝÐoÑpÔpÐpr#   N)Ú__name__Ú
__module__Ú__qualname__r+   r   r#   r!   r   r   f   s(   € € € € € ð	qð 	qð 	qð 	qð 	qr#   r   c                  ó    — t          d¦  «        ‚)Nz^replace_kernel_forward_from_hub requires `kernels` to be installed. Run `pip install kernels`.r(   ©r$   r%   s     r!   r   r   j   s   € ÝØlñ
ô 
ð 	
r#   c                  ó    — t          d¦  «        ‚)NzVregister_kernel_mapping requires `kernels` to be installed. Run `pip install kernels`.r(   r0   s     r!   r   r   o   s   € ÝÐsÑtÔtÐtr#   Úattn_implementationÚreturnc                 ó8   — | duot          j        d| ¦  «        duS )zJCheck whether `attn_implementation` matches a kernel pattern from the hub.Nz'^[^/:]+/[^/:]+(?:@[^/:]+)?(?::[^/:]+)?$)ÚreÚsearch)r2   s    r!   Ú	is_kernelr7   s   s.   € ð 	 4Ð'ð 	cÝŒIÐ@ÐBUÑVÔVÐ^bÐbðr#   c                 ód  — t          | ¦  «        sdS t          st          d¦  «        ‚ddlm} ddlm} d}| }d| v r-|                      d¦  «        \  }}|                     |¦  «        }d|v r-|                     d¦  «        \  }}| 	                    ¦   «         }n|}d}| 	                    ¦   «         }| 
                    d¦  «        \  }}}| 	                    ¦   «         }|r| 	                    ¦   «         nd}	 t          ||¬	¦  «        }	n(# t          $ r}
t          d
|› d|
› d�¦  «        ‚d}
~
ww xY wt          |	d¦  «        r*|€t          }t!          ||	¬¦  «        }t#          |	¦  «         n|�t%          |	|¦  «        }|                     | |¦  «         |                     | |d         ¦  «         dS )zALoad and register the kernel associated to `attn_implementation`.NzI`kernels` is not installed. Please install it with `pip install kernels`.r   )ÚALL_MASK_ATTENTION_FUNCTIONS)ÚALL_ATTENTION_FUNCTIONSú|ú:ú@)Úrevisionz,An error occured while trying to load from 'z': ú.Úflash_attn_varlen_func)ÚimplementationÚflash_attention_2)r7   Ú_kernels_availableÚImportErrorÚmasking_utilsr9   Úmodeling_utilsr:   ÚsplitÚgetÚstripÚ	partitionr   Ú	ExceptionÚ
ValueErrorÚhasattrr	   r   r   ÚgetattrÚregister)r2   r9   r:   Úattention_wrapperÚactual_attn_namer   Úkernel_nameÚ_ÚrevÚkernelÚeÚkernel_functions               r!   Úload_and_register_kernelrX   {   s  € åÐ(Ñ)Ô)ð ØˆÝð gÝÐeÑfÔfÐfð =Ð<Ð<Ð<Ð<Ð<Ø8Ð8Ð8Ð8Ð8Ð8àÐà*ÐØ
Ð!Ð!Ð!Ø.A×.GÒ.GÈÑ.LÔ.LÑ+ÐÐ+à3×7Ò7Ð8IÑJÔJÐà
ÐÐÐØ/×5Ò5°cÑ:Ô:Ñˆ�Ø!×'Ò'Ñ)Ô)ˆˆà"ˆØˆØ�mŠm‰oŒo€Gà×'Ò'¨Ñ,Ô,�O€GˆQ�Ø�mŠm‰oŒo€GØÐ
&ˆ#�)Š)‰+Œ+ˆ+ $€CðZÝ˜G¨cÐ2Ñ2Ô2ˆˆøÝð Zð Zð ZÝÐXÈÐXÐXÐTUÐXÐXÐXÑYÔYÐYøøøøðZøøøõ ˆvÐ/Ñ0Ô0ð 7ØÐ$Ý 7ÐÝ!Ð"3ÀFÐKÑKÔKˆÝ# FÑ+Ô+Ð+Ð+Ø	Ð	 Ý! &¨+Ñ6Ô6ˆà×$Ò$Ð%8¸/ÑJÔJÐJØ ×)Ò)Ð*=Ð?[Ð\oÔ?pÑqÔqÐqÐqÐqs   Ã8D
 Ä

D/ÄD*Ä*D/)r   r   r   r   )r5   Ú	functoolsr   Útypingr   r   Úmodeling_flash_attention_utilsr   Úflash_attentionr	   Úkernelsr
   r   r   r   r   r   r   rC   Ú	INFERENCEÚTRAININGr   ÚdictÚstrÚ__annotations__rD   Úboolr7   rX   Ú__all__r   r#   r!   ú<module>re      s:  ðð 
€	€	€	€	Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "à HÐ HÐ HÐ HÐ HÐ HØ 4Ð 4Ð 4Ð 4Ð 4Ð 4ðZuðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ðð �O�OØ;Ø:ðñ ô ð*
ð �O�Oà/Ø*ðñ ô ð
ð $�OØ9Ø)ðñ ô ð ”  Ø=Ø-ð!ñ !ô !ðð
ð 
ð �O�OØ2Ø+ðñ ô ð
ð ”˜˜Ø:Ø1ð ñ  ô  ð ”  Ø:Ø1ð!ñ !ô !ð	ð ”  Ø1Ø1ð!ñ !ô !ðð
ð 
ðE4Mð 4M€O�T˜#˜t E¨&°#¨+Ô$6¸Ð$GÔHÐHÔIð 4ð 4ñ 4ðl Ð˜OÑ,Ô,Ð,Ð,øàð uð uð uØÐðð ð ðqð qð qð qð qñ qô qð qð
ð 
ð 
ð
uð uð uð uð uð)uøøøð0 8¨C¤=ð °Tð ð ð ð ð.r°#ð .r¸$ð .rð .rð .rð .rðbð ð €€€s   ¡CC& Ã&DÄD