§
    ‚Štjþ9  ã                   ó‚  — d dl mZ d dlZd dlmc mZ d dlmZ ddlmZm	Z	 ddl
mZ ddlmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZmZ ddlmZmZ ddlmZ ddlm Z  ddl!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( ddl)m*Z*  e¦   «         r	d dl+m,Z,m-Z- nd\  Z,Z-e,e-fZ. e/e.¦  «        Z0 ej1        e2¦  «        Z3 G d„ de&¦  «        Z4 G d„ de ¦  «        Z5 G d„ dej6        ¦  «        Z7 G d„ de"¦  «        Z8 G d„ dej6        ¦  «        Z9 G d „ d!e¦  «        Z: G d"„ d#e%¦  «        Z; G d$„ d%e$¦  «        Z< G d&„ d'e#¦  «        Z=g d(¢Z>dS ))é    )ÚCallableN)Únné   )ÚCacheÚDynamicCache)Úforce_accelerate_hooks)Úcreate_causal_maskÚcreate_recurrent_attention_mask)ÚGradientCheckpointingLayer)ÚBaseModelOutputWithPast)ÚALL_ATTENTION_FUNCTIONS)ÚUnpack)ÚTransformersKwargsÚlogging)Úis_causal_conv1d_availableÚis_torchdynamo_compilingé   )Úapply_mask_to_padding_states)ÚGemma2RotaryEmbedding)ÚLlamaAttentionÚLlamaForCausalLMÚ
LlamaModelÚLlamaPreTrainedModelÚLlamaRMSNormÚapply_rotary_pos_embÚeager_attention_forwardé   )Ú
Lfm2Config)Úcausal_conv1d_fnÚcausal_conv1d_update)NNc                   ó   — e Zd ZdS )ÚLfm2RMSNormN©Ú__name__Ú
__module__Ú__qualname__© ó    úc/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/lfm2/modular_lfm2.pyr"   r"   8   ó   € € € € € Ø€Dr(   r"   c                   ó   — e Zd ZdS )ÚLfm2RotaryEmbeddingNr#   r'   r(   r)   r,   r,   <   r*   r(   r,   c                   ó*   ‡ — e Zd Zdefˆ fd„Zd„ Zˆ xZS )ÚLfm2MLPÚconfigc                 óÊ  •— t          ¦   «                              ¦   «          |j        }|j        rPt	          d|z  dz  ¦  «        }|j        �4t	          |j        |z  ¦  «        }|j        ||j        z   dz
  |j        z  z  }t          j        |j	        |d¬¦  «        | _
        t          j        |j	        |d¬¦  «        | _        t          j        ||j	        d¬¦  «        | _        d S )Nr   r   r   F©Úbias)ÚsuperÚ__init__Úintermediate_sizeÚblock_auto_adjust_ff_dimÚintÚblock_ffn_dim_multiplierÚblock_multiple_ofr   ÚLinearÚhidden_sizeÚw1Úw3Úw2)Úselfr/   r5   Ú	__class__s      €r)   r4   zLfm2MLP.__init__A   sæ   ø€ Ý‰Œ×ÒÑÔÐØ"Ô4ÐØÔ*ð 	Ý # AÐ(9Ñ$9¸AÑ$=Ñ >Ô >ÐàÔ.Ð:Ý$'¨Ô(GÐJ[Ñ([Ñ$\Ô$\Ð!Ø$*Ô$<Ø&¨Ô)AÑAÀAÑEÈ&ÔJbÑbñ%Ð!õ ”)˜FÔ.Ð0AÈÐNÑNÔNˆŒÝ”)˜FÔ.Ð0AÈÐNÑNÔNˆŒÝ”)Ð-¨vÔ/AÈÐNÑNÔNˆŒˆˆr(   c                 ó¢   — |                       t          j        |                      |¦  «        ¦  «        |                      |¦  «        z  ¦  «        S ©N)r>   ÚFÚsilur<   r=   )r?   Úxs     r)   ÚforwardzLfm2MLP.forwardP   s7   € Ø�wŠw•q”v˜dŸgšg a™jœjÑ)Ô)¨D¯GªG°A©J¬JÑ6Ñ7Ô7Ð7r(   )r$   r%   r&   r   r4   rF   Ú__classcell__©r@   s   @r)   r.   r.   @   sZ   ø€ € € € € ðO˜zð Oð Oð Oð Oð Oð Oð8ð 8ð 8ð 8ð 8ð 8ð 8r(   r.   c                   ó¶   ‡ — e Zd Zdedefˆ fd„Z	 ddej        deej        ej        f         dej        dz  de	dz  d	eej        ej        dz  f         f
