+
    œ°³j?r  ã                   ó¸  € ^ RI t ^ 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 ^RIHt ^R	IHt ^R
IHt ^RIHtHtHt ^RIHtHt ^RIHt ^RIHtHtH t H!t!H"t" ^RI#H$t$ ^RI%H&t& ^RI'H(t( ^RI)H*t*H+t+ ] ] ! R R]4      4       4       t,] ! RR7      ] ! R R]4      4       4       t-] ! RR7      ] ! R R]4      4       4       t.]! R4       ! R R]P^                  4      4       t0 ! R R ]P^                  4      t1 ! R! R"]P^                  4      t2R<R# R$ llt3 ! R% R&]P^                  4      t4 ! R' R(]P^                  4      t5 ! R) R*]4      t6 ! R+ R,]P^                  4      t7 ! R- R.]P^                  4      t8 ! R/ R0]Pr                  4      t: ! R1 R2]4      t;R3 R4 lt< ! R5 R6];4      t=] ! R7R7       ! R8 R9];4      4       t>]  ! R: R;];]4      4       t?. R=Ot@R# )>é    N)ÚCallable)Ú	dataclass)Únn)Úinitialization)ÚACT2FN)ÚCache)ÚGenerationMixin)Úuse_kernel_forward_from_hub)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚBaseModelOutputWithPastÚBaseModelOutputWithPooling)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚModelOutputÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚtorch_compilable_check)Úmerge_with_config_defaults)Úcapture_outputs)Ú	AutoModel)ÚOvis2ConfigÚOvis2VisionConfigc                   ó4   a € ] tR t^,t o RtRtV 3R ltRtV tR# )Ú*BaseModelOutputWithVisualIndicatorFeatureszÖ
visual_indicator_features (`torch.FloatTensor` of shape `(batch_size, visual_indicator_size)`):
    Visual indicator features extracted from the model, which can be used for auxiliary tasks or further processing.
Nc                óH   <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   # )é   NÚvisual_indicator_features©ÚtorchÚFloatTensor)ÚformatÚ__classdict__s   "€Úi/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/ovis2/modeling_ovis2.pyÚ__annotate__Ú7BaseModelOutputWithVisualIndicatorFeatures.__annotate__,   s   ø‡ ‚ ñ  %×0Ñ0°4Õ7Ñ>ò ó    © )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r    Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r%   s   @r&   r   r   ,   s   ø‡ € ñð
 ;?Ð÷ ƒ r)   r   zJ
    Base class for Llava outputs, with hidden states and attentions.
    ©Úcustom_introc                   ó4   a € ] tR t^7t o RtRtV 3R ltRtV tR# )ÚOvis2ModelOutputWithPasta¯  
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   NÚimage_hidden_statesr!   )r$   r%   s   "€r&   r'   Ú%Ovis2ModelOutputWithPast.__annotate__7   s   ø‡ ‚ ñ$ ×*Ñ*¨TÕ1Ñ8ò% r)   r*   )	r+   r,   r-   r.   r/   r9   r0   r1   r2   r3   s   @r&   r7   r7   7   s   ø‡ € ñ	ð 59Ð÷% ƒ r)   r7   zQ
    Base class for Ovis2 causal language model (or autoregressive) outputs.
    c                   óH   a € ] tR t^Lt 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# )ÚOvis2CausalLMOutputWithPasta  
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_patches, 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   NÚlossÚlogitsÚpast_key_valuesÚhidden_statesÚ
attentionsr9   )r"   r#   r   Útuple)r$   r%   s   "€r&   r'   Ú(Ovis2CausalLMOutputWithPast.__annotate__L   s˜   ø‡ ‚ ñ, ×
Ñ
˜dÕ
"Ñ)ñ- ñ. ×Ñ Õ$Ñ+ñ/ ñ0 ˜T•\Ñ(ñ1 ñ2 ™×*Ñ*Õ+¨dÕ2Ñ9ñ3 ñ4 ‘e×'Ñ'Õ(¨4Õ/Ñ6ñ5 ñ6 ×*Ñ*¨TÕ1Ñ8ò7 r)   r*   )r+   r,   r-   r.   r/   r>   r?   r@   rA   rB   r9   r0   r1   r2   r3   s   @r&   r<   r<   L   s2   ø‡ € ñð &*€DØ'+€FØ$(€OØ59€MØ26€JØ48Ð÷7 ƒ r)   r<   ÚRMSNormc                   óZ   a a€ ] tR t^jt 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	# )ÚOvis2RMSNormc                ó$   <€ V ^8„  d   QhRS[ RR/# )r   ÚepsÚreturnN)Úfloat)r$   r%   s   "€r&   r'   ÚOvis2RMSNorm.__annotate__l   s   ø€ ÷ $ñ $©ð $¸$ñ $r)   c                óŽ   <€ \         SV `  4        \        P                  ! \        P
                  ! V4      4      V n        W n        R# )z+
