§
    ‚Štj¬<  ã                   óÊ  — d Z ddlmZ ddlZddl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mZ ddlmZ ddlmZ ddlmZ ddlmZmZmZ ddl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)m*Z*m+Z+ ddl,m-Z-m.Z.  ej/        e0¦  «        Z1dZ2dZ3 ed¬¦  «        e G d„ de¦  «        ¦   «         ¦   «         Z4 G d„ de)¦  «        Z5 G d„ de!¦  «        Z6 G d„ dej7        ¦  «        Z8 G d„ d e.¦  «        Z9 G d!„ d"e-¦  «        Z: G d#„ d$e(¦  «        Z; G d%„ d&e;e'¦  «        Z< G d'„ d(e#¦  «        Z= G d)„ d*e%¦  «        Z> G d+„ d,e&¦  «        Z? G d-„ d.e$¦  «        Z@g d/¢ZAdS )0zLG AI Research EXAONE Labé    )ÚCallableN)Ústrict)Únné   )ÚCacheÚDynamicCache)ÚPreTrainedConfig)Úcreate_causal_maskÚ!create_sliding_window_causal_mask)ÚBaseModelOutputWithPastÚCausalLMOutputWithPast)ÚRopeParameters)ÚALL_ATTENTION_FUNCTIONS)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚlogging)Úmerge_with_config_defaults)Úcapture_outputsé   )ÚGemma2RotaryEmbedding)	ÚLlamaForCausalLMÚLlamaForQuestionAnsweringÚLlamaForSequenceClassificationÚLlamaForTokenClassificationÚ
LlamaModelÚLlamaPreTrainedModelÚLlamaRMSNormÚapply_rotary_pos_embÚeager_attention_forward)ÚOlmo2DecoderLayerÚOlmo2MLPzLGAI-EXAONE/EXAONE-4.0-32BÚExaone4Config)Ú
checkpointc            
       óÞ  ‡ — e Zd ZU dZdZdgZddddddddddœ	Zdgd	gfd
