§
    ‚Štjõ/  ã                   óÖ  — d dl Z d dlZd dlmZ d dlmZ d dlZej        j        j	        ej        j        j
        ej        j        j        ej        j        j        ej        j        j        ej        j        j        ej        j        j        ej        j        j        ej        j        j        ej        j        j        ej        j        j        ej        j        j        ej        j        j        ej        j        j        dœZ	 d3dej        ded	ed
ej        dz  dej        f
d„Z		 d3dej        deded
ej        dz  dej        f
d„Z
dej        dedej        fd„Zdej        dej        fd„Zdej        dej        fd„Zdej        dej        fd„Zd4dej        dedej        fd„Zd5dej        ded
ej        dz  dej        fd„Zd5dej        ded
ej        dz  dej        fd„Z	 	 	 	 d6dej        dededed
ej        dz  dej        fd„Z	 	 	 	 d6dej        dededed
ej        dz  dej        fd „Z	 	 	 	 	 d7dej        dededed	ed
ej        dz  dej        fd#„Z	 	 d8dej        ded
ej        dz  dej        fd$„Z	 d9dej        d&eded
ej        dz  dej        f
d'„Zdej        d(ej        dej        fd)„Zd:d+„Zd,„ Zd-„ Z d.Z!ed/„ ¦   «         Z"ed0„ ¦   «         Z#ed1„ ¦   «         Z$ed2„ ¦   «         Z%dS );é    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                 óZ   — t          | dd¦  «        st          d         | |||¬¦  «        S | S )NÚ_is_hf_initializedFr   )r   r   r   ©ÚgetattrÚTORCH_INIT_FUNCTIONS)r   r   r   r   s       úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/initialization.pyr   r   *   s;   € õ �6Ð/°Ñ7Ô7ð WÝ# JÔ/°¸!¸qÈIÐVÑVÔVÐVØ€Mó    ÚmeanÚstdc                 óZ   — t          | dd¦  «        st          d         | |||¬¦  «        S | S )Nr   Fr   )r!   r"   r   r   )r   r!   r"   r   s       r   r   r   2   s<   € õ �6Ð/°Ñ7Ô7ð `Ý# IÔ.¨v¸DÀcÐU^Ð_Ñ_Ô_Ð_Ø€Mr    Úvalc                 óV   — t          | dd¦  «        st          d         | |¬¦  «        S | S )Nr   Fr   )r$   r   )r   r$   s     r   r   r   :   s5   € Ý�6Ð/°Ñ7Ô7ð BÝ# KÔ0°¸SÐAÑAÔAÐAØ€Mr    c                 óR   — t          | dd¦  «        st          d         | ¦  «        S | S )Nr   Fr   r   ©r   s    r   r   r   @   s/   € Ý�6Ð/°Ñ7Ô7ð 5Ý# GÔ,¨VÑ4Ô4Ð4Ø€Mr    c                 óR   — t          | dd¦  «        st          d         | ¦  «        S | S )Nr   Fr	   r   r'   s    r   r	   r	   F   s/   € Ý�6Ð/°Ñ7Ô7ð 6Ý# HÔ-¨fÑ5Ô5Ð5Ø€Mr    c                 óR   — t          | dd¦  «        st          d         | ¦  «        S | S )Nr   Fr
   r   r'   s    r   r
   r
   L   s/   € Ý�6Ð/°Ñ7Ô7ð 4Ý# FÔ+¨FÑ3Ô3Ð3Ø€Mr    é   Úgroupsc                 óV   — t          | dd¦  «        st          d         | |¬¦  «        S | S )Nr   Fr   )r+   r   )r   r+   s     r   r   r   R   s5   € Ý�6Ð/°Ñ7Ô7ð EÝ# HÔ-¨f¸VÐDÑDÔDÐDØ€Mr    Úgainc                 óX   — t          | dd¦  «        st          d         | ||¬¦  «        S | S )Nr   Fr   ©r-   r   r   ©r   r-   r   s      r   r   r   X   s9   € Ý�6Ð/°Ñ7Ô7ð _Ý#Ð$5Ô6°vÀDÐT]Ð^Ñ^Ô^Ð^Ø€Mr    c                 óX   — t          | dd¦  «        st          d         | ||¬¦  «        S | S )Nr   Fr   r/   r   r0   s      r   r   r   ^   s9   € Ý�6Ð/°Ñ7Ô7ð ^Ý#Ð$4Ô5°fÀ4ÐS\Ð]Ñ]Ô]Ð]Ø€Mr    Úfan_inÚ
