o
    
sÒh	  ã                   @  sV   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d„Z
dd„ ZdS )é    )ÚannotationsN)ÚTYPE_CHECKINGé   )Úis_torch_availableÚ	strtobool)ÚnnÚmoduleú	nn.ModuleÚreturnÚboolc                 C  sD   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   © r   ú\/var/www/html/alpaca_bot/venv/lib/python3.10/site-packages/transformers/integrations/fsdp.pyÚis_fsdp_managed_module   s   
ÿr   c                  C  sR   t ƒ r'dd l} | j ¡ o&| j ¡ o&ttj dd¡ƒdko&t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   r   r   r   Úis_fsdp_enabled*   s   
ÿþür    )r   r	   r
   r   )Ú
__future__r   r   Útypingr   Úutilsr   r   r   r   r   r    r   r   r   r   Ú<module>   s   
