+
    œ°³jCŒ  ã                   óö  € ^ 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%H&t& ^RI'H(t( ^RI)H*t* ^RI+H,t,H-t- ]! R4       ! R R]P\                  4      4       t/R=R R llt0 ! R R]P\                  4      t1]!! RR7      ] ! R R]4      4       4       t2 ! R R]P\                  4      t3 ! R R ]P\                  4      t4 ! R! R"]P\                  4      t5R#]Pl                  R$]//t7 ! R% R&]4      t8 ! R' R(]P\                  4      t9]! ! R) R*]4      4       t:]! ! R+ R,]:4      4       t;]! ! R- R.]4      4       t< ! R/ R0]P\                  4      t=]!! R1R7      ] ! R2 R3]4      4       4       t>]!! R4R7       ! R5 R6]<4      4       t?]!! R7R7      ] ! R8 R9]4      4       4       t@]!! R:R7       ! R; R<]<]4      4       tA. R>OtBR# )?é    N)ÚCallable)Ú	dataclass)Úinitialization)ÚACT2FN)ÚCache)ÚGenerationMixin)Úuse_kernel_forward_from_hub)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚBaseModelOutputWithPastÚBaseModelOutputWithPooling)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚModelOutputÚTransformersKwargsÚauto_docstringÚtorch_compilable_checkÚ	torch_int)Úcan_return_tupleÚmerge_with_config_defaults)Úcapture_outputs)Ú	AutoModel)ÚInternVLConfigÚInternVLVisionConfigÚRMSNormc                   óZ   a a€ ] tR t^-t 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	# )ÚInternVLVisionRMSNormc                ó$   <€ V ^8„  d   QhRS[ RR/# )é   ÚepsÚreturnN)Úfloat)ÚformatÚ__classdict__s   "€Úo/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/internvl/modeling_internvl.pyÚ__annotate__Ú"InternVLVisionRMSNorm.__annotate__/   s   ø€ ÷ $ñ $©ð $¸$ñ $ó    c                óŽ   <€ \         SV `  4        \        P                  ! \        P
                  ! V4      4      V n        W n        R# )z4
InternVLVisionRMSNorm is equivalent to T5LayerNorm
N)ÚsuperÚ__init__ÚnnÚ	ParameterÚtorchÚonesÚweightÚvariance_epsilon)ÚselfÚhidden_sizer!   Ú	__class__s   &&&€r&   r,   ÚInternVLVisionRMSNorm.__init__/   s/   ø€ ô 	‰ÑÔÜ—l’l¤5§:¢:¨kÓ#:Ó;ˆŒØ #Ör)   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r    Úhidden_statesr"   ©r/   ÚTensor)r$   r%   s   "€r&   r'   r(   7   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Úrsqrtr2   r1   )r3   r9   Úinput_dtypeÚvariances   &&  r&   ÚforwardÚInternVLVisionRMSNorm.forward7   sw   € Ø#×)Ñ)ˆØ%×(Ñ(¬¯©Ó7ˆØ ×$Ñ$ QÓ'×,Ñ,¨R¸Ð,Ó>ˆØ%¬¯ª°H×?TÑ?TÕ4TÓ(UÕUˆØ�{‰{˜]×-Ñ-¨kÓ:Õ:Ð:r)   c                ó^   € \        V P                  P                  4       R V P                   2# )z, eps=)Útupler1   Úshaper2   ©r3   s   &r&   Ú
extra_reprÚ InternVLVisionRMSNorm.extra_repr>   s*   € Ü˜Ÿ™×)Ñ)Ó*Ð+¨6°$×2GÑ2GÐ1HÐIÐIr)   )r2   r1   )g�íµ ÷Æ°>)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r,   rG   rM   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r5   r%   s   @@r&   r   r   -   s%   ù‡ € ÷$õ $÷;ð ;÷Jò J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/   r;   r#   Úint)r$   s   "r&   r'   r'   B   sk   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô ð%ô ”S�[ñ%r)   c                 ó†  € TpTp	\         P                  ! WP                  ^^4      4      V,          p
Ve	   W¤,           p
\        P                  P                  V
RR7      p
\        P                  P                  W¦V P                  R7      p
\         P                  ! W©4      pVP                  ^^4      P                  4       pWº3# )r    ©Údim)ÚpÚtrainingr>   )	r/   ÚmatmulÚ	transposer-   Ú
functionalÚsoftmaxr^   re   Ú
contiguous)rX   rY   rZ   r[   r\   r]   r^   ÚkwargsÚ
key_statesÚvalue_statesÚattn_weightsÚattn_outputs   &&&&&&&,    r&   Úeager_attention_forwardrp   B   s¦   € ð €JØ€Lä—<’< ×';Ñ';¸A¸qÓ'AÓBÀWÕL€LØÒ!Ø#Õ4ˆô —=‘=×(Ñ(¨¸2Ð(Ó>€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€LÜ—,’,˜|Ó:€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$r)   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	# )ÚInternVLVisionAttentionz+Attention Class for InternVL Vision Encoderc                ó    <€ V ^8„  d   QhRS[ /# ©r    Úconfig©r   )r$   r%   s   "€r&   r'   Ú$InternVLVisionAttention.__annotate___   s   ø€ ÷ Zñ ZÑ3ñ Zr)   c                ór  <€ \         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
        VP                  pVP                  p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                  4      V n        V^ 8”  d   \        P*                  ! V4      M\        P,                  ! 4       V n        V'       d   \/        V P                  4      M\        P,                  ! 4       V n        V'       d   \/        V P                  4      V n        R# \        P,                  ! 4       V n        R# )z;embed_dim must be divisible by num_heads (got `embed_dim`: z and `num_heads`: z).F©ÚbiasNg      à¿)r+   r,   ru   r4   Ú	embed_dimÚnum_attention_headsÚ	num_headsÚhead_dimÚ
