ó
    ‡Ž¡j€1  ã                   óÜ  • S SK Jr  S SKrS SKJr  S SKJr  SSKJrJ	r	  SSK
Jr  SSKJrJr  SSKJr  SS	KJrJr  SS
KJr  SSKJr  SSKJrJrJr  SSKJr  SSKJrJ r J!r!J"r"J#r#J$r$J%r%J&r&  SSK'J(r(  \RR                  " \*5      r+\" SS9\ " S S\5      5       5       r, " S S\$5      r- " S S\"5      r. " S S\5      r/ " S S\ 5      r0 " S S\#5      r1 " S S \(5      r2 " S! S"\!5      r3/ S#Qr4g)$é    )ÚCallableN)Ústricté   )ÚCacheÚDynamicCache)ÚPreTrainedConfig)Úcreate_causal_maskÚ!create_sliding_window_causal_mask)ÚBaseModelOutputWithPast)ÚRopeParametersÚdynamic_rope_update)ÚALL_ATTENTION_FUNCTIONS)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚlogging)Úmaybe_autocasté   )ÚCohereAttentionÚCohereDecoderLayerÚCohereForCausalLMÚCohereLayerNormÚCoherePreTrainedModelÚCohereRotaryEmbeddingÚapply_rotary_pos_embÚeager_attention_forward)ÚGemma2ModelzCohereForAI/c4ai-command-r-v01)Ú
checkpointc                   óà  ^ • \ rS rSr% SrSrS/rSSSSSSSS.rS/S	/4S
S/S
/4S
/S
/4S.rSr	\
\S'   Sr\
\S'   Sr\
\S'   Sr\\S'   Sr\
\S'   Sr\
\S'   Sr\
S-  \S'   Sr\\S'   Sr\
\S'   Sr\\S'   S r\\S!'   S"r\\S#'   S$r\
S-  \S%'   S&r\
S-  \S''   S(r\
\\
   -  S-  \S)'   S"r\\S*'   Sr\ \!-  S-  \S+'   S,r"\\S-'   S.r#\\
-  \S/'   S0r$\
S-  \S1'   Sr%\\   S-  \S2'   U 4S3 jr&S4r'U =r($ )5ÚCohere2Configé1   aÖ  
logit_scale (`float`, *optional*, defaults to 0.0625):
    The scaling factor for the output logits.

