+
    UV-jB7  ã                   ó  € ^ RI t ^ RIHt ^ RIHt ^ RIHt ^ RI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IHt ^R	IHt ]P4                  ! R
]4        ! R R]P6                  4      t ! R R]P6                  4      tR# )é    N)ÚOptional)ÚAutoProcessor)ÚInputEmbeddingsFeatures)ÚModelConfigÚProjectorConfigÚSAMViTConfig)ÚLanguageModel)ÚDeepseekOCRProcessor)Ú
SAMEncoder)ÚVisionModelÚdeepseekocrc                   óD   a a€ ] tR t^t oV3R lV 3R lltR tRtVtV ;t# )ÚMlpProjectorc                ó    <€ V ^8„  d   QhRS[ /# ©é   Úconfig)r   )ÚformatÚ__classdict__s   "€Úw/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/deepseekocr/deepseekocr.pyÚ__annotate__ÚMlpProjector.__annotate__   s   ø€ ÷ (ñ (™ñ (ó    c                óê  <€ \         SV `  4        Wn        VP                  P                  R 8X  dB   \
        P                  ! VP                  P                  VP                  P                  4      pEMûVP                  P                  R8X  Ed¾   VP                  P                  pVP                  P                  p\
        P                  ! VP                  P                  VP                  P                  ,          VP                  P                  ,          VP                  P                  V,          4      .p\        ^V^,
          4       Fƒ  pVP                  \
        P                  ! 4       4       VP                  \
        P                  ! VP                  P                  V,          VP                  P                  V,          4      4       K…  	  VP                  \
        P                  ! 4       4       VP                  \
        P                  ! VP                  P                  V,          VP                  P                  4      4       M"\        RVP                  P                   24      hW n        R# )ÚlinearÚdownsample_mlp_geluzUnknown projector type: N)ÚsuperÚ__init__r   Úprojector_configÚprojector_typeÚnnÚLinearÚ	input_dimÚn_embedÚdepthÚ	mlp_ratioÚdownsample_ratioÚrangeÚappendÚGELUÚ
ValueErrorÚlayers)Úselfr   ÚmodulesÚ	mlp_depthr&   Ú_Ú	__class__s   &&    €r   r   ÚMlpProjector.__init__   sÐ  ø€ Ü‰ÑÔØŒà×"Ñ"×1Ñ1°XÔ=Ü—i’iØ×'Ñ'×1Ñ1°6×3JÑ3J×3RÑ3RóŠGð ×$Ñ$×3Ñ3Ð7LÕLØ×/Ñ/×5Ñ5ˆIØ×/Ñ/×9Ñ9ˆIä—	’	Ø×+Ñ+×5Ñ5Ø×-Ñ-×>Ñ>õ?à×-Ñ-×>Ñ>õ?ð ×+Ñ+×3Ñ3°iÕ?ó	ðˆGô ˜1˜i¨!�mÖ,�Ø—‘œrŸwšw›yÔ)Ø—‘Ü—I’IØ×/Ñ/×7Ñ7¸)ÕCØ×/Ñ/×7Ñ7¸)ÕCóöñ -ð �N‰Nœ2Ÿ7š7›9Ô%Ø�N‰NÜ—	’	Ø×+Ñ+×3Ñ3°iÕ?Ø×+Ñ+×3Ñ3óõô Ø*¨6×+BÑ+B×+QÑ+QÐ*RÐSóð ð Žr   c           	     óÀ  € V P                   P                  P                  R 8X  Edå   VP                  w  r#p\	        \
        P                  ! V4      4      ;rVWPP                   P                  P                  ,          ^ 8X  d   ^ MJV P                   P                  P                  WPP                   P                  P                  ,          ,
          p\        P                  ! WWVV34      pV^ 8”  d"   \        P                  ! VR^ V3^ V3R.^ R7      p\        P                  ! VR4      pVP                  ^,          VP                  ^,          r˜V P                   P                  P                  p
. p\        ^ WŠ,
          ^,           V
4       Fh  p\        ^ Wš,
          ^,           V