Ovis2RMSNorm is equivalent to T5LayerNorm
N)ÚsuperÚ__init__r   Ú	Parameterr"   ÚonesÚweightÚvariance_epsilon)ÚselfÚhidden_sizerI   Ú	__class__s   &&&€r&   rO   ÚOvis2RMSNorm.__init__l   s/   ø€ ô 	‰ÑÔÜ—l’l¤5§:¢:¨kÓ#:Ó;ˆŒØ #Ör)   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   rA   rJ   ©r"   ÚTensor)r$   r%   s   "€r&   r'   rL   t   s#   ø€ ÷ ;ñ ;¡U§\¡\ð ;±e·l±lñ ;r)   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Útor"   Úfloat32ÚpowÚmeanÚrsqrtrS   rR   )rT   rA   Úinput_dtypeÚvariances   &&  r&   ÚforwardÚOvis2RMSNorm.forwardt   sw   € Ø#×)Ñ)ˆØ%×(Ñ(¬¯©Ó7ˆØ ×$Ñ$ QÓ'×,Ñ,¨R¸Ð,Ó>ˆØ%¬¯ª°H×?TÑ?TÕ4TÓ(UÕUˆØ�{‰{˜]×-Ñ-¨kÓ:Õ:Ð:r)   c                ó^   € \        V P                  P                  4       R V P                   2# )z, eps=)rC   rR   ÚshaperS   ©rT   s   &r&   Ú
extra_reprÚOvis2RMSNorm.extra_repr{   s*   € Ü˜Ÿ™×)Ñ)Ó*Ð+¨6°$×2GÑ2GÐ1HÐIÐIr)   )rS   rR   )g�íµ ÷Æ°>)
r+   r,   r-   r.   rO   rg   rl   r1   r2   Ú__classcell__©rV   r%   s   @@r&   rG   rG   j   s%   ù‡ € ÷$õ $÷;ð ;÷Jò Jr)   rG   c                   ó8   a a€ ] tR t^t oV 3R ltR tRtVtV ;t# )ÚOvis2VisionMLPc                ó  <€ \         SV `  4        Wn        VP                  V n        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# ©©ÚbiasN©rN   rO   ÚconfigrU   Úintermediate_sizer   ÚLinearÚmlp_biasÚ	gate_projÚup_projÚ	down_projr   Ú
hidden_actÚact_fn©rT   rw   rV   s   &&€r&   rO   ÚOvis2VisionMLP.__init__€   ó¶   ø€ Ü‰ÑÔØŒØ!×-Ñ-ˆÔØ!'×!9Ñ!9ˆÔÜŸš 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×.Ñ.Õ/ˆŽr)   c                ó�   € V P                  V P                  V P                  V4      4      V P                  V4      ,          4      pV# ©N©r}   r   r{   r|   ©rT   Úxr}   s   && r&   rg   ÚOvis2VisionMLP.forwardŠ   ó6   € Ø—N‘N 4§;¡;¨t¯~©~¸aÓ/@Ó#AÀDÇLÁLÐQRÃOÕ#SÓTˆ	ØÐr)   ©r   rw   r}   r{   rU   rx   r|   ©	r+   r,   r-   r.   rO   rg   r1   r2   rn   ro   s   @@r&   rq   rq      ó   ù‡ € õ0÷ò r)   rq   c                   óP   a a€ ] tR t^�t oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚOvis2VisionEmbeddingsc                ó    <€ V ^8„  d   QhRS[ /# ©r   rw   ©r   )r$   r%   s   "€r&   r'   Ú"Ovis2VisionEmbeddings.__annotate__�   s   ø€ ÷ Nñ NÑ0ñ Nr)   c                óØ  <€ \         SV `  4        Wn        VP                  V n        VP
                  V n        VP                  V n        \        P                  ! VP                  V P                  V P                  V P                  R R7      V n
        V P
                  V P                  ,          ^,          V n        V P                  V n        \        P                  ! V P                  V P                  4      V n        \        P                  ! \         P"                  ! V P                  4      P%                  R4      RR7      V n        \)        VP                  VP*                  4      V n        R# )Úvalid)Úin_channelsÚout_channelsÚkernel_sizeÚstrideÚpaddingF)Ú
persistentN©é   r^   )rN   rO   rw   rU   Ú	embed_dimÚ
image_sizeÚ
patch_sizer   ÚConv2dÚnum_channelsÚpatch_embeddingÚnum_patchesÚnum_positionsÚ	EmbeddingÚposition_embeddingÚBufferr"   ÚarangeÚexpandÚposition_idsrG   Úrms_norm_epsÚrms_normr€   s   &&€r&   rO   ÚOvis2VisionEmbeddings.__init__�   sû   ø€ Ü‰ÑÔØŒØ×+Ñ+ˆŒØ ×+Ñ+ˆŒØ ×+Ñ+ˆŒä!ŸyšyØ×+Ñ+ØŸ™ØŸ™Ø—?‘?Øô 
ˆÔð !ŸO™O¨t¯©Õ>À1ÕDˆÔØ!×-Ñ-ˆÔÜ"$§,¢,¨t×/AÑ/AÀ4Ç>Á>Ó"RˆÔÜŸIšI¤e§l¢l°4×3EÑ3EÓ&F×&MÑ&MÈgÓ&VÐchÔiˆÔÜ$ V×%7Ñ%7¸×9LÑ9LÓMˆŽr)   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   Úpixel_valuesrJ   )r"   r#   rZ   )r$   r%   s   "€r&   r'   r’   ¥   s%   ø€ ÷ ñ ¡E×$5Ñ$5ð ¹%¿,¹,ñ r)   c                ó.  € V P                   P                  P                  pV P                  VP                  VR 7      4      pVP	                  ^4      P                  ^^4      pV P                  V4      pW@P                  V P                  4      ,           pV# )©r_   )	r¢   rR   r_   r`   ÚflattenÚ	transposer¬   r¦   rª   )rT   r¯   Útarget_dtypeÚpatch_embedsÚ
embeddingss   &&   r&   rg   ÚOvis2VisionEmbeddings.forward¥   s~   € Ø×+Ñ+×2Ñ2×8Ñ8ˆØ×+Ñ+¨L¯O©OÀ,¨OÓ,OÓPˆØ!×)Ñ)¨!Ó,×6Ñ6°q¸!Ó<ˆ
Ø—]‘] :Ó.ˆ
à×"9Ñ"9¸$×:KÑ:KÓ"LÕLˆ
àÐr)   )
rw   r�   rž   r£   r¤   r¢   rŸ   r¦   rª   r¬   r‹   ro   s   @@r&   rŽ   rŽ   �   s    ù‡ € ÷Nó N÷*÷ ð r)   rŽ   c                óÞ   € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R\        /# )	r   ÚmoduleÚqueryÚkeyÚvalueÚattention_maskNÚscalingÚdropout)r   ÚModuler"   rZ   rK   )r$   s   "r&   r'   r'   °   sg   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô ð%ô ñ%r)   c                 óÎ  € \         P                  ! WP                  RR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œ   )Údimr_   )ÚpÚtrainingr^   éþÿÿÿ)r"   Úmatmulr³   r   Ú
functionalÚsoftmaxra   r`   r_   r¿   rÄ   Ú
contiguous)
r¹   rº   r»   r¼   r½   r¾   r¿   ÚkwargsÚattn_weightsÚattn_outputs
   &&&&&&&,  r&   Úeager_attention_forwardrÍ   °   s°   € ô —<’< §}¡}°R¸Ó'<Ó=ÀÕG€LØÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2ÄUÇ]Á]Ð(ÓS×VÑVÐW\×WbÑWbÓc€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€Lä—,’,˜|Ó3€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$r)   c                   óL   a a€ ] tR t^Çt oRtV 3R ltRV3R lR lltRtVtV ;t	# )ÚOvis2VisionAttentionz=Multi-headed attention from 'Attention Is All You Need' paperc                óœ  <€ \         SV `  4        Wn        VP                  V n        VP
                  V n        V P                  V P                  ,          V n        V P                  V P                  ,          V P                  8w  d'   \        R V P                   RV P                   R24      hV P                  R,          V n	        VP                  V n        R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        \        P                  ! V P                  V P                  VP                  R7      V n        R# )z;embed_dim must be divisible by num_heads (got `embed_dim`: z and `num_heads`: z).Frt   Ng      à¿)rN   rO   rw   rU   r�   Únum_attention_headsÚ	num_headsÚhead_dimÚ
