o {Bg@spddlZddlZddlmZmZmZddlmZddlm Z m Z de dedefd d Z d e dedefd d Z dS)N) AutoConfigPretrainedConfigPreTrainedModel)SiglipVisionTower)ContextProviderContextProviderConfigmodel_name_or_pathconfigreturncCs|durdSd}|jr+d|vr+tj|sJd|dtj|dd}|jd}|dur1|n|}d|vr=t||}nt d||j j |_ |S) NradiozResume vision tower path  does not exist!T)trust_remote_codersiglipzUnknown vision tower: ) resume_pathospathexistsrfrom_pretrained architectureslowerr ValueErrorr hidden_sizeZmm_hidden_size)r r Zvision_tower_archvision_tower_cfgZvision_tower_name vision_towerrI/home/l/lo/longlian/describe-anything/model/multimodal_encoder/builder.pybuild_vision_towers$   rmodel_type_or_pathcCsf|durdS|jr"tj|sJd|dtj||t|jdSt|}t|| t|j}|S)NzResume context provider path r ) torch_dtype) rrrrrreval model_dtyperto)rr mm_projector_cfg mm_projectorrrrbuild_context_provider"s    r%)torchr transformersrrrZsiglip_encoderrcontext_providerrrstrrr%rrrrs&