+
    TV-jÆ  ã                   ój  € ^ RI Ht ^ RIHtHt ^ RIHt ^ RIH	t	 ^RI
Ht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 R]	P                  4      tR# )é    )Ú	dataclass)ÚAnyÚOptionalN)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attentionc                   ó4   a € ] tR t^t o RtRtV 3R ltRtV tR# )Ú	ModelArgsi'  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&   # )é   Ú
model_typeÚhidden_sizeÚnum_hidden_layersÚintermediate_sizeÚnum_attention_headsÚhead_dimÚrms_norm_epsÚ
vocab_sizeÚnum_key_value_headsÚ
rope_thetaÚrope_traditional)ÚstrÚintÚfloatÚbool)ÚformatÚ__classdict__s   "€Úd/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/gemma.pyÚ__annotate__ÚModelArgs.__annotate__   s�   ø‡ ‚ á�Oñ ñ Ññ ñ Ññ	 ñ
 Ññ ñ Ññ ñ �Mñ ñ Ññ ñ �Oñ ñ Ññ ñ Ññ ñ Ñ"ò ó    © N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r   s   @r   r
   r
      s   ø‡ € ð €JØ"Ð÷ ƒ r!   r
   c                   óH   a a€ ] tR t^t oRV3R lV 3R llltR tRtVtV ;t# )ÚRMSNormc                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   ÚdimsÚeps)r   r   )r   r   s   "€r   r   ÚRMSNorm.__annotate__   s   ø€ ÷ ñ ™Sð ¡uñ r!   c                óh   <€ \         SV `  4        \        P                  ! V34      V n        W n        R # ©N)ÚsuperÚ__init__ÚmxÚonesÚweightr.   )Úselfr-   r.   Ú	__class__s   &&&€r   r3   ÚRMSNorm.__init__   s%   ø€ Ü‰ÑÔÜ—g’g˜t˜gÓ&ˆŒØŽr!   c                óz   € \         P                  P                  VR V P                  ,           V P                  4      # )g      ð?)r4   ÚfastÚrms_normr6   r.   ©r7   Úxs   &&r   Ú__call__ÚRMSNorm.__call__!   s(   € Ü�w‰w×Ñ  3¨¯©Õ#4°d·h±hÓ?Ð?r!   )r.   r6   )gñhãˆµøä>©	r#   r$   r%   r&   r3   r?   r(   r)   Ú__classcell__©r8   r   s   @@r   r+   r+      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# )Ú	Attentionc                ó    <€ V ^8„  d   QhRS[ /# ©r   Úargs©r
   )r   r   s   "€r   r   ÚAttention.__annotate__&   s   ø€ ÷ 