ValueErrorÚscaleÚattention_dropoutr¿   Ú	is_causalr   ry   Úqkv_biasÚk_projÚv_projÚq_projÚout_projr€   s   &&€r&   rO   ÚOvis2VisionAttention.__init__Ê   s0  ø€ Ü‰ÑÔØŒØ×+Ñ+ˆŒØ×3Ñ3ˆŒØŸ™¨$¯.©.Õ8ˆŒØ�=‰=˜4Ÿ>™>Õ)¨T¯^©^Ô;ÜØMÈdÏnÉnÐM]ð ^Ø—N‘NÐ# 2ð'óð ð —]‘] DÕ(ˆŒ
Ø×/Ñ/ˆŒØˆŒÜ—i’i §¡°·±ÀVÇ_Á_ÔUˆŒÜ—i’i §¡°·±ÀVÇ_Á_ÔUˆŒÜ—i’i §¡°·±ÀVÇ_Á_ÔUˆŒÜŸ	š	 $§.¡.°$·.±.ÀvÇÁÔWˆŽr)   c          	      ó®   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[ P                  S[ P                  R,          3,          /# )r   rA   r½   NrJ   )r"   rZ   rC   )r$   r%   s   "€r&   r'   Ú!Ovis2VisionAttention.__annotate__Ý   sM   ø€ ÷ !)ñ !)á—|‘|ð!)ñ Ÿ™ tÕ+ð!)ñ
 
‰u�|‰|™UŸ\™\¨DÕ0Ð0Õ	1ñ!)r)   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\        P                  ! V P                  P                  \        4      p	T	! T TTTTV P                  V P                  V P                  '       g   RMV P                  R7      w  r«V
P                   ! . VORN5!  P#                  4       p
V P%                  V
4      p
W«3# )z#Input shape: Batch x Time x ChannelNç        )r×   r¾   r¿   r^   )rj   rÓ   rÛ   Úviewr³   rÙ   rÚ   r   Úget_interfacerw   Ú_attn_implementationrÍ   r×   rÕ   rÄ   r¿   ÚreshaperÉ   rÜ   )rT   rA   r½   rÊ   Úinput_shapeÚhidden_shapeÚqueriesÚkeysÚvaluesÚattention_interfacerÌ   rË   s   &&&,        r&   rg   ÚOvis2VisionAttention.forwardÝ   s8  € ð $×)Ñ)¨#¨2Ð.ˆà8˜Ð8 bÐ8¨$¯-©-Ñ8ˆØ—+‘+˜mÓ,×1Ñ1°,Ó?×IÑIÈ!ÈQÓOˆØ�{‰{˜=Ó)×.Ñ.¨|Ó<×FÑFÀqÈ!ÓLˆØ—‘˜]Ó+×0Ñ0°Ó>×HÑHÈÈAÓNˆä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØØ—n‘nØ—J‘JØ#Ÿ}Ÿ}˜}‘C°$·,±,ô	%
Ñ!ˆð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—m‘m KÓ0ˆàÐ(Ð(r)   )rw   r¿   r�   rÓ   r×   rÙ   rÒ   rÜ   rÛ   rÕ   rÚ   r„   )
r+   r,   r-   r.   r/   rO   rg   r1   r2   rn   ro   s   @@r&   rÏ   rÏ   Ç   s   ù‡ € ÙGõX÷&!)÷ !)ò !)r)   rÏ   c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚOvis2MLPi  c                ó  <€ \         SV `  4        Wn        VP                  V n        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# rs   rv   r€   s   &&€r&   rO   ÚOvis2MLP.__init__  r‚   r)   c                ó�   € V P                  V P                  V P                  V4      4      V P                  V4      ,          4      pV# r„   r…   r†   s   && r&   rg   ÚOvis2MLP.forward  r‰   r)   rŠ   r‹   ro   s   @@r&   rî   rî     rŒ   r)   rî   c                   óT   a a€ ] tR tRt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚOvis2VisionEncoderLayeri  c                ó    <€ V ^8„  d   QhRS[ /# r�   r‘   )r$   r%   s   "€r&   r'   Ú$Ovis2VisionEncoderLayer.__annotate__  s   ø€ ÷ Oñ OÑ0ñ Or)   c                óø   <€ \         SV `  4        \        V4      V n        \	        V4      V n        \        VP                  VP                  4      V n	        \        VP                  VP                  4      V n
        R # r„   )rN   rO   rÏ   Ú	attentionrî   ÚffnrG   rU   r«   Ú	rms_norm1Ú	rms_norm2r€   s   &&€r&   rO   Ú Ovis2VisionEncoderLayer.__init__  sZ   ø€ Ü‰ÑÔÜ-¨fÓ5ˆŒÜ˜FÓ#ˆŒÜ% f×&8Ñ&8¸&×:MÑ:MÓNˆŒÜ% f×&8Ñ&8¸&×:MÑ:MÓNˆŽr)   c                óŒ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[ P                  /# )r   rA   r½   NrÊ   rJ   )r"   rZ   r   r   )r$   r%   s   "€r&   r'   rö     sJ   ø€ ÷ ñ á—|‘|ðñ Ÿ™ tÕ+ðñ Ñ+Õ,ð	ñ
 
