+
    œ°³j®/  ã                   ó¦  € ^ 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 ^RIHtHt ^R	IHtHtHtHtHtHt ^R
IHt ^RIHt ]P6                  ! ]4      t ! R R]4      t ! R R]P>                  4      t  ! R R]P>                  4      t! ! R R]4      t" ! R R]4      t# ! R R]4      t$ ! R R]4      t% ! R R]4      t&. ROt'R# )é    N)Únn)ÚACT2FN)ÚCache)ÚBaseModelOutputWithPooling)ÚUnpack)Úauto_docstringÚlogging)Úcan_return_tupleÚmerge_with_config_defaults)ÚLlavaCausalLMOutputWithPastÚLlavaForConditionalGenerationÚ
LlavaModelÚLlavaModelOutputWithPastÚLlavaPreTrainedModelÚTransformersKwargs)ÚMistralRMSNorm©ÚMistral3Configc                   ó   € ] tR t^(tRtR# )ÚMistral3RMSNorm© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    Ún/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/mistral3/modular_mistral3.pyr   r   (   ó   † Û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[ /# ©é   Úconfigr   )ÚformatÚ__classdict__s   "€r   Ú__annotate__Ú Mistral3PatchMerger.__annotate__1   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)
ÚsuperÚ__init__r&   Úvision_configÚhidden_sizeÚspatial_merge_sizeÚ
patch_sizer   ÚLinearÚmerging_layer)Úselfr&   r1   Ú	__class__s   && €r   r/   ÚMistral3PatchMerger.__init__1   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_sizesÚreturn©ÚtorchÚTensor)r'   r(   s   "€r   r)   r*   :   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©Údiméÿÿÿÿ)r3   ÚshapeÚ	enumerateÚsplitÚviewÚpermuteÚ	unsqueezer>   r   Ú
functionalÚunfoldr2   ÚtÚappendÚcatr5   )r6   r:   r;   Ú
image_sizeÚhÚwÚtokens_per_imageÚdÚpermuted_tensorÚimage_indexÚimage_tokensÚ
image_gridÚgrids   &&&          r   ÚforwardÚMistral3PatchMerger.forward:   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	)r&   r5   r3   r2   )
r   r   r   r   Ú__doc__r/   r[   r   Ú__classdictcell__Ú__classcell__©r7   r(   s   @@r   r"   r"   ,   s%   ù‡ € ñ÷jó j÷÷ ð r   r"   c                   óP   a a€ ] tR t^Rt 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[ /# r$   r   )r'   r(   s   "€r   r)   Ú(Mistral3MultiModalProjector.__annotate__S   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# ))Úepsr,   N)r.   r/   r   r0   r1   Útext_configÚrms_norm_epsÚnormr"   Úpatch_mergerÚ
isinstanceÚvision_feature_layerÚintÚlenÚnum_feature_layersr   r4   Úmultimodal_projector_biasÚlinear_1r   Úprojector_hidden_actÚactÚlinear_2)r6   r&   r7   s   &&€r   r/   Ú$Mistral3MultiModalProjector.__init__S   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;   r=   )r'   r(   s   "€r   r)   rd   e   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)ri   rj   rq   rs   rt   )r6   r:   r;   Úhidden_statess   &&& r   r[   Ú#Mistral3MultiModalProjector.forwarde   sP   € ØŸ™ >Ó2ˆØ×*Ñ*¨>ÓGˆØŸ™ nÓ5ˆØŸ™ Ó/ˆØŸ™ mÓ4ˆØÐr   )rs   rq   rt   ri   ro   rj   )	r   r   r   r   r/   r[   r   r^   r_   r`   s   @@r   rb   rb   R   s   ù‡ € ÷
ó 
÷$÷ ð r   rb   c                   ó   € ] tR t^ntRtR# )ÚMistral3CausalLMOutputWithPastr   Nr   r   r   r   r|   r|   n   r    r   r|   c                   ó   € ] tR t^rtRtR# )ÚMistral3ModelOutputWithPastr   Nr   r   r   r   r~   r~   r   r    r   r~   c                   ó   € ] tR t^vtRtR# )ÚMistral3PreTrainedModelr   Nr   r   r   r   r€   r€   v   r    r   r€   c                   ó–   a € ] tR t^zt o ]]]! RR7      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
R# )ÚMistral3ModelzWObtains image last hidden states from the vision tower and apply multimodal projection.)Úcustom_introNc                óâ   <€ 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;   rl   NÚoutput_hidden_statesÚkwargsr<   )
r>   ÚFloatTensorr?   rm   ÚlistÚboolr   r   Útupler   )r'   r(   s   "€r   r)   ÚMistral3Model.__annotate__€   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_dictrC   )ÚdevicerE   )ÚitemsÚvision_towerrk   rm   ry   r>   rP   Úmulti_modal_projectorÚsqueezer3   r&   r2   Ú	as_tensorr�   ÚprodÚtolistrH   Úpooler_output)r6   r…   r;   rl   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                ó²  <€ 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%   Ú	input_idsNr…   Úattention_maskÚposition_idsÚpast_key_valuesÚinputs_embedsrl   Ú	use_cacher;   r‡   r<   )r>   Ú
LongTensorrˆ   r?   r   rm   r‰   rŠ   r   r   r‹   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…   rl   r;   rŽ   rC   )r§   r:   r¤   r¥   r¦   r§   r¨   )Úlast_hidden_stater¦   ry   Ú
attentionsÚimage_hidden_statesr   )Ú
ValueErrorÚget_input_embeddingsr    r—   r>   rP   Útor�   ÚdtypeÚget_placeholder_maskÚmasked_scatterÚlanguage_modelr~   r«   r¦   ry   r¬   )r6   r£   r…   r¤   r¥   r¦   r§   rl   r¨   r;   r‡   r:   Úspecial_image_maskÚ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   )NN)	NNNNNNNNN©r   r   r   r   r   r
   r   r    r[   r   r^   ©r(   s   @r   r‚   r‚   z   s^   ø‡ € ØØÙØnô÷!ñ !óó ó  ð
!ðF  ØØ÷/
ñ /
ó ó ó  ö/
r   r‚   c                   óˆ   a € ] tR t^Øt o ]]]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
R# )	Ú Mistral3ForConditionalGenerationNc                óÎ   <€ 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;   rl   Nr‡   r<   )	r>   rˆ   r?   rm   r‰   r   r   r‹   r   )r'   r(   s   "€r   r)   Ú-Mistral3ForConditionalGeneration.__annotate__Ü   si   ø€ ÷ 
ñ 
á×'Ñ'ð
ñ —\‘\ð
ñ "¡D©¥I�o±±Sµ	Õ9¸DÕ@ð	
ñ
 Ñ+Õ,ð
