+
    œ°³jåÞ  ã                   ó„  € ^ RI t ^ RIHt ^ RIHt ^ RIt^ RIHt ^ RIHu H	t
 ^ RIHt ^RIHt ^RIHt ^RIHtHt ^RIHt ^R	IHtHt ^R
I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(H)t) ^RI*H+t+ ^RI,H-t-H.t.H/t/H0t0H1t1 ^RI2H3t3 ^RI4H5t5H6t6 ^RI7H8t8 ^RI9H:t:H;t; ]0Px                  ! ]=4      t> ! R R]P~                  4      t@ ! R R]P~                  4      tA ! R R]P                  P~                  4      tB ! R R]P~                  4      tC ! R R]Pˆ                  4      tE ! R R ]P~                  4      tF ! R! R"]P~                  4      tGR# R$ ltHR% R& ltIRTR' R( lltJRTR) R* lltK ! R+ R,]P~                  4      tL ! R- R.]4      tM]. ! R/ R0])4      4       tN]. ! R1 R2]N4      4       tO ! R3 R4]N]4      tP].! R5R67      ] ! R7 R8]#4      4       4       tQ ! R9 R:]P                  P~                  4      tR ! R; R<]P~                  4      tSR= tT ! R> R?]P~                  4      tUR@ RA ltVRB RC ltW ! RD RE]P~                  4      tX ! RF RG]P~                  4      tY ! RH RI]4      tZ ! RJ RK]P~                  4      t[ ! RL RM]P~                  4      t\ ! RN RO]P~                  4      t] ! RP RQ]N4      t^ ! RR RS]N]4      t_. RUOt`R# )Vé    N)ÚCallable)Ú	dataclass©ÚLlama4VisionConfig)Úinitialization)ÚACT2FN)ÚCacheÚDynamicCache)ÚGenerationMixin)Úcreate_causal_maskÚcreate_chunked_causal_mask)ÚFlashAttentionKwargs)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚBaseModelOutputWithPastÚBaseModelOutputWithPoolingÚCausalLMOutputWithPastÚModelOutput)ÚROPE_INIT_FUNCTIONSÚdynamic_rope_update)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚloggingÚtorch_compilable_check)Údeprecate_kwarg)Úmaybe_autocastÚmerge_with_config_defaults)Úcapture_outputs)ÚLlama4ConfigÚLlama4TextConfigc                   óP   a a€ ] tR t^7t oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚLlama4TextExpertsc                ó    <€ V ^8„  d   QhRS[ /# ©é   Úconfig©r$   )ÚformatÚ__classdict__s   "€Úk/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/llama4/modeling_llama4.pyÚ__annotate__ÚLlama4TextExperts.__annotate__8   s   ø€ ÷ 0ñ 0Ñ/ñ 0ó    c                ó0  <€ \         SV `  4        VP                  V n        VP                  V n        VP
                  V n        V P                  V n        \        P                  ! \        P                  ! V P                  V P
                  ^V P                  ,          4      4      V n        \        P                  ! \        P                  ! V P                  V P                  V P
                  34      4      V n        \        VP                  ,          V n        R# ©r)   N)ÚsuperÚ__init__Únum_local_expertsÚnum_expertsÚintermediate_sizeÚhidden_sizeÚ
expert_dimÚnnÚ	ParameterÚtorchÚzerosÚgate_up_projÚemptyÚ	down_projr   Ú
hidden_actÚact_fn©Úselfr*   Ú	__class__s   &&€r.   r5   ÚLlama4TextExperts.__init__8   s¿   ø€ Ü‰ÑÔØ!×3Ñ3ˆÔØ!'×!9Ñ!9ˆÔØ!×-Ñ-ˆÔØ×0Ñ0ˆŒÜŸLšL¬¯ª°T×5EÑ5EÀt×GWÑGWÐYZÐ]a×]lÑ]lÕYlÓ)mÓnˆÔÜŸš¤e§k¢k°4×3CÑ3CÀTÇ_Á_ÐVZ×VfÑVfÐ2gÓ&hÓiˆŒÜ˜V×.Ñ.Õ/ˆŽr1   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r)   Úhidden_statesÚreturn©r=   ÚTensor)r,   r-   s   "€r.   r/   r0   B   s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r1   c                ó„  € VP                  V P                  P                  ^ ,          RV P                  4      p\        P
                  ! WP                  4      pVP                  ^RR7      w  r4\        P
                  ! W@P                  V4      ,          V P                  4      pVP                  RV P                  4      pV# )aâ  
This should really not be run on a single machine, as we are reaching compute bound:
- the inputs are expected to be "sorted" per expert already.
- the weights are viewed with another dim, to match num_expert, 1, shape * num_tokens, shape

Args:
    hidden_states (torch.Tensor): (batch_size * token_num, hidden_size)
    selected_experts (torch.Tensor): (batch_size * token_num, top_k)
    routing_weights (torch.Tensor): (batch_size * token_num, top_k)
Returns:
    torch.Tensor
©Údiméÿÿÿÿ)	Úviewr?   Úshaper9   r=   ÚbmmÚchunkrC   rA   )rE   rJ   Úgate_upÚgateÚupÚnext_statess   &&    r.   ÚforwardÚLlama4TextExperts.forwardB   s•   € ð &×*Ñ*¨4×+<Ñ+<×+BÑ+BÀ1Õ+EÀrÈ4×K[ÑK[Ó\ˆÜ—)’)˜M×+<Ñ+<Ó=ˆØ—=‘= ¨�=Ó+‰ˆÜ—i’i §k¡k°$Ó&7Õ!7¸$¿.¹.ÓIˆØ!×&Ñ& r¨4×+;Ñ+;Ó<ˆØÐr1   )rC   rA   r:   r?   r9   r8   r7   ©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r5   rZ   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rF   r-   s   @@r.   r&   r&   7   s   ù‡ € ÷0ó 0÷÷ ð r1   r&   c                   ó<   a a€ ] tR t^Xt oRV 3R lltR tRtVtV ;t# )ÚLlama4TextMLPc                óv  <€ \         SV `  4        Vf   VP                  pWn        \        P
                  ! VP                  VRR7      V n        \        P
                  ! VP                  VRR7      V n        \        P
                  ! W!P                  RR7      V n	        \        VP                  ,          V n        R # )NF©Úbias)r4   r5   r8   r*   r;   ÚLinearr9   Ú	gate_projÚup_projrA   r   rB   Úactivation_fn)rE   r*   r8   rF   s   &&&€r.   r5   ÚLlama4TextMLP.__init__Y   s‡   ø€ Ü‰ÑÔàÒ$Ø &× 8Ñ 8ÐàŒÜŸš 6×#5Ñ#5Ð7HÈuÔUˆŒÜ—y’y ×!3Ñ!3Ð5FÈUÔSˆŒÜŸšÐ#4×6HÑ6HÈuÔUˆŒÜ# F×$5Ñ$5Õ6ˆÖr1   c                ó�   € V P                  V P                  V4      4      V P                  V4      ,          pV P                  V4      # ©N)rm   rk   rl   rA   )rE   ÚxrA   s   && r.   rZ   ÚLlama4TextMLP.forwarde   s7   € Ø×&Ñ& t§~¡~°aÓ'8Ó9¸D¿L¹LÈ»OÕKˆ	Ø�~‰~˜iÓ(Ð(r1   )rm   r*   rA   rk   rl   rp   r\   rd   s   @@r.   rf   rf   X   s   ù‡ € ÷
7÷)ò )r1   rf   c                   óT   a a€ ] tR t^jt oRV3R lV 3R llltR tR tR tRtVt	V ;t
# )ÚLlama4TextL2Normc                ó    <€ V ^8„  d   QhRS[ /# )r)   Úeps)Úfloat)r,   r-   s   "€r.   r/   ÚLlama4TextL2Norm.__annotate__k   s   ø€ ÷ ñ ™Eñ r1   c                ó0   <€ \         SV `  4        Wn        R # rp   )r4   r5   rv   )rE   rv   rF   s   &&€r.   r5   ÚLlama4TextL2Norm.__init__k   s   ø€ Ü‰ÑÔØŽr1   c                óž   € V\         P                  ! VP                  ^4      P                  RRR7      V P                  ,           4      ,          # ©r)   T)ÚkeepdimrQ   ©r=   ÚrsqrtÚpowÚmeanrv   ©rE   rq   s   &&r.   Ú_normÚLlama4TextL2Norm._normo   ó4   € Ø”5—;’;˜qŸu™u Q›xŸ}™}¨R¸˜}Ó>ÀÇÁÕIÓJÕJÐJr1   c                ó^   € V P                  VP                  4       4      P                  V4      # rp   )rƒ   rw   Útype_asr‚   s   &&r.   rZ   ÚLlama4TextL2Norm.forwardr   s"   € Ø�z‰z˜!Ÿ'™'›)Ó$×,Ñ,¨QÓ/Ð/r1   c                ó    € R V P                    2# )zeps=©rv   ©rE   s   &r.   Ú
extra_reprÚLlama4TextL2Norm.extra_repru   s   € Ø�d—h‘h�ZÐ Ð r1   rŠ   )g�íµ ÷Æ°>©r]   r^   r_   r`   r5   rƒ   rZ   rŒ   ra   rb   rc   rd   s   @@r.   rt   rt   j   s$   ù‡ € ÷õ òKò0÷!ò !r1   rt   c                   óH   a a€ ] tR t^yt oRV 3R lltR tR tR tRtVt	V ;t
# )ÚLlama4TextRMSNormc                óŽ   <€ \         SV `  4        W n        \        P                  ! \
        P                  ! V4      4      V n        R# )z,
Llama4RMSNorm is equivalent to T5LayerNorm
N)r4   r5   rv   r;   r<   r=   ÚonesÚweight)rE   r9   rv   rF   s   &&&€r.   r5   ÚLlama4TextRMSNorm.__init__z   s.   ø€ ô 	‰ÑÔØŒÜ—l’l¤5§:¢:¨kÓ#:Ó;ˆŽr1   c                óž   € V\         P                  ! VP                  ^4      P                  RRR7      V P                  ,           4      ,          # r|   r~   r‚   s   &&r.   rƒ   ÚLlama4TextRMSNorm._norm‚   r…   r1   c                ó‚   € V P                  VP                  4       4      P                  V4      pW P                  ,          # rp   )rƒ   rw   r‡   r“   )rE   rq   Úoutputs   && r.   rZ   ÚLlama4TextRMSNorm.forward…   s.   € Ø—‘˜AŸG™G›IÓ&×.Ñ.¨qÓ1ˆØŸ™Õ#Ð#r1   c                ó^   € \        V P                  P                  4       R V P                   2# )z, eps=)Útupler“   rS   rv   r‹   s   &r.   rŒ   ÚLlama4TextRMSNorm.extra_repr‰   s'   € Ü˜Ÿ™×)Ñ)Ó*Ð+¨6°$·(±(°Ð<Ð<r1   )rv   r“   )gñhãˆµøä>rŽ   rd   s   @@r.   r�   r�   y   s   ù‡ € ÷<òKò$÷=ò =r1   r�   c                   ó>   a a€ ] tR t^�t oV 3R ltV 3R ltRtVtV ;t# )ÚLlama4Routerc                ó˜   <€ \         SV `  VP                  VP                  R R7       VP                  V n        VP
                  V n        R# ©Frh   N)r4   r5   r9   r6   r7   Únum_experts_per_tokÚtop_krD   s   &&€r.   r5   ÚLlama4Router.__init__Ž   s>   ø€ Ü‰Ñ˜×+Ñ+¨V×-EÑ-EÈEÐÔRØ!×3Ñ3ˆÔØ×/Ñ/ˆŽ
