+
    TV-j­	  ã                   ó¨   € ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
Ht ^RIHt ^RIHt ] ! R R]4      4       t ! R	 R
]P"                  4      tR# )é    )Ú	dataclass)ÚOptionalN)Útree_flattenÚtree_unflatten)Úgemma4_text)ÚBaseModelArgsc                   ó>   a € ] tR t^t o RtRtRtR tV 3R ltRt	V t
R# )Ú	ModelArgsÚgemma4Ni   c                ó  € V P                   f   / V n         V P                  V P                   R&   V P                   P                  R^4      V P                   R&   V P                   P                  R^4      V P                   R&   R # )NÚ
vocab_sizeÚnum_attention_headsÚnum_key_value_heads)Útext_configr   Úget©Úselfs   &Úe/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/gemma4.pyÚ__post_init__ÚModelArgs.__post_init__   sz   € Ø×ÑÒ#Ø!ˆDÔØ)-¯©ˆ×Ñ˜Ñ&Ø26×2BÑ2B×2FÑ2FØ! 1ó3
ˆ×ÑÐ.Ñ/ð 37×2BÑ2B×2FÑ2FØ! 1ó3
ˆ×ÑÐ.Ó/ó    c                ó>   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   # )é   Ú
model_typer   r   )ÚstrÚdictÚint)ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚModelArgs.__annotate__   s*   ø‡ ‚ áÑñ ñ Ññ ñ Ñò	 r   )r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r   s   @r   r
   r
      s    ø‡ € à€JØ€KØ€Jò	
÷ ƒ 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 t
R	tVtV ;t# )ÚModelc                ó    <€ V ^8„  d   QhRS[ /# )r   Úargs)r
   )r   r   s   "€r   r    ÚModel.__annotate__!   s   ø€ ÷ 
ñ 
™Yñ 
r   c                óÖ   <€ \         SV `  4        Wn        VP                  V n        \        P
                  ! \        P                  P                  VP                  4      4      V n	        R # ©N)
ÚsuperÚ__init__r,   r   r   r*   r
   Ú	from_dictr   Úlanguage_model)r   r,   Ú	__class__s   &&€r   r1   ÚModel.__init__!   sK   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒÜ)×/Ò/Ü×!Ñ!×+Ñ+¨D×,<Ñ,<Ó=ó
ˆÖr   c                óˆ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[ P                  ,          /# )r   ÚinputsÚinput_embeddingsÚper_layer_inputs)ÚmxÚarrayr   )r   r   s   "€r   r    r-   )   s?   ø€ ÷ 
ñ 
á—‘ð
ñ #¡2§8¡8Õ,ð	
ñ
 #¡2§8¡8Õ,ñ
r   c                ó,   € V P                  VVVVR 7      # ))Úcacher8   r9   )r3   )r   r7   r=   r8   r9   s   &&&&&r   Ú__call__ÚModel.__call__)   s(   € ð ×"Ñ"ØØØ-Ø-ð	 #ó 
ð 	
r   c                óZ  € / pVP                  4        F{  w  r4VP                  R 4      pVP                  R 4      pVP                  R4      '       d   K@  V'       g   WBV&   KN  VP                  R4      '       d   VP                  RR4      pWBV&   K}  	  V P                  P                  V4      # )zmodel.r3   zlanguage_model.zlanguage_model.model.)Úvision_towerÚmulti_modal_projectorÚaudio_towerÚembed_audioÚembed_vision)ÚitemsÚ
startswithÚremoveprefixÚreplacer3   Úsanitize)r   ÚweightsÚnew_weightsÚkÚvÚstarts_w_models   &&    r   rJ   ÚModel.sanitize7   sŸ   € ØˆØ—M‘M–O‰DˆAØŸ\™\¨(Ó3ˆNà—‘˜xÓ(ˆAØ�|‰|ð÷ò ñ ç!Ø!"˜A‘Ùà�|‰|Ð,×-Ò-Ø—I‘IÐ/Ð1HÓI�à˜‹Nñ- $ð0 ×"Ñ"×+Ñ+¨KÓ8Ð8r   c                ó.   € V P                   P                  # r/   )r3   Úlayersr   s   &r   rR   ÚModel.layersS   s   € à×"Ñ"×)Ñ)Ð)r   c                ó.   € V P                   P                  # r/   )r3   Úquant_predicater   s   &r   rU   ÚModel.quant_predicateW   s   € à×"Ñ"×2Ñ2Ð2r   c                ó6   € V P                   P                  4       # r/   )r3   Ú
make_cacher   s   &r   rX   ÚModel.make_cache[   s   € Ø×"Ñ"×-Ñ-Ó/Ð/r   )r,   r3   r   )NNN)r"   r#   r$   r%   r1   r>   rJ   ÚpropertyrR   rU   rX   r'   r(   Ú__classcell__)r4   r   s   @@r   r*   r*       sP   ù‡ € ÷
ó 
÷
ò 
ò9ð8 ñ*ó ð*ð ñ3ó ð3÷0ò 0r   r*   )Údataclassesr   Útypingr   Úmlx.coreÚcorer:   Úmlx.nnÚnnÚ	mlx.utilsr   r   Ú r   Úbaser   r
   ÚModuler*   © r   r   Ú<module>rg      sG   ðõ "Ý å Ý ß 2å Ý ð ô
�ó 
ó ð
ô"<0ˆB�I‰Iö <0r   