+
    œ°³j-E  ã                   ó¸  € ^ RI 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Ht ^RIHt ^R	IHt ^R
IHtHtHt ^RIHt ^RIHt ^RIHtHt ^RIHt ^RI H!t!H"t" ^RI#H$t$H%t% ^RI&H't'H(t( ^RI)H*t*H+t+ ^RI,H-t-H.t. R R lt/]] ! R R]4      4       4       t0 ! R R](4      t1 ! R R]'4      t2 ! R R]"4      t3 ! R R]!4      t4 ! R  R!]+4      t5 ! R" R#]4      t6 ! R$ R%]4      t7 ! R& R']*4      t8 ! R( R)]Pr                  4      t: ! R* R+]Pv                  4      t< ! R, R-]4      t= ! R. R/]=4      t> ! R0 R1]%4      t?] ! R2 R3]$]4      4       t@. R4OtAR# )5é    N)Ú	dataclass)Únn)Úinitialization)ÚCache)ÚGenerationMixin)ÚBaseModelOutputÚBaseModelOutputWithPooling)ÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚcan_return_tuple)Úmerge_with_config_defaults)Úcapture_outputs)ÚAimv2AttentionÚAimv2EncoderLayer)Ú	AutoModel)ÚLlamaMLPÚLlamaRMSNorm)ÚLlavaForConditionalGenerationÚ
LlavaModel)ÚLlavaNextCausalLMOutputWithPastÚLlavaNextModelOutputWithPast)ÚSiglipEncoderÚSiglipVisionEmbeddings)ÚOvis2ConfigÚOvis2VisionConfigc                óD   € V ^8„  d   QhR\         P                  R\        /# )é   ÚlogitsÚdim)ÚtorchÚTensorÚint)Úformats   "Úh/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/ovis2/modular_ovis2.pyÚ__annotate__r'   '   s   € ÷ ñ œŸ™ð ¬Cñ ó    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# )T)Úkeepdim)Úmemory_formatg      ð?)ÚsoftmaxÚmaxr"   Ú
zeros_likeÚlegacy_contiguous_formatÚscatter_Údetach)r    r!   Úy_softÚindexÚy_hardÚrets   &&    r&   Úhard_softmaxr6   '   sf   € Ø�^‰^˜CÓ €Fà�J‰J�s DˆJÓ)¨!Õ,€EÜ×Ò˜f´E×4RÑ4RÔS×\Ñ\Ð]`ÐilÓm€FØ
—=‘=“?Õ
" VÕ
+€Cà€Jr(   c                   ó4   a € ] tR t^1t 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&   # )r   NÚvisual_indicator_features)r"   ÚFloatTensor)r%   Ú__classdict__s   "€r&   r'   Ú7BaseModelOutputWithVisualIndicatorFeatures.__annotate__1   s   ø‡ ‚ ñ  %×0Ñ0°4Õ7Ñ>ò r(   © )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r:   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r<   s   @r&   r8   r8   1   s   ø‡ € ñð
 ;?Ð÷ ƒ r(   r8   c                   ó   € ] tR t^<tRtR# )ÚOvis2ModelOutputWithPastr>   N©r?   r@   rA   rB   rE   r>   r(   r&   rH   rH   <   ó   † Ûr(   rH   c                   ó   € ] tR t^@tRtR# )ÚOvis2CausalLMOutputWithPastr>   NrI   r>   r(   r&   rL   rL   @   rJ   r(   rL   c                   ó   € ] tR t^DtRtR# )ÚOvis2RMSNormr>   NrI   r>   r(   r&   rN   rN   D   rJ   r(   rN   c                   ó   € ] tR t^HtRtR# )ÚOvis2VisionMLPr>   NrI   r>   r(   r&   rP   rP   H   rJ   r(   rP   c                   óV   a a€ ] tR t^Lt 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	# )ÚOvis2VisionEmbeddingsc                ó    <€ V ^8„  d   QhRS[ /# ©r   Úconfig©r   )r%   r<   s   "€r&   r'   Ú"Ovis2VisionEmbeddings.__annotate__M   s   ø€ ÷ Nñ NÑ0ñ Nr(   c                óp   <€ \         SV `  V4       \        VP                  VP                  4      V n        R # ©N)ÚsuperÚ__init__rN   Úhidden_sizeÚrms_norm_epsÚrms_norm©ÚselfrU   Ú	__class__s   &&€r&   r[   ÚOvis2VisionEmbeddings.__init__M   s*   ø€ Ü‰Ñ˜Ô Ü$ V×%7Ñ%7¸×9LÑ9LÓMˆŽr(   c                ó   € \        R 4      h)zNot needed for Ovis2)ÚNotImplementedError)r`   s   &r&   Úinterpolate_pos_encodingÚ.Ovis2VisionEmbeddings.interpolate_pos_encodingQ   s   € Ü!Ð"8Ó9Ð9r(   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   Úpixel_valuesÚreturn)r"   r;   r#   )r%   r<   s   "€r&   r'   rW   T   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# )©Údtype)	Úpatch_embeddingÚweightrl   ÚtoÚflattenÚ	transposer^   Úposition_embeddingÚposition_ids)r`   rh   Útarget_dtypeÚpatch_embedsÚ
