+
    TV-js/  ã                   ó–  € ^ RI t ^ RIHt ^ RIHt ^ 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Ht ^R	IHt ] ! R
 R]4      4       t ! R R]P:                  4      t ! R R]P>                  4      t  ! R R]PB                  4      t"]! ]PF                  RR7      R 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 R ]P:                  4      t* ! R! R"]P:                  4      t+R# )#é    N)Ú	dataclass)Úpartial)Ú
accumulate)ÚAnyÚDictÚOptionalÚUnion)Úswiglu)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attention)ÚConcatenateKVCacheÚKVCache)Úinitialize_ropec                   ó8   a € ] tR t^t o RtRtRtV 3R ltRtV t	R# )Ú	ModelArgsg      
@iPÃ  gñhãˆµøä>c                ó’   <€ 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
&   # )é   Ú
model_typeÚ
vocab_sizeÚ
hidden_dimÚ
num_layersÚnum_kv_reuse_layersÚ	num_headsÚnum_kv_headsÚhidden_dim_scale_factorÚ
rope_thetaÚrms_norm_eps)ÚstrÚintÚfloat)ÚformatÚ__classdict__s   "€Úc/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/afm7.pyÚ__annotate__ÚModelArgs.__annotate__   s€   ø‡ ‚ á�Oñ ñ �Oñ ñ �Oñ	 ñ
 �Oñ ñ Ññ ñ �Nñ ñ Ññ ñ #Ñ)ñ ñ Ññ ñ Ñò ó    © N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r#   s   @r$   r   r      s   ø‡ € ð &*ÐØ€JØ€L÷ ƒ r'   r   c                   ó^   a a€ ] tR t^ t oRV3R lV 3R llltRV3R lR lltR tRtVtV ;t	# )	ÚFusedLoRALinearc          
      óH   <€ V ^8„  d   QhRS[ RS[S[ ,          RS[ RS[RS[/# )r   Ú
input_dimsÚoutput_dimsÚrÚdropoutÚscale)r    Úlistr!   )r"   r#   s   "€r$   r%   ÚFusedLoRALinear.__annotate__!   sH   ø€ ÷ @ñ @áð@ñ ™#•Yð@ñ ð	@ñ
 ð@ñ ñ@r'   c           	     ó   <€ \         SV `  4        \        W4      V n        \        P
                  ! VR 7      V n        WPn        ^\        P                  ! V4      ,          pV Uu. uF'  p\        P                  P                  V) WQV3R7      NK)  	  upV n        V Uu. uF  p\        P                  ! W734      NK  	  upV n        R# u upi u upi ))Úp)ÚlowÚhighÚshapeN)ÚsuperÚ__init__ÚFusedLinearÚlinearÚnnÚDropoutr6   r7   ÚmathÚsqrtÚmxÚrandomÚuniformÚlora_aÚzerosÚlora_b)	Úselfr3   r4   r5   r6   r7   Ú_ÚodÚ	__class__s	   &&&&&&  €r$   r@   ÚFusedLoRALinear.__init__!   s­   ø€ ô 	‰ÑÔä! *Ó:ˆŒÜ—z’z GÔ,ˆŒØŒ
à”D—I’I˜jÓ)Õ)ˆñ !ó
á �ô �I‰I×Ñ 5 &¨uÈ¸OÐÖLÙ ñ
ˆŒñ 4?Ó?±;¨R”r—x’x  Ö(±;Ñ?ˆŽùò	
ùò @s   Á#-CÂ Cc                ó    <€ V ^8„  d   QhRS[ /# )r   Ú
dequantize)Úbool)r"   r#   s   "€r$   r%   r9   6   s   ø€ ÷  ñ  ™tñ  r'   c                ó,  € V P                   pVP                  p\        V\        4      pVP                  pV'       dY   VP
                  P                  p\        P                  ! VVP
                  VP                  VP                  VP                  4      pVP                  R,          pVP                  p\        Wg4      pW8n        \        V P                  V P                   4       U	U
u. uFB  w  ršV P"                  V
P$                  ,          V	P$                  ,          P'                  V4      NKD  	  pp	p
\        P(                  ! V^ R7      pW<,           Vn        V'       d/   V'       g'   VP+                  VP                  VP                  4      pV# u up
p	i ©é   )Úaxiséÿÿÿÿ)rB   ÚweightÚ
isinstanceÚFusedQuantizedLinearÚdtypeÚscalesrG   rS   ÚbiasesÚ
group_sizeÚbitsr>   r4   rA   ÚziprJ   rL   r7   ÚTÚastypeÚconcatenateÚto_quantized)rM   rS   rB   rZ   Úis_quantizedr]   r3   r4   Úfused_linearÚaÚbÚdeltasÚdeltas   &&           r$   ÚfuseÚFusedLoRALinear.fuse6   s4  € Ø—‘ˆØ—‘ˆÜ! &Ô*>Ó?ˆð —‘ˆçØ—M‘M×'Ñ'ˆEÜ—]’]ØØ—‘Ø—‘Ø×!Ñ!Ø—‘óˆFð —\‘\ "Õ%ˆ
Ø×(Ñ(ˆÜ" :Ó;ˆØ$Ôô ˜DŸK™K¨¯©Ô5ô
á5‘�ð �j‰j˜1Ÿ3™3Õ !§#¡#Õ%×-Ñ-¨eÖ4Ù5ð 	ñ 
ô —’˜v¨AÔ.ˆØ$�nˆÔç§
Ø'×4Ñ4°V×5FÑ5FÈÏÉÓTˆLàÐùó
s   Ã(AFc                óz  a a€ VP                   oS P                  V4      pS P                  V4      p\        S P                  S P
                  4       UUu. uF  w  r4W,          V,          NK  	  ppp\        ;QJ d!    . VV 3R  l\        W%4       4       F  NK  	  5# ! VV 3R  l\        W%4       4       4      # u uppi )c              3   óz   <"  € T F0  w  rVSP                   V,          P                  S4      ,           x € K2  	  R # 5i©N)r7   rd   )Ú.0ÚyiÚziÚdtrM   s   &  €€r$   Ú	<genexpr>Ú+FusedLoRALinear.__call__.<locals>.<genexpr>]   s.   øé € ÐOÁY¹6¸2�R˜4Ÿ:™:¨�?×2Ñ2°2Ó6×6Ò6ÃYùs   ƒ8;)r]   rB   r6   rb   rJ   rL   Útuple)rM   ÚxÚyri   rj   Úzru   s   f&    @r$   Ú__call__ÚFusedLoRALinear.__call__X   s…   ù€ Ø�W‰WˆØ�K‰K˜‹NˆØ�L‰L˜‹OˆÜ%(¨¯©°d·k±kÔ%BÔCÑ%B™T˜Qˆa�e�q�[ˆ[Ñ%BˆÑCßŒuÕOÄSÈÄYÓO�uÐOˆuÕOÄSÈÄYÓOÓOÐOùó Ds   ÁB7)r6   rB   rJ   rL   r7   ©é   g        g      4@)F)
r)   r*   r+   r,   r@   rm   r|   r.   r/   Ú__classcell__©rP   r#   s   @@r$   r1   r1       s(   ù‡ € ÷@õ @÷* ò  ÷DPò Pr'   r1   c                   ó„   a a€ ] tR t^`t oR	V3R lV 3R lllt]R 4       t]R 4       tV 3R ltR
V3R lR llt	Rt
VtV ;t# )r\   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# ©r   r`   ra   ©r    )r"   r#   s   "€r$   r%   Ú!FusedQuantizedLinear.__annotate__a   s   ø€ ÷ 
ñ 
¹Cð 
ÉCñ 
r'   c                óR   <€ \        V4      Ev rRWPn        \        SV `  WR W4R7       R# )F)Úbiasr`   ra   N©r   Úindicesr?   r@   )rM   r3   r4   r`   ra   rŠ   rP   s   &&&&& €r$   r@   ÚFusedQuantizedLinear.__init__a   s.   ø€ Ü *¨;Ó 7ÑˆØŒÜ‰ÑØ¨%¸Jð 	ö 	
r'   c                ó^   € V P                   P                  R,          V P                  ,          # ©rW   rY   )r^   r>   r`   ©rM   s   &r$   r3   ÚFusedQuantizedLinear.input_dimsh   s    € à�{‰{× Ñ  Õ$ t§¡Õ6Ð6r'   c                óø   € ^ .V P                   ,           V P                  P                  ^ ,          .,           p\        ^\	        V4      4       Uu. uF  q!V,          W^,
          ,          ,
          NK!  	  up# u upi ©r   ©rŠ   rZ   r>   ÚrangeÚlen©rM   rŠ   Úis   &  r$   r4   Ú FusedQuantizedLinear.output_dimsl   ó^   € à�#˜Ÿ™Õ$¨¯©×(9Ñ(9¸!Õ(<Ð'=Õ=ˆÜ5:¸1¼cÀ'»lÔ5KÓLÑ5K°˜•
˜W¨¥U�^×+Ð+Ñ5KÑLÐLùÒLó   Á%A7c                ó\   <€ \         SV `  V4      pVP                  V P                  RR7      # rV   ©r?   r|   ÚsplitrŠ   ©rM   ry   rP   s   &&€r$   r|   ÚFusedQuantizedLinear.__call__q   ó)   ø€ Ü‰GÑ˜QÓˆØ�w‰w�t—|‘|¨"ˆwÓ-Ð-r'   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# ©r   r5   r6   r7   ©r    r!   )r"   r#   s   "€r$   r%   r†   u   ó"   ø€ ÷ ñ ™ð ©5ð ¹uñ r'   c                óV   € \        V P                  V P                  WV4      pWn        V# rq   ©r1   r3   r4   rB   ©rM   r5   r6   r7   Úlora_lins   &&&& r$   Úto_loraÚFusedQuantizedLinear.to_lorau   ó'   € Ü" 4§?¡?°D×4DÑ4DÀaÐRWÓXˆØŒØˆr'   ©rŠ   ©é@   é   r~   )r)   r*   r+   r,   r@   Úpropertyr3   r4   r|   r¨   r.   r/   r€   r�   s   @@r$   r\   r\   `   sM   ù‡ € ÷
õ 
ð ñ7ó ð7ð ñMó ðMõ.÷÷ ò r'   r\   c                   óŠ   a a€ ] tR t^{t oV 3R lt]R 4       t]R 4       tV 3R ltR
V3R lR llt	RV3R lR llt
R	tVtV ;t# )rA   c                óP   <€ \        V4      Ev r2W0n        \        SV `  WR R7       R# ©F©rˆ   Nr‰   )rM   r3   r4   rŠ   rP   s   &&& €r$   r@   ÚFusedLinear.__init__|   s'   ø€ Ü *¨;Ó 7ÑˆØŒÜ‰Ñ˜°uÐÖ=r'   c                ó<   € V P                   P                  R,          # r�   )rZ   r>   rŽ   s   &r$   r3   ÚFusedLinear.input_dims�   s   € à�{‰{× Ñ  Õ$Ð$r'   c                óø   € ^ .V P                   ,           V P                  P                  ^ ,          .,           p\        ^\	        V4      4       Uu. uF  q!V,          W^,
          ,          ,
          NK!  	  up# u upi r‘   r’   r•   s   &  r$   r4   ÚFusedLinear.output_dims…   r˜   r™   c                ó\   <€ \         SV `  V4      pVP                  V P                  RR7      # rV   r›   r�   s   &&€r$   r|   ÚFusedLinear.__call__Š   rŸ   r'   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# r„   r…   )r"   r#   s   "€r$   r%   ÚFusedLinear.__annotate__Ž   s   ø€ ÷ ñ ¡sð ±sñ r'   c                ó¶   € V P                   pV P                  p\        W4W4      p\        P                  ! V P
                  W4      w  Vn        Vn        Vn        V# rq   )r3   r4   r\   rG   ÚquantizerZ   r^   r_   )rM   r`   ra   r3   r4   Úqls   &&&   r$   rf   ÚFusedLinear.to_quantizedŽ   sH   € Ø—_‘_ˆ
Ø×&Ñ&ˆÜ! *¸:ÓLˆÜ*,¯+ª+°d·k±kÀ:Ó*TÑ'ˆŒ	�2”9˜bœiàˆ	r'   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# r¡   r¢   )r"   r#   s   "€r$   r%   r¼   –   r£   r'   c                óV   € \        V P                  V P                  WV4      pWn        V# rq   r¥   r¦   s   &&&& r$   r¨   ÚFusedLinear.to_lora–   rª   r'   r«   r¬   r~   )r)   r*   r+   r,   r@   r¯   r3   r4   r|   rf   r¨   r.   r/   r€   r�   s   @@r$   rA   rA   {   sR   ù‡ € õ>ð
 ñ%ó ð%ð ñMó ðMõ.÷ò ÷÷ ò r'   rA   T)Ú	shapelessc                 óâ   € V P                   pV P                  \        P                  4      p W,          P	                  4       p \        P
                  ! V R^4      p W,          P                  V4      # )é€   i€ÿÿÿ)r]   rd   rG   Úfloat32ÚroundÚclip)ry   r7   ru   s   && r$   Úfake_8bit_quantrÊ   œ   sR   € à	
�‰€BØ	�‰”—‘Ó€AØ	
�×ÑÓ€AÜ
�Š��4˜Ó€AØ�I×Ñ˜bÓ!Ð!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R,          V n        V^V,          ,           V,          p\        W#V,          .^WE,          .,          ,           4      V n
        \        P                  ! W"RR7      V n        \        V P                  VP                  R4      V n        \        P"                  ! V4      V n        \        P"                  ! V4      V n        \(        P*                  ! R4      V n        \(        P*                  ! R4      V n        R# )ç      à?Fr³   Tg      ð?Nç      à¿)r?   r@   r   r   Ún_headsr   Ú
n_kv_headsÚhead_dimr7   rA   Úqkv_projrC   ÚLinearÚout_projr   r   ÚropeÚRMSNormÚq_normÚk_normrG   ÚarrayÚquant_key_scaleÚquant_value_scale)rM   rÏ   ÚdimrÕ   rÖ   r×   Úqkv_dimrP   s   &&     €r$   r@   ÚAttention.__init__¦   s  ø€ Ü‰ÑÔà�o‰oˆØ!%§¡Ð/ˆŒ�wØ'+×'8Ñ'8Ð8ˆŒ˜*Ø#'§?¡?°gÕ#=Ð=ˆŒ˜Ø˜t•^ˆŒ
à˜Q �^Õ+¨xÕ7ˆÜ#Ø˜HÕ$Ð%¨¨ZÕ-BÐ,CÕ(CÕCó
ˆŒô Ÿ	š	 #°Ô7ˆŒÜ#Ø�M‰MØ�O‰OØó
ˆŒ	ô
 —j’j Ó*ˆŒÜ—j’j Ó*ˆŒÜ!Ÿxšx¨›}ˆÔÜ!#§¢¨#£ˆÖr'   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# ©r   ry   ÚmaskÚcacheÚreturn©rG   rß   r   r   )r"   r#   s   "€r$   r%   rÑ   ¾   sH   ø€ ÷ !%ñ !%á�8‰8ð!%ñ ‘r—x‘xÕ ð!%ñ ™�}ð	!%ñ
 
