+
    UV-jÅ(  ã                   ó^  € ^ RI Ht ^ RIHt ^ RIHt ^RIHtH	t	H
t
 ^RIHt ^RIHt R R l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# )é    )ÚOptionalN)ÚLanguageModelOutputÚcreate_attention_maskÚscaled_dot_product_attention)ÚKVCache©Ú
TextConfigc                ó$   € V ^8„  d   QhR\         /# ©é   Úconfigr   )Úformats   "Úr/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/paligemma/language.pyÚ__annotate__r      s   € ÷ 
Fñ 
F¤Jñ 
Fó    c                 óÐ   € \        V R R4      pVf   \        V RR4      pVR8X  d   \        P                  ! 4       # VR	9   d   \        P                  ! RR7      # \        RV R24      h)
Úhidden_activationNÚ
hidden_actÚgelu_pytorch_tanhÚgeluÚprecise)ÚapproxzUnsupported activation 'z' for PaliGemma)r   Úgelu_newÚ	gelu_fastÚtanh)ÚgetattrÚnnÚGELUÚ
ValueError)r   Úacts   & r   Ú_activation_from_configr!      se   € Ü
�&Ð-¨tÓ
4€CØ
‚{Ü�f˜lÐ,?Ó@ˆà
ˆf„}Ü�wŠw‹yÐØ
ÐDÔDÜ�wŠw˜iÔ(Ð(ä
Ð/°¨u°OÐDÓ
EÐEr   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)ÚintÚfloat)r   Ú__classdict__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   r.   ÚRMSNorm.__init__   s%   ø€ Ü‰ÑÔÜ—g’g˜t˜gÓ&ˆŒØŽr   c                óz   € \         P                  P                  VR V P                  ,           V P                  4      # )ç      ð?)r/   ÚfastÚrms_normr1   r&   ©r2   Úxs   &&r   Ú__call__ÚRMSNorm.__call__"   s(   € Ü�w‰w×Ñ  3¨¯©Õ#4°d·h±hÓ?Ð?r   )r&   r1   )g�íµ ÷Æ°>©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r.   r;   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r3   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   r   )r   r)   s   "€r   r   ÚAttention.__annotate__'   s   ø€ ÷ 
ñ 
™zñ 
r   c                ób  <€ \         SV `  4        VP                  pVP                  ;V n        pVP
                  ;V n        pVP                  V n        VP                  V n        W4,          V n	        V P                  R 8X  d   VP                  V,          MVP                  ;V n
        pV P                  R 8X  d
   VR,          MRVP                  R,          ,          V n        \        VRR4      p\        P                  ! W#V,          VR7      V n        \        P                  ! W$V,          VR7      V n        \        P                  ! W$V,          VR7      V n        \        P                  ! W5,          W&R7      V n        \        P(                  ! VVP*                  VP,                  R7      V n        R# )	Úgemmaç      à?r6   Úattention_biasF©Úbias)ÚtraditionalÚbaseNg      à¿)r-   r.   Úhidden_sizeÚnum_attention_headsÚn_headsÚnum_key_value_headsÚ
n_kv_headsÚ
model_typeÚattn_logit_softcappingÚrepeatsÚhead_dimÚquery_pre_attn_scalarÚscaler   r   ÚLinearÚq_projÚk_projÚv_projÚo_projÚRoPEÚrope_traditionalÚ
rope_thetaÚrope)r2   r   ÚdimrT   rV   rZ   rM   r3   s   &&     €r   r.   ÚAttention.__init__'   sS  ø€ Ü‰ÑÔà× Ñ ˆØ!'×!;Ñ!;Ð;ˆŒ�wØ'-×'AÑ'AÐAˆŒ˜*Ø ×+Ñ+ˆŒØ&,×&CÑ&CˆÔ#ØÕ,ˆŒð �‰ 'Ô)ð ×Ñ 'Ö)à—‘ð	
ˆŒ˜ð �‰ 'Ô)ð �dŽNà˜×4Ñ4°cÕ9Õ:ð 	Œ
ô
 ! Ð)9¸5ÓAˆä—i’i ¨xÕ%7¸nÔMˆŒÜ—i’i °(Õ%:ÀÔPˆŒÜ—i’i °(Õ%:ÀÔPˆŒÜ—i’i Õ 2°CÔMˆŒä—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©r/   Úarrayr   r   )r   r)   s   "€r   r   rI   G   sO   ø€ ÷ A#ñ A#á�8‰8ðA#ñ ‘r—x‘xÕ ðA#ñ ™Õ ð	A#ñ
 
�‰ñA#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V P                  R8X  d   \        WxW“V P                  VR7      p
EMiWpP                  ,          pV P                  ^8”  dE   \        P                   ! W€P                  ^R7      p\        P                   ! W�P                  ^R7      p	VP#                  \        P$                  4      VP#                  \        P$                  4      P'                  R
R4      ,          pV P(                  e9   \        P*                  ! W°P(                  ,          4      pW°P(                  ,          pVEe+   VP,                  ^8X  d-   VP                   ^ ,          V8X  d   VR,          pM$VR,          pMVP,                  ^8X  d
   VR,          pVRRVP                   R,          13,          pVP.                  \        P0                  \        P2                  \        P$                  39  dU   VP#                  VP.                  4      pRV,
          \        P4                  ! VP.                  4      P6                  ,          pMVP#                  VP.                  4      pW²,           p\        P8                  ! VRR
R	7      P#                  VP.                  4      pW¹,          p
V
P                  ^ ^^^4      P	                  WER
4      p
V P;                  V
4      # )é   N)ÚoffsetrK   )r\   rj   )Úaxis.r6   T)r   rr   éÿÿÿÿéþÿÿÿ)ºNNNNNru   )NNru   ru   )ru   Nru   ru   )Úshaper^   r_   r`   ÚreshaperT   Ú	transposerV   re   rq   Úupdate_and_fetchrW   r   r\   rY   r/   ÚrepeatÚastypeÚfloat32ÚswapaxesrX   r   ÚndimÚdtypeÚfloat16Úbfloat16ÚfinfoÚminÚsoftmaxra   )r2   r:   rj   rk   ÚBÚLÚDÚqueriesÚkeysÚvaluesÚoutputÚscoress   &&&&        r   r;   ÚAttention.__call__G   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à�?‰?˜gÔ%Ü1Ø˜v°D·J±JÀTôŠFð §
¡
Õ*ˆGà�|‰|˜aÔÜ—y’y §|¡|¸!Ô<�ÜŸš 6¯<©<¸aÔ@�ð —^‘^¤B§J¡JÓ/°$·+±+¼b¿j¹jÓ2I×2RÑ2RØ�Bó3õ ˆFð ×*Ñ*Ò6ÜŸš ×*EÑ*EÕ!EÓF�Ø×5Ñ5Õ5�àÓð —9‘9 ”>Ø—z‘z !•}¨Ô)Ø#Ð$4Õ5™à#Ð$4Õ5™Ø—Y‘Y !”^Ø Õ.�Dà˜CÐ!1 4§:¡:¨b¥>Ð!1Ð1Õ2�Ø—:‘:¤b§j¡j´"·+±+¼r¿z¹zÐ%JÔJØŸ;™; v§|¡|Ó4�DØ $�J¬"¯(ª(°6·<±<Ó*@×*DÑ*DÕD‘DàŸ;™; v§|¡|Ó4�DØ��Ü—Z’Z °¸2Ô>×EÑEÀgÇmÁmÓTˆFØ•_ˆFà×!Ñ! ! Q¨¨1Ó-×5Ñ5°a¸BÓ?ˆØ�{‰{˜6Ó"Ð"r   )rX   rZ   r_   rW   rT   rV   ra   r^   rY   re   r\   r`   ©NNr=   rE   s   @@r   rG   rG   &   s"   ù‡ € ÷
ó 
÷@A#÷ A#ò A#r   rG   c                   óP   a a€ ] tR t^‹t oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚMLPc                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r)   s   "€r   r   ÚMLP.__annotate__Œ   s   ø€ ÷ :ñ :™zñ :r   c                óp  <€ \         SV `  4        \        P                  ! VP                  VP
                  R R7      V n        \        P                  ! VP
                  VP                  R R7      V n        \        P                  ! VP                  VP
                  R R7      V n        \        V4      V n
        R# )FrN   N)r-   r.   r   r]   rR   Úintermediate_sizeÚ	gate_projÚ	down_projÚup_projr!   Ú