r1   c                óp  <€ \         SV `  V4      p\        P                  ! W P                  ^R7      w  r4\        P
                  ! V\        R4      4      P                  ^WC4      p\        P                  P                  P                  VP                  4       4      P                  VP                  4      pWR3# )é   rO   z-inf)r4   rZ   r=   Útopkr¢   Ú	full_likerw   Úscatter_r;   Ú
functionalÚsigmoidÚtoÚdtype)rE   rJ   Úrouter_logitsÚrouter_top_valueÚrouter_indicesÚrouter_scoresrF   s   &&    €r.   rZ   ÚLlama4Router.forward“   s‰   ø€ Ü™™¨Ó6ˆÜ+0¯:ª:°mÇZÁZÐUVÔ+WÑ(ÐÜŸš¨´u¸V³}ÓE×NÑNÈqÐR`ÓsˆÜŸ™×+Ñ+×3Ñ3°M×4GÑ4GÓ4IÓJ×MÑMÈm×NaÑNaÓbˆØÐ+Ð+r1   )r7   r¢   r\   rd   s   @@r.   rž   rž   �   s   ù‡ € õ0÷
,õ ,r1   rž   c                   ó8   a a€ ] tR t^œt oV 3R ltR tRtVtV ;t# )ÚLlama4TextMoec                óê   <€ \         SV `  4        VP                  V n        VP                  V n        VP                  V n        \        V4      V n	        \        V4      V n        \        V4      V n        R # rp   )r4   r5   r¡   r¢   r9   Ú
hidden_dimr6   r7   r&   Úexpertsrž   Úrouterrf   Úshared_expertrD   s   &&€r.   r5   ÚLlama4TextMoe.__init__�   s[   ø€ Ü‰ÑÔØ×/Ñ/ˆŒ
Ø ×,Ñ,ˆŒØ!×3Ñ3ˆÔÜ(¨Ó0ˆŒÜ" 6Ó*ˆŒÜ*¨6Ó2ˆÖr1   c                óè  € VP                  RV P                  4      pV P                  V4      w  r#VP                  VP                  ^,          ^4      pWBP                  ^ ^4      P                  R^4      ,          pV P                  V4      pV P                  V4      pVP                  VP                  VP                  ^,          RVP                  R,          4      P                  ^ R7      4       Wc3# )r¥   rO   rQ   )
Úreshaperµ   r·   ÚrepeatrS   Ú	transposer¶   r¸   Úadd_Úsum)rE   rJ   r°   r­   Ú	routed_inÚ
routed_outÚouts   &&     r.   rZ   ÚLlama4TextMoe.forward¦   sÐ   € Ø%×-Ñ-¨b°$·/±/ÓBˆØ'+§{¡{°=Ó'AÑ$ˆØ!×(Ñ(¨×)<Ñ)<¸QÕ)?ÀÓCˆ	Ø× 7Ñ 7¸¸1Ó =× EÑ EÀbÈ!Ó LÕLˆ	Ø—\‘\ )Ó,ˆ
Ø× Ñ  Ó/ˆØ�‰�×#Ñ# M×$7Ñ$7¸Õ$:¸BÀ
×@PÑ@PÐQSÕ@TÓU×YÑYÐ^_ÐYÓ`ÔaØÐ!Ð!r1   )r¶   rµ   r7   r·   r¸   r¢   r\   rd   s   @@r.   r³   r³   œ   s   ù‡ € õ3÷"ò "r1   r³   c                   óÎ   a a€ ] tR t^²t o]! RRR7      R
V3R lV 3R lll4       t]]! RRR7      R
V3R lR ll4       4       t]P                  ! 4       ]
R 4       4       tR	tVtV ;t# )ÚLlama4TextRotaryEmbeddingÚdevicez5.18)Úversionc                ó    <€ V ^8„  d   QhRS[ /# r(   r+   )r,   r-   s   "€r.   r/   Ú&Llama4TextRotaryEmbedding.__annotate__µ   s   ø€ ÷ Oñ OÑ/ñ Or1   c                óä  <€ \         SV `  4        VP                  V n        VP                  V n        Wn        V P
                  P                  R ,          V n        V P                  pV P                  R8w  d   \        V P                  ,          pV! V P
                  V4      w  q@n
        \        P                  ! VRR7      V n        \        P                  ! VP                  4       RR7      V n        R# )Ú	rope_typeÚdefaultF©Ú