ValueErrorÚscaleÚattention_dropoutÚprojection_dropoutÚuse_qk_normÚ	is_causalr-   ÚLinearÚattention_biasÚq_projÚk_projÚv_projÚprojection_layerÚDropoutÚIdentityr   Úq_normÚk_norm)r3   ru   Úproj_dropoutÚqk_normr5   s   &&  €r&   r,   Ú InternVLVisionAttention.__init___   sÆ  ø€ Ü‰ÑÔØŒØ×+Ñ+ˆŒØ×3Ñ3ˆŒØŸ™¨$¯.©.Õ8ˆŒØ�=‰=˜4Ÿ>™>Õ)¨T¯^©^Ô;ÜØMÈdÏnÉnÐM]ð ^Ø—N‘NÐ# 2ð'óð ð —]‘] DÕ(ˆŒ
Ø!'×!9Ñ!9ˆÔØ×0Ñ0ˆØ×$Ñ$ˆð ˆŒä—i’i §¡°·±ÀÇÁÕ0NÐU[×UjÑUjÔkˆŒÜ—i’i §¡°·±ÀÇÁÕ0NÐU[×UjÑUjÔkˆŒÜ—i’i §¡°·±ÀÇÁÕ0NÐU[×UjÑUjÔkˆŒÜ "§	¢	¨$¯.©.¸$¿.¹.Ó IˆÔØ>JÈQÔ>N¤"§*¢*¨\Ô":ÔTV×T_ÒT_ÓTaˆÔç?FÔ+¨D¯N©NÔ;ÌBÏKÊKËMˆŒß?FÔ+¨D¯N©NÓ;ˆŽÌBÏKÊKËMˆŽr)   c                ór   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          /# )r    r9   r\   Nrk   )r/   r;   r   r   )r$   r%   s   "€r&   r'   rw   {   s<   ø€ ÷ '$ñ '$á—|‘|ð'$ñ Ÿ™ tÕ+ð'$ñ Ñ+Õ,ñ	'$r)   c           	     óv  € VP                  4       w  rEpV P                  V4      pV P                  V4      pV P                  V4      p	V P	                  V4      pV P                  V4      pVP                  WEV P                  V P                  4      P                  ^^4      pVP                  WEV P                  V P                  4      P                  ^^4      pV	P                  WEV P                  V P                  4      P                  ^^4      p	\        P                  ! V P                  P                  \        4      p
T
! V VVV	V3RV P                   '       g   RMV P"                  RV P$                  RR/VB w  r¼VP                  WEV P&                  4      pV P)                  V4      pV P+                  V4      pWÜ3# )é   r^   ç        r]   r„   F)Úsizer‡   rˆ   r‰   r�   rŽ   Úreshaper}   r~   rg   Úviewr   Úget_interfaceru   Ú_attn_implementationrp   re   r�   r€   r{   rŠ   r‚   )r3   r9   r\   rk   Ú
batch_sizeÚseq_lenÚ_Úquery_statesrl   rm   Úattention_interfacero   rn   Úoutputs   &&&,          r&   rG   ÚInternVLVisionAttention.forward{   s�  € ð "/×!3Ñ!3Ó!5Ñˆ
˜Qà—{‘{ =Ó1ˆØ—[‘[ Ó/ˆ
Ø—{‘{ =Ó1ˆà—{‘{ <Ó0ˆØ—[‘[ Ó,ˆ
à#×+Ñ+¨JÀÇÁÐQU×Q^ÑQ^Ó_×iÑiÐjkÐmnÓoˆØ×'Ñ'¨
¸T¿^¹^ÈTÏ]É]Ó[×eÑeÐfgÐijÓkˆ
Ø#×(Ñ(¨¸d¿n¹nÈdÏmÉmÓ\×fÑfÐghÐjkÓlˆä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ
%
ð  $Ÿ}Ÿ}˜}‘C°$×2HÑ2Hð
%
ð —J‘Jð
%
ð ð
%
ð ñ
%
Ñ!ˆð "×)Ñ)¨*¸t¿~¹~ÓNˆà×&Ñ& {Ó3ˆØ×(Ñ(¨Ó0ˆàÐ#Ð#r)   )r�   ru   r{   r~   r„   rŽ   rˆ   r}   r‚   rŠ   r�   r‡   r€   r‰   ©N©
rO   rP   rQ   rR   Ú__doc__r,   rG   rS   rT   rU   rV   s   @@r&   rr   rr   \   s#   ù‡ € Ù5÷Zó Z÷8'$÷ '$ò '$r)   rr   z7
    Class for outputs of [`InternVLVisionModel`].
    ©Úcustom_introc                   ó   € ] tR t^¥tRtRtR# )Ú$InternVLVisionModelOutputWithPoolinga2  
pooler_output (`torch.FloatTensor` of shape `(batch_size, hidden_size)`):
    Average of the last layer hidden states of the patch tokens (excluding the *[CLS]* token) if
    *config.use_mean_pooling* is set to True. If set to False, then the final hidden state of the *[CLS]* token
    will be returned.
© N)rO   rP   rQ   rR   r¤   rS   r©   r)   r&   r¨   r¨   ¥   s   † õr)   r¨   c                   óH   a a€ ] tR t^´t oRtV 3R ltV3R lR ltRtVtV ;t	# )ÚInternVLVisionPatchEmbeddingszÜ
This class turns `pixel_values` of shape `(batch_size, num_channels, height, width)` into the initial
`hidden_states` (patch embeddings) of shape `(batch_size, seq_length, hidden_size)` to be consumed by a
Transformer.
c                ó¸  <€ \         SV `  4        VP                  VP                  r2VP                  VP
                  rTV^,          V^,          ,          V^ ,          V^ ,          ,          ,          pV^ ,          V^ ,          ,          V^,          V^,          ,          3pW n        W0n        W@n        W`n        Wpn        \        P                  ! WEW3R7      V n
        R# )r”   )Úkernel_sizeÚstrideN)r+   r,   Ú
image_sizeÚ
patch_sizeÚnum_channelsr4   Únum_patchesÚpatch_shaper-   ÚConv2dÚ
projection)	r3   ru   r¯   r°   r±   r4   r²   r³   r5   s	   &&      €r&   r,   Ú&InternVLVisionPatchEmbeddings.__init__»   s¬   ø€ Ü‰ÑÔØ!'×!2Ñ!2°F×4EÑ4E�JØ$*×$7Ñ$7¸×9KÑ9K�kà! !•}¨
°1­Õ5¸*ÀQ½-È:ÐVWÍ=Õ:XÕYˆØ! !•}¨
°1­Õ5°zÀ!µ}È
ÐSTÍÕ7UÐVˆØ$ŒØ$ŒØ(ÔØ&ÔØ&ÔäŸ)š) LÈ:ÔiˆŽr)   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r    Úpixel_valuesr"   r:   )r$   r%   s   "€r&   r'   Ú*InternVLVisionPatchEmbeddings.__annotate__Ê   s#   ø€ ÷ 
ñ 
¡E§L¡Lð 
±U·\±\ñ 
r)   c                ó  € VP                   w  r#rEW0P                  8w  d   \        R 4      hV P                  VP	                  V P                  P
                  P                  4      4      pVP                  ^4      P                  ^^4      pV# )zeMake sure that the channel dimension of the pixel values match with the one set in the configuration.)	rK   r±   r   rµ   r@   r1   r?   Úflattenrg   )r3   r¸   r›   r±   ÚheightÚwidthÚ
embeddingss   &&     r&   rG   Ú%InternVLVisionPatchEmbeddings.forwardÊ   sz   € Ø2>×2DÑ2DÑ/ˆ
 &Ø×,Ñ,Ô,ÜØwóð ð —_‘_ \§_¡_°T·_±_×5KÑ5K×5QÑ5QÓ%RÓSˆ
