+
    UV-j3  ã                   óü   € ^ RI t ^ RIHt ^ RIHtHtHt ^ RIHt	 ^ RI
Ht ^RIHtHt Rt] ! R R4      4       t ! R R	]4      t ! R
 R]4      t ! R R]P&                  4      t ! R R]P&                  4      t]tR# )é    N)Ú	dataclass)ÚAnyÚDictÚOptional)ÚInputEmbeddingsFeaturesÚLanguageModelOutputTc                   ó<   a € ] tR t^t o RtR tR tV 3R ltRtV t	R# )ÚAttributeConfigzAttribute-style config wrapper.c                ód   € V P                   P                  4        F  w  r\        WV4       K  	  R # ©N©ÚvaluesÚitemsÚsetattr©ÚselfÚkeyÚvalues   &  Úi/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/text_only.pyÚ__post_init__ÚAttributeConfig.__post_init__   s%   € ØŸ+™+×+Ñ+Ö-‰JˆCÜ�D˜uÖ%ó .ó    c                ó,   € \        V P                  4      # r   )Údictr   ©r   s   &r   Úto_dictÚAttributeConfig.to_dict   s   € Ü�D—K‘KÓ Ð r   c                ó<   <€ V ^8„  d   Qh/ S[ S[S[3,          ;R&   # )é   r   )r   Ústrr   )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚAttributeConfig.__annotate__   s   ø‡ ‚ ñ ‘‘c��NÑò	 r   © N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r"   s   @r   r
   r
      s   ø‡ € á)ò&ò!÷ ƒ r   r
   c                   ó0   a € ] tR t^t o ]R 4       tRtV tR# )Ú
TextConfigc                ó8   € T ! \        T;'       g    / 4      4      # r   )r   )ÚclsÚparamss   &&r   Ú	from_dictÚTextConfig.from_dict   s   € á”4˜Ÿ˜ "Ó%Ó&Ð&r   r%   N)r&   r'   r(   r)   Úclassmethodr4   r,   r-   r.   s   @r   r0   r0      s   ø‡ € Øñ'ó ö'r   r0   c                   óH   a a€ ] tR t^!t o]R 4       tV 3R ltR tRtVt	V ;t
# )ÚModelConfigc                ó^   € \        T;'       g    / 4      p^ RIHp V! V4      w  r4V ! WV4      # )r   )Ú_get_classes)r   Úmlx_lm.utilsr:   )r2   r3   r:   Úmodel_classÚmodel_args_classs   &&   r   r4   ÚModelConfig.from_dict"   s0   € ä�f—l�l Ó#ˆÝ-á(4°VÓ(<Ñ%ˆÙ�6Ð(8Ó9Ð9r   c                ó’   <€ W n         W0n        \        SV `  V4       \        P                  VP                  R / 4      4      V n        R# )Útext_configN)r<   r=   ÚsuperÚ__init__r0   r4   Úgetr@   )r   r   r<   r=   Ú	__class__s   &&&&€r   rB   ÚModelConfig.__init__*   s:   ø€ Ø&ÔØ 0ÔÜ‰Ñ˜Ô Ü%×/Ñ/°·
±
¸=È"Ó0MÓNˆÖr   c                óv   € V P                   P                  4        F  w  rVR9   d   K  \        WV4       K  	  R# )r@   N>   r@   Úaudio_configÚvision_configÚperceiver_configÚprojector_configr   r   s   &  r   r   ÚModelConfig.__post_init__0   s7   € ØŸ+™+×+Ñ+Ö-‰JˆCØð ô ñ Ü�D˜uÖ%ó .r   )r=   r<   r@   )r&   r'   r(   r)   r6   r4   rB   r   r,   r-   Ú__classcell__©rD   r"   s   @@r   r8   r8   !   s'   ù‡ € Øñ:ó ð:õO÷
&ò 
&r   r8   c                   óâ   a a€ ] tR t^=t oRtV3R lV 3R llt]R 4       t]R 4       tR t	RV3R lR llt
]V3R	 lR
 l4       tR tV3R lR ltR tRR ltRR ltRV3R lR lltRtVtV ;t# )ÚLanguageModelzCAdapter that makes an mlx-lm model return mlx-vlm language outputs.c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   Úmodel)ÚnnÚModule)r!   r"   s   "€r   r#   ÚLanguageModel.__annotate__@   s   ø€ ÷ =ñ =™bŸi™iñ =r   c                óT   <€ \         SV `  4        Wn        \        VR R4      V n        R# )Ú