dgd
gfd
gd
gfdœZdZe	e
d<   dZe	e
d<   dZe	e
d<   dZe	e
d<   dZe	e
d<   dZe	e
d<   dZee
d<   dZe	e
d<   dZee
d<   dZee
d<   dZee
d <   d!Ze	d"z  e
d#<   d$Ze	ee	         z  d"z  e
d%<   d"Ze	d"z  e
d&<   d'Zee
d(<   d"Zeez  d"z  e
d)<   d*Z ee	z  e
d+<   dZ!e	d"z  e
d,<   d-Z"ee	z  d"z  e
d.<   d"Z#ee         d"z  e
d/<   ˆ fd0„Z$ˆ xZ%S )1r#   a~  
    sliding_window_pattern (`str`, *optional*):
        The pattern to use for sliding window attention. Can be one of:
            - `None`: No sliding window attention is used
            - `int`: Every `sliding_window` layers, use global attention, else use local attention.
            - `str`: A sequence of "L" (local attention) and "G" (global attention) characters that defines the
              attention pattern. The pattern starts from layer 0 and repeats every `sliding_window` layers. The
              final layer always uses global attention regardless of the pattern.
        For instance, sliding_window_pattern="LLLG" same as sliding_window=4, which means:
            - Layer 0, 1, 2: local attention,
            - Layer 3: global attention,
            ...(repeated)

    Example:

    ```python
    >>> from transformers import Exaone4Model, Exaone4Config

    >>> # Initializing a EXAONE configuration
    >>> configuration = Exaone4Config()

    >>> # Initializing a model from configuration
    >>> model = Exaone4Model(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Úexaone4Úpast_key_valuesÚcolwiseÚreplicated_with_grad_allreduceÚrowwise)	zlayers.*.self_attn.q_projzlayers.*.self_attn.k_projzlayers.*.self_attn.v_projzlayers.*.self_attn.q_normzlayers.*.self_attn.k_normzlayers.*.self_attn.o_projzlayers.*.mlp.gate_projzlayers.*.mlp.up_projzlayers.*.mlp.down_projÚ	input_idsÚinputs_embedsÚhidden_statesÚattention_mask)Úembed_tokensÚlayersÚnormi � Ú
vocab_sizei   Úhidden_sizei @  Úintermediate_sizeé    Únum_hidden_layersÚnum_attention_headsÚnum_key_value_headsÚsiluÚ
hidden_acti   Úmax_position_embeddingsg{®Gáz”?Úinitializer_rangegñhãˆµøä>Úrms_norm_epsTÚ	use_cacher   NÚbos_token_idr   Úeos_token_idÚpad_token_idFÚtie_word_embeddingsÚrope_parametersç        Úattention_dropoutÚsliding_windowé   Úsliding_window_patternÚlayer_typesc                 ó°   •‡ — ‰ j         €d‰ _        ‰ j        €%ˆ fd„t          ‰ j        ¦  «        D ¦   «         ‰ _         t          ¦   «         j        di |¤Ž d S )Nr   c                 óP   •— g | ]"}|d z   ‰j         z  dk    r|‰j        k     rdnd‘Œ#S )é   r   Úsliding_attentionÚfull_attention)rH   r6   )Ú.0ÚiÚselfs     €úi/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/exaone4/modular_exaone4.pyú
<listcomp>z/Exaone4Config.__post_init__.<locals>.<listcomp>…   sW   ø€ ð  ð  ð  ð ð ˜‘U˜tÔ:Ñ;¸qÒ@Ð@ÀQÈÔI_ÒE_ÐE_ð $Ð#à%ð ð  ð  ó    © )rF   rH   rI   Úranger6   ÚsuperÚ__post_init__)rQ   ÚkwargsÚ	__class__s   ` €rR   rX   zExaone4Config.__post_init__�   s{   øø€ ØÔÐ&Ø*+ˆDÔ'ØÔÐ#ð ð  ð  ð  õ ˜tÔ5Ñ6Ô6ð	 ñ  ô  ˆDÔð 	�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'rT   )&Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
model_typeÚkeys_to_ignore_at_inferenceÚbase_model_tp_planÚbase_model_pp_planr2   ÚintÚ__annotations__r3   r4   r6   r7   r8   r:   Ústrr;   r<   Úfloatr=   r>   Úboolr?   r@   ÚlistrA   rB   rC   r   ÚdictrE   rF   rH   rI   rX   Ú__classcell__©rZ   s   @rR   r#   r#   9   s=  ø€ € € € € € ðð ð8 €JØ#4Ð"5Ðð &/Ø%.Ø%.Ø%EØ%EØ%.Ø"+Ø )Ø"+ð
ð 
Ðð &˜¨Ð(9Ð:Ø#Ð%5Ð6¸Ð8IÐJØ!Ð" _Ð$5Ð6ðð Ðð €J�ÐÐÑØ€K�ÐÐÑØ"Ð�sÐ"Ð"Ñ"ØÐ�sÐÐÑØ!Ð˜Ð!Ð!Ñ!Ø!Ð˜Ð!Ð!Ñ!Ø€J�ÐÐÑØ#'Ð˜SÐ'Ð'Ñ'Ø#Ð�uÐ#Ð#Ñ#Ø€L�%ÐÐÑØ€IˆtÐÐÑØ €L�#˜‘*Ð Ð Ñ Ø+,€L�#˜˜Sœ	‘/ DÑ(Ð,Ð,Ñ,Ø#€L�#˜‘*Ð#Ð#Ñ#Ø %Ð˜Ð%Ð%Ñ%Ø48€O�^ dÑ*¨TÑ1Ð8Ð8Ñ8Ø%(Ð�u˜s‘{Ð(Ð(Ñ(Ø!%€N�C˜$‘JÐ%Ð%Ñ%Ø/0Ð˜C #™I¨Ñ,Ð0Ð0Ñ0Ø$(€K��c”˜TÑ!Ð(Ð(Ñ(ð(ð (ð (ð (ð (ð (ð (ð (ð (rT   c                   ó   — e Zd ZdS )ÚExaone4RMSNormN©r[   r\   r]   rU   rT   rR   rm   rm   �   ó   € € € € € Ø€DrT   rm   c                   ó   — e Zd ZdS )ÚExaone4RotaryEmbeddingNrn   rU   rT   rR   rq   rq   “   ro   rT   rq   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         d
eej        ej        dz  eej                 dz  f         fd„Zˆ xZS )ÚExaone4AttentionÚconfigÚ	layer_idxc                 óÒ  •— t          ¦   «                              ¦   «          || _        || _        |j        | _        |j        | _        |j        | _        t          |d|j        |j        z  ¦  «        | _        |j        |j        z  | _	        |j
        | _
        d| _        | j        dz  | _        |j        | _        |j        | _        t          |d¦  «        r|j        |         nd }|dk    | _        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¬¦  «        | _        t1          | j        |j        ¬¦  «        | _        t1          | j        |j        ¬¦  «        | _        d S )	NÚhead_dimTg      à¿rI   rM   F)Úbias©Úeps)rW   Ú__init__rt   ru   r7   r8   r3   Úgetattrrw   Únum_key_value_groupsrE   Ú	is_causalÚscalingrF   rH   ÚhasattrrI   Ú