�‰ñr)   c                ó¼   € V P                  V4      pV P                  ! RR VRV/VB w  rVW,           pV P                  V4      pV P                  V4      pW,           pV# )rA   r½   r*   )rú   rø   rû   rù   )rT   rA   r½   rÊ   Únorm_hidden_statesrÌ   Ú_Ú
mlp_outputs   &&&,    r&   rg   ÚOvis2VisionEncoderLayer.forward  sg   € ð "Ÿ^™^¨MÓ:ÐØŸšÑrÐ6HÐrÐYgÐrÐkqÑr‰ˆà%Õ3ˆØ!Ÿ^™^¨MÓ:ÐØ—X‘XÐ0Ó1ˆ
à%Õ2ˆØÐr)   )rø   rù   rú   rû   r„   r‹   ro   s   @@r&   rô   rô     s    ù‡ € ÷Oó O÷÷ ò r)   rô   c                   ól   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4       4       tRt	Vt
V ;t# )	ÚOvis2VisionEncoderi*  z§
Transformer encoder consisting of `config.num_hidden_layers` self attention layers. Each layer is a
[`Ovis2VisionEncoderLayer`].

Args:
    config: Ovis2VisionConfig
c                ó    <€ V ^8„  d   QhRS[ /# r�   r‘   )r$   r%   s   "€r&   r'   ÚOvis2VisionEncoder.__annotate__3  s   ø€ ÷ ,ñ ,Ñ0ñ ,r)   c                óÖ   <€ \         SV `  4        Wn        \        P                  ! \        VP                  4       Uu. uF  p\        V4      NK  	  up4      V n        R V n	        R# u upi ©FN)
rN   rO   rw   r   Ú
ModuleListÚrangeÚnum_hidden_layersrô   ÚlayersÚgradient_checkpointing)rT   rw   r   rV   s   && €r&   rO   ÚOvis2VisionEncoder.__init__3  sT   ø€ Ü‰ÑÔØŒÜ—m’mÌeÐTZ×TlÑTlÔNmÓ$nÑNmÈÔ%<¸VÖ%DÑNmÑ$nÓoˆŒØ&+ˆÖ#ùò %os   ½A&c                ó^   <€ V ^8„  d   QhRS[ P                  R,          RS[S[,          RS[/# )r   r½   NrÊ   rJ   )r"   rZ   r   r   r   )r$   r%   s   "€r&   r'   r  <  s?   ø€ ÷ 
@ñ 
@ñ Ÿ™ tÕ+ð
@ñ Ñ+Õ,ð	
@ñ
 
ñ
@r)   c                óV   € TpV P                    F  pV! WB3/ VB pK  	  \        VR 7      # )©Úlast_hidden_state)r  r   )rT   Úinputs_embedsr½   rÊ   rA   Úencoder_layers   &&&,  r&   rg   ÚOvis2VisionEncoder.forward:  s3   € ð &ˆØ!Ÿ[œ[ˆMÙ)¨-ÑRÈ6ÑRŠMñ )ô °Ô?Ð?r)   )rw   r  r  r„   )r+   r,   r-   r.   r/   rO   r   r   rg   r1   r2   rn   ro   s   @@r&   r  r  *  s>   ù‡ € ñ÷,ó ,ð Ø÷
@ñ 
@ó ó ÷
@ð 
@r)   r  c                   ó^   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       tRtVtV ;t	# )ÚOvis2VisionTransformeriI  c                ó    <€ V ^8„  d   QhRS[ /# r�   r‘   )r$   r%   s   "€r&   r'   Ú#Ovis2VisionTransformer.__annotate__J  s   ø€ ÷ ,ñ ,Ñ0ñ ,r)   c                óÈ   <€ \         SV `  4        Wn        \        V4      V n        \        V4      V n        \        VP                  VP                  4      V n
        R V n        R# r  )rN   rO   rw   rŽ   r¶   r  ÚencoderrG   rU   r«   r¬   r  r€   s   &&€r&   rO   ÚOvis2VisionTransformer.__init__J  sM   ø€ Ü‰ÑÔØŒÜ/°Ó7ˆŒÜ)¨&Ó1ˆŒÜ$ V×%7Ñ%7¸×9LÑ9LÓMˆŒØ&+ˆÖ#r)   c                óB   <€ V ^8„  d   QhRS[ P                  R,          /# )r   r½   NrY   )r$   r%   s   "€r&   r'   r  S  s#   ø€ ÷ Dñ Dñ Ÿ™ tÕ+ñDr)   c                ó¢   € V P                  V4      pV P                  ! RR VRV/VB pVP                  pV P                  V4      p\	        VR7      # )r  r½   r  r*   )r¶   r  r  r¬   r   )rT   r¯   r½   rÊ   rA   Úencoder_outputsr  s   &&&,   r&   rg   ÚOvis2VisionTransformer.forwardR  sd   € ð Ÿ™¨Ó5ˆà+/¯<ª<ñ ,
