o
    Ti>                     @   sd   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
 dd	lmZ G d
d deZdS )    )Any   )RaggedInferenceEngineConfig   )ContainerMapInferenceV2Policy   )FalconNonTransformerContainerFalconTransformerContainer)!FalconNewArchTransformerContainer)FalconInferenceModelc                   @   s0   e Zd ZdededefddZdefddZdS )	FalconPolicyengine_configmp_groupreturnc                 C   s   t | j||dS )N)configr   base_mp_group)r   _model_config)selfr   r    r   n/home/ubuntu/.local/lib/python3.10/site-packages/deepspeed/inference/v2/model_implementations/falcon/policy.pyinstantiate_model   s   zFalconPolicy.instantiate_modelc                    sp   t  } jjr	tnt fddt jjD }|dg| |	t
 j |dd t jjD  |S )Nc                    s   g | ]} j qS r   )model).0_r   trans_container_clsr   r   
<listcomp>   s    z4FalconPolicy.build_container_map.<locals>.<listcomp>ztransformer.hc                 S   s   g | ]}d | dqS )zmodel.layers.z.self_attn.rotary_emb.inv_freqr   )r   ir   r   r   r      s    )r   r   new_decoder_architecturer   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 FalconPolicy.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   r   <module>   s   