Ø×'Ñ'¨Ó*×4Ñ4°Q¸Ó:ˆ
àÐr)   )r¯   r±   r²   r³   r°   rµ   r£   rV   s   @@r&   r«   r«   ´   s   ù‡ € ñõj÷
÷ 
ð 
r)   r«   c                   ój   a a€ ] tR t^Ùt o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tRtVt	V ;t
# )
ÚInternVLVisionEmbeddingsz[
Construct the CLS token, position and patch embeddings. Optionally, also the mask token.

c                ó$   <€ V ^8„  d   QhRS[ RR/# ©r    ru   r"   Nrv   )r$   r%   s   "€r&   r'   Ú%InternVLVisionEmbeddings.__annotate__ß   s   ø€ ÷ >ñ >Ñ3ð >¸ñ >r)   c                ón  <€ \         SV `  4        \        P                  ! \        P
                  ! ^^VP                  4      4      V n        VP                  '       d=   \        P                  ! \        P
                  ! ^^VP                  4      4      V n	        MRV n	        \        V4      V n        VP                  V n        \        VP                  \        P                   P"                  4      '       d   VP                  MVP                  VP                  3V n        V P                  P$                  pVP&                  '       dD   \        P                  ! \        P
                  ! ^V^,           VP                  4      4      V n        MRV n        \        P*                  ! VP,                  4      V n        R# ©r”   N)r+   r,   r-   r.   r/   Úzerosr4   Ú	cls_tokenÚuse_mask_tokenÚ
mask_tokenr«   Úpatch_embeddingsr°   Ú
isinstancer¯   ÚcollectionsÚabcÚIterabler²   Ú use_absolute_position_embeddingsÚposition_embeddingsr‹   Úhidden_dropout_probr^   )r3   ru   r²   r5   s   && €r&   r,   Ú!InternVLVisionEmbeddings.__init__ß   s-  ø€ Ü‰ÑÔäŸš¤e§k¢k°!°Q¸×8JÑ8JÓ&KÓLˆŒØ× × Ð Ü Ÿlšl¬5¯;ª;°q¸!¸V×=OÑ=OÓ+PÓQˆD�Oà"ˆDŒOÜ =¸fÓ EˆÔØ ×+Ñ+ˆŒô ˜&×+Ñ+¬[¯_©_×-EÑ-E×FÒFð ×Òà×#Ñ# V×%6Ñ%6Ð7ð 	Œð
 ×+Ñ+×7Ñ7ˆØ×2×2Ð2Ü')§|¢|´E·K²KÀÀ;ÐQRÅ?ÐTZ×TfÑTfÓ4gÓ'hˆDÕ$à'+ˆDÔ$Ü—z’z &×"<Ñ"<Ó=ˆŽr)   c                óZ   <€ V ^8„  d   QhRS[ P                  RS[RS[RS[ P                  /# )r    r¾   r¼   r½   r"   )r/   r;   r`   )r$   r%   s   "€r&   r'   rÄ   õ   s;   ø€ ÷ &Dñ &D±5·<±<ð &DÉð &DÑUXð &DÑ]b×]iÑ]iñ &Dr)   c                ó  € VP                   ^,          ^,
          pV P                  P                   ^,          ^,
          p\        P                  P	                  4       '       g   WE8X  d   W#8X  d   V P                  # V P                  R,          pV P                  R,          pVP                   R,          pW P
                  ^ ,          ,          p	W0P
                  ^,          ,          p
\        VR,          4      pVP                  ^W»V4      pVP                  ^ ^^^4      p\        P                  P                  VWš3RRR7      pVP                  ^ ^^^4      P                  ^RV4      p\        P                  ! Wg3^R7      # )	aÐ  
This method allows to interpolate the pre-trained position encodings, to be able to use the model on higher resolution
images. This method is also adapted to support torch.jit tracing.

Adapted from:
- https://github.com/facebookresearch/dino/blob/de9ee3df6cf39fac952ab558447af1fa1365362a/vision_transformer.py#L174-L194, and
- https://github.com/facebookresearch/dinov2/blob/e1277af2ba9496fbadf7aec6eba56e8d882d1e35/dinov2/models/vision_transformer.py#L179-L211
ç      à?ÚbicubicF)r–   ÚmodeÚalign_cornersrb   )ºNNN:Nr”   N)rÚ   ºr”   NNr>   )rK   rÑ   r/   ÚjitÚ
is_tracingr°   r   r—   Úpermuter-   rh   Úinterpolater˜   Úcat)r3   r¾   r¼   r½   r²   Únum_positionsÚclass_pos_embedÚpatch_pos_embedrc   Ú
new_heightÚ	new_widthÚsqrt_num_positionss   &&&&        r&   Úinterpolate_pos_encodingÚ1InternVLVisionEmbeddings.interpolate_pos_encodingõ   sO  € ð !×&Ñ& qÕ)¨AÕ-ˆØ×0Ñ0×6Ñ6°qÕ9¸AÕ=ˆô �y‰y×#Ñ#×%Ò%¨+Ô*FÈ6Ì?Ø×+Ñ+Ð+à×2Ñ2°5Õ9ˆØ×2Ñ2°5Õ9ˆà×Ñ˜rÕ"ˆàŸ™¨qÕ1Õ1ˆ
ØŸ_™_¨QÕ/Õ/ˆ	ä& }°cÕ'9Ó:ÐØ)×1Ñ1°!Ð5GÐ]`ÓaˆØ)×1Ñ1°!°Q¸¸1Ó=ˆäŸ-™-×3Ñ3ØØÐ(ØØð	 4ó 
ˆð *×1Ñ1°!°Q¸¸1Ó=×BÑBÀ1ÀbÈ#ÓNˆä�yŠy˜/Ð;ÀÔCÐCr)   c                óv   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  /# ©r    r¸   Úbool_masked_posNr"   )r/   r;   Ú
BoolTensor)r$   r%   s   "€r&   r'   rÄ     s<   ø€ ÷ ñ á—l‘lðñ ×)Ñ)¨DÕ0ðñ 
�‰ñ	r)   c                ó  € VP                   w   r4pV P                  V4      pVP                  4       w  rxpVeZ   V P                  P	                  WxR4      p	VP                  R4      P                  V	4      p
V^V
,
          ,          Wš,          ,           pV P                  P	                  VRR4      p\        P                  ! W¶3^R7      pV P                  e   W`P                  WdV4      ,           pV P                  V4      pV# )Nrb   r>   )rK   rË   r–   rÊ   ÚexpandÚ	unsqueezeÚtype_asrÈ   r/   rà   rÑ   rç   r^   )r3   r¸   rë   r�   r¼   r½   r¾   r›   rœ   Úmask_tokensÚwÚ
cls_tokenss   &&&         r&   rG   Ú InternVLVisionEmbeddings.forward  sä   € ð
 +×0Ñ0Ñˆˆ1�eØ×*Ñ*¨<Ó8ˆ
Ø!+§¡Ó!2Ñˆ
˜QàÒ&ØŸ/™/×0Ñ0°ÀbÓIˆKà×)Ñ)¨"Ó-×5Ñ5°kÓBˆAØ# q¨1¥uÕ-°µÕ?ˆJà—^‘^×*Ñ*¨:°r¸2Ó>ˆ
Ü—Y’Y 
Ð7¸QÔ?ˆ
à×#Ñ#Ò/Ø#×&CÑ&CÀJÐX]Ó&^Õ^ˆJà—\‘\ *Ó-ˆ
àÐr)   )rÈ   r^   r¯   rÊ   rË   r°   rÑ   r¢   )rO   rP   rQ   rR   r¤   r,   rç   rG   rS   rT   rU   rV   s   @@r&   rÁ   rÁ   Ù   s0   ù‡ € ñ÷
>ó >÷,&Dð &D÷P÷ ò r)   rÁ   c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚInternVLVisionMLPi7  c                ó(  <€ \         SV `  4        Wn        \        VP                  ,          V n        \        P                  ! VP                  VP                  4      V n
        \        P                  ! VP                  VP                  4      V n        R # r¢   )r+   r,   ru   r   Ú
