+
    œ°³jl¼  ã                   óÀ  € ^ RI Ht ^ RIHt ^ RI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H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H t  ^RI!H"t"H#t# ^RI$H%t% ^RI&H't'H(t(H)t)H*t* ^RI+H,t, ^RI-H.t.H/t/ ^RI0H1t1 ^RI2H3t3 ^RI4H5t5H6t6 ]! R4       ! R R]Pn                  4      4       t8 ! R R]Pn                  4      t9 ! R R]Pn                  4      t: ! R R]Pn                  4      t; ! R  R!]Pn                  4      t<R" t= ! R# R$]Pn                  4      t> ! R% R&]Pn                  4      t? ! R' R(]Pn                  4      t@R) tA]! R*4      RKR+ l4       tBR, R- ltCRLR. R/ lltD]! ]B4       ! R0 R1]Pn                  4      4       tE ! R2 R3]4      tF]( ! R4 R5]#4      4       tG]( ! R6 R7]#4      4       tH ! R8 R9]Pn                  4      tI]( ! R: R;]G4      4       tJ]( ! R< R=]G]4      4       tK](! R>R?7      ] ! R@ RA]4      4       4       tL](! RBR?7      ] ! RC RD]4      4       4       tM](! RER?7       ! RF RG]H4      4       tN](! RHR?7       ! RI RJ]H]4      4       tO. RMOtPR# )Né    )ÚCallable)Ú	dataclassN)Únn)Úinitialization)ÚACT2FN)ÚCacheÚDynamicCache)ÚGenerationMixin)Úuse_kernel_forward_from_hubÚuse_kernelized_func)Úcreate_causal_mask)ÚFlashAttentionKwargs)ÚGradientCheckpointingLayer)ÚBaseModelOutputWithPastÚBaseModelOutputWithPoolingÚCausalLMOutputWithPastÚModelOutput)ÚROPE_INIT_FUNCTIONSÚdynamic_rope_update)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚtorch_compilable_check)Údeprecate_kwarg)Úmaybe_autocastÚmerge_with_config_defaults)Úcapture_outputs)Ú	AutoModel)Ú
AriaConfigÚAriaTextConfigÚRMSNormc                   óZ   a a€ ] tR t^4t oRV3R lV 3R llltV3R lR ltR tRtVtV ;t	# )ÚAriaTextRMSNormc                ó$   <€ V ^8„  d   QhRS[ RR/# )é   ÚepsÚreturnN)Úfloat)ÚformatÚ__classdict__s   "€Úg/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/aria/modeling_aria.pyÚ__annotate__ÚAriaTextRMSNorm.__annotate__6   s   ø€ ÷ $ñ $©ð $¸$ñ $ó    c                óŽ   <€ \         SV `  4        \        P                  ! \        P
                  ! V4      4      V n        W n        R# )z.
AriaTextRMSNorm is equivalent to T5LayerNorm
N)ÚsuperÚ__init__r   Ú	ParameterÚtorchÚonesÚweightÚvariance_epsilon)ÚselfÚhidden_sizer)   Ú	__class__s   &&&€r.   r4   ÚAriaTextRMSNorm.__init__6   s/   ø€ ô 	‰ÑÔÜ—l’l¤5§:¢:¨kÓ#:Ó;ˆŒØ #Ör1   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r(   Úhidden_statesr*   ©r6   ÚTensor)r,   r-   s   "€r.   r/   r0   >   s#   ø€ ÷ ;ñ ;¡U§\¡\ð ;±e·l±lñ ;r1   c                ó:  € VP                   pVP                  \        P                  4      pVP	                  ^4      P                  RRR7      pV\        P                  ! W0P                  ,           4      ,          pV P                  VP                  V4      ,          # )r(   T)Úkeepdiméÿÿÿÿ)	ÚdtypeÚtor6   Úfloat32ÚpowÚmeanÚrsqrtr9   r8   )r:   r@   Úinput_dtypeÚvariances   &&  r.   ÚforwardÚAriaTextRMSNorm.forward>   sw   € Ø#×)Ñ)ˆØ%×(Ñ(¬¯©Ó7ˆØ ×$Ñ$ QÓ'×,Ñ,¨R¸Ð,Ó>ˆØ%¬¯ª°H×?TÑ?TÕ4TÓ(UÕUˆØ�{‰{˜]×-Ñ-¨kÓ:Õ:Ð:r1   c                ó^   € \        V P                  P                  4       R V P                   2# )z, eps=)Útupler8   Úshaper9   ©r:   s   &r.   Ú
extra_reprÚAriaTextRMSNorm.extra_reprE   s*   € Ü˜Ÿ™×)Ñ)Ó*Ð+¨6°$×2GÑ2GÐ1HÐIÐIr1   )r9   r8   )g�íµ ÷Æ°>)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r4   rN   rT   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r<   r-   s   @@r.   r&   r&   4   s%   ù‡ € ÷$õ $÷;ð ;÷Jò Jr1   r&   c                   ó<   a a€ ] tR t^It oRtV 3R ltR tRtVtV ;t	# )ÚAriaProjectorMLPzý
Feed-Forward Network module for the Aria Projector.

Args:
    in_features (`int`):
        Input embedding dimension.
    hidden_features (`int`):
        Hidden dimension of the feed-forward network.
    output_dim (`int`):
        Output dimension.
c                ó¼   <€ \         SV `  4        \        P                  ! WR R7      V n        \        P                  ! W#R R7      V n        \        R,          V n        R# )F©ÚbiasÚgelu_newN)r3   r4   r   ÚLinearÚ	linear_inÚ
linear_outr   Úact)r:   Úin_featuresÚhidden_featuresÚ
output_dimr<   s   &&&&€r.   r4   ÚAriaProjectorMLP.__init__V   s>   ø€ Ü‰ÑÔÜŸš ;ÀeÔLˆŒÜŸ)š) OÀeÔLˆŒÜ˜*Õ%ˆŽr1   c                óh   € V P                  V P                  V4      4      pV P                  V4      pV# ©N©rg   re   rf   )r:   r@   s   &&r.   rN   ÚAriaProjectorMLP.forward\   s-   € ØŸ™ §¡°Ó!>Ó?ˆØŸ™¨Ó6ˆØÐr1   rn   ©
rV   rW   rX   rY   Ú__doc__r4   rN   rZ   r[   r\   r]   s   @@r.   r_   r_   I   s   ù‡ € ñ
õ&÷ò r1   r_   c                   óP   a a€ ] tR t^bt oRtRV3R lV 3R llltRR ltRtVtV ;t	# )ÚAriaCrossAttentionzb
Aria Cross-Attention module.

Args:
    config (`AriaConfig`):
        The configuration to use.
c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r(   ÚconfigÚdropout_rate)r"   r+   )r,   r-   s   "€r.   r/   ÚAriaCrossAttention.__annotate__k   s   ø€ ÷ 7ñ 7™zð 7¹ñ 7r1   c                óH  <€ \         SV `  4        VP                  P                  pVP                  P                  pW@n        \        P                  ! W3R R7      V n        \        P                  ! W3R R7      V n	        \        P                  ! W3R R7      V n
        \        P                  ! W4RR7      V n        \        P                  ! W34      V n        \        P                  ! V4      V n        \        P                   ! V4      V n        \        P                   ! V4      V n        R# )Fra   T)Úbatch_firstN)r3   r4   Úvision_configr;   Únum_attention_headsÚ	num_headsr   rd   Úq_projÚk_projÚv_projÚMultiheadAttentionÚmultihead_attnÚlinearÚDropoutÚdropoutÚ	LayerNormÚ
