+
    œ°³j¶I  ã                   óH  € ^ 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Ht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 ]! R4       ! R R]P>                  4      4       t  ! R R]P>                  4      t! ! R R]P>                  4      t"]! RR7      ] ! R R]4      4       4       t#]! RR7      ] ! R R]4      4       4       t$] ! R R]4      4       t%]! RR7       ! R  R!]%4      4       t&]! R"R7       ! R# R$]%]	4      4       t'. R%Ot(R# )&é    )Ú	dataclassN)Únn)ÚACT2FN)ÚCache)ÚGenerationMixin)Úuse_kernel_forward_from_hub)ÚBaseModelOutputWithPastÚBaseModelOutputWithPoolingÚModelOutput)ÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚtorch_compilable_check)Úcan_return_tupleÚmerge_with_config_defaults)Ú	AutoModel©ÚMistral3ConfigÚ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	# )ÚMistral3RMSNormc                ó$   <€ 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/mistral3/modeling_mistral3.pyÚ__annotate__ÚMistral3RMSNorm.__annotate__*   s   ø€ ÷ $ñ $©ð $¸$ñ $ó    c                óŽ   <€ \         SV `  4        \        P                  ! \        P
                  ! V4      4      V n        W n        R# )z.
Mistral3RMSNorm is equivalent to T5LayerNorm
N)ÚsuperÚ__init__r   Ú	ParameterÚtorchÚonesÚweightÚvariance_epsilon)ÚselfÚhidden_sizer   Ú	__class__s   &&&€r    r&   ÚMistral3RMSNorm.__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"   2   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Úrsqrtr+   r*   )r,   r1   Úinput_dtypeÚvariances   &&  r    ÚforwardÚMistral3RMSNorm.forward2   sw   € Ø#×)Ñ)ˆØ%×(Ñ(¬¯©Ó7ˆØ ×$Ñ$ QÓ'×,Ñ,¨R¸Ð,Ó>ˆØ%¬¯ª°H×?TÑ?TÕ4TÓ(UÕUˆØ�{‰{˜]×-Ñ-¨kÓ:Õ:Ð:r#   c                ó^   € \        V P                  P                  4       R V P                   2# )z, eps=)Útupler*   Úshaper+   ©r,   s   &r    Ú
extra_reprÚMistral3RMSNorm.extra_repr9   s*   € Ü˜Ÿ™×)Ñ)Ó*Ð+¨6°$×2GÑ2GÐ1HÐIÐIr#   )r+   r*   )g�íµ ÷Æ°>)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r&   r?   rE   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r.   r   s   @@r    r   r   (   s%   ù‡ € ÷$õ $÷;ð ;÷Jò Jr#   r   c                   óT   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tVtV ;t	# )ÚMistral3PatchMergerz4
Learned merging of spatial_merge_size ** 2 patches
c                ó    <€ V ^8„  d   QhRS[ /# ©r   Úconfigr   )r   r   s   "€r    r!   Ú Mistral3PatchMerger.__annotate__B   s   ø€ ÷ jñ j™~ñ jr#   c                ó2  <€ \         SV `  4        Wn        VP                  P                  pVP
                  V n        V P                  P                  P                  V n        \        P                  ! W P
                  ^,          ,          VRR7      V n	        R# )r   F©ÚbiasN)
r%   r&   rS   Úvision_configr-   Úspatial_merge_sizeÚ
patch_sizer   ÚLinearÚmerging_layer)r,   rS   r-   r.   s   && €r    r&   ÚMistral3PatchMerger.__init__B   sn   ø€ Ü‰ÑÔØŒà×*Ñ*×6Ñ6ˆØ"(×";Ñ";ˆÔØŸ+™+×3Ñ3×>Ñ>ˆŒÜŸYšY {×5LÑ5LÈaÕ5OÕ'OÐQ\ÐchÔiˆÖr#   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )r   Úimage_featuresÚimage_sizesr   r2   )r   r   s   "€r    r!   rT   K   s1   ø€ ÷ ñ ¡e§l¡lð ÁÇÁð ÑRW×R^ÑR^ñ r#   c                ó  € V Uu. uF6  q3^ ,          V P                   ,          V^,          V P                   ,          3NK8  	  ppV UUu. uF  w  rEWE,          NK  	  pppVP                  R,          p. p\        VP                  V4      4       FÈ  w  ršW),          w  rEV
P	                  WEV4      P                  ^^ ^4      P                  ^ 4      p\        P                  P                  P                  W°P                  V P                  R7      pVP	                  WpP                  ^,          ,          R4      P                  4       pVP                  V4       KÊ  	  \        P                  ! V^ R7      pV P                  V4      pV# u upi u uppi )r   )Úkernel_sizeÚstride©Údimr6   )rZ   rC   Ú	enumerateÚsplitÚviewÚpermuteÚ	unsqueezer(   r   Ú
functionalÚunfoldrY   ÚtÚappendÚcatr\   )r,   r_   r`   Ú
image_sizeÚhÚwÚtokens_per_imageÚdÚpermuted_tensorÚimage_indexÚimage_tokensÚ
image_gridÚgrids   &&&          r    r?   ÚMistral3PatchMerger.forwardK   s]  € ácnó
ÙcnÐU_˜�]˜dŸo™oÕ-¨z¸!­}ÀÇÁÕ/OÓPÑcnð 	ð 
ñ /:Ô:©k¡d a˜AŸE˜E©kÐÑ:Ø× Ñ  Õ$ˆàˆÜ)2°>×3GÑ3GÐHXÓ3YÖ)ZÑ%ˆKàÕ+‰DˆAØ%×*Ñ*¨1°Ó3×;Ñ;¸A¸qÀ!ÓD×NÑNÈqÓQˆJÜ—8‘8×&Ñ&×-Ñ-Ø×(?Ñ(?È×H_ÑH_ð .ó ˆDð —9‘9˜Q×!8Ñ!8¸!Õ!;Õ;¸RÓ@×BÑBÓDˆDØ×"Ñ" 4Ö(ñ *[ô Ÿš ?¸Ô:ˆØ×+Ñ+¨NÓ;ˆØÐùò)
ùó ;s   …<FÁF	)rS   r\   rZ   rY   )
rG   rH   rI   rJ   Ú__doc__r&   r?   rK   rL   rM   rN   s   @@r    rP   rP   =   s%   ù‡ € ñ÷jó j÷÷ ð r#   rP   c                   óP   a a€ ] tR t^ct oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚMistral3MultiModalProjectorc                ó    <€ V ^8„  d   QhRS[ /# rR   r   )r   r   s   "€r    r!   Ú(Mistral3MultiModalProjector.__annotate__d   s   ø€ ÷ 
ñ 
™~ñ 
r#   c                óÊ  <€ \         SV `  4        \        VP                  P                  VP
                  P                  R 7      V n        \        V4      V n	        \        VP                  \        4      '       d   ^M\        VP                  4      V n        \        P                   ! VP                  P                  V P                  ,          VP
                  P                  VP"                  R7      V n        \&        VP(                  ,          V n        \        P                   ! VP
                  P                  VP
                  P                  VP"                  R7      V n        R# ))r   rV   N)r%   r&   r   rX   r-   Útext_configÚrms_norm_epsÚnormrP   Úpatch_mergerÚ
