+
    TV-j[  ã                   ó\  € ^ RI Ht ^ RIHtHt ^ RIHt ^ RIH	t	 ^RI
Ht ^RIHtHtHt ^RIHtHt ] ! R R]4      4       t ! R	 R
]	P(                  4      t ! R R]	P(                  4      t ! R R]	P(                  4      t ! R R]	P(                  4      t ! R R]	P(                  4      tR# )é    )Ú	dataclass)ÚOptionalÚTupleN)Úswiglu)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attention)ÚKVCacheÚRotatingKVCachec                   ód   a € ] tR t^t o Rt^€t^ tRt^ t^t	Rt
RtRtRtRtRtRt^tV 3R ltR	tV tR
# )Ú	ModelArgsi   i 8  g     jè@i è gñhãˆµøä>g      °?Fc                óÎ   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R	&   S[;R
&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )é   Ú
model_typeÚhidden_sizeÚhead_dimÚnum_hidden_layersÚintermediate_sizeÚnum_attention_headsÚnum_key_value_headsÚ
rope_thetaÚ
vocab_sizeÚlayer_norm_epsÚlogit_scaleÚattention_biasÚlayer_norm_biasÚsliding_windowÚsliding_window_pattern)ÚstrÚintÚfloatÚbool)ÚformatÚ__classdict__s   "€Úf/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/cohere2.pyÚ__annotate__ÚModelArgs.__annotate__   sÅ   ø‡ ‚ á�Oñ ñ Ññ ñ Ññ	 ñ
 Ññ ñ Ñ"ñ ñ Ñ!ñ ñ Ñ ñ ñ Ññ ñ Ññ ñ Ñ!ñ ñ Ññ ñ Ñ ñ ñ Ñ!ñ ñ Ññ ñ   Ñ#ò! ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r$   s   @r%   r   r      sY   ø‡ € ð €KØ€HØÐØ"ÐØ!ÐØ ÐØ€JØ€JØ!€NØ€KØ €NØ!€OØ€NØ"#Ð÷! ƒ r(   r   c                   óT   a a€ ] tR t^!t oV3R lV 3R lltRV3R lR lltRtVtV ;t# )Ú	Attentionc                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r   ÚargsÚ	layer_idx©r   r    )r#   r$   s   "€r%   r&   ÚAttention.__annotate__"   s   ø€ ÷ Uñ U™Yð U±3ñ Ur(   c                óê  <€ \         SV `  4        Wn        W n        VP                  pVP
                  ;V n        pVP                  ;V n        pVP                  ;V n	        pWd,          V8w  d   \        R V RV R24      hVR,          V n        VP                  p\        P                  ! W4V,          VR7      V n        \        P                  ! W5V,          VR7      V n        \        P                  ! W5V,          VR7      V n        \        P                  ! WF,          W7R7      V n        \        P&                  ! VRVP(                  R7      V n        V^,           VP,                  ,          ^ 8g  V n        R# )z?hidden_size must be divisible by num_heads (got `hidden_size`: z and `num_heads`: z).©ÚbiasT)ÚtraditionalÚbaseNg      à¿)ÚsuperÚ__init__r5   r6   r   r   Ún_headsr   Ú
n_kv_headsr   Ú
ValueErrorÚscaler   ÚnnÚLinearÚq_projÚk_projÚv_projÚo_projÚRoPEr   Úroper   Úuse_sliding_window)	Úselfr5   r6   Údimr@   rA   r   Úattetion_biasÚ	__class__s	   &&&     €r%   r?   ÚAttention.__init__"   s-  ø€ Ü‰ÑÔØŒ	Ø"Œà×ÑˆØ!%×!9Ñ!9Ð9ˆŒ�wØ'+×'?Ñ'?Ð?ˆŒ˜*Ø#'§=¡=Ð0ˆŒ˜ØÕ 3Ô&ÜØQÐRUÐQVØ$ W I¨Rð1óð ð ˜t•^ˆŒ
à×+Ñ+ˆä—i’i ¨xÕ%7¸mÔLˆŒÜ—i’i °(Õ%:ÀÔOˆŒÜ—i’i °(Õ%:ÀÔOˆŒÜ—i’i Õ 2°CÔLˆŒä—G’G˜H°$¸T¿_¹_ÔMˆŒ	à#,¨q¥=°D×4OÑ4OÕ"OÐSTÑ"TˆÖr(   c          	      óÌ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[S[ P                  S[ P                  3,          ,          RS[ P                  /# ©r   ÚxÚmaskÚcacheÚreturn©ÚmxÚarrayr   r   )r#   r$   s   "€r%   r&   r8   =   s[   ø€ ÷ &#ñ &#á�8‰8ð&#ñ ‘r—x‘xÕ ð&#ñ ™™bŸh™h©¯©Ð0Õ1Õ2ð	&#ñ
 
�‰ñ&#r(   c           	     ó  € VP                   w  rEpV P                  V4      V P                  V4      V P                  V4      r˜pVP	                  WEV P
                  R4      P                  ^ ^^^4      pVP	                  WEV P                  R4      P                  ^ ^^^4      pV	P	                  WEV P                  R4      P                  ^ ^^^4      p	V P                  '       d`   Vf$   V P                  V4      pV P                  V4      pM8V P                  WsP                  R7      pV P                  WƒP                  R7      pVe   VP                  W‰4      w  r‰VP                  \        P                  8X  d   \        P                  MVP                  p
\!        VP#                  V
4      VV	VV P$                  VR7      P#                  VP                  4      pVP                  ^ ^^^4      P	                  WER4      pV P'                  V4      # )é   )Úoffset)rV   rC   rU   éÿÿÿÿ)ÚshaperF   rG   rH   Úreshaper@   Ú	transposerA   rL   rK   r]   Úupdate_and_fetchÚdtyperY   Úfloat16Úfloat32r	   ÚastyperC   rI   )rM   rT   rU   rV   ÚBÚLÚDÚqueriesÚkeysÚvaluesÚ	sdpa_typeÚoutputs   &&&&        r%   Ú__call__ÚAttention.__call__=   s§  € ð —'‘'‰ˆˆaà $§¡¨A£°·±¸A³ÀÇÁÈAÃ�vˆà—/‘/ !¨¯©°bÓ9×CÑCÀAÀqÈ!ÈQÓOˆØ�|‰|˜A $§/¡/°2Ó6×@Ñ@ÀÀAÀqÈ!ÓLˆØ—‘  d§o¡o°rÓ:×DÑDÀQÈÈ1ÈaÓPˆð ×"×"Ð"ØŠ}ØŸ)™) GÓ,�Ø—y‘y “‘àŸ)™) G·L±L˜)ÓA�Ø—y‘y ¯l©l�yÓ;�àÒØ ×1Ñ1°$Ó?‰LˆDð #*§-¡-´2·:±:Ô"=”B—J’JÀ7Ç=Á=ˆ	Ü-Ø�N‰N˜9Ó%ØØØØ—*‘*Øô
÷ ‰&�—‘Ó
ð 	ð ×!Ñ! ! Q¨¨1Ó-×5Ñ5°a¸BÓ?ˆØ�{‰{˜6Ó"Ð"r(   )r5   r   rG   r6   r@   rA   rI   rF   rK   rC   rL   rH   ©NN©	r*   r+   r,   r-   r?   ro   r/   r0   Ú__classcell__©rP   r$   s   @@r%   r2   r2   !   s    ù‡ € ÷Uó U÷6&#÷ &#ò &#r(   r2   c                   ó8   a a€ ] tR t^ft oV 3R ltR tRtVtV ;t# )ÚMLPc                óÒ   <€ \         SV `  4        \        P                  ! WR R7      V n        \        P                  ! WR R7      V n        \        P                  ! W!R R7      V n        R# )Fr:   N)r>   r?   rD   rE   Ú	gate_projÚup_projÚ	down_proj)rM   rN   Ú
hidden_dimrP   s   &&&€r%   r?   ÚMLP.__init__g   sD   ø€ Ü‰ÑÔÜŸš 3¸Ô?ˆŒÜ—y’y °uÔ=ˆŒÜŸš :¸Ô?ˆŽr(   c                ót   € V P                  \        V P                  V4      V P                  V4      4      4      # ©N)rz   r   rx   ry   )rM   rT   s   &&r%   ro   ÚMLP.__call__m   s)   € Ø�~‰~œf T§^¡^°AÓ%6¸¿¹ÀQ»ÓHÓIÐIr(   )rz   rx   ry   rr   rt   s   @@r%   rv   rv   f   s   ù‡ € õ@÷Jò Jr(   rv   c                   óT   a a€ ] tR t^qt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚTransformerBlockc                ó&   <€ V ^8„  d   QhRS[ RS[/# r4   r7   )r#   r$   s   "€r%   r&   ÚTransformerBlock.__annotate__r   s   ø€ ÷ 
ñ 
™Yð 
±3ñ 
r(   c                óV  <€ \         SV `  4        VP                  V n        VP                  V n        \        W4      V n        \        VP                  VP                  4      V n	        \        P                  ! VP                  VP                  VP                  R 7      V n        Wn        R# )©Úepsr;   N)r>   r?   r   r   r@   r2   Ú	self_attnrv   r   ÚmlprD   Ú	LayerNormr   r   Úinput_layernormr5   )rM   r5   r6   rP   s   &&&€r%   r?   ÚTransformerBlock.__init__r   s€   ø€ Ü‰ÑÔØ×+Ñ+ˆÔØ×/Ñ/ˆŒä" 4Ó3ˆŒÜ�t×'Ñ'¨×)?Ñ)?Ó@ˆŒÜ!Ÿ|š|Ø×Ñ $×"5Ñ"5¸D×<PÑ<Pô 
ˆÔð Ž	r(   c          	      óÌ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[S[ P                  S[ P                  3,          ,          RS[ P                  /# rS   rX   )r#   r$   s   "€r%   r&   rƒ   ~   s[   ø€ ÷ !ñ !á�8‰8ð!ñ ‘r—x‘xÕ ð!ñ ™™bŸh™h©¯©Ð0Õ1Õ2ð	!ñ
 
�‰ñ!r(   c                óˆ   € V P                  V4      pV P                  WBV4      pV P                  V4      pWV,           V,           # r~   )rŠ   r‡   rˆ   )rM   rT   rU   rV   ÚhÚattn_hÚff_hs   &&&&   r%   ro   ÚTransformerBlock.__call__~   s>   € ð × Ñ  Ó#ˆØ—‘ ¨Ó/ˆØ�x‰x˜‹{ˆà�}˜qÕ Ð r(   )r5   r   rŠ   rˆ   r@   r‡   rq   rr   rt   s   @@r%   r�   r�   q   s   ù‡ € ÷
ó 
÷!÷ !ò !r(   r�   c                   óT   a a€ ] tR t^Œt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚCohereModelc                ó    <€ V ^8„  d   QhRS[ /# ©r   r5   ©r   )r#   r$   s   "€r%   r&   ÚCohereModel.__annotate__�   s   ø€ ÷ 
ñ 
™Yñ 
r(   c                ó  <€ \         SV `  4        Wn        VP                  V n        VP                  V n        V P                  ^ 8”  g   Q hVP
                  V n        \        P                  ! VP                  VP                  4      V n
        \        VP                  4       Uu. uF  p\        WR7      NK  	  upV n        \        P                  ! VP                  VP                  VP                   R7      V n        R# u upi )r   )r5   r6   r…   N)r>   r?   r5   r   r   r   Úwindow_sizerD   Ú	Embeddingr   Úembed_tokensÚranger�   Úlayersr‰   r   r   Únorm)rM   r5   ÚirP   s   && €r%   r?   ÚCohereModel.__init__�   sÊ   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒØ!%×!7Ñ!7ˆÔØ�‰ Ô"Ð"Ð"Ø×.Ñ.ˆÔÜŸLšL¨¯©¸$×:JÑ:JÓKˆÔô ˜4×1Ñ1Ô2ó
á2�ô  $×4Ù2ñ
ˆŒô —L’LØ×Ñ $×"5Ñ"5¸D×<PÑ<Pô
ˆŽ	ùò	
s   Â#C>c                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r   Úinputs©rY   rZ   )r#   r$   s   "€r%   r&   r—   �   s   ø€ ÷ ñ á—‘ñr(   c                ó  € V P                  V4      pVf   R .\        V P                  4      ,          pV P                  P                  p\        W2V^,
          ,          4      p\        W2^ ,          V P                  R7      p\        \        V P                  V4      4       FW  w  pw  r‰WpP                  P                  ,          V P                  P                  ^,
          8H  p
V
'       d   TMTpV! W;V	4      pKY  	  V P                  V4      # )N)r™   )
r›   Úlenr�   r5   r   r   r™   Ú	enumerateÚziprž   )rM   r£   rV   rŽ   ÚjÚ	full_maskÚswa_maskrŸ   ÚlayerÚcÚ	is_globalrU   s   &&&         r%   ro   ÚCohereModel.__call__�   sÙ   € ð
 ×Ñ˜fÓ%ˆàŠ=Ø�FœS §¡Ó-Õ-ˆEà�I‰I×,Ñ,ˆÜ)¨!°1°qµ5­\Ó:ˆ	Ü(¨°!­HÀ$×BRÑBRÔSˆä&¤s¨4¯;©;¸Ó'>Ö?‰MˆA‰z�à—I‘I×4Ñ4Õ4Ø—9‘9×3Ñ3°aÕ7ñ8ð ÷
 !*‘9¨xˆDá�a˜qÓ!ŠAñ @ð �y‰y˜‹|Ðr(   )r5   r›   r�   rž   r   r   r™   r~   rr   rt   s   @@r%   r“   r“   Œ   s   ù‡ € ÷
ó 
÷ ÷ ò r(   r“   c                   ój   a a€ ] tR t^¸t oV3R lV 3R lltRV3R lR lltR t]R 4       tRt	Vt
V ;t# )	ÚModelc                ó    <€ V ^8„  d   QhRS[ /# r•   r–   )r#   r$   s   "€r%   r&   ÚModel.__annotate__¹   s   ø€ ÷ ñ ™Yñ r(   c                ór   <€ \         SV `  4        VP                  V n        \        V4      V n        Wn        R # r~   )r>   r?   r   r“   Úmodelr5   )rM   r5   rP   s   &&€r%   r?   ÚModel.__init__¹   s*   ø€ Ü‰ÑÔØŸ/™/ˆŒÜ  Ó&ˆŒ
ØŽ	r(   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r¢   r¤   )r#   r$   s   "€r%   r&   r³   ¿   s   ø€ ÷ ñ á—‘ñr(   c                ó¾   € V P                  W4      pV P                   P                  P                  V4      pW0P                   P                  P                  ,          pV# r~   )rµ   r›   Ú	as_linearr5   r   )rM   r£   rV   Úouts   &&& r%   ro   ÚModel.__call__¿   sG   € ð
 �j‰j˜Ó'ˆØ�j‰j×%Ñ%×/Ñ/°Ó4ˆØ—J‘J—O‘O×/Ñ/Õ/ˆØˆ
r(   c                ód  € . p\        V P                  P                  4       FŠ  pW P                  P                  ,          V P                  P                  ^,
          8X  d   VP	                  \        4       4       KZ  VP	                  \        V P                  P                  ^ R7      4       KŒ  	  V# )r\   )Úmax_sizeÚkeep)rœ   r5   r   r   Úappendr
   r   r   )rM   ÚcachesrŸ   s   &  r%   Ú
make_cacheÚModel.make_cacheÉ   s~   € ØˆÜ�t—y‘y×2Ñ2Ö3ˆAà—I‘I×4Ñ4Õ4Ø—9‘9×3Ñ3°aÕ7ô8ð —‘œg›iÖ(à—‘Ü#¨T¯Y©Y×-EÑ-EÈAÔNöñ 4ð ˆr(   c                ó.   € V P                   P                  # r~   )rµ   r�   )rM   s   &r%   r�   ÚModel.layers×   s   € à�z‰z× Ñ Ð r(   )r5   rµ   r   r~   )r*   r+   r,   r-   r?   ro   rÁ   Úpropertyr�   r/   r0   rs   rt   s   @@r%   r±   r±   ¸   s7   ù‡ € ÷ó ÷ò òð ñ!ó ÷!ð !r(   r±   )Údataclassesr   Útypingr   r   Úmlx.coreÚcorerY   Úmlx.nnrD   Úactivationsr   r=   r   r   r	   rV   r
   r   r   ÚModuler2   rv   r�   r“   r±   r)   r(   r%   Ú<module>rÍ      s�   ðõ "ß "å Ý å ß TÑ Tß +ð ô$�ó $ó ð$ô$B#�—	‘	ô B#ôJJˆ"�)‰)ô Jô!�r—y‘yô !ô6)�"—)‘)ô )ôX!!ˆB�I‰Iö !!r(   