+
    TV-j?  ã                   óf  € ^ RI Ht ^ RIHtHt ^ RIHt ^ RI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 R]	P                  4      tR# )é    )Ú	dataclass)ÚAnyÚOptionalN)ÚBaseModelArgsÚcreate_attention_maskc                   ó@   a € ] tR t^t o RtRtRtRtRtV 3R lt	Rt
V tR# )	Ú	ModelArgsi'  Fg      I@g      >@g      b@c                óÂ   <€ 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&   # )é   Ú
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Úattn_logit_softcappingÚfinal_logit_softcappingÚquery_pre_attn_scalar)ÚstrÚintÚfloatÚbool)ÚformatÚ__classdict__s   "€Úe/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/gemma2.pyÚ__annotate__ÚModelArgs.__annotate__   s¶   ø‡ ‚ á�Oñ ñ Ññ ñ Ññ	 ñ
 Ññ ñ Ññ ñ �Mñ ñ Ññ ñ �Oñ ñ Ññ ñ Ññ ñ Ñ"ñ ñ "Ñ(ñ ñ #Ñ)ñ ñ !Ñ(ò ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   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Úweightr0   )Úselfr/   r0   Ú	__class__s   &&&€r    r5   ÚRMSNorm.__init__   s%   ø€ Ü‰ÑÔÜ—g’g˜t˜gÓ&ˆŒØŽr#   c                óz   € \         P                  P                  VR V P                  ,           V P                  4      # )ç      ð?)r6   ÚfastÚrms_normr8   r0   ©r9   Úxs   &&r    Ú__call__ÚRMSNorm.__call__$   s(   € Ü�w‰w×Ñ  3¨¯©Õ#4°d·h±hÓ?Ð?r#   )r0   r8   )gñhãˆµøä>©	r%   r&   r'   r(   r5   rB   r*   r+   Ú__classcell__©r:   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                ó¬  <€ \         SV `  4        VP                  pVP                  ;V n        pVP
                  ;V n        pW4,          V n        VP                  ;V n        pR VP                  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        VP"                  V n        \        P$                  ! VVP&                  VP(                  R7      V n        R# )r=   ç      à?F©Úbias)ÚtraditionalÚbaseN)r4   r5   r   r   Ún_headsr   Ú
n_kv_headsÚrepeatsr   r   ÚscaleÚnnÚLinearÚq_projÚk_projÚv_projÚo_projr   ÚRoPEr   r   Úrope)r9   rK   ÚdimrT   rU   r   r:   s   &&    €r    r5   ÚAttention.__init__)   sû   ø€ Ü‰ÑÔà×ÑˆØ!%×!9Ñ!9Ð9ˆŒ�wØ'+×'?Ñ'?Ð?ˆŒ˜*ØÕ,ˆŒØ#'§=¡=Ð0ˆŒ˜à˜D×6Ñ6¸Õ;Õ<ˆŒ
ä—i’i ¨xÕ%7¸eÔDˆŒÜ—i’i °(Õ%:ÀÔGˆŒÜ—i’i °(Õ%:ÀÔGˆŒÜ—i’i Õ 2°C¸eÔDˆŒØ&*×&AÑ&AˆÔ#Ü—G’GØØ×-Ñ-Ø—‘ô
ˆŽ	r#   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# ©r   rA   ÚmaskÚcacheÚreturn©r6   Úarrayr   r   )r   r   s   "€r    r!   rM   ?   sH   ø€ ÷ -#ñ -#á�8‰8ð-#ñ ‘r—x‘xÕ ð-#ñ ™�}ð	-#ñ
 
�‰ñ-#r#   c           	     óT  € 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WpP                  ,          pV P                  ^8”  d`   VP	                  W@P                  V P                  WPP                  4      p\        P                  ! V^4      p\        P                  ! V	^4      p	WxP!                  RR4      ,          p
\        P"                  ! W P$                  ,          4      p
W P$                  ,          p
Ve‡   VP&                  \        P(                  8X  d`   \        P*                  ! W*\        P,                  ! \        P.                  ! V
P&                  4      P0                  V
P&                  4      4      p
MW¢,           p
\        P2                  ! V
RRR7      p
W©,          pV P                  ^8”  d'   VP	                  W@P
                  WPP                  4      pVP                  ^ ^^^4      P	                  WER4      pV P5                  V4      # )é   )ÚoffsetT)ÚpreciseÚaxiséÿÿÿÿéþÿÿÿ)ÚshaperZ   r[   r\   ÚreshaperT   Ú	transposerU   r_   rk   Úupdate_and_fetchrW   rV   r   r6   Úexpand_dimsÚswapaxesÚtanhr   ÚdtypeÚbool_Úwhererh   ÚfinfoÚminÚsoftmaxr]   )r9   rA   rd   re   ÚBÚLÚDÚqueriesÚkeysÚvaluesÚscoresÚoutputs   &&&&        r    rB   Ú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ˆàÒØ—i‘i ·±�iÓ=ˆGØ—9‘9˜T¯,©,�9Ó7ˆDØ ×1Ñ1°$Ó?‰LˆD�&à—i‘i Ó(ˆGØ—9‘9˜T“?ˆDàŸJ™JÕ&ˆà�<‰<˜!ÔØ—o‘oØ—?‘? D§L¡L°!·]±]óˆGô —>’> $¨Ó*ˆDÜ—^’^ F¨AÓ.ˆFàŸ=™=¨¨RÓ0Õ0ˆÜ—’˜×"=Ñ"=Õ=Ó>ˆØ×-Ñ-Õ-ˆàÒØ�z‰zœRŸX™XÔ%ÜŸšØ¤"§(¢(¬2¯8ª8°F·L±LÓ+A×+EÑ+EÀvÇ|Á|Ó"Tó‘ð  ��Ü—’˜F¨D°rÔ:ˆØ•ˆØ�<‰<˜!ÔØ—^‘^ A§|¡|°Q¿¹ÓFˆFØ×!Ñ! ! Q¨¨1Ó-×5Ñ5°a¸BÓ?ˆØ�{‰{˜6Ó"Ð"r#   )r   r   r[   rT   rU   r]   rZ   rV   r_   rW   r\   ©NNrD   rF   s   @@r    rH   rH   (   s   ù‡ € ÷
ó 
÷,-#÷ -#ò -#r#   rH   c                   óD   a a€ ] tR t^ot 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# )FrP   N)r4   r5   rX   rY   Ú	gate_projÚ	down_projÚup_proj)r9   r`   Ú
hidden_dimr:   s   &&&€r    r5   ÚMLP.__init__p   sD   ø€ Ü‰ÑÔÜŸš 3¸Ô?ˆŒÜŸš :¸Ô?ˆŒÜ—y’y °uÔ=ˆŽr#   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   rf   ©r6   rh   )r   r   s   "€r    r!   ÚMLP.__annotate__v   s   ø€ ÷ Sñ S™RŸX™Xñ Sr#   c                ó–   € V P                  \        P                  ! V P                  V4      4      V P	                  V4      ,          4      # r3   )r‹   rX   Úgelu_approxrŠ   rŒ   r@   s   &&r    rB   ÚMLP.__call__v   s0   € Ø�~‰~œbŸnšn¨T¯^©^¸AÓ->Ó?À$Ç,Á,ÈqÃ/ÕQÓRÐRr#   )r‹   rŠ   rŒ   rD   rF   s   @@r    rˆ   rˆ   o   s   ù‡ € õ>÷S÷ Sð Sr#   rˆ   c                   óT   a a€ ] tR t^zt 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[ /# rJ   rL   )r   r   s   "€r    r!   ÚTransformerBlock.__annotate__{   s   ø€ ÷ ñ ™Yñ r#   c                ó  <€ \         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        \        VP                  VP                  R 7      V n        \        VP                  VP                  R 7      V n        Wn        R# )©r0   N)r4   r5   r   r   rH   Ú	self_attnrˆ   r   Úmlpr-   r   Úinput_layernormÚpre_feedforward_layernormÚpost_feedforward_layernormÚpost_attention_layernormrK   ©r9   rK   r:   s   &&€r    r5   ÚTransformerBlock.__init__{   sÊ   ø€ Ü‰ÑÔØ#'×#;Ñ#;ˆÔ Ø×+Ñ+ˆÔÜ" 4›ˆŒÜ�t×'Ñ'¨×)?Ñ)?Ó@ˆŒÜ& t×'7Ñ'7¸T×=NÑ=NÔOˆÔÜ)0Ø×Ñ $×"3Ñ"3ô*
ˆÔ&ô +2Ø×Ñ $×"3Ñ"3ô+
ˆÔ'ô )0°×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                  /# rc   rg   )r   r   s   "€r    r!   r˜   ‹   sH   ø€ ÷ 
ñ 
á�8‰8ð
ñ ‘r—x‘xÕ ð
ñ ™�}ð	
ñ
 
�‰ñ
r#   c                óä   € V P                  V P                  V4      W#4      pWP                  V4      ,           pV P                  V P	                  V4      4      pWPP                  V4      ,           pV# r3   )r›   r�   r    rœ   rž   rŸ   )r9   rA   rd   re   ÚrÚhÚouts   &&&&   r    rB   ÚTransformerBlock.__call__‹   sc   € ð �N‰N˜4×/Ñ/°Ó2°DÓ@ˆØ×-Ñ-¨aÓ0Õ0ˆØ�H‰H�T×3Ñ3°AÓ6Ó7ˆØ×1Ñ1°!Ó4Õ4ˆØˆ
r#   )	rK   r   r�   rœ   r   r    rŸ   rž   r›   r†   rD   rF   s   @@r    r–   r–   z   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[ /# rJ   rL   )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   )rK   rš   N)r4   r5   rK   r   r   rX   Ú	Embeddingr   Úembed_tokensÚranger–   Úlayersr-   r   Únorm)r9   rK   Ú_r:   s   && €r    r5   Ú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                óF  € V P                  V4      pW0P                  P                  R ,          ,          pVf   R.\        V P                  4      ,          p\        W2^ ,          RR7      p\        V P                  V4       F  w  rVV! W4V4      pK  	  V P                  V4      # )rO   NT)Úreturn_array)r¯   rK   r   Úlenr±   r   Úzipr²   )r9   r·   re   r¦   rd   ÚlayerÚcs   &&&    r    rB   ÚGemmaModel.__call__¥   sˆ   € ð
 ×Ñ˜fÓ%ˆØ—‘×&Ñ&¨Õ+Õ,ˆàŠ=Ø�FœS §¡Ó-Õ-ˆEä$ Q¨a­¸tÔDˆä˜DŸK™K¨Ö/‰HˆEÙ�a˜qÓ!ŠAñ 0ð �y‰y˜‹|Ðr#   )rK   r¯   r±   r²   r   r   r3   rD   rF   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[ /# rJ   rL   )r   r   s   "€r    r!   ÚModel.__annotate__¹   s   ø€ ÷ ñ ™Yñ r#   c                ó”   <€ \         SV `  4        VP                  V n        VP                  V n        \	        V4      V n        Wn        R # r3   )r4   r5   r   r   rª   ÚmodelrK   r¡   s   &&€r    r5   ÚModel.__init__¹   s8   ø€ Ü‰ÑÔØŸ/™/ˆŒØ'+×'CÑ'CˆÔ$Ü Ó%ˆŒ
ØŽ	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\        P                  ! W0P
                  ,          4      pW0P
                  ,          pV# r3   )rÄ   r¯   Ú	as_linearr6   rv   r   )r9   r·   re   r§   s   &&& r    rB   ÚModel.__call__À   sV   € ð
 �j‰j˜Ó'ˆØ�j‰j×%Ñ%×/Ñ/°Ó4ˆÜ�gŠg�c×8Ñ8Õ8Ó9ˆØ×0Ñ0Õ0ˆØˆ
r#   c                ó.   € V P                   P                  # r3   )rÄ   r±   )r9   s   &r    r±   ÚModel.layersË   s   € à�z‰z× Ñ Ð r#   )rK   r   rÄ   r   r3   )r%   r&   r'   r(   r5   rB   Úpropertyr±   r*   r+   rE   rF   s   @@r    rÀ   rÀ   ¸   s2   ù‡ € ÷ó ÷	ò 	ð ñ!ó ÷!ð !r#   rÀ   )Údataclassesr   Útypingr   r   Úmlx.coreÚcorer6   Úmlx.nnrX   rS   r   r   r	   ÚModuler-   rH   rˆ   r–   rª   rÀ   r$   r#   r    Ú<module>rÓ      s™   ðõ "ß  å Ý ç 6ð ô)�ó )ó ð)ô"@ˆb�i‰iô @ôD#�—	‘	ô D#ôNSˆ"�)‰)ô Sô�r—y‘yô ô<�—‘ô ô@!ˆB�I‰Iö !r#   