§
    Ý˜ºh	  ã                  óT   — d dl mZ d dlZd dlmZ ddlmZmZ erd dlm	Z	 dd„Z
d„ ZdS )é    )ÚannotationsN)ÚTYPE_CHECKINGé   )Úis_torch_availableÚ	strtobool)ÚnnÚmoduleú	nn.ModuleÚreturnÚboolc                óÈ   — t          ¦   «         sdS dd l}|j                             ¦   «         sdS dd l}t          | |j        j        j        ¦  «        pt          | dd¦  «        S )NFr   Ú_is_fsdp_managed_module)	r   ÚtorchÚdistributedÚis_availableÚtorch.distributed.fsdpÚ
isinstanceÚfsdpÚFullyShardedDataParallelÚgetattr)r	   r   s     úf/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/transformers/integrations/fsdp.pyÚis_fsdp_managed_moduler      s}   € ÝÑÔð Øˆuà€L€L€LàÔ×)Ò)Ñ+Ô+ð Øˆuà!Ð!Ð!Ð!å�f˜eÔ/Ô4ÔMÑNÔNð ÕRYØÐ)¨5ñSô Sð ó    c                 óR  — t          ¦   «         r˜dd l} | j                             ¦   «         oz| j                             ¦   «         oat          t          j                             dd¦  «        ¦  «        dk    o0t          t          j                             dd¦  «        ¦  «        dk    S dS )Nr   ÚACCELERATE_USE_FSDPÚFalseé   ÚFSDP_CPU_RAM_EFFICIENT_LOADINGF)	r   r   r   r   Úis_initializedr   ÚosÚenvironÚget)r   s    r   Úis_fsdp_enabledr#   *   s¢   € ÝÑÔð 
Øˆˆˆð Ô×*Ò*Ñ,Ô,ð ZØÔ!×0Ò0Ñ2Ô2ðZå�"œ*Ÿ.š.Ð)>ÀÑHÔHÑIÔIÈQÒNðZõ �"œ*Ÿ.š.Ð)IÈ7ÑSÔSÑTÔTÐXYÒYð		
ð ˆ5r   )r	   r
   r   r   )Ú
__future__r   r    Útypingr   Úutilsr   r   r   r   r   r#   © r   r   ú<module>r(      s•   ðð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø  Ð  Ð  Ð  Ð  Ð  à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1ð ð ØÐÐÐÐÐðð ð ð ð ð ð ð ð r   