+
    TV-jV  ã                   óÊ   € ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^RI	H
t
 ] ! R R]
P                  4      4       t ! R R]P                  4      t ! R	 R
]P                  4      tR# )é    )Ú	dataclass)ÚOptionalN)Úllamac                   óF   a a€ ] tR t^t o^tRtV 3R ltV3R ltRtVt	V ;t
# )Ú	ModelArgsNc                óH  <€ \         SV `  4        V P                  fQ   \        V P                  4       Uu. uF)  p\        V^,           V P                  ,          ^ 8g  4      NK+  	  upV n        R # \        V P                  4      V P                  8w  d   \        R4      hR # u upi )Nz `no_rope_layers` length mismatch)	ÚsuperÚ__post_init__Úno_rope_layersÚrangeÚnum_hidden_layersÚintÚno_rope_layer_intervalÚlenÚ
ValueError)ÚselfÚiÚ	__class__s   & €Úf/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/smollm3.pyr
   ÚModelArgs.__post_init__   s’   ø€ Ü‰ÑÔØ×ÑÒ&ô ˜t×5Ñ5Ô6ó#á6�Aô �Q˜•U˜d×9Ñ9Õ9¸QÑ>Ö?Ù6ñ#ˆDÖô �×$Ñ$Ó%¨×)?Ñ)?Ô?ÜÐ?Ó@Ð@ñ @ùò	#s   µ/Bc                ó^   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[S[S[,          ,          ;R&   # )é   Ú
model_typer   r   )Ústrr   r   Úlist)ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚModelArgs.__annotate__   s2   ø‡ ‚ á�Oñ ñ  Ñ#ñ ñ ™T¡#�YÕ'Ñ.ò	 ó    )r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r
   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r   r   s   @@r   r   r      s   ù‡ € ð #$ÐØ*.€NõA÷ … r    r   c                   ó:   a € ] tR t^t o RtRV 3R lR lltRtV tR# )ÚNoPEz;No-op used to disable rotary embeddings in selected layers.c                ó    <€ V ^8„  d   QhRS[ /# )r   Úoffset)r   )r   r   s   "€r   r   ÚNoPE.__annotate__    s   ø€ ÷ ñ ¡#ñ r    c                ó   € V# ©N© )r   Úxr-   s   &&&r   Ú__call__ÚNoPE.__call__    s   € Øˆr    r1   N)r   )r!   r"   r#   r$   Ú__doc__r3   r&   r'   )r   s   @r   r+   r+      s   ø‡ € ÙE÷÷ ð r    r+   c                   óz   a a€ ] tR t^$t oRtV3R lV 3R lltR
V3R lR llt]R 4       tV3R lR lt	R	t
VtV ;t# )ÚModelz;Wrapper around Llama that respects NoPE layers in SmolLM-3.c                ó    <€ 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
                  ! V4      V n        VP                  '       g3   \        P                  ! VP                  VP                  R R7      V n        \        VP                  4       FC  w  r#V'       d   K  \        4       V P                  P                   V,          P"                  n        KE  	  R# )F)ÚbiasN)r	   Ú__init__r9   r   r   Ú
LlamaModelÚmodelÚtie_word_embeddingsÚnnÚLinearÚhidden_sizeÚ
vocab_sizeÚlm_headÚ	enumerater   r+   ÚlayersÚ	self_attnÚrope)r   r9   ÚidxÚuse_roper   s   &&  €r   r=   ÚModel.__init__'   s•   ø€ Ü‰ÑÔØŒ	Ø#Ÿ™ˆŒä×%Ò% dÓ+ˆŒ
Ø×'×'Ð'ÜŸ9š9 T×%5Ñ%5°t·±ÈUÔSˆDŒLä& t×':Ñ':Ö;‰MˆCß‘8Ü8<»�—
‘
×!Ñ! #Õ&×0Ñ0Ö5ó <r    c                ó^   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          /# )r   ÚinputsÚinput_embeddings)ÚmxÚarrayr   )r   r   s   "€r   r   r:   4   s,   ø€ ÷ ñ á—‘ðñ #¡2§8¡8Õ,ñ	r    c                óÒ   € V P                  WV4      pV P                  P                  '       d(   V P                   P                  P	                  V4      pV# V P                  V4      pV# r0   )r?   r9   r@   Úembed_tokensÚ	as_linearrE   )r   rN   ÚcacherO   Úouts   &&&& r   r3   ÚModel.__call__4   s[   € ð �j‰j˜Ð(8Ó9ˆØ�9‰9×(×(Ð(Ø—*‘*×)Ñ)×3Ñ3°CÓ8ˆCð ˆ
ð —,‘,˜sÓ#ˆCØˆ
r    c                ó.   € V P                   P                  # r0   )r?   rG   )r   s   &r   rG   ÚModel.layersA   s   € à�z‰z× Ñ Ð r    c                ó    <€ V ^8„  d   QhRS[ /# )r   Úweights)Údict)r   r   s   "€r   r   r:   E   s   ø€ ÷ ñ ¡ñ r    c                óÆ   € VP                  4        UUu/ uF  w  r#R V9  g   K  W#bK  	  pppV P                  P                  '       d   VP                  RR4       V# u uppi )zself_attn.rotary_emb.inv_freqzlm_head.weightN)Úitemsr9   r@   Úpop)r   r[   ÚkÚvs   &&  r   ÚsanitizeÚModel.sanitizeE   s^   € à$Ÿ]™]œ_ô
Ù,‘T�QÐ0OÐWXÑ0XŒDˆAŠD™_ð 	ñ 
ð �9‰9×(×(Ð(Ø�K‰KÐ(¨$Ô/Øˆùó
s
   ”A¤A)r9   rE   r?   r   )NN)r!   r"   r#   r$   r5   r=   r3   ÚpropertyrG   rb   r&   r'   r(   r)   s   @@r   r7   r7   $   s?   ù‡ € ÙE÷?ó ?÷ò ð ñ!ó ð!÷÷ ð r    r7   )Údataclassesr   Útypingr   Úmlx.coreÚcorerP   Úmlx.nnrA   Ú r   r   ÚModuler+   r7   r1   r    r   Ú<module>rl      sX   ðõ "Ý å Ý å ð ôA�—‘ó Aó ðAô ˆ2�9‰9ô ô'ˆB�I‰Iö 'r    