hidden_actÚactivation_fnr-   r…   r4   Úintermediate_sizeÚfc1Úfc2©r3   ru   r5   s   &&€r&   r,   ÚInternVLVisionMLP.__init__8  sb   ø€ Ü‰ÑÔØŒÜ# F×$5Ñ$5Õ6ˆÔÜ—9’9˜V×/Ñ/°×1IÑ1IÓJˆŒÜ—9’9˜V×5Ñ5°v×7IÑ7IÓJˆŽr)   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r8   r:   )r$   r%   s   "€r&   r'   ÚInternVLVisionMLP.__annotate__?  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r)   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# r¢   )rû   rù   rü   )r3   r9   s   &&r&   rG   ÚInternVLVisionMLP.forward?  s4   € ØŸ™ Ó/ˆØ×*Ñ*¨=Ó9ˆØŸ™ Ó/ˆØÐr)   )rù   ru   rû   rü   ©	rO   rP   rQ   rR   r,   rG   rS   rT   rU   rV   s   @@r&   rö   rö   7  s   ù‡ € õK÷÷ ð r)   rö   Ú
layer_normÚrms_normc                   óT   a a€ ] tR tRt oRtV3R lV 3R lltV3R lR ltRtVtV ;t	# )ÚInternVLVisionLayeriI  z?This corresponds to the Block class in the timm implementation.c                ó$   <€ V ^8„  d   QhRS[ RR/# rÃ   rv   )r$   r%   s   "€r&   r'   Ú InternVLVisionLayer.__annotate__L  s   ø€ ÷ >ñ >Ñ3ð >¸ñ >r)   c                óÞ  <€ \         SV `  4        VP                  V n        ^V n        \	        V4      V n        \        V4      V n        \        VP                  ,          ! VP                  VP                  R7      V n        \        VP                  ,          ! VP                  VP                  R7      V n        VP                  p\        P                   ! V\"        P$                  ! VP                  4      ,          RR7      V n        \        P                   ! V\"        P$                  ! VP                  4      ,          RR7      V n        \        P*                  ! VP,                  4      V n        R# )r”   ©r!   T)Úrequires_gradN)r+   r,   Úchunk_size_feed_forwardÚseq_len_dimrr   Ú	attentionrö   ÚmlpÚNORM2FNÚ	norm_typer4   Úlayer_norm_epsÚlayernorm_beforeÚlayernorm_afterÚlayer_scale_init_valuer-   r.   r/   r0   Úlambda_1Úlambda_2r‹   rÒ   r^   )r3   ru   Úinit_valuesr5   s   && €r&   r,   ÚInternVLVisionLayer.__init__L  sù   ø€ Ü‰ÑÔØ'-×'EÑ'EˆÔ$ØˆÔÜ0°Ó8ˆŒÜ$ VÓ,ˆŒä '¨×(8Ñ(8Ö 9¸&×:LÑ:LÐRX×RgÑRgÔ hˆÔÜ& v×'7Ñ'7Ö8¸×9KÑ9KÐQW×QfÑQfÔgˆÔà×3Ñ3ˆÜŸš [´5·:²:¸f×>PÑ>PÓ3QÕ%QÐaeÔfˆŒÜŸš [´5·:²:¸f×>PÑ>PÓ3QÕ%QÐaeÔfˆŒÜ—z’z &×"<Ñ"<Ó=ˆŽr)   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r8   r:   )r$   r%   s   "€r&   r'   r	  [  s'   ø€ ÷ ñ á—|‘|ðñ 
�‰ñr)   c                ó8  € V P                  V P                  V4      4      w  r#V P                  V,          pW!,           pV P                  V4      pV P	                  V4      pV P                  V4      pV P                  e   V P                  V,          pWA,           pV# r¢   )r  r  r  r  r  r^   r  )r3   r9   Úattention_outputr�   Úlayer_outputs   &&   r&   rG   ÚInternVLVisionLayer.forward[  s–   € ð #Ÿn™nØ×!Ñ! -Ó0ó
ÑÐð  Ÿ=™=Ð+;Õ;Ðð )Õ8ˆð ×+Ñ+¨MÓ:ˆà—x‘x Ó-ˆØ—|‘| LÓ1ˆà�=‰=Ò$ØŸ=™=¨<Õ7ˆLð $Õ3ˆàÐr)   )	r  r  r^   r  r  r  r  r  r  r£   rV   s   @@r&   r  r  I  s!   ù‡ € ÙI÷>ó >÷÷ ð r)   r  c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚInternVLVisionEncoderiw  c                ó$   <€ V ^8„  d   QhRS[ RR/# rÃ   rv   )r$   r%   s   "€r&   r'   Ú"InternVLVisionEncoder.__annotate__x  s   ø€ ÷ ,ñ ,Ñ3ð ,¸ñ ,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)
r+   r,   ru   r-   Ú
ModuleListÚrangeÚnum_hidden_layersr  ÚlayerÚgradient_checkpointing)r3   ru   Úir5   s   && €r&   r,   ÚInternVLVisionEncoder.__init__x  sS   ø€ Ü‰ÑÔØŒÜ—]’]ÌÈv×OgÑOgÔIhÓ#iÑIhÀAÔ$7¸Ö$?ÑIhÑ#iÓjˆŒ
Ø&+ˆÖ#ùò $js   ½A&c                óJ   <€ V ^8„  d   QhRS[ P                  RS[S[,          /# r8   )r/   r;   rJ   r   )r$   r%   s   "€r&   r'   r#  ~  s(   ø€ ÷ 	
ñ 	
á—|‘|ð	
ñ 
‘Õ	 ñ	
r)   c                óP   € V P                    F  pV! V4      pK  	  \        VR 7      # ))Úlast_hidden_state)r(  r   )r3   r9   Úlayer_modules   && r&   rG   ÚInternVLVisionEncoder.forward~  s.   € ð !ŸJœJˆLÙ(¨Ó7ŠMñ 'ô Ø+ô
ð 	
r)   )ru   r)  r(  r  rV   s   @@r&   r!  r!  w  s   ù‡ € ÷,ó ,÷	
÷ 	
ð 	
r)   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# )ÚInternVLVisionPreTrainedModeliŠ  Úinternvl_visionr¸   Tr  r9   Ú
attentionsc                óV  <€ \         SV `  V4       \        V\        4      '       d�   \        P
                  ! VP                  4       VP                  e!   \        P
                  ! VP                  4       VP                  e#   \        P
                  ! VP                  4       R# R# \        V\        4      '       dm   \        P                  ! VP                  V P                  P                  4       \        P                  ! VP                  V P                  P                  4       R# R# )zInitialize the weightsN)r+   Ú_init_weightsrÌ   rÁ   ÚinitÚzeros_rÈ   rÊ   rÑ   r  Ú	constant_r  ru   r  r  )r3   rX   r5   s   &&€r&   r6  Ú+InternVLVisionPreTrainedModel._init_weightsœ  s¾   ø€ ô 	‰Ñ˜fÔ%Ü�fÔ6×7Ò7Ü�KŠK˜×(Ñ(Ô)Ø× Ñ Ò,Ü—’˜F×-Ñ-Ô.Ø×)Ñ)Ò5Ü—’˜F×6Ñ6Ö7ñ 6ä˜Ô 3×4Ò4Ü�NŠN˜6Ÿ?™?¨D¯K©K×,NÑ,NÔOÜ�NŠN˜6Ÿ?™?¨D¯K©K×,NÑ,NÖOñ 5r)   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # rt   rv   )r$   r%   s   "€r&   r'   Ú*InternVLVisionPreTrainedModel.__annotate__Š  s   ø‡ ‚ á Ñ ò r)   r©   )ÚimageÚvideo)rO   rP   rQ   rR   Úbase_model_prefixÚmain_input_nameÚinput_modalitiesÚsupports_gradient_checkpointingÚ_no_split_modulesÚ_supports_sdpaÚ_supports_flash_attnÚ_supports_flex_attnÚ_supports_attention_backendr  rr   Ú_can_record_outputsr/   Úno_gradr6  Ú__annotate_func__rS   rT   rU   rV   s   @@r&   r2  r2  Š  sw   ù‡ € ð *ÐØ$€OØ)ÐØ&*Ð#Ø.Ð/ÐØ€NØÐØÐØ"&Ðð 	Ð,ØÐ-ðÐð
 ‡]‚]ƒ_ôPó ðP÷' … r)   r2  c                   ó†   a a€ ] tR tRt oV3R lV 3R lltR t]]! RR7      ]R
V3R lR ll4       4       4       t	R	t
VtV ;t# )ÚInternVLVisionModeli«  c                ó$   <€ V ^8„  d   QhRS[ RR/# rÃ   rv   )r$   r%   s   "€r&   r'   Ú InternVLVisionModel.__annotate__­  s   ø€ ÷ ñ Ñ3ð ¸ñ r)   c                óB  <€ \         SV `  V4       Wn        \        V4      V n        \        V4      V n        VP                  '       d   \        P                  ! 4       M+\        P                  ! VP                  VP                  R 7      V n        V P                  4        R# )r  N)r+   r,   ru   rÁ   r¾   r!  ÚencoderÚuse_mean_poolingr-   rŒ   Ú	LayerNormr4   r  Ú	layernormÚ	post_initrý   s   &&€r&   r,   ÚInternVLVisionModel.__init__­  sp   ø€ Ü‰Ñ˜Ô ØŒä2°6Ó:ˆŒÜ,¨VÓ4ˆŒð $×4×4Ð4ŒB�KŠKŒM¼"¿,º,Àv×GYÑGYÐ_e×_tÑ_tÔ:uð 	Œð
 	�‰Ör)   c                ó.   € V P                   P                  # r¢   )r¾   rË   rL   s   &r&   Úget_input_embeddingsÚ(InternVLVisionModel.get_input_embeddings»  s   € Ø�‰×/Ñ/Ð/r)   F)Útie_last_hidden_statesc                ór   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          /# rê   )r/   r;   rì   rJ   r¨   )r$   r%   s   "€r&   r'   rN  Á  s:   ø€ ÷ 