layer_normÚlayer_norm_kv)r:   ru   rv   r;   r|   r<   s   &&&  €r.   r4   ÚAriaCrossAttention.__init__k   sÄ   ø€ Ü‰ÑÔØ×*Ñ*×6Ñ6ˆØ×(Ñ(×<Ñ<ˆ	Ø"ŒÜ—i’i ¸uÔEˆŒÜ—i’i ¸uÔEˆŒÜ—i’i ¸uÔEˆŒô !×3Ò3°KÐX\Ô]ˆÔÜ—i’i Ó9ˆŒÜ—z’z ,Ó/ˆŒäŸ,š, {Ó3ˆŒÜŸ\š\¨+Ó6ˆÖr1   c                ó  € V P                  V P                  V4      4      pV P                  V4      pV P                  V4      pV P	                  V4      pV P                  WEWcR7      w  rxV P                  V P                  V4      4      pV# )ai  
Forward pass of the AriaCrossAttention module.

Args:
    key_value_states (`torch.Tensor`):
        Input tensor for key and value.
    hidden_states (`torch.Tensor`):
        Input tensor for query.
    attn_mask (`torch.Tensor`, *optional*, defaults to None):
        Attention mask.

Returns:
    torch.Tensor:
        Output tensor after cross-attention.
©Ú	attn_mask)r}   r†   r‡   r~   r   r�   r„   r‚   )	r:   Úkey_value_statesr@   r‹   ÚqueryÚkeyÚvalueÚattn_outputÚ_s	   &&&&     r.   rN   ÚAriaCrossAttention.forward|   s   € ð  —‘˜DŸO™O¨MÓ:Ó;ˆà×-Ñ-Ð.>Ó?ÐØ�k‰kÐ*Ó+ˆØ—‘Ð,Ó-ˆà×,Ñ,¨U¸Ð,ÓT‰ˆà—l‘l 4§;¡;¨{Ó#;Ó<ˆàÐr1   )	r„   r~   r†   r‡   r‚   r�   r|   r}   r   )r   rm   rp   r]   s   @@r.   rs   rs   b   s   ù‡ € ñ÷7õ 7÷"ô r1   rs   c                   óX   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tVtV ;t	# )ÚAriaProjectorzô
Aria Projector module.

This module projects vision features into the language model's embedding space, enabling interaction between vision and language components.

Args:
    config (`AriaConfig`):
        Configuration object for the model.
c                ó    <€ V ^8„  d   QhRS[ /# ©r(   ru   ©r"   )r,   r-   s   "€r.   r/   ÚAriaProjector.__annotate__¤   s   ø€ ÷ fñ fáñfr1   c                ó¦  <€ \         SV `  4        VP                  V n        VP                  P
                  V n        VP                  P                  V n        VP                  P
                  V n	        VP                  P
                  V n        VP                  P
                  V n        \        P                  ! \        P                   ! VP"                  V P                  4      4      V n        \'        V4      V n        \        P*                  ! V P                  4      V n        \/        V P                  V P                  V P                  4      V n        R # rm   )r3   r4   Úprojector_patch_to_query_dictÚpatch_to_query_dictrz   r;   rh   r{   r|   Úkv_dimÚtext_configri   rj   r   r5   r6   ÚzerosÚ'max_value_projector_patch_to_query_dictr�   rs   Ú
cross_attnr…   r†   r_   Úfeed_forward©r:   ru   r<   s   &&€r.   r4   ÚAriaProjector.__init__¤   sí   ø€ ô 	‰ÑÔà#)×#GÑ#GˆÔ Ø!×/Ñ/×;Ñ;ˆÔØ×-Ñ-×AÑAˆŒØ×*Ñ*×6Ñ6ˆŒØ%×1Ñ1×=Ñ=ˆÔØ ×,Ñ,×8Ñ8ˆŒä—\’\¤%§+¢+¨f×.\Ñ.\Ð^b×^nÑ^nÓ"oÓpˆŒ
ä,¨VÓ4ˆŒäŸ,š, t×'7Ñ'7Ó8ˆŒÜ,¨T×-=Ñ-=¸t×?SÑ?SÐUY×UdÑUdÓeˆÖr1   c                ó\   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          /# )r(   rŒ   r‹   NrA   )r,   r-   s   "€r.   r/   r˜   ¸   s)   ø€ ÷ ñ ©¯©ð ÁÇÁÐPTÕATñ r1   c                óP  € VP                   ^ ,          VP                   ^,          rCW@P                  9  d+   \        RV RV P                  P                  4        R24      hV P                  V,          pV P                  RV P                  ^ 4      P                  V^^4      pVeN   VP                  V P                  ^ 4      pVP                  ^4      P                  RVP                  ^4      R4      pV P                  WVR7      pV P                  V P                  V4      4      pV# )aH  
Forward pass of the Projector module.

Args:
    key_value_states (`torch.Tensor`):
        Input tensor of shape (batch_size, num_patches, kv_dim).
    attn_mask (`torch.Tensor`, *optional*, default is None):
        Attention mask.

Returns:
    `torch.Tensor`: Output tensor of shape (batch_size, query_number, output_dim).
zNumber of patches z: not found in patch_to_query_dict amongst possible values Ú.NrŠ   rE   )rR   r›   ÚKeyErrorÚkeysr�   Ú	unsqueezeÚrepeatÚrepeat_interleaver|   ÚexpandÚsizer    r¡   r†   )	r:   rŒ   r‹   Ú
batch_sizeÚnum_patchesÚ	query_numÚqueriesÚattention_outÚouts	   &&&      r.   rN   ÚAriaProjector.forward¸   s0  € ð #3×"8Ñ"8¸Õ";Ð=M×=SÑ=SÐTUÕ=V�Kà×6Ñ6Ô6ÜØ$ [ MÐ1kÐlp÷  mEñ  mE÷  mJñ  mJó  mLð  lMð  MNð  Oóð ð ×,Ñ,¨[Õ9ˆ	à—*‘*˜Z˜iÐ(×2Ñ2°1Ó5×<Ñ<¸ZÈÈAÓNˆàÒ Ø!×3Ñ3°D·N±NÀAÓFˆIØ!×+Ñ+¨AÓ.×5Ñ5°b¸'¿,¹,Àq»/È2ÓNˆIàŸ™Ð(8ÈY˜ÓWˆà×Ñ §¡°Ó >Ó?ˆàˆ
r1   )
r    r¡   ri   rh   rœ   r†   r|   rj   r›   r�   rm   rp   r]   s   @@r.   r”   r”   ™   s%   ù‡ € ñ÷fó f÷(÷ ò r1   r”   c                   óH   a a€ ] tR t^Út oRtV3R lV 3R lltR tRtVtV ;t	# )ÚAriaSharedExpertsMLPa  
Shared Expert MLP for shared experts.

Unlike routed experts, shared experts process all tokens without routing.
This class reconfigures the intermediate size in comparison to the LlamaMLP.

Args:
    config (`AriaTextConfig`): Configuration object for the Aria language model.
c                ó    <€ V ^8„  d   QhRS[ /# r–   ©r#   )r,   r-   s   "€r.   r/   Ú!AriaSharedExpertsMLP.__annotate__å   s   ø€ ÷ 0ñ 0™~ñ 0r1   c                ó6  <€ \         SV `  4        Wn        VP                  V n        VP                  VP
                  ,          V n        \        P                  ! V P                  V P                  VP                  R 7      V n	        \        P                  ! V P                  V P                  VP                  R 7      V n
        \        P                  ! V P                  V P                  VP                  R 7      V n        \        VP                  ,          V n        R# )ra   N)r3   r4   ru   r;   Úintermediate_sizeÚmoe_num_shared_expertsr   rd   Úmlp_biasÚ	gate_projÚup_projÚ	down_projr   Ú
hidden_actÚact_fnr¢   s   &&€r.   r4   ÚAriaSharedExpertsMLP.__init__å   sÁ   ø€ Ü‰ÑÔØŒØ!×-Ñ-ˆÔØ!'×!9Ñ!9¸F×<YÑ<YÕ!YˆÔÜŸš 4×#3Ñ#3°T×5KÑ5KÐRX×RaÑRaÔbˆŒÜ—y’y ×!1Ñ!1°4×3IÑ3IÐPV×P_ÑP_Ô`ˆŒÜŸš 4×#9Ñ#9¸4×;KÑ;KÐRX×RaÑRaÔbˆŒÜ˜V×.Ñ.Õ/ˆŽr1   c                ó�   € V P                  V P                  V P                  V4      4      V P                  V4      ,          4      pV# rm   )rÀ   rÂ   r¾   r¿   )r:   ÚxrÀ   s   && r.   rN   ÚAriaSharedExpertsMLP.forwardï   s6   € Ø—N‘N 4§;¡;¨t¯~©~¸aÓ/@Ó#AÀDÇLÁLÐQRÃOÕ#SÓTˆ	ØÐr1   )rÂ   ru   rÀ   r¾   r;   r»   r¿   rp   r]   s   @@r.   r¶   r¶   Ú   s   ù‡ € ñ÷0ó 0÷ò r1   r¶   c                ó(  € V P                   ^ ,          pVP                   R,          p\        P                  ! W4V P                  V P                  R7      p\        P
                  ! V^ R7      p\        P                  ! ^\        P                  VP                  R7      p\        P                  ! Wv34      p\        VP                   ^ ,          4       F>  pWh,          p	Wh^,           ,          p
W	V
 p\        P                  ! W±V,          4      pWÅWš% K@  	  V# )a
  
Compute the matrix multiplication (GEMM) for each expert sequentially. This approach is computationally inefficient, especially when dealing with a large number of experts.

Args:
    token_states (torch.Tensor): Input tensor of shape (num_tokens, in_features).
    expert_weights (torch.Tensor): Weight tensor of shape (num_experts, in_features, out_features).
    tokens_per_expert (torch.Tensor): Number of tokens assigned to each expert.

Returns:
    torch.Tensor: Output tensor of shape (num_tokens, out_features).
©rF   Údevice©ÚdimrE   )
rR   r6   rž   rF   rÉ   ÚcumsumÚlongÚcatÚrangeÚmatmul)Útoken_statesÚexpert_weightsÚtokens_per_expertÚ
num_tokensÚout_featuresÚoutputÚcumsum_num_tokensÚzero_tensorÚ
expert_numÚstartÚendÚtokensr³   s   &&&          r.   Úsequential_experts_gemmrÝ   ô   sÞ   € ð ×#Ñ# AÕ&€JØ!×'Ñ'¨Õ+€LÜ�[Š[˜¸×9KÑ9KÐT`×TgÑTgÔh€FäŸšÐ%6¸AÔ>Ðä—+’+˜a¤u§z¡zÐ:K×:RÑ:RÔS€KÜŸ	š	 ;Ð"BÓCÐä˜N×0Ñ0°Õ3Ö4ˆ
Ø!Õ-ˆØ¨Q¥Õ/ˆØ CÐ(ˆä�lŠl˜6°*Õ#=Ó>ˆØˆuÒñ 5ð €Mr1   c                   ó<   a a€ ] tR tRt oRtV 3R ltR tRtVtV ;t	# )ÚAriaGroupedExpertsGemmi  a  
Grouped GEMM (General Matrix Multiplication) module for efficient expert computation.
This module utilizes the grouped_gemm library (https://github.com/fanshiqing/grouped_gemm)
for optimized performance. If the grouped_gemm library is not installed, it gracefully
falls back to a sequential GEMM implementation, which may be slower but ensures
functionality.

Args:
    in_features (`int`):
        Number of input features.
    out_features (`int`):
        Number of output features.
    groups (`int`):
        Number of expert groups.
c                ó¨   <€ \         SV `  4        Wn        W n        W0n        \
        P                  ! \        P                  ! W1V4      4      V n	        R # rm   )
r3   r4   rh   rÕ   Úgroupsr   r5   r6   Úemptyr8   )r:   rh   rÕ   rá   r<   s   &&&&€r.   r4   ÚAriaGroupedExpertsGemm.__init__$  s:   ø€ Ü‰ÑÔØ&ÔØ(ÔØŒÜ—l’l¤5§;¢;¨vÀLÓ#QÓRˆŽr1   c                óL   € \        VV P                  VP                  4       4      # )a-  
Perform grouped matrix multiplication.

Args:
    input (`torch.Tensor`):
        Input tensor of shape (num_tokens, in_features).
    tokens_per_expert (`torch.Tensor`):
        Number of tokens assigned to each expert.

Returns:
    torch.Tensor: Output tensor of shape (num_tokens, out_features).
)rÝ   r8   Úcpu)r:   ÚinputrÓ   s   &&&r.   rN   ÚAriaGroupedExpertsGemm.forward+  s'   € ô 'ØØ�K‰KØ×!Ñ!Ó#ó
ð 	
r1   )rá   rh   rÕ   r8   rp   r]   s   @@r.   rß   rß     s   ù‡ € ñõ S÷
ò 
r1   rß   c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚAriaExpertsi?  c                ó$   <€ V ^8„  d   QhRS[ RR/# )r(   ru   r*   Nr¸   )r,   r-   s   "€r.   r/   ÚAriaExperts.__annotate__@  s   ø€ ÷ pñ p™~ð p°$ñ pr1   c                óþ   <€ \         SV `  4        Wn        \        VP                  VP
                  ^,          VP                  4      V n        \        VP
                  VP                  VP                  4      V n        R# )r(   N)	r3   r4   ru   rß   r;   r»   Úmoe_num_expertsÚfc1Úfc2r¢   s   &&€r.   r4   ÚAriaExperts.__init__@  s_   ø€ Ü‰ÑÔØŒÜ)¨&×*<Ñ*<¸f×>VÑ>VÐYZÕ>ZÐ\b×\rÑ\rÓsˆŒÜ)¨&×*BÑ*BÀF×DVÑDVÐX^×XnÑXnÓoˆŽr1   c                ó¦   € \         P                  ! WP                  P                  ^R7      w  r#\        P
                  P                  VRR7      pW43# )é   )ÚkrË   rÊ   rE   )r6   Útopkru   Úmoe_topkr   Ú
functionalÚsoftmax)r:   Úrouter_logitsÚ
top_logitsÚtop_indicesÚscoress   &&   r.   Úroute_tokens_to_expertsÚ#AriaExperts.route_tokens_to_expertsF  sB   € Ü"'§*¢*¨]¿k¹k×>RÑ>RÐXYÔ"ZÑˆ
Ü—‘×&Ñ& z°rÐ&Ó:ˆØÐ"Ð"r1   c                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r(   r*   rA   )r,   r-   s   "€r.   r/   rë   K  s   ø€ ÷ ñ ±u·|±|ñ r1   c                ól  € V P                  V4      w  r4VP                  p\        P                  ! VP	                  4       P                  \        P                  4      V P                  P                  ^ V P                  P                  ^,
          R7      P                  V4      pTpVP                  R4      p\        P                  ! V4      p	VP                  ^ W�P                  P                  ,          4      p
V P                  W¦4      p\        P                  ! V^RR7      w  rÍ\        P                   P#                  V4      V,          pV P%                  W¶4      p\        P&                  ! VP(                  ^ ,          V P                  P                  ,          VP+                  ^4      3VP                  VP,                  R7      pVP/                  ^ Wž4       VP                  RV P                  P                  VP+                  ^4      4      pWôP1                  R4      ,          P3                  ^R7      pV# )r   )ÚbinsÚminÚmaxrÊ   rÈ   rE   )rü   rF   r6   ÚhistcÚflattenrG   rH   ru   rí   ÚviewÚargsortÚindex_selectrõ   rî   Úchunkr   rö   Úsilurï   rž   rR   r­   rÉ   Úindex_copy_r©   Úsum)r:   r@   rø   Útop_k_indexÚtop_k_weightsÚoriginal_dtyperÓ   ÚindicesÚflatten_indicesÚsorted_indicesÚpermuted_tokensÚ
fc1_outputÚ
projectionÚgateÚexpert_outputÚunpermuted_tokensrÖ   s   &&&              r.   rN   ÚAriaExperts.forwardK  s·  € Ø%)×%AÑ%AÀ-Ó%PÑ"ˆØ$×*Ñ*ˆÜ!ŸKšKØ×ÑÓ!×$Ñ$¤U§]¡]Ó3Ø—‘×,Ñ,ØØ—‘×+Ñ+¨aÕ/ô	
÷
 ‰"ˆ^Ó
