o
    -i                     @   s(   d dl Z d dlmZ G dd deZdS )    N)PretrainedConfigc                       s   e Zd ZdZ							dd	ed
ededededededB f fddZedeej	B dd fddZ
edd Zedd ZejdefddZ  ZS )MedusaConfigmedusa   }        @   
   Nhidden_size
vocab_size	num_headsnum_hidden_layers	max_pathstopktruncated_vocab_sizec           	         sh   || _ || _|| _|| _|| _|| _td| _|d u r|n|| _d|vr)dg|d< t	 j
di | d S )Ni   architecturesMedusaModel )r   r   r   r   r   r   intmax_seq_lenr   super__init__)	selfr   r   r   r   r   r   r   kwargs	__class__r   c/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/vllm/transformers_utils/configs/medusa.pyr      s   

zMedusaConfig.__init__pretrained_model_name_or_pathreturnc                 K   sp   | j |fi |\}}t| D ]}d|v r.d|v r#|||d< qd|v r.|||d< q| j|fi |S )Nnumheadsr   layersr   )get_config_dictlistkeyspop	from_dict)clsr   r   config_dictkr   r   r   from_pretrained&   s   
zMedusaConfig.from_pretrainedc                 C   s   dS )Nr   r   r   r   r   r   num_attention_heads7   s   z MedusaConfig.num_attention_headsc                 C   s   | j S Nr   r,   r   r   r   num_lookahead_tokens;   s   z!MedusaConfig.num_lookahead_tokensr0   c                 C   s
   || _ d S r.   r/   )r   r0   r   r   r   r0   ?   s   
)r   r   r   r   r	   r
   N)__name__
__module____qualname__
model_typer   r   classmethodstrosPathLiker+   propertyr-   r0   setter__classcell__r   r   r   r   r   	   sH    

r   )r7   transformersr   r   r   r   r   r   <module>   s   