ñ 
Ù!ŸL™Lð
Ù;@×;KÑ;KÈdÕ;Rð
á	Ñ5Õ	5ñ
r)   c                óÀ   € V P                  WR7      pV P                  V4      pV^ ,          pV P                  V4      p\        VVP                  VP
                  R7      # )z³
bool_masked_pos (`torch.BoolTensor` of shape `(batch_size, num_patches)`, *optional*):
    Boolean masked positions. Indicates which patches are masked (1) and which aren't (0).
)rë   )r.  r9   r4  )r¾   rP  rS  r¨   r9   r4  )r3   r¸   rë   rk   Úembedding_outputÚencoder_outputsÚsequence_outputs   &&&,   r&   rG   ÚInternVLVisionModel.forward¾  s^   € ð  Ÿ?™?¨<˜?ÓYÐàŸ,™,Ð'7Ó8ˆØ)¨!Õ,ˆØŸ.™.¨Ó9ˆä3Ø-Ø)×7Ñ7Ø&×1Ñ1ô
ð 	
r)   )ru   r¾   rP  rS  r¢   )rO   rP   rQ   rR   r,   rW  r   r   r   rG   rS   rT   rU   rV   s   @@r&   rL  rL  «  sG   ù‡ € ÷ó ò0ð  Ù¨EÔ2Ø÷
ñ 
ó ó 3ó  ÷
ð 
r)   rL  c                   óR   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V 3R ltRtV tR# )	ÚInternVLPreTrainedModeliÕ  ÚmodelTÚpast_key_valuesc                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # rt   ©r   )r$   r%   s   "€r&   r'   Ú$InternVLPreTrainedModel.__annotate__Õ  s   ø‡ ‚ áÑò r)   r©   N)r=  Útextr>  )rO   rP   rQ   rR   r?  rA  rB  Ú_skip_keys_device_placementrE  rD  Ú_can_compile_fullgraphrF  rG  rJ  rS   rT   ©r%   s   @r&   ra  ra  Õ  sF   ø‡ € ð  ÐØ1ÐØ&*Ð#Ø#4Ð"5ÐàÐØ€Nà!ÐØÐØ"&Ð÷ ƒ r)   ra  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚInternVLMultiModalProjectoriå  c                ó    <€ V ^8„  d   QhRS[ /# rt   re  )r$   r%   s   "€r&   r'   Ú(InternVLMultiModalProjector.__annotate__æ  s   ø€ ÷ bñ b™~ñ br)   c                ój  <€ \         SV `  4        \        P                  ! VP                  P
                  \        ^VP                  ,          4      ^,          ,          4      V n        \        P                  ! VP                  P
                  \        ^VP                  ,          4      ^,          ,          VP                  P
                  4      V n        \        VP                  ,          V n        \        P                  ! VP                  P
                  VP                  P
                  4      V n        R# rÆ   )r+   r,   r-   rR  Úvision_configr4   r`   Údownsample_ratior  r…   Útext_configÚlinear_1r   Úprojector_hidden_actÚactÚlinear_2rý   s   &&€r&   r,   Ú$InternVLMultiModalProjector.__init__æ  sÍ   ø€ Ü‰ÑÔÜŸ,š, v×';Ñ';×'GÑ'GÌ#ÈaÐRX×RiÑRiÕNiÓJjÐnoÕJoÕ'oÓpˆŒÜŸ	š	Ø× Ñ ×,Ñ,¬s°1°v×7NÑ7NÕ3NÓ/OÐSTÕ/TÕTÐV\×VhÑVh×VtÑVtó