�‰ñ!%r'   c           	     ó  € VP                   w  rEpV P                  V4      w  rxp	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e•   V P                  V P                  WsP                  R7      4      pV P                  V P                  WƒP                  R7      4      p\        W€P                  4      p\        W�P                  4      p	VP                  W‰4      w  r‰MjV P                  V P                  V4      4      pV P                  V P                  V4      4      p\        W€P                  4      p\        W�P                  4      p	\        WxW“V P                  VR7      p
V
P	                  ^ ^^^4      P                  WER4      p
V P!                  V
4      # )rW   ©Úoffset©rè   r7   rç   rY   )r>   rØ   ÚreshaperÕ   Ú	transposerÖ   rÝ   rÛ   rí   rÞ   rÊ   rà   rá   Úupdate_and_fetchr   r7   rÚ   )rM   ry   rç   rè   ÚBÚLÚDÚqueriesÚkeysÚvaluesÚoutputs   &&&&       r$   r|   ÚAttention.__call__¾   s©  € ð —'‘'‰ˆˆað !%§¡¨aÓ 0Ñˆ�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ˆàÒØ—k‘k $§)¡)¨G¿L¹L )Ó"IÓJˆGØ—;‘;˜tŸy™y¨·l±l˜yÓCÓDˆDÜ" 4×)=Ñ)=Ó>ˆDÜ$ V×-CÑ-CÓDˆFØ ×1Ñ1°$Ó?‰LˆD�&à—k‘k $§)¡)¨GÓ"4Ó5ˆGØ—;‘;˜tŸy™y¨›Ó/ˆDÜ" 4×)=Ñ)=Ó>ˆDÜ$ V×-CÑ-CÓDˆFä-Ø˜6°d·j±jÀtô
ˆð ×!Ñ! ! Q¨¨1Ó-×5Ñ5°a¸BÓ?ˆØ�}‰}˜VÓ$Ð$r'   )r×   rÞ   rÕ   rÖ   rÚ   rÝ   rØ   rà   rá   rÛ   r7   ©NN©	r)   r*   r+   r,   r@   r|   r.   r/   r€   r�   s   @@r$   rÌ   rÌ   ¥   s   ù‡ € ÷/ó /÷0!%÷ !%ò !%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# )ÚKVReuseAttentionc                ó    <€ V ^8„  d   QhRS[ /# rÎ   rÐ   )r"   r#   s   "€r$   r%   ÚKVReuseAttention.__annotate__ã   s   ø€ ÷ +ñ +™Yñ +r'   c                ó¨  <€ \         SV `  4        VP                  pVP                  ;V n        pVP                  V,          ;V n        pVR,          V n        \        P                  ! W"RR7      V n	        \        P                  ! W"RR7      V n
        \        V P
                  VP                  R4      V n        \        P                  ! V4      V n        R# )rÓ   Fr³   TNrÔ   )r?   r@   r   r   rÕ   r×   r7   rC   rÙ   Úq_projrÚ   r   r   rÛ   rÜ   rÝ   )rM   rÏ   râ   rÕ   r×   rP   s   &&   €r$   r@   ÚKVReuseAttention.__init__ã   sš   ø€ Ü‰ÑÔà�o‰oˆØ!%§¡Ð/ˆŒ�wØ#'§?¡?°gÕ#=Ð=ˆŒ˜Ø˜t•^ˆŒ
ä—i’i ¨uÔ5ˆŒÜŸ	š	 #°Ô7ˆŒÜ#Ø�M‰MØ�O‰OØó
ˆŒ	ô
 —j’j Ó*ˆŽr'   c          
      ó¬   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  RS[S[ P                  ,          RS[ P                  /# ©r   ry   rö   r÷   rç   ré   ©rG   rß   r   )r"   r#   s   "€r$   r%   rÿ   ô   sV   ø€ ÷ %ñ %á�8‰8ð%ñ �h‰hð%ñ —‘ð	%ñ
 ‘r—x‘xÕ ð%ñ 
�‰ñ%r'   c           	     ó®  € VP                   w  rVpVP                   w   r‰pV P                  V4      p
V
P                  WVV P                  R4      P	                  ^ ^^^4      p
V P                  V P                  W©V,
          R7      4      p
\        W¢VRV P                  VR7      pVP	                  ^ ^^^4      P                  WVR4      pV P                  V4      # )rW   rì   Nrî   rY   )
r>   r  rï   rÕ   rð   rÝ   rÛ   r   r7   rÚ   )rM   ry   rö   r÷   rç   rò   ró   rô   rN   ÚSrõ   rø   s   &&&&&       r$   r|   ÚKVReuseAttention.__call__ô   s¾   € ð —'‘'‰ˆˆaØ—Z‘Z‰
ˆˆ1�à—+‘+˜a“.ˆØ—/‘/ !¨¯©°bÓ9×CÑCÀAÀqÈ!ÈQÓOˆØ—+‘+˜dŸi™i¨¸A½˜iÓ>Ó?ˆä-Ø˜6¨°T·Z±ZÀdô
ˆð ×!Ñ! ! Q¨¨1Ó-×5Ñ5°a¸BÓ?ˆØ�}‰}˜VÓ$Ð$r'   )r×   rÕ   rÚ   rÝ   r  rÛ   r7   rq   rû   r�   s   @@r$   rý   rý   â   s   ù‡ € ÷+ó +÷"%÷ %ò %r'   rý   c                   óP   a a€ ] tR tR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# )ÚMLPi
  c                ó    <€ V ^8„  d   QhRS[ /# rÎ   rÐ   )r"   r#   s   "€r$   r%   ÚMLP.__annotate__  s   ø€ ÷ >ñ >™Yñ >r'   c                ó   <€ \         SV `  4        VP                  p\        W!P                  ,          4      p\
        P                  ! W#R R7      V n        \
        P                  ! W2R R7      V n        \
        P                  ! W#R R7      V n	        R# r²   )