leaky_reluÚmodeÚnonlinearityc                 ó\   — t          | dd¦  «        st          d         | ||||¬¦  «        S | S )Nr   Fr   ©r   r4   r5   r   r   ©r   r   r4   r5   r   s        r   r   r   d   sH   € õ �6Ð/°Ñ7Ô7ð 
Ý#Ð$6Ô7Ø�a˜d°Èð
ñ 
ô 
ð 	
ð €Mr    c                 ó\   — t          | dd¦  «        st          d         | ||||¬¦  «        S | S )Nr   Fr   r7   r   r8   s        r   r   r   r   sH   € õ �6Ð/°Ñ7Ô7ð 
Ý#Ð$5Ô6Ø�a˜d°Èð
ñ 
ô 
ð 	
ð €Mr    ç       Àç       @c                 ó^   — t          | dd¦  «        st          d         | |||||¬¦  «        S | S )Nr   Fr   )r!   r"   r   r   r   r   )r   r!   r"   r   r   r   s         r   r   r   €   sB   € õ �6Ð/°Ñ7Ô7ð pÝ# OÔ4°VÀ$ÈCÐSTÐXYÐenÐoÑoÔoÐoØ€Mr    c                 óX   — t          | dd¦  «        st          d         | ||¬¦  «        S | S )Nr   Fr   r/   r   r0   s      r   r   r   �   s:   € õ
 �6Ð/°Ñ7Ô7ð [Ý# MÔ2°6ÀÐPYÐZÑZÔZÐZØ€Mr    ç{®Gáz„?Úsparsityc                 óZ   — t          | dd¦  «        st          d         | |||¬¦  «        S | S )Nr   Fr   )r?   r"   r   r   )r   r?   r"   r   s       r   r   r   —   s<   € õ �6Ð/°Ñ7Ô7ð hÝ# IÔ.¨vÀÈcÐ]fÐgÑgÔgÐgØ€Mr    Úotherc                 ó¨   — t          | dd¦  «        s@t          j        ¦   «         5  |                      |¦  «        cd d d ¦  «         S # 1 swxY w Y   | S )Nr   F)r   ÚtorchÚno_gradÚcopy_)r   rA   s     r   rE   rE   Ÿ   s‘   € Ý�6Ð/°Ñ7Ô7ð 'ÝŒ]‰_Œ_ð 	'ð 	'Ø—<’< Ñ&Ô&ð	'ð 	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'à€Ms   ¥AÁAÁAÚnormalc                 óÒ  — t           j        j                             | ¦  «        \  }}|dk    r|}n|dk    r|}n|dk    r||z   dz  }d|z  }|dk    r(t	          | t          j        |¦  «        dz  ¬¦  «         d S |d	k    r%t          | t          j        |¦  «        ¬¦  «         d S |d
k    r+t          j        d|z  ¦  «        }t          | | |¦  «         d S t          d|› �¦  «        ‚)Nr2   Úfan_outÚfan_avgé   r   Útruncated_normalg�©Û¶ä%ì?)r"   rF   Úuniformé   zinvalid distribution )
rC   ÚnnÚinitÚ_calculate_fan_in_and_fan_outr   ÚmathÚsqrtr   r   Ú
ValueError)r   r4   Údistributionr2   rH   ÚdenomÚvarianceÚbounds           r   Ú_variance_scalingrX   ¦   s  € Ý”h”m×AÒAÀ&ÑIÔI�O€FˆGØˆxÒÐØˆˆØ	�Ò	Ð	ØˆˆØ	�Ò	Ð	Ø˜'Ñ! QÑ&ˆà�U‰{€HàÐ)Ò)Ð)Ý�f¥$¤)¨HÑ"5Ô"5Ð8KÑ"KÐLÑLÔLÐLÐLÐLØ	˜Ò	!Ð	!Ý��DœI hÑ/Ô/Ð0Ñ0Ô0Ð0Ð0Ð0Ø	˜Ò	"Ð	"Ý”	˜!˜h™,Ñ'Ô'ˆÝ�˜%˜ Ñ'Ô'Ð'Ð'Ð'åÐ?°Ð?Ð?Ñ@Ô@Ð@r    c                 óL   — t          | dd¦  «        st          | dd¬¦  «         | S )Nr   Fr2   rK   ©r4   rT   ©r   rX   r'   s    r   Úlecun_normal_r\   ¼   s3   € Ý�6Ð/°Ñ7Ô7ð RÝ˜& xÐ>PÐQÑQÔQÐQØ€Mr    c                 óL   — t          | dd¦  «        st          | dd¬¦  «         | S )Nr   Fr2   rF   rZ   r[   r'   s    r   Údefault_flax_embed_init_r^   Â   s2   € Ý�6Ð/°Ñ7Ô7ð HÝ˜& x¸hÐGÑGÔGÐ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            	   #   ó~  K  — t          t          ¦  «        } 	 t          D ]Š}|t          j        v rzt          j        |         }t
                               ¦   «         D ]N}t          ||¦  «        r<t          ||¦  «        | |         |<   t          ||t          ¦   «         |         ¦  «         ŒOŒ‹dV — |                      ¦   «         D ]0\  }}|                     ¦   «         D ]\  }}t          |||¦  «         ŒŒ1dS # |                      ¦   «         D ]0\  }}|                     ¦   «         D ]\  }}t          |||¦  «         ŒŒ1w xY w)aŠ  
    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_functionsro   Û   sq  è è € õ �DÑ!Ô!€Ið1å1ð 	Ið 	IˆKØ�cœkÐ)Ð)Ýœ [Ô1�Ý!5×!:Ò!:Ñ!<Ô!<ð Ið I�IÝ˜v yÑ1Ô1ð IÝ7>¸vÀyÑ7QÔ7Q˜	 &Ô)¨)Ñ4Ý ¨	µ7±9´9¸YÔ3GÑHÔHÐHøøØˆˆˆð "+§¢Ñ!2Ô!2ð 	1ð 	1ÑˆF�IØ#,§?¢?Ñ#4Ô#4ð 1ð 1‘�	˜4Ý˜ 	¨4Ñ0Ô0Ð0Ð0ð1ð	1ð 	1ø §¢Ñ!2Ô!2ð 	1ð 	1ÑˆF�IØ#,§?¢?Ñ#4Ô#4ð 1ð 1‘�	˜4Ý˜ 	¨4Ñ0Ô0Ð0Ð0ð1ð	1øøøs   ˜BC5 Ã5AD<c            	   #   ó¤  K  — ddl m}  d„ }t          t          ¦  «        }	 t          D ]x}|t
          j        v rht
          j        |         }t                               ¦   «         D ]<}t          ||¦  «        r*t          ||¦  «        ||         |<   t          |||¦  «         Œ=Œy| j        }|| _        dV — |                     ¦   «         D ]0\  }}|                     ¦   «         D ]\  }}t          |||¦  «         ŒŒ1|| _        dS # |                     ¦   «         D ]0\  }}|                     ¦   «         D ]\  }}t          |||¦  «         ŒŒ1|| _        w xY w)ac  
    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.
    r*   ©ÚPreTrainedModelc                  ó   — d S ©N© ©ÚargsÚkwargss     r   Ú
