o
    )i                     @   s2   d dl mZ d dlZd dlZeG dd dZdS )    )	dataclassNc                   @   sx   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< dd Ze	deee  d	ej
d
d fddZdS )SpecDecodeMetadatadraft_token_idsnum_draft_tokenscu_num_draft_tokenstarget_logits_indicesbonus_logits_indiceslogits_indicesc                 C   s   t | j| _d S )N)maxr   Zmax_spec_len)self r   h/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/vllm/v1/spec_decode/metadata.py__post_init__   s   z SpecDecodeMetadata.__post_init__devicereturnc                 C   s   t |}dd |D }t|g }t |}tj|tj|d}tj|tjd}t||}	tj	|tj|d}
tj	|tj|d}tj	|| tj|d}| |||	|
||dS )Nc                 S   s   g | ]}t |qS r   )len).0idsr   r   r   
<listcomp>#   s    z1SpecDecodeMetadata.make_dummy.<locals>.<listcomp>)dtyper   )r   )r   r   r   r   r   r	   )
r   sumtorchZtensorZint32npZcumsumZ
from_numpytoZzeros)clsr   r   Z
batch_sizer   Zflattened_draft_token_idsZ
num_tokensZdraft_token_ids_tensorr   Zcu_num_draft_tokens_tensorr   r   r	   r   r   r   
make_dummy   s@   


zSpecDecodeMetadata.make_dummyN)__name__
__module____qualname__r   ZTensor__annotations__listintr   classmethodr   r   r   r   r   r   r   	   s    
 





r   )dataclassesr   numpyr   r   r   r   r   r   r   <module>   s
   