Ë
    îÿæi€	  ã                   óð   — d dl mZ d dlmZmZ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 ddlmZ dd	lmZ e G d
„ de«      «       Z G d„ de
j,                  «      Z G d„ de
j,                  «      Zy)é    )Ú	dataclass)ÚAnyÚOptionalÚUnionN)Útree_flattenÚtree_unflattené   )ÚBaseModelArgs)ÚDeepseekV3Model)ÚModel)Ú	ModelArgsc                   ó6   — e Zd ZU eeef   ed<   dZeed<   d„ Z	y)r   Útext_configÚkimi_k25Ú
model_typec                 ó‚   — t        | j                  t        «      r%t        j                  | j                  «      | _        y y ©N)Ú
isinstancer   ÚdictÚ
TextConfigÚ	from_dict©Úselfs    úk/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/mlx_lm/models/kimi_k25.pyÚ__post_init__zModelArgs.__post_init__   s0   € Ü�d×&Ñ&¬Ô-Ü)×3Ñ3°D×4DÑ4DÓEˆDÕð .ó    N)
Ú__name__Ú
__module__Ú__qualname__r   r   r   Ú__annotations__r   Ústrr   © r   r   r   r      s"   … à�z 4Ð'Ñ(Ó(Ø €J�Ó óFr   r   c                   óR   ‡ — e Zd Zdefˆ fd„Z	 ddej                  dee   fd„Z	ˆ xZ
S )ÚLanguageModelÚconfigc                 ó²   •— t         ‰| �  «        || _        t        |«      | _        t        j                  |j                  |j                  d¬«      | _	        y )NF)Úbias)
ÚsuperÚ__init__Úargsr   ÚmodelÚnnÚLinearÚhidden_sizeÚ
vocab_sizeÚlm_head©r   r%   Ú	__class__s     €r   r)   zLanguageModel.__init__   sA   ø€ Ü‰ÑÔØˆŒ	Ü$ VÓ,ˆŒ
Ü—y‘y ×!3Ñ!3°V×5FÑ5FÈUÔSˆ�r   ÚinputsÚcachec                 óH   — | j                  ||«      }| j                  |«      S r   )r+   r0   )r   r3   r4   Úouts       r   Ú__call__zLanguageModel.__call__!   s#   € ð
 �j‰j˜ Ó'ˆØ�|‰|˜CÓ Ð r   r   )r   r   r   r   r)   ÚmxÚarrayr   r   r7   Ú__classcell__©r2   s   @r   r$   r$      s5   ø„ ðT˜zõ Tð  $ñ!à—‘ð!ð ˜‰}÷!r   r$   c                   óÄ   ‡ — e Zd Zdefˆ fd„Z	 ddej                  dee   fd„Z	d„ Z
ddeej                  j                     fd„Zed	„ «       Zed
„ «       Zed„ «       Zˆ xZS )r   r%   c                 ó†   •— t         ‰| �  «        || _        |j                  | _        t	        |j
                  «      | _        y r   )r(   r)   r*   r   r$   r   Úlanguage_modelr1   s     €r   r)   zModel.__init__+   s5   ø€ Ü‰ÑÔØˆŒ	Ø ×+Ñ+ˆŒÜ+¨F×,>Ñ,>Ó?ˆÕr   r3   r4   c                 ó&   — | j                  ||«      S r   )r>   )r   r3   r4   s      r   r7   zModel.__call__1   s   € ð
 ×"Ñ" 6¨5Ó1Ð1r   c                 ó¶  — t        t        |j                  «       «      «      }|j                  dd «       |j                  dd «       |j                  dd «       |j                  dd «       t	        t        |d   «      «      }t        j                  | j                  |«      }t        t        |j                  «       «      «      |d<   t	        t        |«      «      S )NÚvision_towerÚvision_modelÚmulti_modal_projectorÚmm_projectorr>   )	r   ÚlistÚitemsÚpopr   r   ÚDeepseekV3LMÚsanitizer>   )r   ÚweightsÚ
lm_weightss      r   rI   zModel.sanitize8   s«   € Ü ¤ g§m¡m£oÓ!6Ó7ˆØ�‰�N DÔ)Ø�‰�N DÔ)Ø�‰Ð+¨TÔ2Ø�‰�N DÔ)Üœ, wÐ/?Ñ'@ÓAÓBˆ
Ü!×*Ñ*¨4×+>Ñ+>À
ÓKˆ
Ü$2´4¸
×8HÑ8HÓ8JÓ3KÓ$LˆÐ Ñ!Ü”L Ó)Ó*Ð*r   Úgroupc                 óD   — t        j                  | j                  |«       y r   )rH   Úshardr>   )r   rL   s     r   rN   zModel.shardC   s   € Ü×Ñ˜4×.Ñ.°Õ6r   c                 ó.   — | j                   j                  S r   )r>   r+   r   s    r   r+   zModel.modelF   s   € à×"Ñ"×(Ñ(Ð(r   c                 óB   — | j                   j                  j                  S r   )r>   r+   Úpipeline_layersr   s    r   ÚlayerszModel.layersJ   s   € à×"Ñ"×(Ñ(×8Ñ8Ð8r   c                 ó   — d„ }|S )Nc                 ó
   — d| vS )NÚe_score_correction_biasr"   )Úks    r   Ú	predicatez'Model.cast_predicate.<locals>.predicateP   s   € Ø,°AÐ5Ð5r   r"   )r   rW   s     r   Úcast_predicatezModel.cast_predicateN   s   € ò	6ð Ðr   r   )r   r   r   r   r)   r8   r9   r   r   r7   rI   ÚdistributedÚGrouprN   Úpropertyr+   rR   rX   r:   r;   s   @r   r   r   *   s‘   ø„ ð@˜yõ @ð  $ñ2à—‘ð2ð ˜‰}ó2ò	+ñ7˜8 B§N¡N×$8Ñ$8Ñ9ó 7ð ñ)ó ð)ð ñ9ó ð9ð ñó ôr   r   )Údataclassesr   Útypingr   r   r   Úmlx.coreÚcorer8   Úmlx.nnr,   Ú	mlx.utilsr   r   Úbaser
   Údeepseek_v3r   r   rH   r   r   ÚModuler$   r"   r   r   Ú<module>re      sc   ðõ "ß 'Ñ 'å Ý ß 2å Ý (Ý .Ý 0ð ôF�ó Fó ðFô!�B—I‘Iô !ô )ˆB�I‰Iõ )r   