+
    UV-jô  ã                   ó”   € ^ RI t ^ RIt^ RIHt ^RIHt ^RIHtH	t	 ]
! ]P                  ! 4       4      t ! R R4      t ! R R4      tR# )é    N)Úto_mlx)ÚMODEL_CONFIGÚapply_chat_templatec                   ó@   a € ] tR t^t o RtRR ltR tR tR tRt	V t
R# )	ÚVisionDatasetz(Simplified dataset class for Vision LLMsNc                ó6   € Wn         W0n        W n        W@n        R # ©N©ÚdatasetÚ	processorÚconfigÚimage_resize_shape©ÚselfÚ
hf_datasetr   r   r   s   &&&&&Úi/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/trainer/datasets.pyÚ__init__ÚVisionDataset.__init__   s   € ð "ŒØ"ŒØŒØ"4Öó    c                óz   € \        V P                  R 4      '       d   \        V P                  4      # \        R4      h©Ú__len__zStreaming dataset has no length©Úhasattrr   ÚlenÚ	TypeError©r   s   &r   r   ÚVisionDataset.__len__   ó.   € Ü�4—<‘< ×+Ò+Ü�t—|‘|Ó$Ð$ÜÐ9Ó:Ð:r   c                óF   € V P                  V P                  V,          4      # r	   ©Úprocessr   ©r   Úidxs   &&r   Ú__getitem__ÚVisionDataset.__getitem__    ó   € Ø�|‰|˜DŸL™L¨Õ-Ó.Ð.r   c                ó0  € ^ RI HpHp VP                  RVP                  R. 4      4      p\	        V\
        4      '       g   V'       d   V.M. pVP                  RVP                  R. 4      4      p\	        V\
        4      '       g   V'       d   V.M. pVP                  RVP                  R4      4      pV P                  P                  R4      p\        V4      p\        V4      p	. p
\	        V\
        4      '       d°   \	        V^ ,          \
        4      '       d“   V F‹  pVR	8X  dL   V Uu. uF  p\        P                  ! V4      NK  	  pp\        V4      ^8”  d   \        P                  ! R
4       \        V P                  V P                  VRVV	R7      pV
P                  V4       K�  	  MbVR	8X  d&   V Uu. uF  p\        P                  ! V4      NK  	  pp\        V P                  V P                  VRVV	R7      pV
P                  V4       V P                  P                  R4      ;'       g    V P                  P                  R4      pV'       g   \        R4      hRpV\         9   dO    T! V P                  T
V'       d   TMRV'       d   TMRRR7      pRV9   d   RV9  d   VP#                  R4      VR&   Vf7   T! V P                  V'       d   TMRV'       d   TMRV
VV P&                  R7      p\)        V4      pRVP                  R4      RVR,          RVP                  R\*        P,                  ! VR,          4      4      /VP/                  4        UUu/ uF  w  ppVR9  g   K  VVbK  	  uppC# u upi u upi   \$         d     LÔi ; iu uppi )z&Process a single item from the dataset©Úprepare_inputsÚprocess_inputs_with_fallbackÚimagesÚimageÚaudioÚaudiosÚmessagesÚconversationsÚ
model_typeÚpixtralzCPixtral batch processing is not supported yet. Set batch size to 1.F)Úadd_generation_promptÚ
num_imagesÚ
num_audiosÚimage_token_indexÚimage_token_idú;Config must contain 'image_token_index' or 'image_token_id'N©r   Úpromptsr,   r.   Úadd_special_tokensÚpixel_values©r   r,   r.   r;   r7   Úresize_shapeÚ	input_idsÚattention_mask)r@   r=   rA   )Úmlx_vlm.utilsr*   r+   ÚgetÚ
isinstanceÚlistr   r   ÚjsonÚloadsÚwarningsÚwarnr   r   ÚappendÚ
ValueErrorÚNATIVE_PREPROCESS_MODELSÚpopÚ	Exceptionr   r   ÚmxÚ	ones_likeÚitems)r   Úitemr*   r+   r,   r.   r1   r2   r5   r6   r;   ÚconversationÚiÚpromptr7   ÚinputsÚkÚvs   &&                r   r"   ÚVisionDataset.process#   s*  € çNà—‘˜( D§H¡H¨W°bÓ$9Ó:ˆÜ˜&¤$×'Ò'ß!'�f‘X¨RˆFà—‘˜ $§(¡(¨8°RÓ"8Ó9ˆÜ˜%¤×&Ò&ß$�U‘G¨"ˆEàŸ™ ¨T¯X©X°oÓ-FÓGˆà—[‘[—_‘_ \Ó2ˆ
ä˜“[ˆ
Ü˜“Zˆ
àˆÜ�m¤T×*Ò*¬z¸-ÈÕ:JÌD×/QÒ/QÛ -�Ø Ô*Ù;GÓ#H¹<°a¤D§J¢J¨q¦M¹<�LÐ#HÜ˜=Ó)¨AÔ-Ü ŸšØaôô -Ø—N‘NØ—K‘KØ Ø*/Ø)Ø)ô�ð —‘˜vÖ&ò! !.ð& ˜YÔ&Ù8EÓ F¹°1¤§¢¨A¦¹�Ð FÜ(Ø—‘Ø—‘ØØ&+Ø%Ø%ôˆFð �N‰N˜6Ô"à ŸK™KŸO™OÐ,?Ó@÷ 
ð 
ÀDÇKÁKÇOÁOØóE
Ð÷ !ÜØMóð ð ˆØÔ1Ô1ðÙ5Ø"Ÿn™nØ#ß%+™6°ß#(™%¨dØ',ô�ð ˜vÔ%¨.ÀÔ*FØ-3¯Z©Z¸Ó-A�F˜>Ñ*ð Š>Ù#ØŸ.™.ß!'‘v¨Tß$‘e¨$ØØ"3Ø!×4Ñ4ôˆFô ˜“ˆð ˜FŸJ™J ~Ó6Ø˜ Õ,Ø˜fŸj™jØ ¤"§,¢,¨v°kÕ/BÓ"Cóð
ð #ŸL™LœNôá*‘D�A�qØÐKÑKô ��1’Ù*òð
ð 	
ùòA $Iùò$ !Gøô> ô Ùðüó*s6   Ä*M7Æ7M<É-N Ê
N Ê,N ÍNÍ+NÎNÎN©r   r   r   r   r	   ©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r%   r"   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s#   ø‡ € Ù2ô
5ò;ò
/÷b
ð b
r   r   c                   ó@   a € ] tR t^ˆt o RtRR ltR tR tR tRt	V t
R# )	ÚPreferenceVisionDataseta  Dataset for preference-based training (ORPO, DPO).