ˆŒô ˜&×5Ñ5Õ6ˆŒÜŸ	š	 &×"4Ñ"4×"@Ñ"@À&×BTÑBT×B`ÑB`ÓaˆŽr)   c                óŽ   € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV# r¢   )r  rs  ru  rv  )r3   Úimage_featuresr9   s   && r&   rG   Ú#InternVLMultiModalProjector.forwardï  s@   € ØŸ™¨Ó7ˆØŸ™ mÓ4ˆØŸ™ Ó/ˆØŸ™ mÓ4ˆØÐr)   )ru  r  rs  rv  r  rV   s   @@r&   rl  rl  å  s   ù‡ € ÷bó b÷ò r)   rl  zM
    Base class for InternVL 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# )ÚInternVLModelOutputWithPasti÷  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    NÚimage_hidden_states)r/   ÚFloatTensor)r$   r%   s   "€r&   r'   Ú(InternVLModelOutputWithPast.__annotate__÷  s   ø‡ ‚ ñ$ ×*Ñ*¨TÕ1Ñ8ò% r)   r©   )	rO   rP   rQ   rR   r¤   r~  rJ  rS   rT   rj  s   @r&   r|  r|  ÷  s   ø‡ € ñ	ð 59Ð÷% ƒ r)   r|  zx
    The InternVL 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V3R lR lltRtVtV ;t# )ÚInternVLModeli  c                ó    <€ V ^8„  d   QhRS[ /# rt   re  )r$   r%   s   "€r&   r'   ÚInternVLModel.__annotate__  s   ø€ ÷ ñ ™~ñ r)   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 # r¢   )r+   r,   r   Úfrom_configrp  Úvision_towerrl  Úmulti_modal_projectorrr  Úlanguage_modelrT  rý   s   &&€r&   r,   ÚInternVLModel.__init__  sY   ø€ Ü‰Ñ˜Ô Ü%×1Ò1°&×2FÑ2FÓGˆÔä%@ÀÓ%HˆÔ"Ü'×3Ò3°F×4FÑ4FÓGˆÔØ�‰Ör)   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[S[S[,          ,          S[S[,          ,          R,          RS[R,          RS[S[,          RS[S[,          /# ©r    r¸   Úvision_feature_layerNÚvision_feature_select_strategyrk   r"   ©	r/   r  r`   ÚlistÚstrr   r   rJ   r   )r$   r%   s   "€r&   r'   r„    si   ø€ ÷ ,ñ ,á×'Ñ'ð,ñ "¡D©¥I�o±±Sµ	Õ9¸DÕ@ð,ñ ),¨d­
ð	,ñ
 Ñ+Õ,ð,ñ 
Ñ+Õ	+ñ,r)   c                óL  € VP                  V P                  R7      pV P                  P                  pVR	8w  d   RVR&   V P                  ! R
RVRR/VB pVR	8X  d   VP
                  pMVP                  V,          pVR8X  d
   VR,          pVP                  ^,          p\        VR,          4      p	VP                  ^ ,          p
VP                  W©V	R	4      pV P                  WuR7      pVP                  V
R	VP                  R	,          4      pV P                  V4      pWvn        V# )zø
pixel_values (`torch.FloatTensor` of shape `(batch_size, channels, height, width)`)
    The tensors corresponding to the input images.
