o
    Ti*                     @   sX   d dl mZ ddlmZ ddlmZmZ ddlmZm	Z	 ddl
mZ G d	d
 d
eZdS )    )Any   )RaggedInferenceEngineConfig   )ContainerMapInferenceV2Policy   )QwenNonTransformerContainerQwenTransformerContainer)QwenInferenceModelc                   @   s0   e Zd ZdededefddZdefddZdS )	
QwenPolicyengine_configmp_groupreturnc                 C   s   t | j||dS )N)configr   base_mp_group)r   _model_config)selfr   r    r   l/home/ubuntu/.local/lib/python3.10/site-packages/deepspeed/inference/v2/model_implementations/qwen/policy.pyinstantiate_model   s   zQwenPolicy.instantiate_modelc                    sN   t  } fddt jjD }|dg| |t j |dg |S )Nc                    s   g | ]}t  jqS r   )r
   model).0_r   r   r   
<listcomp>   s    z2QwenPolicy.build_container_map.<locals>.<listcomp>ztransformer.hztransformer.rotary_emb.inv_freq)r   ranger   
num_layersset_transformer_paramsset_non_transformer_paramsr	   set_unmapped_params)r   maptransformer_containersr   r   r   build_container_map   s   zQwenPolicy.build_container_mapN)	__name__
__module____qualname__r   r   r   r   r   r#   r   r   r   r   r      s    r   N)typingr   	config_v2r   inference_policy_baser   r   	containerr	   r
   r   r   r   r   r   r   r   <module>   s   