ñ 
Ñ+Õ	+ñ
r   c           	     óF   € V P                   P                  ! RR VRVRV/VB # )r…   r;   rl   r   )Úmodelr    )r6   r…   r;   rl   r‡   s   &&&&,r   r    Ú3Mistral3ForConditionalGeneration.get_image_featuresÙ   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ˆ   r?   r   rŠ   rm   r   r   r‹   r|   )r'   r(   s   "€r   r)   r½   í   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:NNNÚlogitsrÂ   Ú
vocab_size)ÚlossrÅ   r¦   ry   r¬   r­   r   )r¿   rk   rm   ÚsliceÚlm_headÚloss_functionr&   rg   rÆ   r|   r¦   ry   r¬   r­   )r6   r£   r…   r¤   r¥   r¦   r§   rÂ   r¨   rÃ   r;   r‡   r¶   ry   Úslice_indicesrÅ   rÇ   s   &&&&&&&&&&&,     r   r[   Ú(Mistral3ForConditionalGeneration.forwardê   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   rx   )
NNNNNNNNr   Nr¸   r¹   s   @r   r»   r»   Ø   sX   ø‡ € ØØØ÷
ñ 
ó ó ó  ð
ð  ØØ÷C
ñ C
ó ó ó  öC
r   r»   )r‚   r€   r»   )(r>   r   Úactivationsr   Úcache_utilsr   Úmodeling_outputsr   Úprocessing_utilsr   Úutilsr   r	   Úutils.genericr
   r   Úllava.modeling_llavar   r   r   r   r   r   Úmistral.modeling_mistralr   Úconfiguration_mistral3r   Ú
get_loggerr   Úloggerr   ÚModuler"   rb   r|   r~   r€   r‚   r»   Ú__all__r   r   r   Ú<module>rÚ      s½   ðó  Ý å !Ý  Ý :Ý &ß ,ß I÷÷ õ 6Ý 2ð 
×	Ò	˜HÓ	%€ô	�nô 	ô#˜"Ÿ)™)ô #ôL "§)¡)ô ô8	Ð%@ô 	ô	Ð":ô 	ô	Ð2ô 	ô[
�Jô [
ô|X
Ð'Dô X
òv‚r   