isinstanceÚvision_feature_layerÚintÚlenÚnum_feature_layersr   r[   Úmultimodal_projector_biasÚlinear_1r   Úprojector_hidden_actÚactÚlinear_2©r,   rS   r.   s   &&€r    r&   Ú$Mistral3MultiModalProjector.__init__d   sû   ø€ Ü‰ÑÔÜ# F×$8Ñ$8×$DÑ$DÈ&×J\ÑJ\×JiÑJiÔjˆŒ	Ü/°Ó7ˆÔô ˜F×7Ñ7¼×=Ò=‰AÄ3Àv×GbÑGbÓCcð 	Ôô Ÿ	š	Ø× Ñ ×,Ñ,¨t×/FÑ/FÕFØ×Ñ×*Ñ*Ø×1Ñ1ô
ˆŒô
 ˜&×5Ñ5Õ6ˆŒÜŸ	š	Ø×Ñ×*Ñ*¨F×,>Ñ,>×,JÑ,JÐQW×QqÑQqô
ˆŽr#   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   r_   r`   r2   )r   r   s   "€r    r!   r   v   s#   ø€ ÷ ñ ¡e§l¡lð ÁÇÁñ r#   c                ó°   € V P                  V4      pV P                  W4      pV P                  V4      pV P                  V4      pV P	                  V4      pV# ©N)rƒ   r„   r‹   r�   rŽ   )r,   r_   r`   r1   s   &&& r    r?   Ú#Mistral3MultiModalProjector.forwardv   sP   € ØŸ™ >Ó2ˆØ×*Ñ*¨>ÓGˆØŸ™ nÓ5ˆØŸ™ Ó/ˆØŸ™ mÓ4ˆØÐr#   )r�   r‹   rŽ   rƒ   r‰   r„   )	rG   rH   rI   rJ   r&   r?   rK   rL   rM   rN   s   @@r    r}   r}   c   s   ù‡ € ÷
ó 
÷$÷ ð r#   r}   zT
    Base class for Mistral3 causal language model (or autoregressive) outputs.
    ©Úcustom_introc                   óH   a € ] tR t^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# )ÚMistral3CausalLMOutputWithPasta  
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ÚlogitsÚpast_key_valuesr1   Ú
attentionsÚimage_hidden_states)r(   ÚFloatTensorr   rB   )r   r   s   "€r    r!   Ú+Mistral3CausalLMOutputWithPast.__annotate__   s˜   ø‡ ‚ ñ, ×
Ñ
˜dÕ
"Ñ)ñ- ñ. ×Ñ Õ$Ñ+ñ/ ñ0 ˜T•\Ñ(ñ1 ñ2 ™×*Ñ*Õ+¨dÕ2Ñ9ñ3 ñ4 ‘e×'Ñ'Õ(¨4Õ/Ñ6ñ5 ñ6 ×*Ñ*¨TÕ1Ñ8ò7 r#   © )rG   rH   rI   rJ   r{   rš   r›   rœ   r1   r�   rž   Ú__annotate_func__rK   rL   ©r   s   @r    r˜   r˜      s2   ø‡ € ñð &*€DØ'+€FØ$(€OØ59€MØ26€JØ48Ð÷7 ƒ r#   r˜   zM
    Base class for Mistral3 outputs, with hidden states and attentions.
    c                   ó4   a € ] tR t^�t o RtRtV 3R ltRtV tR# )ÚMistral3ModelOutputWithPasta¯  
