
    .`i                         d dl mZ d dlZd dlmZ d dlmZ d dlmZm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mZ d d
lmZ  G d dej                  Z G d de          Z G d de          ZdS )    )isliceN)nn)PretrainedConfig)CacheConfig
VllmConfig)get_pp_group)RMSNorm)QuantizationConfig)InternLM2AttentionInternLM2ForCausalLMInternLM2MLPInternLM2Model)IntermediateTensorsc                        e Zd Z	 	 	 ddededz  dedz  deddf
 fdZ	 dd	ej	        d
ej	        dej	        dz  dej	        dz  de
ej	        ej	        f         f
dZ xZS )InternLM2VEDecoderLayerN configcache_configquant_configprefixreturnc                    t                                                       |j        | _        t          |dd          }t	          | j        |j        |j        |j        |||| d          | _        t          | j        |j
        |j        || d          | _        t          | j        |j
        |j        || d          | _        t          |j        |j                  | _        t          |j        |j                  | _        d S )	Nmax_position_embeddingsi    z
.attention)hidden_size	num_headsnum_kv_headsrope_parametersr   r   r   r   z.feed_forward)r   intermediate_size
hidden_actr   r   z.feed_forward_ve)eps)super__init__r   getattrr   num_attention_headsnum_key_value_headsr   	attentionr   r   r   feed_forwardfeed_forward_ver	   rms_norm_epsattention_normffn_norm)selfr   r   r   r   r   	__class__s         {/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/model_executor/models/internlm2_ve.pyr"   z InternLM2VEDecoderLayer.__init__   s+    	!-")&2KT"R"R+(03"2$;%%(((	
 	
 	
 )($6(%+++
 
 
  ,($6(%... 
  
  
 &f&8f>QRRR 28KLLL    	positionshidden_statesresidualvisual_token_maskc                    ||}|                      |          }n|                      ||          \  }}|                     ||          }|                     ||          \  }}||                                r|                    d| j                                                  }| }|                     ||                             d| j                            	                                ||<   |                                rI| 
                    ||                             d| j                            	                                ||<   n| 
                    |          }||fS )N)r0   r1      )r*   r&   r+   anyrepeatr   boolr(   reshapeflattenr'   )r,   r0   r1   r2   r3   text_token_masks         r.   forwardzInternLM2VEDecoderLayer.forward=   sv    $H //>>MM&*&9&9-&R&R#M8' ' 
 
 #'--x"H"Hx(->-B-B-D-D( 1 8 8D<L M M R R T T00O/3/C/C/088T=MNN0 0gii +, ""$$ 151B1B!/2::2t?OPP2 2')) o. !--m<<Mh&&r/   )NNr   )N)__name__
__module____qualname__r   r   r
   strr"   torchTensortupler=   __classcell__r-   s   @r.   r   r      s        ,026#M #M #M "D(#M )4/	#M
 #M 
#M #M #M #M #M #MT 26 '  '< ' | ' ,%	 '
 !<$. ' 
u|U\)	* '  '  '  '  '  '  '  'r/   r   c                        e Zd Zdddedef fdZ	 	 	 ddej        dej        d	edz  d
ej        dz  dej        dz  dej        ez  fdZ	 xZ
S )InternLM2VEModelr   r   vllm_configr   c                Z    t                                          ||t                     d S )N)rJ   r   
layer_type)r!   r"   r   r,   rJ   r   r-   s      r.   r"   zInternLM2VEModel.__init__a   s6    #F?V 	 	
 	
 	
 	
 	
r/   N	input_idsr0   intermediate_tensorsinputs_embedsr3   r   c                 t   t                      j        r||}n|                     |          }d }n|J |d         }|d         }t          | j        | j        | j                  D ]} |||||          \  }}t                      j        st          ||d          S | 	                    ||          \  }}	|S )Nr1   r2   )r3   )r1   r2   )
r   is_first_ranktok_embeddingsr   layersstart_layer	end_layeris_last_rankr   norm)
r,   rN   r0   rO   rP   r3   r1   r2   layer_s
             r.   r=   zInternLM2VEModel.forwardf   s     >>' 		8( - $ 3 3I > >HH'3330AM+J7HDK)94>JJ 	 	E&+e"3	' ' '#M88 ~~* 	&"/XFF    99]H==qr/   )NNN)r>   r?   r@   r   rA   r"   rB   rC   r   r=   rE   rF   s   @r.   rH   rH   `   s        AC 
 
 
z 
3 
 
 
 
 
 
 <@-115 < < 2D8	
 |d* !<$. 
+	+       r/   rH   c                   .     e Zd Zdddedef fdZ xZS )InternLM2VEForCausalLMr   rI   rJ   r   c                Z    t                                          ||t                     d S )N)rJ   r   
model_type)r!   r"   rH   rM   s      r.   r"   zInternLM2VEForCausalLM.__init__   s6    #F?O 	 	
 	
 	
 	
 	
r/   )r>   r?   r@   r   rA   r"   rE   rF   s   @r.   r\   r\      sX        AC 
 
 
z 
3 
 
 
 
 
 
 
 
 
 
r/   r\   )	itertoolsr   rB   r   transformersr   vllm.configr   r   vllm.distributedr   $vllm.model_executor.layers.layernormr	   'vllm.model_executor.layers.quantizationr
   $vllm.model_executor.models.internlm2r   r   r   r   vllm.sequencer   Moduler   rH   r\    r/   r.   <module>ri      sy                ) ) ) ) ) ) / / / / / / / / ) ) ) ) ) ) 8 8 8 8 8 8 F F F F F F            . - - - - -F' F' F' F' F'bi F' F' F'R$ $ $ $ $~ $ $ $N
 
 
 
 
1 
 
 
 
 
r/   