```python
>>> from transformers import Cohere2Model, Cohere2Config

>>> # Initializing a Cohere Nextmodel configuration
>>> configuration = Cohere2Config()

>>> # Initializing a model from the Cohere2 configuration
>>> model = Cohere2Model(configuration) # doctest: +SKIP

>>> # Accessing the model configuration
>>> configuration = model.config # doctest: +SKIP
```
Úcohere2Úpast_key_valuesÚcolwiseÚrowwise)zlayers.*.self_attn.q_projzlayers.*.self_attn.k_projzlayers.*.self_attn.v_projz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 X  Úintermediate_sizeg      °?Úlogit_scaleé(   Únum_hidden_layersé@   Únum_attention_headsNÚnum_key_value_headsÚsiluÚ
hidden_actÚmax_position_embeddingsg{®Gáz”?Úinitializer_rangegñhãˆµøä>Úlayer_norm_epsTÚ	use_cacher   Úpad_token_idé   Úbos_token_idiä Úeos_token_idÚtie_word_embeddingsÚrope_parametersFÚattention_biasç        Úattention_dropouti   Úsliding_windowÚlayer_typesc                 ól  >• U R                   c  U R                  U l         U R                  U R                  -  U l        U R                  cU  UR                  SS5      n[        U R                  5       Vs/ s H  n[        US-   U-  5      (       a  SOSPM     snU l        [        TU ](  " S0 UD6  g s  snf )NÚsliding_window_patterné   é   Úsliding_attentionÚfull_attention© )r5   r4   r.   Úhead_dimrF   ÚpopÚranger2   ÚboolÚsuperÚ__post_init__)ÚselfÚkwargsÚ_sliding_window_patternÚiÚ	__class__s       €Ú¹C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\transformers/models/cohere2/modular_cohere2.pyrS   ÚCohere2Config.__post_init__m   s¶   ø€ Ø×#Ñ#Ñ+Ø'+×'?Ñ'?ˆDÔ$ð ×(Ñ(¨D×,DÑ,DÑDˆŒð ×ÑÑ#à&,§j¡jÐ1IÈ1Ó&MÐ#ô ˜t×5Ñ5Ô6ó â6�Aô (,¨Q°©UÐ6MÑ,M×'NÑ'NÑ#ÐTdÒdÙ6ñ ˆDÔô
 	‰ÒÑ' Ó'ùò s   Á4$B1)rN   rF   r5   ))Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú
model_typeÚkeys_to_ignore_at_inferenceÚbase_model_tp_planÚbase_model_pp_planr-   ÚintÚ__annotations__r.   r/   r0   Úfloatr2   r4   r5   r7   Ústrr8   r9   r:   r;   rQ   r<   r>   r?   Úlistr@   rA   r   ÚdictrB   rD   rE   rF   rS   Ú__static_attributes__Ú__classcell__©rX   s   @rY   r    r    1   s…  ø‡ ñð$ €JØ#4Ð"5Ðà%.Ø%.Ø%.Ø%.Ø"+Ø )Ø"+ñÐð &˜¨Ð(9Ð:Ø#Ð%5Ð6¸Ð8IÐJØ!Ð" _Ð$5Ð6ñÐð €J�ÓØ€K�ÓØ"Ð�sÓ"Ø€K�ÓØÐ�sÓØ!Ð˜Ó!Ø&*Ð˜˜t™Ó*Ø€J�ÓØ#'Ð˜SÓ'Ø#Ð�uÓ#Ø €N�EÓ Ø€IˆtÓØ €L�#˜‘*Ó Ø €L�#˜‘*Ó Ø+1€L�#˜˜S™	‘/ DÑ(Ó1Ø $Ð˜Ó$Ø48€O�^ dÑ*¨TÑ1Ó8Ø €N�DÓ Ø%(Ð�u˜s‘{Ó(Ø!%€N�C˜$‘JÓ%Ø$(€K��c‘˜TÑ!Ó(÷(ó (ó    r    c                   óL   • \ rS rSr\R
                  " 5       \S 5       5       rSrg)ÚCohere2RotaryEmbeddingé€   c                 ó  • U R                   S S S 2S 4   R                  5       R                  UR                  S   SS5      nUS S 2S S S 24   R                  5       n[	        UR
                  R                  [        5      (       a0  UR
                  R                  S:w  a  UR
                  R                  OSn[        USS9   UR                  5       UR                  5       -  R                  SS5      n[        R                  " USSS	9nUR                  5       U R                  -  nUR                  5       U R                  -  n	S S S 5        WR                  UR                   S
9W	R                  UR                   S
94$ ! , (       d  f       N@= f)Nr   éÿÿÿÿrJ   ÚmpsÚcpuF)Údevice_typeÚenabledr   )Údim)Údtype)Úinv_freqrf   ÚexpandÚshapeÚ
isinstanceÚdeviceÚtyperg   r   Ú	transposeÚtorchÚrepeat_interleaveÚcosÚattention_scalingÚsinÚtorx   )
rT   ÚxÚposition_idsÚinv_freq_expandedÚposition_ids_expandedru   ÚfreqsÚembr‚   r„   s
             rY   ÚforwardÚCohere2RotaryEmbedding.forward�   s>  € ð !ŸM™M¨$²°4¨-Ñ8×>Ñ>Ó@×GÑGÈ×HZÑHZÐ[\ÑH]Ð_aÐcdÓeÐØ ,ªQ°²a¨ZÑ 8× >Ñ >Ó @Ðä'1°!·(±(·-±-Ä×'EÑ'EÈ!Ï(É(Ï-É-Ð[`ÓJ`�a—h‘h—m’mÐfkˆÜ¨¸UÓCØ&×,Ñ,Ó.Ð1F×1LÑ1LÓ1NÑN×YÑYÐZ[Ð]^Ó_ˆEÜ×)Ò)¨%°¸Ñ;ˆCØ—'‘'“)˜d×4Ñ4Ñ4ˆCØ—'‘'“)˜d×4Ñ4Ñ4ˆC÷	 Dð �v‰v˜AŸG™GˆvÐ$ c§f¡f°1·7±7 fÐ&;Ð;Ð;÷ DÕCús   Ã BE<Å<
F
rM   N)	r[   r\   r]   r^   r€   Úno_gradr   rŒ   rj   rM   rm   rY   ro   ro   €   s"   † Ø
‡]‚]ƒ_Øñ<ó ó ó<rm   ro   c                   ó   • \ rS rSrSrg)ÚCohere2LayerNormé‘   rM   N©r[   r\   r]   r^   rj   rM   rm   rY   r�   r�   ‘   ó   † Úrm   r�   c                   ó"  • \ rS rSrSrSS\S\S-  4S jjr SS\R                  S\
\R                  \R                  4   S	\R                  S-  S
\S-  S\\   S\
\R                  \R                  S-  \
\R                     S-  4   4S jjrSrg)ÚCohere2Attentioné•   z=Multi-headed attention from 'Attention Is All You Need' paperNÚconfigÚ	layer_idxc                 ó¼  • [         R                  R                  U 5        Xl        X l        [        USUR                  UR                  -  5      U l        UR                  UR                  -  U l
        U R                  S-  U l        UR                  U l        SU l        UR                  U   S:X  a  UR                  OS U l        [         R                   " UR                  UR                  U R                  -  UR"                  S9U l        [         R                   " UR                  UR                  U R                  -  UR"                  S9U l        [         R                   " UR                  UR                  U R                  -  UR"                  S9U l        [         R                   " UR                  U R                  -  UR                  UR"                  S9U l        g )NrN   g      à¿TrK   )Úbias)ÚnnÚModuleÚ__init__r—   r˜   Úgetattrr.   r4   rN   r5   Únum_key_value_groupsÚscalingrD   Ú	is_causalrF   rE   ÚLinearrB   Úq_projÚk_projÚv_projÚo_proj)rT   r—   r˜   s      rY   r�   ÚCohere2Attention.__init__˜   ss  € Ü
�	‰	×Ñ˜4Ô ØŒØ"ŒÜ ¨
°F×4FÑ4FÈ&×JdÑJdÑ4dÓeˆŒØ$*×$>Ñ$>À&×B\ÑB\Ñ$\ˆÔ!Ø—}‘} dÑ*ˆŒØ!'×!9Ñ!9ˆÔØˆŒØ7=×7IÑ7IÈ)Ñ7TÐXkÓ7k˜f×3Ò3ÐquˆÔä—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ñ
ˆ�rm   r(   Úposition_embeddingsr)   r#   rU   Úreturnc                 ó8  • UR                   S S n/ UQSPU R                  P7nU R                  U5      R                  U5      R	                  SS5      nU R                  U5      R                  U5      R	                  SS5      n	U R                  U5      R                  U5      R	                  SS5      n
Uu  p¼U R                  b  [        X‰X¼5      u  p‰Ub  UR                  XšU R                  5      u  pš[        R                  " U R                  R                  [        5      nU" U UU	U
U4U R                   (       d  SOU R"                  U R$                  U R                  S.UD6u  pïUR&                  " / UQSP76 R)                  5       nU R+                  U5      nXï4$ )Nrr   rJ   r   rC   )Údropoutr    rE   )r{   rN   r£   Úviewr   r¤   r¥   rE   r   Úupdater˜   r   Úget_interfacer—   Ú_attn_implementationr   ÚtrainingrD   r    ÚreshapeÚ
contiguousr¦   )rT   r(   r¨   r)   r#   rU   Úinput_shapeÚhidden_shapeÚquery_statesÚ
key_statesÚvalue_statesr‚   r„   Úattention_interfaceÚattn_outputÚattn_weightss                   rY   rŒ   ÚCohere2Attention.forward°   s“  € ð $×)Ñ)¨#¨2Ð.ˆØ8˜Ð8 bÐ8¨$¯-©-Ñ8ˆà—{‘{ =Ó1×6Ñ6°|ÓD×NÑNÈqÐRSÓTˆØ—[‘[ Ó/×4Ñ4°\ÓB×LÑLÈQÐPQÓRˆ
Ø—{‘{ =Ó1×6Ñ6°|ÓD×NÑNÈqÐRSÓTˆà&‰ˆØ×ÑÑ*Ü';¸LÐVYÓ'_Ñ$ˆLàÑ&Ø'6×'=Ñ'=¸jÐX\×XfÑXfÓ'gÑ$ˆJä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØð
%
ð  $Ÿ}Ÿ}‘C°$×2HÑ2HØ—L‘LØ×.Ñ.ñ
%
ð ñ
%
Ñ!ˆð "×)Ò)Ð;¨;Ð;¸Ò;×FÑFÓHˆØ—k‘k +Ó.ˆØÐ(Ð(rm   )rD   r—   rN   r¡   r¤   r˜   rŸ   r¦   r£   r    rE   r¥   ©N)r[   r\   r]   r^   r_   r    rd   r�   r€   ÚTensorÚtupler   r   r   rŒ   rj   rM   rm   rY   r•   r•   •   sµ   † ÙGñ
˜}ð 
¸¸t¹õ 
ð: )-ñ()à—|‘|ð()ð # 5§<¡<°·±Ð#=Ñ>ð()ð Ÿ™ tÑ+ð	()ð
  ™ð()ð Ð+Ñ,ð()ð 
