Ë
    îÿæi  ã                   ó¦   — d dl mZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZ ddlmZ ddlmZ e G d„ d	e«      «       Z G d
„ dej"                  «      Zy)é    )Ú	dataclass)ÚOptionalN)Útree_flattenÚtree_unflattené   )Úgemma3_text)ÚBaseModelArgsc                   ó6   — e Zd ZU eed<   eed<   dZeed<   d„ Zy)Ú	ModelArgsÚ
model_typeÚtext_configi@  Ú
vocab_sizec                 óÚ   — | j                   | j                  d<   | j                  j                  dd«      | j                  d<   | j                  j                  dd«      | j                  d<   y )Nr   Únum_attention_headsé   Únum_key_value_headsé   )r   r   Úget©Úselfs    úi/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/mlx_lm/models/gemma3.pyÚ__post_init__zModelArgs.__post_init__   sf   € Ø)-¯©ˆ×Ñ˜Ñ&Ø26×2BÑ2B×2FÑ2FØ! 1ó3
ˆ×ÑÐ.Ñ/ð 37×2BÑ2B×2FÑ2FØ! 1ó3
ˆ×ÑÐ.Ò/ó    N)	Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__Údictr   Úintr   © r   r   r   r      s   … àƒOØÓØ€J�Óó
r   r   c                   ó„   ‡ — e Zd Zdefˆ fd„Z	 	 d	dej                  deej                     fd„Zd„ Z	e
d„ «       Zd„ Zˆ xZS )
ÚModelÚargsc                 óÔ   •— t         ‰| �  «        || _        |j                  | _        t	        j
                  t        j                  j                  |j                  «      «      | _	        y ©N)
ÚsuperÚ__init__r$   r   r   r#   r   Ú	from_dictr   Úlanguage_model)r   r$   Ú	__class__s     €r   r(   zModel.__init__   sM   ø€ Ü‰ÑÔØˆŒ	ØŸ/™/ˆŒÜ)×/Ñ/Ü×!Ñ!×+Ñ+¨D×,<Ñ,<Ó=ó
ˆÕr   ÚinputsÚinput_embeddingsc                 ó*   — | j                  |||¬«      S )N)Úcacher-   )r*   )r   r,   r/   r-   s       r   Ú__call__zModel.__call__'   s$   € ð ×"Ñ"Ø˜%Ð2Bð #ó 
ð 	
r   c                 ód  — t        t        |j                  «       «      «      }|j                  dd «       |j                  dd «       t	        t        |d   «      «      }| j                  j                  |«      }t        t        |j                  «       «      «      |d<   t	        t        |«      «      S )NÚvision_towerÚmulti_modal_projectorr*   )r   ÚlistÚitemsÚpopr   r   r*   Úsanitize)r   ÚweightsÚ
lm_weightss      r   r7   zModel.sanitize1   s�   € Ü ¤ g§m¡m£oÓ!6Ó7ˆØ�‰�N DÔ)Ø�‰Ð+¨TÔ2Üœ, wÐ/?Ñ'@ÓAÓBˆ
Ø×(Ñ(×1Ñ1°*Ó=ˆ
Ü$2´4¸
×8HÑ8HÓ8JÓ3KÓ$LˆÐ Ñ!Ü”L Ó)Ó*Ð*r   c                 ó.   — | j                   j                  S r&   )r*   Úlayersr   s    r   r;   zModel.layers:   s   € à×"Ñ"×)Ñ)Ð)r   c                 ó6   — | j                   j                  «       S r&   )r*   Ú
make_cacher   s    r   r=   zModel.make_cache>   s   € Ø×"Ñ"×-Ñ-Ó/Ð/r   )NN)r   r   r   r   r(   ÚmxÚarrayr   r0   r7   Úpropertyr;   r=   Ú__classcell__)r+   s   @r   r#   r#      sY   ø„ ð
˜Yõ 
ð Ø/3ñ	
à—‘ð
ð # 2§8¡8Ñ,ó	
ò+ð ñ*ó ð*ö0r   r#   )Údataclassesr   Útypingr   Úmlx.coreÚcorer>   Úmlx.nnÚnnÚ	mlx.utilsr   r   Ú r   Úbaser	   r   ÚModuler#   r!   r   r   Ú<module>rL      sG   ðõ "Ý å Ý ß 2å Ý ð ô
�ó 
ó ð
ô!0ˆB�I‰Iõ !0r   