vision_feature_layer (`int` or `list[int]`):
    Layer index or list of layer indices to extract features from.
)r?   TÚoutput_hidden_statesr¸   Úreturn_dictÚdefaultrÖ   )Úscale_factorr>   r©   )rÚ   rÛ   rÚ   )r@   r?   ru   rq  r‡  r.  r9   rK   r`   r—   Úpixel_shufflerˆ  Úpooler_output)r3   r¸   r�  rŽ  rk   rq  Úvision_outputsÚvision_featuresÚchannelsÚfeature_sizer›   s   &&&&,      r&   Úget_image_featuresÚ InternVLModel.get_image_features  s,  € ð$ $—‘¨T¯Z©Z�Ó8ˆàŸ;™;×7Ñ7ÐØ 2Ô%Ø-1ˆFÐ)Ñ*Ø×*Ò*Ña¸ÐaÐRVÐaÐZ`ÑaˆØ 2Ô%Ø,×>Ñ>‰Oà,×:Ñ:Ð;OÕPˆOØ)¨YÔ6Ø-¨hÕ7ˆOð #×(Ñ(¨Õ+ˆÜ˜8 S�=Ó)ˆØ$×*Ñ*¨1Õ-ˆ
ð *×1Ñ1°*ÈLÐZ\Ó]ˆð ×,Ñ,¨_Ð,Ó\ˆð *×1Ñ1°*¸bÀ/×BWÑBWÐXZÕB[Ó\ˆð ×4Ñ4°_ÓEˆØ'6Ô$àÐr)   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )r    Ú	input_idsÚinputs_embedsry  )r/   Ú
LongTensorr  )r$   r%   s   "€r&   r'   r„  M  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?   Údevicez6Image features and image tokens do not match, tokens: z, features: r©   r>   )rW  r/   Úfullru   Úimage_token_idÚlongr¤  ÚallÚsumrK   rï   r@   r   Únumel)r3   r   r¡  ry  Úspecial_image_maskÚn_image_tokensÚn_image_featuress   &&&&   r&   Úget_placeholder_maskÚ"InternVLModel.get_placeholder_maskM  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                óŠ  <€ 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[S[S[,          ,          S[S[,          ,          R,          R	S[R,          R
S[S[	,          RS[
S[,          /
# )r    r   Nr¸   r\   Úposition_idsrc  r¡  r�  rŽ  rk   r"   )r/   r¢  r  r;   r   r`   r�  r‘  r   r   rJ   r|  )r$   r%   s   "€r&   r'   r„  g  sÎ   ø€ ÷ -
ñ -
á×#Ñ# dÕ*ð-
ñ ×'Ñ'¨$Õ.ð-
ñ Ÿ™ tÕ+ð	-
ñ
 ×&Ñ&¨Õ-ð-
ñ  �ð-
ñ ×(Ñ(¨4Õ/ð-
ñ "¡D©¥I�o±±Sµ	Õ9¸DÕ@ð-
ñ ),¨d­
ð-
ñ Ñ+Õ,ð-
ñ 
Ñ,Õ	,ñ-
r)   c	                ó  € VR J VR J,          '       d   \        R4      hVf   V P                  4       ! V4      pVej   V P                  VVV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/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¡  ry  r\   r±  rc  r¡  )r.  rc  r9   r4  r~  r©   )r   rW  r�  r˜  r@   r¤  r?   r®  Úmasked_scatterr‰  r|  r.  rc  r9   r4  )r3   r   r¸   r\   r±  rc  r¡  r�  rŽ  rk   ry  r«  Úoutputss   &&&&&&&&&,   r&   rG   ÚInternVLModel.forwarde  sG  € ð ˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZàÒ Ø ×5Ñ5Ô7¸	ÓBˆMàÒ#Ø!×4Ñ4Ø)Ø%9Ø/MØ ð	 5ó ÷
 ‰mð ð ,×.Ñ.¨}×/CÑ/CÀ]×EXÑEXÓYˆNØ!%×!:Ñ!:ØÀ~ð ";ó "Ðð *×8Ñ8Ð9KÓ\ˆMà×%Ò%ñ 
Ø)ð
à%ð
ð ,ð
ð (ð	
ð
 ñ
ˆô +Ø%×7Ñ7Ø#×3Ñ3Ø!×/Ñ/Ø×)Ñ)Ø2>Ò2J ô
ð 	
ð
 QUô
ð 	
r)   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# )r    rš  r–  )r/   r;   r#   )r$   r%   s   "€r&   r'   r„  –  s   ø€ ÷ !ñ !©U¯\©\ð !Éñ !r)   c           
     óð  € VP                  4       w  r4rVWR,          ^ 8w  g   WB,          ^ 8w  d   \        R4      hVP                  W4\        WR,          4      \        Wb,          4      4      pVP	                  ^ ^^^4      P                  4       pVP                  V\        WR,          4      \        WB,          4      \        Wb^,          ,          4      4      pVP	                  ^ ^^^4      P                  4       pV# )aÞ  Perform pixel shuffle downsampling on vision features.

Args:
    vision_features (`torch.Tensor`):
        Input tensor of shape (batch_size, width, height, channels).
    scale_factor (`float`, *optional*, defaults to `0.5`):
        Factor by which to downsample. Default is 0.5, which halves the dimensions.

Returns:
    vision_features (`torch.Tensor`):
        Downsampled tensor of shape (batch_size, height*scale_factor, width*scale_factor, channels/(scale_factor^2)).
zKHeight and width must be divisible by scale_factor for proper downsampling.)r–   r   r˜   r`   rÞ   rj   )r3   rš  r–  r›   r½   r¼   r›  s   &&&    r&   r—  ÚInternVLModel.pixel_shuffle–  sã   € ð />×.BÑ.BÓ.DÑ+ˆ
˜6àÕ  AÔ%¨Õ)=ÀÔ)BÜÐjÓkÐkð *×.Ñ.Øœs 6Õ#8Ó9¼3¸xÕ?VÓ;Wó
ˆð *×1Ñ1°!°Q¸¸1Ó=×HÑHÓJˆð *×.Ñ.Øœ˜FÕ1Ó2´C¸Õ8LÓ4MÌsÐS[ÐmnÕ_nÕSoÓOpó
ˆð
 *×1Ñ1°!°Q¸¸1Ó=×HÑHÓJˆàÐr)   )r‰  rˆ  r‡  ©NN)NNNNNNNN)rÖ   )rO   rP   rQ   rR   r,   r   r   r   r�  r®  rG   r—  rS   rT   rU   rV   s   @@r&   r‚  r‚    s|   ù‡ € ÷ó ð  ØÙØnô÷,ñ ,óó ó  ð
,÷\"ð "ð0 Ø÷-
ñ -
ó ó ð-
÷^!÷ !ò !r)   r‚  zT
    Base class for InternVL causal language model (or autoregressive) outputs.
    c                   ó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# )ÚInternVLCausalLMOutputWithPastiº  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    NÚlossÚlogitsrc  r9   r4  r~  )r/   r  r   rJ   )r$   r%   s   "€r&   r'   Ú+InternVLCausalLMOutputWithPast.__annotate__º  s˜   ø‡ ‚ ñ, ×
Ñ
˜dÕ
"Ñ)ñ- ñ. ×Ñ Õ$Ñ+ñ/ ñ0 ˜T•\Ñ(ñ1 ñ2 ™×*Ñ*Õ+¨dÕ2Ñ9ñ3 ñ4 ‘e×'Ñ'Õ(¨4Õ/Ñ6ñ5 ñ6 ×*Ñ*¨TÕ1Ñ8ò7 r)   r©   )rO   rP   rQ   rR   r¤   r½  r¾  rc  r9   r4  r~  rJ  rS   rT   rj  s   @r&   r»  r»  º  s2   ø‡ € ñð &*€DØ'+€FØ$(€OØ59€MØ26€JØ48Ð÷7 ƒ r)   r»  zV
    The INTERNVL model which consists of a vision backbone and a language model.
    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# )Ú InternVLForConditionalGenerationiØ  zlm_head.weightz(model.language_model.embed_tokens.weightc                ó    <€ V ^8„  d   QhRS[ /# rt   re  )r$   r%   s   "€r&   r'   Ú-InternVLForConditionalGeneration.__annotate__à  s   ø€ ÷ ñ ™~ñ r)   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# )Fry   N)r+   r,   r‚  rb  r-   r…   rr  r4   Ú
vocab_sizeÚlm_headrT  rý   s   &&€r&   r,   Ú)InternVLForConditionalGeneration.__init__à  sS   ø€ Ü‰Ñ˜Ô Ü" 6Ó*ˆŒ
Ü—y’y ×!3Ñ!3×!?Ñ!?À×ASÑAS×A^ÑA^ÐejÔkˆŒØ�‰Ör)   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r    r"   )r-   r_   )r$   r%   s   "€r&   r'   rÃ  æ  s   ø€ ÷ ñ ¡r§y¡yñ r)   c                ó   € V P                   # r¢   )rÆ  rL   s   &r&   Úget_output_embeddingsÚ6InternVLForConditionalGeneration.get_output_embeddingsæ  s   € Ø�|‰|Ðr)   c                óÈ   <€ V ^8„  d   QhRS[ P                  RS[S[S[,          ,          S[S[,          ,          R,          RS[R,          RS[S[,          RS[S[,          /# rŒ  r�  )r$   r%   s   "€r&   r'   rÃ  ê  si   ø€ ÷ 
ñ 
á×'Ñ'ð
ñ "¡D©¥I�o±±Sµ	Õ9¸DÕ@ð
ñ ),¨d­
ð	
ñ
 Ñ+Õ,ð
ñ 
Ñ+Õ	+ñ
r)   c           	     óF   € V P                   P                  ! RR VRVRV/VB # )r¸   r�  rŽ  r©   )rb  r�  )r3   r¸   r�  rŽ  rk   s   &&&&,r&   r�  Ú3InternVLForConditionalGeneration.get_image_featuresé  s@   € ð �z‰z×,Ò,ñ 
Ø%ð
à!5ð
ð ,Jð
ð ñ	
ð 	
r)   c                ó  <€ 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[S[S[,          ,          S[S[,          ,          R,          R	S[R,          R
S[ P                  R,          RS[S[ P                  ,          RS[ P                  R,          RS[S[	,          RS[
S[,          /# )r    r   Nr¸   r\   r±  rc  r¡  r�  rŽ  ÚlabelsÚlogits_to_keepÚimage_sizesrk   r"   )r/   r¢  r  r;   r   r`   r�  r‘  r   r   rJ   r»  )r$   r%   s   "€r&   r'   rÃ  ú  s  ø€ ÷ Q
ñ Q
á×#Ñ# dÕ*ðQ
ñ ×'Ñ'¨$Õ.ðQ
ñ Ÿ™ tÕ+ð	Q
ñ
 ×&Ñ&¨Õ-ðQ
ñ  �ðQ
ñ ×(Ñ(¨4Õ/ðQ
ñ "¡D©¥I�o±±Sµ	Õ9¸DÕ@ðQ
ñ ),¨d­
ðQ
ñ × Ñ  4Õ'ðQ
ñ ™eŸl™lÕ*ðQ
ñ —\‘\ DÕ(ðQ
ñ Ñ+Õ,ðQ
ñ 
Ñ/Õ	/ñQ
r)   c                óÆ  € V P                   ! RRV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                  VP                  R7      # )as  
Example:

```python
>>> import torch
>>> from transformers import AutoProcessor, AutoModelForImageTextToText

>>> torch_device = "cuda"
>>> processor = AutoProcessor.from_pretrained("OpenGVLab/InternVL3-1B-hf")
>>> model = AutoModelForImageTextToText.from_pretrained(
...     "OpenGVLab/InternVL3-1B-hf", dtype=torch.bfloat16, device_map=torch_device
... )

>>> messages = [
...     {
...         "role": "user",
...         "content": [
...             {
...                 "type": "image",
...                 "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg",
...             },
...             {
...                 "type": "image",
...                 "url": "https://thumbs.dreamstime.com/b/golden-gate-bridge-san-francisco-purple-flowers-california-echium-candicans-36805947.jpg",
...             },
...             {"type": "text", "text": "These images depict two different landmarks. Can you identify them?"},
...         ],
...     },
... ]

>>> inputs = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt").to(torch_device)
>>> generate_ids = model.generate(**inputs, max_new_tokens=200)
>>> print(processor.decode(generate_ids[0, inputs["input_ids"].shape[1] :], skip_special_tokens=True))
The images depict the Statue of Liberty and the Golden Gate Bridge.
```r   r¸   r\   r±  rc  r¡  r�  rŽ  rÒ  NrÚ   r¾  rÐ  rÅ  )r½  r¾  rc  r9   r4  r~  r©   )rb  rÌ   r`   ÚslicerÆ  Úloss_functionru   rr  rÅ  r»  rc  r9   r4  r~  )r3   r   r¸   r\   r±  rc  r¡  r�  rŽ  rÐ  rÑ  rÒ  rk   r´  r9   Úslice_indicesr¾  r½  s   &&&&&&&&&&&&,     r&   rG   Ú(InternVLForConditionalGeneration.forwardø  s;  € ðh —*’*ñ 
Øð
à%ð
ð *ð
ð &ð	
ð
 ,ð
ð (ð
ð "6ð
ð ,Jð
ð $ð
ð ñ
ˆð   �
ˆä8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ—‘˜m¨A¨}¸aÐ,?Õ@ÓAˆàˆØÒØ×%Ò%ñ ØðØ&,ðØ9=¿¹×9PÑ9P×9[Ñ9[ðØ_eñˆDô .ØØØ#×3Ñ3Ø!×/Ñ/Ø×)Ñ)Ø '× ;Ñ ;ô
ð 	
r)   )rÆ  rb  r¹  )NNNNNNNNNr   N)rO   rP   rQ   rR   Ú_tied_weights_keysr,   rÊ  r   r�  r   rG   rS   rT   rU   rV   s   @@r&   rÁ  rÁ  Ø  sj   ù‡ € ð +Ð,VÐWÐ÷ó ÷ð ð ÷
ñ 
ó ð
ð Ø÷Q
ñ Q
ó ó ÷Q
ð Q
r)   rÁ  )r•   )r2  rL  ra  r‚  rÁ  )CÚcollections.abcrÍ   r   Údataclassesr   r/   Útorch.nnr-   Ú r   r7  Úactivationsr   Úcache_utilsr   Ú
generationr   Úintegrationsr	   Úmodeling_layersr
   Úmodeling_outputsr   r   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   r   r   Úutils.genericr   r   Úutils.output_capturingr   Úautor   Úconfiguration_internvlr   r   r_   r   rp   rr   r¨   r«   rÁ   rö   rR  r  r  r!  r2  rL  ra  rl  r|  r‚  r»  rÁ  Ú__all__r©   r)   r&   Ú<module>rë     s?  ðó, Ý $Ý !ã Ý å &Ý !Ý  Ý )Ý 7Ý 9ß dÑ dß FÝ &ß gÕ gß IÝ 5Ý ß Hñ ˜YÓ'ôJ˜BŸI™Ió Jó (ðJ÷(%ô4F$˜bŸi™iô F$ñR ðôð
 ôÐ+Eó ó óðô  B§I¡Iô  ôJ[˜rŸy™yô [ô|˜Ÿ	™	ô ð ˜Ÿ™ zÐ3HÐ
I€ô+Ð4ô +ô\
˜BŸI™Iô 
ð& ôP Oó Pó ðPð@ ô&
Ð7ó &
ó ð&
ðR ô'˜oó 'ó ð'ô "§)¡)ô ñ$ ðôð
 ô9Ð"9ó 9ó óð9ñ ðôô
fÐ+ó fóð
fñR ðôð
 ô9 [ó 9ó óð9ñ0 ðôô
n
Ð'>Àó n
óð
n
òb‚r)   