is_slidingr   ÚLinearÚq_projÚk_projÚv_projÚo_projrm   r=   Úq_normÚk_norm)rQ   rt   ru   Ú
layer_typerZ   s       €rR   r{   zExaone4Attention.__init__˜   s¬  ø€ Ý‰Œ×ÒÑÔÐØˆŒØ"ˆŒØ#)Ô#=ˆÔ Ø#)Ô#=ˆÔ Ø!Ô-ˆÔÝ ¨
°FÔ4FÈ&ÔJdÑ4dÑeÔeˆŒØ$*Ô$>À&ÔB\Ñ$\ˆÔ!Ø!'Ô!9ˆÔØˆŒØ”} dÑ*ˆŒØ$Ô3ˆÔØ&,Ô&CˆÔ#Ý6=¸fÀmÑ6TÔ6TÐ^�VÔ'¨	Ô2Ð2ÐZ^ˆ
Ø$Ð(;Ò;ˆŒå”i Ô 0°$Ô2JÈTÌ]Ñ2ZÐafÐgÑgÔgˆŒÝ”i Ô 0°$Ô2JÈTÌ]Ñ2ZÐafÐgÑgÔgˆŒÝ”i Ô 0°$Ô2JÈTÌ]Ñ2ZÐafÐgÑgÔgˆŒÝ”i Ô 8¸4¼=Ñ HÈ$ÔJZÐafÐgÑgÔgˆŒå$ T¤]¸Ô8KÐLÑLÔLˆŒÝ$ T¤]¸Ô8KÐLÑLÔLˆŒˆˆrT   Nr-   Úposition_embeddingsr.   r'   rY   Úreturnc                 ó°  — |j         d d…         }g |¢d‘| j        ‘R }|                      |¦  «                             |¦  «                             dd¦  «        }|                      |¦  «                             |¦  «                             dd¦  «        }	|                      |¦  «                             |¦  «                             dd¦  «        }
|                      |¦  «        }|                      |	¦  «        }	|\  }}| j	        �| j
        rt          ||	||¦  «        \  }}	|�|                     |	|
| j        ¦  «        \  }	}
t          j        | j        j        t$          ¦  «        } || ||	|
|f| j        sdn| j        | j        | j
        r| j	        nd dœ|¤Ž\  }} |j        g |¢d‘R Ž                      ¦   «         }|                      |¦  «        }||fS )NéÿÿÿÿrL   r   rD   )Údropoutr   rF   )Úshaperw   rƒ   ÚviewÚ	transposer„   r…   r‡   rˆ   rF   r�   r   Úupdateru   r   Úget_interfacert   Ú_attn_implementationr    ÚtrainingrE   r   ÚreshapeÚ