persistentN)r4   r5   Úmax_position_embeddingsÚmax_seq_len_cachedÚoriginal_max_seq_lenr*   Úrope_parametersrË   Úcompute_default_rope_parametersr   Úattention_scalingr;   ÚBufferÚinv_freqÚcloneÚoriginal_inv_freq)rE   r*   rÆ   Úrope_init_fnrÖ   rF   s   &&&  €r.   r5   Ú"Llama4TextRotaryEmbedding.__init__´   s¬   ø€ ä‰ÑÔØ"(×"@Ñ"@ˆÔØ$*×$BÑ$BˆÔ!àŒàŸ™×4Ñ4°[ÕAˆŒØ!%×!EÑ!EˆØ�>‰>˜YÔ&Ü.¨t¯~©~Õ>ˆLÙ+7¸¿¹ÀVÓ+LÑ(ˆÔ(äŸ	š	 (°uÔ=ˆŒÜ!#§¢¨8¯>©>Ó+;ÈÔ!NˆÖr1   c                óP   <€ V ^8„  d   QhRS[ RS[S[P                  S[3,          /# )r)   r*   rK   )r$   r›   r=   rM   rw   )r,   r-   s   "€r.   r/   rÉ   Ç   s/   ø€ ÷ 5ñ 5Ñ0@ð 5Ñ\aÑbg×bnÑbnÑpuÐbuÕ\vñ 5r1   c           	     ó0  € V P                   R,          p\        V RR4      ;'       g    V P                  V P                  ,          pRpRV\        P
                  ! ^ V^\        P                  R7      V,          ,          ,          pVP                  V4      V3# )a~  
Computes the inverse frequencies according to the original RoPE implementation
Args:
    config ([`~transformers.PreTrainedConfig`]):
        The model configuration.
Returns:
    Tuple of (`torch.Tensor`, `float`), containing the inverse frequencies for the RoPE embeddings and the
    post-processing scaling factor applied to the computed cos/sin (unused in this type of RoPE).
Ú
rope_thetaÚhead_dimNç      ð?©r¬   )rÒ   Úgetattrr9   Únum_attention_headsr=   Úarangerw   r«   )r*   rÆ   ÚkwargsÚbaserP   Úattention_factorrÖ   s   &&,    r.   rÓ   Ú9Llama4TextRotaryEmbedding.compute_default_rope_parametersÅ   s~   € ð ×%Ñ% lÕ3ˆÜ�f˜j¨$Ó/×cÐc°6×3EÑ3EÈ×IcÑIcÕ3cˆàÐà˜$¤5§<¢<°°3¸ÄÇÁÔ#MÐPSÕ#SÕTÕUˆØ�{‰{˜6Ó"Ð$4Ð4Ð4r1   c                ó¶  € V P                   R,          P                  4       P                  VP                  ^ ,          R^4      pVR,          P                  4       p\	        VP
                  P                  \        4      '       d2   VP
                  P                  R8w  d   VP
                  P                  MRp\        VRR7      ;_uu_ 4        VP                  VP
                  4      V,          P                  ^^4      p\        P                  ! \        P                  ! V4      V4      pWpP                  ,          pR R R 4       V#   + '       g   i     X# ; i)NÚmpsÚcpuF)Údevice_typeÚenabled)NºNNNNrQ   )rí   Nrí   )rÖ   rw   ÚexpandrS   Ú
isinstancerÆ   ÚtypeÚstrr    r«   r½   r=   ÚpolarÚ	ones_likerÔ   )rE   rq   Úposition_idsÚinv_freq_expandedÚposition_ids_expandedrë   ÚfreqsÚ	freqs_ciss   &&&     r.   rZ   Ú!Llama4TextRotaryEmbedding.forwardÚ   sþ   € ð !ŸM™M¨-Õ8×>Ñ>Ó@×GÑGÈ×HZÑHZÐ[\ÕH]Ð_aÐcdÓeÐØ ,¨ZÕ 8× >Ñ >Ó @Ðä'1°!·(±(·-±-Ä×'EÒ'EÈ!Ï(É(Ï-É-Ð[`ÔJ`�a—h‘h—m’mÐfkˆÜ¨¸U×CÖCØ&×)Ñ)¨!¯(©(Ó3Ð6KÕK×VÑVÐWXÐZ[Ó\ˆEÜŸš¤E§O¢O°EÓ$:¸EÓBˆIØ!×$:Ñ$:Õ:ˆI÷ Dð
 Ð÷ DÖCð
 Ðús   ÃA0EÅE	)rÔ   r*   rÖ   rÐ   rØ   rÑ   rË   rp   )r]   r^   r_   r`   r   r5   ÚstaticmethodrÓ   r=   Úno_gradr   rZ   ra   rb   rc   rd   s   @@r.   rÅ   rÅ   ²   su   ù‡ € á�X vÔ.÷Oô Oó /ðOð  Ù�X vÔ.÷5ñ 5ó /ó ð5ð& ‡]‚]ƒ_Øñ
ó ó ÷
ð 
r1   rÅ   c          
      óÎ   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\        \         P                  \         P                  3,          /# )r)   ÚxqÚxkrø   rK   ©r=   rM   r›   )r,   s   "r.   r/   r/   é   sN   € ÷ 	2ñ 	2Ü�‰ð	2ä�‰ð	2ô �|‰|ð	2ô Œ5�<‰<œŸ™Ð%Õ&ñ		2r1   c                 ó&  € \         P                  ! V P                  4       P                  ! . V P                  R R ORN^N5!  4      p\         P                  ! VP                  4       P                  ! . VP                  R R ORN^N5!  4      p\         P
                  ! W2R,          ,          4      P                  ^4      p\         P
                  ! WBR,          ,          4      P                  ^4      pVP                  V 4      VP                  V4      3# )NrQ   )rí   rí   Nrí   )r=   Úview_as_complexrw   r»   rS   Úview_as_realÚflattenr‡   )rý   rþ   rø   Úxq_Úxk_Úxq_outÚxk_outs   &&&    r.   Úapply_rotary_embr  é   s×   € ô
 ×
Ò
 §¡£
× 2Ò 2Ð I°B·H±H¸S¸b°MÐ IÀ2Ð IÀqÓ IÓ
J€CÜ
×
Ò
 §¡£
× 2Ò 2Ð I°B·H±H¸S¸b°MÐ IÀ2Ð IÀqÓ IÓ
J€CÜ×Ò °Õ&>Õ >Ó?×GÑGÈÓJ€FÜ×Ò °Õ&>Õ >Ó?×GÑGÈÓJ€FØ�>‰>˜"Ó˜vŸ~™~¨bÓ1Ð1Ð1r1   c                ód   € V ^8„  d   QhR\         P                  R\        R\         P                  /# )r)   rJ   Ún_reprK   )r=   rM   Úint)r,   s   "r.   r/   r/   õ   s.   € ÷ 	Uñ 	UœUŸ\™\ð 	U´#ð 	U¼%¿,¹,ñ 	Ur1   c                ó˜   € V P                   w  r#rEV^8X  d   V # V R,          P                  W#WV4      p V P                  W#V,          WE4      # )zÈ
This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch,
num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim)
)rí   rí   Nrí   rí   )rS   rî   r»   )rJ   r
  ÚbatchÚnum_key_value_headsÚslenrÞ   s   &&    r.   Ú	repeat_kvr  õ   sU   € ð
 2?×1DÑ1DÑ.€E Ø�„zØÐØ!Ð"2Õ3×:Ñ:¸5ÐW\ÐdlÓm€MØ× Ñ  ¸eÕ(CÀTÓTÐTr1   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=   rM   rw   )r,   s   "r.   r/   r/     óg   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô ð%ô ñ%r1   c                 óÒ  € \        W P                  4      p\        W0P                  4      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)   rO   ©ÚpÚtrainingrQ   )r  Únum_key_value_groupsr=   Úmatmulr½   r;   r©   Úsoftmaxr  r   Ú
contiguous©r  r  r  r  r  r  r  rä   Ú
key_statesÚvalue_statesÚattn_weightsÚattn_outputs   &&&&&&&,    r.   Úeager_attention_forwardr*    sº   € ô ˜3× ;Ñ ;Ó<€JÜ˜U×$?Ñ$?Ó@€Lä—<’< ×';Ñ';¸A¸qÓ'AÓBÀWÕL€LØÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2Ð(Ó>€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€LÜ—,’,˜|Ó:€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$r1   c                óÞ   € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R\        /# r  r  )r,   s   "r.   r/   r/     r  r1   c                 óô  € \        W P                  4      p\        W0P                  4      p	\        P                  ! WP	                  ^^4      4      V P
                  R,          ,          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)   rO   r  ç      à¿rQ   )r  r!  r=   r"  r½   rÞ   r;   r©   r#  r  r   r$  r%  s   &&&&&&&,    r.   Úvision_eager_attention_forwardr.    sÄ   € ô ˜3× ;Ñ ;Ó<€JÜ˜U×$?Ñ$?Ó@€Lä—<’< ×';Ñ';¸A¸qÓ'AÓBÀVÇ_Á_ÐVZÕEZÕZ€LØÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2Ð(Ó>€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€LÜ—,’,˜|Ó:€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$r1   c                   óX   a a€ ] tR tRt oRtV3R lV 3R lltRV3R lR lltRtVtV ;t	# )	ÚLlama4TextAttentioni5  z=Multi-headed attention from 'Attention Is All You Need' paperc                ó    <€ V ^8„  d   QhRS[ /# r(   r+   )r,   r-   s   "€r.   r/   Ú Llama4TextAttention.__annotate__8  s   ø€ ÷ Añ AÑ/ñ Ar1   c                ó  <€ \         SV `  4        Wn        W n        \	        VR VP
                  VP                  ,          4      V n        VP                  V n        VP                  VP                  ,          V n	        VP                  V n        V P                  R,          V n
        VP                  V n        VP                  V n        VP                  V n        VP                  V n        RV n        VP                   V,          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                  ,          VP
                  VP(                  R7      V n        V P                  P2                  '       d1   V P"                  '       d   \5        VP6                  4      V n        R# R# R# )rÞ   Trh   Nr-  )r4   r5   r*   Ú	layer_idxrá   r9   râ   rÞ   r  r!  r  Ú
attn_scaleÚfloor_scaleÚattn_temperature_tuningÚattention_dropoutÚ	is_causalÚno_rope_layersÚuse_roper;   rj   Úattention_biasÚq_projÚk_projÚv_projÚo_projÚuse_qk_normrt   Úrms_norm_epsÚqk_norm©rE   r*   r4  rF   s   &&&€r.   r5   ÚLlama4TextAttention.__init__8  sÔ  ø€ Ü‰ÑÔØŒØ"ŒÜ ¨
°F×4FÑ4FÈ&×JdÑJdÕ4dÓeˆŒØ#)×#=Ñ#=ˆÔ Ø$*×$>Ñ$>À&×B\ÑB\Õ$\ˆÔ!Ø#)×#=Ñ#=ˆÔ Ø—}‘} dÕ*ˆŒØ ×+Ñ+ˆŒØ!×-Ñ-ˆÔØ'-×'EÑ'EˆÔ$Ø!'×!9Ñ!9ˆÔØˆŒØ×-Ñ-¨iÕ8ˆŒÜ—i’iØ×Ñ × :Ñ :¸T¿]¹]Õ JÐQW×QfÑQfô
ˆŒô —i’iØ×Ñ × :Ñ :¸T¿]¹]Õ JÐQW×QfÑQfô
ˆŒô —i’iØ×Ñ × :Ñ :¸T¿]¹]Õ JÐQW×QfÑQfô
ˆŒô —i’iØ×&Ñ&¨¯©Õ6¸×8JÑ8JÐQW×QfÑQfô
ˆŒð �;‰;×"×"Ð" t§}§} }Ü+¨F×,?Ñ,?Ó@ˆDŽLñ (5Ñ"r1   c                óR  <€ V ^8„  d   QhRS[ P                  RS[S[ P                  S[ P                  3,          RS[ P                  R,          RS[R,          RS[S[,          RS[S[ P                  S[ P                  R,          S[S[ P                  ,          R,          3,          /# )r)   rJ   Úposition_embeddingsr  NÚpast_key_valuesrä   rK   )r=   rM   r›   r	   r   r   )r,   r-   s   "€r.   r/   r2  V  s—   ø€ ÷ 8)ñ 8)á—|‘|ð8)ñ #¡5§<¡<±·±Ð#=Õ>ð8)ñ Ÿ™ tÕ+ð	8)ñ
  �ð8)ñ Ñ-Õ.ð8)ñ 
‰u�|‰|™UŸ\™\¨DÕ0±%¹¿¹Õ2EÈÕ2LÐLÕ	Mñ8)r1   c                ój  € VP                   R R p. VORNV P                  N5pV P                  V4      P                  V4      pV P	                  V4      P                  ! . VORNV P                  N5!  p	V P                  V4      P                  V4      P                  ^^4      p
V P                  '       d(   \        W‰VP                  VP                  4      4      w  r‰\        V R4      '       d#   V P                  V4      pV P                  V	4      p	V P                  '       Ed*   V P                  '       Eg   Ve   VP                  V P                  4      M^ p\         P"                  ! VP                   ^,          VP                  R7      V,           p\         P$                  ! \         P&                  ! VP)                  4       R,           V P*                  ,          4      4      V P,                  ,          R,           pVP                  ^VR,          ^^34      P/                  . VO^N^N54      pW�,          P                  VP0                  4      pVP                  ^^4      pV	P                  ^^4      p	Ve   VP3                  WšV P                  4      w  rš\4        P6                  ! V P8                  P:                  \<        4      pT! V VV	V
V3RV P>                  '       g   RMV P@                  RV PB                  /VB w  ppVPD                  ! . VORN5!  PG                  4       pV PI                  V4      pVV3# )NrC  ©rÆ   rß   r  ç        r  rQ   )%rS   rÞ   r=  rR   r>  r?  r½   r;  r  r«   rÆ   ÚhasattrrC  r7  Úget_seq_lengthr4  r=   rã   Úlog1pÚfloorrw   r6  r5  rî   r¬   Úupdater   Úget_interfacer*   Ú_attn_implementationr*  r   r8  r  r»   r$  r@  )rE   rJ   rG  r  rH  rä   Úinput_shapeÚhidden_shapeÚquery_statesr&  r'  Úpast_seen_tokensÚ	positionsÚattn_scalesÚattention_interfacer)  r(  s   &&&&&,           r.   rZ   ÚLlama4TextAttention.forwardV  sØ  € ð $×)Ñ)¨#¨2Ð.ˆØ8˜Ð8 bÐ8¨$¯-©-Ñ8ˆà—{‘{ =Ó1×6Ñ6°|ÓDˆØ—[‘[ Ó/×4Ò4ÐU°kÐUÀ2ÐUÀtÇ}Á}ÓUˆ
Ø—{‘{ =Ó1×6Ñ6°|ÓD×NÑNÈqÐRSÓTˆà�=�=ˆ=Ü'7ØÐ*=×*@Ñ*@À×ATÑATÓ*Uó(Ñ$ˆLô �4˜×#Ò#ØŸ<™<¨Ó5ˆLØŸ™ jÓ1ˆJð ×'×'Ñ'°··±ØQ`ÒQl˜×=Ñ=¸d¿n¹nÔMÐrsÐÜŸš ]×%8Ñ%8¸Õ%;ÀM×DXÑDXÔYÐ\lÕlˆIä—’œEŸKšK¨¯©Ó):¸SÕ)@ÀD×DTÑDTÕ(TÓUÓVÐY]×YhÑYhÕhÐknÕnð ð &×*Ñ*¨A¨{¸2­ÀÀ1Ð+EÓF×MÑMÐNbÐP[ÐNbÐ]^ÐNbÐ`aÑNbÓcˆKØ(Õ6×:Ñ:¸<×;MÑ;MÓNˆLà#×-Ñ-¨a°Ó3ˆØ×)Ñ)¨!¨QÓ/ˆ
àÒ&Ø'6×'=Ñ'=¸jÐX\×XfÑXfÓ'gÑ$ˆJä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ	%
ð  $Ÿ}Ÿ}˜}‘C°$×2HÑ2Hð	%
ð —L‘Lð	%
ð ñ	%
Ñ!ˆ�\ð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—k‘k +Ó.ˆØ˜LÐ(Ð(r1   )r8  r5  r7  r*   r6  rÞ   r9  r>  r4  râ   r!  r  r@  r=  rC  r  r;  r?  rp   ©
r]   r^   r_   r`   Ú__doc__r5   rZ   ra   rb   rc   rd   s   @@r.   r0  r0  5  s#   ù‡ € ÙG÷Aó A÷<8)÷ 8)ò 8)r1   r0  c                   óH   a a€ ] tR tRt oV 3R ltRV3R lR lltRtVtV ;t# )ÚLlama4TextDecoderLayeri‘  c                ó¬  <€ \         SV `  4        VP                  V n        W n        \	        W4      V n        W!P                  9   V n        V P                  '       d   \        V4      V n	        M\        WP                  R 7      V n	        \        VP                  VP                  R7      V n        \        VP                  VP                  R7      V n        R# ))r8   rŠ   N)r4   r5   r9   r4  r0  Ú	self_attnÚ
moe_layersÚis_moe_layerr³   Úfeed_forwardrf   Úintermediate_size_mlpr�   rB  Úinput_layernormÚpost_attention_layernormrD  s   &&&€r.   r5   ÚLlama4TextDecoderLayer.__init__’  s¡   ø€ Ü‰ÑÔØ!×-Ñ-ˆÔØ"ŒÜ,¨VÓ?ˆŒØ%×):Ñ):Ñ:ˆÔØ××ÐÜ -¨fÓ 5ˆDÕä -¨f×HdÑHdÔ eˆDÔä0°×1CÑ1CÈ×I\ÑI\Ô]ˆÔÜ(9¸&×:LÑ:LÐRX×ReÑReÔ(fˆÖ%r1   c                ó�  <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          RS[S[ P                  S[ P                  3,          R,          RS[S[,          R	S[S[ P                  S[S[ P                  S[ P                  3,          R,          3,          /# )
r)   rJ   r  Nrô   rH  Ú	use_cacherG  rä   rK   )	r=   rM   Ú
LongTensorr	   Úboolr›   r   r   ÚFloatTensor)r,   r-   s   "€r.   r/   Ú#Llama4TextDecoderLayer.__annotate__   sÄ   ø€ ÷  ñ  á—|‘|ð ñ Ÿ™ tÕ+ð ñ ×&Ñ&¨Õ-ð	 ñ
  �ð ñ ˜$•;ð ñ #¡5§<¡<±·±Ð#=Õ>ÀÕEð ñ Ñ-Õ.ð ñ 
‰u× Ñ ¡%©×(9Ñ(9¹5×;LÑ;LÐ(LÕ"MÐPTÕ"TÐTÕ	Uñ r1   c                ó.  € TpV P                  V4      pV P                  ! RR VRVRVRVRV/VB w  ršW‰,           pTpV P                  V4      pV P                  V4      pV P                  '       d   Vw  rW�P                  VP                  4      ,           pV# )rJ   rG  r  rH  ri  © )re  r`  rf  rc  rb  rR   rS   )rE   rJ   r  rô   rH  ri  rG  rä   ÚresidualÚattention_statesÚ_s   &&&&&&&,   r.   rZ   ÚLlama4TextDecoderLayer.forward   sÇ   € ð !ˆà×,Ñ,¨]Ó;ˆð #Ÿnšnñ 
Ø'ð
à 3ð
ð *ð
ð ,ð	
ð
  ð
ð ñ
ÑÐð !Õ3ˆð !ˆØ×5Ñ5°mÓDˆØ×)Ñ)¨-Ó8ˆØ××ÐØ,ÑˆMØ ×#5Ñ#5°h·n±nÓ#EÕEˆØÐr1   )rc  r9   re  rb  r4  rf  r`  )NNNFNr\   rd   s   @@r.   r^  r^  ‘  s   ù‡ € õg÷ ÷  ò  r1   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]P                  ! 4       V 3R l4       tV3R ltRtVtV ;t# )	ÚLlama4PreTrainedModeliÃ  TrH  Fc                ó
  <€ \         SV `  V4       \        V P                  R 4      '       d   V P                  P                  MV P                  P
                  P                  p\        V\        4      '       dI   \        P                  ! VP                  RVR7       \        P                  ! VP                  RVR7       R# \        V\        4      '       d=   \        P                  ! VP                  VP                  VP                  4      4       R# \        V\         4      '       d[   \        P                  ! VP"                  VP$                  R7       \        P                  ! VP&                  VP$                  R7       R# R# )Úinitializer_rangerK  )r�   Ústd)rx  N)r4   Ú_init_weightsrL  r*   rw  Útext_configrï   r&   ÚinitÚnormal_r?   rA   ÚLlama4VisionRotaryEmbeddingÚcopy_Úfreqs_ciÚ_compute_freqs_ciÚLlama4VisionModelÚclass_embeddingÚscaleÚpositional_embedding_vlm)rE   r  rx  rF   s   && €r.   ry  Ú#Llama4PreTrainedModel._init_weightsÐ  sù   ø€ ä‰Ñ˜fÔ%ô �t—{‘{Ð$7×8Ò8ð �K‰K×)Ò)à—‘×(Ñ(×:Ñ:ð 	ô
 �fÔ/×0Ò0Ü�LŠL˜×,Ñ,°3¸CÕ@Ü�LŠL˜×)Ñ)°¸×=Ü˜Ô ;×<Ò<Ü�JŠJ�v—‘¨×(@Ñ(@ÀÇÁÓ(OÖPÜ˜Ô 1×2Ò2Ü�LŠL˜×/Ñ/°V·\±\ÕBÜ�LŠL˜×8Ñ8¸f¿l¹l×Kñ 3r1   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r(   ©r#   )r,   r-   s   "€r.   r/   Ú"Llama4PreTrainedModel.__annotate__Ã  s   ø‡ ‚ áÑò r1   ro  )ÚimageÚtext)r]   r^   r_   r`   Úinput_modalitiesÚsupports_gradient_checkpointingÚ_skip_keys_device_placementÚ_supports_flash_attnÚ_supports_sdpaÚ_supports_flex_attnÚ_can_compile_fullgraphÚ_supports_attention_backendr=   rû   ry  Ú__annotate_func__ra   rb   rc   rd   s   @@r.   ru  ru  Ã  sZ   ù‡ € ð )ÐØ&*Ð#Ø#4Ð"5ÐØ ÐØ€NØÐà!ÐØ"&Ðà
‡]‚]ƒ_ôLó ðL÷ … r1   ru  c                   óœ   a a€ ] tR tRt oR.tRtRtR]R]R]	/t
V3R lV 3R llt]]]RV3R	 lR
 ll4       4       4       tV3R ltRtVtV ;t# )ÚLlama4TextModeliâ  r^  ÚmodelÚ