past_key_values (`Cache`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`):
    It is a [`~cache_utils.Cache`] instance. For more details, see our [kv cache guide](https://huggingface.co/docs/transformers/en/kv_cache).

    Contains pre-computed hidden-states (key and values in the self-attention blocks) that can be used (see
    `past_key_values` input) to speed up sequential decoding.
image_hidden_states (`torch.FloatTensor`, *optional*):
    A `torch.FloatTensor` of size `(batch_size, num_images, sequence_length, hidden_size)`.
    image_hidden_states of the model produced by the vision encoder and after projecting the last hidden state.
Nc                óH   <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   # )r   Nrž   )r(   rŸ   )r   r   s   "€r    r!   Ú(Mistral3ModelOutputWithPast.__annotate__�   s   ø‡ ‚ ñ$ ×*Ñ*¨TÕ1Ñ8ò% r#   r¡   )	rG   rH   rI   rJ   r{   rž   r¢   rK   rL   r£   s   @r    r¥   r¥   �   s   ø‡ € ñ	ð 59Ð÷% ƒ r#   r¥   c                   óR   a € ] tR t^²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# )ÚMistral3PreTrainedModelÚmodelTrœ   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # rR   r   )r   r   s   "€r    r!   Ú$Mistral3PreTrainedModel.__annotate__²   s   ø‡ ‚ áÑò r#   r¡   N)ÚimageÚtext)rG   rH   rI   rJ   Úbase_model_prefixÚinput_modalitiesÚsupports_gradient_checkpointingÚ_skip_keys_device_placementÚ_supports_flash_attnÚ_supports_sdpaÚ_can_compile_fullgraphÚ_supports_flex_attnÚ_supports_attention_backendr¢   rK   rL   r£   s   @r    r©   r©   ²   sF   ø‡ € ð  ÐØ(ÐØ&*Ð#Ø#4Ð"5ÐàÐØ€Nà!ÐØÐØ"&Ð÷ ƒ r#   r©   zx
    The Mistral3 model which consists of a vision backbone and a language model, without a language modeling head.
    c                   óÆ   a a€ ] tR t^Â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       4       t
RtVtV ;t# )ÚMistral3Modelc                ó    <€ V ^8„  d   QhRS[ /# rR   r   )r   r   s   "€r    r!   ÚMistral3Model.__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_configrX   Úvision_towerr}   Úmulti_modal_projectorr�   Úlanguage_modelÚ	post_initr�   s   &&€r    r&   ÚMistral3Model.__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[ P                  RS[S[S[,          ,          S[S[,          ,          R,          RS[R,          RS[S[,          RS[S[	,          /# )r   Úpixel_valuesr`   r†   NÚoutput_hidden_statesÚkwargsr   )
r(   rŸ   r3   r‡   ÚlistÚboolr   r   rB   r
   )r   r   s   "€r    r!   r»   Õ   sw   ø€ ÷ !ñ !á×'Ñ'ð!ñ —\‘\ð!ñ "¡D©¥I�o±±Sµ	Õ9¸DÕ@ð	!ñ
 # T�kð!ñ Ñ+Õ,ð!ñ 
