+
    œ°³jQ  ã                   óÎ  € ^ RI Ht ^RIHt ^RIHt ^RIHt ^RIH	t	 ^RI
HtHt ^RIHtHtHtHtHt ^RIHtHtHtHtHtHt ]P4                  ! ]4      t]! R	R
7      ] ! R R]4      4       4       t ! R R]4      t ! R R]4      t ! R R]4      t  ! R R]4      t! ! R R]4      t" ! R R]4      t# ! R R]4      t$ ! R R]4      t% ! R R]4      t& ! R R ]4      t'. R"Ot(R!# )#é    )Ústrict)ÚPreTrainedConfig)ÚCausalLMOutputWithPast)ÚRopeParameters)ÚUnpack)Úauto_docstringÚlogging)ÚDeepseekV3DecoderLayerÚDeepseekV3MLPÚDeepseekV3MoEÚDeepseekV3PreTrainedModelÚDeepseekV3TopkRouter)ÚQwen3AttentionÚQwen3ForCausalLMÚ
Qwen3ModelÚQwen3RMSNormÚQwen3RotaryEmbeddingÚTransformersKwargszrednote-hilab/dots.llm1.base)Ú
checkpointc                   óJ  a a€ ] tR t^)t oRtRtR.tRRRRRRRR	R
RRRRRRR	RRRRRRRR	RRRRRR	/tRR.R.3RRR.R.3RR.R.3/tRR RR!RR!RR/t	R"R#/t
R$tR%tR&tR't^>t^ t^ tR(tR(t^t^tR(t^ tR)tR*tR+tR,tR-tR.tR)tR(tR)t R/t!R0t"R1t#^>t$R(t%R(t&R(t'R(t(V 3R2 lt)V3R3 lt*R4t+Vt,V ;t-# )5ÚDots1ConfigaÎ  
n_group (`int`, *optional*, defaults to 1):
    Number of groups for routed experts.
first_k_dense_replace (`int`, *optional*, defaults to 0):
    Number of dense layers at the beginning of the model before the first MoE layer.

Examples:

```python
>>> from transformers import Dots1Model, Dots1Config
>>> # Initializing a Dots1 style configuration
>>> configuration = Dots1Config()
>>> # Accessing the model configuration
>>> configuration = model.config
```
Údots1Úpast_key_valueszlayers.*.self_attn.q_projÚcolwisezlayers.*.self_attn.k_projzlayers.*.self_attn.v_projzlayers.*.self_attn.o_projÚrowwisezlayers.*.self_attn.q_normÚreplicated_with_grad_allreducezlayers.*.self_attn.k_normz!layers.*.mlp.experts.gate_up_projÚpacked_colwisezlayers.*.mlp.experts.down_projzlayers.*.mlp.expertsÚmoe_tp_expertsz%layers.*.mlp.shared_experts.gate_projz#layers.*.mlp.shared_experts.up_projz%layers.*.mlp.shared_experts.down_projzlayers.*.mlp.gate_projzlayers.*.mlp.up_projzlayers.*.mlp.down_projÚembed_tokensÚ	input_idsÚinputs_embedsÚlayersÚhidden_statesÚattention_maskÚnormzlayers.*.mlp.gateÚ	ep_routerÚgrouped_gemmÚnum_local_expertsÚn_routed_expertsi R i   iÀ*  i€  NFÚsilui   g{®Gáz”?g�íµ ÷Æ°>Tg        g      ð?i   c                ó   <€ V P                   f   V P                  V n         V P                  fK   \        V P                  4       Uu. uF%  pV P
                  e   W P                  8¼  d   RMRNK'  	  upV n        \        SV `   ! R/ VB  R # u upi )NÚsliding_attentionÚfull_attention© )	Únum_key_value_headsÚnum_attention_headsÚlayer_typesÚrangeÚnum_hidden_layersÚsliding_windowÚmax_window_layersÚsuperÚ__post_init__)ÚselfÚkwargsÚiÚ	__class__s   &, €Úh/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/dots1/modular_dots1.pyr7   ÚDots1Config.__post_init__�   s’   ø€ Ø×#Ñ#Ò+Ø'+×'?Ñ'?ˆDÔ$à×ÑÒ#ô
 ˜t×5Ñ5Ô6ó	 ñ 7�Að ×&Ñ&Ò2°q×<RÑ<RÔ7Rñ $à%ò&ñ 7ñ	 ˆDÔô 	‰ÒÑ' Ô'ùò s   Á+Bc                ó²  <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   S[ R,          ;R&   S[ R,          ;R	&   S[ R,          ;R
&   S[ R,          ;R&   S[ R,          ;R&   S[ R,          ;R&   S[ R,          ;R&   S[R,          ;R&   S[;R&   S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[S[,          R,          ;R&   S[;R&   S[S[ ,          R,          ;R&   S[;R&   S[ R,          ;R&   S[ R,          ;R&   S[S[,          R,          ;R&   S[ R,          ;R&   S[ R,          ;R&   S[ S[S[ ,          ,          R,          ;R&   # ) é   Ú
vocab_sizeÚhidden_sizeÚintermediate_sizeÚmoe_intermediate_sizer3   r0   Nr/   Ún_shared_expertsr)   Ún_groupÚ
topk_groupÚnum_experts_per_tokÚfirst_k_dense_replaceÚnorm_topk_probÚ
hidden_actÚmax_position_embeddingsÚinitializer_rangeÚrms_norm_epsÚ	use_cacheÚtie_word_embeddingsÚrope_parametersÚattention_biasÚattention_dropoutÚrouted_scaling_factorr4   r5   r1   Úpad_token_idÚbos_token_idÚeos_token_id)ÚintÚboolÚstrÚfloatr   ÚdictÚlist)ÚformatÚ__classdict__s   "€r<   Ú__annotate__ÚDots1Config.__annotate__)   s   ø‡ ‚ ñr Ññs ñt Ññu ñv Ñ"ñw ñx Ñ%ñy ñz Ññ{ ñ| Ñ!ñ} ñ~ ˜t�Ñ(ñ ñ@ ˜D•jÑ'ñA ñB ˜D•jÑ'ñC ñD �4�ZÑñE ñF �d•
ÑñG ñH ˜t�Ñ*ñI ñJ  �:Ñ)ñK ñL ˜4•KÑ'ñM ñN ÑñO ñP !Ñ'ñQ ñR Ñ#ñS ñT ÑñU ñV ÑñW ñX Ñ%ñY ñZ $¡dÕ*¨TÕ1Ñ8ñ[ ñ\ Ñ ñ] ñ^ ™s•{ TÕ)Ñ/ñ_ ñ` !Ñ&ña ñb ˜$•JÑ%ñc ñd ˜T•zÑ&ñe ñf ‘c•˜TÕ!Ñ(ñg ñh ˜•*Ñ#ñi ñj ˜•*Ñ#ñk ñl ™™S�	•/ DÕ(Ñ/òm ó    )r1   r/   ).Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú
model_typeÚkeys_to_ignore_at_inferenceÚbase_model_tp_planÚbase_model_pp_planÚbase_model_ep_planÚattribute_mapr@   rA   rB   rC   r3   r0   r/   rD   r)   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   r4   r5   r1   rT   rU   rV   r7   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r;   r^   s   @@r<   r   r   )   s‘  ù‡ € ñð" €JØ#4Ð"5Ðð 	$ YØ# YØ# YØ# YØ#Ð%EØ#Ð%EØ+Ð-=Ø(¨)ØÐ 0Ø/°Ø-¨yØ/°Ø  )Ø 	Ø  )ðÐð& 	˜+˜¨Ð(9Ð:Ø�OÐ%5Ð6¸Ð8IÐJØ�/Ð" _Ð$5Ð6ðÐð 	˜[Ø+¨^Ø(¨.ØÐ 0ð	Ðð 	Ð/ð€Mð €JØ€KØ"ÐØ!%ÐØÐØ!ÐØ&(ÐØ#'ÐØ#'ÐØ€GØ€JØ&*ÐØ()ÐØ"'€NØ€JØ#'ÐØ#ÐØ€LØ€IØ %ÐØ48€OØ €NØ,/ÐØ#&ÐØ!%€NØ$&ÐØ$(€KØ#€LØ#€LØ+/€Lõ(÷q … ra   r   c                   ó   € ] tR t^�tRtR# )ÚDots1RMSNormr.   N©rb   rc   rd   re   rn   r.   ra   r<   rs   rs   �   ó   † Ûra   rs   c                   ó   € ] tR t^”tRtR# )ÚDots1RotaryEmbeddingr.   Nrt   r.   ra   r<   rw   rw   ”   ru   ra   rw   c                   ó   € ] tR t^˜tRtR# )ÚDots1Attentionr.   Nrt   r.   ra   r<   ry   ry   ˜   ru   ra   ry   c                   ó   € ] tR t^œtRtR# )ÚDots1MLPr.   Nrt   r.   ra   r<   r{   r{   œ   ru   ra   r{   c                   ó   € ] tR t^ tRtR# )ÚDots1TopkRouterr.   Nrt   r.   ra   r<   r}   r}       ru   ra   r}   c                   ó   € ] tR t^¤tRtR# )ÚDots1MoEr.   Nrt   r.   ra   r<   r   r   ¤   ru   ra   r   c                   ó   € ] tR t^¨tRtR# )ÚDots1DecoderLayerr.   Nrt   r.   ra   r<   r�   r�   ¨   ru   ra   r�   c                   ó   € ] tR t^¬tRtRtR# )ÚDots1PreTrainedModelNr.   )rb   rc   rd   re   Ú"_keys_to_ignore_on_load_unexpectedrn   r.   ra   r<   rƒ   rƒ   ¬   s   † Ø)-Ô&ra   rƒ   c                   ó   € ] tR t^°tRtR# )Ú
Dots1Modelr.   Nrt   r.   ra   r<   r†   r†   °   ru   ra   r†   c                   ó>   a a€ ] tR t^´t oV3R lV 3R lltRtVtV ;t# )ÚDots1ForCausalLMc                ó6   <€ V ^8„  d   QhRS[ S[,          RS[/# )r?   Úsuper_kwargsÚreturn)r   r   r   )r]   r^   s   "€r<   r_   ÚDots1ForCausalLM.__annotate__µ   s%   ø€ ÷ /ñ /áÑ1Õ2ð/ñ 
 ñ/ra   c                ó$   <€ \         SV `  ! R/ VB # )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, Dots1ForCausalLM

>>> model = Dots1ForCausalLM.from_pretrained("rednote-hilab/dots1.llm1.inst")
>>> tokenizer = AutoTokenizer.from_pretrained("rednote-hilab/dots1.llm1.inst")

>>> 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.   )r6   Úforward)r8   rŠ   r;   s   &,€r<   rŽ   ÚDots1ForCausalLM.forwardµ   s   ø€ ô4 ‰wŠÑ. Ñ.Ð.ra   r.   )rb   rc   rd   re   rŽ   rn   ro   rp   rq   s   @@r<   rˆ   rˆ   ´   s   ù‡ € ÷/÷ /ó /ra   rˆ   N)r   rƒ   r†   rˆ   ))Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úmodeling_outputsr   Úmodeling_rope_utilsr   Úprocessing_utilsr   Úutilsr   r	   Ú deepseek_v3.modeling_deepseek_v3r
   r   r   r   r   Úqwen3.modeling_qwen3r   r   r   r   r   r   Ú
get_loggerrb   Úloggerr   rs   rw   ry   r{   r}   r   r�   rƒ   r†   rˆ   Ú__all__r.   ra   r<   Ú<module>r›      sñ   ðõ /å 3Ý 6Ý 1Ý &ß ,÷õ ÷÷ ð 
×	Ò	˜HÓ	%€ñ Ð9Ô:Øôb(Ð"ó b(ó ó ;ðb(ôJ	�<ô 	ô	Ð/ô 	ô	�^ô 	ô	ˆ}ô 	ô	Ð*ô 	ô	ˆ}ô 	ô	Ð.ô 	ô.Ð4ô .ô	�ô 	ô/Ð'ô /ò<‚ra   