Ë
    îÿæi  ã                   ó^  — d dl mZ d dlmZmZmZmZ d dlmZ	 d dl
mZ ddlmZ ddlmZmZ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 G d„ dej*                  «      Z G d„ dej*                  «      Z G d„ dej*                  «      Zy)é    )Ú	dataclass)ÚAnyÚDictÚOptionalÚUnionNé   )Úswiglu)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attention)Úinitialize_ropec                   óØ   — e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   eed
<   dZeed<   dZ	eed<   dZ
ee   ed<   dZeeeeeef   f      ed<   dZeed<   y)Ú	ModelArgsÚ
model_typeÚhidden_sizeÚintermediate_sizeÚmax_position_embeddingsÚnum_attention_headsÚnum_hidden_layersÚnum_key_value_headsÚrms_norm_epsÚ
vocab_sizeÚ
rope_thetaFÚmlp_biasÚattention_biasNÚhead_dimÚrope_scalingÚtie_word_embeddings)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__ÚintÚfloatr   Úboolr   r   r   r   r   r   r   © ó    úl/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/mlx_lm/models/telechat3.pyr   r      s‹   … àƒOØÓØÓØ Ó ØÓØÓØÓØÓØƒOØÓØ€HˆdÓØ €N�DÓ Ø"€Hˆh�s‰mÓ"Ø;?€L�(˜4  U¨5°#¨:Ñ%6Ð 6Ñ7Ñ8Ó?Ø %Ð˜Ô%r(   r   c            	       óŠ   ‡ — e Zd Zdefˆ fd„Z	 	 ddej                  deej                     dee   dej                  fd„Z	ˆ xZ
S )	ÚTelechat3AttentionÚargsc                 ó   •— t         ‰| �  «        |j                  | _        |j                  | _        |j                  xs |j
                  |j                  z  | _        | j                  dz  | _        t        j                  |j
                  |j                  | j                  z  |j                  ¬«      | _
        t        j                  |j
                  |j                  | j                  z  |j                  ¬«      | _        t        j                  |j
                  |j                  | j                  z  |j                  ¬«      | _        t        j                  |j                  | j                  z  |j
                  |j                  ¬«      | _        t        | j                  d|j                  |j                   |j"                  ¬«      | _        y )Ng      à¿©ÚbiasF)ÚtraditionalÚbaseÚscaling_configr   )ÚsuperÚ__init__r   r   r   r   ÚscaleÚnnÚLinearr   Úq_projÚk_projÚv_projÚo_projr   r   r   r   Úrope©Úselfr,   Ú	__class__s     €r)   r4   zTelechat3Attention.__init__"   sb  ø€ Ü‰ÑÔØ#'×#;Ñ#;ˆÔ Ø#'×#;Ñ#;ˆÔ àŸ™ÒU¨×)9Ñ)9¸T×=UÑ=UÑ)UˆŒØ—]‘] DÑ(ˆŒ
ä—i‘iØ×ÑØ×$Ñ$ t§}¡}Ñ4Ø×$Ñ$ô
ˆŒô
 —i‘iØ×ÑØ×$Ñ$ t§}¡}Ñ4Ø×$Ñ$ô
ˆŒô
 —i‘iØ×ÑØ×$Ñ$ t§}¡}Ñ4Ø×$Ñ$ô
ˆŒô
 —i‘iØ×$Ñ$ t§}¡}Ñ4Ø×ÑØ×$Ñ$ô
ˆŒô $Ø�M‰MØØ—‘Ø×,Ñ,Ø$(×$@Ñ$@ô
ˆ�	r(   ÚxÚmaskÚcacheÚreturnc                 ó2  — |j                   \  }}}| j                  |«      | j                  |«      | j                  |«      }	}}|j	                  ||| j
                  d«      j                  dddd«      }|j	                  ||| j                  d«      j                  dddd«      }|	j	                  ||| j                  d«      j                  dddd«      }	|�P| j                  ||j                  ¬«      }| j                  ||j                  ¬«      }|j                  ||	«      \  }}	n"| j                  |«      }| j                  |«      }t        |||	|| j                  |¬«      }
