o
    ߥi                     @   sx   d Z ddlZddlmZmZmZ ddlZddlmZ ddl	m
Z
 ddlmZ e
 ZG dd deZG d	d
 d
eZdS )z MPLUG model configuration     N)AnyDictUnion)PretrainedConfig)logging)Tasksc                "       s   e Zd ZdZejddddddddd	dd
ddddddddddddddddddddddf" fdd	Zedee	e
jf dee	ef fdd Z  ZS )!MPlugConfigmplugconfig_bert.jsoni     i   TzViT-L-14@   皙?[SEP]N   
      Fbert-base-uncased            M   i            Q?c#           $         s   t  jdi |# || _|| _|| _|| _|| _|| _|| _|| _	|	| _
|
| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _ | | _!|!| _"|"| _#d S N )$super__init__taskbert_config	image_resbatch_size_trainvision_widthdistill	clip_namebatch_size_testk_testalphawarm_upeos	optimizer	schedular
min_length
max_length	beam_sizeadd_ocr
add_objecttext_encodertext_decoderclip_embed_dimclip_image_resolutionclip_vision_layersclip_vision_widthclip_vision_patch_sizeclip_context_lengthclip_vocab_sizeclip_transformer_widthclip_transformer_headsclip_transformer_layers
queue_size	embed_dimtemp)$selfr    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   kwargs	__class__r   k/home/ubuntu/.local/lib/python3.10/site-packages/modelscope/models/multi_modal/mplug/configuration_mplug.pyr   !   sF   (
zMPlugConfig.__init__	yaml_filereturnc                 C   L   t |ddd}tj|tjd}W d    n1 sw   Y  | di |S Nrzutf-8)encoding)Loaderr   openyamlloadrM   clsrG   readerconfig_dictr   r   rF   from_yaml_fileo      zMPlugConfig.from_yaml_file)__name__
__module____qualname__
model_typer   visual_question_answeringr   classmethodr   strosPathLiker   r   rV   __classcell__r   r   rD   rF   r      sV    N
r   c                       sx   e Zd ZdZejdddddddd	d
ddddddddddddf fdd	Zedee	e
jf dee	ef fddZ  ZS )HiTeAConfighitear
   r          r   Tr   r   r   r   Nr   r   r   r   r   r   r   c                    s   t  jdi | || _|| _|| _|| _|| _|| _|| _|| _	|	| _
|
| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _d S r   )r   r   r    r!   r"   
num_framesr#   r$   r%   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r3   r4   r?   r@   rA   )rB   r    r!   r"   rf   r#   r$   r%   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r3   r4   r?   r@   rA   rC   rD   r   rF   r   {   s.   
zHiTeAConfig.__init__rG   rH   c                 C   rI   rJ   rN   rR   r   r   rF   rV      rW   zHiTeAConfig.from_yaml_file)rX   rY   rZ   r[   r   video_question_answeringr   r]   r   r^   r_   r`   r   r   rV   ra   r   r   rD   rF   rb   w   s>    4
rb   )__doc__r_   typingr   r   r   rP   transformersr   transformers.utilsr   modelscope.utils.constantr   
get_loggerloggerr   rb   r   r   r   rF   <module>   s   Z