Ø'ð,
à)ð,
ð ñ,
ˆð ,×=Ñ=ÐØ ŸM™MÐ*;Ó<ÐäÐ1BÔCÐCr)   )rw   r¶   r  r  r¬   r„   )
r+   r,   r-   r.   rO   r   rg   r1   r2   rn   ro   s   @@r&   r  r  I  s1   ù‡ € ÷,ó ,ð ÷Dñ Dó ÷Dð Dr)   r  c                   ó>   a a€ ] tR tRt oV3R lV 3R lltRtVtV ;t# )ÚOvis2VisualEmbeddingTableig  c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   Úvisual_tokensrJ   rY   )r$   r%   s   "€r&   r'   Ú&Ovis2VisualEmbeddingTable.__annotate__h  s#   ø€ ÷ 8ñ 8¡U§\¡\ð 8±e·l±lñ 8r)   c                ó  <€ VP                   \        P                  \        P                  \        P                  \        P
                  \        P                  39   d   \        SV `!  V4      # \        P                  ! WP                  4      # r„   )r_   r"   Úint8Úint16Úint32Úint64ÚlongrN   rg   rÆ   rR   )rT   r$  rV   s   &&€r&   rg   Ú!Ovis2VisualEmbeddingTable.forwardh  sU   ø€ Ø×Ñ¤5§:¡:¬u¯{©{¼E¿K¹KÌÏÉÔV[×V`ÑV`Ð"aÔaÜ‘7‘? =Ó1Ð1Ü�|Š|˜M¯;©;Ó7Ð7r)   r*   )r+   r,   r-   r.   rg   r1   r2   rn   ro   s   @@r&   r"  r"  g  s   ù‡ € ÷8÷ 8ó 8r)   r"  c                   ón   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tRtV 3R ltV3R ltRtVtV ;t# )
ÚOvis2PreTrainedModelin  ÚmodelTrÏ   r@   c                ó  <€ \         SV `  V4       \        V\        4      '       db   \        P
                  ! VP                  \        P                  ! VP                  P                  R,          4      P                  R4      4       R# R# )rœ   Nr^   r›   )rN   Ú_init_weightsÚ
isinstancerŽ   ÚinitÚcopy_rª   r"   r¨   rj   r©   )rT   r¹   rV   s   &&€r&   r1  Ú"Ovis2PreTrainedModel._init_weights}  s^   ø€ Ü‰Ñ˜fÔ%Ü�fÔ3×4Ò4Ü�JŠJ�v×*Ñ*¬E¯LªL¸×9LÑ9L×9RÑ9RÐSUÕ9VÓ,W×,^Ñ,^Ð_fÓ,gÖhñ 5r)   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r�   ©r   )r$   r%   s   "€r&   r'   Ú!Ovis2PreTrainedModel.__annotate__n  s   ø‡ ‚ ÙÑò r)   r*   )ÚimageÚtext)r+   r,   r-   r.   Úbase_model_prefixÚinput_modalitiesÚsupports_gradient_checkpointingÚ_no_split_modulesÚ_skip_keys_device_placementÚ_supports_cache_classÚ_supports_flash_attnÚ_supports_flex_attnÚ_supports_sdpaÚ_can_compile_fullgraphÚ_supports_attention_backendr1  r0   r1   r2   rn   ro   s   @@r&   r.  r.  n  sY   ù‡ € àÐØ(ÐØ&*Ð#Ø/Ð0ÐØ#4Ð"5ÐØ ÐØÐØÐØ€Nà!ÐØ"&Ðõi÷ … r)   r.  c                óD   € V ^8„  d   QhR\         P                  R\        /# )r   r?   rÂ   )r"   rZ   Úint)r$   s   "r&   r'   r'   ƒ  s   € ÷ ñ œŸ™ð ¬Cñ r)   c                 ó  € V P                  V4      pVP                  VR R7      ^,          p\        P                  ! V \        P                  R7      P                  WR4      pWBP                  4       ,
          V,           pV# )Tr\   )Úmemory_formatg      ð?)rÈ   Úmaxr"   Ú
zeros_likeÚlegacy_contiguous_formatÚscatter_Údetach)r?   rÂ   Úy_softÚindexÚy_hardÚrets   &&    r&   Úhard_softmaxrS  ƒ  sf   € Ø�^‰^˜CÓ €Fà�J‰J�s DˆJÓ)¨!Õ,€EÜ×Ò˜f´E×4RÑ4RÔS×\Ñ\Ð]`ÐilÓm€FØ
—=‘=“?Õ
" VÕ
+€Cà€Jr)   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4       4       t
V3R ltR	tVtV ;t# )
ÚOvis2VisionModeli�  rA   rB   c                ó    <€ V ^8„  d   QhRS[ /# r�   r‘   )r$   r%   s   "€r&   r'   ÚOvis2VisionModel.__annotate__”  s   ø€ ÷ ñ Ñ0ñ r)   c                óì  <€ \         SV `  V4       Wn        \        V4      V n        VP
                  V n        VP                  V n        \        P                  ! VP                  VP                  ,          VP                  ,          V P                  V P
                  ,
          R R7      V n        \        P                  ! V P                  V P
                  ,
          4      V n        V P                  4        R# ©Frt   N)rN   rO   rw   r  ÚtransformerÚnum_visual_indicator_tokensÚ