embeddingss   &&   r&   ÚforwardÚOvis2VisionEmbeddings.forwardT   s~   € Ø×+Ñ+×2Ñ2×8Ñ8ˆØ×+Ñ+¨L¯O©OÀ,¨OÓ,OÓPˆØ!×)Ñ)¨!Ó,×6Ñ6°q¸!Ó<ˆ
Ø—]‘] :Ó.ˆ
à×"9Ñ"9¸$×:KÑ:KÓ"LÕLˆ
àÐr(   )r^   )
r?   r@   rA   rB   r[   re   rw   rE   rF   Ú__classcell__©ra   r<   s   @@r&   rR   rR   L   s%   ù‡ € ÷Nó Nò:÷÷ ð r(   rR   c                   ó   € ] tR t^_tRtR# )ÚOvis2VisionAttentionr>   NrI   r>   r(   r&   r|   r|   _   rJ   r(   r|   c                   ó>   a a€ ] tR t^ct oV3R lV 3R lltRtVtV ;t# )ÚOvis2VisionEncoderLayerc                ó    <€ V ^8„  d   QhRS[ /# rT   rV   )r%   r<   s   "€r&   r'   Ú$Ovis2VisionEncoderLayer.__annotate__d   s   ø€ ÷ 6ñ 6Ñ0ñ 6r(   c                óD   <€ \         SV `  4        \        V4      V n        R # rY   )rZ   r[   r|   Ú	attentionr_   s   &&€r&   r[   Ú Ovis2VisionEncoderLayer.__init__d   s   ø€ Ü‰ÑÔÜ-¨fÓ5ˆŽr(   )r‚   )r?   r@   rA   rB   r[   rE   rF   ry   rz   s   @@r&   r~   r~   c   s   ù‡ € ÷6÷ 6ó 6r(   r~   c                   óh   a a€ ] tR t^it o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
# )ÚOvis2VisionEncoderc                ó    <€ V ^8„  d   QhRS[ /# rT   rV   )r%   r<   s   "€r&   r'   ÚOvis2VisionEncoder.__annotate__j   s   ø€ ÷ pñ pÑ0ñ pr(   c                ó¾   <€ \         SV `  V4       \        P                  ! \	        VP
                  4       Uu. uF  p\        V4      NK  	  up4      V n        R # u upi rY   )rZ   r[   r   Ú
ModuleListÚrangeÚnum_hidden_layersr~   Úlayers)r`   rU   Ú_ra   s   && €r&   r[   ÚOvis2VisionEncoder.__init__j   sF   ø€ Ü‰Ñ˜Ô Ü—m’mÌeÐTZ×TlÑTlÔNmÓ$nÑNmÈÔ%<¸VÖ%DÑNmÑ$nÓoˆŽùÒ$ns   ¸Ac                ó^   <€ V ^8„  d   QhRS[ P                  R,          RS[S[,          RS[/# )r   Úattention_maskNÚkwargsri   )r"   r#   r   r   r   )r%   r<   s   "€r&   r'   r‡   p   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   )r`   Úinputs_embedsr�   r‘   Úhidden_statesÚencoder_layers   &&&,  r&   rw   ÚOvis2VisionEncoder.forwardn   s3   € ð &ˆØ!Ÿ[œ[ˆMÙ)¨-ÑRÈ6ÑRŠMñ )ô °Ô?Ð?r(   )rŒ   rY   )r?   r@   rA   rB   r[   r   r   rw   rE   rF   ry   rz   s   @@r&   r…   r…   i   s;   ù‡ € ÷pó pð Ø÷
@ñ 
@ó ó ÷
@ð 
@r(   r…   c                   ó^   a a€ ] tR t^}t oV3R lV 3R llt]RV3R lR ll4       tRtVtV ;t	# )ÚOvis2VisionTransformerc                ó    <€ V ^8„  d   QhRS[ /# rT   rV   )r%   r<   s   "€r&   r'   Ú#Ovis2VisionTransformer.__annotate__~   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# )FN)rZ   r[   rU   rR   rv   r…   ÚencoderrN   r\   r]   r^   Úgradient_checkpointingr_   s   &&€r&   r[   ÚOvis2VisionTransformer.__init__~   sM   ø€ Ü‰ÑÔØŒÜ/°Ó7ˆŒÜ)¨&Ó1ˆŒÜ$ V×%7Ñ%7¸×9LÑ9LÓMˆŒØ&+ˆÖ#r(   c                óB   <€ V ^8„  d   QhRS[ P                  R,          /# )r   r�   N©r"   r#   )r%   r<   s   "€r&   r'   rœ   ‡   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>   )rv   rž   r”   r^   r   )r`   rh   r�   r‘   r–   Úencoder_outputsr”   s   &&&,   r&   rw   ÚOvis2VisionTransformer.forward†   sd   € ð Ÿ™¨Ó5ˆà+/¯<ª<ñ ,
Ø'ð,
à)ð,
ð ñ,
ˆð ,×=Ñ=ÐØ ŸM™MÐ*;Ó<ÐäÐ1BÔCÐCr(   )rU   rv   rž   rŸ   r^   rY   )
r?   r@   rA   rB   r[   r   rw   rE   rF   ry   rz   s   @@r&   rš   rš   }   s1   ù‡ € ÷,ó ,ð ÷Dñ Dó ÷Dð Dr(   rš   c                   ó>   a a€ ] tR t^›t oV3R lV 3R lltRtVtV ;t# )ÚOvis2VisualEmbeddingTablec                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   Úvisual_tokensri   r¢   )r%   r<   s   "€r&   r'   Ú&Ovis2VisualEmbeddingTable.__annotate__œ   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      # rY   )rl   r"   Úint8Úint16Úint32Úint64ÚlongrZ   rw   Úmatmulrn   )r`   r©   ra   s   &&€r&   rw   Ú!Ovis2VisualEmbeddingTable.forwardœ   sU   ø€ Ø×Ñ¤5§:¡:¬u¯{©{¼E¿K¹KÌÏÉÔV[×V`ÑV`Ð"aÔaÜ‘7‘? =Ó1Ð1Ü�|Š|˜M¯;©;Ó7Ð7r(   r>   )r?   r@   rA   rB   rw   rE   rF   ry   rz   s   @@r&   r§   r§   ›   s   ù‡ € ÷8÷ 8ó 8r(   r§   c                   ón   a a€ ] tR t^¢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# )	ÚOvis2PreTrainedModelÚmodelTr|   Úpast_key_valuesc                ó  <€ \         SV `  V4       \        V\        4      '       db   \        P
                  ! VP                  \        P                  ! VP                  P                  R,          4      P                  R4      4       R# R# )é   Néÿÿÿÿ)r¸   r¹   )rZ   Ú_init_weightsÚ