activation©r2   r   r3   s   &&€r   r.   ÚMLP.__init__Œ   s‰   ø€ Ü‰ÑÔÜŸšØ×Ñ × 8Ñ 8¸uô
ˆŒô ŸšØ×$Ñ$ f×&8Ñ&8¸uô
ˆŒô —y’yØ×Ñ × 8Ñ 8¸uô
ˆŒô 2°&Ó9ˆŽr   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   rl   )r/   rn   )r   r)   s   "€r   r   r’   ™   s   ø€ ÷ Tñ T™RŸX™Xñ Tr   c                óŒ   € V P                  V P                  V P                  V4      4      V P                  V4      ,          4      # r,   )r–   r˜   r•   r—   r9   s   &&r   r;   ÚMLP.__call__™   s1   € Ø�~‰~˜dŸo™o¨d¯n©n¸QÓ.?Ó@À4Ç<Á<ÐPQÃ?ÕRÓSÐSr   )r˜   r–   r•   r—   r=   rE   s   @@r   r�   r�   ‹   s!   ù‡ € ÷:ó :÷T÷ Tð T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# )ÚTransformerBlockc                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r)   s   "€r   r   ÚTransformerBlock.__annotate__ž   s   ø€ ÷ ñ ™zñ r   c                ó,  <€ \         SV `  4        VP                  V n        VP                  V n        VP                  V n        \        V4      V n        \        V4      V n        \        VP                  VP                  R 7      V n        \        VP                  VP                  R 7      V n        Wn        VP                  R8X  dO   \        VP                  VP                  R 7      V n        \        VP                  VP                  R 7      V n        R# R# )©r&   Úgemma2N)r-   r.   rW   rS   rR   rG   Ú	self_attnr�   Úmlpr#   Úrms_norm_epsÚinput_layernormÚpost_attention_layernormr   Úpre_feedforward_layernormÚpost_feedforward_layernormr™   s   &&€r   r.   ÚTransformerBlock.__init__ž   sß   ø€ Ü‰ÑÔØ ×+Ñ+ˆŒØ#)×#=Ñ#=ˆÔ Ø!×-Ñ-ˆÔÜ" 6Ó*ˆŒÜ�v“;ˆŒÜ& v×'9Ñ'9¸v×?RÑ?RÔSˆÔÜ(/Ø×Ñ F×$7Ñ$7ô)
ˆÔ%ð Œà×Ñ Ô(Ü-4Ø×"Ñ"¨×(;Ñ(;ô.ˆDÔ*ô /6Ø×"Ñ"¨×(;Ñ(;ô/ˆDÖ+ñ	 )r   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# ri   rm   )r   r)   s   "€r   r   r¡   ³   sI   ø€ ÷ ñ á�8‰8ðñ ‘r—x‘xÕ ðñ ™Õ ð	ñ
 
�‰ñr   c                ój  € V P                  V P                  V4      W#4      pV P                  R 8X  d3   W,           pV P                  V P	                  V4      4      pWT,           pV# WP	                  V4      ,           pV P                  V P                  V4      4      pWPP                  V4      ,           pV# ©rK   )r¥   r¨   rW   r¦   r©   rª   r«   )r2   r:   rj   rk   ÚrÚhÚouts   &&&&   r   r;   ÚTransformerBlock.__call__³   sŸ   € ð �N‰N˜4×/Ñ/°Ó2°DÓ@ˆà�?‰?˜gÔ%à•ˆAØ—‘˜×6Ñ6°qÓ9Ó:ˆAØ•%ˆCð ˆ
ð ×1Ñ1°!Ó4Õ4ˆAØ—‘˜×7Ñ7¸Ó:Ó;ˆAØ×5Ñ5°aÓ8Õ8ˆCØˆ
r   )
r   rR   r¨   r¦   rW   rS   r©   r«   rª   r¥   rŽ   r=   rE   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# )Ú
GemmaModelc                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r)   s   "€r   r   ÚGemmaModel.__annotate__Ê   s   ø€ ÷ 
Iñ 
I™zñ 
I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   )r   r£   N)r-   r.   r   Ú
vocab_sizeÚnum_hidden_layersr   Ú	EmbeddingrR   Úembed_tokensÚrangerŸ   Úlayersr#   r§   Únorm)r2   r   Ú_r3   s   && €r   r.   ÚGemmaModel.__init__Ê   s­   ø€ Ü‰ÑÔØŒØ ×+Ñ+ˆŒØ!'×!9Ñ!9ˆÔØ�‰ Ô"Ð"Ð"ÜŸLšL¨×):Ñ):¸F×<NÑ<NÓOˆÔä5:¸6×;SÑ;SÔ5Tó
Ù5T°Ô F×+Ñ5Tñ
ˆŒô ˜F×.Ñ.°F×4GÑ4GÔHˆŽ	ùò
s   ÂCc                óˆ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[ P                  ,          /# ©r   ÚinputsÚinputs_embedsrj   ©r/   rn   r   )r   r)   s   "€r   r   r·   Ö   s?   ø€ ÷  ñ  á—‘ð ñ  ¡§¡Õ)ð ñ ‘r—x‘xÕ ñ	 r   c                óp  € Vf   V P                  V4      pMTp\        P                  ! V P                  P                  R,          VP
                  R7      pWV,          pVf   R .\        V P                  4      ,          p\        \        V P                  RR4      4      pVf   V'       g   \        WT^ ,          RR7      pM?V'       g8   V^ ,          e-   V^ ,          P                  ^ 8”  d   \        WT^ ,          RR7      p\        V P                  V4       F  w  r‰V! WSV	4      pK  	  V P                  V4      # )NrL   )r   Úuse_bidirectional_attentionFT)Úreturn_array)r¼   r/   rn   r   rR   r   Úlenr¾   Úboolr   r   rq   Úzipr¿   )
r2   rÄ   rÅ   rj   rk   r±   Ú
normalizerÚuse_bidirectionalÚlayerÚcs
   &&&&&     r   r;   ÚGemmaModel.__call__Ö   sù   € ð Ò Ø×!Ñ! &Ó)‰AàˆAä—X’X˜dŸk™k×5Ñ5°sÕ:À!Ç'Á'ÔJˆ
Ø�NˆàŠ=Ø�FœS §¡Ó-Õ-ˆEä Ü�D—K‘KÐ!>ÀÓFó
Ðð Š<ß$Ü,¨Q°aµÀtÔL�øß" u¨Q¥xÒ';ÀÀaÅÇÁÐRSÔ@Sä(¨°!­HÀ4ÔHˆDä˜DŸK™K¨Ö/‰HˆEÙ�a˜qÓ!ŠAñ 0ð �y‰y˜‹|Ðr   )r   r¼   r¾   r¿   rº   r¹   ©NNNr=   rE   s   @@r   rµ   rµ   É   s    ù‡ € ÷
Ió 
I÷ ÷  ò  r   rµ   c                   óŠ   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 4       t	]R 4       t
R	tVtV ;t# )ÚLanguageModelc                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r)   s   "€r   r   ÚLanguageModel.__annotate__ú   s   ø€ ÷ 
ñ 
™zñ 
r   c                óè   <€ \         SV `  4        Wn        VP                  V n        VP                  V n        \        V4      V n        V P                  R9  d   \        RV P                   R24      hR# )rK   zModel type z3 not supported. Currently only 'gemma' is supportedN)rK   r¤   )r-   r.   r   Úfinal_logit_softcappingrW   rµ   Úmodelr   r™   s   &&€r   r.   ÚLanguageModel.__init__ú   sk   ø€ Ü‰ÑÔØŒØ'-×'EÑ'EˆÔ$Ø ×+Ñ+ˆŒÜ Ó'ˆŒ
à�?‰?Ð"5Ô5ÜØ˜dŸo™oÐ.Ð.aÐbóð ñ 6r   c                óˆ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[ P                  ,          /# rÃ   rÆ   )r   r)   s   "€r   r   rÖ     s?   ø€ ÷ /ñ /á—‘ð/ñ  ¡§¡Õ)ð/ñ ‘r—x‘xÕ ñ	/r   c                ó  € V P                  WWBR 7      pV P                   P                  P                  V4      pV P                  R8X  d9   \        P
                  ! W`P                  ,          4      pW`P                  ,          p\        VR7      # ))rj   rk   rÅ   r¤   )Úlogits)rÙ   r¼   Ú	as_linearrW   r/   r   rØ   r   )r2   rÄ   rÅ   rj   rk   Úkwargsr²   s   &&&&&, r   r;   ÚLanguageModel.__call__  sl   € ð �j‰j˜°%ˆjÓUˆØ�j‰j×%Ñ%×/Ñ/°Ó4ˆà�?‰?˜hÔ&Ü—'’'˜#× <Ñ <Õ<Ó=ˆCØ×4Ñ4Õ4ˆCÜ"¨#Ô.Ð.r   c                óh   € VP                  4        UUu/ uF  w  r#R V9  g   K  W#bK  	  upp# u uppi )zself_attn.rotary_emb.inv_freq)Úitems)r2   ÚweightsÚkÚvs   &&  r   ÚsanitizeÚLanguageModel.sanitize  s8   € à$Ÿ]™]œ_ô