ð 	ð ˆà!Ÿ,™, rÓ*ˆÜŸš Ó7ˆØ'×4Ñ4°Q¸Ï+É+×J^ÑJ^Õ8^Ó_ˆà—X‘X˜oÓAˆ
Ü Ÿ;š; z°1¸"Ô=Ñˆ
Ü—]‘]×'Ñ'¨
Ó3°dÕ:ˆ
ØŸ™ Ó?ˆä!ŸKšKØ× Ñ  Õ# d§k¡k×&:Ñ&:Õ:¸M×<NÑ<NÈqÓ<QÐRØ×%Ñ%Ø ×'Ñ'ô
Ðð
 	×%Ñ% a¨ÔGØ-×2Ñ2°2°t·{±{×7KÑ7KÈ]×M_ÑM_Ð`aÓMbÓcÐà#×&=Ñ&=¸bÓ&AÕA×FÑFÈ1ÐFÓMˆØˆr1   )ru   rî   rï   )
rV   rW   rX   rY   r4   rü   rN   rZ   r[   r\   r]   s   @@r.   ré   ré   ?  s%   ù‡ € ÷pó pò#÷
÷ ð r1   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# )ÚAriaTextMoELayerik  c                ó    <€ V ^8„  d   QhRS[ /# r–   r¸   )r,   r-   s   "€r.   r/   ÚAriaTextMoELayer.__annotate__l  s   ø€ ÷ ñ ™~ñ r1   c                óÔ   <€ \         SV `  4        \        P                  ! VP                  VP
                  R R7      V n        \        V4      V n        \        V4      V n
        Wn        R# ©Fra   N)r3   r4   r   rd   r;   rí   Úrouterré   Úexpertsr¶   Úshared_expertsru   r¢   s   &&€r.   r4   ÚAriaTextMoELayer.__init__l  sM   ø€ Ü‰ÑÔÜ—i’i × 2Ñ 2°F×4JÑ4JÐQVÔWˆŒÜ" 6Ó*ˆŒÜ2°6Ó:ˆÔØŽr1   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r?   rA   )r,   r-   s   "€r.   r/   r  s  s#   ø€ ÷ 4ñ 4¡U§\¡\ð 4±e·l±lñ 4r1   c                ó  € VP                   pVP                  RVP                  R4      4      pV P                  V4      pV P	                  W4      P                  V4      pV P                  VP                  V4      4      pWE,           # )rò   rE   )rR   r  r­   r   r!  r"  )r:   r@   Úoriginal_shaperø   r  Úshared_expert_outputs   &&    r.   rN   ÚAriaTextMoELayer.forwards  sv   € Ø&×,Ñ,ˆØ%×*Ñ*¨2¨}×/AÑ/AÀ"Ó/EÓFˆØŸ™ MÓ2ˆØŸ™ ]ÓB×GÑGÈÓWˆØ#×2Ñ2°=×3EÑ3EÀnÓ3UÓVÐØÕ3Ð3r1   )ru   r!  r   r"  )	rV   rW   rX   rY   r4   rN   rZ   r[   r\   r]   s   @@r.   r  r  k  s   ù‡ € ÷ó ÷4÷ 4ð 4r1   r  c                óÌ   € V RRV P                   R,          ^,          13,          pV RV P                   R,          ^,          R13,          p\        P                  ! V) V3RR7      # )z*Rotates half the hidden dims of the input..NrÊ   rE   )rR   r6   rÎ   )rÅ   Úx1Úx2s   &  r.   Úrotate_halfr,  |  sZ   € à	
ˆ3Ð"�!—'‘'˜"•+ Õ"Ð"Ð"Õ	#€BØ	
ˆ3�—‘˜•˜qÕ Ñ"Ð"Õ	#€BÜ�9Š9�r�c˜2�Y BÔ'Ð'r1   Úrotary_pos_embc                óÈ   € VP                  V4      pVP                  V4      pW,          \        V 4      V,          ,           pW,          \        V4      V,          ,           pWV3# )aI  Applies Rotary Position Embedding to the query and key tensors.

Args:
    q (`torch.Tensor`): The query tensor.
    k (`torch.Tensor`): The key tensor.
    cos (`torch.Tensor`): The cosine part of the rotary embedding.
    sin (`torch.Tensor`): The sine part of the rotary embedding.
    unsqueeze_dim (`int`, *optional*, defaults to 1):
        The 'unsqueeze_dim' argument specifies the dimension along which to unsqueeze cos[position_ids] and
        sin[position_ids] so that they can be properly broadcasted to the dimensions of q and k. For example, note
        that cos[position_ids] and sin[position_ids] have the shape [batch_size, seq_len, head_dim]. Then, if q and
        k have the shape [batch_size, heads, seq_len, head_dim], then setting unsqueeze_dim=1 makes
        cos[position_ids] and sin[position_ids] broadcastable to the shapes of q and k. Similarly, if q and k have
        the shape [batch_size, seq_len, heads, head_dim], then set unsqueeze_dim=2.
Returns:
    `tuple(torch.Tensor)` comprising of the query and key tensors rotated using the Rotary Position Embedding.
)r©   r,  )Úqró   ÚcosÚsinÚunsqueeze_dimÚq_embedÚk_embeds   &&&&&  r.   Úapply_rotary_pos_embr5  ƒ  sS   € ð& �-‰-˜Ó
&€CØ
�-‰-˜Ó
&€CØ�wœ; q›>¨CÕ/Õ0€GØ�wœ; q›>¨CÕ/Õ0€GØÐÐr1   c                ód   € V ^8„  d   QhR\         P                  R\        R\         P                  /# )r(   r@   Ún_repr*   )r6   rB   Úint)r,   s   "r.   r/   r/   �  s.   € ÷ 	Uñ 	UœUŸ\™\ð 	U´#ð 	U¼%¿,¹,ñ 	Ur1   c                ó˜   € V P                   w  r#rEV^8X  d   V # V R,          P                  W#WV4      p V P                  W#V,          WE4      # )zÈ
This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch,
num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim)
)ºNNNr:  Nr:  r:  )rR   r¬   Úreshape)r@   r7  ÚbatchÚnum_key_value_headsÚslenÚhead_dims   &&    r.   Ú	repeat_kvr@  �  sU   € ð
 2?×1DÑ1DÑ.€E Ø�„zØÐØ!Ð"2Õ3×:Ñ:¸5ÐW\ÐdlÓm€MØ× Ñ  ¸eÕ(CÀTÓTÐTr1   c                ó   € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R\        R	\
        \        ,          /# )
