+
    TV-j  ã                   ó`  € ^ RI Ht ^ RIHtHtHtHt ^ RIHt	 ^ RI
Ht ^RIHt ^RIHtHtHt ^RIHt ] ! R R]4      4       t ! R	 R
]P*                  4      t ! R R]P*                  4      t ! R R]P*                  4      t ! R R]P*                  4      t ! R R]P*                  4      tR# )é    )Ú	dataclass)ÚAnyÚDictÚOptionalÚUnionN)Úswiglu)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attention)Úinitialize_ropec                   ó4   a € ] tR t^t o RtRtV 3R ltRtV tR# )Ú	ModelArgsNTc                ó.  <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R	&   S[;R
&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[S[S[ S[S[S[ 3,          3,          ,          ;R&   S[;R&   # )é   Ú
model_typeÚhidden_sizeÚnum_hidden_layersÚintermediate_sizeÚnum_attention_headsÚrms_norm_epsÚ
vocab_sizeÚlogits_scalingÚattention_multiplierÚembedding_multiplierÚresidual_multiplierÚmax_position_embeddingsÚnum_key_value_headsÚattention_biasÚmlp_biasÚ
rope_thetaÚrope_scalingÚtie_word_embeddings)ÚstrÚintÚfloatÚboolr   r   r   )ÚformatÚ__classdict__s   "€Úf/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/granite.pyÚ__annotate__ÚModelArgs.__annotate__   s  ø‡ ‚ á�Oñ ñ Ññ ñ Ññ	 ñ
 Ññ ñ Ññ ñ Ññ ñ �Oñ ñ Ññ ñ  Ññ ñ  Ññ ñ Ññ ñ !Ñ ñ ñ Ññ ñ Ññ ñ  �Nñ! ñ" Ññ# ñ$ ™4¡¡U©5±#¨:Õ%6Ð 6Õ7Õ8Ñ?ñ% ñ& Ñ$ò' ó    © )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r!   r"   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r(   s   @r)   r   r      s   ø‡ € ð$ <@€LØ $Ð÷' ƒ r,   r   c                   óT   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VtV ;t# )Ú	Attentionc                ó    <€ V ^8„  d   QhRS[ /# ©r   Úargs©r   )r'   r(   s   "€r)   r*   ÚAttention.__annotate__%   s   ø€ ÷ 
ñ 
™Yñ 
r,   c                óŒ  <€ \         SV `  4        VP                  pVP                  ;V n        pVP
                  ;V n        pVP                  V,          ;V n        pVP                  V n	        VP                  p\        P                  ! W#V,          VR 7      V n        \        P                  ! W$V,          VR 7      V n        \        P                  ! W$V,          VR 7      V n        \        P                  ! W5,          W&R 7      V n        \#        V P                  VP$                  RVP&                  VP(                  4      V n        R# )©ÚbiasFN)ÚsuperÚ__init__r   r   Ún_headsr   Ú