isinstancerR   ÚinitÚcopy_rs   r"   ÚarangeÚshapeÚexpand)r`   Úmodulera   s   &&€r&   rº   Ú"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&   # rT   ©r   )r%   r<   s   "€r&   r'   Ú!Ovis2PreTrainedModel.__annotate__¢   s   ø‡ ‚ ÙÑò r(   r>   )ÚimageÚtext)r?   r@   rA   rB   Ú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_backendrº   rD   rE   rF   ry   rz   s   @@r&   r´   r´   ¢   sY   ù‡ € àÐØ(ÐØ&*Ð#Ø/Ð0ÐØ#4Ð"5ÐØ ÐØÐØÐØ€Nà!ÐØ"&Ðõi÷ … r(   r´   c                   ó|   a a€ ] tR t^·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# )	ÚOvis2VisionModelr–   Ú
attentionsc                ó    <€ V ^8„  d   QhRS[ /# rT   rV   )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# ©F)ÚbiasN)rZ   r[   rU   rš   ÚtransformerÚnum_visual_indicator_tokensÚ
vocab_sizer   ÚLinearr\   Úhidden_strideÚhead_linearÚ	LayerNormÚ	head_normÚ	post_initr_   s   &&€r&   r[   Ú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   rh   r‘   ri   ©r"   r;   r   r   Útupler8   )r%   r<   s   "€r&   r'   r×   Ï   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¹   )rÛ   rU   rß   r¿   r$   ÚmathÚsqrtÚ
ValueErrorr   Ú
functionalÚpadÚreshapeÚpermuterà   râ   Útokenize_functionÚgumbel_softmaxr6   r,   r8   )r`   rh   r‘   Úoutputsr”   Ú
num_imagesÚseq_lenÚ
hidden_dimrß   Úsqrt_lÚpad_sizer    Ú
prob_tokens   &&,          r&   rw   Ú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&   # rT   rV   )r%   r<   s   "€r&   r'   r×   ·   s   ø‡ ‚ ÙÑò r(   )rU   rà   râ   rÜ   rÛ   rÝ   )r?   r@   rA   rB   r~   r|   Ú_can_record_outputsr[   r   r   rw   rD   rE   rF   ry   rz   s   @@r&   rÔ   rÔ   ·   sH   ù‡ € ð 	Ð0ØÐ*ðÐ÷
ó ð  Ø÷&
ó ó  ð&
÷1 … r(   rÔ   c                   óœ   a a€ ] tR t^øt oV3R lV 3R llt]]! RR7      V3R lR l4       4       t]]R
V3R lR ll4       4       tR	t	Vt
V ;t# )Ú
Ovis2Modelc                ó    <€ V ^8„  d   QhRS[ /# rT   rÄ   )r%   r<   s   "€r&   r'   ÚOvis2Model.__annotate__ù   s   ø€ ÷ 	'ñ 	'™{ñ 	'r(   c                ó€  <€ \         SV `  V4       \        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
        \        P                  ! VP                  4      V n        V =R # rY   )rZ   r[   rÔ   Úvision_configÚvision_towerr§   rÝ   r\   Úvisual_embeddings_tableÚvisual_vocab_sizeÚvisual_indicator_token_idsr   Úfrom_configÚtext_configÚlanguage_modelÚmulti_modal_projectorr_   s   &&€r&   r[   ÚOvis2Model.__init__ù   s“   ø€ Ü‰Ñ˜Ô Ü,¨V×-AÑ-AÓBˆÔÜ'@À×AUÑAU×A`ÑA`Ðbh×btÑbtÓ'uˆÔ$à!'×!5Ñ!5×!@Ñ!@ˆÔØ ×+Ñ+ˆŒØ*0×*KÑ*KˆÔ'Ü'×3Ò3°F×4FÑ4FÓGˆÔØÒ&r(   zWObtains image last hidden states from the vision tower and apply multimodal projection.)Úcustom_introc                ó`   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[S[,          /# ræ   rç   )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)rl   ÚdeviceÚrequires_gradÚlayoutrî   rk   )r	  rï   r¿   r"   ÚzerosrÜ   rl   r  r  Úcatr
  r¾   r  r°   ro   r:   )