r(   Úmoduler�   rŽ   r�   Úattention_maskNÚscalingr„   Úkwargs)r   ÚModuler6   rB   r+   r   r   )r,   s   "r.   r/   r/   ©  sw   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô ð%ô ð%ô Ô'Õ(ñ%r1   c                 ó"  € \        W P                  4      p\        W0P                  4      p	\        P                  ! WP	                  ^^4      4      V,          p
Ve	   W¤,           p
\
        P                  P                  V
R\        P                  R7      P                  VP                  4      p
\
        P                  P                  W¦V P                  R7      p
\        P                  ! W©4      pVP	                  ^^4      P                  4       pWº3# )r(   )rË   rF   )ÚpÚtrainingrE   )r@  Únum_key_value_groupsr6   rÐ   Ú	transposer   rö   r÷   rH   rG   rF   r„   rI  Ú
contiguous)rB  r�   rŽ   r�   rC  rD  r„   rE  Ú
key_statesÚvalue_statesÚattn_weightsr�   s   &&&&&&&,    r.   Úeager_attention_forwardrP  ©  sÒ   € ô ˜3× ;Ñ ;Ó<€JÜ˜U×$?Ñ$?Ó@€Lä—<’< ×';Ñ';¸A¸qÓ'AÓBÀWÕL€LØÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2ÄUÇ]Á]Ð(ÓS×VÑVÐW\×WbÑWbÓc€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€LÜ—,’,˜|Ó:€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$r1   c                   óX   a a€ ] tR tRt oRt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	# )	ÚAriaTextAttentioniÂ  z=Multi-headed attention from 'Attention Is All You Need' paperc                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r(   ru   Ú	layer_idx©r#   r8  )r,   r-   s   "€r.   r/   ÚAriaTextAttention.__annotate__Æ  s   ø€ ÷ 
ñ 
™~ð 
¹#ñ 
r1   c                ó¢  <€ \         SV `  4        Wn        W n        \	        VR VP
                  VP                  ,          4      V n        VP                  VP                  ,          V n	        V P                  R,          V n
        VP                  V n        RV n        \        P                  ! VP
                  VP                  V P                  ,          VP                  R7      V n        \        P                  ! VP
                  VP                  V P                  ,          VP                  R7      V n        \        P                  ! VP
                  VP                  V P                  ,          VP                  R7      V n        \        P                  ! VP                  V P                  ,          VP
                  VP                  R7      V n        R# )r?  Tra   Ng      à¿)r3   r4   ru   rU  Úgetattrr;   r{   r?  r=  rJ  rD  Úattention_dropoutÚ	is_causalr   rd   Úattention_biasr}   r~   r   Úo_proj©r:   ru   rU  r<   s   &&&€r.   r4   ÚAriaTextAttention.__init__Æ  sI  ø€ Ü‰ÑÔØŒØ"ŒÜ ¨
°F×4FÑ4FÈ&×JdÑJdÕ4dÓeˆŒØ$*×$>Ñ$>À&×B\ÑB\Õ$\ˆÔ!Ø—}‘} dÕ*ˆŒØ!'×!9Ñ!9ˆÔØˆŒä—i’iØ×Ñ × :Ñ :¸T¿]¹]Õ JÐQW×QfÑQfô
ˆŒô —i’iØ×Ñ × :Ñ :¸T¿]¹]Õ JÐQW×QfÑQfô
ˆŒô —i’iØ×Ñ × :Ñ :¸T¿]¹]Õ JÐQW×QfÑQfô
ˆŒô —i’iØ×&Ñ&¨¯©Õ6¸×8JÑ8JÐQW×QfÑQfô
ˆŽr1   c                ó  <€ V ^8„  d   QhRS[ P                  RS[S[ P                  S[ P                  3,          R,          RS[ P                  R,          RS[R,          RS[S[,          RS[S[ P                  S[ P                  3,          /# )r(   r@   Úposition_embeddingsNrC  Úpast_key_valuesrE  r*   )r6   rB   rQ   r   r   r   )r,   r-   s   "€r.   r/   rW  Ý  s‡   ø€ ÷ &)ñ &)á—|‘|ð&)ñ #¡5§<¡<±·±Ð#=Õ>ÀÕEð&)ñ Ÿ™ tÕ+ð	&)ñ
  �ð&)ñ Ñ+Õ,ð&)ñ 
‰u�|‰|™UŸ\™\Ð)Õ	*ñ&)r1   c                ó  € VP                   R R p. VORNV P                  N5pV P                  V4      P                  V4      P	                  ^^4      pV P                  V4      P                  V4      P	                  ^^4      p	V P                  V4      P                  V4      P	                  ^^4      p
Vw  r¼\        W‰W¼4      w  r‰Ve   VP                  WšV P                  4      w  rš\        P                  ! V P                  P                  \        4      pT! V VV	V
V3RV P                  '       g   RMV P                   RV P"                  /VB w  rïVP$                  ! . VORN5!  P'                  4       pV P)                  V4      pWï3# )Nr„   ç        rD  rE   )rR   r?  r}   r  rK  r~   r   r5  ÚupdaterU  r   Úget_interfaceru   Ú_attn_implementationrP  rI  rZ  rD  r;  rL  r]  )r:   r@   ra  rC  rb  rE  Úinput_shapeÚhidden_shapeÚquery_statesrM  rN  r0  r1  Úattention_interfacer�   rO  s   &&&&&,          r.   rN   ÚAriaTextAttention.forwardÝ  s‡  € ð $×)Ñ)¨#¨2Ð.ˆØ8˜Ð8 bÐ8¨$¯-©-Ñ8ˆà—{‘{ =Ó1×6Ñ6°|ÓD×NÑNÈqÐRSÓTˆØ—[‘[ Ó/×4Ñ4°\ÓB×LÑLÈQÐPQÓRˆ
Ø—{‘{ =Ó1×6Ñ6°|ÓD×NÑNÈqÐRSÓTˆà&‰ˆÜ#7¸ÐRUÓ#[Ñ ˆàÒ&Ø'6×'=Ñ'=¸jÐX\×XfÑXfÓ'gÑ$ˆJä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ	%
ð  $Ÿ}Ÿ}˜}‘C°$×2HÑ2Hð	%
ð —L‘Lð	%
ð ñ	%
Ñ!ˆð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—k‘k +Ó.ˆØÐ(Ð(r1   )rZ  ru   r?  r[  r~   rU  rJ  r]  r}   rD  r   )NNNrp   r]   s   @@r.   rR  rR  Â  s!   ù‡ € áG÷
ó 
÷.&)÷ &)ò &)r1   rR  c                   óX   a a€ ] tR tRt oRt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	# )	ÚAriaTextDecoderLayeri  aG  
Aria Text Decoder Layer.

This class defines a single decoder layer in the language model, incorporating self-attention and Mixture of Experts (MoE) feed-forward network.

Args:
    config (`AriaTextConfig`):
        Configuration object for the text component of the model.
    layer_idx (`int`):
        Index of the layer.
c                ó&   <€ V ^8„  d   QhRS[ RS[/# rT  rV  )r,   r-   s   "€r.   r/   Ú!AriaTextDecoderLayer.__annotate__  s   ø€ ÷ eñ e™~ð e¹#ñ er1   c                ó   <€ \         SV `  4        VP                  V n        \        WR 7      V n        \        V4      V n        \        VP                  VP                  R7      V n	        \        VP                  VP                  R7      V n
        R# ))ru   rU  ©r)   N)r3   r4   r;   rR  Ú	self_attnr  Úmlpr&   Úrms_norm_epsÚinput_layernormÚpost_attention_layernormr^  s   &&&€r.   r4   ÚAriaTextDecoderLayer.__init__  sk   ø€ Ü‰ÑÔØ!×-Ñ-ˆÔä*°&ÔNˆŒÜ# FÓ+ˆŒÜ.¨v×/AÑ/AÀv×GZÑGZÔ[ˆÔÜ(7¸×8JÑ8JÐPV×PcÑPcÔ(dˆÖ%r1   c                ó.  <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          RS[S[ P                  S[ P                  3,          R,          RS[S[,          R	S[ P                  /# )
r(   r@   rC  NÚposition_idsrb  Ú	use_cachera  rE  r*   )r6   rB   Ú
LongTensorr   ÚboolrQ   r   r   )r,   r-   s   "€r.   r/   rp    sœ   ø€ ÷ ñ á—|‘|ðñ Ÿ™ tÕ+ðñ ×&Ñ&¨Õ-ð	ñ
  �ðñ ˜$•;ðñ #¡5§<¡<±·±Ð#=Õ>ÀÕEðñ Ñ+Õ,ðñ 
�‰ñr1   c                óÔ   € TpV P                  V4      pV P                  ! RR VRVRVRVRVRV/VB w  rW�,           pTpV P                  V4      pV P                  V4      pW�,           pV# )r@   rC  rz  rb  r{  ra  © )rv  rs  rw  rt  )
r:   r@   rC  rz  rb  r{  ra  rE  Úresidualr‘   s
   &&&&&&&,  r.   rN   ÚAriaTextDecoderLayer.forward  s©   € ð !ˆØ×,Ñ,¨]Ó;ˆàŸ>š>ñ 
Ø'ð
à)ð
ð &ð
ð ,ð	
ð
  ð
ð !4ð
ð ñ
Ñˆð !Õ0ˆð !ˆØ×5Ñ5°mÓDˆØŸ™ Ó/ˆØ Õ0ˆØÐr1   )r;   rv  rt  rw  rs  )NNNFNrp   r]   s   @@r.   rn  rn    s%   ù‡ € ñ
÷eó e÷÷ ò r1   rn  c                   ó˜   a a€ ] tR tRt oRtRtRR.tRtR.tRt	Rt
RtR]R]/t]P                   ! 4       V 3R	 l4       tV3R
 ltRtVtV ;t# )ÚAriaTextPreTrainedModeli<  Úmodelrn  rß   Trb  r@   Ú