vocab_sizer   ry   rU   Úhidden_strideÚhead_linearÚ	LayerNormÚ	head_normÚ	post_initr€   s   &&€r&   rO   ÚOvis2VisionModel.__init__”  s­   ø€ Ü‰Ñ˜Ô ØŒÜ1°&Ó9ˆÔØ+1×+MÑ+MˆÔ(Ø ×+Ñ+ˆŒÜŸ9š9Ø×Ñ ×!5Ñ!5Õ5¸×8LÑ8LÕLØ�O‰O˜d×>Ñ>Õ>Øô
ˆÔô
 Ÿš d§o¡o¸×8XÑ8XÕ&XÓYˆŒà�‰Ör)   c                ó`   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[S[,          /# ©r   r¯   rÊ   rJ   ©r"   r#   r   r   rC   r   )r$   r%   s   "€r&   r'   rW  ¥  s7   ø€ ÷ &
ñ &
Ù!×-Ñ-ð&
Ù9?Ñ@RÕ9Sð&
á	Ñ;Õ	;ñ&
r)   c           	     ó  € V P                   ! V3/ VB pV^ ,          pV P                  P                  ^8”  dú   VP                  w  rVpV P                  P                  p\	        \
        P                  ! V4      4      p	W™,          V8w  d   \        R4      hW‰V,          ,
          V,          p
\        P                  P                  V^ ^ ^ V
^ V
3R^ 4      pWš,          p	VP                  WYV,          W‰V,          W‡4      pVP                  ^ ^^^^^4      pVP                  VR
Wˆ,          V,          4      pV P                  V4      pV P                  V4      pV P                  P                  R8X  d$   \        P                  P!                  VR
RR7      pMeV P                  P                  R8X  d   \#        VR
R7      pM<V P                  P                  R8X  d"   \        P                  P%                  VR
R7      p\'        VXR	7      # )r   z.Token sequence length must be a perfect squareÚconstantÚgumbel_argmaxT)rÂ   ÚhardÚ	st_argmax©rÂ   rÈ   )r  Úpooler_outputr^   )rZ  rw   r]  rj   rG  ÚmathÚsqrtrÔ   r   rÇ   Úpadrå   Úpermuter^  r`  Útokenize_functionÚgumbel_softmaxrS  rÈ   r   )rT   r¯   rÊ   Úoutputsr  Ú
num_imagesÚseq_lenÚ
hidden_dimr]  Úsqrt_lÚpad_sizer?   Ú
prob_tokens   &&,          r&   rg   ÚOvis2VisionModel.forward£  sÎ  € ð
 ×"Ò" <Ñ:°6Ñ:ˆØ# A�JÐØ�;‰;×$Ñ$ qÔ(Ø.?×.EÑ.EÑ+ˆJ Ø ŸK™K×5Ñ5ˆMäœŸš 7Ó+Ó,ˆFØ� 'Ô)Ü Ð!QÓRÐRà%°-Õ)?Õ@ÀMÕQˆHÜ "§¡× 1Ñ 1Ð2CÀaÈÈAÈxÐYZÐ\dÐEeÐgqÐstÓ uÐØÕˆFà 1× 9Ñ 9Ø mÕ3°]ÈmÕD[Ð]jó!Ðð !2× 9Ñ 9¸!¸QÀÀ1ÀaÈÓ KÐØ 1× 9Ñ 9Ø˜B Õ =À
Õ Jó!Ðð ×!Ñ!Ð"3Ó4ˆØ—‘ Ó'ˆà�;‰;×(Ñ(¨OÔ;ÜŸ™×5Ñ5°fÀ"È4Ð5ÓP‰JØ�[‰[×*Ñ*¨kÔ9Ü% f°"Ô5‰JØ�[‰[×*Ñ*¨iÔ7ÜŸ™×.Ñ.¨v¸2Ð.Ó>ˆJä9Ø/Ø$ô
ð 	
r)   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r�   r‘   )r$   r%   s   "€r&   r'   rW  �  s   ø‡ ‚ ÙÑò r)   )rw   r^  r`  r[  rZ  r\  )r+   r,   r-   r.   rô   rÏ   Ú_can_record_outputsrO   r   r   rg   r0   r1   r2   rn   ro   s   @@r&   rU  rU  �  sH   ù‡ € ð 	Ð0ØÐ*ðÐ÷
ó ð  Ø÷&
ó ó  ð&
÷1 … r)   rU  zu
    The Ovis2 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      V3R lR l4       4       tV3R lR	 lt]]RV3R
 lR ll4       4       t	Rt
VtV ;t# )Ú
Ovis2ModeliÎ  c                ó    <€ V ^8„  d   QhRS[ /# r�   r7  )r$   r%   s   "€r&   r'   ÚOvis2Model.__annotate__Ô  s   ø€ ÷ 	ñ 	™{ñ 	r)   c                óœ  <€ \         SV `  V4       \        VP                  4      V n        \
        P                  ! VP                  4      V n        \        VP                  P                  VP                  4      V n        VP                  P                  V n        VP                  V n
        VP                  V n        V P                  4        R # r„   )rN   rO   rU  Úvision_configÚvision_towerr   Úfrom_configÚtext_configÚlanguage_modelr"  r\  rU   Úvisual_embeddings_tableÚvisual_vocab_sizeÚvisual_indicator_token_idsra  r€   s   &&€r&   rO   ÚOvis2Model.__init__Ô  s—   ø€ Ü‰Ñ˜Ô Ü,¨V×-AÑ-AÓBˆÔÜ'×3Ò3°F×4FÑ4FÓGˆÔÜ'@À×AUÑAU×A`ÑA`Ðbh×btÑbtÓ'uˆÔ$à!'×!5Ñ!5×!@Ñ!@ˆÔØ ×+Ñ+ˆŒØ*0×*KÑ*KˆÔ'Ø�‰Ör)   zWObtains image last hidden states from the vision tower and apply multimodal projection.r4   c                ó`   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[S[,          /# rd  re  )r$   r%   s   "€r&   r'   r€  ã  s;   ø€ ÷ ñ á×'Ñ'ðñ Ñ+Õ,ðñ 
Ñ;Õ	;ñ	r)   c                ón  € V P                   ! V3R R/VB pVP                  pVP                  w  rVp\        P                  ! WVV P                   P
                  3VP                  VP                  RVP                  R7      p\        P                  ! WH.^R7      pV P                  V4      p\        P                  ! V P                  V P                   P
                  ,
          V P                  \        P                  R7      P                  VP                  4      p	WCn        V P                  V	4      Vn        V# )Úreturn_dictTF)r_   ÚdeviceÚrequires_gradÚlayoutrk  r±   )rƒ  rl  rj   r"   Úzerosr[  r_   rŽ  r�  Úcatr‡  r¨   rˆ  r+  r`   r    )