n_kv_headsÚhead_dimr   Úscaler   ÚnnÚLinearÚq_projÚk_projÚv_projÚo_projr   r    r!   r   Úrope)Úselfr9   ÚdimrA   rB   rC   r   Ú	__class__s   &&     €r)   r@   ÚAttention.__init__%   sõ   ø€ Ü‰ÑÔà×ÑˆØ!%×!9Ñ!9Ð9ˆŒ�wØ'+×'?Ñ'?Ð?ˆŒ˜*à#'×#3Ñ#3°wÕ#>Ð>ˆŒ˜à×.Ñ.ˆŒ
Ø×,Ñ,ˆÜ—i’i ¨xÕ%7¸nÔMˆŒÜ—i’i °(Õ%:ÀÔPˆŒÜ—i’i °(Õ%:ÀÔPˆŒÜ—i’i Õ 2°CÔMˆŒä#Ø�M‰MØ�O‰OØØ×ÑØ×(Ñ(ó
ˆŽ	r,   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# ©r   ÚxÚmaskÚcacheÚreturn©ÚmxÚarrayr   r   )r'   r(   s   "€r)   r*   r;   =   sH   ø€ ÷ #ñ #á�8‰8ð#ñ ‘r—x‘xÕ ð#ñ ™�}ð	#ñ
 
�‰ñ#r,   c           	     ó  € VP                   w  rEpV P                  V4      V P                  V4      V P                  V4      r˜pVP	                  WEV P
                  R4      P                  ^ ^^^4      pVP	                  WEV P                  R4      P                  ^ ^^^4      pV	P	                  WEV P                  R4      P                  ^ ^^^4      p	VeM   V P                  WsP                  R7      pV P                  WƒP                  R7      pVP                  W‰4      w  r‰M"V P                  V4      pV P                  V4      p\        WxW“V P                  VR7      p
V
P                  ^ ^^^4      P	                  WER4      p
V P                  V
4      # )é   )Úoffset)rT   rD   rS   éÿÿÿÿ)ÚshaperG   rH   rI   ÚreshaperA   Ú	transposerB   rK   r[   Úupdate_and_fetchr   rD   rJ   )rL   rR   rS   rT   ÚBÚLÚDÚqueriesÚkeysÚvaluesÚoutputs   &&&&       r)   Ú__call__ÚAttention.__call__=   sS  € ð —'‘'‰ˆˆaà $§¡¨A£°·±¸A³ÀÇÁÈAÃ�vˆð —/‘/ !¨¯©°bÓ9×CÑCÀAÀqÈ!ÈQÓOˆØ�|‰|˜A $§/¡/°2Ó6×@Ñ@ÀÀAÀqÈ!ÓLˆØ—‘  d§o¡o°rÓ:×DÑDÀQÈÈ1ÈaÓPˆàÒØ—i‘i ·±�iÓ=ˆGØ—9‘9˜T¯,©,�9Ó7ˆDØ ×1Ñ1°$Ó?‰LˆD�&à—i‘i Ó(ˆGØ—9‘9˜T“?ˆDä-Ø˜6°d·j±jÀtô
ˆð ×!Ñ! ! Q¨¨1Ó-×5Ñ5°a¸BÓ?ˆØ�{‰{˜6Ó"Ð"r,   )	rC   rH   rA   rB   rJ   rG   rK   rD   rI   ©NN©	r.   r/   r0   r1   r@   rh   r3   r4   Ú__classcell__©rN   r(   s   @@r)   r6   r6   $   s   ù‡ € ÷
ó 
÷0#÷ #ò #r,   r6   c                   óP   a a€ ] tR t^\t oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚMLPc                ó    <€ V ^8„  d   QhRS[ /# r8   r:   )r'   r(   s   "€r)   r*   ÚMLP.__annotate__]   s   ø€ ÷ Añ A™Yñ Ar,   c                óD  <€ \         SV `  4        VP                  pVP                  p\	        VR 4      '       d   VP
                  pMRp\        P                  ! W#VR7      V n        \        P                  ! W2VR7      V n	        \        P                  ! W#VR7      V n
        R# )r   Fr=   N)r?   r@   r   r   Úhasattrr   rE   rF   Ú	gate_projÚ	down_projÚup_proj)rL   r9   rM   Ú
hidden_dimr   rN   s   &&   €r)   r@   ÚMLP.__init__]   su   ø€ Ü‰ÑÔà×ÑˆØ×+Ñ+ˆ
Ü�4˜×$Ò$Ø—}‘}‰HàˆHäŸš 3¸ÔBˆŒÜŸš :¸ÔBˆŒÜ—y’y °xÔ@ˆŽr,   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   rU   ©rW   rX   )r'   r(   s   "€r)   r*   rq   k   s   ø€ ÷ Jñ J™RŸX™Xñ Jr,   c                ót   € V P                  \        V P                  V4      V P                  V4      4      4      # ©N)ru   r   rt   rv   )rL   rR   s   &&r)   rh   ÚMLP.__call__k   s)   € Ø�~‰~œf T§^¡^°AÓ%6¸¿¹ÀQ»ÓHÓIÐIr,   )ru   rt   rv   rk   rm   s   @@r)   ro   ro   \   s#   ù‡ € ÷Aó A÷J÷ Jð Jr,   ro   c                   óT   a a€ ] tR t^ot oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚTransformerBlockc                ó    <€ V ^8„  d   QhRS[ /# r8   r:   )r'   r(   s   "€r)   r*   ÚTransformerBlock.__annotate__p   s   ø€ ÷ 
<ñ 
<™Yñ 
<r,   c                óŽ  <€ \         SV `  4        VP                  V n        VP                  V n        \	        V4      V n        \        V4      V n        \        P                  ! VP                  VP                  R 7      V n        \        P                  ! VP                  VP                  R 7      V n        VP                  V n        R# )©ÚepsN)r?   r@   r   r   r6   Ú	self_attnro   ÚmlprE   ÚRMSNormr   Úinput_layernormÚpost_attention_layernormr   ©rL   r9   rN   s   &&€r)   r@   ÚTransformerBlock.__init__p   s‘   ø€ Ü‰ÑÔØ#'×#;Ñ#;ˆÔ Ø×+Ñ+ˆÔÜ" 4›ˆŒÜ�t“9ˆŒÜ!Ÿzšz¨$×*:Ñ*:À×@QÑ@QÔRˆÔÜ(*¯
ª
Ø×Ñ $×"3Ñ"3ô)
ˆÔ%ð $(×#;Ñ#;ˆÖ r,   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# rQ   rV   )r'   r(   s   "€r)   r*   r�   |   sH   ø€ ÷ 
ñ 
á�8‰8ð
ñ ‘r—x‘xÕ ð
ñ ™�}ð	
ñ
 
�‰ñ
r,   c                óì   € V P                  V P                  V4      W#4      pWV P                  ,          ,           pV P                  V P	                  V4      4      pWTV P                  ,          ,           pV# r|   )r…   rˆ   r   r†   r‰   )rL   rR   rS   rT   ÚrÚhÚouts   &&&&   r)   rh   ÚTransformerBlock.__call__|   sc   € ð �N‰N˜4×/Ñ/°Ó2°DÓ@ˆØ�D×,Ñ,Õ,Õ,ˆØ�H‰H�T×2Ñ2°1Ó5Ó6ˆØ�d×.Ñ.Õ.Õ.ˆØˆ
r,   )r   rˆ   r†   r   r‰   r   r…   rj   rk   rm   s   @@r)   r   r   o   s   ù‡ € ÷
<ó 
<÷
÷ 
ò 
r,   r   c                   óT   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VtV ;t# )ÚGraniteModelc                ó    <€ V ^8„  d   QhRS[ /# r8   r:   )r'   r(   s   "€r)   r*   ÚGraniteModel.__annotate__Š   s   ø€ ÷ >ñ >™Yñ >r,   c                óð  <€ \         SV `  4        Wn        VP                  V n        VP                  V n        V P                  ^ 8”  g   Q h\
        P                  ! VP                  VP                  4      V n        \        VP                  4       Uu. uF  p\        VR7      NK  	  upV n        \
        P                  ! VP                  VP                  R7      V n        VP                  V n        R# u upi )r   )r9   rƒ   N)r?   r@   r9   r   r   rE   Ú	Embeddingr   Úembed_tokensÚranger   Úlayersr‡   r   Únormr   )rL   r9   Ú_rN   s   && €r)   r@   ÚGraniteModel.__init__Š   s»   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒØ!%×!7Ñ!7ˆÔØ�‰ Ô"Ð"Ð"ÜŸLšL¨¯©¸$×:JÑ:JÓKˆÔä16°t×7MÑ7MÔ1Nó
Ù1N¨AÔ $×'Ñ1Nñ
ˆŒô —J’J˜t×/Ñ/°T×5FÑ5FÔGˆŒ	Ø$(×$=Ñ$=ˆÖ!ùò	
s   ÂC3c                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r   Úinputsrz   )r'   r(   s   "€r)   r*   r•   —   s   ø€ ÷ ñ á—‘ñr,   c                ó   € V P                  V4      V P                  ,          pVf   R .\        V P                  4      ,          p\	        W2^ ,          4      p\        V P                  V4       F  w  rVV! W4VR7      pK  	  V P                  V4      # )N)rT   )r˜   r   Úlenrš   r
   Úzipr›   )rL   r    rT   r�   rS   ÚlayerÚcs   &&&    r)   rh   ÚGraniteModel.__call__—   sz   € ð
 ×Ñ˜fÓ%¨×(AÑ(AÕAˆàŠ=Ø�FœS §¡Ó-Õ-ˆEä$ Q¨a­Ó1ˆä˜DŸK™K¨Ö/‰HˆEÙ�a QÔ'ŠAñ 0ð �y‰y˜‹|Ðr,   )r9   r˜   r   rš   r›   r   r   r|   rk   rm   s   @@r)   r“   r“   ‰   s   ù‡ € ÷>ó >÷÷ ò r,   r“   c                   ód   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 4       tRtVt	V ;t
# )ÚModelc                ó    <€ V ^8„  d   QhRS[ /# r8   r:   )r'   r(   s   "€r)   r*   ÚModel.__annotate__ª   s   ø€ ÷ 2ñ 2™Yñ 2r,   c                ó  <€ \         SV `  4        Wn        VP                  V n        \	        V4      V n        VP                  '       g3   \        P                  ! VP                  VP                  R R7      V n        VP                  V n        R# )Fr=   N)r?   r@   r9   r   r“   Úmodelr"   rE   rF   r   r   Úlm_headr   rŠ   s   &&€r)   r@   ÚModel.__init__ª   sb   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒÜ! $Ó'ˆŒ
Ø×'×'Ð'ÜŸ9š9 T×%5Ñ%5°t·±ÈUÔSˆDŒLØ"×1Ñ1ˆÖr,   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rŸ   rz   )r'   r(   s   "€r)   r*   rª   ³   s   ø€ ÷ 
)ñ 
)á—‘ñ
)r,   c                óî   € V P                  W4      pV P                  P                  '       d'   V P                   P                  P	                  V4      pMV P                  V4      pW0P                  ,          # r|   )r¬   r9   r"   r˜   Ú	as_linearr­   r   )rL   r    rT   r�   s   &&& r)   rh   ÚModel.__call__³   sY   € ð
 �j‰j˜Ó'ˆØ�9‰9×(×(Ð(Ø—*‘*×)Ñ)×3Ñ3°CÓ8‰Cà—,‘,˜sÓ#ˆCØ×(Ñ(Õ(Ð(r,   c                ó.   € V P                   P                  # r|   )r¬   rš   )rL   s   &r)   rš   ÚModel.layers¿   s   € à�z‰z× Ñ Ð r,   )r9   r­   r   r¬   r   r|   )r.   r/   r0   r1   r@   rh   Úpropertyrš   r3   r4   rl   rm   s   @@r)   r¨   r¨   ©   s2   ù‡ € ÷2ó 2÷
)ò 
)ð ñ!ó ÷!ð !r,   r¨   )Údataclassesr   Útypingr   r   r   r   Úmlx.coreÚcorerW   Úmlx.nnrE   Úactivationsr   Úbaser	   r
   r   Ú
rope_utilsr   r   ÚModuler6   ro   r   r“   r¨   r-   r,   r)   Ú<module>r¿      s‘   ðõ "ß -Ó -å Ý å ß TÑ TÝ 'ð ô%�ó %ó ð%ô*5#�—	‘	ô 5#ôpJˆ"�)‰)ô Jô&�r—y‘yô ô4�2—9‘9ô ô@!ˆB�I‰Iö !r,   