r?   r@   r   r    r   rC   rÙ   Ú	gate_projÚ	down_projÚup_proj)rM   rÏ   râ   r   rP   s   &&  €r$   r@   ÚMLP.__init__  s`   ø€ Ü‰ÑÔà�o‰oˆÜ˜×;Ñ;Õ;Ó<ˆ
äŸš 3¸Ô?ˆŒÜŸš :¸Ô?ˆŒÜ—y’y °uÔ=ˆŽr'   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   ré   ©rG   rß   )r"   r#   s   "€r$   r%   r    s   ø€ ÷ ,ñ ,™RŸX™Xñ ,r'   c                óz   € V P                  V4      pV P                  V4      pV P                  \        W!4      4      # rq   )r  r  r  r
   )rM   ry   Úgs   && r$   r|   ÚMLP.__call__  s0   € Ø�N‰N˜1ÓˆØ�L‰L˜‹OˆØ�~‰~œf Q›lÓ+Ð+r'   )r  r  r  rû   r�   s   @@r$   r
  r
  
  s   ù‡ € ÷>ó >÷,÷ ,ð ,r'   r
  c                   óT   a a€ ] tR tR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# )ÚTransformerBlocki  c                ó    <€ V ^8„  d   QhRS[ /# rÎ   rÐ   )r"   r#   s   "€r$   r%   ÚTransformerBlock.__annotate__  ó   ø€ ÷ 
ñ 
™Yñ 
r'   c                ó(  <€ \         SV `  4        \        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        R# ©)ÚepsN)r?   r@   rÌ   Ú	self_attnr
  ÚmlprC   rÜ   r   r   Úinput_layernormÚpost_attention_layernorm©rM   rÏ   rP   s   &&€r$   r@   ÚTransformerBlock.__init__  sa   ø€ Ü‰ÑÔÜ" 4›ˆŒÜ�t“9ˆŒÜ!Ÿzšz¨$¯/©/¸t×?PÑ?PÔQˆÔÜ(*¯
