ó
    pyüiõ/  ã                   ó$	  • S SK r S SKrS SKJr  S SKJr  S SKr\R                  R                  R                  \R                  R                  R                  \R                  R                  R                  \R                  R                  R                  \R                  R                  R                  \R                  R                  R                  \R                  R                  R                  \R                  R                  R                   \R                  R                  R"                  \R                  R                  R$                  \R                  R                  R&                  \R                  R                  R(                  \R                  R                  R*                  \R                  R                  R,                  S.r S*S\R0                  S\S\S\R4                  S-  S	\R0                  4
S
 jjr	 S*S\R0                  S\S\S\R4                  S-  S	\R0                  4
S jjr
S\R0                  S\S	\R0                  4S jrS\R0                  S	\R0                  4S jrS\R0                  S	\R0                  4S jrS\R0                  S	\R0                  4S jrS+S\R0                  S\S	\R0                  4S jjrS,S\R0                  S\S\R4                  S-  S	\R0                  4S jjrS,S\R0                  S\S\R4                  S-  S	\R0                  4S jjr    S-S\R0                  S\S\S\S\R4                  S-  S	\R0                  4S jjr    S-S\R0                  S\S\S\S\R4                  S-  S	\R0                  4S jjr     S.S\R0                  S\S\S\S\S\R4                  S-  S	\R0                  4S jjr  S/S\R0                  S\S\R4                  S-  S	\R0                  4S jjr S0S\R0                  S\S\S\R4                  S-  S	\R0                  4
S jjrS\R0                  S \R0                  S	\R0                  4S! jrS1S" jrS# rS$ r S%r!\S& 5       r"\S' 5       r#\S( 5       r$\S) 5       r%g)2é    N)Údefaultdict)Úcontextmanager)Úuniform_Únormal_Ú	constant_Úones_Úzeros_Úeye_Údirac_Úxavier_uniform_Úxavier_normal_Úkaiming_uniform_Úkaiming_normal_Útrunc_normal_Úorthogonal_Úsparse_ÚtensorÚaÚbÚ	generatorÚreturnc                 óF   • [        U SS5      (       d  [        S   " XX#S9$ U $ )NÚ_is_hf_initializedFr   )r   r   r   ©ÚgetattrÚTORCH_INIT_FUNCTIONS)r   r   r   r   s       ÚX/home/mande/repo/quber/.venv/lib/python3.13/site-packages/transformers/initialization.pyr   r   *   s+   € ô �6Ð/°×7Ñ7Ü# JÒ/°¸qÑVÐVØ€Mó    ÚmeanÚstdc                 óF   • [        U SS5      (       d  [        S   " XX#S9$ U $ )Nr   Fr   )r   r    r   r   )r   r   r    r   s       r   r   r   2   s+   € ô �6Ð/°×7Ñ7Ü# IÒ.¨vÀcÑ_Ð_Ø€Mr   Úvalc                 óD   • [        U SS5      (       d  [        S   " XS9$ U $ )Nr   Fr   )r"   r   )r   r"   s     r   r   r   :   s'   € Ü�6Ð/°×7Ñ7Ü# KÒ0°ÑAÐAØ€Mr   c                 óH   • [        U SS5      (       d  [        S   " U 5      $ U $ )Nr   Fr   r   ©r   s    r   r   r   @   s'   € Ü�6Ð/°×7Ñ7Ü# GÒ,¨VÓ4Ð4Ø€Mr   c                 óH   • [        U SS5      (       d  [        S   " U 5      $ U $ )Nr   Fr	   r   r%   s    r   r	   r	   F   s'   € Ü�6Ð/°×7Ñ7Ü# HÒ-¨fÓ5Ð5Ø€Mr   c                 óH   • [        U SS5      (       d  [        S   " U 5      $ U $ )Nr   Fr
   r   r%   s    r   r
   r
   L   s'   € Ü�6Ð/°×7Ñ7Ü# FÒ+¨FÓ3Ð3Ø€Mr   Úgroupsc                 óD   • [        U SS5      (       d  [        S   " XS9$ U $ )Nr   Fr   )r(   r   )r   r(   s     r   r   r   R   s'   € Ü�6Ð/°×7Ñ7Ü# HÒ-¨fÑDÐDØ€Mr   Úgainc                 óF   • [        U SS5      (       d  [        S   " XUS9$ U $ )Nr   Fr   ©r*   r   r   ©r   r*   r   s      r   r   r   X   s+   € Ü�6Ð/°×7Ñ7Ü#Ð$5Ò6°vÐT]Ñ^Ð^Ø€Mr   c                 óF   • [        U SS5      (       d  [        S   " XUS9$ U $ )Nr   Fr   r,   r   r-   s      r   r   r   ^   s+   € Ü�6Ð/°×7Ñ7Ü#Ð$4Ò5°fÐS\Ñ]Ð]Ø€Mr   ÚmodeÚnonlinearityc                 óH   • [        U SS5      (       d  [        S   " XX#US9$ U $ )Nr   Fr   ©r   r/   r0   r   r   ©r   r   r/   r0   r   s        r   r   r   d   s5   € ô �6Ð/°×7Ñ7Ü#Ð$6Ò7Ø˜dÈñ