ñ 
™Yñ 
r!   c                óN  <€ \         SV `  4        VP                  pVP                  ;V n        pVP
                  ;V n        pVP                  ;V n        pVR,          V n        \        P                  ! W#V,          RR7      V n        \        P                  ! W$V,          RR7      V n        \        P                  ! W$V,          RR7      V n        \        P                  ! W5,          VRR7      V n        \        P                  ! VVP                   VP"                  R7      V n        R# )ç      à?F©Úbias)ÚtraditionalÚbaseNg      à¿)r2   r3   r   r   Ún_headsr   Ú
n_kv_headsr   ÚscaleÚnnÚLinearÚq_projÚk_projÚv_projÚo_projÚRoPEr   r   Úrope)r7   rH   ÚdimrQ   rR   r   r8   s   &&    €r   r3   ÚAttention.__init__&   s×   ø€ Ü‰ÑÔà×ÑˆØ!%×!9Ñ!9Ð9ˆŒ�wØ'+×'?Ñ'?Ð?ˆŒ˜*Ø#'§=¡=Ð0ˆŒ˜à˜t•^ˆŒ
ä—i’i ¨xÕ%7¸eÔDˆŒÜ—i’i °(Õ%:ÀÔGˆŒÜ—i’i °(Õ%:ÀÔGˆŒÜ—i’i Õ 2°C¸eÔDˆŒä—G’GØØ×-Ñ-Ø—‘ô
ˆŽ	r!   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# ©r   r>   ÚmaskÚcacheÚreturn©r4   Úarrayr   r   )r   r   s   "€r   r   rJ   ;   sH   ø€ ÷ #ñ #á�8‰8ð#ñ ‘r—x‘xÕ ð#ñ ™�}ð	#ñ
 
�‰ñ#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eM   V P                  WsP                  R7      pV P                  WƒP                  R7      pVP                  W‰4      w  r‰M"V P                  V4      pV P                  V4      p\        WxW“V P                  VR7      p
V
P                  ^ ^^^4      P	                  WER4      p
V P                  V
4      # )é   )Úoffset)ra   rS   r`   éÿÿÿÿ)ÚshaperV   rW   rX   ÚreshaperQ   Ú	transposerR   r[   rg   Úupdate_and_fetchr   rS   rY   )r7   r>   r`   ra   ÚBÚLÚDÚqueriesÚkeysÚvaluesÚoutputs   &&&&       r   r?   ÚAttention.__call__;   sS  € ð —'‘'‰ˆˆ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ˆàÒØ—i‘i ·±�iÓ=ˆGØ—9‘9˜T¯,©,�9Ó7ˆDØ ×1Ñ1°$Ó?‰LˆD�&à—i‘i Ó(ˆGØ—9‘9˜T“?ˆDä-Ø˜6°d·j±jÀtô
ˆð ×!Ñ! ! Q¨¨1Ó-×5Ñ5°a¸BÓ?ˆØ�{‰{˜6Ó"Ð"r!   )	r   rW   rQ   rR   rY   rV   r[   rS   rX   ©NNrA   rC   s   @@r   rE   rE   %   s   ù‡ € ÷
ó 
÷*#÷ #ò #r!   rE   c                   óD   a a€ ] tR t^Zt oV 3R ltV3R lR l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# )FrM   N)r2   r3   rT   rU   Ú	gate_projÚ	down_projÚup_proj)r7   r\   Ú
hidden_dimr8   s   &&&€r   r3   ÚMLP.__init__[   sD   ø€ Ü‰ÑÔÜŸš 3¸Ô?ˆŒÜŸš :¸Ô?ˆŒÜ—y’y °uÔ=ˆŽr!   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   rb   ©r4   rd   )r   r   s   "€r   r   ÚMLP.__annotate__a   s   ø€ ÷ Lñ L™RŸX™Xñ Lr!   c                ó–   € V P                  \        P                  ! V P                  V4      4      V P	                  V4      ,          4      # r1   )rz   rT   Úgelury   r{   r=   s   &&r   r?   ÚMLP.__call__a   s0   € Ø�~‰~œbŸgšg d§n¡n°QÓ&7Ó8¸4¿<¹<È»?ÕJÓKÐKr!   )rz   ry   r{   rA   rC   s   @@r   rw   rw   Z   s   ù‡ € õ>÷L÷ Lð Lr!   rw   c                   óT   a a€ ] tR t^et 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[ /# rG   rI   )r   r   s   "€r   r   ÚTransformerBlock.__annotate__f   s   ø€ ÷ ñ ™Yñ r!   c                óv  <€ \         SV `  4        VP                  V n        VP                  V n        \	        V4      V n        \        VP                  VP                  4      V n        \        VP                  VP                  R 7      V n        \        VP                  VP                  R 7      V n        Wn        R# )©r.   N)r2   r3   r   r   rE   Ú	self_attnrw   r   Úmlpr+   r   Úinput_layernormÚpost_attention_layernormrH   ©r7   rH   r8   s   &&€r   r3   ÚTransformerBlock.__init__f   sŠ   ø€ Ü‰ÑÔØ#'×#;Ñ#;ˆÔ Ø×+Ñ+ˆÔÜ" 4›ˆŒÜ�t×'Ñ'¨×)?Ñ)?Ó@ˆŒÜ& t×'7Ñ'7¸T×=NÑ=NÔOˆÔÜ(/°×0@Ñ0@Àd×FWÑFWÔ(XˆÔ%ØŽ	r!   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# r_   rc   )r   r   s   "€r   r   r‡   p   sH   ø€ ÷ 
ñ 
á�8‰8ð
ñ ‘r—x‘xÕ ð
ñ ™�}ð	
ñ
 