rT   r¯   rÊ   Úimage_outputsÚimage_featuresÚ
batch_sizeÚimg_seq_lenr   Úpadding_tensorÚvisual_indicators
   &&,       r&   Úget_image_featuresÚOvis2Model.get_image_featuresß  s  € ð ×)Ò)¨,ÑSÀDÐSÈFÑSˆØ&×4Ñ4ˆØ%3×%9Ñ%9Ñ"ˆ
 ÜŸšØ d×&7Ñ&7×&SÑ&SÐTØ ×&Ñ&Ø!×(Ñ(ØØ!×(Ñ(ô
ˆô Ÿš NÐ#CÈÔKˆØ×5Ñ5°nÓEˆä Ÿ<š<Ø×"Ñ" T×%6Ñ%6×%RÑ%RÕRØ×"Ñ"Ü—*‘*ô
÷ ‰"ˆ^×"Ñ"Ó
#ð	 	ð
 '5Ô#Ø26×2NÑ2NÐO_Ó2`ˆÔ/àÐr)   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )r   Ú	input_idsr  r”  )r"   Ú
LongTensorr#   )r$   r%   s   "€r&   r'   r€  ÿ  s7   ø€ ÷ "ñ "Ù×)Ñ)ð"Ù:?×:KÑ:Kð"Ù]b×]nÑ]nñ"r)   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_   rŽ  z6Image features and image tokens do not match, tokens: z, features: r*   r^   )Úget_input_embeddingsr"   Úfullrw   Úimage_token_idr+  rŽ  ÚallÚsumrj   Ú	unsqueezer`   r   Únumel)rT   rœ  r  r”  Úspecial_image_maskÚn_image_tokensÚn_image_featuress   &&&&   r&   Úget_placeholder_maskÚOvis2Model.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ô	
ð "Ð!r)   c                ór  <€ V ^8„  d   Qh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   rœ  Nr¯   r½   rª   r@   r  ÚlabelsÚ	use_cacheÚlogits_to_keeprJ   )	r"   r�  r#   rZ   r   ÚboolrG  rC   r7   )r$   r%   s   "€r&   r'   r€    sÆ   ø€ ÷ <
ñ <
á×#Ñ# dÕ*ð<
ñ ×'Ñ'¨$Õ.ð<
ñ Ÿ™ tÕ+ð	<
ñ
 ×&Ñ&¨Õ-ð<
ñ  �ð<
ñ ×(Ñ(¨4Õ/ð<
ñ × Ñ  4Õ'ð<
ñ ˜$•;ð<
ñ ™eŸl™lÕ*ð<
ñ 
Ñ)Õ	)ñ<
r)   c
                óì  € VR J VR J,          '       d   \        R4      hVf   V P                  4       ! V4      pVEeX   V P                  VRR7      pVP                  pVP                  pV P                  VVVR7      pVP                  VP                  VP                  4      pVP                  Wì4      p\        V P                  4       FÈ  w  ppVfZ   W`P                  4       ! \        P                  ! V\        P                  VP                  R7      4      8H  pVP                  R4      pMVV8H  P                  VP                  4      pVP!                  4       '       g   K™  Wß,          P                  VP                  VP                  4      VV&   KÊ  	  V P"                  ! RRVRVRVR	VR
VRV	/V
B p\%        VP&                  VP(                  VP*                  VP,                  Ve   XR7      # R R7      # )Nz:You must specify exactly one of input_ids or inputs_embedsT)r¯   r�  )r  r”  rŸ  r½   rª   r@   r  r¯  r°  )r  r@   rA   rB   r9   r^   r*   )rÔ   r   r™  rl  r    rª  r`   rŽ  r_   Úmasked_scatterÚ	enumerater‰  r"   Útensorr+  r£  Úanyr†  r7   r  r@   rA   rB   )rT   rœ  r¯   r½   rª   r@   r  r®  r¯  r°  rÊ   r“  r”  r    r§  ÚiÚvisual_indicator_idÚmaskrs  s   &&&&&&&&&&,        r&   rg   ÚOvis2Model.forward  s  € ð ˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZàÒ Ø ×5Ñ5Ô7¸	ÓBˆMàÓ#Ø ×3Ñ3ÀÐ[_Ð3Ó`ˆMØ*×8Ñ8ˆNØ(5×(OÑ(OÐ%à!%×!:Ñ!:ØØ+Ø-ð ";ó "Ðð
 ,×.Ñ.¨}×/CÑ/CÀ]×EXÑEXÓYˆNØ)×8Ñ8Ð9KÓ\ˆMä*3°D×4SÑ4SÖ*TÑ&�Ð&ØÒ$Ø(×,EÑ,EÔ,GÜŸšÐ%8ÄÇ
Á
ÐS`×SgÑSgÔhó-ñ �Dð  Ÿ8™8 B›<‘Dà%Ð)<Ñ<×@Ñ@À×AUÑAUÓV�Dà—8‘8—:”:Ø*CÕ*F×*IÑ*IÈ-×J^ÑJ^Ð`m×`sÑ`sÓ*t�M $Ó'ñ +Uð ×%Ò%ñ 
Ø)ð
à%ð
ð ,ð
ð (ð	
ð
  ð
ð *ð
ð ñ
ˆô (Ø%×7Ñ7Ø#×3Ñ3Ø!×/Ñ/Ø×)Ñ)Ø2>Ò2J ô
ð 	
ð
 QUô
ð 	
r)   )r†  rƒ  r‡  r‰  rˆ  r\  ©	NNNNNNNNr   )r+   r,   r-   r.   rO   r   r   r™  rª  rg   r1   r2   rn   ro   s   @@r&   r~  r~  Î  sc   ù‡ € ÷	ó 	ð ÙØnô÷óó ð÷8"ð "ð0 Ø÷<
ñ <
ó ó ÷<
ð <
r)   r~  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]V3R lR	 l4       t]	]RV3R
 lR ll4       4       t
RtVtV ;t# )ÚOvis2ForConditionalGenerationiX  zlm_head.weightz(model.language_model.embed_tokens.weightc                ó    <€ V ^8„  d   QhRS[ /# r�   r7  )r$   r%   s   "€r&   r'   Ú*Ovis2ForConditionalGeneration.__annotate__\  s   ø€ ÷ ñ ™{ñ r)   c                óÊ   <€ \         SV `  V4       \        V4      V n        \        P
                  ! VP                  VP                  R R7      V n        V P                  4        R# rY  )
