o
    i                     @   sX   d dl mZ ddlmZmZmZ ddlmZ eG dd deZeG dd deZd	S )
    )	dataclass   )
BertConfigBertAttentionConfigBertEmbeddingConfig)BertLayerConfigc                       s6   e Zd ZU eed< eed< ddd fdd
Z  ZS )AlbertLayerConfiginner_group_numnum_hidden_groups   )r	   r
   c                   s&   t t| j|i | || _|| _d S )N)superr   __init__r	   r
   )selfr	   r
   argskwargs	__class__ ]/home/ubuntu/.local/lib/python3.10/site-packages/curated_transformers/models/albert/config.pyr      s   
zAlbertLayerConfig.__init__)__name__
__module____qualname__int__annotations__r   __classcell__r   r   r   r   r      s   
 r   c                !   @   s   e Zd ZU eed< ddddddddddd	d
ddddddedededededededededededededededef dd Zd!S )"AlbertConfiglayer   i   r   i      g        gelu_newi0u  r   i   g-q=r   )embedding_widthhidden_widthr	   intermediate_widthnum_attention_headsnum_hidden_layersr
   attention_probs_dropout_probhidden_dropout_prob
hidden_act
vocab_sizetype_vocab_sizemax_position_embeddingsmodel_max_lengthlayer_norm_epspadding_idxr    r!   r	   r"   r#   r$   r
   r%   r&   r'   r(   r)   r*   r+   r,   r-   c             
   C   sP   t ||||||	d| _t|||d| _t||||||
||	d| _|| _|| _d S )N)r    r(   r)   r*   r,   dropout_prob)r!   r#   r.   )r!   r	   r"   r$   r
   r'   r,   r.   )r   	embeddingr   	attentionr   r   r+   r-   )r   r    r!   r	   r"   r#   r$   r
   r%   r&   r'   r(   r)   r*   r+   r,   r-   r   r   r   r      s2   

zAlbertConfig.__init__N)	r   r   r   r   r   r   floatstrr   r   r   r   r   r      sf   
 	
r   N)	dataclassesr   bertr   r   r   r   r   r   r   r   r   r   <module>   s    