attentionsrJ   r­   c                ó    <€ V ^8„  d   QhRS[ /# r(   r+   )r,   r-   s   "€r.   r/   ÚLlama4TextModel.__annotate__î  s   ø€ ÷ ñ Ñ/ñ r1   c           	     ó  <€ \         SV `  V4       VP                  V n        VP                  V n        \
        P                  ! VP                  VP                  V P                  4      V n        \
        P                  ! \        VP                  4       Uu. uF  p\        W4      NK  	  up4      V n        \        VP                  VP                  R 7      V n        \#        VR7      V n        RV n        V P)                  4        R# u upi )rŠ   ©r*   FN)r4   r5   Úpad_token_idÚpadding_idxÚ
vocab_sizer;   Ú	Embeddingr9   Úembed_tokensÚ
ModuleListÚrangeÚnum_hidden_layersr^  Úlayersr�   rB  ÚnormrÅ   Ú
rotary_embÚgradient_checkpointingÚ	post_initrD  s   && €r.   r5   ÚLlama4TextModel.__init__î  sÊ   ø€ Ü‰Ñ˜Ô Ø!×.Ñ.ˆÔØ ×+Ñ+ˆŒäŸLšL¨×):Ñ):¸F×<NÑ<NÐPT×P`ÑP`ÓaˆÔÜ—m’mÜHMÈf×NfÑNfÔHgÓhÑHg¸9Ô# FÖ6ÑHgÑhó
ˆŒô & f×&8Ñ&8¸f×>QÑ>QÔRˆŒ	Ü3¸6ÔBˆŒØ&+ˆÔ#ð 	�‰Öùò is   ÂDc                ó  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          RS[R,          RS[S[,          R	S[S[	,          /# )
r)   Ú	input_idsNr  rô   rH  Úinputs_embedsri  rä   rK   )
r=   rj  rM   r	   rl  rk  r   r   r›   r   )r,   r-   s   "€r.   r/   r™    s™   ø€ ÷ <
ñ <
á×#Ñ# dÕ*ð<
ñ Ÿ™ tÕ+ð<
ñ ×&Ñ&¨Õ-ð	<
ñ
  �ð<
