o
    پi                     @   s^   d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	 eG dd dZ
G dd deZd	S )
    )	dataclass)Any)PretrainedConfig)Mamba2CacheParamsMamba2StateShapemamba2_state_dtypec                   @   sN   e Zd ZU eed< eed< eed< eed< eed< eed< eed< eed< d	S )
JetBlockConfigmodeexpand_v	num_headshead_dimnorm_eps	conv_sizedconv_generator_reductiondconv_implementationN)__name__
__module____qualname__str__annotations__floatint r   r   S/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/configs/jet_nemotron.pyr      s   
 r   c                   @   s   e Zd ZU dZeed< eeeeef f ed< eed< eed< e	ed< eed< e
e ed< eed	< eed
< eed< e	ed< ded< e	ed< ede
e fddZede
e fddZedefddZdS )JetNemotronConfigjet_nemotron
model_typeefficient_attention_config
hidden_acthidden_sizeinitializer_rangeintermediate_sizelayer_typesmax_position_embeddingsnum_attention_headsnum_key_value_headsrms_norm_epsNrope_scaling
rope_thetareturnc                 C      dd t | jD S )Nc                 S   s   g | ]
\}}|d v r|qS ))attnswar   .0idx
layer_typer   r   r   
<listcomp>+   
    z>JetNemotronConfig.full_attention_layer_ids.<locals>.<listcomp>	enumerater"   selfr   r   r   full_attention_layer_ids)      z*JetNemotronConfig.full_attention_layer_idsc                 C   r*   )Nc                 S   s   g | ]
\}}|d kr|qS )jetr   r-   r   r   r   r1   3   r2   z6JetNemotronConfig.linear_layer_ids.<locals>.<listcomp>r3   r5   r   r   r   linear_layer_ids1   r8   z"JetNemotronConfig.linear_layer_idsc              	   C   sr   ddl m} tdi | jd }|j}|j}t||j }|| }tj	| ||||||j
d}t|| jt| dS )Nr   )get_attention_tp_sizer9   )tp_world_sizer!   n_groupsr   r   
state_sizeconv_kernel)shapelayersdtyper   )sglang.srt.layers.dp_attentionr;   r   r   r   r   r   r
   r   creater   r   r:   r   )r6   r;   jet_block_configr   
head_k_dim
head_v_dimtotal_v_dimr@   r   r   r   mamba2_cache_params9   s$   
z%JetNemotronConfig.mamba2_cache_params)r   r   r   r   r   r   dictr   r   r   listpropertyr7   r:   r   rI   r   r   r   r   r      s(   
 r   N)dataclassesr   typingr    transformers.configuration_utilsr   sglang.srt.configs.mamba_utilsr   r   r   r   r   r   r   r   r   <module>   s    