contiguousr†   )rQ   r-   rŠ   r.   r'   rY   Úinput_shapeÚhidden_shapeÚquery_statesÚ
key_statesÚvalue_statesÚcosÚsinÚattention_interfaceÚattn_outputÚattn_weightss                   rR   ÚforwardzExaone4Attention.forward±   s  € ð $Ô)¨#¨2¨#Ô.ˆØ8˜Ð8 bÐ8¨$¬-Ð8Ð8ˆà—{’{ =Ñ1Ô1×6Ò6°|ÑDÔD×NÒNÈqÐRSÑTÔTˆØ—[’[ Ñ/Ô/×4Ò4°\ÑBÔB×LÒLÈQÐPQÑRÔRˆ
Ø—{’{ =Ñ1Ô1×6Ò6°|ÑDÔD×NÒNÈqÐRSÑTÔTˆð —{’{ <Ñ0Ô0ˆØ—[’[ Ñ,Ô,ˆ
à&‰ˆˆSàÔÐ&¨$¬/Ð&Ý';¸LÈ*ÐVYÐ[^Ñ'_Ô'_Ñ$ˆL˜*àÐ&Ø'6×'=Ò'=¸jÈ,ÐX\ÔXfÑ'gÔ'gÑ$ˆJ˜å(?Ô(MØŒKÔ,Õ.Eñ)
ô )
Ðð %8Ð$7ØØØØØð
%
ð  $œ}ÐH�C�C°$Ô2HØ”LØ26´/ÐK˜4Ô.Ð.Àtð
%
ð 
%
ð ð
%
ð 
%
Ñ!ˆ�\ð *�kÔ)Ð;¨;Ð;¸Ð;Ð;Ð;×FÒFÑHÔHˆØ—k’k +Ñ.Ô.ˆØ˜LÐ(Ð(rT   )NN)r[   r\   r]   r#   rc   r{   ÚtorchÚTensorÚtupler   r   r   r¢   rj   rk   s   @rR   rs   rs   —   sð   ø€ € € € € ðM˜}ð M¸ð Mð Mð Mð Mð Mð Mð: /3Ø(,ð-)ð -)à”|ð-)ð # 5¤<°´Ð#=Ô>ð-)ð œ tÑ+ð	-)ð
  ™ð-)ð Ð+Ô,ð-)ð 
ˆuŒ|˜Uœ\¨DÑ0°%¸¼Ô2EÈÑ2LÐLÔ	Mð-)ð -)ð -)ð -)ð -)ð -)ð -)ð -)rT   rs   c                   ó   — e Zd ZdS )Ú
Exaone4MLPNrn   rU   rT   rR   r§   r§   á   ro   rT   r§   c                   ó   — e Zd ZdS )ÚExaone4DecoderLayerNrn   rU   rT   rR   r©   r©   å   ro   rT   r©   c                   ó   — e Zd ZeZdgZdS )ÚExaone4PreTrainedModelr©   N)r[   r\   r]   r#   Úconfig_classÚ_no_split_modulesrU   rT   rR   r«   r«   é   s   € € € € € Ø €LØ.Ð/ÐÐÐrT   r«   c                   óØ   ‡ — e Zd Zdefˆ fd„Zee	 	 	 	 	 	 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ez  fd„¦   «         ¦   «         Zˆ xZS )ÚExaone4Modelrt   c                 ó"  •‡— t          ¦   «                              ‰¦  «         t          j        ˆfd„t	          ‰j        ¦  «        D ¦   «         ¦  «        | _        t          ‰j        ‰j	        ¬¦  «        | _
        |                      ¦   «          d S )Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rU   )r©   )rO   ru   rt   s     €rR   rS   z)Exaone4Model.__init__.<locals>.<listcomp>ò   s$   ø€ ÐeÐeÐe¸	Õ  ¨Ñ3Ô3ÐeÐeÐerT   ry   )rW   r{   r   Ú
ModuleListrV   r6   r0   rm   r3   r=   r1   Ú	post_init)rQ   rt   rZ   s    `€rR   r{   zExaone4Model.__init__ï   s…   øø€ Ý‰Œ×Ò˜Ñ Ô Ð Ý”mØeÐeÐeÐeÅUÈ6ÔKcÑEdÔEdÐeÑeÔeñ
ô 
ˆŒõ # 6Ô#5¸6Ô;NÐOÑOÔOˆŒ	ð 	�ŠÑÔÐÐÐrT   Nr+   r.   Úposition_idsr'   r,   r>   rY   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          ¦  «        s8| j        ||||dœ}
dt          di |
¤Ži}	d| j        j        v rt          di |
¤Ž|	d<   |}|                      ||¦  «        }t!          | j        ¦  «        D ],\  }}| j        j        |         } ||f|	|         ||||d	œ|¤Ž}Œ-|                      |¦  «        }t'          ||r|nd ¬
¦  «        S )Nz:You must specify exactly one of input_ids or inputs_embeds)rt   r   rL   )Údevice)rt   r,   r.   r'   r´   rN   rM   )r.   r´   r'   r>   rŠ   )Úlast_hidden_stater'   rU   )Ú
ValueErrorr/   r   rt   Úget_seq_lengthr£   Úaranger�   r¶   Ú	unsqueezeÚ
isinstanceri   r
   rI   r   Ú
rotary_embÚ	enumerater0   r1   r   )rQ   r+   r.   r´   r'   r,   r>   rY   Úpast_seen_tokensÚcausal_mask_mappingÚmask_kwargsr-   rŠ   rP   Údecoder_layerr‰   s                   rR   r¢   zExaone4Model.forwardù   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ð 	lð œ+Ø!.Ø"0Ø#2Ø ,ðð ˆKð !Õ"4Ð"CÐ"C°{Ð"CÐ"Cð#Ðð # d¤kÔ&=Ð=Ð=Ý;\Ð;kÐ;kÐ_jÐ;kÐ;kÐ#Ð$7Ñ8à%ˆØ"Ÿošo¨m¸\ÑJÔJÐå )¨$¬+Ñ 6Ô 6ð 
	ð 
	ÑˆAˆ}ØœÔ0°Ô3ˆJØ)˜MØðà2°:Ô>Ø)Ø /Ø#Ø$7ðð ð ðð ˆMˆMð Ÿ	š	 -Ñ0Ô0ˆå&Ø+Ø/8ÐB˜O˜O¸dð
ñ 
ô 
ð 	
rT   )NNNNNN)r[   r\   r]   r#   r{   r   r   r£   Ú
LongTensorr¤   r   ÚFloatTensorrg   r   r   r¥   r   r¢   rj   rk   s   @rR   r¯   r¯   î   s	  ø€ € € € € ð˜}ð ð ð ð ð ð ð  Øð .2Ø.2Ø04Ø(,Ø26Ø!%ð=
ð =
àÔ# dÑ*ð=
ð œ tÑ+ð=
ð Ô&¨Ñ-ð	=
ð
  ™ð=
ð Ô(¨4Ñ/ð=
ð ˜$‘;ð=
ð Ð+Ô,ð=
ð 
Ð(Ñ	(ð=
ð =
ð =
ñ „_ñ  Ôð=
ð =
ð =
ð =
ð =
rT   r¯   c                   óÒ   ‡ — e Z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j        dz  d	edz  d
e	ej        z  de
e         defˆ fd„Zˆ xZS )ÚExaone4ForCausalLMNr   r+   r.   r´   r'   r,   Úlabelsr>   Úlogits_to_keeprY   r‹   c	                 óL   •—  t          ¦   «         j        d||||||||dœ|	¤Ž dS )u�  
        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 AutoModelForCausalLM, AutoTokenizer
        >>> model = AutoModelForCausalLM.from_pretrained("LGAI-EXAONE/EXAONE-4.0-32B")
        >>> tokenizer = AutoTokenizer.from_pretrained("LGAI-EXAONE/EXAONE-4.0-32B")

        >>> prompt = "Explain how wonderful you are"
        >>> messages = [
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": prompt}
        ]
        >>> input_ids = tokenizer.apply_chat_template(
            messages,
            tokenize=True,
            add_generation_prompt=True,
            return_tensors="pt",
            enable_thinking=False,
        )

        >>> output = model.generate(input_ids, max_new_tokens=128)
        >>> tokenizer.decode(output[0], skip_special_tokens=False)
        "[|system|]\nYou are a helpful assistant.[|endofturn|]\n[|user|]\nExplain how wonderful you are[|endofturn|]\n[|assistant|]\n<think>\n\n</think>\n\nOh, thank you for such a kind and lovely question! ðŸ˜Š  \n\nIâ€™m *so* wonderful because Iâ€™m here to make your life easier, brighter, and more fun! Whether you need help with:  \n\nâœ¨ **Learning** â€“ I can explain anything, from quantum physics to baking the perfect cake!  \nðŸ’¡ **Creativity** â€“ Need a poem, story, or a wild idea? Iâ€™ve got you covered!  \nðŸ¤– **Problem-solving** â€“ Stuck on a math problem or a tricky decision? Iâ€™ll help you figure it out"
        ```
        )r+   r.   r´   r'   r,   rÇ   r>   rÈ   NrU   )rW   r¢   )rQ   r+   r.   r´   r'   r,   rÇ   r>   rÈ   rY   rZ   s             €rR   r¢   zExaone4ForCausalLM.forward<  sV   ø€ ðV 	�‰ŒŒð 
	