d
„Z
ˆ xZS )ÚLfm2Attentionr/   Ú	layer_idxc                 óD  •— t          ¦   «                              ||¦  «         t          j        |j        |j        | j        z  d¬¦  «        | _        t          j        |j        |j        | j        z  d¬¦  «        | _	        t          j        |j        |j        | j        z  d¬¦  «        | _
        t          j        |j        | j        z  |j        d¬¦  «        | _        t          | j        |j        ¬¦  «        | _        t          | j        |j        ¬¦  «        | _        | `| `d S )NFr1   ©Úeps)r3   r4   r   r:   r;   Únum_attention_headsÚhead_dimÚq_projÚnum_key_value_headsÚk_projÚv_projÚout_projr"   Únorm_epsÚq_layernormÚk_layernormÚo_projÚattention_dropout©r?   r/   rK   r@   s      €r)   r4   zLfm2Attention.__init__U   sþ   ø€ Ý‰Œ×Ò˜ Ñ+Ô+Ð+Ý”i Ô 2°FÔ4NÐQUÔQ^Ñ4^ÐejÐkÑkÔkˆŒÝ”i Ô 2°FÔ4NÐQUÔQ^Ñ4^ÐejÐkÑkÔkˆŒÝ”i Ô 2°FÔ4NÐQUÔQ^Ñ4^ÐejÐkÑkÔkˆŒÝœ	 &Ô"<¸t¼}Ñ"LÈfÔN`ÐglÐmÑmÔmˆŒÝ& t¤}¸&¼/ÐJÑJÔJˆÔÝ& t¤}¸&¼/ÐJÑJÔJˆÔØˆKØÐ"Ð"Ð"r(   NÚhidden_statesÚposition_embeddingsÚattention_maskÚpast_key_valuesÚreturnc                 ó  — |j         d d…         }g |¢d‘| j        ‘R }|                       |                      |¦  «        j        |Ž ¦  «                             dd¦  «        }|                       |                      |¦  «        j        |Ž ¦  «                             dd¦  «        }	 |                      |¦  «        j        |Ž                      dd¦  «        }
|\  }}t          ||	||¦  «        \  }}	|�| 
                    |	|
