
    (HJj	                         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    `/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/mlx_lm/models/kimi_k25.py__post_init__zModelArgs.__post_init__   s0    d&&-)33D4D4DED .    N)
__name__
__module____qualname__r   r   r   __annotations__r   strr    r   r   r   r      s"    z4'(( 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,
yy!3!3V5F5FUSr   inputscachec                 H    | j                  ||      }| j                  |      S r   )r+   r0   )r   r3   r4   outs       r   __call__zLanguageModel.__call__!   s#    
 jj'||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    
 ""65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     gmmo!67ND)ND)+T2ND),w/?'@AB
!**4+>+>
K
$24
8H8H8J3K$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	+78BNN$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!BII ! )BII )r   