4       FG  pVRRWÌV
,           1WÝV
,           13,          pVP                  \        P                  ! WâR34      4       KI  	  Kj  	  \        P                  ! V^R7      pV P                   P                  P                  R8X  d   V P                  V4      pV# V P                   F  pV! V4      pK  	  V# )r   )Úconstant_valuesºNNN©Úaxisr   )r   r   )r   é   é   r   éÿÿÿÿ)r   r   r    ÚshapeÚintÚmathÚsqrtr'   ÚmxÚreshapeÚpadÚ	transposer(   r)   Ústackr,   )r-   ÚxÚbsÚhwr#   ÚhÚwrA   Úh_padÚw_padÚdsÚpatchesÚiÚjÚpatchÚlayers   &&              r   Ú__call__ÚMlpProjector.__call__?   sß  € Ø�;‰;×'Ñ'×6Ñ6Ð:OÕOØ !§¡ÑˆB�IÜœŸ	š	 "›Ó&Ð&ˆAð
 —{‘{×3Ñ3×DÑDÕDÈÔIñ à—[‘[×1Ñ1×BÑBØ—k‘k×2Ñ2×CÑCÕCõDð ô —
’
˜1 1¨Ð3Ó4ˆAØ�QŒwÜ—F’F˜1˜v¨¨3 x°!°S°¸6ÐBÐTUÔV�ä—’˜Q Ó-ˆAð Ÿ7™7 1�: q§w¡w¨q¥z�5Ø—‘×-Ñ-×>Ñ>ˆBØˆGä˜1˜e�j¨1�n¨bÖ1�Ü˜q %¥*¨q¥.°"Ö5�AØ˜a  A¨B­ J°¸µF°
Ð:Õ;�EØ—N‘N¤2§:¢:¨e¸"°XÓ#>Ö?ó 6ñ 2ô
 —’˜ qÔ)ˆAà�;‰;×'Ñ'×6Ñ6¸(ÔBØ—‘˜A“ˆAð ˆð Ÿœ�Ù˜!“H’ñ %àˆr   )r   r,   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   rQ   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r1   r   s   @@r   r   r      s   ù‡ € ÷(ó (÷T$ò $r   r   c                   óŠ   a a€ ] tR t^ft oV3R lV 3R lltR
V3R lR llt]R 4       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[ /# r   )r   )r   r   s   "€r   r   ÚModel.__annotate__g   s   ø€ ÷ %ñ %™{ñ %r   c           
     ó  <€ \         SV `  4        Wn        \        VP                  4      V n        \        4       p\        VP                  VP                  VP                  VP                  VP                  VP                  VP                  R 7      V n        \!        VP"                  4      V n        \'        V4      V n        VP*                  V n        VP,                  V n        ^\.        P0                  ! \.        P2                  ! VP4                  P6                  \.        P8                  R7      4      ,          pV P*                  R8X  d«   \.        P2                  ! \.        P:                  P=                  VP4                  P6                  34      V,          4      V n        \.        P2                  ! \.        P:                  P=                  VP4                  P6                  34      V,          4      V n         R# \C        RV P*                   24      h))Úimg_sizeÚ
patch_sizeÚ	embed_dimr%   Ú	num_headsÚwindow_sizeÚglobal_attn_indexes)ÚdtypeÚ2Dz.Only 2D tile_tag is supported currently, got: N)"r   r   r   r   Úvision_configÚvision_modelr   r   Ú
image_sizera   Úwidthr,   Úheadsrd   re   Ú	sam_modelr	   Útext_configÚlanguage_modelr   Ú	projectorÚtile_tagÚglobal_view_posr?   r>   Úarrayr   r$   Úfloat32ÚrandomÚnormalÚimage_newlineÚview_separatorr+   )r-   r   Ú
sam_configÚ	embed_stdr1   s   &&  €r   r   ÚModel.__init__g   s‚  ø€ Ü‰ÑÔØŒÜ'¨×(<Ñ(<Ó=ˆÔÜ!“^ˆ
Ü#Ø×*Ñ*Ø!×,Ñ,Ø ×&Ñ&Ø×#Ñ#Ø ×&Ñ&Ø"×.Ñ.Ø *× >Ñ >ô
ˆŒô ,¨F×,>Ñ,>Ó?ˆÔÜ% fÓ-ˆŒàŸ™ˆŒØ%×5Ñ5ˆÔàœŸšÜ�HŠH�V×,Ñ,×4Ñ4¼B¿J¹JÔGó
õ 
ˆ	ð �=‰=˜DÔ ô "$§¢Ü—	‘	× Ñ  &×"9Ñ"9×"AÑ"AÐ!CÓDÀyÕPó"ˆDÔô #%§(¢(Ü—	‘	× Ñ  &×"9Ñ"9×"AÑ"AÐ!CÓDÀyÕPó#ˆDÖô Ø@ÀÇÁÀÐPóð r   c          	      óÂ   <€ V ^8„  d   QhRS[ S[P                  ,          RS[ S[P                  ,          RS[ S[P                  ,          RS[ S[P                  ,          /# )r   Ú	input_idsÚpixel_valuesÚimages_spatial_cropÚimages_seq_mask)r   r?   rs   )r   r   s   "€r   r   r^   Ž   sc   ø€ ÷ hCñ hCá™BŸH™HÕ%ðhCñ ™rŸx™xÕ(ðhCñ &¡b§h¡hÕ/ð	hCñ
 "¡"§(¡(Õ+ñhCr   c           
     ó”  € V P                   P                  P                  V4      pVf   \        VR7      # V P                  Eez   VP
                  ^,          ^8w  Eda   \        P                  ! V^,          4      P                  4       ^ 8w  Ed0   ^ p^ pV^ ,          p	V^,          p
VP                  4        EF  p. p\        V^ ,          4      \        V^,          4      ríV^8„  ;'       g    V^8„  pV'       d	   WÞ,          M^ pV'       d   V^ 8”  d   W˜VV,            pVV,          pMR pW§V^,            pVEeÈ   \        P                  ! V4      P                  4       ^ 8w  Edž   V P	                  VP                  ^ ^^^4      4      pV P                  VP                  ^ ^^^4      VR7      p\        P                  ! VR,          VP                  ^^R7      3RR7      pV P                  V4      pV P	                  VP                  ^ ^^^4      4      pV P                  VP                  ^ ^^^4      V4      p\        P                  ! VR,          VP                  ^^R7      3RR7      pV P                  V4      pV^ ,          pVP
                  w  pp\        VR,          4      ;ppVP
                  w  ppp\        VR,          4      ;p p!VP!                  VVV4      p\        P                  ! V\        P"                  ! V P$                  R,          V^V34      .^R7      pVP!                  RV4      pVP!                  WíV V!V4      P                  ^ ^^^^4      P!                  VV ,          VV!,          V4      p\        P                  ! V\        P"                  ! V P$                  R,          VV ,          ^V34      .^R7      pVP!                  RV4      p\        P                  ! VVV P&                  R	,          .^ R7      p"EMIV P	                  VP                  ^ ^^^4      4      pV P                  VP                  ^ ^^^4      V4      p\        P                  ! VR,          VP                  ^^R7      3RR7      pV P                  V4      pV^ ,          pVP
                  w  pp\        VR,          4      ;ppVP!                  VVV4      p\        P                  ! V\        P"                  ! V P$                  R,          V^V34      .^R7      pVP!                  RV4      p\        P                  ! VV P&                  R	,          .^ R7      p"VP)                  V"4       V'       dP   \        P                  ! V^ R7      p\*        P,                  ! WG,          4      ^ ,          P                  4       p#WÆVV#3&   V^,          pEK  	  \        VR7      # )
N)Úinputs_embeds)Úpatch_embeds)Ú
start_axisÚend_axisr6   g      à?)r5   :r9   NNr:   )NNr5   )Nr5   )ro   ÚmodelÚembed_tokensr   rm   r;   r?   ÚsumÚitemÚtolistr<   rB   ri   ÚconcatenateÚflattenrp   r@   Úbroadcast_torw   rx   r)   ÚnpÚwhere)$r-   r}   r~   r   r€   ÚkwargsÚinput_embedsÚidxÚ	patch_idxÚall_patchesÚall_image_oriÚ
crop_shapeÚimages_in_this_batchÚwidth_crop_numÚheight_crop_numÚ	has_cropsÚnum_patchesrL   Ú	image_oriÚlocal_features_1Úlocal_features_2Úlocal_featuresÚglobal_features_1Úglobal_features_2Úglobal_featuresrF   Ún_dimrG   rH   r0   Úhw2Ún_dim2Úh2Úw2Úglobal_local_featuresÚimage_indicess$   &&&&&,                              r   Úget_input_embeddingsÚModel.get_input_embeddingsŽ   sŽ  € ð ×*Ñ*×0Ñ0×=Ñ=¸iÓHˆàÒÜ*¸ÔFÐFð �N‰NÓ&Ø—‘ Õ" aÕ'Ü—’�| A•Ó'×,Ñ,Ó.°!Õ3ð ˆCØˆIØ& q�/ˆKØ(¨�OˆMà1×8Ñ8×:�
Ø')Ð$Ü25°jÀµmÓ2DÄcÈ*ÐUVÍ-ÓFX ð +¨QÑ.×EÐE°/ÀAÑ2E�	ßBK˜nÖ>ÐQR�÷  ¨q¤Ø)°iÀ+Õ6MÐN�GØ Õ,‘Ià"�Gð *°°aµÐ8�	àÓ&¬2¯6ª6°'«?×+?Ñ+?Ó+AÀQÕ+FØ'+§~¡~°g×6GÑ6GÈÈ1ÈaÐQRÓ6SÓ'TÐ$à'+×'8Ñ'8Ø×)Ñ)¨!¨Q°°1Ó5ÐDTð (9ó (Ð$ô &(§^¢^à,¨UÕ3Ø,×4Ñ4ÀÈAÐ4ÓNðð  ô&�Nð &*§^¡^°NÓ%C�Nà(,¯©°y×7JÑ7JÈ1ÈaÐQRÐTUÓ7VÓ(WÐ%Ø(,×(9Ñ(9Ø!×+Ñ+¨A¨q°!°QÓ7Ð9Jó)Ð%ô ')§n¢nà-¨eÕ4Ø-×5Ñ5ÀÈQÐ5ÓOðð  ô'�Oð '+§n¡n°_Ó&E�Oð '6°aÕ&8�OØ /× 5Ñ 5‘I�B˜Ü  C¥›LÐ(�A˜à%3×%9Ñ%9‘N�A�s˜FÜ! # s¥(›mÐ+�B˜à&5×&=Ñ&=¸aÀÀEÓ&J�Oä&(§n¢nà+ÜŸOšOØ $× 2Ñ 2°=Õ AÀAÀqÈ%À=óðð ô'�Oð '6×&=Ñ&=¸bÀ%Ó&H�Oð '×.Ñ.Ø+¸RÀÀVó÷ #™ 1 a¨¨A¨qÓ1ß ™ °2Õ!5°~ÈÕ7JÈFÓSð #ô &(§^¢^à*ÜŸOšOØ $× 2Ñ 2°=Õ AØ!0°2Õ!5°q¸&Ð Aóðð ô	&�Nð &4×%;Ñ%;¸BÀÓ%G�Nä,.¯NªNØ'¨¸$×:MÑ:MÈgÕ:VÐWØô-Ò)ð )-¯©°y×7JÑ7JÈ1ÈaÐQRÐTUÓ7VÓ(WÐ%Ø(,×(9Ñ(9Ø!×+Ñ+¨A¨q°!°QÓ7Ð9Jó)Ð%ô ')§n¢nà-¨eÕ4Ø-×5Ñ5ÀÈQÐ5ÓOðð  ô'�Oð '+§n¡n°_Ó&E�Oð '6°aÕ&8�OØ /× 5Ñ 5‘I�B˜Ü  C¥›LÐ(�A˜à&5×&=Ñ&=¸aÀÀEÓ&J�Oä&(§n¢nà+ÜŸOšOØ $× 2Ñ 2°=Õ AÀAÀqÈ%À=óðð ô'�Oð '6×&=Ñ&=¸bÀ%Ó&H�Oä,.¯NªNØ(¨$×*=Ñ*=¸gÕ*FÐGÈaô-Ð)ð %×+Ñ+Ð,AÔBç'Ü+-¯>ª>Ð:NÐUVÔ+WÐ(ä$&§H¢H¨_Õ-AÓ$BÀ1Õ$E×$LÑ$LÓ$N�Mà7K  mÐ!3Ñ4à�q•“ñ[ ;ô^ '°\ÔBÐBr   c                óB   € V P                   P                  P                  # )N)ro   r†   r,   )r-   s   &r   r,   ÚModel.layers8  s   € à×"Ñ"×(Ñ(×/Ñ/Ð/r   c                óˆ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[ P                  ,          /# )r   r}   r~   Úmask)r?   rs   r   )r   r   s   "€r   r   r^   <  s?   ø€ ÷ ñ á—8‘8ðñ ™rŸx™xÕ(ðñ ‘r—x‘xÕ ñ	r   c                ó¬   € VP                  R R4      pVP                  RR4      pV P                  WWg4      pV P                  WVP                  R7      p	V	# )r   Nr€   )Úcacher‚   )Úgetrª   ro   r‚   )
r-   r}   r~   r¯   r±   r�   r   r€   Úinput_embeddingsÚlogitss
   &&&&&,    r   rQ   ÚModel.__call__<  sh   € ð %Ÿj™jÐ)>ÀÓEÐØ Ÿ*™*Ð%6¸Ó=ˆà×4Ñ4ØÐ%8ó
Ðð ×$Ñ$ØÐ2B×2PÑ2Pð %ó 
ˆð ˆr   c                ój   € R  pV P                  4        UUu/ uF  w  r#V! V4      VbK  	  upp# u uppi )c                 ó   € R V 9   d   RV 9  d   V P                  R R4      p RV 9   d   RV 9  d   V P                  RR4      p RV 9   d   RV 9  d   V P                  RR4      p RV 9   d   V P                  RR4      p R	V 9   d   V P                  R	R
4      p RV 9   d   V P                  RR4      p RV 9   d   V P                  RR4      p RV 9   d   V P                  RR4      p RV 9   d   RV 9  d   V P                  RR4      p V # )zmodel.layersro   zlanguage_model.model.layerszmodel.embed_tokensz!language_model.model.embed_tokensz
model.normzlanguage_model.model.normzmodel.vision_modelri   zmodel.sam_modelrm   zmodel.projectorrp   zmodel.view_seperatorrx   zmodel.image_newlinerw   zlm_head.weightzlanguage_model.lm_head.weight)Úreplace)Úkeys   &r   Útransform_keyÚ%Model.sanitize.<locals>.transform_keyS  s  € Ø Ô$Ð)9ÀÔ)DØ—k‘k .Ð2OÓP�à# sÔ*Ð/?ÀsÔ/JØ—k‘kØ(Ð*Mó�ð ˜sÔ"Ð'7¸sÔ'BØ—k‘k ,Ð0KÓL�à# sÔ*Ø—k‘kÐ"6¸ÓG�à  CÔ'Ø—k‘kÐ"3°[ÓA�à  CÔ'Ø—k‘kÐ"3°[ÓA�à%¨Ô,Ø—k‘kÐ"8Ð:JÓK�à$¨Ô+Ø—k‘kÐ"7¸ÓI�à 3Ô&Ð+;À3Ô+FØ—k‘kÐ"2Ð4SÓT�àˆJr   )Úitems)Úweightsrº   ÚkÚvs   &   r   ÚsanitizeÚModel.sanitizeQ  s4   € ò	ð@ 18·±´Ô@±©¨‘˜aÓ  !Ò#±Ò@Ð@ùÓ@s   —/)	r   rr   rw   ro   rp   rm   rq   rx   ri   )NNNN)NNN)rS   rT   rU   rV   r   rª   Úpropertyr,   rQ   ÚstaticmethodrÀ   rW   rX   rY   rZ   s   @@r   r\   r\   f   sY   ù‡ € ÷%ó %÷NhCò hCðT ñ0ó ð0÷ò ð* ñ!Aó ÷!Að !Ar   r\   )r=   Útypingr   Úmlx.coreÚcorer?   Úmlx.nnr!   ÚnumpyrŽ   Útransformersr   Úmlx_vlm.models.baser   r   r   r   r   Úlanguager	   Úprocessing_deepseekocrr
   Úsamr   Úvisionr   ÚregisterÚModuler   r\   © r   r   Ú<module>rÒ      sd   ðÛ Ý å Ý Û Ý &å 7ç >Ñ >Ý #Ý 8Ý Ý à × Ò �}Ð&:Ô ;ôO�2—9‘9ô OôdMAˆB�I‰Iö MAr   