o
    TÃi  ã                   @   s„   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
 G dd„ deƒZG d	d
„ d
e
ƒZG dd„ deƒZG dd„ deƒZdS )é    )ÚEnum)ÚDictÚOptionalé   )Ú	DtypeEnum)ÚDSModuleConfig)ÚDeepSpeedConfigModelc                   @   s   e Zd ZdZdZdZdZdS )ÚPositionalEmbeddingTypeÚnoneÚrotate_halfÚrotate_every_otherÚalibiN)Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   © r   r   úl/home/ubuntu/.local/lib/python3.10/site-packages/deepspeed/inference/v2/modules/configs/attention_configs.pyr	      s
    r	   c                   @   s:   e Zd ZU dZeed< 	 dZeed< 	 dZe	e
 ed< dS )ÚRotateHalfConfigFÚuse_trained_freqsg     ˆÃ@Ú
theta_baseNÚ
rotate_dim)r   r   r   r   ÚboolÚ__annotations__r   Úfloatr   r   Úintr   r   r   r   r      s   
 r   c                   @   s    e Zd ZdZdZdZdZdZdS )ÚMaskingTyper
   ÚcausalÚlocalÚ	symmetricÚ
asymmetricN)r   r   r   r
   r   r   r   r   r   r   r   r   r   3   s    r   c                   @   s’   e Zd ZU dZeed< eed< eed< eed< dZeed< ej	Z
eed< ej	Zeed	< ejZeed
< i Zeed< ejZeed< dZee ed< dS )ÚDSSelfAttentionConfigz%
    Config class for attention.
    Ú	n_heads_qÚ
n_heads_kvÚ	head_sizeÚmax_sequencesg      ð?Úscale_factorÚinput_dtypeÚoutput_dtypeÚmasking_typeÚmasking_argsÚpositional_embedding_typeNÚpositional_embedding_config)r   r   r   Ú__doc__r   r   r%   r   r   Úfp16r&   r'   r   r   r(   r)   r   r	   r
   r*   r+   r   r   r   r   r   r   r    E   s   
 r    N)Úenumr   Útypingr   r   Úinference_utilsr   Úmodules.ds_moduler   Údeepspeed.runtime.config_utilsr   r	   r   r   r    r   r   r   r   Ú<module>   s   