
    .`i1	                     L    d dl mZ d dlZd dlZe G d d                      ZdS )    )	dataclassNc                       e Zd ZU ej        ed<   ee         ed<   ej        ed<   ej        ed<   ej        ed<   ej        ed<   ej        ed<   d Ze	deee                  d	ej
        d
d fd            ZdS )SpecDecodeMetadatadraft_token_idsnum_draft_tokenscu_num_draft_tokenscu_num_sampled_tokenstarget_logits_indicesbonus_logits_indiceslogits_indicesc                 8    t          | j                  | _        d S )N)maxr   max_spec_len)selfs    p/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/v1/spec_decode/metadata.py__post_init__z SpecDecodeMetadata.__post_init__   s     566    devicereturnc           	         t          |          }d |D             }d |D             }t          |g           }t          |          }t          j        |t          j        |          }t          j        |t
          j                  }	t          j        |	                              |          }
t          j        |t
          j                  }t          j        |                              |          }t          j	        |t          j        |          }t          j	        |t          j        |          }t          j	        ||z   t          j        |          } | |||
||||          S )Nc                 ,    g | ]}t          |          S  len.0idss     r   
<listcomp>z1SpecDecodeMetadata.make_dummy.<locals>.<listcomp>$   s    @@@CHH@@@r   c                 2    g | ]}t          |          d z   S )   r   r   s     r   r   z1SpecDecodeMetadata.make_dummy.<locals>.<listcomp>%   s"    FFFsc#hhlFFFr   )dtyper   )r!   )r   r   r   r	   r
   r   r   )
r   sumtorchtensorint32npcumsum
from_numpytozeros)clsr   r   
batch_sizer   num_sampled_tokensflattened_draft_token_ids
num_tokensdraft_token_ids_tensorr   cu_num_draft_tokens_tensorr	   cu_num_sampled_tokens_tensorr
   r   r   s                   r   
make_dummyzSpecDecodeMetadata.make_dummy   s    ))
@@@@@FFoFFF$'$<$<!233
!&%U["
 "
 "
 !i(8III%*%56I%J%J%M%Mf%U%U" "	*<BH M M M','78M'N'N'Q'Q(
 (
$ !&ek&!
 !
 !
  %{:U[QWXXX#5;v
 
 
 s2- :">"7!5)
 
 
 	
r   N)__name__
__module____qualname__r#   Tensor__annotations__listintr   classmethodr   r3   r   r   r   r   r   	   s          \!!!3i%%% <''' <''',&&&L   7 7 7 $
d3i$
 $
 
	$
 $
 $
 [$
 $
 $
r   r   )dataclassesr   numpyr&   r#   r   r   r   r   <module>r>      sl    " ! ! ! ! !      8
 8
 8
 8
 8
 8
 8
 8
 8
 8
r   