| j        ¦  «        \  }	}
t          j        | j        j        t           ¦  «        } || ||	|
|fd| j        dœ|¤Ž\  }} |j        g |¢d‘R Ž                      ¦   «         }|                      |¦  «        }||fS )Néÿÿÿÿr   r   g        )ÚdropoutÚscaling)ÚshaperP   rW   rQ   ÚviewÚ	transposerX   rS   rT   r   ÚupdaterK   r   Úget_interfacer/   Ú_attn_implementationr   rd   ÚreshapeÚ
contiguousrU   )r?   r\   r]   r^   r_   ÚkwargsÚinput_shapeÚhidden_shapeÚquery_statesÚ
key_statesÚvalue_statesÚcosÚsinÚattention_interfaceÚattn_outputÚattn_weightsÚoutputs                    r)   rF   zLfm2Attention.forward`   sÇ  € ð $Ô)¨#¨2¨#Ô.ˆØ8˜Ð8 bÐ8¨$¬-Ð8Ð8ˆà×'Ò'Ð(G¨¯ª°MÑ(BÔ(BÔ(GÈÐ(VÑWÔW×aÒaÐbcÐefÑgÔgˆØ×%Ò%Ð&E d§k¢k°-Ñ&@Ô&@Ô&EÀ|Ð&TÑUÔU×_Ò_Ð`aÐcdÑeÔeˆ
Ø6�t—{’{ =Ñ1Ô1Ô6¸ÐE×OÒOÐPQÐSTÑUÔUˆà&‰ˆˆSÝ#7¸ÀjÐRUÐWZÑ#[Ô#[Ñ ˆ�jàÐ&Ø'6×'=Ò'=¸jÈ,ÐX\ÔXfÑ'gÔ'gÑ$ˆJ˜å(?Ô(MØŒKÔ,Õ.Eñ)
ô )
Ðð %8Ð$7ØØØØØð	%
ð Ø”Lð	%
ð 	%
ð ð	%
ð 	%
Ñ!ˆ�\ð *�kÔ)Ð;¨;Ð;¸Ð;Ð;Ð;×FÒFÑHÔHˆØ—’˜{Ñ+Ô+ˆØ�|Ð#Ð#r(   rB   )r$   r%   r&   r   r7   r4   ÚtorchÚTensorÚtupler   rF   rG   rH   s   @r)   rJ   rJ   T   sÇ   ø€ € € € € ð	#˜zð 	#°cð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð  )-ð%$ð %$à”|ð%$ð # 5¤<°´Ð#=Ô>ð%$ð œ tÑ+ð	%$ð
  ™ð%$ð 
ˆuŒ|˜Uœ\¨DÑ0Ð0Ô	1ð%$ð %$ð %$ð %$ð %$ð %$ð %$ð %$r(   rJ   c                   ó:  ‡ — e Zd Zdedefˆ fd„Z	 	 	 ddej        dedz  dej        dz  dej	        dz  fd	„Z
	 	 	 ddej        dedz  dej        dz  dej	        dz  fd
„Z ed¦  «        	 	 	 ddej        dedz  dej        dz  dej	        dz  fd„¦   «         Zˆ xZS )ÚLfm2ShortConvr/   rK   c           	      óê  •— t          ¦   «                              ¦   «          || _        || _        |j        | _        |j        | _        t          j	        |j
        |j
        | j        |j
        | j        | j        dz
  ¬¦  «        | _        t          j        |j
        d|j
        z  | j        ¬¦  «        | _        t          j        |j
        |j
        | j        ¬¦  «        | _        |j        |         | _        d S )Nr   )Úin_channelsÚout_channelsÚkernel_sizeÚgroupsr2   Úpaddingr   r1   )r3   r4   r/   rK   Úconv_L_cacheÚL_cacheÚ	conv_biasr2   r   ÚConv1dr;   Úconvr:   Úin_projrU   Úlayer_typesÚ
layer_typer[   s      €r)   r4   zLfm2ShortConv.__init__‰   s×   ø€ õ
 	‰Œ×ÒÑÔÐØˆŒØ"ˆŒØÔ*ˆŒØÔ$ˆŒ	å”IØÔ*ØÔ+ØœØÔ%Ø”Ø”L 1Ñ$ð
ñ 
ô 
ˆŒ	õ ”y Ô!3°Q¸Ô9KÑ5KÐRVÔR[Ð\Ñ\Ô\ˆŒÝœ	 &Ô"4°fÔ6HÈtÌyÐYÑYÔYˆŒà Ô,¨YÔ7ˆŒˆˆr(   NrE   r_   r^   Úseq_idxc                 óæ  — t          ||¦  «        }|                      |¦  «                             dd¦  «        }|                     dd¬¦  «        \  }}}||z  }| j        j                             | j        j                             d¦  «        | j        j                             d¦  «        ¦  «        }	|�{|                     | j	        ¦  «        rat          |                     d¦  «        |j        | j	                 j        d         |	| j        j        d ¦  «        }
|
                     d¦  «        }
n€|�`t           j                             || j        |j        d         z
  df¦  «        }|                     || j	        ¦  «        d| j         d …f         }t-          ||	| j        j        d |¬¦  «        }
||
z  }|                      |                     dd¦  «                             ¦   «         ¦  «        }|S )	Nrb   éþÿÿÿr   ©Údimr   r   .)Ú
activationrŒ   )r   r‰   rg   Úchunkrˆ   Úweightrf   ÚsizeÚhas_previous_staterK   r    ÚsqueezeÚlayersÚconv_statesr2   Ú	unsqueezer   Ú
functionalÚpadr…   re   Úupdate_conv_stater   rU   rl   )r?   rE   r_   r^   rŒ   ÚBCxÚBÚCÚBxÚconv_weightsÚconv_outÚ
conv_stateÚys                r)   Úcuda_kernels_forwardz"Lfm2ShortConv.cuda_kernels_forward¡   s¿  € õ )¨¨NÑ;Ô;ˆØ�lŠl˜1‰oŒo×'Ò'¨¨BÑ/Ô/ˆØ—)’)˜A 2�)Ñ&Ô&‰ˆˆ1ˆaà�‰Uˆà”yÔ'×,Ò,¨T¬YÔ-=×-BÒ-BÀ1Ñ-EÔ-EÀtÄyÔGW×G\ÒG\Ð]^ÑG_ÔG_Ñ`Ô`ˆØÐ&¨?×+MÒ+MÈdÌnÑ+]Ô+]Ð&Ý+Ø—
’
˜2‘”ØÔ& t¤~Ô6ÔBÀ1ÔEØØ”	”Øñô ˆHð  ×)Ò)¨"Ñ-Ô-ˆHˆHàÐ*Ýœ]×.Ò.¨r°D´LÀ2Ä8ÈBÄ<Ñ4OÐQRÐ3SÑTÔT�
Ø,×>Ò>¸zÈ4Ì>ÑZÔZÐ[^ÐaeÔamÐ`mÐ`oÐ`oÐ[oÔp�
õ (¨¨L¸$¼)¼.ÐUYÐcjÐkÑkÔkˆHà�‰LˆØ�MŠM˜!Ÿ+š+ b¨"Ñ-Ô-×8Ò8Ñ:Ô:Ñ;Ô;ˆØˆr(   c           
      ó(  — |j         d         }t          ||¦  «        }|                      |¦  «                             dd¦  «        }|                     dd¬¦  «        \  }}}||z  }	|�º|                     | j        ¦  «        r |                     |	| j        ¦  «        d| j         d …f         }