Ù,‘T�QÐ0OÐWXÑ0XŒDˆAŠD™_ò
ð 	
ùó 
s   ”.¤.c                ó.   € V P                   P                  # r,   )rÙ   r¾   ©r2   s   &r   r¾   ÚLanguageModel.layers  s   € à�z‰z× Ñ Ð r   c                ó²   € V P                   R 8X  d2   V P                  P                  V P                  P                  ,          # V P                  P                  # r¯   )rW   r   rR   rS   rZ   ré   s   &r   rZ   ÚLanguageModel.head_dim  sG   € ð �‰ 'Ô)ð �K‰K×#Ñ# t§{¡{×'FÑ'FÕFð	
ð —‘×%Ñ%ð	
r   c                ó.   € V P                   P                  # r,   )r   rU   ré   s   &r   rV   ÚLanguageModel.n_kv_heads'  s   € à�{‰{×.Ñ.Ð.r   )r   rØ   rÙ   rW   rÒ   )r>   r?   r@   rA   r.   r;   ræ   Úpropertyr¾   rZ   rV   rB   rC   rD   rE   s   @@r   rÔ   rÔ   ù   s_   ù‡ € ÷
ó 
÷/ò /ò 
ð
 ñ!ó ð!ð ñ
ó ð
ð ñ/ó ÷/ð /r   rÔ   )Útypingr   Úmlx.coreÚcorer/   Úmlx.nnr   rQ   r   r   r   rk   r   r   r	   r!   ÚModuler#   rG   r�   rŸ   rµ   rÔ   © r   r   Ú<module>rö      s�   ðÝ å Ý ÷ñ õ
 Ý õ
Fô@ˆb�i‰iô @ôb#�—	‘	ô b#ôJTˆ"�)‰)ô Tô$)�r—y‘yô )ôX-�—‘ô -ô`0/�B—I‘Iö 0/r   