model_typeN)rA   rB   Ú_modelÚgetattrrV   )r   rQ   rD   s   &&€r   rB   ÚLanguageModel.__init__@   s#   ø€ Ü‰ÑÔØŒÜ! %¨°tÓ<ˆŽr   c                óD   € \        V P                  R V P                  4      # )rQ   )rX   rW   r   s   &r   rQ   ÚLanguageModel.modelE   s   € ä�t—{‘{ G¨T¯[©[Ó9Ð9r   c                ój   € \        V P                  R 4      '       d   V P                  P                  # . # )Úlayers)ÚhasattrrW   r]   r   s   &r   r]   ÚLanguageModel.layersI   s(   € ä�4—;‘; ×)Ò)Ø—;‘;×%Ñ%Ð%Øˆ	r   c                óÄ   € \        V P                  R 4      '       d   V P                  P                  4       # ^ RIHp V P
                   Uu. uF	  q!! 4       NK  	  up# u upi )Ú
make_cache)ÚKVCache)r^   rW   ra   Úmlx_lm.models.cacherb   r]   )r   rb   Ú_s   &  r   ra   ÚLanguageModel.make_cacheO   sG   € Ü�4—;‘; ×-Ò-Ø—;‘;×)Ñ)Ó+Ð+å/à#'§;¢;Ó/¡;˜a�–	¡;Ñ/Ð/ùÒ/s   ÁAc                óX   <€ V ^8„  d   QhRS[ S[P                  P                  ,          /# ©r   Úgroup©r   ÚmxÚdistributedÚGroup)r!   r"   s   "€r   r#   rT   W   s#   ø€ ÷ (ñ (™8¡B§N¡N×$8Ñ$8Õ9ñ (r   c                ó†   € \        V P                  R 4      '       g   \        R4      hV P                  P                  V4      # )Úshardz5The underlying mlx-lm model does not support sharding)r^   rW   Ú
ValueErrorrn   ©r   rh   s   &&r   rn   ÚLanguageModel.shardW   s4   € Ü�t—{‘{ G×,Ò,ÜÐTÓUÐUØ�{‰{× Ñ  Ó'Ð'r   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# )r   Úreturn)Úsetr    )r!   r"   s   "€r   r#   rT   ]   s   ø€ ÷ ñ ©#©c­(ñ r   c                ó˜   €  \        \        P                  ! V 4      P                  4      #   \        \
        3 d    \        4       u # i ; ir   )rt   ÚinspectÚ	signatureÚ
parametersÚ	TypeErrorro   )Úcallable_objs   &r   Ú_accepted_paramsÚLanguageModel._accepted_params\   s>   € ð	Ü”w×(Ò(¨Ó6×AÑAÓBÐBøÜœ:Ð&ô 	Ü“5ŠLð	ús   ‚(+ «A	ÁA	c           	     ó,  € V P                   R 3V P                   R3V P                   R3V P                   R3V P                   R3V P                  R 3V P                  R3V P                  R33pV F#  w  r#\        W#4      '       g   K  \        W#4      u # 	  R# )Úembed_tokensÚwteÚ
embeddingsÚtok_embeddingsÚword_embeddingsN)rQ   rW   r^   rX   )r   Ú
candidatesÚmoduleÚattrs   &   r   Ú_token_embeddingÚLanguageModel._token_embeddingc   s”   € à�Z‰Z˜Ð(Ø�Z‰Z˜ÐØ�Z‰Z˜Ð&Ø�Z‰ZÐ)Ð*Ø�Z‰ZÐ*Ð+Ø�[‰[˜.Ð)Ø�[‰[˜%Ð Ø�[‰[˜,Ð'ð	
ˆ
ó '‰LˆFÜ�v×$Ô$Ü˜vÓ,Ò,ñ 'ñ r   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   Ú	input_idsrs   ©rj   Úarray)r!   r"   s   "€r   r#   rT   s   s#   ø€ ÷ $ñ $¡b§h¡hð $±2·8±8ñ $r   c                óP   € V P                  4       pVf   \        R4      hV! V4      # )Nz:The wrapped mlx-lm model does not expose token embeddings.)r†   ro   )r   r‰   Ú	embeddings   && r   Úinput_embedsÚLanguageModel.input_embedss   s3   € Ø×)Ñ)Ó+ˆ	ØÒÜØLóð ñ ˜Ó#Ð#r   c                óâ   € \        V P                  R 4      '       d   V P                  P                  V4      # V P                  4       pVe$   \        VR4      '       d   VP	                  V4      # R# )Úlm_headNÚ	as_linear)r^   rW   r‘   r†   r’   )r   Úhidden_statesr�   s   && r   Ú_project_hidden_statesÚ$LanguageModel._project_hidden_states{   s\   € Ü�4—;‘; 	×*Ò*Ø—;‘;×&Ñ& }Ó5Ð5à×)Ñ)Ó+ˆ	ØÒ ¤W¨Y¸×%DÒ%DØ×&Ñ& }Ó5Ð5ár   c                óÖ   € V P                   pW@P                  J d   R # V P                  VP                  4      pRV9  d   R # RV/pRV9   d   W&R&   V! V3/ VB pV P	                  V4      # )NÚinput_embeddingsÚcache)rQ   rW   r{   Ú__call__r”   )r   Úinputsr˜   r—   Úinnerr3   Úcall_kwargsr“   s   &&&&    r   Ú_call_inner_with_embeddingsÚ)LanguageModel._call_inner_with_embeddings…   sr   € Ø—
‘
ˆØ—K‘KÓÙà×&Ñ& u§~¡~Ó6ˆØ VÔ+Ùà)Ð+;Ð<ˆØ�fÔØ#(˜Ñ á˜fÑ4¨Ñ4ˆØ×*Ñ*¨=Ó9Ð9r   c                óx  € V P                  V P                  P                  4      pVP                  R VP                  R4      4      p/ pRV9   d   W&R&   R F+  w  rxW„9   g   K  Ws9   g   K  W7,          f   K!  W7,          Wh&   K-  	  RV9  d   Ve   V P	                  WVR7      p	V	e   V	# V P                  ! V3/ VB # )Úinputs_embedsr—   r˜   )r˜   r—   ))Úmaskr¡   )r    r—   )r—   r—   )Úper_layer_inputsr¢   )r{   rW   r™   rC   r�   )
r   rš   r˜   Úkwargsr3   r—   rœ   ÚsourceÚtargetÚlogitss
   &&&,      r   Ú_call_modelÚLanguageModel._call_model•   sÄ   € Ø×&Ñ& t§{¡{×';Ñ';Ó<ˆØ!Ÿ:™: o°v·z±zÐBTÓ7UÓVÐàˆØ�fÔØ#(˜Ñ ó
‰NˆFð Ö FÖ$4¸½Ô9SØ&,¥n�Ó#ñ
ð  VÔ+Ð0@Ò0LØ×5Ñ5ØÐ6Fð 6ó ˆFð Ò!Ø�à�{Š{˜6Ñ1 [Ñ1Ð1r   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   rš   rŠ   )r!   r"   s   "€r   r#   rT   ¯   s   ø€ ÷ 2ñ 2™rŸx™xñ 2r   c                óD   € V P                   ! V3R V/VB p\        VR7      # )r˜   )r¦   )r§   r   )r   rš   r˜   r£   r¦   s   &&&, r   r™   ÚLanguageModel.__call__¯   s'   € Ø×!Ò! &Ñ@°Ð@¸Ñ@ˆÜ"¨&Ô1Ð1r   )rW   rV   r   ©NN)r&   r'   r(   r)   r*   rB   ÚpropertyrQ   r]   ra   rn   Ústaticmethodr{   r†   rŽ   r”   r�   r§   r™   r,   r-   rL   rM   s   @@r   rO   rO   =   sŠ   ù‡ € ÙM÷=ó =ð
 ñ:ó ð:ð ñó ðò
0÷(ò (ð
 ÷ó ðò÷ $ð $òô:ô 2÷42÷ 2ò 2r   rO   c                   ó®   a a€ ] tR t^´t oRtRtRV3R lV 3R llltR tR tRV3R lR llt	RV3R	 lR
 llt
R tRV3R lR llt]R 4       tRtVtV ;t# )ÚModelz,VLM-shaped wrapper around a text-only model.Tc                óF   <€ V ^8„  d   QhRS[ S[S[S[3,          ,          /# )r   Úconfig)r   r   r    r   )r!   r"   s   "€r   r#   ÚModel.__annotate__¹   s!   ø€ ÷ 	3ñ 	3±¹¹cÁ3¸h½Õ0Hñ 	3r   c                óp  <€ \         SV `  4        \        V\        4      '       d\   Wn        V P                  P
                  P                  V P                  P                  4      pV P                  P                  V4      pM%Tp\        \        T;'       g    / 4      4      V n        \        V4      V n        R # r   )rA   rB   Ú
isinstancer8   r²   r=   r4   r   r<   r
   r   rO   Úlanguage_model)r   Úmodel_or_configr²   Ú
model_argsrQ   rD   s   &&&  €r   rB   ÚModel.__init__¹   s�   ø€ Ü‰ÑÔÜ�o¤{×3Ò3Ø)ŒKØŸ™×5Ñ5×?Ñ?ÀÇÁ×@RÑ@RÓSˆJØ—K‘K×+Ñ+¨JÓ7‰Eà#ˆEÜ)¬$¨v¯|¨|¸Ó*<Ó=ˆDŒKÜ+¨EÓ2ˆÖr   c                óx   € V P                   P                  p\        VR 4      '       d   VP                  V4      # V# )Úsanitize)r¶   rW   r^   r»   )r   ÚweightsrQ   s   && r   r»   ÚModel.sanitizeÄ   s4   € Ø×#Ñ#×*Ñ*ˆÜ�5˜*×%Ò%Ø—>‘> 'Ó*Ð*Øˆr   c                óV   € V P                   P                  P                  ! V.VO5/ VB # r   )r¶   rW   Úload_weights)r   r¼   Úargsr£   s   &&*,r   r¿   ÚModel.load_weightsÊ   s)   € Ø×"Ñ"×)Ñ)×6Ò6°wÐPÀÒPÈÑPÐPr   c                ón   <€ V ^8„  d   QhRS[ S[P                  ,          RS[ S[P                  ,          /# )r   r‰   Úpixel_values)r   rj   r‹   )r!   r"   s   "€r   r#   r³   Í   s1   ø€ ÷ 
ñ 
á™BŸH™HÕ%ð
ñ ™rŸx™xÕ(ñ
r   c                óê   € Ve   \        R4      hVP                  R4      f   VP                  R4      e   \        R4      hVf   \        R4      h\        V P                  P	                  V4      R7      # )Nú,Text-only models do not accept image inputs.Úinput_featuresÚaudio_valuesz,Text-only models do not accept audio inputs.z,input_ids are required for text-only models.)r    )ro   rC   r   r¶   rŽ   )r   r‰   rÃ   r£   s   &&&,r   Úget_input_embeddingsÚModel.get_input_embeddingsÍ   st   € ð Ò#ÜÐKÓLÐLà�J‰JÐ'Ó(Ò4Ø�z‰z˜.Ó)Ò5äÐKÓLÐLØÒÜÐKÓLÐLÜ&Ø×-Ñ-×:Ñ:¸9ÓEô
ð 	
r   c                óˆ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[ P                  ,          /# )r   r‰   rÃ   Úattention_mask)rj   r‹   r   )r!   r"   s   "€r   r#   r³   à   s?   ø€ ÷ 8ñ 8á—8‘8ð8ñ ™rŸx™xÕ(ð8ñ !¡§¡Õ*ñ	8r   c                ór   € Ve   \        R4      hVe   VP                  RV4       V P                  ! V3/ VB # )NrÅ   r¡   )ro   Ú
setdefaultr¶   )r   r‰   rÃ   rË   r£   s   &&&&,r   r™   ÚModel.__call__à   sB   € ð Ò#ÜÐKÓLÐLØÒ%Ø×Ñ˜f nÔ5Ø×"Ò" 9Ñ7°Ñ7Ð7r   c                ó6   € V P                   P                  4       # r   )r¶   ra   r   s   &r   ra   ÚModel.make_cacheí   s   € Ø×"Ñ"×-Ñ-Ó/Ð/r   c                óX   <€ V ^8„  d   QhRS[ S[P                  P                  ,          /# rg   ri   )r!   r"   s   "€r   r#   r³   ð   s#   ø€ ÷ 0ñ 0™8¡B§N¡N×$8Ñ$8Õ9ñ 0r   c                ó8   € V P                   P                  V4      # r   )r¶   rn   rp   s   &&r   rn   ÚModel.shardð   s   € Ø×"Ñ"×(Ñ(¨Ó/Ð/r   c                ó.   € V P                   P                  # r   )r¶   r]   r   s   &r   r]   ÚModel.layersó   s   € à×"Ñ"×)Ñ)Ð)r   )r²   r¶   r   r¬   )r&   r'   r(   r)   r*   Ú_is_text_modelrB   r»   r¿   rÈ   r™   ra   rn   r­   r]   r,   r-   rL   rM   s   @@r   r°   r°   ´   s^   ù‡ € Ù6à€N÷	3õ 	3òòQ÷
ò 
÷&8ò 8ò0÷0ò 0ð ñ*ó ÷*ð *r   r°   )rv   Údataclassesr   Útypingr   r   r   Úmlx.coreÚcorerj   Úmlx.nnrR   Úbaser   r   Ú_is_text_model_archr
   r0   r8   rS   rO   r°   ÚTextOnlyModelr%   r   r   Ú<module>rß      s~   ðÛ Ý !ß &Ñ &å Ý ç >àÐ ð ÷
!ð 
!ó ð
!ô'�ô 'ô&�/ô &ô8t2�B—I‘Iô t2ônA*ˆB�I‰Iô A*ðH ‚r   