o
    ÔÙ¾ií  ã                   @   sT   d dl mZmZmZ d dlmZ G dd„ deƒZG dd„ deƒZG dd„ deƒZd	S )
é    )ÚAnyÚOptionalÚUnion)ÚPretrainedConfigc                       s6   e Zd ZdZ										
	d‡ fdd„	Z‡  ZS )ÚStep3VisionEncoderConfigÚstep3_vision_encoderé   é   é   é?   é   é   éØ  é   Ú
quick_geluçñhãˆµøä>c                    sR   || _ || _|| _|| _|| _|| _|| _|| _|
| _|	| _	t
ƒ jdi |¤Ž d S ©N© )Úhidden_sizeÚintermediate_sizeÚoutput_hidden_sizeÚnum_hidden_layersÚnum_attention_headsÚnum_channelsÚ
patch_sizeÚ
image_sizeÚlayer_norm_epsÚ
hidden_actÚsuperÚ__init__)Úselfr   r   r   r   r   r   r   r   r   r   Úkwargs©Ú	__class__r   úO/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/configs/step3_vl.pyr   	   s   z!Step3VisionEncoderConfig.__init__)
r   r	   r
   r   r   r   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú
model_typer   Ú__classcell__r   r   r"   r$   r      s    õr   c                )       s°   e Zd ZdZdgZ									
											d*dedededededededededededed eee	e
f  d!ed"ed#ed$ed%ed&ee d'df(‡ fd(d)„Z‡  ZS )+ÚStep3TextConfigÚ
step3_textÚStep3TextForCausalLMé   é H  é@   é   é=   é   é/÷ r   é   é0   r   é ¡ Né   é   F©8é   é   é   é   é   é	   é
   é   é   é   r   é   r   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é    é!   é"   é#   é$   é%   é&   é'   é(   é)   é*   é+   é,   é-   é.   é/   r5   é1   é2   é3   é4   é5   é6   é7   é8   é9   é:   é;   r   r   r   Únum_attention_groupsr   Úmax_seq_lenÚ
vocab_sizeÚrms_norm_epsÚmoe_intermediate_sizeÚmoe_num_expertsÚ	moe_top_kÚ
rope_thetaÚrope_scalingÚmax_position_embeddingÚshare_expert_dimÚshare_q_dimÚhead_dimÚnorm_expert_weightÚmoe_layers_enumÚreturnc                    sˆ   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _|| _|| _|| _|| _|| _|| _|| _tƒ jdi |¤Ž d S r   )r   r   r   ro   r   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r   r   )r    r   r   r   ro   r   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r!   r"   r   r$   r   (   s(   PzStep3TextConfig.__init__)r-   r.   r/   r0   r1   r2   r3   r   r4   r5   r   r6   Nr2   r4   r7   r8   Fr9   )r%   r&   r'   r(   ÚarchitecturesÚintÚfloatr   ÚdictÚstrr   ÚboolÚtupler   r)   r   r   r"   r$   r*   $   s~    ìþýüûúùø	÷
öõôóòñðïîíìO±r*   c                       s^   e Zd ZdZ					ddeeeef  deeeef  de	d	e
d
e	ddf‡ fdd„Z‡  ZS )ÚStep3VLConfigÚstep3_vlNr0   Téô Úvision_configÚtext_configÚunderstand_projector_strideÚprojector_biasÚimage_token_idr~   c                    sŒ   |d u rt ƒ }nt|tƒrt di |¤Ž}|| _|d u rtƒ }nt|tƒr+tdi |¤Ž}|| _|| _|| _|j| _|| _	t
ƒ jdi |¤Ž d S r   )r   Ú
isinstancer‚   r‰   r*   rŠ   r‹   rŒ   r   r   r   r   )r    r‰   rŠ   r‹   rŒ   r   r!   r"   r   r$   r   ’   s   	

zStep3VLConfig.__init__)NNr0   Trˆ   )r%   r&   r'   r(   r   r   r‚   r   r*   r€   r„   r   r)   r   r   r"   r$   r†      s(    úþýüûúør†   N)	Útypingr   r   r   Ú transformers.configuration_utilsr   r   r*   r†   r   r   r   r$   Ú<module>   s
    k