empty_funcz#no_init_weights.<locals>.empty_funcÿ   ó   € Øˆr    N)Úmodeling_utilsrr   r   r`   ra   rb   rc   r   rd   re   r   rf   Úinit_weightsrh   )	rr   ry   ri   rj   rk   rl   Úoriginal_init_weightsrm   rn   s	            r   Úno_init_weightsr~   ö   s°  è è € ð 0Ð/Ð/Ð/Ð/Ð/ðð ð õ �DÑ!Ô!€Ið=å1ð 	?ð 	?ˆKØ�cœkÐ)Ð)Ýœ [Ô1�Ý!5×!:Ò!:Ñ!<Ô!<ð ?ð ?�IÝ˜v yÑ1Ô1ð ?Ý7>¸vÀyÑ7QÔ7Q˜	 &Ô)¨)Ñ4Ý ¨	°:Ñ>Ô>Ð>øøð !0Ô <ÐØ'1ˆÔ$àˆˆˆð "+§¢Ñ!2Ô!2ð 	1ð 	1ÑˆF�IØ#,§?¢?Ñ#4Ô#4ð 1ð 1‘�	˜4Ý˜ 	¨4Ñ0Ô0Ð0Ð0ð1ð (=ˆÔ$Ð$Ð$øð	 "+§¢Ñ!2Ô!2ð 	1ð 	1ÑˆF�IØ#,§?¢?Ñ#4Ô#4ð 1ð 1‘�	˜4Ý˜ 	¨4Ñ0Ô0Ð0Ð0ð1ð (=ˆÔ$Ð<Ð<Ð<Ð<s   ¡BD ÄAEc               #   óh   K  — ddl m}  d„ }	 | j        }|| _        dV — || _        dS # || _        w xY w)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.
    r*   rq   c                  ó   — d S rt   ru   rv   s     r   ry   z"no_tie_weights.<locals>.empty_func$  rz   r    N)r{   rr   Útie_weights)rr   ry   Úoriginal_tie_weightss      r   Úno_tie_weightsrƒ     sm   è è € ð 0Ð/Ð/Ð/Ð/Ð/ðð ð ð;Ø.Ô:ÐØ&0ˆÔ#àˆˆˆð ';ˆÔ#Ð#Ð#øÐ&:ˆÔ#Ð:Ð:Ð:Ð:s   �( ¨	1c               #   óŠ   ‡K  — t           j        Šˆfd„} | t           _        	 dV — ‰t           _        dS # ‰t           _        w xY w)a®  
    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                  ó@   •— |                      dd¦  «          ‰| i |¤ŽS )NÚdeviceÚcpu)Ú
