o
    i                     @   sd   d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	m
Z
 G dd de
ZG dd de	ZdS )	    N)
VllmConfig)LogitsProcessor)LlamaDecoderLayerLlamaForCausalLM
LlamaModelc                       sN   e Zd Zdeddededeej f fddZ	de
jd	e
jfd
dZ  ZS )TeleFLMModel )prefix
layer_typevllm_configr	   r
   c                   s6   t  j|||d 	 | jj| _| jr| jj| _d S d S )N)r   r	   r
   )super__init__configuse_mup
input_mult)selfr   r	   r
   	__class__ X/home/ubuntu/vllm_env/lib/python3.10/site-packages/vllm/model_executor/models/teleflm.pyr   '   s   
	zTeleFLMModel.__init__	input_idsreturnc                 C   s   |  |}| jr|| j }|S )N)embed_tokensr   r   )r   r   	embeddingr   r   r   embed_input_ids<   s   

zTeleFLMModel.embed_input_ids)__name__
__module____qualname__r   r   strtypennModuler   torchTensorr   __classcell__r   r   r   r   r   &   s    r   c                       s,   e Zd Zdddedef fddZ  ZS )TeleFLMForCausalLMr   )r	   r   r	   c                   sZ   t  j||d | jj| _| jr+| jj| _| jj| j | _| j}t| jj|d| _d S d S )N)r   r	   )scale)	r   r   r   r   mup_scale_factoroutput_multr   
vocab_sizelogits_processor)r   r   r	   logit_scaler   r   r   r   D   s   

zTeleFLMForCausalLM.__init__)r   r   r   r   r   r   r$   r   r   r   r   r%   C   s    $r%   )r"   torch.nnr    vllm.configr   +vllm.model_executor.layers.logits_processorr    vllm.model_executor.models.llamar   r   r   r   r%   r   r   r   r   <module>   s   