r`   rh   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                ó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   Ú	input_idsNrh   r�   rs   r¶   r•   ÚlabelsÚ	use_cacheÚlogits_to_keepri   )	r"   Ú
LongTensorr;   r#   r   Úboolr$   rè   rH   )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)rh   r  )r•   r  )rl   r  r�   rs   r¶   r•   r'  r(  )r”   r¶   r–   rÕ   Úimage_hidden_statesr¹   r>   )rò   Úget_input_embeddingsr!  rï   r:   Úget_placeholder_maskro   r  rl   Úmasked_scatterÚ	enumerater  r"   Útensorr°   ÚallÚanyr  rH   r”   r¶   r–   rÕ   )r`   r%  rh   r�   rs   r¶   r•   r&  r'  r(  r‘   r  r  r:   Úspecial_image_maskÚiÚvisual_indicator_idÚmaskrù   s   &&&&&&&&&&,        r&   rw   Ú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@   rA   rB   r[   r   r   r!  rw   rE   rF   ry   rz   s   @@r&   r  r  ø   sY   ù‡ € ÷	'ó 	'ð ÙØnô÷óó ðð8 Ø÷<
ñ <
ó ó ÷<
ð <
r(   r  c                   ó„   a a€ ] tR tRt oV3R lV 3R l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# )
ÚOvis2ForConditionalGenerationie  c                ó    <€ V ^8„  d   QhRS[ /# rT   rÄ   )r%   r<   s   "€r&   r'   Ú*Ovis2ForConditionalGeneration.__annotate__g  s   ø€ ÷ Tñ T™{ñ Tr(   c                óŠ   <€ \         SV `  V4       \        P                  ! VP                  VP
                  R R7      V n        R# rÙ   )rZ   r[   r   rÞ   r\   rÝ   Úlm_headr_   s   &&€r&   r[   Ú&Ovis2ForConditionalGeneration.__init__g  s0   ø€ Ü‰Ñ˜Ô Ü—y’y ×!3Ñ!3°V×5FÑ5FÈUÔSˆŽr(   c                ó`   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[S[,          /# ræ   rç   )r%   r<   s   "€r&   r'   r=  l  s<   ø€ ÷ Rñ RÙ!×-Ñ-ðRÙ9?Ñ@RÕ9SðRá	Ñ;Õ	;ñRr(   c                ó>   € V P                   P                  ! RR V/VB # )rh   r>   )rµ   r!  )r`   rh   r‘   s   &&,r&   r!  Ú0Ovis2ForConditionalGeneration.get_image_featuresk  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;   r#   r   r*  r$   rè   rL   )r%   r<   s   "€r&   r'   r=  s  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%  rh   r�   rs   r¶   r•   r'  N:NNNr    r&  rÝ   )Úlossr    r¶   r–   rÕ   r,  r>   )rµ   r»   r$   Úslicer?  Úloss_functionrU   r  rÝ   rL   r¶   r–   rÕ   r,  )r`   r%  rh   r�   rs   r¶   r•   r&  r'  r(  r‘   rù   r–   Úslice_indicesr    rF  s   &&&&&&&&&&,     r&   rw   Ú%Ovis2ForConditionalGeneration.forwardq  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?  r9  )r?   r@   rA   rB   r[   r   r!  r   rw   rE   rF   ry   rz   s   @@r&   r;  r;  e  sQ   ù‡ € ÷Tó Tð ÷Ró ðRð
 Ø÷G
ñ G
ó ó ÷G
ð G
r(   r;  )r´   r  r;  )Brð   Údataclassesr   r"   r   Ú r   r¼   Úcache_utilsr   Ú
generationr   Úmodeling_outputsr   r	   Úmodeling_utilsr
   Úprocessing_utilsr   Úutilsr   r   r   Úutils.genericr   Úutils.output_capturingr   Úaimv2.modeling_aimv2r   r   Úautor   Úllama.modeling_llamar   r   Úllava.modeling_llavar   r   Úllava_next.modeling_llava_nextr   r   Úsiglip.modeling_siglipr   r   Úconfiguration_ovis2r   r   r6   r8   rH   rL   rN   rP   rR   r|   r~   r…   ÚModulerš   Ú	Embeddingr§   r´   rÔ   r  r;  Ú__all__r>   r(   r&   Ú<module>r_     sL  ðó Ý !ã Ý å &Ý  Ý )ß KÝ -Ý &ß IÑ IÝ 7Ý 5ß DÝ ß 9ß Lß jß Jß ?õð Ø
ô?Ð1Kó ?ó ó ð?ô	Ð;ô 	ô	Ð"Aô 	ô	�<ô 	ô	�Xô 	ôÐ2ô ô&	˜>ô 	ô6Ð/ô 6ô@˜ô @ô(D˜RŸY™Yô Dô<8 §¡ô 8ôi˜?ô iô*>
Ð+ô >
ôBj
�ô j
ðZ ôT
Ð$AÀ?ó T
ó ðT
òn R‚r(   