ñ ×(Ñ(¨4Õ/ð<
ñ ˜$•;ð<
ñ Ñ+Õ,ð<
ñ 
Ñ(Õ	(ñ<
r1   c                ó®  € VR J VR J,          '       d   \        R4      hVf?   V P                  VP                  V P                  P                  P                  4      4      pV'       d   Vf   \        V P                  R7      pVfb   Ve   VP                  4       M^ p\        P                  ! VP                  ^,          VP                  R7      V,           pVP                  ^ 4      p\        T;p	\        4      '       g/   RV P                  RVRVRVRV/p
R	\        R/ V
B R
\        R/ V
B /p	TpV P!                  W³4      p\#        V P$                  R V P                  P&                   4       F9  w  rÞV! V3RW�P                  P(                  V,          ,          RVRVRVRV/VB pK;  	  V P+                  V4      p\-        TV'       d   VR7      # R R7      # )Nú:You must specify exactly one of input_ids or inputs_embedsr›  rJ  r*   r¬  r  rH  rô   Úfull_attentionÚchunked_attentionri  rG  )Úlast_hidden_staterH  ro  )Ú
ValueErrorr   r«   r“   rÆ   r
   r*   rM  r=   rã   rS   Ú	unsqueezerï   Údictr   r   r¦  Ú	enumerater¤  r£  Úlayer_typesr¥  r   )rE   r«  r  rô   rH  r¬  ri  rä   rV  Úcausal_mask_mappingÚmask_kwargsrJ   Úfreq_cisÚiÚdecoder_layers   &&&&&&&,       r.   rZ   ÚLlama4TextModel.forwardþ  sì  € ð ˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZàÒ Ø ×-Ñ-¨i¯l©l¸4×;LÑ;L×;SÑ;S×;ZÑ;ZÓ.[Ó\ˆMç˜Ò0Ü*°$·+±+Ô>ˆOàÒØCRÒC^˜×=Ñ=Ô?ÐdeÐÜ Ÿ<š<¨×(;Ñ(;¸AÕ(>À}×G[ÑG[Ô\Ð_oÕoˆLØ'×1Ñ1°!Ó4ˆLô °Ð?Ð-Ä×FÒFð ˜$Ÿ+™+Ø Ø  .Ø! ?Ø ðˆKð !Ô"4Ñ"C°{Ñ"CØ#Ô%?Ñ%NÀ+Ñ%Nð#Ðð
 &ˆð —?‘? =Ó?ˆä )¨$¯+©+Ð6U¸¿¹×8UÑ8UÐ*VÖ WÑˆAÙ)Øñà2·;±;×3JÑ3JÈ1Õ3MÕNðð *ðð !0ð	ð
 $ðð %-ðð ñŠMñ !Xð Ÿ	™	 -Ó0ˆä&Ø+ß/8˜Oô
ð 	
à>Bô
ð 	
r1   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r(   r+   )r,   r-   s   "€r.   r/   r™  â  s   ø‡ ‚ ñ
 Ñò r1   )r   r§  r¤  r¥  r�  r¦  rž  )rŠ  )NNNNNN)r]   r^   r_   r`   Ú_no_split_modulesÚbase_model_prefixr‹  r0  r^  r³   Ú_can_record_outputsr5   r!   r"   r   rZ   r“  ra   rb   rc   rd   s   @@r.   r•  r•  â  so   ù‡ € à1Ð2ÐØÐØ Ðð 	Ð)ØÐ/Ø˜ðÐ÷ó ð   ØØ÷<
ñ <
ó ó ó  ð<
÷? … r1   r•  c                   ó–   a a€ ] tR tRt oR.tRtRR/tRR/tRR/tV3R	 lV 3R
 llt	]
]RV3R lR ll4       4       tV3R ltRtVtV ;t# )ÚLlama4ForCausalLMi@  r^  Úlanguage_modelzlm_head.weightzmodel.embed_tokens.weightÚlm_headÚkeep_full_weightÚcolwise_gather_outputc                ó    <€ V ^8„  d   QhRS[ /# r(   r+   )r,   r-   s   "€r.   r/   ÚLlama4ForCausalLM.__annotate__H  s   ø€ ÷ ñ Ñ/ñ r1   c                óì   <€ \         SV `  V4       \        V4      V n        VP                  V n        \
        P                  ! VP                  VP                  R R7      V n        V P                  4        R# r    )
r4   r5   r•  r–  rž  r;   rj   r9   rÄ  r¨  rD   s   &&€r.   r5   ÚLlama4ForCausalLM.__init__H  sU   ø€ Ü‰Ñ˜Ô Ü$ VÓ,ˆŒ
Ø ×+Ñ+ˆŒÜ—y’y ×!3Ñ!3°V×5FÑ5FÈUÔSˆŒð 	�‰Ör1   c                ó`  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          RS[ P                  R,          RS[R,          R	S[S[ P                  ,          R
S[S[,          RS[	S[
,          /
# )r)   r«  Nr  rô   rH  r¬  Úlabelsri  Úlogits_to_keeprä   rK   )r=   rj  rM   r	   rl  rk  r  r   r   r›   r   )r,   r-   s   "€r.   r/   rÈ  S  sÁ   ø€ ÷ :
ñ :
á×#Ñ# dÕ*ð:
ñ Ÿ™ tÕ+ð:
ñ ×&Ñ&¨Õ-ð	:
ñ
  �ð:
ñ ×(Ñ(¨4Õ/ð:
ñ × Ñ  4Õ'ð:
ñ ˜$•;ð:
ñ ™eŸl™lÕ*ð:
ñ Ñ+Õ,ð:
ñ 
Ñ'Õ	'ñ:
r1   c	                ó�  € V P                   ! R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e-   V P
                  ! RR	VR
VRV P                  P                  /V	B p\        VVV
P                  V
P                  V
P                  R7      # )aú  
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,
    config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored
    (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.

Example:

```python
>>> from transformers import AutoTokenizer, Llama4ForCausalLM

>>> model = Llama4ForCausalLM.from_pretrained("meta-llama4/Llama4-2-7b-hf")
>>> tokenizer = AutoTokenizer.from_pretrained("meta-llama4/Llama4-2-7b-hf")

>>> prompt = "Hey, are you conscious? Can you talk to me?"
>>> inputs = tokenizer(prompt, return_tensors="pt")

>>> # Generate
>>> generate_ids = model.generate(inputs.input_ids, max_length=30)
>>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"Hey, are you conscious? Can you talk to me?\nI'm not conscious, but I can talk to you."
```r«  r  rô   rH  r¬  ri  Nrí   ÚlogitsrÌ  rž  )ÚlossrÏ  rH  rJ   r—  ro  )r–  rï   r  ÚslicerÄ  Úloss_functionr*   rž  r   rH  rJ   r—  )rE   r«  r  rô   rH  r¬  rÌ  ri  rÍ  rä   ÚoutputsrJ   Úslice_indicesrÏ  rÐ  s   &&&&&&&&&,     r.   rZ   ÚLlama4ForCausalLM.forwardQ  sþ   € ðH —*’*ñ 
Øð
à)ð
ð &ð
ð ,ð	
ð
 (ð
ð  ð
ð ñ
ˆð   �
ˆä8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ—‘˜m¨A¨}¸aÐ,?Õ@ÓAˆØˆØÒØ×%Ò%Ñp¨VÐp¸FÐpÈtÏ{É{×OeÑOeÐpÐioÑpˆDä%ØØØ#×3Ñ3Ø!×/Ñ/Ø×)Ñ)ô
ð 	
r1   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r(   r+   )r,   r-   s   "€r.   r/   rÈ  @  s   ø‡ ‚ ñ Ñò r1   )rÄ  r–  rž  )NNNNNNNr   )r]   r^   r_   r`   r¾  r¿  Ú_tied_weights_keysÚ
_fsdp_planÚ_tp_planr5   r   r   rZ   r“  ra   rb   rc   rd   s   @@r.   rÂ  rÂ  @  sh   ù‡ € Ø1Ð2ÐØ(ÐØ*Ð,GÐHÐØÐ/Ð0€JØÐ2Ð3€H÷ó ð Ø÷:
ñ :
ó ó ð:
÷' … r1   rÂ  zQ
    Base class for Llava causal language model (or autoregressive) outputs.
    ©Úcustom_introc                   ó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# )ÚLlama4CausalLMOutputWithPasti�  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)   NrÐ  rÏ  rH  rJ   r—  Úimage_hidden_states)r=   rl  r	   r›   )r,   r-   s   "€r.   r/   Ú)Llama4CausalLMOutputWithPast.__annotate__�  s˜   ø‡ ‚ ñ, ×
Ñ
˜dÕ
"Ñ)ñ- ñ. ×Ñ Õ$Ñ+ñ/ ñ0 ˜T•\Ñ(ñ1 ñ2 ™×*Ñ*Õ+¨dÕ2Ñ9ñ3 ñ4 ‘e×'Ñ'Õ(¨4Õ/Ñ6ñ5 ñ6 ×*Ñ*¨TÕ1Ñ8ò7 r1   ro  )r]   r^   r_   r`   r\  rÐ  rÏ  rH  rJ   r—  rß  r“  ra   rb   )r-   s   @r.   rÝ  rÝ  �  s2   ø‡ € ñð &*€DØ'+€FØ$(€OØ59€MØ26€JØ48Ð÷7 ƒ r1   rÝ  c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚLlama4VisionMLP2i®  c                ó†  <€ \         SV `  4        VP                  V n        VP                  V n        \        P
                  ! V P                  VP                  R R7      V n        \        P
                  ! VP                  VP                  R R7      V n	        \        P                  ! 4       V n        VP                  V n        R# r    )r4   r5   r9   r8   r;   rj   Úprojector_input_dimÚfc1Úprojector_output_dimÚfc2ÚGELUrm   Úprojector_dropoutr  rD   s   &&€r.   r5   ÚLlama4VisionMLP2.__init__¯  s‡   ø€ Ü‰ÑÔØ!×-Ñ-ˆÔØ!'×!9Ñ!9ˆÔÜ—9’9˜T×3Ñ3°V×5OÑ5OÐV[Ô\ˆŒÜ—9’9˜V×8Ñ8¸&×:UÑ:UÐ\aÔbˆŒÜŸWšW›YˆÔØ×/Ñ/ˆŽr1   c                óÞ   € V P                  V4      pV P                  V4      p\        P                  ! WP                  V P                  R 7      pV P                  V P                  V4      4      # )r  )rå  rm   ÚFr  r   rç  ©rE   rJ   s   &&r.   rZ   ÚLlama4VisionMLP2.forward¸  sR   € ØŸ™ Ó/ˆØ×*Ñ*¨=Ó9ˆÜŸ	š	 -·<±<È$Ï-É-ÔXˆØ×!Ñ! $§(¡(¨=Ó"9Ó:Ð:r1   )rm   r  rå  rç  r9   r8   r\   rd   s   @@r.   râ  râ  ®  s   ù‡ € õ0÷;ò ;r1   râ  c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚLlama4MultiModalProjectori¿  c                ó°   <€ \         SV `  4        \        P                  ! VP                  P
                  VP                  P                  R R7      V n        R# r    )	r4   r5   r;   rj   Úvision_configÚvision_output_dimrz  r9   Úlinear_1rD   s   &&€r.   r5   Ú"Llama4MultiModalProjector.__init__À  s?   ø€ Ü‰ÑÔÜŸ	š	Ø× Ñ ×2Ñ2Ø×Ñ×*Ñ*Øô
ˆŽr1   c                ó(   € V P                  V4      pV# rp   ©rô  )rE   Úimage_featuresrJ   s   && r.   rZ   Ú!Llama4MultiModalProjector.forwardÈ  s   € ØŸ™ nÓ5ˆØÐr1   r÷  r\   rd   s   @@r.   rð  rð  ¿  s   ù‡ € õ
÷ò r1   rð  c           
      óp  € V P                   w  r#p\        \        P                  ! V4      4      pV P	                  W%VR4      p V P                  4       w  r&rtV P	                  W&\        Wq,          4      \        WA,          4      4      pVP                  ^ ^^^4      P                  4       pVP	                  V\        Wa,          4      \        Wq,          4      \        WA^,          ,          4      4      pVP                  ^ ^^^4      P                  4       pVP	                  VRVP                   R,          4      p	V	# )r¥   rQ   )rS   r  ÚmathÚsqrtrR   ÚsizeÚpermuter$  )
Úinput_tensorÚshuffle_ratioÚ
batch_sizeÚnum_patchesÚchannelsÚ
patch_sizeÚheightÚwidthÚreshaped_tensorÚoutput_tensors
   &&        r.   Úpixel_shuffler	  Í  s  € à(4×(:Ñ(:Ñ%€J˜XÜ”T—Y’Y˜{Ó+Ó,€Jà×$Ñ$ Z¸ZÈÓL€LØ*6×*;Ñ*;Ó*=Ñ'€J˜à"×'Ñ'¨
¼CÀÕ@UÓ<VÔX[Ð\dÕ\tÓXuÓv€OØ%×-Ñ-¨a°°A°qÓ9×DÑDÓF€Oà%×*Ñ*Ø”C˜Õ.Ó/´°UÕ5JÓ1KÌSÐQYÐlmÕ]mÕQnÓMoó€Oð &×-Ñ-¨a°°A°qÓ9×DÑDÓF€Oà#×(Ñ(¨°R¸×9NÑ9NÈrÕ9RÓS€MØÐr1   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# )ÚLlama4VisionPixelShuffleMLPiá  c                óì   <€ \         SV `  4        VP                  V n        \        VP                  V P                  ^,          ,          4      V n        VP                  V n        \        V4      V n	        R# r3   )
r4   r5   Úpixel_shuffle_ratior  rä  Ú	inner_dimræ  Ú
output_dimrâ  ÚmlprD   s   &&€r.   r5   Ú$Llama4VisionPixelShuffleMLP.__init__â  sX   ø€ Ü‰ÑÔØ#)×#=Ñ#=ˆÔ Ü˜V×7Ñ7¸D×<TÑ<TÐVWÕ<WÕXÓYˆŒØ ×5Ñ5ˆŒÜ# FÓ+ˆŽr1   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r)   Úencoded_patchesrK   rL   )r,   r-   s   "€r.   r/   Ú(Llama4VisionPixelShuffleMLP.__annotate__é  s#   ø€ ÷ )ñ )¡u§|¡|ð )¹¿¹ñ )r1   c                óN   € \        WP                  4      pV P                  V4      # rp   )r	  r  r  )rE   r  s   &&r.   rZ   Ú#Llama4VisionPixelShuffleMLP.forwardé  s!   € Ü'¨×9QÑ9QÓRˆØ�x‰x˜Ó(Ð(r1   )r  r  r  r  r\   rd   s   @@r.   r  r  á  s   ù‡ € õ,÷)÷ )ð )r1   r  c                óX   € V ^8„  d   QhR\         P                  R\         P                  /# )r)   r  r  rL   )r,   s   "r.   r/   r/   ï  s"   € ÷ !ñ !¤E§L¡Lð !¼¿¹ñ !r1   c                 óÂ   € VP                   p\        VP                  4       UUu. uF  w  r4V^8X  g   W2^,
          8X  d   TM^NK  	  pppV P                  ! V!  # u uppi )r¥   )Úndimrµ  rS   rR   )r  r  r  rº  ÚdrS   s   &&    r.   Úreshape_for_broadcastr  ï  sT   € Ø�:‰:€DÜ=FÀuÇ{Á{Ô=SÔTÑ=S±T°Q�!�q”&˜A¨¥œM‰Q¨qÒ0Ñ=S€EÑTØ�=Š=˜%Ñ Ð ùó Us   ¥#Ac          
      óÎ   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\        \         P                  \         P                  3,          /# )r)   r  r  r  rK   rÿ   )r,   s   "r.   r/   r/   õ  sN   € ÷ :ñ :Ü�<‰<ð:ä	�‰ð:ô �l‰lð:ô Œ5�<‰<œŸ™Ð%Õ&ñ	:r1   c                 óX  € \         P                  ! V P                  4       P                  ! . V P                  R R ORN^N5!  4      p\         P                  ! VP                  4       P                  ! . VP                  R R ORN^N5!  4      p\        W#R7      pVP                  VP                  4      p\         P                  ! W2,          4      P                  ^4      p\         P                  ! WB,          4      P                  ^4      pVP                  V 4      VP                  V4      3# )N)r  r  rQ   )r=   r  rw   r»   rS   r  r«   rÆ   r  r  r‡   )r  r  r  Úquery_Úkey_Ú	query_outÚkey_outs   &&&    r.   Úvision_apply_rotary_embr"  õ  sì   € ô
 ×"Ò" 5§;¡;£=×#8Ò#8Ð#R¸%¿+¹+ÀcÀrÐ:JÐ#RÈBÐ#RÐPQÓ#RÓS€FÜ× Ò  §¡£×!4Ò!4Ð!L°c·i±iÀÀ°nÐ!LÀbÐ!LÈ!Ó!LÓM€DÜ$¨hÔE€HØ�{‰{˜6Ÿ=™=Ó)€HÜ×"Ò" 6Õ#4Ó5×=Ñ=¸aÓ@€IÜ× Ò  ¥Ó1×9Ñ9¸!Ó<€GØ×Ñ˜UÓ# W§_¡_°SÓ%9Ð9Ð9r1   c                   óT   a a€ ] tR tRt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚLlama4VisionAttentioni  c                ó    <€ V ^8„  d   QhRS[ /# r(   r   )r,   r-   s   "€r.   r/   Ú"Llama4VisionAttention.__annotate__  s   ø€ ÷ [ñ [Ñ1ñ [r1   c                ó0  <€ \         SV `  4        Wn        VP                  V n        VP
                  V n        VP                  VP
                  ,          V n        ^V n        VP                  V n	        V P                  R,          V n
        \        P                  ! V P                  V P                  V P                  ,          RR7      V n        \        P                  ! V P                  V P                  V P                  ,          RR7      V n        \        P                  ! V P                  V P                  V P                  ,          RR7      V n        \        P                  ! V P                  V P                  ,          V P                  RR7      V n        R# )r¥   Trh   Nr-  )r4   r5   r*   r9   Ú	embed_dimrâ   Ú	num_headsrÞ   r!  r8  r  r;   rj   r=  r>  r?  r@  rD   s   &&€r.   r5   ÚLlama4VisionAttention.__init__  s  ø€ Ü‰ÑÔØŒØ×+Ñ+ˆŒØ×3Ñ3ˆŒØ×*Ñ*¨f×.HÑ.HÕHˆŒØ$%ˆÔ!Ø!'×!9Ñ!9ˆÔØ—}‘} dÕ*ˆŒä—i’i §¡°·±ÀÇÁÕ0NÐUYÔZˆŒÜ—i’i §¡°·±ÀÇÁÕ0NÐUYÔZˆŒÜ—i’i §¡°·±ÀÇÁÕ0NÐUYÔZˆŒÜ—i’i §¡°·±Õ >ÀÇÁÐUYÔZˆŽr1   c                ó(  <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  R,          RS[R,          RS[S[,          RS[S[ P                  S[ P                  R,          S[S[ P                  ,          R,          3,          /# )r)   rJ   r  r  NrH  rä   rK   )r=   rM   r	   r   r   r›   )r,   r-   s   "€r.   r/   r&    s‰   ø€ ÷ ')ñ ')á—|‘|ð')ñ —,‘,ð')ñ Ÿ™ tÕ+ð	')ñ
  �ð')ñ Ñ-Õ.ð')ñ 
‰u�|‰|™UŸ\™\¨DÕ0±%¹¿¹Õ2EÈÕ2LÐLÕ	Mñ')r1   c           	     óÂ  € VP                   R R p. VORNV P                  N5pV P                  V4      P                  V4      pV P	                  V4      P                  V4      p	V P                  V4      P                  V4      p
\        W‰VR7      w  r‰VP                  ^^4      pV	P                  ^^4      p	V
P                  ^^4      p
\        P                  ! V P                  P                  \        4      pT! V VV	V
R 3RV P                  '       g   RMV P                  RR RR/VB w  rÍVP                  ! . VORN5!  P!                  4       pV P#                  V4      pWÍ3# )N)r  r  rK  r  r9  FrQ   )rS   rÞ   r=  rR   r>  r?  r"  r½   r   rQ  r*   rR  r.  r   r8  r»   r$  r@  )rE   rJ   r  r  rH  rä   rS  rT  rU  r&  r'  rY  r)  r(  s   &&&&&,        r.   rZ   ÚLlama4VisionAttention.forward  sp  € ð $×)Ñ)¨#¨2Ð.ˆØ8˜Ð8 bÐ8¨$¯-©-Ñ8ˆà—{‘{ =Ó1×6Ñ6°|ÓDˆØ—[‘[ Ó/×4Ñ4°\ÓBˆ
Ø—{‘{ =Ó1×6Ñ6°|ÓDˆä#:¸<Ð^fÔ#gÑ ˆà#×-Ñ-¨a°Ó3ˆØ×)Ñ)¨!¨QÓ/ˆ
Ø#×-Ñ-¨a°Ó3ˆä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Ló)
Ðñ %8ØØØØØñ
%
ð  $Ÿ}Ÿ}˜}‘C°$×2HÑ2Hð
%
ð ð
%
ð ð
%
ð ñ
%
Ñ!ˆð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—k‘k +Ó.ˆØÐ(Ð(r1   )r8  r*   r(  rÞ   r>  r)  r!  r@  r=  r  r?  ©NNr\   rd   s   @@r.   r$  r$    s    ù‡ € ÷[ó [÷')÷ ')ò ')r1   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# )ÚLlama4VisionMLPi=  c                ó,  <€ \         SV `  4        Wn        \        P                  ! 4       V n        \        P                  ! VP                  VP                  R R7      V n	        \        P                  ! VP                  VP                  R R7      V n
        R# )Trh   N)r4   r5   r*   r;   rè  rm   rj   r9   r8   rå  rç  rD   s   &&€r.   r5   ÚLlama4VisionMLP.__init__>  sc   ø€ Ü‰ÑÔØŒÜŸWšW›YˆÔÜ—9’9˜V×/Ñ/°×1IÑ1IÐPTÔUˆŒÜ—9’9˜V×5Ñ5°v×7IÑ7IÐPTÔUˆŽr1   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rI   rL   )r,   r-   s   "€r.   r/   ÚLlama4VisionMLP.__annotate__E  ó#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r1   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rp   )rå  rm   rç  rí  s   &&r.   rZ   ÚLlama4VisionMLP.forwardE  s4   € ØŸ™ Ó/ˆØ×*Ñ*¨=Ó9ˆØŸ™ Ó/ˆØÐr1   )rm   r*   rå  rç  r\   rd   s   @@r.   r0  r0  =  s   ù‡ € õV÷÷ ð r1   r0  c                   óT   a a€ ] tR tRt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚLlama4VisionEncoderLayeriL  c                ó    <€ V ^8„  d   QhRS[ /# r(   r   )r,   r-   s   "€r.   r/   Ú%Llama4VisionEncoderLayer.__annotate__M  s   ø€ ÷ Iñ IÑ1ñ Ir1   c                ó  <€ \         SV `  4        VP                  V n        \        V4      V n        \        V4      V n        \        P                  ! VP                  4      V n	        \        P                  ! VP                  4      V n
        R # rp   )r4   r5   r9   r$  r`  r0  r  r;   Ú	LayerNormre  rf  rD   s   &&€r.   r5   Ú!Llama4VisionEncoderLayer.__init__M  sb   ø€ Ü‰ÑÔØ!×-Ñ-ˆÔä.¨vÓ6ˆŒÜ" 6Ó*ˆŒä!Ÿ|š|¨F×,>Ñ,>Ó?ˆÔÜ(*¯ª°V×5GÑ5GÓ(HˆÖ%r1   c          	      óŠ   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  R,          RS[R,          /# )r)   Úhidden_stater  r  NÚoutput_attentions)r=   rM   rk  )r,   r-   s   "€r.   r/   r;  W  sH   ø€ ÷ ñ á—l‘lðñ —,‘,ðñ Ÿ™ tÕ+ð	ñ
   $�;ñr1   c                óè   € TpV P                  V4      pV P                  VVVR 7      w  rWQ,           pTpV P                  V4      pV P                  V4      pWQ,           pV3pV'       d
   Wv3,          pV# ))r  r  )re  r`  rf  r  )rE   r@  r  r  rA  rp  r(  rÓ  s   &&&&&   r.   rZ   Ú Llama4VisionEncoderLayer.forwardW  sˆ   € ð  ˆà×+Ñ+¨LÓ9ˆà%)§^¡^ØØØ)ð &4ó &
Ñ"ˆð
  Õ.ˆð  ˆØ×4Ñ4°\ÓBˆØ—x‘x Ó-ˆØÕ.ˆà�/ˆçØ�Õ&ˆGàˆr1   )r9   re  r  rf  r`  r.  r\   rd   s   @@r.   r9  r9  L  s    ù‡ € ÷Ió I÷÷ ò r1   r9  c                   óX   a a€ ] tR tRt oRtV3R lV 3R lltRV3R lR lltRtVtV ;t	# )	ÚLlama4VisionEncoderix  z©
Transformer encoder consisting of `config.num_hidden_layers` self attention layers. Each layer is a
[`Llama4VisionEncoderLayer`].

Args:
    config: Llama4VisionConfig
c                ó    <€ V ^8„  d   QhRS[ /# r(   r   )r,   r-   s   "€r.   r/   Ú Llama4VisionEncoder.__annotate__�  s   ø€ ÷ ñ Ñ1ñ r1   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	        Wn        R# u upi )FN)
r4   r5   r*   r;   r¡  r¢  r£  r9  r¤  r§  )rE   r*   rr  rF   s   && €r.   r5   ÚLlama4VisionEncoder.__init__�  sY   ø€ Ü‰ÑÔØŒÜ—m’mÌuÐU[×UmÑUmÔOnÓ$oÑOnÈ!Ô%=¸fÖ%EÑOnÑ$oÓpˆŒØ&+ˆÔ#ØŽùò %ps   ½A,c                óÈ   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  R,          RS[R,          RS[R,          RS[R,          RS[S[,          /# )	r)   rJ   r  r  NrA  Úoutput_hidden_statesÚreturn_dictrK   )r=   rM   rk  r›   r   )r,   r-   s   "€r.   r/   rG  ˆ  ss   ø€ ÷ ?
ñ ?
á—|‘|ð?
ñ —,‘,ð?
ñ Ÿ™ tÕ+ð	?
ñ
   $�;ð?
ñ # T�kð?
ñ ˜D•[ð?
ñ 
‘Õ	 ñ?
r1   c                ó(  € Ve   TMV P                   P                  pVe   TMV P                   P                  pVe   TMV P                   P                  pV'       d   RMRpV'       d   RMRpV P                   FA  p	V'       d
   Wq3,           pV	! VVVVR7      p
V'       d   WŠ^,          3,           pV
^ ,          pKC  	  V'       d
   Wq3,           pV'       g1   \
        ;QJ d    . R WV3 4       F  NK  	  5# ! R WV3 4       4      # \        WVR7      # )aÌ  
Args:
    inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`):
        Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation.
        This is useful if you want more control over how to convert `input_ids` indices into associated vectors
        than the model's internal embedding lookup matrix.
    attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
        Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:

        - 1 for tokens that are **not masked**,
        - 0 for tokens that are **masked**.

        [What are attention masks?](../glossary#attention-mask)
    output_attentions (`bool`, *optional*):
        Whether or not to return the attentions tensors of all attention layers. See `attentions` under
        returned tensors for more detail.
    output_hidden_states (`bool`, *optional*):
        Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors
        for more detail.
    return_dict (`bool`, *optional*):
        Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.
N)r@  r  rA  r  c              3   ó0   "  € T F  qf   K  Vx € K  	  R # 5irp   ro  ©Ú.0Úvs   & r.   Ú	<genexpr>Ú.Llama4VisionEncoder.forward.<locals>.<genexpr>Ä  s   é € ÐeÑ$S˜qŸšÓ$Sùó   ‚Œ
©r±  rJ   r—  ro  )r*   rA  rK  rL  r¤  r›   r   )rE   rJ   r  r  rA  rK  rL  Úencoder_statesÚall_attentionsÚencoder_layerÚlayer_outputss   &&&&&&&    r.   rZ   ÚLlama4VisionEncoder.forwardˆ  s  € ð> 2CÒ1NÑ-ÐTX×T_ÑT_×TqÑTqÐà$8Ò$DÑ È$Ï+É+×JjÑJjð 	ð &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆç3™¸ˆß0™°dˆà!Ÿ[œ[ˆMß#Ø!/Ð2BÕ!B�á)Ø*Ø-Ø"3Ø!ô	ˆM÷ !Ø!/ÀÕ3CÐ2EÕ!E�à)¨!Õ,ŠMñ )÷   Ø+Ð.>Õ>ˆNçß”5Ñe ]ÀNÑ$SÓe—5Ðe�5Ñe ]ÀNÑ$SÓeÓeÐeÜØ+ÐVdô
ð 	
r1   )r*   r§  r¤  ©NNNNr[  rd   s   @@r.   rE  rE  x  s#   ù‡ € ñ÷ó ÷?
÷ ?
ò ?
r1   rE  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# )ÚLlama4UnfoldConvolutioniÊ  c                óh  <€ \         SV `  4        VP                  p\        V\        4      '       d   W"3p\
        P                  P                  W!P                  R 7      V n        \        P                  ! VP                  V^ ,          ,          V^,          ,          VP                  RR7      V n        R# ))Úkernel_sizeÚstrideFrh   N)r4   r5   r  rï   r  r=   r;   ÚUnfoldÚunfoldrj   Únum_channelsr9   Úlinear)rE   r*   r_  rF   s   && €r.   r5   Ú Llama4UnfoldConvolution.__init__Ë  s�   ø€ Ü‰ÑÔØ×'Ñ'ˆÜ�k¤3×'Ò'Ø&Ð4ˆKÜ—h‘h—o‘o°+×FWÑFW�oÓXˆŒÜ—i’iØ×Ñ +¨a¥.Õ0°;¸qµ>ÕAØ×ÑØô
ˆŽr1   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rI   rL   )r,   r-   s   "€r.   r/   Ú$Llama4UnfoldConvolution.__annotate__×  r5  r1   c                óp   € V P                  V4      pVP                  ^ ^^4      pV P                  V4      pV# )r   )rb  rþ  rd  rí  s   &&r.   rZ   ÚLlama4UnfoldConvolution.forward×  s8   € ØŸ™ MÓ2ˆØ%×-Ñ-¨a°°AÓ6ˆØŸ™ MÓ2ˆØÐr1   )rd  rb  r\   rd   s   @@r.   r]  r]  Ê  s   ù‡ € õ

÷÷ ð r1   r]  c                   óT   a a€ ] tR tRt oV3R lV 3R llt]R 4       tR tRtVt	V ;t
# )r}  iß  c                ó    <€ V ^8„  d   QhRS[ /# r(   r   )r,   r-   s   "€r.   r/   Ú(Llama4VisionRotaryEmbedding.__annotate__à  s   ø€ ÷ Tñ TÑ1ñ Tr1   c                óˆ   <€ \         SV `  4        Wn        \        P                  ! V P                  V4      R R7      V n        R# )FrÍ   N)r4   r5   r*   r;   rÕ   r€  r  rD   s   &&€r.   r5   Ú$Llama4VisionRotaryEmbedding.__init__à  s0   ø€ Ü‰ÑÔØŒÜŸ	š	 $×"8Ñ"8¸Ó"@ÈUÔSˆŽr1   c                óR  € V P                   V P                  ,          p\        P                  ! V^,          \        P                  R7      P                  V^,          ^4      p\        P                  ! W"R,          .^ R7      pRVR	&   W!,          pW!,          pV P                  V P                  ,          ^,          pRV P                  R,          \        P                  ! ^ V^4      RV^,           P                  4       V,          ,          ,          pV^,           R
,          VR,          ,          P                  ^RR7      pV^,           R
,          VR,          ,          P                  ^RR7      p\        P                  ! Wx.RR7      P                  4       P                  4       R,          p	V	P                  VP                  R^^4      ^ 8  ^ 4      p	\        P                  ! \        P                  ! \        P                   ! V	4      \        P"                  ! V	4      .RR7      4      p
V
# )r)   rà   :Nr¥   NrO   rß   rÝ   NéþÿÿÿrQ   )rQ   rQ   ).N)NNrí   ).:NNr)   )Ú
image_sizer  r=   rã   Úint32r»   Úcatr9   râ   rÒ   rw   Úrepeat_interleaver$  Úmasked_fillr  ÚstackÚcosÚsin)r*   ÚidxÚimg_idxÚfrequencies_xÚfrequencies_yÚfreq_dimÚ	rope_freqÚfreqs_xÚfreqs_yr÷   r¹  s   &          r.   r€  Ú-Llama4VisionRotaryEmbedding._compute_freqs_ciå  s±  € à×Ñ 6×#4Ñ#4Õ4ˆÜ—,’,˜s A�v¬U¯[©[Ô9×AÑAÀ#ÀqÅ&È!ÓLˆÜ—)’)˜W¨b¥kÐ2¸Ô:ˆØˆ�‰Ø�ˆØ�ˆØ×%Ñ%¨×)CÑ)CÕCÀqÕHˆØØ×"Ñ" <Õ0Ü—’˜Q ¨!Ó,Ð->°¸AµÐ?×EÑEÓGÈ(ÕRõTõ
ˆ	ð " AÕ% yÕ1°I¸mÕ4LÕL×_Ñ_Ð`aÐgiÐ_ÓjˆØ! AÕ% yÕ1°I¸mÕ4LÕL×_Ñ_Ð`aÐgiÐ_ÓjˆÜ—	’	˜7Ð,°"Ô5×;Ñ;Ó=×HÑHÓJÈ8ÕTˆØ×!Ñ! '§/¡/°"°a¸Ó";¸aÑ"?ÀÓCˆÜ×(Ò(¬¯ª´e·i²iÀÓ6FÌÏ	Ê	ÐRWÓHXÐ5YÐ_aÔ)bÓcˆØˆr1   c                óL   € V P                   P                  VP                  4      # rp   )r  r«   rÆ   rí  s   &&r.   rZ   Ú#Llama4VisionRotaryEmbedding.forwardù  s   € Ø�}‰}×Ñ × 4Ñ 4Ó5Ð5r1   )r*   r  )r]   r^   r_   r`   r5   rú   r€  rZ   ra   rb   rc   rd   s   @@r.   r}  r}  ß  s/   ù‡ € ÷Tó Tð
 ñó ð÷&6ò 6r1   r}  c                   ót   a a€ ] tR tRt oRtRtR.tV3R lV 3R lltR tRV3R lR llt	V3R	 lt