setdefault)rw   rx   Úoriginal_linspaces     €r   Ú_safe_linspacez5meta_device_safe_creation_ops.<locals>._safe_linspaceE  s/   ø€ Ø×Ò˜( EÑ*Ô*Ð*Ø Ð  $Ð1¨&Ð1Ð1Ð1r    N)rC   Úlinspace)rŠ   r‰   s    @r   Úmeta_device_safe_creation_opsrŒ   1  s`   øè è € õ$ œÐð2ð 2ð 2ð 2ð 2ð $…E„Nð+Øˆˆˆà*�ŒˆˆøÐ*�ŒÐ*Ð*Ð*Ð*s	   ¢4 ´A)r   r   N)r*   )r   N)r   r2   r3   N)r   r   r:   r;   N)r*   N)r>   N)r2   rF   )&rQ   rb   Úcollectionsr   Ú
contextlibr   rC   rN   rO   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   ÚTensorÚfloatÚ	GeneratorÚintÚstrrE   rX   r\   r^   ra   ro   r~   rƒ   rŒ   ru   r    r   ú<module>r”      s³  ðð €€€Ø 
€
€
€
Ø #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %à €€€ð ””Ô&ØŒxŒ}Ô$Ø””Ô(ØŒXŒ]Ô ØŒhŒmÔ"ØŒHŒMÔØŒhŒmÔ"Ø”x”}Ô4Ø”h”mÔ2ØœœÔ6Ø”x”}Ô4Ø”X”]Ô0Ø”8”=Ô,ØŒxŒ}Ô$ðð Ð ð& _cðð ØŒLðØ"ðØ-2ðØEJÄ_ÐW[ÑE[ðà
„\ðð ð ð ð dhðð ØŒLðØ %ðØ27ðØJOÌ/Ð\`ÑJ`ðà
„\ðð ð ð ð�e”lð ¨ð °5´<ð ð ð ð ð�%”,ð  5¤<ð ð ð ð ð�5”<ð  E¤Lð ð ð ð ð�”ð  %¤,ð ð ð ð ðð �5”<ð ¨ð °U´\ð ð ð ð ðð ˜EœLð °ð ÈÌÐZ^ÑH^ð ÐjoÔjvð ð ð ð ðð ˜5œ<ð ¨uð ÀuÄÐY]ÑG]ð ÐinÔiuð ð ð ð ð ØØ$Ø(,ðð ØŒLðàðð ðð ð	ð
 Œ Ñ%ðð „\ðð ð ð ð  ØØ$Ø(,ðð ØŒLðàðð ðð ð	ð
 Œ Ñ%ðð „\ðð ð ð ð  ØØØØ(,ð
ð 
ØŒLð
à
ð
ð 
ð
ð ð	
ð
 ð
ð Œ Ñ%ð
ð „\ð
ð 
ð 
ð 
ð Ø(,ðð ØŒLðà
ðð Œ Ñ%ðð „\ð	ð ð ð ð cgðð ØŒLðØ$)ðØ05ðØINÌÐ[_ÑI_ðà
„\ðð ð ð ð�%”,ð  u¤|ð ¸¼ð ð ð ð ðAð Að Að Að,ð ð ðð ð ðÐ ð ð1ð 1ñ „ð1ð4 ð!=ð !=ñ „ð!=ðH ð;ð ;ñ „ð;ð* ð+ð +ñ „ð+ð +ð +r    