+
    UV-j€  ã                   ó    € ^ RI HtHt ^ RIHt ^ RIHt ^RIH	t	 ^RI
Ht ^RIHt ^RIHt ^RIHt ^RIHt  ! R	 R
]P(                  4      tR# )é    )ÚOptionalÚTupleN)ÚInputEmbeddingsFeatures)ÚKVCache)Úprocessing_mllama©ÚModelConfig)ÚLanguageModel)ÚVisionModelc                   ó’   a a€ ] tR t^t oV3R lV 3R llt]R 4       tRV3R lR lltRV3R lR lltV3R lR	 lt	R
 t
RtVtV ;t# )ÚModelc                ó    <€ V ^8„  d   QhRS[ /# )é   Úconfigr   )ÚformatÚ__classdict__s   "€Úm/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/mllama/mllama.pyÚ__annotate__ÚModel.__annotate__   s   ø€ ÷ 	
ñ 	
™{ñ 	
ó    c                ó$  <€ \         SV `  4        Wn        \        VP                  4      V n        \        VP                  4      V n        \        P                  ! VP                  P                  VP                  P                  R R7      V n        R# )T)ÚbiasN)ÚsuperÚ__init__r   r   Úvision_configÚvision_towerr
   Útext_configÚlanguage_modelÚnnÚLinearÚvision_output_dimÚhidden_sizeÚmulti_modal_projector)Úselfr   Ú	__class__s   &&€r   r   ÚModel.__init__   sk   ø€ Ü‰ÑÔØŒÜ'¨×(<Ñ(<Ó=ˆÔÜ+¨F×,>Ñ,>Ó?ˆÔÜ%'§Y¢YØ× Ñ ×2Ñ2Ø×Ñ×*Ñ*Øô&
ˆÖ"r   c                óB   € V P                   P                  P                  # )N)r   ÚmodelÚlayers)r$   s   &r   r)   ÚModel.layers   s   € à×"Ñ"×(Ñ(×/Ñ/Ð/r   c                ón   <€ V ^8„  d   QhRS[ S[P                  ,          RS[ S[P                  ,          /# )r   Ú	input_idsÚpixel_values)r   ÚmxÚarray)r   r   s   "€r   r   r      s5   ø€ ÷ C
ñ C
á™BŸH™HÕ%ðC
ñ ™rŸx™xÕ(ñC
r   c                ó„  € VP                  R R4      pVP                  RR4      pVP                  RR4      pV P                  P                  P                  V4      pRpRp	Ve—   VP                  RR4      p
V
e   T
pM}Vf   \	        R4      hV P                  VVVR7      pV^ ,          pV P                  V4      P                  VP                  ^ ,          RV P                  P                  P                  4      pVe¶   V P                  VV P                  P                  P                  V P                  P                  P                  ,          ^,          ^,           R7      w  ri\         P"                  ! VP                  ^,          \         P$                  R7      pVR	R	V3,          pV	R	R	V3,          p	\'        VVVV	R
7      # )Úaspect_ratio_idsNÚaspect_ratio_maskÚcross_attention_maskÚcached_image_featuresúA`aspect_ratio_ids` must be provided if `pixel_values` is provided©r-   r1   r2   ©Únum_vision_tokens©ÚdtypeºNNN)Úinputs_embedsÚcross_attention_statesr3   Úfull_text_row_masked_out_maskéÿÿÿÿ)Úgetr   r(   Úembed_tokensÚ
ValueErrorr   r#   ÚreshapeÚshaper   r   r"   Ú_prepare_cross_attention_maskr   Ú
image_sizeÚ
patch_sizer.   ÚarangeÚint32r   )r$   r,   r-   Úkwargsr1   r2   r3   r<   r=   r>   ÚcachedÚvision_outputsÚcache_positions   &&&,         r   Úget_input_embeddingsÚModel.get_input_embeddings   sÖ  € ð "Ÿ:™:Ð&8¸$Ó?ÐØ"ŸJ™JÐ':¸DÓAÐØ%Ÿz™zÐ*@À$ÓGÐð ×+Ñ+×1Ñ1×>Ñ>¸yÓIˆà!%ÐØ(,Ð%ð Ò#Ø—Z‘ZÐ 7¸Ó>ˆFØÒ!Ø)/Ñ&à#Ò+Ü$Ø[óð ð "&×!2Ñ!2Ø!-Ø%5Ø&7ð "3ó "�ð
 *8¸Õ):Ð&à)-×)CÑ)CØ*ó*ç‘'Ø—O‘O AÕ&ØØ—K‘K×+Ñ+×7Ñ7óð 'ð  Ò+à×2Ñ2Ø(àŸ™×1Ñ1×<Ñ<ØŸ;™;×4Ñ4×?Ñ?õ@ð õ	'ð
 õ'ð 3ó ñ @Ð ô  ŸYšY y§¡°qÕ'9ÄÇÁÔJˆNØ#7¸¸1¸nÐ8LÕ#MÐ Ø,IØ�1�nÐ$õ-Ð)ô 'Ø'Ø#9Ø!5Ø*Gô	
ð 	
r   c                óò   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[ P                  ,          RS[S[,          RS[S[ P                  S[S[ P                  ,          3,          /# )r   r,   r-   ÚmaskÚcacheÚreturn)r.   r/   r   r   r   )r   r   s   "€r   r   r   c   sv   ø€ ÷ Jñ Já—8‘8ðJñ ™rŸx™xÕ(ðJñ ‘r—x‘xÕ ð	Jñ
 ™Õ ðJñ 
‰r�x‰x™¡"§(¡(Õ+Ð+Õ	,ñJr   c           
     ó.  € VP                  R R4      pVP                  RR4      pVP                  RR4      pRp	Ve   Vf   \        R4      hV P                  VVVR7      p
V
^ ,          pV P                  V4      P	                  VP
                  ^ ,          R
V P                  P                  P                  4      pMRpVeh   V P                  VV P                  P                  P                  V P                  P                  P                  ,          ^,          ^,           R7      w  rŒMRpVeP   \        P                  ! VP
                  ^,          \        P                  R7      pVRRV3,          pVRRV3,          pV P!                  VVVVVV	VR	7      pV# )r1   Nr2   r3   r5   r6   r7   r9   r;   )ÚinputsrQ   r=   r3   r>   r<   rR   r?   )ÚpoprB   r   r#   rC   rD   r   r   r"   rE   r   rF   rG   r.   rH   rI   r   )r$   r,   r-   rQ   rR   rJ   r1   r2   r3   r<   rL   r=   r>   rM   Úoutputss   &&&&&,         r   Ú__call__ÚModel.__call__c   sÃ  € ð "Ÿ:™:Ð&8¸$Ó?ÐØ"ŸJ™JÐ':¸DÓAÐØ%Ÿz™zÐ*@À$ÓGÐàˆð Ò#ØÒ'Ü ØWóð ð "×.Ñ.Ø)Ø!1Ø"3ð /ó ˆNð
 &4°AÕ%6Ð"à%)×%?Ñ%?Ø&ó&ç‰gØ—‘ Õ"ØØ—‘×'Ñ'×3Ñ3óñ #ð &*Ð"ð  Ò+à×2Ñ2Ø(àŸ™×1Ñ1×<Ñ<ØŸ;™;×4Ñ4×?Ñ?õ@ð õ	'ð
 õ'ð 3ó ñ @Ð Ð"?ð -1Ð)àÒ+ÜŸYšY y§¡°qÕ'9ÄÇÁÔJˆNØ#7¸¸1¸nÐ8LÕ#MÐ Ø,IØ�1�nÐ$õ-Ð)ð
 ×%Ñ%ØØØ#9Ø!5Ø*GØ'Øð &ó 
ˆð ˆr   c                ó~   <€ V ^8„  d   QhRS[ P                  RS[RS[S[ P                  S[ P                  3,          /# )r   r3   r8   rS   )r.   r/   Úintr   )r   r   s   "€r   r   r   ¯   sD   ø€ ÷  Cñ  Cá Ÿh™hð Cñ ð Cñ 
‰r�x‰x™Ÿ™Ð!Õ	"ñ	 Cr   c                óœ  € VP                   vr4p\        P                  ! W^R7      pVP                  W4R4      p\        P                  ! V^4      pRV,
          p\        P
                  ! R4      p\        P                  ! WvP                   4      p\        P                  ! VVV4      p\        P                  ! VR8g  RRR7      pW,          pW3# )é   )Úaxisg      ð?T)r^   Úkeepdimsr?   g    eÍÍÁ)	rD   r.   ÚrepeatrC   Úexpand_dimsr/   Úbroadcast_toÚwhereÚany)	r$   r3   r8   Ú
batch_sizeÚtext_total_lengthÚ_Úinverted_cross_attn_maskÚ
fill_arrayr>   s	   &&&      r   rE   Ú#Model._prepare_cross_attention_mask¯   sÏ   € ð
 -A×,FÑ,FÐ)ˆ
¨Ü!ŸyšyØ ¸!ô 
Ðð  4×;Ñ;Ø¨2ó 
Ðô  "Ÿ~š~Ð.BÀAÓFÐð $'Ð)=Õ#=Ð Ü—X’X˜d“^ˆ
Ü—_’_ Z×1OÑ1OÓPˆ
Ü!ŸxšxØ$ØØ ó 
Ðô )+¯ªØ  DÑ(ØØô)
Ð%ð
 	Õ=Ðà#ÐBÐBr   c                ój   € R  pVP                  4        UUu/ uF  w  r4V! V4      VbK  	  upp# u uppi )c                 ó8   € R V 9  d   V P                  RR 4      p V # )r   Úvision_model)Úreplace)Úkeys   &r   Útransform_keyÚ%Model.sanitize.<locals>.transform_keyÒ   s   € Ø SÔ(Ø—k‘k .°.ÓA�ØˆJr   )Úitems)r$   Úweightsrp   ÚkÚvs   &&   r   ÚsanitizeÚModel.sanitizeÑ   s3   € ò	ð
 18·±´Ô@±©¨‘˜aÓ  !Ò#±Ò@Ð@ùÓ@s   —/)r   r   r#   r   )NN)NNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Úpropertyr)   rN   rX   rE   rv   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r%   r   s   @@r   r   r      sV   ù‡ € ÷	
ó 	
ð ñ0ó ð0÷C
ò C
÷JJò J÷X Cð  C÷DAò Ar   r   )Útypingr   r   Úmlx.coreÚcorer.   Úmlx.nnr   Úbaser   rR   r   Ú r   r   r	   Úlanguager
   Úvisionr   ÚModuler   © r   r   Ú<module>rŠ      s4   ðß "å Ý å *Ý Ý Ý Ý #Ý ôIAˆB�I‰Iö IAr   