o
    81 i                     @   s^   d dl Z d dlmZ d dlZd dlmZ d dlmZm	Z	m
Z
mZ d dlmZmZ dddZdS )	    N)partial)	load_file)SAFE_WEIGHTS_INDEX_NAMESAFE_WEIGHTS_NAMEWEIGHTS_INDEX_NAMEWEIGHTS_NAME)cached_fileget_checkpoint_shard_filesc                    s  t jd fvr	dn }d}d}d }tj| t}tj| t}tj| t}	tj| t}
tj	|r;t
| tdd}nJtj	|rKt
| tdd}d}n:tj	|	r[t
| tdd}d}n*tj	|
rmt
| tdd}d}d}nt
| tdd}|d u rt
| tdd}|d urd}|d u rtd|  d|rtt|d}ntt j|d}|rt| |\}}i }|D ]	}||| qn||}d uṙfd	d
| D } fdd
| D }|S )NcpuF)Z%_raise_exceptions_for_missing_entriesTzModel name z was not found.device)Zmap_locationc                       i | ]\}}||j  d qS )dtypeto.0kvr    g/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/flash_attn/utils/pretrained.py
<dictcomp>M       z.state_dict_from_pretrained.<locals>.<dictcomp>c                    r   )r   r   r   r   r   r   r   N   r   )torchZfloat32ospathjoinr   r   r   r   isfiler   EnvironmentErrorr   safe_load_fileloadr	   updateitems)Z
model_namer   r   Zmapped_deviceZ
is_shardedZ	load_safeZresolved_archive_fileZweights_pathZweights_index_pathZsafe_weights_pathZsafe_weights_index_pathloaderZsharded_metadataZ
state_dictZsharded_filer   )r   r   r   state_dict_from_pretrained   sn   r%   )NN)r   	functoolsr   r   Zsafetensors.torchr   r    Ztransformers.utilsr   r   r   r   Ztransformers.utils.hubr   r	   r%   r   r   r   r   <module>   s    