attentionsc                óÄ   <€ \         SV `  V4       \        V\        4      '       d:   \        P
                  ! VP                  R V P                  P                  R7       R# R# )rd  )rJ   ÚstdN)	r3   Ú_init_weightsÚ
isinstancerß   ÚinitÚnormal_r8   ru   Úinitializer_range©r:   rB  r<   s   &&€r.   rˆ  Ú%AriaTextPreTrainedModel._init_weightsM  sA   ø€ ä‰Ñ˜fÔ%Ü�fÔ4×5Ò5Ü�LŠL˜Ÿ™¨S°d·k±k×6SÑ6S×Tñ 6r1   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r–   r¸   )r,   r-   s   "€r.   r/   Ú$AriaTextPreTrainedModel.__annotate__<  s   ø‡ ‚ áÑò r1   r  )ÚimageÚtext)rV   rW   rX   rY   Úbase_model_prefixÚinput_modalitiesÚ_no_split_modulesÚsupports_gradient_checkpointingÚ_skip_keys_device_placementÚ_supports_flash_attnÚ_supports_sdpaÚ_supports_attention_backendrn  rR  Ú_can_record_outputsr6   Úno_gradrˆ  Ú__annotate_func__rZ   r[   r\   r]   s   @@r.   rƒ  rƒ  <  sv   ù‡ € ð  ÐØ(ÐØ/Ð1IÐJÐØ&*Ð#Ø#4Ð"5ÐØÐØ€Nà"&ÐàÐ-ØÐ'ðÐð
 ‡]‚]ƒ_ôUó ðU÷% … r1   rƒ  c                   óš   a a€ ] tR tRt oRtRtR.tR.tRtRt	Rt
RtRtR]R]/t]P"                  ! 4       V 3R	 l4       tV3R
 ltRtVtV ;t# )ÚAriaPreTrainedModeliT  r„  TÚAriaDecoderLayerrb  Fr@   r…  c                óÂ   <€ \         SV `  V4       \        V\        4      '       d9   \        P
                  ! VP                  V P                  P                  R 7       R# R# ))r‡  N)	r3   rˆ  r‰  r”   rŠ  Útrunc_normal_r�   ru   rŒ  r�  s   &&€r.   rˆ  Ú!AriaPreTrainedModel._init_weightse  s@   ø€ ä‰Ñ˜fÔ%Ü�fœm×,Ò,Ü×Ò˜vŸ|™|°·±×1NÑ1N×Oñ -r1   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r–   r—   )r,   r-   s   "€r.   r/   Ú AriaPreTrainedModel.__annotate__T  s   ø‡ ‚ áÑò r1   r  )rV   rW   rX   rY   r“  r–  r•  r—  r˜  r™  Ú_supports_flex_attnÚ_can_compile_fullgraphrš  rn  rR  r›  r6   rœ  rˆ  r�  rZ   r[   r\   r]   s   @@r.   rŸ  rŸ  T  sy   ù‡ € ð  ÐØ&*Ð#Ø+Ð,ÐØ#4Ð"5ÐØÐØ€NØÐØ"ÐØ"&ÐàÐ-ØÐ'ðÐð
 ‡]‚]ƒ_ôPó ðP÷% … r1   rŸ  c                   óÎ   a a€ ] tR tRt o]! RRR7      RV3R lV 3R lll4       t]]! RRR7      RV3R lR ll4       4       t]P                  ! 4       ]
R	 4       4       tR
tVtV ;t# )ÚAriaTextRotaryEmbeddingil  rÉ   z5.18)Úversionc                ó    <€ V ^8„  d   QhRS[ /# r–   r¸   )r,   r-   s   "€r.   r/   Ú$AriaTextRotaryEmbedding.__annotate__n  s   ø€ ÷ Oñ O™~ñ Or1   c                óä  <€ \         SV `  4        VP                  V n        VP                  V n        Wn        V P
                  P                  R ,          V n        V P                  pV P                  R8w  d   \        V P                  ,          pV! V P
                  V4      w  q@n
        \        P                  ! VRR7      V n        \        P                  ! VP                  4       RR7      V n        R# )Ú	rope_typeÚdefaultF)Ú
persistentN)r3   r4   Úmax_position_embeddingsÚmax_seq_len_cachedÚoriginal_max_seq_lenru   Úrope_parametersr®  Úcompute_default_rope_parametersr   Úattention_scalingr   ÚBufferÚinv_freqÚcloneÚoriginal_inv_freq)r:   ru   rÉ   Úrope_init_fnr¸  r<   s   &&&  €r.   r4   Ú AriaTextRotaryEmbedding.__init__m  s¬   ø€ ä‰ÑÔØ"(×"@Ñ"@ˆÔØ$*×$BÑ$BˆÔ!àŒàŸ™×4Ñ4°[ÕAˆŒØ!%×!EÑ!EˆØ�>‰>˜YÔ&Ü.¨t¯~©~Õ>ˆLÙ+7¸¿¹ÀVÓ+LÑ(ˆÔ(äŸ	š	 (°uÔ=ˆŒÜ!#§¢¨8¯>©>Ó+;ÈÔ!NˆÖr1   c                óP   <€ V ^8„  d   QhRS[ RS[S[P                  S[3,          /# )r(   ru   r*   )r#   rQ   r6   rB   r+   )r,   r-   s   "€r.   r/   r¬  €  s.   ø€ ÷ 5ñ 5±ð 5ÑZ_Ñ`e×`lÑ`lÑnsÐ`sÕZtñ 5r1   c           	     ó0  € V P                   R,          p\        V RR4      ;'       g    V P                  V P                  ,          pRpRV\        P
                  ! ^ V^\        P                  R7      V,          ,          ,          pVP                  V4      V3# )a~  
Computes the inverse frequencies according to the original RoPE implementation
Args:
    config ([`~transformers.PreTrainedConfig`]):
        The model configuration.
Returns:
    Tuple of (`torch.Tensor`, `float`), containing the inverse frequencies for the RoPE embeddings and the
    post-processing scaling factor applied to the computed cos/sin (unused in this type of RoPE).
Ú
rope_thetar?  Ng      ð?©rF   )r´  rY  r;   r{   r6   Úaranger+   rG   )ru   rÉ   rE  ÚbaserË   Úattention_factorr¸  s   &&,    r.   rµ  Ú7AriaTextRotaryEmbedding.compute_default_rope_parameters~  s~   € ð ×%Ñ% lÕ3ˆÜ�f˜j¨$Ó/×cÐc°6×3EÑ3EÈ×IcÑIcÕ3cˆàÐà˜$¤5§<¢<°°3¸ÄÇÁÔ#MÐPSÕ#SÕTÕUˆØ�{‰{˜6Ó"Ð$4Ð4Ð4r1   c                ó^  € V P                   R,          P                  VP                  ^ ,          R	^4      P                  \        P
                  VP                  R7      pVR
,          P                  4       p\        VP                  P                  \        4      '       d2   VP                  P                  R8w  d   VP                  P                  MRp\        VRR7      ;_uu_ 4        W4,          P                  ^^4      p\        P                  ! Wf3R	R7      pVP                  4       V P                  ,          pVP                  4       V P                  ,          p	R R R 4       XP                  VP                   R7      X	P                  VP                   R7      3#   + '       g   i     LH; i)NrÈ   Úmpsrå   F)Údevice_typeÚenabledrÊ   rÀ  )Nr:  NrE   )r:  Nr:  )r¸  r¬   rR   rG   r6   r+   rÉ   r‰  ÚtypeÚstrr   rK  rÎ   r0  r¶  r1  rF   )
r:   rÅ   rz  Úinv_freq_expandedÚposition_ids_expandedrÇ  ÚfreqsÚembr0  r1  s
   &&&       r.   rN   ÚAriaTextRotaryEmbedding.forward’  s2  € ð �M‰M˜-Õ(×/Ñ/°×0BÑ0BÀ1Õ0EÀrÈ1ÓM×PÑPÔW\×WbÑWbÐkl×ksÑksÐPÓtð 	ð !-¨ZÕ 8× >Ñ >Ó @Ðä'1°!·(±(·-±-Ä×'EÒ'EÈ!Ï(É(Ï-É-Ð[`ÔJ`�a—h‘h—m’mÐfkˆä¨¸U×CÖCØ&Õ>×IÑIÈ!ÈQÓOˆEÜ—)’)˜U˜N°Ô3ˆCØ—'‘'“)˜d×4Ñ4Õ4ˆCØ—'‘'“)˜d×4Ñ4Õ4ˆC÷	 Dð �v‰v˜AŸG™GˆvÓ$ c§f¡f°1·7±7 fÓ&;Ð;Ð;÷ D×Cús   Ã(A4FÆF,	)r¶  ru   r¸  r²  rº  r³  r®  rm   )rV   rW   rX   rY   r   r4   Ústaticmethodrµ  r6   rœ  r   rN   rZ   r[   r\   r]   s   @@r.   r©  r©  l  su   ù‡ € Ù�X vÔ.÷Oô Oó /ðOð  Ù�X vÔ.÷5ñ 5ó /ó ð5ð$ ‡]‚]ƒ_Øñ<ó ó ÷<ð <r1   r©  c                   ór   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4       4       4       tRt	Vt
V ;t# )ÚAriaTextModeli¥  c                ó    <€ V ^8„  d   QhRS[ /# r–   r¸   )r,   r-   s   "€r.   r/   ÚAriaTextModel.__annotate__§  s   ø€ ÷ ñ ™~ñ r1   c           	     ó  <€ \         SV `  V4       VP                  V n        VP                  V n        \
        P                  ! VP                  VP                  V P                  4      V n        \
        P                  ! \        VP                  4       Uu. uF  p\        W4      NK  	  up4      V n        \        VP                  VP                  R 7      V n        \#        VR7      V n        RV n        V P)                  4        R# u upi )rr  ©ru   FN)r3   r4   Úpad_token_idÚpadding_idxÚ
vocab_sizer   Ú	Embeddingr;   Úembed_tokensÚ
ModuleListrÏ   Únum_hidden_layersrn  Úlayersr&   ru  Únormr©  Ú
rotary_embÚgradient_checkpointingÚ	post_initr^  s   && €r.   r4   ÚAriaTextModel.__init__§  sÊ   ø€ Ü‰Ñ˜Ô Ø!×.Ñ.ˆÔØ ×+Ñ+ˆŒäŸLšL¨×):Ñ):¸F×<NÑ<NÐPT×P`ÑP`ÓaˆÔÜ—m’mÜFKÈF×LdÑLdÔFeÓfÑFe¸Ô! &Ö4ÑFeÑfó
ˆŒô $ F×$6Ñ$6¸F×<OÑ<OÔPˆŒ	Ü1¸Ô@ˆŒØ&+ˆÔ#ð 	�‰Öùò gs   ÂDc                óþ   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          RS[R,          RS[S[,          R	S[/# )
r(   Ú	input_idsNrC  rz  rb  Úinputs_embedsr{  rE  r*   )	r6   r|  rB   r   ÚFloatTensorr}  r   r   r   )r,   r-   s   "€r.   r/   rÔ  º  s“   ø€ ÷ 2
ñ 2
á×#Ñ# dÕ*ð2
ñ Ÿ™ tÕ+ð2
ñ ×&Ñ&¨Õ-ð	2
ñ
  �ð2
