+
    UV-jèW  ã                   óp  € ^ RI HtHt ^ RIHt ^ RIHt ^RIH	t	H
t
Ht ^RIHt ^RIHtHt RR R llt ! R R	]P&                  4      tR
 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# )é    )ÚAnyÚOptionalN)ÚLanguageModelOutputÚcreate_attention_maskÚscaled_dot_product_attention)Úapply_multimodal_rotary_pos_emb)ÚModelConfigÚ
TextConfigc                ó|   € V ^8„  d   QhR\         \        ,          R\        \        P                  \
        3,          /# )é   ÚconfigÚreturn)r   r
   ÚtupleÚmxÚarrayÚfloat)Úformats   "Ún/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/glm4v/language.pyÚ__annotate__r      s0   € ÷  &ñ  &Ü”ZÕ ð &ô Œ2�8‰8”Uˆ?Õñ &ó    c           	      ó6  € V e"   \        V4      ^ 8”  d   \        RV RV  24      h\        V4      ^ 8”  d   VR,          pVR,          pMsV ep   V P                  p\        V R4      '       d   V P                  MRp\        V RR 4      ;'       g    V P                  V P                  ,          p\        WT,          4      pRpRX\        P                  ! ^ X^\        P                  R7      P                  \        P                  4      V,          ,          ,          pWv3# )	NzƒUnexpected arguments: `**rope_kwargs` and `config` are mutually exclusive in `_compute_default_rope_parameters`, got `rope_kwargs`=z and `config`=ÚbaseÚdimÚpartial_rotary_factorg      ð?Úhead_dim©Údtype)ÚlenÚ
ValueErrorÚ
rope_thetaÚhasattrr   ÚgetattrÚhidden_sizeÚnum_attention_headsÚintr   ÚarangeÚint64ÚastypeÚfloat32)r   Úrope_kwargsr   r   r   r   Úattention_factorÚinv_freqs   &,      r   Ú _compute_default_rope_parametersr-      s"  € ð
 Òœc +Ó.°Ô2ÜðEØEPÀMÐQ_Ð`fÐ_gðió
ð 	
ô ˆ;Ó˜!ÔØ˜6Õ"ˆØ˜%Õ ‰Ø	Ò	Ø× Ñ ˆô �vÐ6×7Ò7ð ×(Ò(àð 	ô �F˜J¨Ó-÷ @ð @Ø×!Ñ! V×%?Ñ%?Õ?ð 	ô �(Õ2Ó3ˆàÐð Ø”—’˜1˜c 1¬B¯H©HÔ5×<Ñ<¼R¿Z¹ZÓHÈ3ÕNÕOõ€Hð Ð%Ð%r   c                   óD   a a€ ] tR t^2t oV3R lV 3R lltR tRtVtV ;t# )ÚGLM4VRotaryEmbeddingc                ó    <€ V ^8„  d   QhRS[ /# ©r   r   ©r
   )r   Ú__classdict__s   "€r   r   Ú!GLM4VRotaryEmbedding.__annotate__3   s   ø€ ÷ Gñ G™zñ Gr   c                ó>  <€ \         SV `  4        \        VR 4      '       dJ   VP                  e<   VP                  P	                  RVP                  P	                  R4      4      V n        MRV n        VP                  V n        VP                  V n        Wn	        \        V n        V P                  V P                  4      w  q n        \        P                  ! V\        P                  R7      V n        \        P                  ! V\        P                  R7      V n        R# )Úrope_scalingNÚ	rope_typeÚtypeÚdefaultr   )ÚsuperÚ__init__r!   r6   Úgetr7   Úmax_position_embeddingsÚmax_seq_len_cachedÚoriginal_max_seq_lenr   r-   Úrope_init_fnÚattention_scalingr   r   r)   Ú	_inv_freqÚ_original_inv_freq)Úselfr   r,   Ú	__class__s   && €r   r;   ÚGLM4VRotaryEmbedding.__init__3   sÍ   ø€ Ü‰ÑÔä�6˜>×*Ò*¨v×/BÑ/BÒ/NØ#×0Ñ0×4Ñ4Ø˜V×0Ñ0×4Ñ4°VÓ<óˆD�Nð 'ˆDŒNØ"(×"@Ñ"@ˆÔØ$*×$BÑ$BˆÔ!àŒä<ˆÔà+/×+<Ñ+<¸T¿[¹[Ó+IÑ(ˆÔ(ÜŸš (´"·*±*Ô=ˆŒÜ"$§(¢(¨8¼2¿:¹:Ô"FˆÖr   c                ó   € V P                   R,          P                  \        P                  4      p\        P                  ! V^VP
                  ^,          V P                   P
                  ^ ,          ^34      pVR,          P                  \        P                  4      pVP                  \        P                  4      VP                  \        P                  4      ,          P                  ^ ^^^4      p\        P                  ! WU3RR7      p\        P                  ! V4      V P                  ,          p\        P                  ! V4      V P                  ,          pVP                  VP                  4      VP                  VP                  4      3# )N©Úaxis)NNºNNNN)rJ   rJ   NrJ   éÿÿÿÿ)rB   r(   r   r)   Úbroadcast_toÚshapeÚ	transposeÚconcatenateÚcosrA   Úsinr   )	rD   ÚxÚposition_idsÚinv_freq_expandedÚposition_ids_expandedÚfreqsÚembrP   rQ   s	   &&&      r   Ú__call__ÚGLM4VRotaryEmbedding.__call__G   s  € Ø ŸN™NÐ+>Õ?×FÑFÄrÇzÁzÓRÐÜŸOšOØ  <×#5Ñ#5°aÕ#8¸$¿.¹.×:NÑ:NÈqÕ:QÐSTÐUó