ØØ)Ø%Ø+Ø'ØØØ)ð
	
ð 
	
ð ð
	
ð 
	
ð 
	
ð 
	
ð 
	
rT   )NNNNNNNr   )r[   r\   r]   r£   rÃ   r¤   r   rÄ   rg   rc   r   r   r   r¢   rj   rk   s   @rR   rÆ   rÆ   ;  sú   ø€ € € € € ð .2Ø.2Ø04Ø(,Ø26Ø*.Ø!%Ø-.ð5
ð 5
àÔ# dÑ*ð5
ð œ tÑ+ð5
ð Ô&¨Ñ-ð	5
ð
  ™ð5
ð Ô(¨4Ñ/ð5
ð Ô  4Ñ'ð5
ð ˜$‘;ð5
ð ˜eœlÑ*ð5
ð Ð+Ô,ð5
ð 
 ð5
ð 5
ð 5
ð 5
ð 5
ð 5
ð 5
ð 5
ð 5
ð 5
rT   rÆ   c                   ó   — e Zd ZdS )Ú Exaone4ForSequenceClassificationNrn   rU   rT   rR   rË   rË   t  ro   rT   rË   c                   ó   — e Zd ZdS )ÚExaone4ForTokenClassificationNrn   rU   rT   rR   rÍ   rÍ   x  ro   rT   rÍ   c                   ó   — e Zd ZdS )ÚExaone4ForQuestionAnsweringNrn   rU   rT   rR   rÏ   rÏ   |  ro   rT   rÏ   )r#   r«   r¯   rÆ   rË   rÍ   rÏ   )Br^   Úcollections.abcr   r£   Úhuggingface_hub.dataclassesr   r   Úcache_utilsr   r   Úconfiguration_utilsr	   Úmasking_utilsr
   r   Úmodeling_outputsr   r   Úmodeling_rope_utilsr   Úmodeling_utilsr   Úprocessing_utilsr   Úutilsr   r   r   Úutils.genericr   Úutils.output_capturingr   Úgemma2.modeling_gemma2r   Úllama.modeling_llamar   r   r   r   r   r   r   r   r    Úolmo2.modeling_olmo2r!   r"   Ú
