o
    پi                     @   s   d dl Z d dlmZmZ d dlmZmZ d dlmZ de	de
fddZde	de
fd	d
Zde	de
fddZeG dd deZeG dd deZdS )    N)	dataclassfield)TextEncoderArchConfigTextEncoderConfig)StoreBooleannreturnc                 C   s   d| v ot | dd S )Nblock.)strisdigitsplitr   m r   d/home/ubuntu/.local/lib/python3.10/site-packages/sglang/multimodal_gen/configs/models/encoders/t5.py_is_transformer_layer   s   r   c                 C   
   |  dS )Nsharedendswithr   r   r   r   _is_embeddings      
r   c                 C   r   )Nfinal_layer_normr   r   r   r   r   _is_final_layernorm   r   r   c                       sX  e Zd ZU dZeed< dZeed< dZeed< dZeed< d	Z	eed
< dZ
edB ed< dZeed< dZeed< dZeed< dZeed< dZeed< dZeed< dZeed< dZeed< dZeed< dZeed < dZeed!< d"Zeed#< d$Zeed%< d&Zeed'< dZeed(< ed)d* d+Zee eeef  ed,< ed-d* d+Z!eed.<  fd/d0Z"  Z#S )1T5ArchConfigi}  
vocab_sizei   d_model@   d_kvi   d_ff   
num_layersNnum_decoder_layers   	num_heads    relative_attention_num_buckets   relative_attention_max_distanceg?dropout_rategư>layer_norm_epsilong      ?initializer_factorrelufeed_forward_proj dense_act_fnFis_gated_actTis_encoder_decoder	use_cacher   pad_token_id   eos_token_idg        classifier_dropouttext_lenc                   C   s   g dS )N))	.qkv_projz.qq)r:   z.kk)r:   z.vvr   r   r   r   r   <lambda>2   s    zT5ArchConfig.<lambda>default_factorystacked_params_mappingc                   C   s
   t ttgS )N)r   r   r   r   r   r   r   r>   :   s   _fsdp_shard_conditionsc                    sX   t    | jd}|d | _|d dk| _| jdkrd| _dd| jddd	d
| _d S )N-r   r   gatedz
gated-gelugelu_new
max_lengthTpt)padding
truncationrF   add_special_tokensreturn_attention_maskreturn_tensors)super__post_init__r/   r   r1   r2   r9   tokenizer_kwargs)selfact_info	__class__r   r   rN   B   s   


zT5ArchConfig.__post_init__)$__name__
__module____qualname__r   int__annotations__r   r    r!   r#   r$   r&   r(   r*   r+   floatr,   r-   r/   r   r1   r2   boolr3   r4   r5   r7   r8   r9   r   rA   listtuplerB   rN   __classcell__r   r   rR   r   r      s:   
 	r   c                   @   sf   e Zd ZU eedZeed< dZe	ed< dZ
eed< dZe	ed< e		dd
ejde	dejfddZdS )T5Configr?   arch_configt5prefixFparallel_foldingspparallel_folding_mode	t5-configparserr   c                 C   sb   | j d| dt|dd dtjdd | j d| dtg d	|dd d
tjdd | S )Nz--z.parallel-foldingrC   _z.parallel_foldingz&Whether to use parallel folding for T5)actiondestdefaulthelpz.parallel-folding-mode)rc   ulyssesringz.parallel_folding_modezParallel folding mode for T5)typechoicesri   rj   rk   )add_argumentr   replacer^   rb   r   rd   )rf   ra   r   r   r   add_cli_args^   s    

zT5Config.add_cli_argsN)re   )rT   rU   rV   r   r   r_   r   rX   ra   r   rb   rZ   rd   staticmethodargparseArgumentParserrr   r   r   r   r   r^   T   s   
 r^   )rt   dataclassesr   r   2sglang.multimodal_gen.configs.models.encoders.baser   r   sglang.multimodal_gen.utilsr   r   rZ   r   r   r   r   r^   r   r   r   r   <module>   s   9