ª
Ø�O‰O ×!2Ñ!2ô)
ˆÖ%r'   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# ræ   rê   )r"   r#   s   "€r$   r%   r  %  sH   ø€ ÷ 
ñ 
á�8‰8ð
ñ ‘r—x‘xÕ ð
ñ ™�}ð	
ñ
 
�‰ñ
r'   c                ó¨   € V P                  V P                  V4      W#4      pW,           pV P                  V P                  V4      4      pWT,           pV# rq   ©r  r!  r   r"  )rM   ry   rç   rè   r5   ÚhÚouts   &&&&   r$   r|   ÚTransformerBlock.__call__%  sK   € ð �N‰N˜4×/Ñ/°Ó2°DÓ@ˆØ�EˆØ�H‰H�T×2Ñ2°1Ó5Ó6ˆØ�eˆØˆ
r'   ©r!  r   r"  r  rú   rû   r�   s   @@r$   r  r    s   ù‡ € ÷
ó 
÷
÷ 
ò 
r'   r  c                   óT   a a€ ] tR tR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# )ÚKVReuseTransformerBlocki2  c                ó    <€ V ^8„  d   QhRS[ /# rÎ   rÐ   )r"   r#   s   "€r$   r%   Ú$KVReuseTransformerBlock.__annotate__3  r  r'   c                ó(  <€ \         SV `  4        \        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        R# r  )r?   r@   rý   r  r
  r   rC   rÜ   r   r   r!  r"  r#  s   &&€r$   r@   Ú KVReuseTransformerBlock.__init__3  sb   ø€ Ü‰ÑÔÜ)¨$Ó/ˆŒÜ�t“9ˆŒÜ!Ÿzšz¨$¯/©/¸t×?PÑ?PÔQˆÔÜ(*¯
ª
Ø�O‰O ×!2Ñ!2ô)
ˆÖ%r'   c          
      ó¬   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  RS[S[ P                  ,          RS[ P                  /# r  r  )r"   r#   s   "€r$   r%   r/  <  sV   ø€ ÷ ñ á�8‰8ðñ �h‰hðñ —‘ð	ñ
 ‘r—x‘xÕ ðñ 
�‰ñr'   c                óª   € V P                  V P                  V4      W#V4      pW,           pV P                  V P                  V4      4      pWe,           pV# rq   r'  )rM   ry   rö   r÷   rç   r5   r(  r)  s   &&&&&   r$   r|   Ú KVReuseTransformerBlock.__call__<  sM   € ð �N‰N˜4×/Ñ/°Ó2°DÀ$ÓGˆØ�EˆØ�H‰H�T×2Ñ2°1Ó5Ó6ˆØ�eˆØˆ
r'   r+  rq   rû   r�   s   @@r$   r-  r-  2  s   ù‡ € ÷
ó 
÷÷ ò r'   r-  c                   óT   a a€ ] tR tR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# )ÚAFMModeliJ  c                ó    <€ V ^8„  d   QhRS[ /# rÎ   rÐ   )r"   r#   s   "€r$   r%   ÚAFMModel.__annotate__K  s   ø€ ÷ Nñ N™Yñ Nr'   c                ó  <€ \         SV `  4        Wn        VP                  V n        \        P
                  ! VP                  VP                  4      V n        \        VP                  VP                  ,
          4       Uu. uF  p\        V4      NK  	  upV n        \        VP                  4       Uu. uF  p\        V4      NK  	  upV n        \        P                  ! VP                  VP                   R 7      V n        R# u upi u upi r  )r?   r@   rÏ   r   rC   Ú	Embeddingr   Ú	embeddingr“   r   r   r  Úlayersr-  Úkv_reuse_layersrÜ   r   Úoutput_norm)rM   rÏ   rN   rP   s   && €r$   r@   ÚAFMModel.__init__K  sË   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒäŸš d§o¡o°t·±ÓGˆŒô ˜4Ÿ?™?¨T×-EÑ-EÕEÔFó
áF�ô ˜TÖ"ÙFñ
ˆŒô
 49¸×9QÑ9QÔ3Ró 
Ù3R¨aÔ# DÖ)Ñ3Rñ 
ˆÔô Ÿ:š: d§o¡o¸4×;LÑ;LÔMˆÖùò
ùò 
s   Á?DÂ2Dc                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r   Úinputsr  )r"   r#   s   "€r$   r%   r8  Z  s   ø€ ÷ #ñ #á—‘ñ#r'   c                óz  € V P                  V4      pVf+   R .\        V P                  4      ,          p\        4       VR&   \	        W2^ ,          4      p\        V P                  V4       F  w  rVV! W4VR7      pK  	  VR,          P                  w  rxV P                   F  pV! W7W„4      pK  	  V P                  V4      # )N)rè   rY   )	r;  r”   r<  r   r   rb   Ústater=  r>  )	rM   rB  rè   r(  rç   ÚlayerÚcrö   r÷   s	   &&&      r$   r|   ÚAFMModel.__call__Z  s©   € ð
 �N‰N˜6Ó"ˆàŠ=Ø�FœS §¡Ó-Õ-ˆEÜ*Ó,ˆE�"‰Iä$ Q¨a­Ó1ˆä˜DŸK™K¨Ö/‰HˆEÙ�a QÔ'ŠAñ 0ð ˜R•y—‘‰ˆØ×)Ô)ˆEÙ�a˜vÓ,ŠAñ *ð ×Ñ Ó"Ð"r'   )rÏ   r;  r=  r<  r>  r   rq   rû   r�   s   @@r$   r6  r6  J  s    ù‡ € ÷Nó N÷#÷ #ò #r'   r6  c                   ój   a a€ ] tR tR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t	Vt