t          j
        |
                     |	j        ¦  «        | j        j        d d …dd d …f         z  d¬¦  «        }| j        r|| j        j        z  }|                     d¦  «        }�n-|��©|j         d         dk    �r—|�`t"          j                             |	| j        |	j         d         z
  df¦  «        }
|                     |
| j        ¦  «        d| j         d …f         }
|d         }|dd …         |d d…         k                         d¬	¦  «        d         dz   }t          j        |                     d¦  «        ||                     d
|                     ¦   «         ¦  «        g¦  «                             ¦   «         }g }t5          t7          |¦  «        dz
  ¦  «        D ]_}||         ||dz            }}||k    rD|                     |                      |	d d …d d …||…f         ¦  «        dd ||z
  …f         ¦  «         Œ`t          j        |d¬¦  «        }n�|�`t"          j                             |	| j        |	j         d         z
  df¦  «        }
|                     |
| j        ¦  «        d| j         d …f         }
|                      |	¦  «        dd |…f         }||z  }|                     dd¦  «                             ¦   «         }|                      |¦  «        }|S )Nr   rb   rŽ   r   r�   .r   T)Úas_tuple)r   )re   r   r‰   rg   r’   r•   rK   rœ   r…   ry   ÚsumÚtoÚdevicerˆ   r“   r2   r™   r   rš   r›   ÚnonzeroÚcatÚ	new_zerosÚnew_fullÚnumelÚtolistÚrangeÚlenÚappendrl   rU   )r?   rE   r_   r^   rŒ   Úseqlenr�   rž   rŸ   r    r£   r¢   ÚsiÚchangeÚboundsÚpartsÚiÚsÚer¤   s                       r)   Úslow_forwardzLfm2ShortConv.slow_forwardÄ   sr  € ð ”˜”ˆå(¨¨NÑ;Ô;ˆØ�lŠl˜1‰oŒo×'Ò'¨¨BÑ/Ô/ˆØ—)’)˜A 2�)Ñ&Ô&‰ˆˆ1ˆaà�‰UˆàÐ&¨?×+MÒ+MÈdÌnÑ+]Ô+]Ð&Ø(×:Ò:¸2¸t¼~ÑNÔNÈsÐUYÔUaÐTaÐTcÐTcÐOcÔdˆJÝ”y §¢¨r¬yÑ!9Ô!9¸D¼IÔ<LÈQÈQÈQÐPQÐSTÐSTÐSTÈWÔ<UÑ!UÐ[]Ð^Ñ^Ô^ˆHØŒyð +Ø˜DœIœNÑ*�à×)Ò)¨"Ñ-Ô-ˆH‰HØÑ  Q¤W¨Q¤Z°1¢_¡_àÐ*Ýœ]×.Ò.¨r°D´LÀ2Ä8ÈBÄ<Ñ4OÐQRÐ3SÑTÔT�
Ø,×>Ò>¸zÈ4Ì>ÑZÔZÐ[^ÐaeÔamÐ`mÐ`oÐ`oÐ[oÔp�
Ø˜”ˆBØ˜˜˜”f  3 B 3¤Ò'×0Ò0¸$Ð0Ñ?Ô?ÀÔBÀQÑFˆFÝ”Y × 0Ò 0°Ñ 3Ô 3°V¸V¿_º_ÈTÐSU×S[ÒS[ÑS]ÔS]Ñ=^Ô=^Ð_Ñ`Ô`×gÒgÑiÔiˆFØˆEÝ�3˜v™;œ;¨™?Ñ+Ô+ð Ið I�Ø˜a”y &¨¨Q©¤-�1�Ø�q’5�5Ø—L’L §¢¨2¨a¨a¨a°°°°A°a°C¨i¬=Ñ!9Ô!9¸#¸wÀÀQÁ¸w¸,Ô!GÑHÔHÐHøÝ”y ¨BÐ/Ñ/Ô/ˆHˆHàÐ*Ýœ]×.Ò.¨r°D´LÀ2Ä8ÈBÄ<Ñ4OÐQRÐ3SÑTÔT�
Ø,×>Ò>¸zÈ4Ì>ÑZÔZÐ[^ÐaeÔamÐ`mÐ`oÐ`oÐ[oÔp�
à—y’y ‘}”} S¨'¨6¨' \Ô2ˆHà�‰LˆØ�KŠK˜˜BÑÔ×*Ò*Ñ,Ô,ˆØ�MŠM˜!ÑÔˆØˆr(   rˆ   r\   c                 ó¬   — t           r5d|j        j        v r't          ¦   «         s|                      ||||¬¦  «        S |                      ||||¬¦  «        S )NÚcuda)rŒ   )Úis_fast_path_availablerª   Útyper   r¥   r¼   )r?   r\   r_   r^   rŒ   s        r)   rF   zLfm2ShortConv.forwardô   se   € õ "ð 	n f°Ô0DÔ0IÐ&IÐ&IÕRjÑRlÔRlÐ&IØ×,Ò,¨]¸OÈ^ÐelÐ,ÑmÔmÐmØ× Ò  °ÀÐY`Ð ÑaÔaÐar(   )NNN)r$   r%   r&   r   r7   r4   ry   rz   r   Ú	IntTensorr¥   r¼   r   rF   rG   rH   s   @r)   r}   r}   ˆ   s�  ø€ € € € € ð8àð8ð ð8ð 8ð 8ð 8ð 8ð 8ð6 )-Ø.2Ø*.ð!ð !àŒ<ð!ð  ™ð!ð œ tÑ+ð	!ð
 ” 4Ñ'ð!ð !ð !ð !ðL )-Ø.2Ø*.ð.ð .àŒ<ð.ð  ™ð.ð œ tÑ+ð	.ð
 ” 4Ñ'ð.ð .ð .ð .ð` Ð˜FÑ#Ô#ð )-Ø.2Ø*.ð	bð 	bà”|ð	bð  ™ð	bð œ tÑ+ð		bð
 ” 4Ñ'ð	bð 	bð 	bñ $Ô#ð	bð 	bð 	bð 	bð 	br(   r}   c                   ó¶   ‡ — e Zd Zdedefˆ fd„Z	 	 	 	 ddej        deej        ej        f         dz  dej        dz  dej	        dz  d	e