R
tVtV ;t# )r�  iý  Úvision_modelr9  c                ó    <€ V ^8„  d   QhRS[ /# r(   r   )r,   r-   s   "€r.   r/   ÚLlama4VisionModel.__annotate__  s   ø€ ÷ ñ Ñ1ñ r1   c                ó°  <€ \         SV `  V4       VP                  V n        VP                  V n        VP                  V n        VP
                  V n        V P                  V P                  ,          ^,          ^,           V n        VP                  R,          V n        \        V4      V n	        \        P                  ! V P                  \        P                  ! V P                  4      ,          4      V n        \        P                  ! V P                  \        P                  ! V P                  V P                  4      ,          4      V n        \!        V4      V n        \        P$                  ! V P                  4      V n        \        P$                  ! V P                  4      V n        \+        V4      V n        \/        V4      V n        V P3                  4        R# )r)   Nr-  )r4   r5   rq  r  r9   rc  r  rƒ  r]  Úpatch_embeddingr;   r<   r=   Úrandnr‚  r„  r}  Úrotary_embeddingr=  Úlayernorm_preÚlayernorm_postrE  r–  r  Úvision_adapterr¨  rD   s   &&€r.   r5   ÚLlama4VisionModel.__init__  sA  ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒØ ×+Ñ+ˆŒØ!×-Ñ-ˆÔØ"×/Ñ/ˆÔà ŸO™O¨t¯©Õ>À1ÕDÀqÕHˆÔØ×'Ñ'¨Õ-ˆŒ