V ;t# )
ÚModeliq  c                ó    <€ V ^8„  d   QhRS[ /# rÎ   rÐ   )r"   r#   s   "€r$   r%   ÚModel.__annotate__r  s   ø€ ÷ $ñ $™Yñ $r'   c                ór   <€ \         SV `  4        Wn        VP                  V n        \	        V4      V n        R # rq   )r?   r@   rÏ   r   r6  Úmodelr#  s   &&€r$   r@   ÚModel.__init__r  s)   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒÜ˜d“^ˆŽ
r'   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rA  r  )r"   r#   s   "€r$   r%   rK  x  s   ø€ ÷ ñ á—‘ñr'   c                ór   € V P                  W4      pV P                   P                  P                  V4      pV# rq   )rM  r;  Ú	as_linear)rM   rB  rè   r)  s   &&& r$   r|   ÚModel.__call__x  s1   € ð
 �j‰j˜Ó'ˆØ�j‰j×"Ñ"×,Ñ,¨SÓ1ˆØˆ
r'   c                óŒ   € \        \        V P                  P                  4      4       Uu. uF  p\	        4       NK  	  up# u upi rq   )r“   r”   rM  r<  r   )rM   rN   s   & r$   Ú
make_cacheÚModel.make_cache�  s2   € Ü#(¬¨T¯Z©Z×->Ñ->Ó)?Ô#@ÓAÑ#@˜a”–	Ñ#@ÑAÐAùÒAs   «Ac                ód   € V P                   P                  V P                   P                  ,           # rq   )rM  r<  r=  rŽ   s   &r$   r<  ÚModel.layers„  s!   € à�z‰z× Ñ  4§:¡:×#=Ñ#=Õ=Ð=r'   )rÏ   rM  r   rq   )r)   r*   r+   r,   r@   r|   rT  r¯   r<  r.   r/   r€   r�   s   @@r$   rI  rI  q  s8   ù‡ € ÷$ó $÷ò òBð ñ>ó ÷>ð >r'   rI  ),rE   Údataclassesr   Ú	functoolsr   Ú	itertoolsr   Útypingr   r   r   r	   Úmlx.coreÚcorerG   Úmlx.nnrC   Úactivationsr
   Úbaser   r   r   rè   r   r   Ú
rope_utilsr   r   ÚModuler1   ÚQuantizedLinearr\   rÙ   rA   ÚcompilerÊ   rÌ   rý   r
  r  r-  r6  rI  r(   r'   r$   Ú<module>re     s  ðó Ý !Ý Ý  ß -Ó -å Ý å ß TÑ Tß .Ý 'ð ô
�ó 
ó ð
ô=P�b—i‘iô =Pô@˜2×-Ñ-ô ô6�"—)‘)ô ñB 	ˆ�‰˜tÔ$ñ"ó %ð"ô:%�—	‘	ô :%ôz%%�r—y‘yô %%ôP,ˆ"�)‰)ô ,ô"�r—y‘yô ô.˜bŸi™iô ô0$#ˆr�y‰yô $#ôN>ˆB�I‰Iö >r'   