ñ ×(Ñ(¨4Õ/ð2
ñ ˜$•;ð2
ñ Ñ+Õ,ð2
ñ 
!ñ2
r1   c                óˆ  € VR J VR J,          '       d   \        R4      hVf   V P                  V4      pV'       d   Vf   \        V P                  R7      pVfb   Ve   VP	                  4       M^ p\
        P                  ! VP                  ^,          VP                  R7      V,           pVP                  ^ 4      p\        V P                  VVVVR7      p	Tp
V P                  W£R7      pV P                  R V P                  P                    F  pV! V
3RV	RVRVR	VR
V/VB p
K  	  V P                  V
4      p
\        V
VR7      # )Nz:You must specify exactly one of input_ids or inputs_embedsrÖ  )rÉ   )ru   ræ  rC  rb  rz  )rz  rC  ra  rz  rb  r{  )Úlast_hidden_staterb  )Ú
ValueErrorrÛ  r	   ru   Úget_seq_lengthr6   rÁ  rR   rÉ   r©   r   rà  rÞ  rÝ  rß  r   )r:   rå  rC  rz  rb  ræ  r{  rE  Úpast_seen_tokensÚcausal_maskr@   ra  Údecoder_layers   &&&&&&&,     r.   rN   ÚAriaTextModel.forward·  se  € ð ˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZàÒ Ø*.×*;Ñ*;¸IÓ*FˆMç˜Ò0Ü*°$·+±+Ô>ˆOàÒØCRÒC^˜×=Ñ=Ô?ÐdeÐÜ Ÿ<š<¨×(;Ñ(;¸AÕ(>À}×G[ÑG[Ô\Ð_oÕoˆLØ'×1Ñ1°!Ó4ˆLä(Ø—;‘;Ø'Ø)Ø+Ø%ô
ˆð &ˆØ"Ÿo™o¨m˜oÓWÐà!Ÿ[™[Ð)H¨4¯;©;×+HÑ+HÓIˆMÙ)Øñà*ðð %8ðð *ð	ð
 !0ðð $ðð ñŠMñ Jð Ÿ	™	 -Ó0ˆÜ&Ø+Ø+ô
ð 	
r1   )rÛ  rá  rÞ  rß  rØ  rà  rÙ  )NNNNNN)rV   rW   rX   rY   r4   r   r    r   rN   rZ   r[   r\   r]   s   @@r.   rÒ  rÒ  ¥  s=   ù‡ € ÷ó ð   ØØ÷2
ñ 2
ó ó ó  ÷2
ð 2
r1   rÒ  c                   ó†   a a€ ] tR tRt oRR/tRR/tRR.R.3/tRR/tV3R	 lV 3R
 llt]	RV3R lR ll4       t
RtVtV ;t# )ÚAriaTextForCausalLMiï  úlm_head.weightzmodel.embed_tokens.weightÚlm_headÚcolwise_gather_outputr@   ÚlogitsÚkeep_full_weightc                ó    <€ V ^8„  d   QhRS[ /# r–   r¸   )r,   r-   s   "€r.   r/   Ú AriaTextForCausalLM.__annotate__ö  s   ø€ ÷ ñ ™~ñ r1   c                óì   <€ \         SV `  V4       \        V4      V n        VP                  V n        \
        P                  ! VP                  VP                  R R7      V n        V P                  4        R# r  )
