a
    ½Àh	  ã                   @  s\   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	œd
d„Z
dd„ ZdS )é    )ÚannotationsN)ÚTYPE_CHECKINGé   )Úis_torch_availableÚ	strtobool)Únnz	nn.ModuleÚbool)ÚmoduleÚreturnc                 C  sD   t ƒ s
dS dd l}|j ¡ s dS dd l}t| |jjjƒpBt| ddƒS )NFr   Z_is_fsdp_managed_module)	r   ÚtorchÚdistributedÚis_availableZtorch.distributed.fsdpÚ
isinstanceZfsdpZFullyShardedDataParallelÚgetattr)r	   r   © r   úZ/var/www/html/assistant/venv/lib/python3.9/site-packages/transformers/integrations/fsdp.pyÚis_fsdp_managed_module   s    
ÿr   c                  C  sR   t ƒ rNdd l} | j ¡ oL| j ¡ oLttj dd¡ƒdkoLttj dd¡ƒdkS dS )Nr   ZACCELERATE_USE_FSDPÚFalseé   ZFSDP_CPU_RAM_EFFICIENT_LOADINGF)	r   r   r   r   Zis_initializedr   ÚosÚenvironÚget)r   r   r   r   Úis_fsdp_enabled*   s    
ÿþür   )Ú
__future__r   r   Útypingr   Úutilsr   r   r   r   r   r   r   r   r   r   Ú<module>   s   