�‰ñ
r!   c                ó¨   € V P                  V P                  V4      W#4      pW,           pV P                  V P                  V4      4      pWT,           pV# r1   )rŠ   rŒ   r‹   r�   )r7   r>   r`   ra   ÚrÚhÚouts   &&&&   r   r?   ÚTransformerBlock.__call__p   sK   € ð �N‰N˜4×/Ñ/°Ó2°DÓ@ˆØ�EˆØ�H‰H�T×2Ñ2°1Ó5Ó6ˆØ�eˆØˆ
r!   )rH   r   rŒ   r‹   r   r�   rŠ   ru   rA   rC   s   @@r   r…   r…   e   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# )Ú
GemmaModelc                ó    <€ V ^8„  d   QhRS[ /# rG   rI   )r   r   s   "€r   r   ÚGemmaModel.__annotate__~   s   ø€ ÷ 
Eñ 
E™Yñ 
Er!   c                ó¸  <€ \         SV `  4        Wn        VP                  V n        VP                  V n        V P                  ^ 8”  g   Q h\
        P                  ! VP                  VP                  4      V n        \        VP                  4       Uu. uF  p\        VR7      NK  	  upV n        \        VP                  VP                  R7      V n        R# u upi )r   )rH   r‰   N)r2   r3   rH   r   r   rT   Ú	Embeddingr   Úembed_tokensÚranger…   Úlayersr+   r   Únorm)r7   rH   Ú_r8   s   && €r   r3   ÚGemmaModel.__init__~   s©   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒØ!%×!7Ñ!7ˆÔØ�‰ Ô"Ð"Ð"ÜŸLšL¨¯©¸$×:JÑ:JÓKˆÔä16°t×7MÑ7MÔ1Nó
Ù1N¨AÔ $×'Ñ1Nñ
ˆŒô ˜D×,Ñ,°$×2CÑ2CÔDˆŽ	ùò
s   ÂCc                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r   Úinputsr   )r   r   s   "€r   r   r™   Š   s   ø€ ÷ ñ á—‘ñr!   c                óB  € V P                  V4      pW0P                  P                  R ,          ,          pVf   R.\        V P                  4      ,          p\        W2^ ,          4      p\        V P                  V4       F  w  rVV! W4V4      pK  	  V P                  V4      # )rL   N)rœ   rH   r   Úlenrž   r   ÚziprŸ   )r7   r¤   ra   r“   r`   ÚlayerÚcs   &&&    r   r?   ÚGemmaModel.__call__Š   s†   € ð
 ×Ñ˜fÓ%ˆØ—‘×&Ñ&¨Õ+Õ,ˆàŠ=Ø�FœS §¡Ó-Õ-ˆEä$ Q¨a­Ó1ˆä˜DŸK™K¨Ö/‰HˆEÙ�a˜qÓ!ŠAñ 0ð �y‰y˜‹|Ðr!   )rH   rœ   rž   rŸ   r   r   r1   rA   rC   s   @@r   r—   r—   }   s    ù‡ € ÷
Eó 
E÷÷ ò r!   r—   c                   ód   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 4       tRtVt	V ;t
# )ÚModelc                ó    <€ V ^8„  d   QhRS[ /# rG   rI   )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 # r1   )r2   r3   r   r—   ÚmodelrH   rŽ   s   &&€r   r3   Ú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                ór   € V P                  W4      pV P                   P                  P                  V4      pV# r1   )r°   rœ   Ú	as_linear)r7   r¤   ra   r”   s   &&& r   r?   ÚModel.__call__¤   s1   € ð
 �j‰j˜Ó'ˆØ�j‰j×%Ñ%×/Ñ/°Ó4ˆØˆ
r!   c                ó.   € V P                   P                  # r1   )r°   rž   )r7   s   &r   rž   ÚModel.layers­   s   € à�z‰z× Ñ Ð r!   )rH   r°   r   r1   )r#   r$   r%   r&   r3   r?   Úpropertyrž   r(   r)   rB   rC   s   @@r   r¬   r¬   �   s2   ù‡ € ÷ó ÷ò ð ñ!ó ÷!ð !r!   r¬   )Údataclassesr   Útypingr   r   Úmlx.coreÚcorer4   Úmlx.nnrT   rP   r   r   r   r
   ÚModuler+   rE   rw   r…   r—   r¬   r"   r!   r   Ú<module>r¿      sš   ðõ "ß  å Ý ç TÑ Tð ô#�ó #ó ð#ô@ˆb�i‰iô @ô2#�—	‘	ô 2#ôjLˆ"�)‰)ô Lô�r—y‘yô ô0�—‘ô ô@!ˆB�I‰Iö !r!   