+
    œ°³j&  ã                   ó¸   € R t ^ RIt^ RIHt ^ RIHt ^RIHt ^RIH	t	H
t
 ^RIHt ]
P                  ! ]4      tRt]	! RR7      ] ! R	 R
]4      4       4       tR
.tR# )zNeoMME model configuration.N)ÚLiteral)Ústrict)ÚPreTrainedConfig)Úauto_docstringÚlogging)Úpositive_int_fieldzHcompany/NeoMME-260M)Ú
checkpointc                   óÌ  a a€ ] tR t^t oRtRtRRRRRRRRRR	R
RRR	/tRRRR/tRRRR/tRt	]
! RR7      t]
! RR7      t]
! RR7      t]
! RR7      tRtRt]
! ^R7      t]
! ^R7      t]
! ^R7      t]
! ^@R7      t]
! RR7      tRtRtRtRtRtRtRtRt]
! ^ R7      t]
! ^€R7      t^ t ^t!^t"Rt#V 3R lt$R  t%R! t&V3R" lR# lt'V3R$ lR% lt(])V3R& lR' l4       t*V3R( lt+R)t,Vt-V ;t.# )*ÚNeoMMEConfiga¤  
embedding_rank (`int`, *optional*, defaults to 256):
    Width of the factorized token embedding table before projection to `hidden_size`.
layer_types (`list[str]`, *optional*):
    By default, every sixth layer and the final layer use full attention.
rope_parameters (`dict`, *optional*):
    Rotary-position settings for `"full_attention"` and `"sliding_attention"` layers. The rotated dimensions,
    `head_dim * partial_rotary_factor`, must be a positive multiple of four.
residual_multiplier (`float`, *optional*):
    Scale applied to attention and MLP residual branches. Defaults to `1 / sqrt(2 * num_hidden_layers)`.
embedding_dim (`int`, *optional*, defaults to 128):
    Width of the token-level embeddings returned by [`NeoMMEForRetrieval`]. This setting is unrelated to
    `embedding_rank`.
document_token_id (`int`, *optional*, defaults to 5):
    Token ID for the `<doc>` marker.
tie_word_embeddings (`bool`, *optional*, defaults to `True`):
    Whether the masked token decoder reuses both factorized token embedding weights.