ˆu�|‰|˜UŸ\™\¨DÑ0°%¸¿¹Ñ2EÈÑ2LÐLÑ	M÷()ð ()rm   r•   c                   óò   ^ • \ rS rSrS\S\4U 4S jjr    SS\R                  S\	\R                  \R                  4   S-  S\R                  S-  S	\
S-  S
\S-  S\\   S\R                  4S jjrSrU =r$ )ÚCohere2DecoderLayeréÛ   r—   r˜   c                 ó$   >• [         TU ]  X5        g r¼   )rR   r�   )rT   r—   r˜   rX   s      €rY   r�   ÚCohere2DecoderLayer.__init__Ü   s   ø€ Ü‰Ñ˜Õ+rm   Nr(   r¨   r)   r#   r;   rU   r©   c           	      ó�   • UnU R                  U5      nU R                  " SUUUUUS.UD6u  p‰U R                  U5      n
Xx-   U
-   nU$ )N)r(   r¨   r)   r#   r;   rM   )Úinput_layernormÚ	self_attnÚmlp)rT   r(   r¨   r)   r#   r;   rU   ÚresidualÚhidden_states_attentionÚ_Úhidden_states_mlps              rY   rŒ   ÚCohere2DecoderLayer.forwardß   sn   € ð !ˆØ×,Ñ,¨]Ó;ˆØ%)§^¢^ð &
Ø'Ø 3Ø)Ø+Øñ&
ð ñ&
Ñ"Ðð !ŸH™H ]Ó3ÐØ Ñ:Ð=NÑNˆØÐrm   rM   )NNNF)r[   r\   r]   r^   r    rd   r�   r€   r½   r¾   r   rQ   r   r   rŒ   rj   rk   rl   s   @rY   rÀ   rÀ   Û   sª   ø† ð,˜}ð ,¸÷ ,ð IMØ.2Ø(,Ø!&ñà—|‘|ðð # 5§<¡<°·±Ð#=Ñ>ÀÑEðð Ÿ™ tÑ+ð	ð
  ™ðð ˜$‘;ðð Ð+Ñ,ðð 