ð 	
ð €Mr   c                 óH   • [        U SS5      (       d  [        S   " XX#US9$ U $ )Nr   Fr   r2   r   r3   s        r   r   r   r   s5   € ô �6Ð/°×7Ñ7Ü#Ð$5Ò6Ø˜dÈñ
ð 	
ð €Mr   c           	      óH   • [        U SS5      (       d  [        S   " XX#XES9$ U $ )Nr   Fr   )r   r    r   r   r   r   )r   r   r    r   r   r   s         r   r   r   €   s.   € ô �6Ð/°×7Ñ7Ü# OÒ4°VÈCÐXYÑoÐoØ€Mr   c                 óF   • [        U SS5      (       d  [        S   " XUS9$ U $ )Nr   Fr   r,   r   r-   s      r   r   r   �   s,   € ô
 �6Ð/°×7Ñ7Ü# MÒ2°6ÐPYÑZÐZØ€Mr   Úsparsityc                 óF   • [        U SS5      (       d  [        S   " XX#S9$ U $ )Nr   Fr   )r7   r    r   r   )r   r7   r    r   s       r   r   r   —   s+   € ô �6Ð/°×7Ñ7Ü# IÒ.¨vÈcÑgÐgØ€Mr   Úotherc                 ó®   • [        U SS5      (       d0  [        R                  " 5          U R                  U5      sS S S 5        $ U $ ! , (       d  f       U $ = f)Nr   F)r   ÚtorchÚno_gradÚcopy_)r   r9   s     r   r=   r=   Ÿ   s@   € Ü�6Ð/°×7Ñ7Ü�]Š]�_Ø—<‘< Ó&÷ ‰_à€M÷ Œ_à€Mús   ¨AÁ
Ac                 ó°  • [         R                  R                  R                  U 5      u  p4US:X  a  UnOUS:X  a  UnOUS:X  a  X4-   S-  nSW-  nUS:X  a"  [	        U [
        R                  " U5      S-  S9  g US	:X  a  [        U [
        R                  " U5      S9  g US
:X  a'  [
        R                  " SU-  5      n[        X* U5        g [        SU 35      e)NÚfan_inÚfan_outÚfan_avgé   ç      ð?Útruncated_normalg�©Û¶ä%ì?)r    ÚnormalÚuniformé   zinvalid distribution )
r;   ÚnnÚinitÚ_calculate_fan_in_and_fan_outr   ÚmathÚsqrtr   r   Ú
ValueError)r   r/   Údistributionr?   r@   ÚdenomÚvarianceÚbounds           r   Ú_variance_scalingrR   ¦   sÊ   € Ü—h‘h—m‘m×AÑAÀ&ÓI�O€FØˆxÓØ‰Ø	�Ó	Ø‰Ø	�Ó	ØÑ! QÑ&ˆà�U‰{€HàÐ)Ó)Ü�f¤$§)¢)¨HÓ"5Ð8KÑ"KÓLØ	˜Ó	!Ü�œDŸIšI hÓ/Ó0Ø	˜Ó	"Ü—	’	˜!˜h™,Ó'ˆÜ�˜ Õ'äÐ0°°Ð?Ó@Ð@r   c                 ó@   • [        U SS5      (       d  [        U SSS9  U $ )Nr   Fr?   rD   ©r/   rN   ©r   rR   r%   s    r   Úlecun_normal_rV   ¼   s$   € Ü�6Ð/°×7Ñ7Ü˜& xÐ>PÒQØ€Mr   c                 ó@   • [        U SS5      (       d  [        U SSS9  U $ )Nr   Fr?   rE   rT   rU   r%   s    r   Údefault_flax_embed_init_rX   Â   s#   € Ü�6Ð/°×7Ñ7Ü˜& x¸hÒGØ€Mr   )
ztorch.nn.initztorch.nn.modules.activationztorch.nn.modules.transformerztorch.nn.modules.linearztorch.nn.modules.lossztorch.nn.modules.batchnormztorch.nn.modules.convztorch.nn.modules.normalizationztorch.nn.modules.rnnztorch.nn.modules.sparsec            	   #   óJ  #   • [        [        5      n  [         H€  nU[        R                  ;   d  M  [        R                  U   n[
        R                  5        H<  n[        X#5      (       d  M  [        X#5      X   U'   [        X#[        5       U   5        M>     M‚     Sv •  U R                  5        H*  u  p$UR                  5        H  u  p5[        X#U5        M     M,     g! U R                  5        H*  u  p$UR                  5        H  u  p5[        X#U5        M     M,     f = f7f)av  
Guard the `torch.nn.init` primitive functions to behave exactly like the functions in this file, i.e. be
protected against the `_is_hf_initialized` flag to avoid re-init if the param was already loaded.

Usually, all models are using the init from `transformers` which are already guarded, but just to make extra sure
and for remote code, we also use this context manager.
N)r   ÚdictÚTORCH_MODULES_TO_PATCHÚsysÚmodulesr   ÚkeysÚhasattrr   ÚsetattrÚglobalsÚitems)Ú	originalsÚmodule_nameÚmoduleÚ	func_nameÚ	functionsÚfuncs         r   Úguard_torch_init_functionsri   Û   sä   é € ô œDÓ!€Ið1ç1ˆKØœcŸk™kÕ)ÜŸ™ [Ñ1�Ü!5×!:Ñ!:Ö!<�IÜ˜v×1Ó1Ü7>¸vÓ7Q˜	Ñ)¨)Ñ4Ü ´7³9¸YÑ3GÖHó "=ñ 2ó 	ð "+§¡Ö!2ÑˆFØ#,§?¡?Ö#4‘�	Ü˜¨4Ö0ó $5ò "3ø §¡Ö!2ÑˆFØ#,§?¡?Ö#4‘�	Ü˜¨4Ö0ó $5ò "3üs(   ‚D#“C  ²8C  Á.3C  Â!?D#Ã A D Ä D#c            	   #   ó„  #   • SSK Jn   S n[        [        5      n [         Hu  nU[
        R                  ;   d  M  [
        R                  U   n[        R                  5        H1  n[        XE5      (       d  M  [        XE5      X$   U'   [        XEU5        M3     Mw     U R                  nXl        Sv •  UR                  5        H*  u  pGUR                  5        H  u  pX[        XEU5        M     M,     X`l        g! UR                  5        H*  u  pGUR                  5        H  u  pX[        XEU5        M     M,     WU l        f = f7f)aS  
Disable weight initialization both at the torch-level, and at the transformers-level (`init_weights`).
This is used to speed-up initializing an empty model with deepspeed, as we do not initialize the model on meta device
with deepspeed, but we still don't need to run expensive weight initializations as we are loading params afterwards.
é   ©ÚPreTrainedModelc                  ó   • g ©N© ©ÚargsÚkwargss     r   Ú
empty_funcÚ#no_init_weights.<locals>.empty_funcÿ   ó   € Ør   N)Úmodeling_utilsrm   r   rZ   r[   r\   r]   r   r^   r_   r   r`   Úinit_weightsrb   )	rm   rt   rc   rd   re   rf   Úoriginal_init_weightsrg   rh   s	            r   Úno_init_weightsrz   ö   s  é € õ 0òô œDÓ!€Ið=ç1ˆKØœcŸk™kÕ)ÜŸ™ [Ñ1�Ü!5×!:Ñ!:Ö!<�IÜ˜v×1Ó1Ü7>¸vÓ7Q˜	Ñ)¨)Ñ4Ü °:Ö>ó "=ñ 2ð !0× <Ñ <ÐØ'1Ô$ãð "+§¡Ö!2ÑˆFØ#,§?¡?Ö#4‘�	Ü˜¨4Ö0ó $5ñ "3ð (=Õ$øð	 "+§¡Ö!2ÑˆFØ#,§?¡?Ö#4‘�	Ü˜¨4Ö0ó $5ñ "3ð (=ˆÕ$üs)   ‚E œC6 »8C6 Á7:C6 Â1AE Ã6AD=Ä=E c               #   óp   #   • SSK Jn   S n U R                  nXl        Sv •  X l        g! WU l        f = f7f)a  
Disable weight tying during loading with `from_pretrained`. This is needed as we want to have access to ALL
weights in the state_dict during `from_pretrained`, and otherwise tying them would remove them from it, as it's
called in `post_init` when instantiating.
rk   rl   c                  ó   • g ro   rp   rq   s     r   rt   Ú"no_tie_weights.<locals>.empty_func$  rv   r   N)rw   rm   Útie_weights)rm   rt   Úoriginal_tie_weightss      r   Úno_tie_weightsr€     s:   é € õ 0òð;Ø.×:Ñ:ÐØ&0Ô#ãð ';Õ#øÐ&:ˆÕ#üs   ‚
6�* £6ª	3³6c               #   ó�   ^#   • [         R                  mU4S jn U [         l         Sv •  T[         l        g! T[         l        f = f7f)av  
During meta-device model initialisation, ``torch.linspace`` produces meta
tensors that have no data.  Custom models loaded from the Hub (remote code)
often call ``.item()`` on these tensors to compute scalar hyperparameters
(e.g. stochastic-depth / drop-path schedules).  Native transformers models
already pass ``device="cpu"`` explicitly for such calls (see e.g.
``modeling_swin.py``, ``modeling_pvt_v2.py``), but remote-code models
written before v5 do not.

This context manager patches ``torch.linspace`` to default to
``device="cpu"`` when no explicit device is requested, matching the best
practice already used throughout transformers.  Calls that supply an
explicit ``device`` argument (e.g. ``device=self.logits.device``) are left
untouched.  ``torch.arange`` is intentionally NOT patched because it is
used in RoPE computations where the device must match model parameters.
c                  ó8   >• UR                  SS5        T" U 0 UD6$ )NÚdeviceÚcpu)Ú
setdefault)rr   rs   Úoriginal_linspaces     €r   Ú_safe_linspaceÚ5meta_device_safe_creation_ops.<locals>._safe_linspaceE  s#   ø€ Ø×Ñ˜( EÔ*Ù  $Ð1¨&Ñ1Ð1r   N)r;   Úlinspace)r‡   r†   s    @r   Úmeta_device_safe_creation_opsrŠ   1  s7   øé € ô$ Ÿ™Ðõ2ð $„E„Nð+Ûà*Œ�øÐ*Œ�üs   ƒ"A¦6 ªA¶AÁA)ç        rC   N)rk   )rC   N)r   r?   Ú
leaky_reluN)r‹   rC   g       Àg       @N)rk   N)g{®Gáz„?N)r?   rE   )&rK   r\   Úcollectionsr   Ú
contextlibr   r;   rH   rI   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   ÚTensorÚfloatÚ	GeneratorÚintÚstrr=   rR   rV   rX   r[   ri   rz   r€   rŠ   rp   r   r   Ú<module>r”      sÓ  ðó Û 
Ý #Ý %ã ð —‘—‘×&Ñ&Ø�x‰x�}‰}×$Ñ$Ø—‘—‘×(Ñ(Ø�X‰X�]‰]× Ñ Ø�h‰h�m‰m×"Ñ"Ø�H‰H�M‰M×ÑØ�h‰h�m‰m×"Ñ"Ø—x‘x—}‘}×4Ñ4Ø—h‘h—m‘m×2Ñ2ØŸ™Ÿ™×6Ñ6Ø—x‘x—}‘}×4Ñ4Ø—X‘X—]‘]×0Ñ0Ø—8‘8—=‘=×,Ñ,Ø�x‰x�}‰}×$Ñ$ñÐ ð& _cñØ�L‰LðØ"ðØ-2ðØEJÇ_Á_ÐW[ÑE[ðà
‡\�\õð dhñØ�L‰LðØ %ðØ27ðØJOÏ/É/Ð\`ÑJ`ðà
‡\�\õð�e—l‘lð ¨ð °5·<±<ô ð�%—,‘,ð  5§<¡<ô ð�5—<‘<ð  E§L¡Lô ð�—‘ð  %§,¡,ô ñ�5—<‘<ð ¨ð °U·\±\õ ñ˜EŸL™Lð °ð ÈÏÉÐZ^ÑH^ð Ðjo×jvÑjvõ ñ˜5Ÿ<™<ð ¨uð ÀuÇÁÐY]ÑG]ð Ðin×iuÑiuõ ð ØØ$Ø(,ñØ�L‰Lðàðð ðð ð	ð
 �‰ Ñ%ðð ‡\�\õð  ØØ$Ø(,ñØ�L‰Lðàðð ðð ð	ð
 �‰ Ñ%ðð ‡\�\õð  ØØØØ(,ñ
Ø�L‰Lð
à
ð
ð 
ð
ð ð	
ð
 ð
ð �‰ Ñ%ð
ð ‡\�\õ
ð Ø(,ñØ�L‰Lðà
ðð �‰ Ñ%ðð ‡\�\õ	ð cgñØ�L‰LðØ$)ðØ05ðØINÏÉÐ[_ÑI_ðà
‡\�\õð�%—,‘,ð  u§|¡|ð ¸¿¹ô ôAò,òðÐ ð ñ1ó ð1ð4 ñ!=ó ð!=ðH ñ;ó ð;ð* ñ+ó ñ+r   