o
    }oi                     @   s   d dl Z d dlmZ d dlmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZ dd Zdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Ze jjdd ZdS )    N)llm)HuggingFaceSavannaHyenaImporterHyena1bConfigHyena7bARCLongContextConfigHyena7bConfigHyena40bARCLongContextConfigHyena40bConfigHyenaConfigHyenaNV1bConfigHyenaNV7bConfigHyenaNV40bConfigHyenaNVTestConfigHyenaTestConfigc                  C   s   t  } | jdks
J | jdksJ | jdksJ | jdksJ | jdks&J | jdks-J | jd ks4J | jd ks;J | j	d ksBJ | j
dksIJ | jdksPJ | jdksWJ d S )	N   i      i   rope   g        T)r	   
num_layershidden_sizenum_attention_heads
seq_lengthposition_embedding_typemake_vocab_size_divisible_bynum_groups_hyenanum_groups_hyena_mediumnum_groups_hyena_shorthybrid_attention_ratiohybrid_mlp_ratiogated_linear_unitconfig r!   ]/home/ubuntu/.local/lib/python3.10/site-packages/tests/collections/llm/gpt/model/test_evo2.pytest_hyena_base_config%   s   r#   c                  C   sz   t  } | jdks
J | jdksJ | jdksJ | jdksJ | jdks&J | jdks-J | jdks4J | jdks;J d S )N              z SDH*SDHSDH*SDHSDH*SDHSDH*SDHSDH*)	r   r   r   r   r   r   r   r   hybrid_override_patternr   r!   r!   r"   test_hyena_7b_config5   s   r)   c                  C   sl   t  } | jdks
J | jdksJ | jdksJ | jdksJ | jdks&J | jdks-J | jdu s4J d S )Nr$   r%   r&   
byte-levelbaseT)r   r   r   r   r   tokenizer_librarymapping_typeuse_short_conv_biasr   r!   r!   r"   test_hyena_nv_7b_configA      r/   c                  C   sl   t  } | jdks
J | jdksJ | jdksJ | jdksJ | jdks&J | jdks-J | jdks4J d S )N        r&   r   )r   r   r   r   r   r   r   r   r   r!   r!   r"   test_hyena_1b_configL   r0   r4   c                  C   ^   t  } | jdks
J | jdksJ | jdksJ | jdksJ | jdks&J | jdks-J d S )Nr1   r2   i   r3   r&   r*   )r
   r   r   ffn_hidden_sizer   r   r,   r   r!   r!   r"   test_hyena_nv_1b_configW      r7   c                  C   sl   t  } | jdks
J | jdksJ | jdksJ | jdksJ | jdks&J | jdks-J | jdks4J d S )N2   r&   @   i   )r   r   r   r   r   r   r   r   r   r!   r!   r"   test_hyena_40b_configa   r0   r;   c                  C   ^   t  } | jdks
J | jdksJ | jdksJ | jdksJ | jdks&J | jdks-J d S )Nr9   r&   iU  r:   r*   )r   r   r   r6   r   r   r,   r   r!   r!   r"   test_hyena_nv_40b_configl   r8   r=   c                  C   s^   t  } | jdks
J | jdksJ | jdksJ | jdksJ | jdks&J | jdks-J d S )Nr$   r%   i ,  r&   r*   )r   r   r   r6   r   r   r,   r   r!   r!   r"   %test_hyena_7b_arc_long_context_configv   r8   r>   c                  C   r<   )Nr9   r&   i X  r:   r*   )r   r   r   r6   r   r   r,   r   r!   r!   r"   &test_hyena_40b_arc_long_context_config   r8   r?   c                  C   sP   t  } | jdks
J | jdksJ | jdksJ | jdksJ | jdks&J d S )N   r%   r$   r&   zSDH*)r   r   r   r   r   r(   r   r!   r!   r"   test_hyena_test_config   s   rA   c                  C   r5   )Nr@   r%   i +  r$   r&   r*   )r   r   r   r6   r   r   r,   r   r!   r!   r"   test_hyena_nv_test_config   r8   rB   c                  C   s^   ddl m}  t }d}t||d}t|  |d W d    d S 1 s(w   Y  d S )Nr   )RepositoryNotFoundErrordummy_model_deosnt_exist)model_configdummy_output_deosnt_exist)huggingface_hub.utilsrC   r   r   r   pytestraisesapply)rC   evo2_config
model_ckptexporterr!   r!   r"   test_convert_hyena   s   "rN   )rH   nemo.collectionsr   $nemo.collections.llm.gpt.model.hyenar   r   r   r   r   r   r	   r
   r   r   r   r   r#   r)   r/   r4   r7   r;   r=   r>   r?   rA   rB   markpleasefixmerN   r!   r!   r!   r"   <module>   s    8



	