Ðð !-¨]Õ ;× BÑ BÄ2Ç:Á:Ó NÐð ×$Ñ$¤R§Z¡ZÓ0Ø#×*Ñ*¬2¯:©:Ó6õ7ç
‰)�A�q˜!˜QÓ
ð 	ô �nŠn˜e˜^°"Ô5ˆÜ�fŠf�S‹k˜D×2Ñ2Õ2ˆÜ�fŠf�S‹k˜D×2Ñ2Õ2ˆà�z‰z˜!Ÿ'™'Ó" C§J¡J¨q¯w©wÓ$7Ð7Ð7r   )rB   rC   rA   r   r>   r?   r@   r7   ©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r;   rX   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rE   r3   s   @@r   r/   r/   2   s   ù‡ € ÷Gó G÷(8ò 8r   r/   c           	      ó$   € \        V VVVVR R7      # )Úsectioned_even_odd)Úmrope_sectionÚstyle)Ú_apply_mrope)ÚqÚkrP   rQ   re   s   &&&&&r   r   r   Y   s!   € ÜØ	Ø	ØØØ#Ø"ôð r   c                   óT   a a€ ] tR t^dt 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# )ÚGlm4vAttentionc                ó    <€ V ^8„  d   QhRS[ /# )r   Úargsr2   )r   r3   s   "€r   r   ÚGlm4vAttention.__annotate__e   s   ø€ ÷ .ñ .™Zñ .r   c                ór  <€ \         SV `  4        VP                  pVP                  ;V n        pVP
                  ;V n        p\        VR VP                  VP                  ,          4      pVR,          V n        \        P                  ! W#V,          VP                  R7      V n        \        P                  ! W$V,          VP                  R7      V n        \        P                  ! W$V,          VP                  R7      V n        \        P                  ! W5,          VRR7      V n        VP                   V n        R# )r   ©ÚbiasFNg      à¿)r:   r;   r#   r$   Ún_headsÚnum_key_value_headsÚ
n_kv_headsr"   ÚscaleÚnnÚLinearÚattention_biasÚq_projÚk_projÚv_projÚo_projr6   )rD   rm   r   rr   rt   r   rE   s   &&    €r   r;   ÚGlm4vAttention.__init__e   sè   ø€ Ü‰ÑÔà×ÑˆØ!%×!9Ñ!9Ð9ˆŒ�wØ'+×'?Ñ'?Ð?ˆŒ˜*äØ�*˜d×.Ñ.°$×2JÑ2JÕJó
ˆð ˜t•^ˆŒ
ä—i’i ¨xÕ%7¸d×>QÑ>QÔRˆŒÜ—i’i °(Õ%:À×ATÑATÔUˆŒÜ—i’i °(Õ%:À×ATÑATÔUˆŒÜ—i’i Õ 2°C¸eÔDˆŒà ×-Ñ-ˆÖr   c          
      ó¸   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[S[ P                  ,          RS[ P                  /# ©r   rR   ÚmaskÚcacheÚposition_embeddingsr   ©r   r   r   r   )r   r3   s   "€r   r   rn   x   s[   ø€ ÷ "#ñ "#á�8‰8ð"#ñ ‘r—x‘xÕ ð"#ñ ™�}ð	"#ñ
 &¡b§h¡hÕ/ð"#ñ 
�‰ñ"#r   c           	     ó<  € VP                   w  rVpV P                  V4      V P                  V4      V P                  V4      r©pVP	                  WVV P
                  R4      pV	P	                  WVV P                  R4      p	VP                  ^ ^^^4      pV	P                  ^ ^^^4      p	V
P	                  WVV P                  R4      P                  ^ ^^^4      p
Vw  r¼\        W‰W¼V P                  R,          4      w  r‰Ve   VP                  Wš4      w  ršVe?   \        V\        P                  4      '       d   VRRV	P                   R,          13,          p\        W‰W£V P                  VR7      pVP                  ^ ^^^4      P	                  WVR4      pV P!                  V4      # )é   re   N.)r�   ru   r€   rK   éþÿÿÿ)rM   ry   rz   r{   Úreshaperr   rt   rN   r   r6   Úupdate_and_fetchÚ
isinstancer   r   r   ru   r|   )rD   rR   r€   r�   r‚   ÚBÚLÚDÚqueriesÚkeysÚvaluesrP   rQ   Úoutputs   &&&&&         r   rX   ÚGlm4vAttention.__call__x   sn  € ð —'‘'‰ˆˆaà $§¡¨A£°·±¸A³ÀÇÁÈAÃ�vˆà—/‘/ !¨¯©°bÓ9ˆØ�|‰|˜A $§/¡/°2Ó6ˆà×#Ñ# A q¨!¨QÓ/ˆØ�~‰~˜a  A qÓ)ˆØ—‘  d§o¡o°rÓ:×DÑDÀQÈÈ1ÈaÓPˆà&‰ˆä7Ø˜3 T×%6Ñ%6°Õ%Gó
‰ˆð ÒØ ×1Ñ1°$Ó?‰LˆDàÒ¤
¨4´·±× :Ò :Ø˜Ð-˜tŸz™z¨"�~Ð-Ð-Õ.ˆDä-Ø˜6°d·j±jÀtô
ˆð ×!Ñ! ! Q¨¨1Ó-×5Ñ5°a¸BÓ?ˆØ�{‰{˜6Ó"Ð"r   )rz   rr   rt   r|   ry   r6   ru   r{   ©NNNrZ   rb   s   @@r   rk   rk   d   s   ù‡ € ÷.ó .÷&"#÷ "#ò "#r   rk   c                   óH   a a€ ] tR t^�t oRV3R lV 3R llltR tRtVtV ;t# )ÚGlm4vMLPc                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# )r   r   r#   Úintermediate_size)r
   r%   )r   r3   s   "€r   r   ÚGlm4vMLP.__annotate__ž   s*   ø€ ÷ Yñ YÙ ðYÙ/2ðYÙNQñYr   c                ób  <€ \         SV `  4        Wn        Vf   VP                  MTV n        Vf   VP                  MTV n        \
        P                  ! V P                  V P                  ^,          RR7      V n        \
        P                  ! V P                  V P                  RR7      V n        R # )NFrp   )	r:   r;   r   r#   r–   rv   rw   Úgate_up_projÚ	down_proj)rD   r   r#   r–   rE   s   &&&&€r   r;   ÚGlm4vMLP.__init__ž   s‘   ø€ ô 	‰ÑÔØŒØ1<Ò1D˜6×-Ò-È+ˆÔà(9Ò(AˆF×$Ò$ÐGXð 	Ôô ŸIšIØ×Ñ˜d×4Ñ4°qÕ8¸uô
ˆÔô Ÿš 4×#9Ñ#9¸4×;KÑ;KÐRWÔXˆŽr   c                ó²   € V P                  V4      p\        P                  ! V^RR7      w  r!V P                  \        P
                  ! V4      V,          4      # )r   rH   rK   )r™   r   Úsplitrš   rv   Úsilu)rD   rR   Úgates   && r   rX   ÚGlm4vMLP.__call__­   sB   € Ø×Ñ˜aÓ ˆÜ—(’(˜1˜a bÔ)‰ˆØ�~‰~œbŸgšg d›m¨aÕ/Ó0Ð0r   )r   rš   r™   r#   r–   )NNrZ   rb   s   @@r   r”   r”   �   s   ù‡ € ÷Yõ Y÷1ò 1r   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# )ÚGlm4vDecoderLayerc                ó    <€ V ^8„  d   QhRS[ /# r1   r2   )r   r3   s   "€r   r   ÚGlm4vDecoderLayer.__annotate__´   s   ø€ ÷ 
ñ 
™zñ 
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        \        P                  ! VP                  VP                  R 7      V n        \        P                  ! VP                  VP                  R 7      V n        R# )©ÚepsN)r:   r;   rk   Ú	self_attnr”   Úmlprv   ÚRMSNormr#   Úrms_norm_epsÚinput_layernormÚpost_attention_layernormÚpost_self_attn_layernormÚpost_mlp_layernorm)rD   r   rE   s   &&€r   r;   ÚGlm4vDecoderLayer.__init__´   s¯   ø€ Ü‰ÑÔÜ'¨Ó/ˆŒÜ˜FÓ#ˆŒä!Ÿzšz¨&×*<Ñ*<À&×BUÑBUÔVˆÔÜ(*¯
ª
Ø×Ñ F×$7Ñ$7ô)
ˆÔ%ô )+¯
ª
Ø×Ñ F×$7Ñ$7ô)
ˆÔ%ô #%§*¢*Ø×Ñ F×$7Ñ$7ô#
ˆÖr   c          
      ó¸   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[S[ P                  ,          RS[ P                  /# r   rƒ   )r   r3   s   "€r   r   r¤   Ä   s[   ø€ ÷ ñ á�8‰8ðñ ‘r—x‘xÕ ðñ ™�}ð	ñ
 &¡b§h¡hÕ/ðñ 
�‰ñr   c                óú   € TpV P                  V P                  V4      W#V4      pV P                  V4      pWQ,           pTpV P                  V4      pV P	                  V4      pV P                  V4      pWQ,           pV# ©N)r¨   r¬   r®   r­   r©   r¯   )rD   rR   r€   r�   r‚   Úrs   &&&&& r   rX   ÚGlm4vDecoderLayer.__call__Ä   s€   € ð ˆð �N‰N˜4×/Ñ/°Ó2°DÐATÓUˆà×)Ñ)¨!Ó,ˆØ�Eˆð ˆØ×)Ñ)¨!Ó,ˆØ�H‰H�Q‹KˆØ×#Ñ# AÓ&ˆØ�EˆØˆr   )r¬   r©   r­   r¯   r®   r¨   r’   rZ   rb   s   @@r   r¢   r¢   ³   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# )Ú
GLM4VModelc                ó    <€ V ^8„  d   QhRS[ /# r1   r2   )r   r3   s   "€r   r   ÚGLM4VModel.__annotate__Ý   s   ø€ ÷ 7ñ 7™zñ 7r   c                óü  <€ \         SV `  4        VP                  V n        \        P                  ! VP                  VP
                  4      V n        \        VP                  4       Uu. uF  p\        V4      NK  	  upV n
        ^ V n        \        V P                  4      V n        V P                  V n        \        P                  ! VP
                  VP                   R7      V n        \%        V4      V n        R# u upi )r   r¦   N)r:   r;   Ú
vocab_sizerv   Ú	Embeddingr#   Úembed_tokensÚrangeÚnum_hidden_layersr¢   ÚlayersÚ	start_idxr   Úend_idxÚ
num_layersrª   r«   Únormr/   Ú
rotary_emb)rD   r   Ú_rE   s   && €r   r;   ÚGLM4VModel.__init__Ý   sº   ø€ Ü‰ÑÔØ ×+Ñ+ˆŒÜŸLšL¨×):Ñ):¸F×<NÑ<NÓOˆÔä/4°V×5MÑ5MÔ/Nó
Ù/N¨!Ô˜fÖ%Ñ/Nñ
ˆŒð ˆŒÜ˜4Ÿ;™;Ó'ˆŒØŸ,™,ˆŒä—J’J˜v×1Ñ1°v×7JÑ7JÔKˆŒ	ä.¨vÓ6ˆŽùò
s   Á(C9c                óâ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[S[ P                  ,          RS[S[ P                  ,          RS[ P                  /# )r   ÚinputsÚinputs_embedsr�   r€   rS   r   rƒ   )r   r3   s   "€r   r   r¹   ì   sn   ø€ ÷  ñ  á—‘ð ñ  ¡§¡Õ)ð ñ ™�}ð	 ñ
 ‘r—x‘xÕ ð ñ ™rŸx™xÕ(ð ñ 
�‰ñ r   c                óú  € Vf   V P                  V4      pM/VP                  V P                  P                  P                  4      pVf�   \
        P                  ! V^ ,          P                  V^ ,          P                  VP                  R,          ,           4      p\
        P                  ! V^ R7      p\
        P                  ! VR4      pV P                  We4      pVf(   \        Yc'       d   V^ ,          e
   V^ ,          MT4      pVf   R .V P                  ,          p\        V P                  4       F5  pV P                  V P                   V,           ,          ! WdW8,          V4      pK7  	  V P                  V4      # )NrH   r†   )é   r…   r…   )r½   r(   rÄ   Úweightr   r   r&   ÚoffsetrM   Úexpand_dimsÚtilerÅ   r   rÃ   r¾   rÀ   rÁ   )	rD   rÉ   rÊ   r�   r€   rS   Úhr‚   Úis	   &&&&&&   r   rX   ÚGLM4VModel.__call__ì   s  € ð Ò Ø×!Ñ! &Ó)‰Aà×$Ñ$ T§Y¡Y×%5Ñ%5×%;Ñ%;Ó<ˆAàÒÜŸ9š9 U¨1¥X§_¡_°e¸Aµh·o±oÈÏÉÐPRÍÕ6SÓTˆLÜŸ>š>¨,¸QÔ?ˆLÜŸ7š7 <°Ó;ˆLà"Ÿo™o¨aÓ>ÐàŠ<Ü(Øžu¨¨q­Ò)=�5˜–8À5óˆDð Š=Ø�F˜TŸ_™_Õ,ˆEä�t—‘Ö'ˆAØ—‘˜DŸN™N¨QÕ.Ö/°¸½ÐCVÓWŠAñ (ð �y‰y˜‹|Ðr   )r½   rÂ   rÀ   rÄ   rÃ   rÅ   rÁ   r»   )NNNNrZ   rb   s   @@r   r·   r·   Ü   s   ù‡ € ÷7ó 7÷ ÷  ò  r   r·   c                   ó”   a a€ ] tR tRt oRV3R lV 3R llltRV3R lR lltRV3R lR lltR t]R	 4       t	]R
 4       t
RtVtV ;t# )ÚLanguageModeli  c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   rm   r   )r
   r	   )r   r3   s   "€r   r   ÚLanguageModel.__annotate__  s   ø€ ÷ "ñ "™Zð "±ñ "r   c                óþ   <€ \         SV `  4        Wn        W n        VP                  V n        \        V4      V n        \        P                  ! VP                  VP                  R R7      V n        RV n        RV n        R# )Frp   N)r:   r;   rm   r   Ú
model_typer·   Úmodelrv   rw   r#   r»   Úlm_headÚ_rope_deltasÚ_position_ids)rD   rm   r   rE   s   &&&€r   r;   ÚLanguageModel.__init__  s]   ø€ Ü‰ÑÔØŒ	ØŒØŸ/™/ˆŒÜ Ó%ˆŒ
Ü—y’y ×!1Ñ!1°4·?±?ÈÔOˆŒØ ˆÔØ!ˆÖr   c          	      ó²   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[ P                  ,          RS[S[ P                  ,          /# )r   Ú	input_idsÚimage_grid_thwÚvideo_grid_thwÚattention_mask©r   r   r   )r   r3   s   "€r   r   r×     sX   ø€ ÷ y7ñ y7á—8‘8ðy7ñ !¡§¡Õ*ðy7ñ !¡§¡Õ*ð	y7ñ
 !¡§¡Õ*ñy7r   c           
     ó  a8a9€ VP                   w  rV\        P                  ! V\        P                  R 7      p\        P                  ! VR,          WV34      pV P
                  P                  P                  pV P
                  P                  o8V P
                  P                  o9V P
                  P                  p	. p
VEe5   Vf   VEe,   TpVf   \        P                  ! V4      p\        P                  ! ^VP                   ^ ,          VP                   ^,          3VP                  R 7      p^ ^ rÜ\        V4       EFŒ  w  ráWN,          P                  4       p\!        VP                  4       V4       UUu. uF  w  ppV^8X  g   K  VNK  	  ppp^ ^ pp\        VRR	 4       UUu. uF  w  ppVV	8X  g   K  VV^,           ,          NK!  	  ppp\#        V83R lV 4       4      p\#        V93R lV 4       4      p. p^ pTTpp\%        VV,           4       EF	  pS8V9   d   V^ 8”  d   VP'                  S8V4      pM\)        V4      ^,           pS9V9   d   V^ 8”  d   VP'                  S9V4      pM\)        V4      ^,           pVV8  dC   W,,          ^ ,          W,,          ^,          W,,          ^,          p ppV^,          pV^,          pTp!MAW=,          ^ ,          W=,          ^,          W=,          ^,          p ppV^,          pV^,          pTp!VP+                  4       VP+                  4       V,          V P+                  4       V,          p$p#p"V!V,
          p%\)        V4      ^ 8”  d   VR	,          P-                  4       ^,           M^ p&\        P                  ! V%4      P/                  ^V%4      p'\        P                  ! V'^V%34      p'V'V&,           p'VP1                  V'4       \        P                  ! V"4      P/                  V"^4      p(\        P                  ! V(V"V#V$,          34      p(V(P3                  4       p(\        P                  ! V#4      P/                  ^V#^4      p)\        P                  ! V)V"V#V$34      p)V)P3                  4       p)\        P                  ! V$4      P/                  ^^V$4      p*\        P                  ! V*V"V#V$34      p*V*P3                  4       p*VP1                  \        P4                  ! V(V)V*.4      V%,           V&,           4       V!V"V#,          V$,          ,           pEK  	  V\)        V4      8  dš   \)        V4      ^ 8”  d   VR	,          P-                  4       ^,           M^ p&\)        V4      V,
          p%\        P                  ! V%4      P/                  ^V%4      p(\        P                  ! V(^V%34      p(VP1                  V(V&,           4       \        P6                  ! V^R7      P/                  ^R	4      p+V+P-                  4       p,\%        ^4       Uu. uF  p^.VP                   ^,          ,          NK   	  p-pV+P                  4       p.^ p/\        V4       FD  w  p0pV^8X  g   K  \%        ^4       F  p1V.V1,          V/,          V-V1,          V0&   K  	  V/^,          p/KF  	  \        P8                  ! V-VP                  R 7      p+\        P8                  ! V\        P:                  R 7      p2\        P<                  ! V2^ R7      p3\        P                  ! V3^^V2P                   ^ ,          34      p3\        P<                  ! V+^R7      p4\        P>                  ! V3V4VRWî^,           1R3,          4      p5\        P6                  ! VRRV1R3,          V5VRV^,           R1R3,          .^R7      p6T6pV
P1                  V,^,           \)        V4      ,
          4       EK�  	  \        P8                  ! V
4      P/                  R	^4      p
Wz3# VeÏ   \        P@                  ! VPC                  \        PD                  4      R	R7      ^,
          p\        P>                  ! V^ 8H  \        P                  ! V4      V4      pVP-                  R	RR7      p7\        P                  ! VR
,          ^.VP                   O54      pV7^,           VP                   R	,          ,
          p
Wz3# \        P                  ! VP                   ^,          4      P/                  ^R	4      p\        P                  ! V^VP                   ^ ,          VP                   ^,          34      p\        PF                  ! VP                   ^ ,          ^.VP                  R 7      p
Wz3# u uppi u uppi u upi )r   NrJ   c              3   ó,   <"  € T F	  qS8H  x € K  	  R # 5ir³   © )Ú.0ÚtokenÚimage_token_ids   & €r   Ú	<genexpr>Ú/LanguageModel.get_rope_index.<locals>.<genexpr>A  ó   øé € Ð TÁm¸U¨.Ö!8Ãmùó   ƒc              3   ó,   <"  € T F	  qS8H  x € K  	  R # 5ir³   rç   )rè   ré   Úvideo_token_ids   & €r   rë   rì   B  rí   rî   rH   T)rI   Úkeepdims)NrJ   rK   )NrJ   rJ   )$rM   r   r&   Úint32rL   r   Úvision_configÚspatial_merge_sizerê   rð   Úvision_start_token_idÚ	ones_likeÚonesr   Ú	enumerateÚtolistÚzipÚsumr¾   Úindexr   ÚitemÚmaxr‡   ÚappendÚflattenÚstackrO   r   Úbool_rÏ   ÚwhereÚcumsumr(   r'   Úzeros):rD   rà   rá   râ   rã   Ú
batch_sizeÚ
seq_lengthrS   rô   rõ   Úmrope_position_deltasÚtotal_input_idsÚimage_indexÚvideo_indexrÒ   Úrow_maskré   ÚkeepÚinput_tokensÚ
image_numsÚ
video_numsÚidxÚvision_tokensÚllm_pos_ids_listÚstÚremain_imagesÚremain_videosrÆ   Úed_imageÚed_videoÚtrÑ   ÚwÚedÚ
llm_grid_tÚ
llm_grid_hÚ
llm_grid_wÚtext_lenÚst_idxrü   Út_indexÚh_indexÚw_indexÚllm_positionsÚcompact_max_positionÚpadded_positionsÚcompact_positionsÚcompact_idxÚcolr   r€   Úexpanded_maskÚexpanded_positionsÚnew_positionsÚupdated_position_idsÚmax_position_idsrê   rð   s:   &&&&&                                                   @@r   Úget_rope_indexÚLanguageModel.get_rope_index  sŠ  ù€ ð "+§¡Ñˆ
Ü—y’y ´2·8±8Ô<ˆÜ—’ |°GÕ'<¸zÐ>VÓWˆØ!Ÿ[™[×6Ñ6×IÑIÐØŸ™×3Ñ3ˆØŸ™×3Ñ3ˆØ $§¡× AÑ AÐØ "ÐØÓ ØÒ&¨.Ó*Dà'ˆOØÒ%Ü!#§¢¨iÓ!8�ÜŸ7š7Ø�I—O‘O AÕ&¨	¯©¸Õ(:Ð;À9Ç?Á?ôˆLð ()¨!˜Ü )¨/× :‘�Ø)Õ,×3Ñ3Ó5�ô (+¨9×+;Ñ+;Ó+=¸xÔ'Hô á'H™˜˜tØ˜q‘y÷ �EÙ'Hð ñ  ð
 *+¨A˜J�
ô '0°¸S¸bÐ0AÔ&Bô!á&B™
˜˜UØÐ 5Ñ5ô *�L  q¥×)Ð)Ù&Bð ñ !ô
 !Ô TÁmÓ TÓT�
Ü Ô TÁmÓ TÓT�
Ø)+Ð Ø�Ø/9¸:˜}�Ü˜z¨JÕ6×7�AØ%¨Ô5¸-È!Ô:KØ#/×#5Ñ#5°nÀbÓ#I™ä#& |Ó#4°qÕ#8˜Ø%¨Ô5¸-È!Ô:KØ#/×#5Ñ#5°nÀbÓ#I™ä#& |Ó#4°qÕ#8˜Ø (Ô*à*Õ7¸Õ:Ø*Õ7¸Õ:Ø*Õ7¸Õ:ð  ˜1˜ð
 $ qÕ(˜Ø%¨Õ*˜Ø%™ð +Õ7¸Õ:Ø*Õ7¸Õ:Ø*Õ7¸Õ:ð  ˜1˜ð
 $ qÕ(˜Ø%¨Õ*˜Ø%˜àŸ™›ØŸ™›Ð$6Õ6ØŸ™›Ð$6Õ6ð -7 
�Jð
  " B�w�Hô Ð/Ó0°1Ô4ð )¨Õ,×0Ñ0Ó2°QÖ6àð ô
 ŸIšI hÓ/×7Ñ7¸¸8ÓD�EÜŸOšO¨E°A°x°=ÓA�EØ! F�N�EØ$×+Ñ+¨EÔ2Ü Ÿiši¨
Ó3×;Ñ;Ø" Aó�Gô !ŸošoØ *¨j¸:Õ.EÐ!Fó�Gð &Ÿo™oÓ/�Gä Ÿiši¨
Ó3×;Ñ;Ø˜: qó�Gô !ŸošoØ *¨j¸*Ð!Eó�Gð &Ÿo™oÓ/�Gä Ÿiši¨
Ó3×;Ñ;Ø˜1˜jó�Gô !ŸošoØ *¨j¸*Ð!Eó�Gð &Ÿo™oÓ/�Gà$×+Ñ+ÜŸš '¨7°GÐ!<Ó=ÀÕHÈ6ÕQôð ˜j¨:Õ5¸
ÕBÕB“BñK 8ðL œ˜LÓ)Ô)ô Ð/Ó0°1Ô4ð )¨Õ,×0Ñ0Ó2°QÖ6àð ô
  # <Ó0°2Õ5�Hä Ÿiši¨Ó1×9Ñ9Ø˜8ó�Gô !ŸošoØ ! X ó�Gð %×+Ñ+¨G°fÕ,<Ô=ä "§¢Ð/?ÀaÔ H× PÑ PÐQRÐTVÓ W�Ø'4×'8Ñ'8Ó':Ð$ÜLQÐRSÌHÓ#UÉHÀq Q C¨/×*?Ñ*?ÀÕ*B×$BÐ$BÉHÐ Ð#UØ$1×$8Ñ$8Ó$:Ð!Ø�Ü!*¨8Ö!4‘I�C˜Ø˜q–yÜ#(¨¦8˜CØ9JÈ3Õ9OØ +õ:Ð,¨SÕ1°#Ó6ñ $,ð $ qÕ(šñ "5ô !#§¢Ð)9À×ASÑASÔ T�Ü—x’x ´·±Ô9�Ü "§¢¨t¸!Ô <�Ü "§¢°ÀÀ1ÀdÇjÁjÐQRÅmÐ?TÓ U�Ü%'§^¢^°MÈÔ%JÐ"Ü "§¢Ø!Ð#5°|ÀAÀqÈqÍ5ÀyÐRSÀOÕ7Tó!�ô (*§~¢~à$ Q¨¨¨¨A XÕ.Ø%Ø$ Q¨¨A­©° ]Õ3ðð
 ô(Ð$ð  4�Ø%×,Ñ,Ø(¨1Õ,¬s°<Ó/@Õ@÷ñM !;ôR %'§H¢HÐ-BÓ$C×$KÑ$KÈBÐPQÓ$RÐ!ØÐ6Ð6àÒ)Ü!Ÿyšy¨×)>Ñ)>¼r¿x¹xÓ)HÈrÔRÐUVÕV�Ü!ŸxšxØ" aÑ'¬¯ª°lÓ)CÀ\ó �ð $0×#3Ñ#3¸ÀdÐ#3Ó#KÐ Ü!ŸšØ  Õ,¨qÐ.F°<×3EÑ3EÑ.Fó �ð )9¸1Õ(<¸~×?SÑ?SÐTVÕ?WÕ(WÐ%ð  Ð6Ð6ô  "Ÿyšy¨¯©¸Õ);Ó<×DÑDÀQÈÓK�Ü!ŸšØ  1 i§o¡o°aÕ&8¸)¿/¹/È!Õ:LÐ"Mó �ô )+¯ªØ—_‘_ QÕ'¨Ð+Ø#Ÿ/™/ô)Ð%ð  Ð6Ð6ùó{ ùó!ùòF $Vs   Å2e0Æe0Æ!e6Æ2e6Ø	$e<c                óˆ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[ P                  ,          /# )r   rÉ   rÊ   r€   rä   )r   r3   s   "€r   r   r×   Õ  sD   ø€ ÷ ]/ñ ]/á—‘ð]/ñ  ¡§¡Õ)ð]/ñ ‘r—x‘xÕ ñ	]/r   c                óZ  € VP                  R R4      pVP                  RR4      pVP                  RR4      pVP                  RR4      p	VP                  RR4      p
Ve   RV n        RV n        ^ pRpV'       d«   V^ ,          e    V^ ,          p\        VR4      '       d   VP                  MVP
                  p\        VP
                  \        P                  4      '       dC   VP
                  P                  ^ 8”  d(   VP
                  P                  ^8”  d   VP
                  pTpVe,   VP                  R,          VP                  R,          8w  d   RpVEf%   Ve   VP                  ^8X  Ed   VRJ ;'       g%    V^ ,          RJ ;'       g    VRJ ;'       d    V^ 8H  pV'       g   V P                  ff   V P                  e4   VP                  ^,          pV P                  RRW»V,           13,          pEM‡V P                  WWž4      w  ppVV n        W`n        EMcVP                  w  ppV
e   T
MV P                  pVeE   VRV pTpVP                  ^ ,          V8”  d   VRV pVVP                  R4      ,           R,          pMƒ\        P                  ! Ve
   VV,           M^ 4      pVP                  ^ 8X  d   \        P                  ! V^ R7      pVP                  ^ ,          V8  d   \        P                  ! VV^34      pMVRV p\        P                   ! V4      P#                  ^R4      p\        P$                  ! VVV34      p\        P&                  ! VV4      R,          p\        P$                  ! V^VV34      pV P)                  WW&R	7      pV P+                  V4      p\-        VR
7      # )rS   NÚpixel_valuesrá   râ   Úrope_deltasÚ_idxrJ   rH   )r�   rÊ   rS   )ÚlogitsrK   )rJ   N)N.)ÚpoprÜ   rÝ   r!   r5  rÎ   r‰   r   r   ÚndimÚsizerM   r/  ÚsqueezerÏ   rÐ   r&   r‡   rL   ÚaddrÚ   rÛ   r   )rD   rÉ   rÊ   r€   r�   ÚkwargsrS   r3  rá   râ   Úrope_deltas_kwÚcache_offsetÚcache_offsetsÚc0Ú	rope_maskÚ
is_prefillr  r4  r  Úrope_deltas_srcÚoffsetsÚdeltaÚouts   &&&&&,                 r   rX   ÚLanguageModel.__call__Õ  sZ  € ð —z‘z .°$Ó7ˆØ—z‘z .°$Ó7ˆØŸ™Ð$4°dÓ;ˆØŸ™Ð$4°dÓ;ˆØŸ™ M°4Ó8ˆàÒ#Ø $ˆDÔØ!%ˆDÔð ˆØˆß�U˜1•XÒ)Ø�q•ˆBÜ&-¨b°&×&9Ò&9˜2Ÿ7š7¸r¿y¹yˆLä˜2Ÿ9™9¤b§h¡h×/Ò/Ø—I‘I—N‘N QÔ&Ø—I‘I—N‘N QÔ&à "§	¡	�ð ˆ	ØÒ §
¡
¨2¥°&·,±,¸rÕ2BÔ BØˆIàÓ YÒ%6¸)¿.¹.ÈAÕ:Mð ˜�÷ Að AØ˜•8˜tÐ#÷Að Aà! TÐ)×?Ð?¨l¸aÑ.?ð ÷
 ˜T×.Ñ.Ò6à×%Ñ%Ò1Ø!'§¡¨a¥�JØ#'×#5Ñ#5Ø˜1˜l¸JÕ-FÐFÐFõ$’Lð 15×0CÑ0CØ°ó1Ñ-�L +ð )4�DÔ%Ø)5Ö&ð *0¯©Ñ&�
˜Jà&4Ò&@‘NÀd×FWÑFWð  ð !Ò,Ø+¨K¨ZÐ8�GØ"1�KØ"×(Ñ(¨Õ+¨jÔ8Ø&1°+°:Ð&>˜Ø$ {×':Ñ':¸2Ó'>Õ>ÀÕH‘EäŸHšHØ:?Ò:K˜ Ö6ÐQRó�Eð —z‘z Q”Ü "§¢¨u¸1Ô =˜Ø—{‘{ 1•~¨
Ô2Ü "§¢¨°
¸A¨Ó ?™à % k zÐ 2˜ä!Ÿyšy¨Ó4×<Ñ<¸QÀÓC�Ü!Ÿš¨|¸jÈ*Ð=UÓV�Ü!Ÿvšv l°EÓ:¸9ÕE�Ü!ŸšØ  1 j°*Ð"=ó �ð �j‰jØ¨}ð ó 
ˆð �l‰l˜3ÓˆÜ"¨#Ô.Ð.r   c                ó   € V# r³   rç   )rD   Úweightss   &&r   ÚsanitizeÚLanguageModel.sanitize4  s   € Øˆr   c                ó.   € V P                   P                  # r³   )rÚ   rÀ   ©rD   s   &r   rÀ   ÚLanguageModel.layers7  s   € à�z‰z× Ñ Ð r   c                ó.   € V P                   P                  # r³   )rm   rs   rM  s   &r   rt   ÚLanguageModel.n_kv_heads;  s   € à�y‰y×,Ñ,Ð,r   )rÝ   rÜ   rm   r   rÛ   rÚ   rÙ   r³   r’   )r[   r\   r]   r^   r;   r/  rX   rJ  ÚpropertyrÀ   rt   r_   r`   ra   rb   s   @@r   rÕ   rÕ     s[   ù‡ € ÷"õ "÷y7ò y7÷v]/ò ]/ò~ð ñ!ó ð!ð ñ-ó ÷-ð -r   rÕ   r³   )Útypingr   r   Úmlx.coreÚcorer   Úmlx.nnrv   r   r   r   r   Ú
rope_utilsr   rg   r   r	   r
   r-   ÚModuler/   rk   r”   r¢   r·   rÕ   rç   r   r   Ú<module>rX     s’   ðß  å Ý ÷ñ õ
 Iß +÷ &ôF$8˜2Ÿ9™9ô $8òNô6#�R—Y‘Yô 6#ôr1ˆr�y‰yô 1ô,&˜Ÿ	™	ô &ôR0�—‘ô 0ôfn-�B—I‘Iö n-r   