dz  d
ej        fd„Zˆ xZS )ÚLfm2DecoderLayerr/   rK   c                 ó€  •— t          ¦   «                              ¦   «          |j        |         dk    | _        | j        rt	          ||¦  «        | _        nt          ||¦  «        | _        t          |¦  «        | _	        t          |j        |j        ¬¦  «        | _        t          |j        |j        ¬¦  «        | _        d S )NÚfull_attentionrM   )r3   r4   rŠ   Úis_attention_layerrJ   Ú	self_attnr}   rˆ   r.   Úfeed_forwardr"   r;   rV   Úoperator_normÚffn_normr[   s      €r)   r4   zLfm2DecoderLayer.__init__  s£   ø€ Ý‰Œ×ÒÑÔÐØ"(Ô"4°YÔ"?ÐCSÒ"SˆÔàÔ"ð 	9Ý*¨6°9Ñ=Ô=ˆDŒNˆNå% f¨iÑ8Ô8ˆDŒIÝ# F™OœOˆÔÝ(¨Ô);ÀÄÐQÑQÔQˆÔÝ# FÔ$6¸F¼OÐLÑLÔLˆŒˆˆr(   Nr\   r]   r^   Úposition_idsr_   r`   c           	      óJ  — |}| j         r* | j        d|                      |¦  «        ||||dœ|¤Ž\  }}n?|                      |                      |¦  «        |||                     d¦  «        ¬¦  «        }||z   }||                      |                      |¦  «        ¦  «        z   }|S )N)r\   r]   r^   rË   r_   rŒ   )r\   r_   r^   rŒ   r'   )rÆ   rÇ   rÉ   rˆ   ÚgetrÈ   rÊ   )	r?   r\   r]   r^   rË   r_   rm   ÚresidualÚ_s	            r)   rF   zLfm2DecoderLayer.forward  sÕ   € ð !ˆØÔ"ð 	Ø-˜tœ~ð  Ø"×0Ò0°Ñ?Ô?Ø$7Ø-Ø)Ø /ð ð  ð ð ð  ÑˆM˜1˜1ð !ŸIšIØ"×0Ò0°Ñ?Ô?Ø /Ø-ØŸ
š
 9Ñ-Ô-ð	 &ñ ô ˆMð &¨Ñ0ˆØ%¨×(9Ò(9¸$¿-º-ÈÑ:VÔ:VÑ(WÔ(WÑWˆàÐr(   )NNNN)r$   r%   r&   r   r7   r4   ry   rz   r{   Ú
LongTensorr   rF   rG   rH   s   @r)   rÃ   rÃ     sà   ø€ € € € € ð
M˜zð 
M°cð 
Mð 
Mð 
Mð 
Mð 
Mð 
Mð IMØ.2Ø04Ø(,ðð à”|ðð # 5¤<°´Ð#=Ô>ÀÑEðð œ tÑ+ð	ð
 Ô&¨Ñ-ðð  ™ðð 
Œðð ð ð ð ð ð ð r(   rÃ   c                   ó   — e Zd ZdZdS )ÚLfm2PreTrainedModelTN)r$   r%   r&   Ú_is_statefulr'   r(   r)   rÒ   rÒ   .  s   € € € € € Ø€L€L€Lr(   rÒ   c                   ó²   ‡ — e Zd Zdefˆ fd„Z	 	 	 	 	 	 ddej        dz  dej        dz  dej        dz  dedz  dej	        dz  d	e
dz  d
ee         defd„Zˆ xZS )Ú	Lfm2Modelr/   c                 óŽ   •— t          ¦   «                              |¦  «         t          |j        |j        ¬¦  «        | _        | `d S )NrM   )r3   r4   r"   r;   rV   Úembedding_normÚnorm)r?   r/   r@   s     €r)   r4   zLfm2Model.__init__3  s>   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ý)¨&Ô*<À&Ä/ÐRÑRÔRˆÔØˆIˆIˆIr(   NÚ	input_idsr^   rË   r_   Úinputs_embedsÚ	use_cacherm   r`   c           	      óÚ  — |d u |d uz  rt          d¦  «        ‚|€|                      |¦  «        }|r|€t          | j        ¬¦  «        }|€V|�|                     ¦   «         nd}t          j        |j        d         |j        ¬¦  «        |z   }| 	                    d¦  «        }t          |x}	t          ¦  «        s&| j        ||||dœ}
t          di |
¤Žt          di |
¤Ždœ}	|}|                      ||¬¦  «        }t          | j        d | j        j        …         ¦  «        D ])\  }} ||f|	| j        j        |                  |||d	œ|¤Ž}Œ*|                      |¦  «        }t)          ||¬
¦  «        S )Nz:You must specify exactly one of input_ids or inputs_embeds)r/   r   r   )rª   )r/   rÚ   r^   r_   rË   )rÅ   rˆ   )rË   )r^   r]   rË   r_   )Úlast_hidden_stater_   r'   )Ú
ValueErrorÚembed_tokensr   r/   Úget_seq_lengthry   Úarangere   rª   r™   Ú
isinstanceÚdictr	   r
   Ú