ä6°vÓ>ˆÔä!Ÿ|š|¨D¯J©J¼¿ºÀT×EUÑEUÓ9VÕ,VÓWˆÔÜ(*¯ª°T·Z±ZÄ%Ç+Â+Èd×N^ÑN^Ð`d×`pÑ`pÓBqÕ5qÓ(rˆÔ%Ü ;¸FÓ CˆÔô  Ÿ\š\¨$×*:Ñ*:Ó;ˆÔÜ Ÿlšl¨4×+;Ñ+;Ó<ˆÔô )¨Ó0ˆŒ
Ü9¸&ÓAˆÔØ�‰Ör1   c                ó   € V P                   # )zW
This function is used to fetch the first embedding layer to activate grads on inputs.
)r‰  r‹   s   &r.   Úget_input_embeddingsÚ&Llama4VisionModel.get_input_embeddings  s   € ð ×#Ñ#Ð#r1   c                óÖ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[R,          RS[R,          RS[R,          RS[S[S[ P                  R3,          ,          /# )	r)   Úpixel_valuesr  NrA  rK  rL  rK   .)r=   rM   rk  r   r›   )r,   r-   s   "€r.   r/   r‡  "  s{   ø€ ÷ b
ñ b
á—l‘lðb
ñ Ÿ™ tÕ+ðb
ñ   $�;ð	b
ñ
 # T�kðb
ñ ˜D•[ðb
ñ 
$¡e©E¯L©L¸#Ð,=Õ&>Õ	>ñb
r1   c                ó¬  € Ve   TMV P                   P                  pVe   TMV P                   P                  pVe   TMV P                   P                  pVP                  w  rxrš^p^pV P                  V4      pVP                  w  rïpVP                  W{,          V,          VV4      pV P                  P                  VP                  ^ ,          ^VP                  R,          4      p\        P                  ! VV.^R7      pV^,          pVP                  W{,          WÏV4      pV P                  P                  VP                  VP                  R7      pVV,           pV P                  V4      pVP!                  VRV4      pV P#                  V4      pV P%                  VRVVVR7      pVP&                  pV P)                  V4      pVRRR1R3,          pV P+                  V4      pV'       d   VP,                  MRpV'       d   V^,          pMRpV'       g3   \.        ;QJ d    . R VVV3 4       F  NK  	  5# ! R VVV3 4       4      # \1        VVVR7      # )	a�  

Example:

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

>>> checkpoint = "meta-llama/Llama-3.2-11B-Vision"
>>> model = MllamaVisionModel.from_pretrained(checkpoint)
>>> processor = AutoProcessor.from_pretrained(checkpoint)

>>> url = "https://www.ilankelman.org/stopsigns/australia.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> inputs = processor(images=image, return_tensors="pt")

>>> output = model(**inputs)

>>> print(output.last_hidden_state.shape)
torch.Size([1, 1, 4, 1025, 7680])
```
NrO   ©r¬   rÆ   )r  rK  rA  r  rí   c              3   ó0   "  € T F  qf   K  Vx € K  	  R # 5irp   ro  rO  s   & r.   rR  Ú,Llama4VisionModel.forward.<locals>.<genexpr>~  s   é € Ð_Ñ$M˜qŸšÓ$MùrT  rU  rQ   )r*   rA  rK  rL  rS   r‰  r»   r‚  rî   r=   rs  r„  r«   r¬   rÆ   rŒ  rR   r‹  r–  r±  r�  rŽ  rJ   r›   r   )rE   r”  r  rA  rK  rL  rä   Úbatch_size_times_num_tilesrc  r  r  Únum_concurrent_mediaÚ
num_chunksr@  rr  r  rµ   r‚  Úpositional_embeddingr  r˜   rJ   r—  s   &&&&&&,                r.   rZ   ÚLlama4VisionModel.forward"  s^  € ðD 2CÒ1NÑ-ÐTX×T_ÑT_×TqÑTqÐà$8Ò$DÑ È$Ï+É+×JjÑJjð 	ð &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆð CO×BTÑBTÑ?Ð"°&Ø ÐØˆ
Ø×+Ñ+¨LÓ9ˆØ%1×%7Ñ%7Ñ"ˆ˜
ð $×+Ñ+Ø&Õ=À
ÕJÈKÐYcó
ˆð ×.Ñ.×5Ñ5°l×6HÑ6HÈÕ6KÈQÐP\×PbÑPbÐceÕPfÓgˆÜ—y’y ,°Ð!@ÀaÔHˆØ�qÕˆð $×+Ñ+Ø&Õ=¸zÐXbó
ˆð  $×<Ñ<×?Ñ?Àl×FXÑFXÐam×atÑatÐ?ÓuÐØ#Ð&:Õ:ˆà×)Ñ)¨,Ó7ˆà#×(Ñ(Ð)CÀRÈÓTˆØ×(Ñ(¨Ó6ˆà—‘ØØØ!5Ø/Øð ó 
ˆð ×/Ñ/ˆà×*Ñ*¨<Ó8ˆà# A s¨ s¨A IÕ.ˆð ×*Ñ*¨<Ó8ˆç0D˜×,Ò,È$ˆçØ �‰JàˆJçß”5Ñ_ \°=À*Ñ$MÓ_—5Ð_�5Ñ_ \°=À*Ñ$MÓ_Ó_Ð_ä)Ø*Ø'Ø!ô
ð 	
r1   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r(   r   )r,   r-   s   "€r.   r/   r‡  ý  s   ø‡ ‚ ñ Ñò	 r1   )r‚  r9   rq  r�  rŒ  r–  rc  r  r‰  r  r„  r‹  rƒ  rŽ  )r‰  r[  )r]   r^   r_   r`   r¿  r‹  r¾  r5   r‘  rZ   r“  ra   rb   rc   rd   s   @@r.   r�  r�  ý  s=   ù‡ € Ø&ÐØ!ÐØ3Ð4Ð÷ó ò2$÷b
ò b
÷K … r1   r�  c                   ó  a a€ ] tR tRt oRR.t/ tRtV3R lV 3R lltR tR t	R	 t
R
 t]]! RR7      ]! RR7      V3R lR l4       4       4       tV3R lR lt]]! RR7      ]RV3R lR ll4       4       4       tV3R ltRtVtV ;t# )ÚLlama4ForConditionalGenerationi‡  r^  r9  r–  c                ó    <€ V ^8„  d   QhRS[ /# r(   r‡  )r,   r-   s   "€r.   r/   Ú+Llama4ForConditionalGeneration.__annotate__�  s   ø€ ÷ ñ ™|ñ r1   c                óÒ  <€ \         SV `  V4       \        VP                  4      V n        \        V4      V n        \        VP                  4      V n	        VP                  P                  V n
        \        V P                  R 4      '       d   V P                  P                  V n        M/V P                  P                  P                  ;'       g    RV n        V P                  4        R# )rœ  NrQ   )r4   r5   r�  rò  r…  rð  Úmulti_modal_projectorrÂ  rz  rÃ  rž  rL  r*   rœ  r¨  rD   s   &&€r.   r5   Ú'Llama4ForConditionalGeneration.__init__�  s£   ø€ Ü‰Ñ˜Ô Ü-¨f×.BÑ.BÓCˆÔä%>¸vÓ%FˆÔ"Ü/°×0BÑ0BÓCˆÔØ ×,Ñ,×7Ñ7ˆŒÜ�4—;‘; ×/Ò/Ø $§¡× 8Ñ 8ˆDÕà $§¡× 7Ñ 7× DÑ D× JÐ JÈˆDÔà�‰Ör1   c                ó6   € V P                   P                  4       # rp   )rÃ  Úget_output_embeddingsr‹   s   &r.   r§  Ú4Llama4ForConditionalGeneration.get_output_embeddings›  s   € Ø×"Ñ"×8Ñ8Ó:Ð:r1   c                ó<   € V P                   P                  V4       R # rp   )rÃ  Úset_output_embeddings)rE   Únew_embeddingss   &&r.   rª  Ú4Llama4ForConditionalGeneration.set_output_embeddingsž  s   € Ø×Ñ×1Ñ1°.ÖAr1   c                ó<   € V P                   P                  V4       R # rp   )rÃ  Úset_decoder)rE   Údecoders   &&r.   r®  Ú*Llama4ForConditionalGeneration.set_decoder¡  s   € Ø×Ñ×'Ñ'¨Ö0r1   c                ó6   € V P                   P                  4       # rp   )rÃ  Úget_decoderr‹   s   &r.   r²  Ú*Llama4ForConditionalGeneration.get_decoder¤  s   € Ø×"Ñ"×.Ñ.Ó0Ð0r1   F)Útie_last_hidden_stateszOObtains image last hidden states from the vision tower and apply al projection.rÚ  c          	      óf   <€ V ^8„  d   QhRS[ P                  RS[RS[S[,          RS[S[,          /# )r)   r”  Úvision_feature_select_strategyrä   rK   )r=   rl  rñ   r   r   r›   r   )r,   r-   s   "€r.   r/   r¢  ª  sE   ø€ ÷ 9ñ 9á×'Ñ'ð9ñ ),ð9ñ Ñ+Õ,ð	9ñ
 