�‰÷ó rm   rÀ   c                   ó*   • \ rS rSr% \\S'   \\S.rSr	g)ÚCohere2PreTrainedModeléø   r—   )r(   Ú
attentionsrM   N)
r[   r\   r]   r^   r    re   rÀ   r•   Ú_can_record_outputsrj   rM   rm   rY   rÎ   rÎ   ø   s   ‡ ØÓà,Ø&ñÓrm   rÎ   c                   óä   ^ • \ rS rSrS\4U 4S jjr      SS\R                  S-  S\R                  S-  S\R                  S-  S\	S-  S	\R                  S-  S
\S-  S\\   S\4S jjrSrU =r$ )ÚCohere2Modelé   r—   c                 óà   >• [         TU ]  U5        [        UR                  UR                  S9U l        [        R                  " UR                  UR                  U R                  5      U l
        g )N)r.   Úeps)rR   r�   r�   r.   r:   r,   r›   Ú	Embeddingr-   Úpadding_idxr*   )rT   r—   rX   s     €rY   r�   ÚCohere2Model.__init__  sR   ø€ Ü‰Ñ˜Ô Ü$°&×2DÑ2DÈ6×K`ÑK`ÑaˆŒ	ÜŸLšL¨×):Ñ):¸F×<NÑ<NÐPT×P`ÑP`ÓaˆÕrm   Nr&   r)   r‡   r#   r'   r;   rU   r©   c           
      ó®  • US L US L-  (       a  [        S5      eUc  U R                  U5      nU(       a  Uc  [        U R                  S9nUcU  Ub  UR	                  5       OSn[
        R                  " UR                  S   UR                  S9U-   nUR                  S5      n[        U=n	[        5      (       d)  U R                  UUUUS.n
[        S
0 U
D6[        S
0 U
D6S.n	UnU R                  X³5      n[        U R                   5       H-  u  pÞU" U4X�R                  R"                  U      UUUUS.UD6nM/     U R%                  U5      n['        UUS	9$ )Nz:You must specify exactly one of input_ids or inputs_embeds)r—   r   rJ   )r}   )r—   r'   r)   r#   r‡   )rL   rK   )r)   r¨   r#   r;   r‡   )Úlast_hidden_stater#   rM   )Ú
ValueErrorr*   r   r—   Úget_seq_lengthr€   Úaranger{   r}   Ú	unsqueezer|   ri   r	   r
   Ú
rotary_embÚ	enumerater+   rF   r,   r   )rT   r&   r)   r‡   r#   r'   r;   rU   Úpast_seen_tokensÚcausal_mask_mappingÚmask_kwargsr(   r¨   rW   Údecoder_layers                  rY   rŒ   ÚCohere2Model.forward  s{  € ð ˜Ð -°tÐ";×<ÜÐYÓZÐZàÑ Ø ×-Ñ-¨iÓ8ˆMæ˜Ñ0Ü*°$·+±+Ñ>ˆOàÑØCRÑC^˜×=Ñ=Ô?ÐdeÐÜ Ÿ<š<¨×(;Ñ(;¸AÑ(>À}×G[ÑG[Ñ\Ð_oÑoˆLØ'×1Ñ1°!Ó4ˆLä°Ð?Ð-Ä×FÑFàŸ+™+Ø!.Ø"0Ø#2Ø ,ñˆKô #5Ñ"C°{Ñ"CÜ%FÑ%UÈÑ%Uñ#Ðð
 &ˆØ"Ÿo™o¨mÓJÐä )¨$¯+©+Ö 6ÑˆAÙ)Øðà2·;±;×3JÑ3JÈ1Ñ3MÑNØ$7Ø /Ø#Ø)ñð ñŠMñ !7ð Ÿ	™	 -Ó0ˆÜ&Ø+Ø+ñ
ð 	
rm   )r*   r,   )NNNNNN)r[   r\   r]   r^   r    r�   r€   Ú
LongTensorr½   r   ÚFloatTensorrQ   r   r   r   rŒ   rj   rk   rl   s   @rY   rÓ   rÓ      sµ   ø† ðb˜}÷ bð .2Ø.2Ø04Ø(,Ø26Ø!%ñ7
à×#Ñ# dÑ*ð7
ð Ÿ™ tÑ+ð7
ð ×&Ñ&¨Ñ-ð	7
ð
  ™ð7
ð ×(Ñ(¨4Ñ/ð7
ð ˜$‘;ð7
ð Ð+Ñ,ð7
ð 
!÷7
ó 7
rm   rÓ   c                   ó   • \ rS rSrSrg)ÚCohere2ForCausalLMi@  rM   Nr’   rM   rm   rY   rê   rê   @  r“   rm   rê   )r    rê   rÓ   rÎ   )5Úcollections.abcr   r€   Útorch.nnr›   Úhuggingface_hub.dataclassesr   Úcache_utilsr   r   Úconfiguration_utilsr   Úmasking_utilsr	   r
   Úmodeling_outputsr   Úmodeling_rope_utilsr   r   Úmodeling_utilsr   Úprocessing_utilsr   Úutilsr   r   r   Úutils.genericr   Úcohere.modeling_coherer   r   r   r   r   r   r   r   Úgemma2.modeling_gemma2r   Ú
get_loggerr[   Úloggerr    ro   r�   r•   rÀ   rÎ   rÓ   rê   Ú__all__rM   rm   rY   Ú<module>rü      sí   ðõ %ã Ý Ý .ç .Ý 3ß RÝ 7÷õ 6Ý &ß @Ñ @Ý +÷	÷ 	ó 	õ 1ð 
×	Ò	˜HÓ	%€ñ Ð;Ñ<ØôJ(Ð$ó J(ó ó =ðJ(ôZ<Ð2ô <ô"	�ô 	ôC)�ô C)ôLÐ,ô ô:Ð2ô ô=
�;ô =
ô@	Ð*ô 	ò \�rm   