rotary_embÚ	enumerater—   Únum_hidden_layersrŠ   r×   r   )r?   rÙ   r^   rË   r_   rÚ   rÛ   rm   Úpast_seen_tokensÚcausal_mask_mappingÚmask_kwargsr\   r]   r¹   Údecoder_layers                  r)   rF   zLfm2Model.forward8  sè  € ð ˜Ð -°tÐ";Ñ<ð 	[ÝÐYÑZÔZÐZàÐ Ø ×-Ò-¨iÑ8Ô8ˆMàð 	?˜Ð0Ý*°$´+Ð>Ñ>Ô>ˆOàÐØCRÐC^˜×=Ò=Ñ?Ô?Ð?ÐdeÐÝ œ<¨Ô(;¸AÔ(>À}ÔG[Ð\Ñ\Ô\Ð_oÑoˆLØ'×1Ò1°!Ñ4Ô4ˆLå°Ð?Ð-ÅÑFÔFð 	àœ+Ø!.Ø"0Ø#2Ø ,ðð ˆKõ #5Ð"CÐ"C°{Ð"CÐ"CÝ7ÐFÐF¸+ÐFÐFð#ð #Ðð
 &ˆØ"Ÿošo¨mÈ,˜oÑWÔWÐõ !*¨$¬+Ð6U¸¼Ô8UÐ6UÔ*VÑ WÔ Wð 	ð 	ÑˆAˆ}Ø)˜MØðà2°4´;Ô3JÈ1Ô3MÔNØ$7Ø)Ø /ðð ð ðð ˆMˆMð ×+Ò+¨MÑ:Ô:ˆå&Ø+Ø+ð