```python
>>> from transformers import NeoMMEModel, NeoMMEConfig

>>> configuration = NeoMMEConfig()
>>> model = NeoMMEModel(configuration)
```
Úneommezlayers.*.self_attn.q_projÚcolwisezlayers.*.self_attn.k_projzlayers.*.self_attn.v_projz.layers.*.self_attn.output_projection.gate_projz+layers.*.self_attn.output_projection.o_projÚrowwisezlayers.*.mlp.up_projzlayers.*.mlp.down_projÚfull_attentiong    €„.AÚsliding_attentiong     ˆÃ@g      Ð?ç      ð?i   i   )Údefaulté   i   Úrelu2Fi @  g�íµ ÷Æ°>g{®Gáz”?ç        NTc                óp  <€ V P                   fY   \        V P                  4       Uu. uF3  pV^,           ^,          ^ 8X  g   W P                  ^,
          8X  d   RMRNK5  	  upV n         V P                  4        RV9  dv   ^ p/ VR&   \	        V P                   4       FU  w  rEVR8X  d   RR /VR,          V&   K  VR8X  g   K%  V^,          '       d   RV P
                  /VR,          V&   V^,          pKW  	  V P                  f    ^V P                  ,          R,          V n        \        SV `   ! R/ VB  R # u upi )Nr   r   Úper_layer_configÚsliding_windowg      à¿© )	Úlayer_typesÚrangeÚnum_hidden_layersÚvalidate_layer_typeÚ	enumerateÚdefault_long_sliding_windowÚresidual_multiplierÚsuperÚ__post_init__)ÚselfÚkwargsÚiÚsliding_idxÚ	layer_idxÚ
layer_typeÚ	__class__s   &,    €Úp/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/neomme/configuration_neomme.pyr!   ÚNeoMMEConfig.__post_init__f   s3  ø€ Ø×ÑÒ#ô ˜t×5Ñ5Ô6ó á6�Að &'¨¥U¨a¥K°1Ô$4¸×=SÑ=SÐVWÕ=WÔ8WÑ Ð]pÒpÙ6ñ ˆDÔð 	× Ñ Ô"à VÔ+ØˆKØ)+ˆFÐ%Ñ&Ü)2°4×3CÑ3CÖ)DÑ%�	ØÐ!1Ô1Ø=MÈtÐ<T�FÐ-Õ.¨yÓ9ØÐ#6Ö6à" Q—”ØAQÐSW×SsÑSsÐ@t˜Ð1Õ2°9Ñ=Ø 1Õ$’Kñ *Eð ×#Ñ#Ò+Ø()¨D×,BÑ,BÕ(BÀtÕ'KˆDÔ$ä‰ÒÑ' Ô'ùò) s   §9D3c                ó¦  € V P                   V P                  ,          '       d   \        R4      h\        V P                  4       FG  w  rVP
                  pVf   K  \        V\        4      '       d
   V^ 8:  g   K6  \        RV RV: R24      h	  \        P                  ! V P                  4      '       d   V P                  ^ 8:  d   \        R4      hR# )zOPart of `@strict`-powered validation. Validates the architecture of the config.z3num_key_value_heads must divide num_attention_headsNzsliding_window for layer=z) must be a positive integer or None, got Ú.z/residual_multiplier must be finite and positive)Únum_attention_headsÚnum_key_value_headsÚ
ValueErrorr   r   r   Ú
isinstanceÚintÚmathÚisfiniter   )r"   r&   Úlayer_configr   s   &   r)   Úvalidate_architectureÚ"NeoMMEConfig.validate_architecture~   s¾   € à×#Ñ# d×&>Ñ&>×>Ô>ÜÐRÓSÐSä'0°×1FÑ1FÖ'GÑ#ˆIØ)×8Ñ8ˆNØÔ)´:¸nÌc×3RÒ3RÐVdÐhiÖViÜ Ø/°	¨{Ð:cÐdrÑcuÐuvÐwóð ñ (Hô �}Š}˜T×5Ñ5×6Ò6¸$×:RÑ:RÐVWÔ:WÜÐNÓOÐOñ ;Xó    c                óø  € VP                  R R4      pV P                  e   V P                  M/ V n        \        V P                  4       F�  pV P                  P	                  V/ 4      pVP	                  RR4       TP	                  R Ve   TMV P
                  P                  V4      4       VP	                  RV P                  P                  V4      4       K�  	  V P                  4        V P                  4        V# )Ú
rope_thetaNÚ	rope_typer   Úpartial_rotary_factor)
ÚpopÚrope_parametersÚsetr   Ú
setdefaultÚdefault_thetaÚgetÚdefault_partial_rotary_factorÚstandardize_rope_paramsÚ_validate_rotary_dims)r"   r#   r9   r'   Úlayer_paramss   &,   r)   Úconvert_rope_params_to_dictÚ(NeoMMEConfig.convert_rope_params_to_dict�   sÛ   € Ø—Z‘Z ¨dÓ3ˆ
Ø7;×7KÑ7KÒ7W˜t×3Ò3Ð]_ˆÔä˜d×.Ñ.Ö/ˆJØ×/Ñ/×:Ñ:¸:ÀrÓJˆLØ×#Ñ# K°Ô;Ø×#Ñ#Ø¨JÒ,B™jÈ×HZÑHZ×H^ÑH^Ð_iÓHjôð ×#Ñ#Ð$;¸T×=_Ñ=_×=cÑ=cÐdnÓ=oÖpñ 0ð 	×$Ñ$Ô&Ø×"Ñ"Ô$Øˆr7   c                ó   <€ V ^8„  d   QhRR/# ©é   ÚreturnNr   )ÚformatÚ__classdict__s   "€r)   Ú__annotate__ÚNeoMMEConfig.__annotate__�   s   ø€ ÷ \ñ \ Tñ \r7   c                ó‚  € \        V P                  4      V P                  8w  d0   \        R V P                   R\        V P                  4       R24      h\	        \        V P                  4      P                  \        4      4      pV'       d   \        R\         RV R24      hRV P                  9  d   \        R4      hR# )	z`num_hidden_layers` (z0) must be equal to the number of `layer_types` (Ú)z%`layer_types` entries must be one of z for NeoMME, got r,   r   z;layer_types must contain at least one full_attention layer.N)Úlenr   r   r/   Úsortedr>   Ú
differenceÚNEOMME_LAYER_TYPES)r"   Úinvalid_layer_typess   & r)   r   Ú NeoMMEConfig.validate_layer_type�   sÁ   € Üˆt×ÑÓ  D×$:Ñ$:Ô:ÜØ'¨×(>Ñ(>Ð'?ð @"Ü"% d×&6Ñ&6Ó"7Ð!8¸ð;óð ô %¤S¨×)9Ñ)9Ó%:×%EÑ%EÔFXÓ%YÓZÐßÜØ7Ô8JÐ7KÐK\Ð]pÐ\qÐqrÐsóð ð  4×#3Ñ#3Ô3ÜÐZÓ[Ð[ñ 4r7   c                ó   <€ V ^8„  d   QhRR/# rI   r   )rL   rM   s   "€r)   rN   rO   «   s   ø€ ÷ ñ  tñ r7   c                ó  € \        \        V P                  4      4       EFg  pV P                  V,          R,          p\	        V\
        \        34      '       d:   \	        V\        4      '       g$   \        P                  ! V4      '       d   V^ 8:  d   \        RV: R24      hV P                  V,          P                  RR4      p\        V P                  V,          4      pRTu;8  d   R8:  g   M \        RV: RV 24      hV^8  g   V^,          '       g   Ký  \        RV: RV R	V R
V P                   RWD^,          ,
          V P                  ,           RV^,           V^,          ,
          V P                  ,           R24      h	  R# )z?Ensure each layer type rotates a multiple of 4 head dimensions.r9   zrope_parameters[z+]['rope_theta'] must be finite and positiver;   r   r   zF`partial_rotary_factor` must be in (0.0, 1.0] but got rope_parameters[z]['partial_rotary_factor']=z	 rotates z of head_dim=z{ dims, which is not a multiple of 4: the two M-RoPE axes consume frequencies in alternating pairs. Nearest usable factors: z or r,   N)rS   r>   r   r=   r0   r1   ÚfloatÚboolr2   r3   r/   rA   Úhead_dim)r"   r'   r9   r;   Ú
rotary_dims   &    r)   rD   Ú"NeoMMEConfig._validate_rotary_dims«   se  € ä ¤ T×%5Ñ%5Ó!6×7ˆJØ×-Ñ-¨jÕ9¸,ÕGˆJä˜z¬C´¨<×8Ò8Ü˜j¬$×/Ò/Ü—}’} Z×0Ò0Ø ”?ä Ð#3°J±>ÐAlÐ!mÓnÐnà$(×$8Ñ$8¸Õ$D×$HÑ$HÐI`ÐbeÓ$fÐ!Ü˜TŸ]™]Ð-BÕBÓCˆJØÐ.Ö5°#Ö5Ü ð'Ø'1¡nÐ4OÐPeÐOfðhóð ð ˜AŒ~ ¨a§¦Ü Ø& z¡nÐ4OÐPeÐOfÐfoØ!�l -°·±¨ð ?eà"°!¥^Õ3°t·}±}ÕDÐEÀTØ" Q�¨°a­Õ7¸4¿=¹=ÕHÐIÈð	Lóð ó% 8r7   c                ó    <€ V ^8„  d   QhRS[ /# )rJ   rK   )r1   )rL   rM   s   "€r)   rN   rO   È   s   ø€ ÷ &ñ &™3ñ &r7   c                ó6   € ^V P                   ^,          ,          # )z:Width of one flattened image patch, `3 * patch_size ** 2`.)Ú
patch_size)r"   s   &r)   Ú	patch_dimÚNeoMMEConfig.patch_dimÇ   s   € ð �4—?‘? AÕ%Õ%Ð%r7   c                óú  <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   S[R,          ;R&   S[;R&   S[ ;R&   S[ ;R	&   S[ ;R
&   S[ ;R&   S[ ;R&   S[;R&   S[;R&   S[S[ ,          ;R&   S[;R&   S[S[,          R,          ;R&   S[S[R,          S[3,          R,          ;R&   S[ R,          ;R&   S[R,          ;R&   S[ ;R&   S[ ;R&   S[ R,          ;R&   S[ R,          ;R&   S[ R,          ;R&   S[;R&   # )rJ   Ú
vocab_sizeÚembedding_rankÚhidden_sizeÚintermediate_sizer   Ú
hidden_actÚmlp_biasr   r-   r.   r\   Úmax_position_embeddingsÚnorm_epsÚinitializer_rangeÚattention_dropoutÚattention_biasNr   r=   r   r   ra   Úembedding_dimÚpad_token_idÚdocument_token_idÚimage_token_idÚtie_word_embeddings©r   r   )r1   r   r[   rZ   ÚlistÚstrÚdict)rL   rM   s   "€r)   rN   rO      s¸  ø‡ ‚ ñZ Ñ8ñ[ ñ\ Ñ9ñ] ñ^ Ñ7ñ_ ñ` Ñ=ña ñb ˜Õ Ñ*ñc ñd Ññe ñf Ñ;ñg ñh Ñ=ñi ñj Ñ<ñk ñl Ñ2ñm ñn !ÑDño ñp Ññq ñr Ñ#ñs ñt ™s•{Ñ(ñu ñv Ñ ñw ñx ‘c•˜TÕ!Ñ(ñy ñz ™'Ð"GÕHÉ$ÐNÕOÐRVÕVÑ]ñ{ ñ| ˜$•JÑ$ñ} ñ~  �Ñ,ñ ñ@ Ñ4ñA ñB Ñ8ñC ñD ˜•*Ñ ñE ñF ˜T•zÑ%ñG ñH ˜$•JÑ"ñI ñJ Ñ$òK r7   )r   r   r=   )/Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú
model_typeÚbase_model_tp_planr@   rB   r   r   re   rf   rg   rh   ri   rj   r   r-   r.   r\   rk   rl   rm   rn   ro   r   r=   r   r   ra   rp   rq   rr   rs   rt   r!   r5   rF   r   rD   Úpropertyrb   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r(   rM   s   @@r)   r
   r
      sd  ù‡ € ñð4 €Jà# YØ# YØ# YØ8¸)Ø5°yØ 	Ø  )ðÐð & {Ð4GÈÐR€MØ%5°tÐ=PÐRUÐ$VÐ!Ø"&Ðá(°Ô8€JÙ,°SÔ9€NÙ)°$Ô7€KÙ/¸Ô=ÐØ#*€JØ€HÙ/¸Ô;ÐÙ1¸"Ô=ÐÙ1¸!Ô<ÐÙ&¨rÔ2€HÙ#5¸eÔ#DÐØ€HØ#ÐØ%(ÐØ €NØ$(€KØY]€OØ!$€NØ(,ÐÙ(°Ô4€JÙ+°CÔ8€MØ €LØ$%ÐØ!"€NØ $Ðõ(ò0Pò÷ \ð \÷ð ð8 ÷&ó ð&÷S … r7   r
   ru   )r}   r2   Útypingr   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   r   Úutils.type_validatorsr   Ú
get_loggerry   ÚloggerrU   r
   Ú__all__r   r7   r)   Ú<module>r�      sl   ðñ "ã Ý å .å 3ß ,Ý 7ð 
×	Ò	˜HÓ	%€à<Ð ñ Ð1Ô2Øôi&Ð#ó i&ó ó 3ði&ðX Ð
‚r7   