|
j                  dddd«      j	                  ||d«      }
| j                  |
«      S )Néÿÿÿÿr   é   r   é   )Úoffset)rB   r5   rA   )Úshaper8   r9   r:   Úreshaper   Ú	transposer   r<   rH   Úupdate_and_fetchr   r5   r;   )r>   r@   rA   rB   ÚBÚLÚ_ÚqueriesÚkeysÚvaluesÚoutputs              r)   Ú__call__zTelechat3Attention.__call__G   sy  € ð —'‘'‰ˆˆ1ˆaØ $§¡¨A£°·±¸A³ÀÇÁÈAÃ�v�ˆà—/‘/ ! Q¨×(@Ñ(@À"ÓE×OÑOØˆq�!�Qó
ˆð �|‰|˜A˜q $×":Ñ":¸BÓ?×IÑIÈ!ÈQÐPQÐSTÓUˆØ—‘  1 d×&>Ñ&>ÀÓC×MÑMØˆq�!�Qó
ˆð ÐØ—i‘i °·±�iÓ=ˆGØ—9‘9˜T¨%¯,©,�9Ó7ˆDØ ×1Ñ1°$¸Ó?‰LˆD‘&à—i‘i Ó(ˆGØ—9‘9˜T“?ˆDä-Ø�T˜6¨°d·j±jÀtô
ˆð ×!Ñ! ! Q¨¨1Ó-×5Ñ5°a¸¸BÓ?ˆØ�{‰{˜6Ó"Ð"r(   ©NN©r   r    r!   r   r4   ÚmxÚarrayr   r   rT   Ú__classcell__©r?   s   @r)   r+   r+   !   sX   ø„ ð#
˜Yõ #
ðP $(Ø#ñ	#à�8‰8ð#ð �r—x‘xÑ ð#ð ˜‰}ð	#ð
 
�‰÷#r(   r+   c                   ó\   ‡ — e Zd Zdefˆ fd„Zdej                  dej                  fd„Zˆ xZS )ÚTelechat3MLPr,   c                 ó„  •— t         ‰| �  «        t        j                  |j                  |j
                  |j                  ¬«      | _        t        j                  |j
                  |j                  |j                  ¬«      | _        t        j                  |j                  |j
                  |j                  ¬«      | _	        y )Nr.   )
r3   r4   r6   r7   r   r   r   Ú	gate_projÚ	down_projÚup_projr=   s     €r)   r4   zTelechat3MLP.__init__h   s‡   ø€ Ü‰ÑÔÜŸ™Ø×Ñ˜d×4Ñ4¸4¿=¹=ô
ˆŒô Ÿ™Ø×"Ñ" D×$4Ñ$4¸4¿=¹=ô
ˆŒô —y‘yØ×Ñ˜d×4Ñ4¸4¿=¹=ô
ˆ�r(   r@   rC   c                 ót   — | j                  t        | j                  |«      | j                  |«      «      «      S ©N)r_   r	   r^   r`   )r>   r@   s     r)   rT   zTelechat3MLP.__call__t   s)   € Ø�~‰~œf T§^¡^°AÓ%6¸¿¹ÀQ»ÓHÓIÐIr(   )	r   r    r!   r   r4   rW   rX   rT   rY   rZ   s   @r)   r\   r\   g   s-   ø„ ð

˜Yõ 

ðJ˜"Ÿ(™(ð J r§x¡x÷ Jr(   r\   c            	       óŠ   ‡ — e Zd Zdefˆ fd„Z	 	 ddej                  deej                     dee   dej                  fd„Z	ˆ xZ
S )	ÚTelechat3DecoderLayerr,   c                 ót  •— t         ‰| �  «        |j                  | _        |j                  | _        t	        |«      | _        t        |«      | _        t        j                  |j                  |j                  ¬«      | _        t        j                  |j                  |j                  ¬«      | _        || _        y )N©Úeps)r3   r4   r   r   r+   Ú	self_attnr\   Úmlpr6   ÚRMSNormr   Úinput_layernormÚpost_attention_layernormr,   r=   s     €r)   r4   zTelechat3DecoderLayer.__init__y   sŒ   ø€ Ü‰ÑÔØ#'×#;Ñ#;ˆÔ Ø×+Ñ+ˆÔÜ+¨DÓ1ˆŒÜ Ó%ˆŒÜ!Ÿz™z¨$×*:Ñ*:À×@QÑ@QÔRˆÔÜ(*¯
©
Ø×Ñ $×"3Ñ"3ô)
ˆÔ%ð ˆ�	r(   r@   rA   rB   rC   c                 óš   — | j                  | j                  |«      ||«      }||z   }|| j                  | j                  |«      «      z   }|S rb   )rh   rk   ri   rl   )r>   r@   rA   rB   ÚrÚhÚouts          r)   rT   zTelechat3DecoderLayer.__call__…   sM   € ð �N‰N˜4×/Ñ/°Ó2°D¸%Ó@ˆØ�‰EˆØ�$—(‘(˜4×8Ñ8¸Ó;Ó<Ñ<ˆØˆ
r(   rU   rV   rZ   s   @r)   rd   rd   x   sW   ø„ ð
˜Yõ 
ð $(Ø#ñ		à�8‰8ð	ð �r—x‘xÑ ð	ð ˜‰}ð		ð
 
�‰÷	r(   rd   c            	       óŠ   ‡ — e Zd Zdefˆ fd„Z	 	 ddej                  dee   deej                     dej                  fd„Z	ˆ xZ
S )	ÚTelechat3Modelr,   c                 ó   •— t         ‰| �  «        || _        |j                  | _        |j                  | _        t        j                  |j                  |j                  «      | _        t        |j                  «      D �cg c]  }t        |¬«      ‘Œ c}| _        t        j                  |j                  |j                  ¬«      | _        y c c}w )N)r,   rf   )r3   r4   r,   r   r   r6   Ú	Embeddingr   Úembed_tokensÚrangerd   Úlayersrj   r   Únorm)r>   r,   rO   r?   s      €r)   r4   zTelechat3Model.__init__’   s�   ø€ Ü‰ÑÔØˆŒ	ØŸ/™/ˆŒØ!%×!7Ñ!7ˆÔÜŸL™L¨¯©¸$×:JÑ:JÓKˆÔä6;¸D×<RÑ<RÔ6Só
Ù6S°Ô! tÖ,Ð6Sñ
ˆŒô —J‘J˜t×/Ñ/°T×5FÑ5FÔGˆ�	ùò
s   Á?CÚinputsrB   Úinput_embeddingsrC   c                 óô   — |�|}n| j                  |«      }|€d gt        | j                  «      z  }t        ||d   «      }t	        | j                  |«      D ]  \  }} ||||«      }Œ | j                  |«      S )Nr   )ru   Úlenrw   r   Úziprx   )r>   ry   rB   rz   ro   rA   ÚlayerÚcs           r)   rT   zTelechat3Model.__call__�   s€   € ð Ð'Ø ‰Aà×!Ñ! &Ó)ˆAàˆ=Ø�FœS §¡Ó-Ñ-ˆEÜ$ Q¨¨a©Ó1ˆä˜DŸK™K¨Ö/‰HˆE�1Ù�a˜˜qÓ!‰Að 0ð �y‰y˜‹|Ðr(   rU   rV   rZ   s   @r)   rr   rr   ‘   sY   ø„ ð	H˜Yõ 	Hð  $Ø/3ñ	à—‘ðð ˜‰}ðð # 2§8¡8Ñ,ð	ð
 
�‰÷r(   rr   c            	       óš   ‡ — e Zd Zdefˆ fd„Z	 	 d	dej                  dee   deej                     dej                  fd„Z	e
d„ «       Zˆ xZS )
ÚModelr,   c                 óî   •— t         ‰| �  «        || _        |j                  | _        t	        |«      | _        |j                  s2t        j                  |j                  |j                  d¬«      | _        y y )NFr.   )r3   r4   r,   r   rr   Úmodelr   r6   r7   r   r   Úlm_headr=   s     €r)   r4   zModel.__init__³   sX   ø€ Ü‰ÑÔØˆŒ	ØŸ/™/ˆŒÜ# DÓ)ˆŒ
Ø×'Ò'ÜŸ9™9 T×%5Ñ%5°t·±ÈUÔSˆD�Lð (r(   ry   rB   rz   rC   c                 óÈ   — | j                  |||«      }| j                  j                  r'| j                   j                  j	                  |«      }|S | j                  |«      }|S rb   )rƒ   r,   r   ru   Ú	as_linearr„   )r>   ry   rB   rz   rp   s        r)   rT   zModel.__call__»   sZ   € ð �j‰j˜ Ð(8Ó9ˆØ�9‰9×(Ò(Ø—*‘*×)Ñ)×3Ñ3°CÓ8ˆCð ˆ
ð —,‘,˜sÓ#ˆCØˆ
r(   c                 ó.   — | j                   j                  S rb   )rƒ   rw   )r>   s    r)   rw   zModel.layersÈ   s   € à�z‰z× Ñ Ð r(   rU   )r   r    r!   r   r4   rW   rX   r   r   rT   Úpropertyrw   rY   rZ   s   @r)   r�   r�   ²   sm   ø„ ðT˜Yõ Tð  $Ø/3ñ	à—‘ðð ˜‰}ðð # 2§8¡8Ñ,ð	ð
 
�‰óð ñ!ó ô!r(   r�   )Údataclassesr   Útypingr   r   r   r   Úmlx.coreÚcorerW   Úmlx.nnr6   Úactivationsr	   r1   r
   r   r   Ú
rope_utilsr   r   ÚModuler+   r\   rd   rr   r�   r'   r(   r)   Ú<module>r‘      s“   ðõ "ß -Ó -å Ý å ß TÑ TÝ 'ð ô&�ó &ó ð&ô$C#˜Ÿ™ô C#ôLJ�2—9‘9ô Jô"˜BŸI™Iô ô2�R—Y‘Yô ôB!ˆB�I‰Iõ !r(   