r3   r4   rÒ  r„  rÙ  r   rd   r;   ró  râ  r¢   s   &&€r.   r4   ÚAriaTextForCausalLM.__init__ö  sU   ø€ Ü‰Ñ˜Ô Ü" 6Ó*ˆŒ
Ø ×+Ñ+ˆŒÜ—y’y ×!3Ñ!3°V×5FÑ5FÈUÔSˆŒð 	�‰Ör1   c                óP  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          RS[ P                  R,          RS[R,          R	S[S[ P                  ,          R
S[S[,          RS[	/
# )r(   rå  NrC  rz  rb  ræ  Úlabelsr{  Úlogits_to_keeprE  r*   )
r6   r|  rB   r   rç  r}  r8  r   r   r   )r,   r-   s   "€r.   r/   rø     s»   ø€ ÷ 6
ñ 6
á×#Ñ# dÕ*ð6
ñ Ÿ™ tÕ+ð6
ñ ×&Ñ&¨Õ-ð	6
ñ
  �ð6
ñ ×(Ñ(¨4Õ/ð6
ñ × Ñ  4Õ'ð6
ñ ˜$•;ð6
ñ ™eŸl™lÕ*ð6
ñ Ñ+Õ,ð6
ñ 
 ñ6
r1   c	                ó–  € V P                   ! RRVRVRVRVRVRV/V	B p
V
P                  p\        V\        4      '       d   \	        V) R4      MTpV P                  VRVR3,          4      pRpVe-   V P                  ! RR	VR
VRV P                  P                  /V	B p\        VVV
P                  V
P                  V
P                  R7      # )aƒ  
Example:

```python
>>> from transformers import AutoTokenizer, AriaTextForCausalLM

>>> model = AriaTextForCausalLM.from_pretrained("meta-aria_text/AriaText-2-7b-hf")
>>> tokenizer = AutoTokenizer.from_pretrained("meta-aria_text/AriaText-2-7b-hf")

>>> prompt = "Hey, are you conscious? Can you talk to me?"
>>> inputs = tokenizer(prompt, return_tensors="pt")

>>> # Generate
>>> generate_ids = model.generate(inputs.input_ids, max_length=30)
>>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"Hey, are you conscious? Can you talk to me?\nI'm not conscious, but I can talk to you."
```rå  rC  rz  rb  ræ  r{  Nr:  rõ  rü  rÙ  ©Úlossrõ  rb  r@   r…  r  )r„  ré  r‰  r8  Úsliceró  Úloss_functionru   rÙ  r   rb  r@   r…  )r:   rå  rC  rz  rb  ræ  rü  r{  rý  rE  Úoutputsr@   Úslice_indicesrõ  r   s   &&&&&&&&&,     r.   rN   ÚAriaTextForCausalLM.forwardÿ  sÿ   € ð< ,0¯:ª:ñ ,
Øð,
à)ð,
ð &ð,
ð ,ð	,
ð
 (ð,
ð  ð,
ð ñ,
ˆð  ×1Ñ1ˆä8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ—‘˜m¨A¨}¸aÐ,?Õ@ÓAˆàˆØÒØ×%Ò%Ñp¨VÐp¸FÐpÈtÏ{É{×OeÑOeÐpÐioÑpˆDä%ØØØ#×3Ñ3Ø!×/Ñ/Ø×)Ñ)ô
ð 	
r1   )ró  r„  rÙ  )NNNNNNNr   )rV   rW   rX   rY   Ú_tied_weights_keysÚ_tp_planÚ_pp_planÚ
_fsdp_planr4   r   rN   rZ   r[   r\   r]   s   @@r.   rñ  rñ  ï  sc   ù‡ € à*Ð,GÐHÐØÐ2Ð3€HØ˜_Ð-°¨zÐ:Ð;€HØÐ/Ð0€J÷ó ð ÷6
ñ 6
ó ÷6
ð 6
r1   rñ  zP
    Base class for Aria causal language model (or autoregressive) outputs.
    ©Úcustom_introc                   óH   a € ] tR tRt o RtRtRtRtRtRt	Rt
V 3R ltRtV tR# )ÚAriaCausalLMOutputWithPasti9  a  
loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `labels` is provided):
    Language modeling loss (for next-token prediction).
logits (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.vocab_size)`):
    Prediction scores of the language modeling head (scores for each vocabulary token before SoftMax).
past_key_values (`Cache`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`):
    It is a [`~cache_utils.Cache`] instance. For more details, see our [kv cache guide](https://huggingface.co/docs/transformers/en/kv_cache).

    Contains pre-computed hidden-states (key and values in the self-attention blocks) that can be used (see
    `past_key_values` input) to speed up sequential decoding.
image_hidden_states (`torch.FloatTensor`, *optional*):
    A `torch.FloatTensor` of size `(batch_size, num_images, sequence_length, hidden_size)`.
    image_hidden_states of the model produced by the vision encoder and after projecting the last hidden state.
Nc                ó:  <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[R,          ;R&   S[S[ P                  ,          R,          ;R&   S[S[ P                  ,          R,          ;R&   S[ P                  R,          ;R&   # )r(   Nr   rõ  rb  r@   r…  Úimage_hidden_states)r6   rç  r   rQ   )r,   r-   s   "€r.   r/   Ú'AriaCausalLMOutputWithPast.__annotate__9  s˜   ø‡ ‚ ñ, ×
Ñ
˜dÕ
"Ñ)ñ- ñ. ×Ñ Õ$Ñ+ñ/ ñ0 ˜T•\Ñ(ñ1 ñ2 ™×*Ñ*Õ+¨dÕ2Ñ9ñ3 ñ4 ‘e×'Ñ'Õ(¨4Õ/Ñ6ñ5 ñ6 ×*Ñ*¨TÕ1Ñ8ò7 r1   r  )rV   rW   rX   rY   rq   r   rõ  rb  r@   r…  r  r�  rZ   r[   ©r-   s   @r.   r  r  9  s2   ø‡ € ñð &*€DØ'+€FØ$(€OØ59€MØ26€JØ48Ð÷7 ƒ r1   r  zI
    Base class for Aria outputs, with hidden states and attentions.
    c                   ó4   a € ] tR tRt o RtRtV 3R ltRtV tR# )ÚAriaModelOutputWithPastiW  a¯  
past_key_values (`Cache`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`):
    It is a [`~cache_utils.Cache`] instance. For more details, see our [kv cache guide](https://huggingface.co/docs/transformers/en/kv_cache).

    Contains pre-computed hidden-states (key and values in the self-attention blocks) that can be used (see
    `past_key_values` input) to speed up sequential decoding.
image_hidden_states (`torch.FloatTensor`, *optional*):
    A `torch.FloatTensor` of size `(batch_size, num_images, sequence_length, hidden_size)`.
    image_hidden_states of the model produced by the vision encoder and after projecting the last hidden state.
Nc                óH   <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   # )r(   Nr  )r6   rç  )r,   r-   s   "€r.   r/   Ú$AriaModelOutputWithPast.__annotate__W  s   ø‡ ‚ ñ$ ×*Ñ*¨TÕ1Ñ8ò% r1   r  )	rV   rW   rX   rY   rq   r  r�  rZ   r[   r  s   @r.   r  r  W  s   ø‡ € ñ	ð 59Ð÷% ƒ r1   r  zt
    The Aria model which consists of a vision backbone and a language model, without a language modeling head.
    c                   óÂ   a a€ ] tR tRt oV3R lV 3R llt]]]! RR7      RV3R lR ll4       4       4       tV3R lR	 lt	]]RV3R
 lR ll4       4       t
R tRtVtV ;t# )Ú	AriaModelil  c                ó    <€ V ^8„  d   QhRS[ /# r–   r—   )r,   r-   s   "€r.   r/   ÚAriaModel.__annotate__r  s   ø€ ÷ ñ ™zñ r1   c                óú   <€ \         SV `  V4       \        P                  ! VP                  4      V n        \        V4      V n        \        P                  ! VP                  4      V n	        V P                  4        R # rm   )r3   r4   r!   Úfrom_configrz   Úvision_towerr”   Úmulti_modal_projectorr�   Úlanguage_modelrâ  r¢   s   &&€r.   r4   ÚAriaModel.__init__r  sY   ø€ Ü‰Ñ˜Ô Ü%×1Ò1°&×2FÑ2FÓGˆÔÜ%2°6Ó%:ˆÔ"Ü'×3Ò3°F×4FÑ4FÓGˆÔØ�‰Ör1   zWObtains image last hidden states from the vision tower and apply multimodal projection.r
  c                óÂ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[S[,          ,          RS[R,          RS[S[,          RS[S[,          /# )r(   Úpixel_valuesÚ
pixel_maskNÚvision_feature_layerÚoutput_hidden_statesrE  r*   )	r6   rç  r8  Úlistr}  r   r   rQ   r   )r,   r-   s   "€r.   r/   r  ~  sp   ø€ ÷ ñ á×'Ñ'ðñ ×%Ñ%¨Õ,ðñ "¡D©¥I�oð	ñ
 # T�kðñ Ñ+Õ,ðñ 
Ñ+Õ	+ñr1   c           	     ó  € V P                  V4      pV P                  ! V3R VRRRR/VB pRpVe(   VP                  ^4      p	\        P                  ! V	4      pVP
                  V,          p
V P                  W¨R7      Vn        V# )Úpatch_attention_maskr$  TÚreturn_dictNrŠ   )Ú_create_patch_attention_maskr  r  r6   Úlogical_notr@   r  Úpooler_output)r:   r!  r"  r#  r$  rE  r'  Úimage_outputsÚimage_attn_maskÚflattened_maskÚselected_image_features   &&&&&,     r.   Úget_image_featuresÚAriaModel.get_image_featuresy  sª   € ð  $×@Ñ@ÀÓLÐØ×)Ò)Øñ
à!5ð
ð "&ð
ð ð	
ð
 ñ
ˆð ˆØÒ+Ø1×9Ñ9¸!Ó<ˆNÜ#×/Ò/°Ó?ˆOà!.×!<Ñ!<Ð=QÕ!RÐØ&*×&@Ñ&@ÐAWÐ&@Ó&sˆÔ#àÐr1   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )r(   rå  ræ  Úimage_features)r6   r|  rç  )r,   r-   s   "€r.   r/   r  ˜  s7   ø€ ÷ "ñ "Ù×)Ñ)ð"Ù:?×:KÑ:Kð"Ù]b×]nÑ]nñ"r1   c           
     óX  € Vfo   W P                  4       ! \        P                  ! RV P                  P                  \        P
                  VP                  R7      4      8H  pVP                  R4      pMWP                  P                  8H  pVP                  4       pVP                  ^ ,          VP                  ^,          ,          pVP                  R4      P                  VP                  4      p\        WRP                  R,          ,          VP                  4       8H  RV RV 24       V# )z×
Obtains multimodal placeholder mask from `input_ids` or `inputs_embeds`, and checks that the placeholder token count is
equal to the length of multimodal features. If the lengths are different, an error is raised.
rÈ   z6Image features and image tokens do not match, tokens: z, features: r  rE   )Úget_input_embeddingsr6   Úfullru   Úimage_token_idrÍ   rÉ   Úallr  rR   r©   rG   r   Únumel)r:   rå  ræ  r3  Úspecial_image_maskÚn_image_tokensÚn_image_featuress   &&&&   r.   Úget_placeholder_maskÚAriaModel.get_placeholder_mask˜  s  € ð ÒØ!.×2KÑ2KÔ2MÜ—
’
˜2˜tŸ{™{×9Ñ9ÄÇÁÐTa×ThÑThÔió3ñ "Ðð "4×!7Ñ!7¸Ó!;Ñà!*¯k©k×.HÑ.HÑ!HÐà+×/Ñ/Ó1ˆØ)×/Ñ/°Õ2°^×5IÑ5IÈ!Õ5LÕLÐØ/×9Ñ9¸"Ó=×@Ñ@À×AUÑAUÓVÐÜØ×0Ñ0°Õ4Õ4¸×8LÑ8LÓ8NÑNØDÀ^ÐDTÐT`ÐaqÐ`rÐsô	
ð "Ð!r1   c                ó^  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          R	S[R,          R
S[S[,          RS[S[	,          /
# )r(   rå  Nr!  r"  rC  rz  rb  ræ  r{  rE  r*   )
r6   r|  rç  rB   r   r}  r   r   rQ   r  )r,   r-   s   "€r.   r/   r  ²  sÃ   ø€ ÷ ,
ñ ,
á×#Ñ# dÕ*ð,
ñ ×'Ñ'¨$Õ.ð,
ñ ×$Ñ$ tÕ+ð	,
ñ
 Ÿ™ tÕ+ð,
ñ ×&Ñ&¨Õ-ð,
ñ  �ð,
ñ ×(Ñ(¨4Õ/ð,
ñ ˜$•;ð,
ñ Ñ-Õ.ð,
ñ 
Ñ(Õ	(ñ,
r1   c	                ó:  € Vf   V P                  4       ! V4      pVe–   VP                  ^,          ^8w  d~   V P                  VVV P                  P                  RR7      P
                  p
V
P                  VP                  VP                  4      p
V P                  WV
R7      pVP                  Wº4      pV P                  ! R
RVRVRVRVRV/V	B p\        VP                  V'       d   VP                  MR VP                  VP                   Ve   X
R	7      # R R	7      # )NT)r!  r"  r#  r(  )ræ  r3  rC  rz  rb  ræ  r{  )ré  rb  r@   r…  r  r  )r5  rR   r0  ru   r#  r+  rG   rÉ   rF   r=  Úmasked_scatterr  r  ré  rb  r@   r…  )r:   rå  r!  r"  rC  rz  rb  ræ  r{  rE  r3  r:  r  s   &&&&&&&&&,   r.   rN   ÚAriaModel.forward°  sR  € ð Ò Ø ×5Ñ5Ô7¸	ÓBˆMð Ò#¨×(;Ñ(;¸AÕ(>À!Ô(CØ!×4Ñ4Ø)Ø%Ø%)§[¡[×%EÑ%EØ ð	 5ó ÷
 ‰mð ð ,×.Ñ.¨}×/CÑ/CÀ]×EXÑEXÓYˆNØ!%×!:Ñ!:ØÀ~ð ";ó "Ðð *×8Ñ8Ð9KÓ\ˆMà×%Ò%ñ 
Ø)ð
à%ð
ð ,ð
ð (ð	
ð
  ð
ð ñ
ˆô 'Ø%×7Ñ7ß7@˜G×3Ò3ÀdØ!×/Ñ/Ø×)Ñ)Ø2>Ò2J ô
ð 	
ð
 QUô
ð 	
r1   c                ó”  € Vf   R # VP                  ^V P                  P                  P                  V P                  P                  P                  R7      pVP                  ^V P                  P                  P                  V P                  P                  P                  R7      pVP	                  RR7      ^ 8„  P                  4       # )N)Ú	dimensionr­   ÚsteprÊ   )rE   éþÿÿÿ)Úunfoldr  ru   Ú
patch_sizer  r}  )r:   r"  Úpatches_subgrids   && r.   r)  Ú&AriaModel._create_patch_attention_maskà  sµ   € ØÒÙà$×+Ñ+ØØ×"Ñ"×)Ñ)×4Ñ4Ø×"Ñ"×)Ñ)×4Ñ4ð ,ó 
ˆð
 *×0Ñ0ØØ×"Ñ"×)Ñ)×4Ñ4Ø×"Ñ"×)Ñ)×4Ñ4ð 1ó 
ˆð
  ×#Ñ#¨Ð#Ó1°AÑ5×;Ñ;Ó=Ð=r1   )r  r  r  )NrE   N)NNNNNNNN)rV   rW   rX   rY   r4   r   r   r   r0  r=  rN   r)  rZ   r[   r\   r]   s   @@r.   r  r  l  sv   ù‡ € ÷ó ð  ØÙØnô÷ñ óó ó  ð
÷4"ð "ð0 Ø÷,
ñ ,
ó ó ð,
÷\>ò >r1   r  zË
    Aria model for conditional generation tasks.

    This model combines a vision tower, a multi-modal projector, and a language model
    to perform tasks that involve both image and text inputs.
    c                   ó¢   a a€ ] tR tRt oRR/tV3R lV 3R lltV3R lR lt]RV3R lR	 ll4       t]	]RV3R
 lR ll4       4       t
RtVtV ;t# )ÚAriaForConditionalGenerationiñ  rò  z(model.language_model.embed_tokens.weightc                ó    <€ V ^8„  d   QhRS[ /# r–   r—   )r,   r-   s   "€r.   r/   Ú)AriaForConditionalGeneration.__annotate__ü  s   ø€ ÷ ñ ™zñ r1   c                óò   <€ \         SV `  V4       \        V4      V n        \        P
                  ! VP                  P                  VP                  P                  R R7      V n	        V P                  4        R# r  )r3   r4   r  r„  r   rd   r�   r;   rÙ  ró  râ  r¢   s   &&€r.   r4   Ú%AriaForConditionalGeneration.__init__ü  sS   ø€ Ü‰Ñ˜Ô Ü˜vÓ&ˆŒ
Ü—y’y ×!3Ñ!3×!?Ñ!?À×ASÑAS×A^ÑA^ÐejÔkˆŒØ�‰Ör1   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rÿ   )r   rF  )r,   r-   s   "€r.   r/   rN    s   ø€ ÷ ñ ¡r§y¡yñ r1   c                ó   € V P                   # rm   )ró  rS   s   &r.   Úget_output_embeddingsÚ2AriaForConditionalGeneration.get_output_embeddings  s   € Ø�|‰|Ðr1   c                ó®   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[S[,          ,          RS[S[,          RS[S[,          /# )r(   r!  r"  Nr#  rE  r*   )r6   rç  r8  r%  r   r   rQ   r   )r,   r-   s   "€r.   r/   rN    sb   ø€ ÷ 
ñ 
á×'Ñ'ð
ñ ×%Ñ%¨Õ,ð
ñ "¡D©¥I�oð	
ñ
 Ñ+Õ,ð
ñ 
Ñ+Õ	+ñ
r1   c           	     óF   € V P                   P                  ! RR VRVRV/VB # )r!  r"  r#  r  )r„  r0  )r:   r!  r"  r#  rE  s   &&&&,r.   r0  Ú/AriaForConditionalGeneration.get_image_features  s?   € ð �z‰z×,Ò,ñ 
Ø%ð
à!ð
ð "6ð
ð ñ	
ð 	
r1   c                ó°  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          R	S[ P                  R,          R
S[R,          RS[S[ P                  ,          RS[S[,          RS[	S[
,          /# )r(   rå  Nr!  r"  rC  rz  rb  ræ  rü  r{  rý  rE  r*   )r6   r|  rç  rB   r   r}  r8  r   r   rQ   r  )r,   r-   s   "€r.   r/   rN    sù   ø€ ÷ h
ñ h
á×#Ñ# dÕ*ðh
ñ ×'Ñ'¨$Õ.ðh
ñ ×$Ñ$ tÕ+ð	h
ñ
 Ÿ™ tÕ+ðh
ñ ×&Ñ&¨Õ-ðh
ñ  �ðh
ñ ×(Ñ(¨4Õ/ðh
ñ × Ñ  4Õ'ðh
ñ ˜$•;ðh
ñ ™eŸl™lÕ*ðh
ñ Ñ+Õ,ðh
ñ 
Ñ+Õ	+ñh
r1   c                ó¬  € V P                   ! RRVRVRVRVRVRVRVRV	/VB pV^ ,          p\        V
\        4      '       d   \        V
) R	4      MT
pV P	                  VR
VR
3,          4      pR	pVe7   V P
                  ! RRVRVRV P                  P                  P                  /VB p\        VVVP                  VP                  VP                  R7      # )aë	  
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,
    config.vocab_size]` or `model.image_token_id` (where `model` is your instance of `AriaForConditionalGeneration`).
    Tokens with indices set to `model.image_token_id` are ignored (masked), the loss is only
    computed for the tokens with labels in `[0, ..., config.vocab_size]`.

Example:

```python
>>> import httpx
>>> from io import BytesIO
>>> import torch
>>> from PIL import Image
>>> from io import BytesIO

>>> from transformers import AutoProcessor, AutoModel
>>> from transformers.image_utils import load_image

>>> # Note that passing the image urls (instead of the actual pil images) to the processor is also possible
>>> image1 = load_image("https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg")
>>> image2 = load_image("https://cdn.britannica.com/59/94459-050-DBA42467/Skyline-Chicago.jpg")
>>> image3 = load_image("https://cdn.britannica.com/68/170868-050-8DDE8263/Golden-Gate-Bridge-San-Francisco.jpg")

>>> processor = AutoProcessor.from_pretrained("Rhymes-AI/Aria")
>>> model = AutoModel.from_pretrained("Rhymes-AI/Aria", dtype=torch.bfloat16, device_map="auto")

>>> # Create inputs
>>> messages = [
...     {
...         "role": "user",
...         "content": [
...             {"type": "image"},
...             {"type": "text", "text": "In this image, we can see the city of New York, and more specifically the Statue of Liberty."},
...             {"type": "image"},
...             {"type": "text", "text": "What can we see in this image?"},
...         ]
...     },
...     {
...         "role": "user",
...         "content": [
...             {"type": "image"},
...             {"type": "text", "text": "In which city is that bridge located?"},
...         ]
...     }
... ]

>>> prompts = [processor.apply_chat_template([message], add_generation_prompt=True) for message in messages]
>>> images = [[image1, image2], [image3]]
>>> inputs = processor(text=prompts, images=images, padding=True, return_tensors="pt").to(model.device)

>>> # Generate
>>> generated_ids = model.generate(**inputs, max_new_tokens=256)
>>> generated_texts = processor.batch_decode(generated_ids, skip_special_tokens=True)

>>> print(generated_texts[0])
Assistant: There are buildings, trees, lights, and water visible in this image.

>>> print(generated_texts[1])
Assistant: The bridge is in San Francisco.
```rå  r!  r"  rC  rz  rb  ræ  r{  Nr:  rõ  rü  rÙ  rÿ  r  )r„  r‰  r8  r  ró  r  ru   r�   rÙ  r  rb  r@   r…  )r:   rå  r!  r"  rC  rz  rb  ræ  rü  r{  rý  rE  r  r@   r  rõ  r   s   &&&&&&&&&&&,     r.   rN   Ú$AriaForConditionalGeneration.forward  s'  € ðZ —*’*ñ 

Øð

à%ð

ð "ð

ð *ð	

ð
 &ð

ð ,ð

ð (ð

ð  ð

ð ñ

ˆð   �
ˆä8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ—‘˜m¨A¨}¸aÐ,?Õ@ÓAˆàˆØÒØ×%Ò%ñ ØðØ&,ðØ9=¿¹×9PÑ9P×9[Ñ9[ðØ_eñˆDô *ØØØ#×3Ñ3Ø!×/Ñ/Ø×)Ñ)ô
ð 	
r1   )ró  r„  )NrE   )
NNNNNNNNNr   )rV   rW   rX   rY   r  r4   rS  r   r0  r   rN   rZ   r[   r\   r]   s   @@r.   rL  rL  ñ  sj   ù‡ € ð +Ð,VÐWÐ÷ó ÷ð ð ÷
ñ 
ó ð
ð Ø÷h
ñ h
ó ó ÷h
ð h
r1   rL  )rò   )rd  )rL  rŸ  rƒ  rÒ  r  rñ  )QÚcollections.abcr   Údataclassesr   r6   r   Ú r   rŠ  Úactivationsr   Úcache_utilsr   r	   Ú
generationr
   Úintegrationsr   r   Úmasking_utilsr   Úmodeling_flash_attention_utilsr   Úmodeling_layersr   Úmodeling_outputsr   r   r   r   Úmodeling_rope_utilsr   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   r   Úutils.deprecationr   Úutils.genericr   r   Úutils.output_capturingr    Úautor!   Úconfiguration_ariar"   r#   rF  r&   r_   rs   r”   r¶   rÝ   rß   ré   r  r,  r5  r@  rP  rR  rn  rƒ  rŸ  r©  rÒ  rñ  r  r  r  rL  Ú__all__r  r1   r.   Ú<module>rp     s¢  ðõ* %Ý !ã Ý å &Ý !ß .Ý )ß LÝ /Ý BÝ 9÷ó ÷ Lß FÝ &ß aÓ aÝ 0ß GÝ 5Ý ß :ñ ˜YÓ'ôJ�b—i‘ió Jó (ðJô(�r—y‘yô ô24˜Ÿ™ô 4ôn>�B—I‘Iô >ôB˜2Ÿ9™9ô ò4ô>)
˜RŸY™Yô )
ôX)�"—)‘)ô )ôX4�r—y‘yô 4ò"(ñ Ð-Ó.óó /ðõ2	U÷%ñ2 Ð)Ó*ô@)˜Ÿ	™	ó @)ó +ð@)ôF3Ð5ô 3ðl ôU˜oó Uó ðUð. ôP˜/ó Pó ðPô.6<˜bŸi™iô 6<ðr ôF
Ð+ó F
ó ðF
ðR ôF
Ð1°?ó F
ó ðF
ñR ðôð
 ô9 ó 9ó óð9ñ0 ðôð
 ô9Ð5ó 9ó óð9ñ ðôô
}>Ð#ó }>óð
}>ñ@ ðôôE
Ð#6¸ó E
óðE
òP‚r1   