Ñ+Õ	+ñ!r#   c           	     óî  € VP                  4        UUu/ uF  w  rgVf   K  WgbK  	  pppV P                  ! V3RVRRRR/VB p\        V\        4      '       d   VP                  V,          p	M9V U
u. uF  q¨P                  V
,          NK  	  pp
\
        P                  ! VRR7      p	V P                  V	P                  ^ 4      V4      pV P                  P                  V P                  P                  ,          p\
        P                  ! W,P                  R7      V,          P                  RR7      P                  4       p\
        P                   ! VP                  ^ 4      V4      pWÈn        V# u uppi u up
i )Nr`   rÅ   TÚreturn_dictrd   )Údevicer6   )Úitemsr¾   r…   r‡   r1   r(   ro   r¿   ÚsqueezerZ   rS   rY   Ú	as_tensorrË   ÚprodÚtolistrg   Úpooler_output)r,   rÄ   r`   r†   rÅ   rÆ   ÚkÚvÚimage_outputsÚselected_image_featureÚ	layer_idxÚhs_poolr_   Údownsample_ratioÚsplit_sizess   &&&&&,         r    Úget_image_featuresÚ Mistral3Model.get_image_featuresÐ   s_  € ð $*§<¡<¤>ÔC¡>™4˜1°Q”$�!’$¡>ˆÑCà×)Ò)Øñ
à#ð
ð "&ð
ð ð	
ð
 ñ