Expected item keys: ``chosen``, ``rejected``, and optionally ``images`` / ``image``.
Each of ``chosen`` / ``rejected`` can be:
- a list of message dicts (processed via ``apply_chat_template``)
- a plain string (encoded directly)
Nc                ó6   € Wn         W0n        W n        W@n        R # r	   r
   r   s   &&&&&r   r   Ú PreferenceVisionDataset.__init__‘   s   € Ø!ŒØ"ŒØŒØ"4Ör   c                óz   € \        V P                  R 4      '       d   \        V P                  4      # \        R4      hr   r   r   s   &r   r   ÚPreferenceVisionDataset.__len__—   r   r   c                óF   € V P                  V P                  V,          4      # r	   r!   r#   s   &&r   r%   Ú#PreferenceVisionDataset.__getitem__œ   r'   r   c           
     ó8  € ^ RI HpHp VP                  RVP                  R. 4      4      p\	        V\
        4      '       g   V'       d   V.M. pV P                  P                  R4      ;'       g    V P                  P                  R4      pV'       g   \        R4      h\        V4      pV P                  P                  R4      p/ pR EF;  p	W,          p
\	        V
\        4      '       d   T
pM$\        V P                  V P                  V
RVR	7      pR
pV\        9   dF    T! V P                  V.V'       d   TMR
R
RR7      pRV9   d   RV9  d   VP                  R4      VR&   Vf.   T! V P                  V'       d   TMR
R
V.VV P                  R7      p\!        V4      pVR,          W‰ R2&   VP                  R\"        P$                  ! VR,          4      4      W‰ R2&   VP                  R4      f   EK-  VR,          W‰ R2&   EK>  	  V#   \         d     L´i ; i)r   r)   r,   r-   r7   r8   r9   r2   F)r4   r5   Nr:   r=   r>   r@   Ú
_input_idsrA   Ú_attention_maskÚ_pixel_values)ÚchosenÚrejected)rB   r*   r+   rC   rD   rE   r   rK   r   Ústrr   r   rL   rM   rN   r   r   rO   rP   )r   rR   r*   r+   r,   r7   r5   r2   ÚresultÚkeyÚsequencerU   rV   s   &&           r   r"   ÚPreferenceVisionDataset.processŸ   sÿ  € ßNà—‘˜( D§H¡H¨W°bÓ$9Ó:ˆÜ˜&¤$×'Ò'ß!'�f‘X¨RˆFà ŸK™KŸO™OÐ,?Ó@÷ 
ð 
ÀDÇKÁKÇOÁOØóE
Ð÷ !ÜØMóð ô ˜“[ˆ
à—[‘[—_‘_ \Ó2ˆ
àˆÜ)ˆCØ•yˆHÜ˜(¤C×(Ò(Ø!‘ä,Ø—N‘NØ—K‘KØØ*/Ø)ô�ð ˆFØÔ5Ô5ðÙ9Ø"&§.¡.Ø!' ß)/™v°TØ"Ø+0ô�Fð   6Ô)¨nÀFÔ.JØ17·±¸HÓ1E˜˜~Ñ.ð Š~Ù'Ø"Ÿn™nß%+™6°ØØ#˜HØ&7Ø!%×!8Ñ!8ô�ô ˜F“^ˆFà)/°Õ)<ˆF�U˜*Ð%Ñ&Ø.4¯j©jØ ¤"§,¢,¨v°kÕ/BÓ"Có/ˆF�U˜/Ð*Ñ+ð �z‰z˜.Ó)Õ5Ø06°~Õ0F�˜˜mÐ,Ô-ñY *ð\ ˆøô- !ô Ùðús   Ä HÄ7-HÈHÈHrZ   r	   r[   rc   s   @r   rf   rf   ˆ   s%   ø‡ € ñô5ò;ò
/÷Bð Br   rf   )rF   rH   Úmlx.coreÚcorerO   Úmodels.baser   Úprompt_utilsr   r   ÚsetÚkeysrL   r   rf   © r   r   Ú<module>r      sA   ðÛ Û å å  ß <á˜|×0Ò0Ó2Ó3Ð ÷y
ñ y
÷xYó Yr   