Ñ+Õ	+ñ9r1   c                ó†   € VP                  4        UUu/ uF  w  rEVf   K  WEbK  	  pppV P                  ! V3/ VB # u uppi )a9  
pixel_values (`torch.FloatTensor` of shape `(batch_size, channels, height, width)`)
    The tensors corresponding to the input images.
vision_feature_select_strategy (`str`):
    The feature selection strategy used to select the vision feature from the vision backbone.
    Can be one of `"default"` or `"full"`
)Úitemsr…  )rE   r”  r¶  rä   ÚkrQ  s   &&&,  r.   Úget_image_featuresÚ1Llama4ForConditionalGeneration.get_image_features§  sB   € ð  $*§<¡<¤>ÔC¡>™4˜1°Q”$�!’$¡>ˆÑCØ× Ò  Ñ8°Ñ8Ð8ùó Ds   ”=¡=c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )r)   r«  r¬  rø  )r=   rj  rl  )r,   r-   s   "€r.   r/   r¢  º  s7   ø€ ÷ "ñ "Ù×)Ñ)ð"Ù:?×:KÑ:Kð"Ù]b×]nÑ]nñ"r1   c           
     ó$  € 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                  R4      P                  VP                  4      p\        WRP                  R,          ,          VP                  4       8H  RV RVP                  ^ ,           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–  z6Image features and image tokens do not match, tokens: z, features: ro  rQ   )r‘  r=   Úfullr*   Úimage_token_idÚlongrÆ   Úallr¿   r³  r«   r   rS   Únumel)rE   r«  r¬  rø  Úspecial_image_maskÚn_image_tokenss   &&&&  r.   Úget_placeholder_maskÚ3Llama4ForConditionalGeneration.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ˆØ/×9Ñ9¸"Ó=×@Ñ@À×AUÑAUÓVÐÜØ×0Ñ0°Õ4Õ4¸×8LÑ8LÓ8NÑNØDÀ^ÐDTÐT`Ðao×auÑauÐvwÕaxÐ`yÐzô	
ð "Ð!r1   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[R,          R	S[ P                  R,          R
S[R,          RS[R,          RS[R,          RS[R,          RS[S[ P                  ,          RS[S[	,          RS[
S[,          /# )r)   r«  Nr”  r  rô   rH  r¬  r¶  rÌ  ri  rA  rK  rL  rÍ  rä   rK   )r=   rj  rl  rM   r	   rñ   rk  r  r   r   r›   rÝ  )r,   r-   s   "€r.   r/   r¢  Ô  s  ø€ ÷ p
ñ p
á×#Ñ# dÕ*ðp
ñ ×'Ñ'¨$Õ.ðp
ñ Ÿ™ tÕ+ð	p
ñ
 ×&Ñ&¨Õ-ðp
ñ  �ðp
ñ ×(Ñ(¨4Õ/ðp
ñ ),¨d­
ðp
ñ × Ñ  4Õ'ðp
ñ ˜$•;ðp
ñ   $�;ðp
ñ # T�kðp
ñ ˜D•[ðp
ñ ™eŸl™lÕ*ðp
ñ Ñ+Õ,ðp
ñ  
Ñ-Õ	-ñ!p
r1   c                ó  € V
e   T
MV P                   P                  p
Ve   TMV P                   P                  pVe   TMV P                   P                  pVRJ VRJ,          '       d   \	        R4      hVe   Ve   \	        R4      hVf   V P                  4       ! V4      pVeš   V P                  VVRR7      P                  pVP                  RVP                  R4      4      pV P                  V4      P                  VP                  VP                  4      pV P                  WVR7      pVP                  VV4      p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RpVe7   V P"                  ! RRVRVRV P                   P$                  P&                  /VB pV'       g"   V3VR,          ,           pVe   V3V,           # T# \)        TTVP*                  VP,                  VP.                  Ve   XR7      # RR7      # )aA  
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,
    config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored
    (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.

Example:

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

>>> model = LlavaForConditionalGeneration.from_pretrained("llava-hf/llava-1.5-7b-hf")
>>> processor = AutoProcessor.from_pretrained("llava-hf/llava-1.5-7b-hf")

>>> prompt = "USER: <image>\nWhat's the content of the image? ASSISTANT:"
>>> url = "https://www.ilankelman.org/stopsigns/australia.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]
"USER:  \nWhat's the content of the image? ASSISTANT: The image features a busy city street with a stop sign prominently displayed"
```Nr®  zdYou cannot specify both pixel_values and inputs_embeds at the same time, and must specify either oneT)r”  r¶  rL  )r¬  rø  r  rô   rH  r¬  ri  rA  rK  rL  rÍ  rÏ  rÌ  rž  :r¥   NN)rÐ  rÏ  rH  rJ   r—  rß  rQ   ro  )r*   rA  rK  rL  r²  r‘  rº  r±  rR   rý  r¤  r«   rÆ   r¬   rÅ  Úmasked_scatterrÃ  rÒ  rz  rž  rÝ  rH  rJ   r—  )rE   r«  r”  r  rô   rH  r¬  r¶  rÌ  ri  rA  rK  rL  rÍ  rä   rø  Úvision_flatÚprojected_vision_flatrÃ  rÓ  rÏ  rÐ  r˜   s   &&&&&&&&&&&&&&,        r.   rZ   Ú&Llama4ForConditionalGeneration.forwardÑ  s’  € ðd 2CÒ1NÑ-ÐTX×T_ÑT_×TqÑTqÐà$8Ò$DÑ È$Ï+É+×JjÑJjð 	ð &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆà˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZàÒ#¨Ò(AÜØvóð ð Ò Ø ×5Ñ5Ô7¸	ÓBˆMàÒ#Ø!×4Ñ4Ø)Ø/MØ ð 5ó ÷  Ñð	 ð )×-Ñ-¨b°.×2EÑ2EÀbÓ2IÓJˆKØ$(×$>Ñ$>¸{Ó$K×$NÑ$NØ×$Ñ$ m×&9Ñ&9ó%Ð!ð "&×!:Ñ!:ØÐG\ð ";ó "Ðð *×8Ñ8Ð9KÐMbÓcˆMà×%Ò%ñ 
Ø)ð
à%ð
ð ,ð
ð (ð	
ð
  ð
ð 0ð
ð "6ð
ð $ð
ð *ð
ð ñ
ˆð ˜•ˆàˆØÒØ×%Ò%ñ ØðØ&,ðØ9=¿¹×9PÑ9P×9[Ñ9[ðØ_eñˆD÷ Ø�Y ¨¥Õ,ˆFØ'+Ò'7�D�7˜VÕ#ÐC¸VÐCä+ØØØ#×3Ñ3Ø!×/Ñ/Ø×)Ñ)Ø2>Ò2J ô
ð 	
ð QUô
ð 	
r1   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r(   r‡  )r,   r-   s   "€r.   r/   r¢  ‡  s   ø‡ ‚ ñ Ñò	 r1   )rÃ  r¤  rœ  r…  rž  )NNNNNNNNNNNNr   )r]   r^   r_   r`   r¾  rÙ  r¿  r5   r§  rª  r®  r²  r!   r"   r   rº  rÅ  rZ   r“  ra   rb   rc   rd   s   @@r.   r   r   ‡  s®   ù‡ € Ø1Ð3MÐNÐØ€HØÐ÷ó ò;òBò1ò1ð  Ù¨EÔ2ÙÐ!rÔs÷9ó tó 3ó  ð9÷ "ð "ð.  Ù¨EÔ2Ø÷p
ñ p
ó ó 3ó  ðp
÷[ … r1   r   )rK  )ru  r•  r�  rÂ  r   )arû  Úcollections.abcr   Údataclassesr   r=   Útorch.nnr;   Útorch.nn.functionalr©   rì  Ú/transformers.models.llama4.configuration_llama4r   Ú r   r{  Úactivationsr   Úcache_utilsr	   r
   Ú
generationr   Úmasking_utilsr   r   Úmodeling_flash_attention_utilsr   Úmodeling_layersr   Úmodeling_outputsr   r   r   r   r   Úmodeling_rope_utilsr   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   r   r   Úutils.deprecationr   Úutils.genericr    r!   Úutils.output_capturingr"   Úconfiguration_llama4r#   r$   Ú
get_loggerr]   Úloggerr  r&   rf   rt   r�   rj   rž   r³   rÅ   r  r  r*  r.  r0  r^  ru  r•  rÂ  rÝ  râ  rð  r	  r  r  r"  r$  r0  r9  rE  r]  r}  r�  r   Ú__all__ro  r1   r.   Ú<module>ræ     si  ðó Ý $Ý !ã Ý ß Ð å Nå &Ý !ß .Ý )ß KÝ BÝ 9÷õ ÷÷ GÝ &ß jÕ jÝ 0ß GÝ 5ß @ð 
×	Ò	˜HÓ	%€ô˜Ÿ	™	ô ôB)�B—I‘Iô )ô$!�u—x‘x—‘ô !ô=˜Ÿ	™	ô =ô(,�2—9‘9ô ,ô"�B—I‘Iô "ô,4 §	¡	ô 4õn	2õ	U÷%÷4%ô2Y)˜"Ÿ)™)ô Y)ôx/Ð7ô /ðd ôL˜Oó Ló ðLð< ôZ
Ð+ó Z
ó ðZ
ôzM
Ð-¨ô M
ñ` ðôð
 ô9 ;ó 9ó óð9ô0;�u—x‘x—‘ô ;ô" §	¡	ô òô(
) "§)¡)ô 
)õ!õ:ô7)˜BŸI™Iô 7)ôt�b—i‘iô ô)Ð9ô )ôXO
˜"Ÿ)™)ô O
ôd˜bŸi™iô ô*6 "§)¡)ô 6ô<G
Ð-ô G
ôT}
Ð%:¸Oô }
ò@‚r1   