ˆô Ð*¬C×0Ò0Ø%2×%@Ñ%@ÐAUÕ%VÑ"áOcÓdÑOcÀ)×2Ñ2°9×=Ð=ÑOcˆGÐdÜ%*§Y¢Y¨w¸BÔ%?Ð"à×3Ñ3Ð4J×4RÑ4RÐSTÓ4UÐWbÓcˆØ×,Ñ,×7Ñ7¸$¿+¹+×:XÑ:XÕXÐä�_Š_˜[×1FÑ1FÔGÐK[Õ[×aÑaÐfhÐaÓi×pÑpÓrð 	ô Ÿš ^×%;Ñ%;¸AÓ%>ÀÓLˆØ&4Ô#àÐùó3 Dùò es   ”E,¡E,Á1E2c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )r   Ú	input_idsÚinputs_embedsr_   )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.
)r7   rË   z6Image features and image tokens do not match, tokens: z, features: r¡   r6   )Úget_input_embeddingsr(   ÚfullrS   Úimage_token_idÚlongrË   ÚallÚsumrC   rj   r8   r   Únumel)r,   rÝ   rÞ   r_   Úspecial_image_maskÚn_image_tokensÚn_image_featuress   &&&&   r    Úget_placeholder_maskÚ"Mistral3Model.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                ó²  <€ 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[	,          RS[
S[,          /# )r   rÝ   NrÄ   Úattention_maskÚposition_idsrœ   rÞ   r†   Ú	use_cacher`   rÆ   r   )r(   rß   rŸ   r3   r   r‡   rÇ   rÈ   r   r   rB   r¥   )r   r   s   "€r    r!   r»     sá   ø€ ÷ /
ñ /
á×#Ñ# dÕ*ð/
ñ ×'Ñ'¨$Õ.ð/
ñ Ÿ™ tÕ+ð	/
ñ
 ×&Ñ&¨Õ-ð/
ñ  �ð/
ñ ×(Ñ(¨4Õ/ð/
ñ "¡D©¥I�o±±Sµ	Õ9¸DÕ@ð/
ñ ˜$•;ð/
ñ —\‘\ DÕ(ð/
ñ Ñ+Õ,ð/
ñ 
Ñ,Õ	,ñ/
r#   c
                ó6  € VR J VR J,          '       d   \        R4      hVf   V P                  4       ! V4      pVe€   V P                  VVV	RR7      P                  p\        P
                  ! V^ R7      P                  VP                  VP                  4      pV P                  WVR7      pVP                  WË4      pV P                  ! RRVRVRVR	VR
V/V
B p\        VP                  V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Ê   rd   )rÞ   r_   rî   rï   rœ   rÞ   rð   )Úlast_hidden_staterœ   r1   r�   rž   r¡   )Ú
ValueErrorrá   rÚ   rÑ   r(   ro   r8   rË   r7   rë   Úmasked_scatterrÀ   r¥   rò   rœ   r1   r�   )r,   rÝ   rÄ   rî   rï   rœ   rÞ   r†   rð   r`   rÆ   r_   rè   Úoutputss   &&&&&&&&&&,   r    r?   ÚMistral3Model.forward  s]  € ð  ˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZàÒ Ø ×5Ñ5Ô7¸	ÓBˆMàÒ#Ø!×4Ñ4Ø)Ø%9Ø'Ø ð	 5ó ÷
 ‰mð ô #ŸYšY ~¸1Ô=×@Ñ@À×AUÑAUÐWd×WjÑWjÓkˆNØ!%×!:Ñ!:ØÀ~ð ";ó "Ðð *×8Ñ8Ð9KÓ\ˆMà×%Ò%ñ 
Ø)ð
à%ð
ð ,ð
ð (ð	
ð
  ð
ð ñ
ˆô +Ø%×7Ñ7Ø#×3Ñ3Ø!×/Ñ/Ø×)Ñ)Ø2>Ò2J ô
ð 	
ð
 QUô
ð 	
r#   )rÀ   r¿   r¾   )NN)	NNNNNNNNN)rG   rH   rI   rJ   r&   r   r   r   rÚ   rë   r?   rK   rL   rM   rN   s   @@r    r¹   r¹   Â   sy   ù‡ € ÷ó ð  ØÙØnô÷!ñ !óó ó  ð
!÷F"ð "ð0  ØØ÷/
ñ /
ó ó ó  ÷/
ð /
r#   r¹   zV
    The MISTRAL3 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       4       4       t
]]]	RV3R
 lR ll4       4       4       tRtVtV ;t# )Ú Mistral3ForConditionalGenerationiE  zlm_head.weightz(model.language_model.embed_tokens.weightc                ó    <€ V ^8„  d   QhRS[ /# rR   r   )r   r   s   "€r    r!   Ú-Mistral3ForConditionalGeneration.__annotate__M  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# )FrV   N)r%   r&   r¹   rª   r   r[   r�   r-   Ú
vocab_sizeÚlm_headrÁ   r�   s   &&€r    r&   Ú)Mistral3ForConditionalGeneration.__init__M  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   ÚModule)r   r   s   "€r    r!   rú   S  s   ø€ ÷ ñ ¡r§y¡yñ r#   c                ó   € V P                   # r“   )rý   rD   s   &r    Úget_output_embeddingsÚ6Mistral3ForConditionalGeneration.get_output_embeddingsS  s   € Ø�|‰|Ðr#   c                óÎ   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[S[S[,          ,          S[S[,          ,          R,          RS[S[,          RS[S[,          /# )r   rÄ   r`   r†   NrÆ   r   )	r(   rŸ   r3   r‡   rÇ   r   r   rB   r
   )r   r   s   "€r    r!   rú   Y  si   ø€ ÷ 
ñ 
á×'Ñ'ð
ñ —\‘\ð
ñ "¡D©¥I�o±±Sµ	Õ9¸DÕ@ð	
ñ
 Ñ+Õ,ð
ñ 
Ñ+Õ	+ñ
r#   c           	     óF   € V P                   P                  ! RR VRVRV/VB # )rÄ   r`   r†   r¡   )rª   rÚ   )r,   rÄ   r`   r†   rÆ   s   &&&&,r    rÚ   Ú3Mistral3ForConditionalGeneration.get_image_featuresV  s?   € ð �z‰z×,Ò,ñ 
Ø%ð
à#ð
ð "6ð
ð ñ	
ð 	
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[ P                  R,          R	S[R,          R
S[S[ P                  ,          RS[ P                  R,          RS[S[,          RS[	S[
,          /# )r   rÝ   NrÄ   rî   rï   rœ   rÞ   Úlabelsrð   Úlogits_to_keepr`   rÆ   r   )r(   rß   rŸ   r3   r   rÈ   r‡   r   r   rB   r˜   )r   r   s   "€r    r!   rú   j  s÷   ø€ ÷ C
ñ C
á×#Ñ# dÕ*ðC
ñ ×'Ñ'¨$Õ.ðC
ñ Ÿ™ tÕ+ð	C
ñ
 ×&Ñ&¨Õ-ðC
ñ  �ðC
ñ ×(Ñ(¨4Õ/ðC
ñ × Ñ  4Õ'ðC
ñ ˜$•;ðC
ñ ™eŸl™lÕ*ðC
ñ —\‘\ DÕ(ðC
ñ Ñ+Õ,ðC
ñ 
Ñ/Õ	/ñC
r#   c                óÂ  € V P                   ! RRVRVRVRVRVRVRVRV
/VB pV^ ,          p\        V	\        4      '       d   \        V	) R	4      MT	pV P	                  VR
VR
3,          4      pR	pVe7   V P
                  ! RRVRVRV P                  P                  P                  /VB p\        VVVP                  VP                  VP                  VP                  R7      # )a¡  
Example:

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

>>> model = Mistral3ForConditionalGeneration.from_pretrained("mistralai/Mistral-Small-3.1-24B-Instruct-2503")
>>> processor = AutoProcessor.from_pretrained("mistralai/Mistral-Small-3.1-24B-Instruct-2503")

>>> prompt = "<s>[INST][IMG]What is the image?[/INST]"
>>> url = "http://images.cocodataset.org/val2017/000000039769.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, clean_up_tokenization_spaces=False)[0]
"What is the image?The image depicts two cats lying on a pink blanket."
```rÝ   rÄ   rî   rï   rœ   rÞ   rð   r`   N:NNNr›   r  rü   )rš   r›   rœ   r1   r�   rž   r¡   )rª   r…   r‡   Úslicerý   Úloss_functionrS   r�   rü   r˜   rœ   r1   r�   rž   )r,   rÝ   rÄ   rî   rï   rœ   rÞ   r  rð   r	  r`   rÆ   rõ   r1   Úslice_indicesr›   rš   s   &&&&&&&&&&&,     r    r?   Ú(Mistral3ForConditionalGeneration.forwardg  s0  € ðR —*’*ñ 

Øð

à%ð

ð *ð

ð &ð	

ð
 ,ð

ð (ð

ð  ð

ð $ð

ð ñ

ˆð   �
ˆÜ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“   )
NNNNNNNNr   N)rG   rH   rI   rJ   Ú_tied_weights_keysr&   r  r   r   r   rÚ   r?   rK   rL   rM   rN   s   @@r    rø   rø   E  s‚   ù‡ € ð +Ð,VÐWÐ÷ó ÷ð ð  ØØ÷
ñ 
ó ó ó  ð
ð  ØØ÷C
ñ C
ó ó ó  ÷C
ð C
r#   rø   )r¹   r©   rø   ))Údataclassesr   r(   r   Úactivationsr   Úcache_utilsr   Ú
generationr   Úintegrationsr   Úmodeling_outputsr	   r
   r   Úmodeling_utilsr   Úprocessing_utilsr   Úutilsr   r   r   Úutils.genericr   r   Úautor   Úconfiguration_mistral3r   r   r   rP   r}   r˜   r¥   r©   r¹   rø   Ú__all__r¡   r#   r    Ú<module>r     sW  ðõ, "ã Ý å !Ý  Ý )Ý 7ß `Ñ `Ý -Ý &ß OÑ Oß IÝ Ý 2ñ ˜YÓ'ôJ�b—i‘ió Jó (ðJô(#˜"Ÿ)™)ô #ôL "§)¡)ô ñ8 ðôð
 ô9 [ó 9ó óð9ñ0 ðôð
 ô9Ð"9ó 9ó óð9ð ô'˜oó 'ó ð'ñ ðôô
{
Ð+ó {
óð
{
ñ| ðôô
c
Ð'>Àó c
óð
c
òL [‚r#   