get_loggerr[   ÚloggerÚ_CHECKPOINT_FOR_DOCÚ_CONFIG_FOR_DOCr#   rm   rq   ÚModulers   r§   r©   r«   r¯   rÆ   rË   rÍ   rÏ   Ú__all__rU   rT   rR   ú<module>rå      sD  ðð  Ð à $Ð $Ð $Ð $Ð $Ð $à €€€Ø .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð à .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ Rðð ð ð ð ð ð ð ð 2Ð 1Ð 1Ð 1Ð 1Ð 1Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø &Ð &Ð &Ð &Ð &Ð &Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø :Ð :Ð :Ð :Ð :Ð :ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð ?Ð >Ð >Ð >Ð >Ð >Ð >Ð >ð 
ˆÔ	˜HÑ	%Ô	%€à2Ð Ø!€ð €Ð7Ð8Ñ8Ô8ØðQ(ð Q(ð Q(ð Q(ð Q(Ð$ñ Q(ô Q(ñ „ñ 9Ô8ðQ(ðh	ð 	ð 	ð 	ð 	�\ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð2ñ 	ô 	ð 	ðG)ð G)ð G)ð G)ð G)�r”yñ G)ô G)ð G)ðT	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð+ñ 	ô 	ð 	ð0ð 0ð 0ð 0ð 0Ð1ñ 0ô 0ð 0ð
J
ð J
ð J
ð J
ð J
Ð)¨:ñ J
ô J
ð J
ðZ6
ð 6
ð 6
ð 6
ð 6
Ð)ñ 6
ô 6
ð 6
ðr	ð 	ð 	ð 	ð 	Ð'Eñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð$?ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð";ñ 	ô 	ð 	ðð ð €€€rT   