rN   rO   r~  r/  r   ry   rU   r\  Úlm_headra  r€   s   &&€r&   rO   Ú&Ovis2ForConditionalGeneration.__init__\  sF   ø€ Ü‰Ñ˜Ô Ü Ó'ˆŒ
Ü—y’y ×!3Ñ!3°V×5FÑ5FÈUÔSˆŒØ�‰Ör)   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   rJ   )r   rÀ   )r$   r%   s   "€r&   r'   r¿  b  s   ø€ ÷ ñ ¡r§y¡yñ r)   c                ó   € V P                   # r„   )rÁ  rk   s   &r&   Úget_output_embeddingsÚ3Ovis2ForConditionalGeneration.get_output_embeddingsb  s   € Ø�|‰|Ðr)   c                ó`   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[S[,          /# rd  re  )r$   r%   s   "€r&   r'   r¿  f  s<   ø€ ÷ Rñ RÙ!×-Ñ-ðRÙ9?Ñ@RÕ9SðRá	Ñ;Õ	;ñRr)   c                ó>   € V P                   P                  ! RR V/VB # )r¯   r*   )r/  r™  )rT   r¯   rÊ   s   &&,r&   r™  Ú0Ovis2ForConditionalGeneration.get_image_featurese  s!   € ð �z‰z×,Ò,ÑQ¸,ÐQÈ&ÑQÐQr)   c                ór  <€ V ^8„  d   Qh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­  )	r"   r�  r#   rZ   r   r±  rG  rC   r<   )r$   r%   s   "€r&   r'   r¿  m  sÒ   ø€ ÷ G
ñ G
á×#Ñ# dÕ*ðG
ñ ×'Ñ'¨$Õ.ðG
ñ Ÿ™ tÕ+ð	G
ñ
 ×&Ñ&¨Õ-ðG
ñ  �ðG
ñ ×(Ñ(¨4Õ/ðG
ñ × Ñ  4Õ'ðG
ñ ˜$•;ðG
ñ ™eŸl™lÕ*ðG
ñ 
Ñ,Õ	,ñG
r)   c
                ó¾  € V P                   ! R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                  VP                  R7      # )a2  
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 -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored
    (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.

Example:

```python
>>> from PIL import Image
>>> import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, Ovis2ForConditionalGeneration

>>> model = Ovis2ForConditionalGeneration.from_pretrained("thisisiron/Ovis2-2B-hf")
>>> processor = AutoProcessor.from_pretrained("thisisiron/Ovis2-2B-hf")

>>> prompt = "<|im_start|>user\n<image>\nDescribe the image.<|im_end|>\n<|im_start|>assistant\n"
>>> url = "http://images.cocodataset.org/val2014/COCO_val2014_000000537955.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> inputs = processor(images=image, text=prompt, return_tensors="pt")

>>> # Generate
>>> generate_ids = model.generate(**inputs, max_new_tokens=15)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]
"user\n\nDescribe the image.\nassistant\nThe image features a brown dog standing on a wooden floor, looking up with"
```rœ  r¯   r½   rª   r@   r  r¯  N:NNNr?   r®  r\  )r>   r?   r@   rA   rB   r9   r*   )r/  r2  rG  ÚslicerÁ  Úloss_functionrw   r…  r\  r<   r@   rA   rB   r9   )rT   rœ  r¯   r½   rª   r@   r  r®  r¯  r°  rÊ   rs  rA   Úslice_indicesr?   r>   s   &&&&&&&&&&,     r&   rg   Ú%Ovis2ForConditionalGeneration.forwardk  s&  € ðX —*’*ñ 	
Øð	
à%ð	
ð *ð	
ð &ð		
ð
 ,ð	
ð (ð	
ð  ð	
ð ñ	
ˆð   �
ˆä8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ—‘˜m¨A¨}¸aÐ,?Õ@ÓAˆàˆØÒØ×%Ò%ñ ØðØ&,ðØ9=¿¹×9PÑ9P×9[Ñ9[ðØ_eñˆDô +ØØØ#×3Ñ3Ø!×/Ñ/Ø×)Ñ)Ø '× ;Ñ ;ô
ð 	
r)   )rÁ  r/  r»  )r+   r,   r-   r.   Ú_tied_weights_keysrO   rÅ  r   r™  r   rg   r1   r2   rn   ro   s   @@r&   r½  r½  X  se   ù‡ € à*Ð,VÐWÐ÷ó ÷ð ð ÷Ró ðRð
 Ø÷G
ñ G
ó ó ÷G
ð G
r)   r½  )rá   )r.  r~  r½  )Arm  Úcollections.abcr   Údataclassesr   r"   r   Ú r   r3  Úactivationsr   Úcache_utilsr   Ú
generationr	   Úintegrationsr
   Úmodeling_layersr   Úmodeling_outputsr   r   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   r   r   Úutils.genericr   Úutils.output_capturingr   Úautor   Úconfiguration_ovis2r   r   r   r7   r<   rÀ   rG   rq   rŽ   rÍ   rÏ   rî   rô   r  r  r¥   r"  r.  rS  rU  r~  r½  Ú__all__r*   r)   r&   Ú<module>râ     sí  ðó* Ý $Ý !ã Ý å &Ý !Ý  Ý )Ý 7Ý 9ß dÑ dß FÝ &ß nÕ nÝ 7Ý 5Ý ß ?ð Ø
ô?Ð1Kó ?ó ó ð?ñ ðôð
 ô9Ð6ó 9ó óð9ñ ðôð
 ô9 +ó 9ó óð9ñ0 ˜YÓ'ôJ�2—9‘9ó Jó (ðJô(�R—Y‘Yô ô ˜BŸI™Iô ÷B%ô.7)˜2Ÿ9™9ô 7)ôtˆr�y‰yô ô Ð8ô ô2@˜Ÿ™ô @ô>D˜RŸY™Yô Dô<8 §¡ô 8ôi˜?ô iõ*ô>
Ð+ô >
ñB ðôô
B
Ð%ó B
óð
B
ðJ ô[
Ð$8¸/ó [
ó ð[
ò| R‚r)   