ñ 
ô 
ð 	
r(   )NNNNNN)r$   r%   r&   r   r4   ry   rÐ   rz   r   ÚFloatTensorÚboolr   r   r   rF   rG   rH   s   @r)   rÕ   rÕ   2  sì   ø€ € € € € ð˜zð ð ð ð ð ð ð .2Ø.2Ø04Ø(,Ø26Ø!%ð8
ð 8
àÔ# dÑ*ð8
ð œ tÑ+ð8
ð Ô&¨Ñ-ð	8
ð
  ™ð8
ð Ô(¨4Ñ/ð8
ð ˜$‘;ð8
ð Ð+Ô,ð8
ð 
!ð8
ð 8
ð 8
ð 8
ð 8
ð 8
ð 8
ð 8
r(   rÕ   c                   ó   — e Zd ZdS )ÚLfm2ForCausalLMNr#   r'   r(   r)   rî   rî   s  r*   r(   rî   )rî   rÕ   rÒ   )?Úcollections.abcr   ry   Útorch.nn.functionalr   rš   rC   Úcache_utilsr   r   Úintegrations.accelerater   Úmasking_utilsr	   r
   Úmodeling_layersr   Úmodeling_outputsr   Úmodeling_utilsr   Úprocessing_utilsr   Úutilsr   r   Úutils.import_utilsr   r   Úbamba.modeling_bambar   Úgemma2.modeling_gemma2r   Úllama.modeling_llamar   r   r   r   r   r   r   Úconfiguration_lfm2r   Úcausal_conv1dr   r    Úkernel_modulesÚallr¿   Ú
get_loggerr$   Úloggerr"   r,   ÚModuler.   rJ   r}   rÃ   rÒ   rÕ   rî   Ú__all__r'   r(   r)   ú<module>r     s®  ðð %Ð $Ð $Ð $Ð $Ð $à €€€Ø Ð Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø =Ð =Ð =Ð =Ð =Ð =Ø PÐ PÐ PÐ PÐ PÐ PÐ PÐ PØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø &Ð &Ð &Ð &Ð &Ð &Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø :Ð :Ð :Ð :Ð :Ð :ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *ð ÐÑÔð 8ØDÐDÐDÐDÐDÐDÐDÐDÐDà-7Ñ*ÐÐ*ð #Ð$8Ð9€Ø˜˜^Ñ,Ô,Ð ð 
ˆÔ	˜HÑ	%Ô	%€ð	ð 	ð 	ð 	ð 	�,ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð/ñ 	ô 	ð 	ð8ð 8ð 8ð 8ð 8ˆbŒiñ 8ô 8ð 8ð(1$ð 1$ð 1$ð 1$ð 1$�Nñ 1$ô 1$ð 1$ðhvbð vbð vbð vbð vb�B”Iñ vbô vbð vbðr*ð *ð *ð *ð *Ð1ñ *ô *ð *ðZð ð ð ð Ð.ñ ô ð ð>
ð >
ð >
ð >
ð >
�
ñ >
ô >
ð >
ðB	ð 	ð 	ð 	ð 	Ð&ñ 	ô 	ð 	ð BÐ
AÐ
A€€€r(   