+
    œ°³jí}  ã                   ó  € R t ^ RIt^ RIt^ RIHu 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 ^RIHtHt ^R	IHt ^R
IHtHt ^RIHt ]P:                  ! ]4      t ! R R]P@                  4      t! ! R R]P@                  4      t" ! R R]P@                  4      t# ! R R]P@                  4      t$ ! R R]P@                  4      t% ! R R]P@                  4      t& ! R R]P@                  4      t' ! R R]P@                  4      t( ! R R]P@                  4      t) ! R R]P@                  4      t* ! R  R!]P@                  4      t+] ! R" R#]4      4       t,] ! R$ R%],4      4       t-]! R&R'7       ! R( R)],]4      4       t.. R*Ot/R# )+zPyTorch CPMAntN)Únn)ÚCrossEntropyLoss)Úinitialization)ÚACT2FN)ÚCacheÚDynamicCache)ÚGenerationMixin)ÚBaseModelOutputWithPastÚCausalLMOutputWithPast)ÚPreTrainedModel)Úauto_docstringÚlogging©ÚCpmAntConfigc                   óT   a a€ ] tR t^$t oRtV3R lV 3R lltV3R lR ltRtVtV ;t	# )ÚCpmAntLayerNormzv
We use Root Mean Square (RMS) Layer Normalization, please see https://huggingface.co/papers/1910.07467 for details."
c                ó    <€ V ^8„  d   QhRS[ /# ©é   Úconfigr   )ÚformatÚ__classdict__s   "€Úk/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/cpmant/modeling_cpmant.pyÚ__annotate__ÚCpmAntLayerNorm.__annotate__)   s   ø€ ÷ Dñ D™|ñ Dó    c                óÚ   <€ \         SV `  4        VP                  V n        VP                  V n        \
        P                  ! \        P                  ! VP                  4      4      V n	        R # ©N)
ÚsuperÚ__init__ÚepsÚhidden_sizeÚdim_normr   Ú	ParameterÚtorchÚemptyÚweight©Úselfr   Ú	__class__s   &&€r   r   ÚCpmAntLayerNorm.__init__)   sE   ø€ Ü‰ÑÔà—:‘:ˆŒØ×*Ñ*ˆŒÜ—l’l¤5§;¢;¨v×/AÑ/AÓ#BÓCˆŽr   c                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r   Úhidden_states©r$   ÚTensor)r   r   s   "€r   r   r   0   ó   ø€ ÷ 
ñ 
¡U§\¡\ñ 
r   c                óŒ  € VP                  R4      V P                  8w  d   \        R4      hVP                  pVP	                  \
        P                  4      P                  ^4      P                  RRR7      pV\
        P                  ! W0P                  ,           4      ,          P	                  V4      V P                  ,          pV# )úN
Args:
    hidden_states (`torch.Tensor` of shape `(batch, seq_len, dim_in)`)
z'hidden_states.size(-1) != self.dim_normT)ÚdimÚkeepdiméÿÿÿÿ)Úsizer"   ÚAssertionErrorÚdtypeÚtor$   Úfloat32ÚpowÚmeanÚrsqrtr    r&   )r(   r-   Ú	old_dtypeÚvariances   &&  r   ÚforwardÚCpmAntLayerNorm.forward0   s˜   € ð
 ×Ñ˜bÓ! T§]¡]Ô2Ü Ð!JÓKÐKØ!×'Ñ'ˆ	Ø ×#Ñ#¤E§M¡MÓ2×6Ñ6°qÓ9×>Ñ>À2ÈtÐ>ÓTˆØ&¬¯ª°XÇÁÕ5HÓ)IÕI×MÑMÈiÓXÐ[_×[fÑ[fÕfˆØÐr   )r"   r    r&   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r@   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r)   r   s   @@r   r   r   $   s%   ù‡ € ñ÷Dó D÷
÷ 
ð 
r   r   c                   óX   a a€ ] tR t^=t oRV3R lV 3R llltRV3R lR lltRtVtV ;t# )ÚCpmAntAttentionc                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   ÚCpmAntAttention.__annotate__>   s   ø€ ÷  ñ  ™|ñ  r   c                ó„  <€ \         SV `  4        VP                  V n        VP                  V n        VP                  V n        W n        \        P                  ! V P                  V P
                  V P                  ,          R R7      V n
        \        P                  ! V P                  V P
                  V P                  ,          R R7      V n        \        P                  ! V P                  V P
                  V P                  ,          R R7      V n        \        P                  ! V P
                  V P                  ,          V P                  R R7      V n        \        P                  P                  RR7      V n        VP"                  e2   \        P                  P%                  VP"                  R7      V n        R# RV n        R# )F©Úbias©r3   N)Úpr5   )r   r   r!   Ú	dim_modelÚnum_attention_headsÚ	num_headsÚdim_headÚ	layer_idxr   ÚLinearÚ	project_qÚ	project_kÚ	project_vÚattention_outr$   ÚSoftmaxÚsoftmaxÚ	dropout_pÚDropoutÚdropout©r(   r   rX   r)   s   &&&€r   r   ÚCpmAntAttention.__init__>   s  ø€ Ü‰ÑÔØ×+Ñ+ˆŒØ×3Ñ3ˆŒØŸ™ˆŒØ"ŒäŸš 4§>¡>°4·>±>ÀDÇMÁMÕ3QÐX]Ô^ˆŒÜŸš 4§>¡>°4·>±>ÀDÇMÁMÕ3QÐX]Ô^ˆŒÜŸš 4§>¡>°4·>±>ÀDÇMÁMÕ3QÐX]Ô^ˆŒäŸYšY t§~¡~¸¿¹Õ'EÀtÇ~Á~Ð\aÔbˆÔä—x‘x×'Ñ'¨BÐ'Ó/ˆŒà×ÑÒ'Ü Ÿ8™8×+Ñ+¨f×.>Ñ.>Ð+Ó?ˆDŽLàˆDŽLr   c                ó¾   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  RS[ P                  RS[R,          RS[R,          RS[R,          /# )	r   Úhidden_qÚ	hidden_kvÚattention_maskÚposition_biasÚoutput_attentionsNÚpast_key_valuesÚ	use_cache)r$   r/   Ú
BoolTensorÚboolr   )r   r   s   "€r   r   rN   R   sx   ø€ ÷ M#ñ M#á—,‘,ðM#ñ —<‘<ðM#ñ ×(Ñ(ð	M#ñ
 —|‘|ðM#ñ   $�;ðM#ñ  �ðM#ñ ˜$•;ñM#r   c           
     ó¤  € VP                  ^ 4      p	VP                  ^4      p
VP                  ^4      pV P                  V4      pV P                  V4      pV P                  V4      pVP	                  WšV P
                  V P                  4      P                  ^ ^^^4      pVP	                  W›V P
                  V P                  4      P                  ^ ^^^4      pVP	                  W›V P
                  V P                  4      P                  ^ ^^^4      pVe0   VP                  WÞV P                  4      w  rÞVP                  R4      p\        P                  ! WÍP                  RR4      4      \        P                  ! V P                  4      ,          pWô,           p\        P                  ! VVP	                  V	^W«4      \        P                   ! R4      8H  \        P"                  ! \%        R4      VP&                  VP(                  R7      4      pV P+                  V4      p\        P                  ! VVP	                  V	^W«4      \        P                   ! R4      8H  \        P"                  ! ^ VP&                  VP(                  R7      4      pV'       d   TpMRpV P,                  e   V P-                  V4      p\        P                  ! Wþ4      pVP	                  W�P
                  W P                  4      P                  ^ ^^^4      pVP/                  4       P	                  WšV P
                  V P                  ,          4      pV P1                  V4      pVV3# )aÜ  
Args:
    hidden_q (`torch.Tensor`):
        Input of transformer block(self-attention block). It can be the raw embedding of a batch of sequences.
    hidden_kv (`torch.Tensor` of shape `(batch, len_k, dim_model)`)):
        Tensor *key_value* and *query* of shape `(batch, len_k, dim_model)`
    attention_mask (`torch.Tensor` of shape `(batch, len_seq, len_seq)`):
        Avoid invalid areas to participate in the calculation of self-attention.
    position_bias (`torch.Tensor` of shape `(batch, len_seq, len_seq)`):
        Provide positional information to self-attention block.
    output_attentions (`bool`, *optional*):
        Whether or not to return the attentions tensors of all attention layers.
    past_key_values (`Cache`, *optional*):
        Cached past key and value projection states.
    use_cache (`bool`, *optional*):
        If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding
        (see `past_key_values`).
NFz-inf)Údevicer8   éþÿÿÿr5   )r6   rZ   r[   r\   ÚviewrV   rW   ÚpermuteÚupdaterX   r$   ÚmatmulÚ	transposeÚmathÚsqrtÚmasked_fillÚtensorÚscalar_tensorÚfloatrp   r8   r_   rb   Ú
contiguousr]   )r(   rf   rg   rh   ri   rj   rk   rl   ÚkwargsÚ
batch_sizeÚlen_qÚlen_kÚqueryÚkeyÚvalueÚscoreÚattn_weightss   &&&&&&&&,        r   r@   ÚCpmAntAttention.forwardR   sš  € ð: —]‘] 1Ó%ˆ
Ø—‘˜aÓ ˆØ—‘˜qÓ!ˆà—‘˜xÓ(ˆØ�n‰n˜YÓ'ˆØ—‘˜yÓ)ˆà—
‘
˜:¨d¯n©n¸d¿m¹mÓL×TÑTÐUVÐXYÐ[\Ð^_Ó`ˆØ�h‰h�z¨$¯.©.¸$¿-¹-ÓH×PÑPÐQRÐTUÐWXÐZ[Ó\ˆØ—
‘
˜:¨d¯n©n¸d¿m¹mÓL×TÑTÐUVÐXYÐ[\Ð^_Ó`ˆàÒ&Ø(×/Ñ/°¸D¿N¹NÓK‰JˆCØ—H‘H˜R“LˆEô —’˜U§M¡M°"°bÓ$9Ó:¼T¿YºYÀtÇ}Á}Ó=UÕUˆØÕ%ˆä×!Ò!ØØ×Ñ 
¨A¨uÓ<ÄÇÂÈUÓ@SÑSÜ×Ò¤ f£°e·l±lÈ%Ï+É+ÔVó
ˆð
 —‘˜UÓ#ˆä×!Ò!ØØ×Ñ 
¨A¨uÓ<ÄÇÂÈUÓ@SÑSÜ×Ò ¨%¯,©,¸e¿k¹kÔJó
ˆ÷
 Ø ‰LàˆLà�<‰<Ò#Ø—L‘L Ó'ˆEô —’˜UÓ*ˆà—
‘
˜:§~¡~°u¿m¹mÓL×TÑTÐUVÐXYÐ[\Ð^_Ó`ˆØ× Ñ Ó"×'Ñ'¨
¸4¿>¹>ÈDÏMÉMÕ;YÓZˆà×"Ñ" 5Ó)ˆà�lÐ"Ð"r   )
r]   rW   rT   rb   rX   rV   r[   rZ   r\   r_   r   )FNN©	rB   rC   rD   rE   r   r@   rG   rH   rI   rJ   s   @@r   rL   rL   =   s!   ù‡ € ÷ õ  ÷(M#÷ M#ò M#r   rL   c                   óX   a a€ ] tR t^¢t oRV3R lV 3R llltRV3R lR lltRtVtV ;t# )ÚCpmAntSelfAttentionBlockc                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   Ú%CpmAntSelfAttentionBlock.__annotate__£   ó   ø€ ÷  ñ  ™|ñ  r   c                óø   <€ \         SV `  4        \        V4      V n        \	        WR 7      V n        VP                  '       d1   \        P                  P                  VP                  4      V n
        R# RV n
        R# ©)rX   N)r   r   r   Úlayernorm_before_attentionrL   Úself_attentionr`   r$   r   ra   rb   rc   s   &&&€r   r   Ú!CpmAntSelfAttentionBlock.__init__£   sW   ø€ Ü‰ÑÔÜ*9¸&Ó*AˆÔ'Ü-¨fÔJˆÔØ××ÐÜ Ÿ8™8×+Ñ+¨F×,<Ñ,<Ó=ˆDŽLàˆDŽLr   c                ó²   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  R,          RS[R,          RS[R,          RS[R,          /# ©r   r-   rh   ri   Nrj   rk   rl   ©r$   r/   rn   r   )r   r   s   "€r   r   rŒ   ¬   sd   ø€ ÷ )+ñ )+á—|‘|ð)+ñ Ÿ™ð)+ñ —|‘| dÕ*ð	)+ñ
   $�;ð)+ñ  �ð)+ñ ˜$•;ñ)+r   c           	     óª   € V P                  V4      pV P                  VVVVVVV4      w  r‰V P                  e   V P                  V4      pW,           pW3# )av  
Args:
    hidden_states (`torch.Tensor` of shape `(batch, len_seq, dim_model)`):
        Input of transformer block(self-attention block). It can be the raw embedding of a batch of sequences.
    attention_mask (`torch.Tensor` of shape `(batch, len_seq, len_seq)`):
        Avoid invalid areas to participate in the calculation of self-attention.
    position_bias (`torch.Tensor` of shape `(batch, len_seq, len_seq)`):
        Provide positional information to self-attention block.
    output_attentions (`bool`, *optional*):
        Whether or not to return the attentions tensors of all attention layers.
    past_key_values (`Cache`, *optional*):
        Cached past key and value projection states.
    use_cache (`bool`, *optional*):
        If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding
        (see `past_key_values`).
)r�   r‘   rb   )
r(   r-   rh   ri   rj   rk   rl   r~   Úoutputsr†   s
   &&&&&&&,  r   r@   Ú CpmAntSelfAttentionBlock.forward¬   sg   € ð4 ×1Ñ1°-Ó@ˆØ $× 3Ñ 3ØØØØØØØó!
Ñˆð �<‰<Ò#Ø—l‘l 7Ó+ˆGØ%Õ/ˆàÐ*Ð*r   )rb   r�   r‘   r   ©NFNNrˆ   rJ   s   @@r   rŠ   rŠ   ¢   s   ù‡ € ÷ õ  ÷)+÷ )+ò )+r   rŠ   c                   óP   a a€ ] tR t^Øt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚCpmAntDenseGatedACTc                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   Ú CpmAntDenseGatedACT.__annotate__Ù   s   ø€ ÷ #ñ #™|ñ #r   c                ó2  <€ \         SV `  4        \        P                  ! VP                  VP
                  R R7      V n        \        P                  ! VP                  VP
                  R R7      V n        \        P                  P                  4       V n
        R# ©FrP   N)r   r   r   rY   r!   Údim_ffÚw_0Úw_1r$   ÚGELUÚactr'   s   &&€r   r   ÚCpmAntDenseGatedACT.__init__Ù   s[   ø€ Ü‰ÑÔÜ—9’9˜V×/Ñ/°·±ÀUÔKˆŒÜ—9’9˜V×/Ñ/°·±ÀUÔKˆŒÜ—8‘8—=‘=“?ˆŽr   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r,   r.   )r   r   s   "€r   r   r�   ß   r0   r   c                óx   € V P                  V P                  V4      4      pV P                  V4      pW!,          pV# )z¤Transform an input tensor from one feature space to another via a nonlinear operation

Args:
    hidden_states (`torch.Tensor` of shape `(batch, seq_len, dim_in)`)
©r¤   r¡   r¢   )r(   r-   Ú
gate_scores   && r   r@   ÚCpmAntDenseGatedACT.forwardß   s7   € ð —X‘X˜dŸh™h }Ó5Ó6ˆ
ØŸ™ Ó/ˆà"Õ2ˆØÐr   r¨   rˆ   rJ   s   @@r   r›   r›   Ø   s   ù‡ € ÷#ó #÷
÷ 
ð 
r   r›   c                   óP   a a€ ] tR t^ìt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚCpmAntFeedForwardc                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   ÚCpmAntFeedForward.__annotate__í   s   ø€ ÷ Nñ N™|ñ Nr   c                ó0  <€ \         SV `  4        \        V4      V n        VP                  e0   \
        P                  P                  VP                  4      V n        MR V n        \        P                  ! VP                  VP                  RR7      V n        R # )NFrP   )r   r   r›   Úw_inr`   r$   r   ra   rb   rY   r    r!   Úw_outr'   s   &&€r   r   ÚCpmAntFeedForward.__init__í   sg   ø€ Ü‰ÑÔÜ'¨Ó/ˆŒ	Ø×ÑÒ'Ü Ÿ8™8×+Ñ+¨F×,<Ñ,<Ó=ˆD�LàˆDŒLä—Y’Y˜vŸ}™}¨f×.@Ñ.@ÀuÔMˆŽ
r   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r,   r.   )r   r   s   "€r   r   r®   ÷   s   ø€ ÷ ñ ¡U§\¡\ñ r   c                óˆ   € V P                  V4      pV P                  e   V P                  V4      pV P                  V4      pV# )r2   )r°   rb   r±   ©r(   r-   s   &&r   r@   ÚCpmAntFeedForward.forward÷   s>   € ð
 Ÿ	™	 -Ó0ˆà�<‰<Ò#Ø ŸL™L¨Ó7ˆMàŸ
™
 =Ó1ˆàÐr   )rb   r°   r±   rˆ   rJ   s   @@r   r¬   r¬   ì   s    ù‡ € ÷Nó N÷÷ ð r   r¬   c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚCpmAntFFNBlocki  c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   ÚCpmAntFFNBlock.__annotate__  r�   r   c                óö   <€ \         SV `  4        \        V4      V n        \	        V4      V n        VP                  '       d1   \        P                  P                  VP                  4      V n
        R # R V n
        R # r   )r   r   r   Úlayernorm_before_ffnr¬   Úffnr`   r$   r   ra   rb   r'   s   &&€r   r   ÚCpmAntFFNBlock.__init__  sV   ø€ Ü‰ÑÔÜ$3°FÓ$;ˆÔ!Ü$ VÓ,ˆŒØ××ÐÜ Ÿ8™8×+Ñ+¨F×,<Ñ,<Ó=ˆDŽLàˆDŽLr   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r,   r.   )r   r   s   "€r   r   rº     s   ø€ ÷ ñ á—|‘|ñr   c                ó˜   € V P                  V4      pV P                  V4      pV P                  e   V P                  V4      pW,           pV# )zƒ
Args:
    hidden_states (`torch.Tensor` of shape `(batch, len_seq, dim_model)`):
        Hidden states before feed forward layer.
)r¼   r½   rb   )r(   r-   Ú
ln_outputsr—   s   &&  r   r@   ÚCpmAntFFNBlock.forward  sH   € ð ×.Ñ.¨}Ó=ˆ
Ø—(‘(˜:Ó&ˆØ�<‰<Ò#Ø—l‘l 7Ó+ˆGØ%Õ/ˆØÐr   )rb   r½   r¼   rˆ   rJ   s   @@r   r¸   r¸     s   ù‡ € ÷ ó  ÷÷ ð r   r¸   c                   óX   a a€ ] tR tRt oRV3R lV 3R llltRV3R lR lltRtVtV ;t# )	ÚCpmAntTransformerBlocki!  c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   Ú#CpmAntTransformerBlock.__annotate__"  s   ø€ ÷ *ñ *™|ñ *r   c                óf   <€ \         SV `  4        \        WR 7      V n        \	        V4      V n        R# r�   )r   r   rŠ   Úself_attr¸   r½   rc   s   &&&€r   r   ÚCpmAntTransformerBlock.__init__"  s&   ø€ Ü‰ÑÔÜ0°ÔMˆŒÜ! &Ó)ˆŽr   c                ó²   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  R,          RS[R,          RS[R,          RS[R,          /# r”   r•   )r   r   s   "€r   r   rÆ   '  sd   ø€ ÷ $+ñ $+á—|‘|ð$+ñ Ÿ™ð$+ñ —|‘| dÕ*ð	$+ñ
   $�;ð$+ñ  �ð$+ñ ˜$•;ñ$+r   c           	     ó\   € V P                  VVVVVVR7      w  rV P                  V4      pW3# )a  
Args:
    hidden_states (`torch.Tensor`):
        Input to the layer of shape `(batch, seq_len, dim_model)`
    attention_mask (`torch.Tensor`):
        Avoid invalid areas to participate in the calculation of shape `(batch, seq_len, seq_len)`
    position_bias (`torch.Tensor`):
        Provides position information to attention mechanism of shape `(num_heads, seq_len, seq_len)`
    output_attentions (`bool`, *optional*):
        Whether or not to return the attentions tensors of all attention layers.
    past_key_values (`Cache`, *optional*):
        Cached past key and value projection states
    use_cache (`bool`, *optional*):
        If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding
        (see `past_key_values`).
)rh   ri   rj   rk   rl   )rÈ   r½   )	r(   r-   rh   ri   rj   rk   rl   r~   r†   s	   &&&&&&&, r   r@   ÚCpmAntTransformerBlock.forward'  sE   € ð4 '+§m¡mØØ)Ø'Ø/Ø+Øð '4ó '
Ñ#ˆð Ÿ™ Ó/ˆØÐ*Ð*r   )r½   rÈ   r   r™   rˆ   rJ   s   @@r   rÄ   rÄ   !  s   ù‡ € ÷*õ *÷
$+÷ $+ò $+r   rÄ   c                   óT   a a€ ] tR tRt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚCpmAntEncoderiN  c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   ÚCpmAntEncoder.__annotate__O  s   ø€ ÷ 8ñ 8™|ñ 8r   c           
     ó   <€ \         SV `  4        VP                  V n        \        P
                  ! \        V P                  4       Uu. uF  p\        WR 7      NK  	  up4      V n        \        V4      V n
        R# u upi r�   )r   r   Únum_hidden_layersÚ
num_layersr   Ú
ModuleListÚrangerÄ   Úlayersr   Úoutput_layernorm)r(   r   Úir)   s   && €r   r   ÚCpmAntEncoder.__init__O  sc   ø€ Ü‰ÑÔØ ×2Ñ2ˆŒÜ—m’mÔZ_Ð`d×`oÑ`oÔZpÓ$qÑZpÐUVÔ%;¸F×%PÑZpÑ$qÓrˆŒä /°Ó 7ˆÖùò %rs   ÁA;c                ó¸   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  RS[R,          RS[R,          RS[R,          RS[R,          /# )	r   r-   rh   ri   rj   NÚoutput_hidden_statesrk   rl   r•   )r   r   s   "€r   r   rÐ   V  sv   ø€ ÷ 4@ñ 4@á—|‘|ð4@ñ Ÿ™ð4@ñ —|‘|ð	4@ñ
   $�;ð4@ñ # T�kð4@ñ  �ð4@ñ ˜$•;ñ4@r   c           
     ó&  € V'       d   RMRp	V'       d   RMRp
\        V P                  4       F;  w  r¼V'       d
   W‘3,          p	V! VVVVVVR7      pVw  rV'       g   K2  W®3,          p
K=  	  V P                  V4      pV'       d
   W‘3,          p	WV
3# )a€  
Args:
    hidden_states (`torch.Tensor`):
        Input to the layer of shape `(batch, seq_len, dim_model)`
    attention_mask (`torch.Tensor`):
        Avoid invalid areas to participate in the calculation of shape `(batch, seq_len, seq_len)`
    position_bias (`torch.Tensor`):
        Provides position information to attention mechanism of shape `(num_heads, seq_len, seq_len)`
    output_attentions (`bool`, *optional*):
        Whether or not to return the attentions tensors of all attention layers.
    output_hidden_states (`bool`, *optional*):
        Whether or not to return the hidden states of all layers.
    past_key_values (`Cache`, *optional*):
        Cached past key and value projection states
    use_cache (`bool`, *optional*):
        If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding
        (see `past_key_values`).
N)rj   rk   rl   © )Ú	enumeraterÖ   r×   )r(   r-   rh   ri   rj   rÛ   rk   rl   r~   Úall_hidden_statesÚall_self_attnsrØ   ÚlayerÚlayer_outputsr†   s   &&&&&&&&,      r   r@   ÚCpmAntEncoder.forwardV  s�   € ÷: #7™B¸DÐß0™°dˆä! $§+¡+Ö.‰HˆAß#Ø!Ð%5Õ5Ð!Ù!ØØØØ"3Ø /Ø#ôˆMð +8Ñ'ˆMß Ñ Ø /Õ1’ñ /ð ×-Ñ-¨mÓ<ˆçØÐ!1Õ1Ðà°Ð?Ð?r   )rÖ   rÓ   r×   )NNNNrˆ   rJ   s   @@r   rÎ   rÎ   N  s!   ù‡ € ÷8ó 8÷4@÷ 4@ò 4@r   rÎ   c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚCpmAntIntermediateiŽ  c                ó"  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        VP                  \        4      '       d   \        VP                  ,          V n        R # VP                  V n        R # r   )r   r   r   rY   r!   Úintermediate_sizeÚdenseÚ
isinstanceÚ
hidden_actÚstrr   Úintermediate_act_fnr'   s   &&€r   r   ÚCpmAntIntermediate.__init__�  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3KÑ3KÓLˆŒ
Ü�f×'Ñ'¬×-Ò-Ü'-¨f×.?Ñ.?Õ'@ˆDÖ$à'-×'8Ñ'8ˆDÖ$r   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   r-   Úreturnr.   )r   r   s   "€r   r   ÚCpmAntIntermediate.__annotate__—  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r   c                óJ   € V P                  V4      pV P                  V4      pV# r   ©rè   rì   rµ   s   &&r   r@   ÚCpmAntIntermediate.forward—  s&   € ØŸ
™
 =Ó1ˆØ×0Ñ0°Ó?ˆØÐr   rò   rˆ   rJ   s   @@r   rå   rå   Ž  s   ù‡ € õ9÷÷ ð r   rå   c                   ó`   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltR tR	R ltRtVt	V ;t
# )
ÚCpmAntSegmentPositionEmbeddingi�  c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   Ú+CpmAntSegmentPositionEmbedding.__annotate__ž  s   ø€ ÷ 
ñ 
™|ñ 
r   c                óx  <€ \         SV `  4        VP                  V n        VP                  V n        VP                  V n        VP                  V n	        \        P                  ! \        P                  ! VP                  VP                  ,          VP                  ,           VP                  4      4      V n        R # r   )r   r   rU   rV   Úposition_bias_num_bucketsÚnum_bucketsÚposition_bias_max_distanceÚmax_distanceÚsegment_typesÚnum_segmentsr   r#   r$   r%   Úrelative_attention_biasr'   s   &&€r   r   Ú'CpmAntSegmentPositionEmbedding.__init__ž  sŠ   ø€ Ü‰ÑÔà×3Ñ3ˆŒØ!×;Ñ;ˆÔØ"×=Ñ=ˆÔØ"×0Ñ0ˆÔä')§|¢|Ü�KŠKØ×$Ñ$ v×';Ñ';Õ;¸f×>^Ñ>^Õ^Ø×*Ñ*óó(
ˆÖ$r   c                ó‚   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  RS[ P                  /# )r   Úkey_posÚ	query_posÚkey_segmentÚquery_segmentr.   )r   r   s   "€r   r   r÷   ­  sC   ø€ ÷ 2ñ 2á—‘ð2ñ —<‘<ð2ñ —\‘\ð	2ñ
 —|‘|ñ2r   c                ób  € \         P                  ! 4       ;_uu_ 4        VP                  ^ 4      pVP                  ^4      pVP                  ^4      pVP                  ^ 4      VP                  ^ 4      8w  d1   \        RVP                  ^ 4       RVP                  ^ 4       R24      hWcP                  ^4      8w  g   WtP                  ^4      8w  d"   \        RV RVP                  ^4       R24      hWtP                  ^4      8w  d"   \        RV RVP                  ^4       R24      hVP	                  VR	V4      pVP	                  WWR	4      pVP	                  VR	V4      pVP	                  WWR	4      pV P                  WC4      pW€P                  ,           pV P                  \         P                  ! V\         P                  VP                  R7      R
,          \         P                  ! V\         P                  VP                  R7      R,          ,
          V P                  V P                  R7      p	\         P                  ! W48H  V	R,          V4      pRRR4       \        P                  ! XV P                  4      p
V
P!                  ^ ^^^4      P#                  4       p
V
#   + '       g   i     LU; i)é    z>key_pos.size(0) should be equal to query_pos.size(0), but got z and Ú!z7keylen should be equal to key_segment.size(1), but got z;querylen should be equal to query_segment.size(1), but got ©r8   rp   N)rú   rü   r5   ©NºNNN©r  N)Nr  r  )r$   Úno_gradr6   r7   rr   Ú!_segment_relative_position_bucketrú   Ú_position_bucketÚarangeÚint32rp   rü   ÚwhereÚFÚ	embeddingrÿ   rs   r}   )r(   r  r  r  r  ÚbatchÚkeylenÚquerylenÚrelative_position_bucketÚabsolute_position_bucketÚembedss   &&&&&      r   r@   Ú&CpmAntSegmentPositionEmbedding.forward­  sl  € ô �]Š]�_�_Ø—L‘L “OˆEØ—\‘\ !“_ˆFØ —~‘~ aÓ(ˆHà�|‰|˜A‹ )§.¡.°Ó"3Ô3Ü$ØTÐU\×UaÑUaÐbcÓUdÐTeÐejÐkt×kyÑkyÐz{Ók|Ðj}Ð}~Ðóð ð ×)Ñ)¨!Ó,Ô,°×<NÑ<NÈqÓ<QÔ0QÜ$ØMÈfÈXÐUZÐ[f×[kÑ[kÐlmÓ[nÐZoÐopÐqóð ð ×-Ñ-¨aÓ0Ô0Ü$ØQÐRZÐQ[Ð[`Ðan×asÑasÐtuÓavÐ`wÐwxÐyóð ð —l‘l 5¨"¨fÓ5ˆGØ!Ÿ™ u¸Ó;ˆIØ%×*Ñ*¨5°"°fÓ=ˆKØ)×.Ñ.¨uÀÓCˆMà'+×'MÑ'MÈmÓ'iÐ$Ø'?×BRÑBRÕ'RÐ$ð (,×'<Ñ'<Ü—’˜V¬5¯;©;Ð?W×?^Ñ?^Ô_Ð`gÕhÜ—,’,˜x¬u¯{©{ÐC[×CbÑCbÔcÐdkÕlõmà ×,Ñ,Ø!×.Ñ.ð	 (=ó (Ð$ô (-§{¢{ØÑ-Ø(¨Õ4Ø(ó(Ð$÷C ôP —’Ð5°t×7SÑ7SÓTˆà—‘  1 a¨Ó+×6Ñ6Ó8ˆØˆ÷W �_ús   žH3JÊJ.	c                ó4   € WP                   ,          V,           # r   )rþ   )r(   r  r  s   &&&r   r  Ú@CpmAntSegmentPositionEmbedding._segment_relative_position_bucketá  s   € Ø×0Ñ0Õ0°;Õ>Ð>r   c                óˆ  € ^ pV^,          pV^ 8„  P                  \        P                  4      V,          p\        P                  ! V4      pV^,          pW8  pV\        P                  ! VP                  4       V,          4      \        P                  ! W5,          4      ,          W%,
          ,          P                  \        P                  4      ,           p\        P                  ! V\        P                  ! Wr^,
          4      4      pV\        P                  ! WaP                  \        P                  4      V4      ,          pV# )r  )
r9   r$   r  ÚabsÚlogr|   rw   ÚminÚ	full_liker  )r(   Úrelative_positionrú   rü   Úrelative_bucketsÚ	max_exactÚis_smallÚrelative_position_if_larges   &&&&    r   r  Ú/CpmAntSegmentPositionEmbedding._position_bucketä  sú   € ØÐà˜ÕˆØ-°Ñ1×5Ñ5´e·k±kÓBÀ[ÕPÐÜ!ŸIšIÐ&7Ó8ÐØ 1Õ$ˆ	Ø$Ñ0ˆØ%.Ü�IŠIÐ'×-Ñ-Ó/°)Õ;Ó<Ü�hŠh�|Õ/Ó0õ1àÕ&õ(÷ ‰"ŒU�[‰[‹/õ	&Ð"ô
 &+§Y¢YØ&Ü�OŠOÐ6Àa½ÓHó&
Ð"ð 	œEŸKšK¨×2FÑ2FÄuÇ{Á{Ó2SÐUoÓpÕpÐØÐr   )rü   rú   rV   rþ   rÿ   )é    é€   )rB   rC   rD   rE   r   r@   r  r  rG   rH   rI   rJ   s   @@r   rõ   rõ   �  s)   ù‡ € ÷
ó 
÷2ð 2òh?÷ ô  r   rõ   c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚCpmAntOutputiú  c                ó0  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        P                  ! VP
                  VP                  R 7      V n        \        P                  ! VP                  4      V n        R# ))r    N)r   r   r   rY   rç   r!   rè   Ú	LayerNormÚlayer_norm_epsra   Úhidden_dropout_probrb   r'   s   &&€r   r   ÚCpmAntOutput.__init__û  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×7Ñ7¸×9KÑ9KÓLˆŒ
ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŽr   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )r   r-   Úinput_tensorrï   r.   )r   r   s   "€r   r   ÚCpmAntOutput.__annotate__  s1   ø€ ÷ ñ ¡U§\¡\ð ÁÇÁð ÑRW×R^ÑR^ñ r   c                óx   € V P                  V4      pV P                  V4      pV P                  W,           4      pV# r   )rè   rb   r.  )r(   r-   r3  s   &&&r   r@   ÚCpmAntOutput.forward  s5   € ØŸ
™
 =Ó1ˆØŸ™ ]Ó3ˆØŸ™ }Õ'CÓDˆØÐr   )r.  rè   rb   rˆ   rJ   s   @@r   r,  r,  ú  s   ù‡ € õ>÷÷ ð r   r,  c                   ój   a a€ ] tR tRt oRt]P                  ! 4       V 3R l4       tV3R ltRt	Vt
V ;t# )ÚCpmAntPreTrainedModeli  Úcpmantc                ó4  <€ \         SV `  V4       \        V\        4      '       d#   \        P
                  ! VP                  4       R# \        V\        4      '       d:   \        P                  ! VP                  RV P                  P                  R7       R# R# )zInitialize the weightsg        )r<   ÚstdN)r   Ú_init_weightsré   r   ÚinitÚones_r&   rõ   Únormal_rÿ   r   Úinit_std)r(   Úmoduler)   s   &&€r   r<  Ú#CpmAntPreTrainedModel._init_weights  sc   ø€ ô 	‰Ñ˜fÔ%Ü�fœo×.Ò.Ü�JŠJ�v—}‘}Ö%Ü˜Ô >×?Ò?Ü�LŠL˜×7Ñ7¸cÀtÇ{Á{×G[ÑG[×\ñ @r   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r   r   )r   r   s   "€r   r   Ú"CpmAntPreTrainedModel.__annotate__  s   ø‡ ‚ áÑò r   rÝ   )rB   rC   rD   rE   Úbase_model_prefixr$   r  r<  Ú__annotate_func__rG   rH   rI   rJ   s   @@r   r8  r8    s.   ù‡ € ð !Ðà
‡]‚]ƒ_ô]ó ð]÷ … r   r8  c                   óp   a a€ ] tR tRt oV3R lV 3R lltR tR tR t]R
V3R lR ll4       t	R	t
VtV ;t# )ÚCpmAntModeli  c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   ÚCpmAntModel.__annotate__  s   ø€ ÷ ñ ™|ñ r   c                óÎ  <€ \         SV `  V4       \        V4      V n        \        P
                  ! VP                  VP                  4      V n        \        P
                  ! VP                  VP                  VP                  ,          ,           VP                  4      V n        \        V4      V n        VP                  V n        VP                  V n	        V P                  4        R # r   )r   r   rÎ   Úencoderr   Ú	Embeddingrý   r!   Úsegment_embeddingÚ
vocab_sizeÚprompt_typesÚprompt_lengthÚinput_embeddingrõ   ri   Ú	post_initr'   s   &&€r   r   ÚCpmAntModel.__init__  s§   ø€ Ü‰Ñ˜Ô Ü$ VÓ,ˆŒÜ!#§¢¨f×.BÑ.BÀF×DVÑDVÓ!WˆÔÜ!Ÿ|š|Ø×Ñ × 3Ñ 3°f×6JÑ6JÕ JÕJÈF×L^ÑL^ó 
ˆÔô <¸FÓCˆÔØ#×1Ñ1ˆÔØ ×+Ñ+ˆŒà�‰Ör   c                ó   € V P                   # r   ©rR  ©r(   s   &r   Úget_input_embeddingsÚ CpmAntModel.get_input_embeddings&  s   € Ø×#Ñ#Ð#r   c                ó   € Wn         R # r   rV  )r(   Ú
embeddingsr~   s   &&,r   Úset_input_embeddingsÚ CpmAntModel.set_input_embeddings)  s   € Ø)Ör   c                óF  € VP                  ^ 4      pVP                  ^4      pVP                  p\        P                  ! WgR7      \        P                  ! WgR7      P	                  R^4      8*  pVR,          VR,          P                  4       VP	                  ^Wf4      ,          ,          p	W’R,          VR,          8H  ,          p	\        P                  ! \        \        W`P                  ,
          4      4      RRR1,          VR7      R,          P                  V^4      VR,          8  p
\        P                  ! \        P                  ! WPP                  VR7      P                  4       V
3^R7      p
V
P	                  WV^4      V
P	                  V^V4      ,          V	,          p	V	# )	r  )rp   NrR   r5   )r  Nr  )r  r  Nr
  r  )r6   rp   r$   r  rr   Úlogical_notrz   ÚlistrÕ   rQ  ÚrepeatÚcatÚonesrn   )r(   Ú	input_idsÚspanÚcontextÚlengthr  Úseqlenrp   Údirectional_mask_2drh   Úmask_1ds   &&&&&      r   Ú_prepare_attention_maskÚ#CpmAntModel._prepare_attention_mask,  sW  € Ø—‘˜qÓ!ˆØ—‘ Ó"ˆØ×!Ñ!ˆÜ#Ÿlšl¨6ÔAÄUÇ\Â\ÐRXÔEh×EmÑEmÐnpÐrsÓEtÑtÐØ  Õ,Ø�JÕ×+Ñ+Ó-Ð0C×0HÑ0HÈÈFÓ0[Õ[õ
ˆð (°
Õ+;¸tÀJÕ?OÑ+OÕPˆô �LŠLœœe F×-?Ñ-?Õ$?Ó@ÓAÁ$ÀBÀ$ÕGÐPVÔWÐX_Õ`×gÑgÐhmÐopÓqØ�W�oñð 	ô —)’)œUŸZšZ¨×/AÑ/AÈ&ÔQ×VÑVÓXÐZaÐbÐhiÔjˆØ Ÿ™ e°QÓ7¸'¿,¹,ÀuÈaÐQWÓ:XÕXÐ[iÕiˆØÐr   c                óà   <€ V ^8„  d   QhRS[ P                  R,          RS[R,          RS[R,          RS[R,          RS[R,          RS[R,          RS[S[ P                  ,          S[,          /# )	r   rd  Nrj   rÛ   rk   rl   Úreturn_dictrï   )r$   r/   rn   r   Útupler	   )r   r   s   "€r   r   rJ  ?  s†   ø€ ÷ g
ñ g
á—<‘< $Õ&ðg
ñ   $�;ðg
ñ # T�kð	g
ñ
  �ðg
ñ ˜$•;ðg
ñ ˜D•[ðg
ñ 
‰u�|‰|Õ	Ñ6Õ	6ñg
r   c           	     ó<  € Ve   TMV P                   P                  pVe   TMV P                   P                  pVe   TMV P                   P                  pVe   TMV P                   P                  pVP
                  \        P                  8w  d    VP                  \        P                  4      pVP
                  VP                  r˜\        P                  ! V^ 8g  ^^ 4      P                  W‰R7      p
V
^ 8g  P                  R4      P                  W‰R7      p\        P                  ! \        P                  ! V P                  ^,          V P                  ,           V P                  ^,          V P                  ,           VV	R7      P!                  VP#                  ^ 4      ^4      V3^R7      pVP#                  4       w  rÍ\        P                  ! \        P$                  ! WÀP                  W‰R7      V
3^R7      p
\        P&                  ! WÍ3^W‰R7      p\        P                  ! WØV	R7      P!                  V^4      p\        P&                  ! WÍ3^ W‰R7      pV'       d   Vf   \)        V P                   R7      pVe   VP+                  4       M^ pVP-                  4       pV P/                  V4      pV P1                  V
4      pV^ 8w  d   VRRR1R3,          pVV,           pV P3                  VVWë4      pV P5                  WÿWª4      pVRVR1R3,          pVRRVR1R3,          pVRVR1R3,          pV P7                  VVVVVVV4      w  pppV^ 8X  dˆ   VRV P                  R1R3,          pVe;   R	pV F0  pVVRRV P                  R1V P                  R13,          3,          pK2  	  TpVe.   R	pV F#  pVVRV P                  R1R3,          3,          pK%  	  TpV'       g5   \8        ;QJ d    . R VVVV3 4       F  NK  	  5# ! R VVVV3 4       4      # \;        VVVVR7      # )
a9  
input_ids (`torch.Tensor` of shape `(batch_size, seq_len)`):
    Indices of input sequence tokens in the vocabulary.

    Indices can be obtained using [`CPMAntTokenizer`]. See [`PreTrainedTokenizer.encode`] and
    [`PreTrainedTokenizer.__call__`] for details.

    [What are input IDs?](../glossary#input-ids)
Nr	  rR   )r   r  c              3   ó0   "  € T F  qf   K  Vx € K  	  R # 5ir   rÝ   )Ú.0Úvs   & r   Ú	<genexpr>Ú&CpmAntModel.forward.<locals>.<genexpr>�  s   é € ð Ù^�a—’Ó^ùs   ‚Œ
)Úlast_hidden_staterk   r-   Ú
attentionsr5   rÝ   )r   rj   rÛ   rn  rl   r8   r$   r  r9   rp   r  Úsumrb  r  rQ  rO  ra  r6   ÚzerosÚfullr   Úget_seq_lengthr}   rR  rN  rk  ri   rL  ro  r	   )r(   rd  rj   rÛ   rk   rl   rn  r~   r8   rp   Úsegmentrg  r  Ú
seq_lengthrf  Úpositionre  Úpast_lengthr-   Úsegment_statesrh   ri   rß   Úall_attentionsÚnew_attentionsÚ	attentionÚnew_hidden_statesÚhidden_states   &&&&&&&,                    r   r@   ÚCpmAntModel.forward>  sï  € ð( 2CÒ1NÑ-ÐTX×T_ÑT_×TqÑTqÐà$8Ò$DÑ È$Ï+É+×JjÑJjð 	ð &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆØ!*Ò!6‘I¸D¿K¹K×<QÑ<Qˆ	ð �?‰?œeŸk™kÔ)Ø!Ÿ™¤U§[¡[Ó1ˆIØ!Ÿ™¨×)9Ñ)9ˆvÜ—+’+˜i¨1™n¨a°Ó3×6Ñ6¸UÐ6ÓRˆØ˜Q‘,×#Ñ# BÓ'×*Ñ*°Ð*ÓFˆÜ—I’Iä—’Ø×&Ñ&¨Õ*¨T¯_©_Õ<Ø×&Ñ&¨Õ*¨T¯_©_Õ<ØØ!ô	÷
 ‘&˜Ÿ™¨Ó*¨AÓ.Øðð ô
ˆ	ð &ŸN™NÓ,ÑˆÜ—)’)œUŸ[š[¨×0BÑ0BÈ%Ô_ÐahÐiÐopÔqˆÜ—*’*˜eÐ0°!¸5ÔPˆÜ—<’< 
ÀÔG×NÑNÈuÐVWÓXˆÜ�zŠz˜5Ð-¨q¸ÔMˆç˜Ò0Ü*°$·+±+Ô>ˆOà:IÒ:U�o×4Ñ4Ô6Ð[\ˆØ×(Ñ(Ó*ˆ	Ø×,Ñ,¨YÓ7ˆØ×/Ñ/°Ó8ˆØ˜!ÔØ+¨A¨r©s°A¨IÕ6ˆNà%¨Õ6ˆà×5Ñ5°iÀÀwÓWˆØ×*Ñ*¨8¸wÓPˆà'¨¨;©<¸Ð(:Õ;ˆØ% a¨¨K©L¸!Ð&;Õ<ˆØ% a¨©°qÐ&8Õ9ˆà;?¿<¹<ØØØØØ ØØó<
Ñ8ˆÐ(¨.ð ˜!ÔØ)¨!¨T×-?Ñ-?Ñ-AÀ1Ð*DÕEˆMàÒ)Ø!#�Û!/�IØ" y°°A°t×7IÑ7IÑ7KÈT×M_ÑM_ÑMaÐ1aÕ'bÐ&dÕd’Nñ "0à!/�Ø Ò,Ø$&Ð!Û$5�LØ%¨,°q¸$×:LÑ:LÑ:NÐPQÐ7QÕ*RÐ)TÕTÒ%ñ %6à$5Ð!çß”5ñ Ø)¨?Ð<MÈ~Ñ^ó—5ð �5ñ Ø)¨?Ð<MÈ~Ñ^óó ð ô 'Ø+Ø+Ø+Ø%ô	
ð 	
r   )rL  rR  ri   rQ  rN  rO  )NNNNNN)rB   rC   rD   rE   r   rX  r\  rk  r   r@   rG   rH   rI   rJ   s   @@r   rH  rH    s@   ù‡ € ÷ó ò$ò*òð$ ÷g
ñ g
ó ÷g
ð g
r   rH  z–
    The CPMAnt Model with a language modeling head on top (linear layer whose weights are a
    vocabulary-sized slice of the input embeddings).
    )Úcustom_introc                   ó~   a a€ ] tR tRt o/ tV3R lV 3R lltR
V 3R llt]RV3R lR ll4       tR t	R t
R	tVtV ;t# )ÚCpmAntForCausalLMi©  c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   ÚCpmAntForCausalLM.__annotate__´  s   ø€ ÷ ñ ™|ñ r   c                óÊ   <€ \         SV `  V4       \        V4      V n        \        P
                  ! VP                  VP                  R R7      V n        V P                  4        R# rŸ   )
r   r   rH  r9  r   rY   r!   rO  Úlm_headrS  r'   s   &&€r   r   ÚCpmAntForCausalLM.__init__´  sF   ø€ Ü‰Ñ˜Ô Ü! &Ó)ˆŒä—y’y ×!3Ñ!3°V×5FÑ5FÈUÔSˆŒØ�‰Ör   c                ó*   <€ \         SV `  ! V3R R/VB # )Únext_sequence_lengthN)r   Úprepare_inputs_for_generation)r(   rd  r�  r~   r)   s   &&&,€r   r‘  Ú/CpmAntForCausalLM.prepare_inputs_for_generation»  s   ø€ ä‰wÒ4°YÑdÐUYÐdÐ]cÑdÐdr   c                ó6  <€ V ^8„  d   QhRS[ P                  R,          RS[R,          RS[R,          RS[R,          RS[R,          RS[ P                  R,          RS[R,          R	S[ P                  R,          R
S[S[ P                  ,          RS[S[,          /
# )r   rd  Nrk   rl   rj   rÛ   Úlabelsrn  rh   Úlogits_to_keeprï   )r$   r/   r   rn   Úintro  r
   )r   r   s   "€r   r   r‹  À  s¹   ø€ ÷ F
ñ F
á—<‘< $Õ&ðF
ñ  �ðF
ñ ˜$•;ð	F
ñ
   $�;ðF
ñ # T�kðF
ñ —‘˜tÕ#ðF
ñ ˜D•[ðF
ñ Ÿ™ tÕ+ðF
ñ ™eŸl™lÕ*ðF
ñ 
Ñ'Õ	'ñF
r   c
                ó\  € Ve   TMV P                   P                  pV P                  VVVVVV4      pV'       d   VP                  MV^ ,          p\	        V	\
        4      '       d   \        V	) R4      MT	pV P                  VRVR3,          4      pRpVeB   \        4       pV! VP                  RVP                  R4      4      VP                  R4      4      pV'       g"   V3VR,          ,           pVe   V3V,           # T# \        VVVP                  VP                  VP                  R7      # )u”  
input_ids (`torch.Tensor` of shape `(batch_size, seq_len)`):
    Indices of input sequence tokens in the vocabulary.

    Indices can be obtained using [`CPMAntTokenizer`]. See [`PreTrainedTokenizer.encode`] and
    [`PreTrainedTokenizer.__call__`] for details.

    [What are input IDs?](../glossary#input-ids)
labels (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the masked language modeling loss.

Example:

Text Generation with CpmAntForCausalLM.
```python
>>> from transformers import CPMAntTokenizer, CpmAntForCausalLM

>>> texts = "ä»Šå¤©å¤©æ°”ä¸�é”™ï¼Œ"
>>> model = CpmAntForCausalLM.from_pretrained("openbmb/cpm-ant-10b")
>>> tokenizer = CPMAntTokenizer.from_pretrained("openbmb/cpm-ant-10b")
>>> input_ids = tokenizer(texts, return_tensors="pt")
>>> outputs = model.generate(**input_ids)
>>> output_texts = tokenizer.batch_decode(outputs)
>>> print(output_texts)
['ä»Šå¤©å¤©æ°”ä¸�é”™ï¼Œé˜³å…‰æ˜Žåªšï¼Œæˆ‘å’Œå¦ˆå¦ˆä¸€èµ·åŽ»è¶…å¸‚ä¹°ä¸œè¥¿ã€‚\nåœ¨è¶…å¸‚é‡Œï¼Œæˆ‘çœ‹åˆ°äº†ä¸€ä¸ªå¾ˆå¥½çŽ©çš„çŽ©å…·ï¼Œå®ƒçš„å��å­—å�«â€œæœºå™¨äººâ€�ã€‚å®ƒæœ‰ä¸€ä¸ªåœ†åœ†çš„è„‘è¢‹ï¼Œä¸¤å�ªåœ†åœ†çš„çœ¼ç�›ï¼Œè¿˜æœ‰ä¸€ä¸ªåœ†åœ†çš„']
```
Nr  :é   NN)ÚlossÚlogitsrk   r-   rw  r5   )r   rn  r9  rv  ré   r–  Úslicer�  r   rr   r6   r
   rk   r-   rw  )r(   rd  rk   rl   rj   rÛ   r”  rn  rh   r•  r~   Úmodel_outputr-   Úslice_indicesrš  r™  Ú	loss_funcÚoutputs   &&&&&&&&&&,       r   r@   ÚCpmAntForCausalLM.forward¿  s  € ðR &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆà—{‘{ØØØ ØØØó
ˆ÷ ;F˜×6Ò6È<ÐXYÍ?ˆä8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ—‘˜m¨A¨}¸aÐ,?Õ@ÓAˆàˆØÒÜ(Ó*ˆIÙ˜VŸ[™[¨¨V¯[©[¸«_Ó=¸v¿{¹{È2»ÓOˆDçØ�Y ¨bÕ!1Õ1ˆFØ)-Ò)9�T�G˜fÕ$ÐE¸vÐEä%ØØØ(×8Ñ8Ø&×4Ñ4Ø#×.Ñ.ô
ð 	
r   c                ó.   € V P                   P                  # r   ©r9  rR  rW  s   &r   rX  Ú&CpmAntForCausalLM.get_input_embeddings  s   € Ø�{‰{×*Ñ*Ð*r   c                ó&   € WP                   n        R # r   r¢  )r(   r[  s   &&r   r\  Ú&CpmAntForCausalLM.set_input_embeddings  s   € Ø&0�‰Ö#r   )r9  r�  r   )	NNNNNNNNr  )rB   rC   rD   rE   Ú_tied_weights_keysr   r‘  r   r@   rX  r\  rG   rH   rI   rJ   s   @@r   r‰  r‰  ©  sI   ù‡ € ð Ð÷ó ÷eð ÷F
ñ F
ó ðF
òP+÷1ò 1r   r‰  )r‰  rH  r8  )0rF   rw   r$   Útorch.nn.functionalr   Ú
functionalr  Útorch.nnr   Ú r   r=  Úactivationsr   Úcache_utilsr   r   Ú
generationr   Úmodeling_outputsr	   r
   Úmodeling_utilsr   Úutilsr   r   Úconfiguration_cpmantr   Ú
get_loggerrB   ÚloggerÚModuler   rL   rŠ   r›   r¬   r¸   rÄ   rÎ   rå   rõ   r,  r8  rH  r‰  Ú__all__rÝ   r   r   Ú<module>r¶     ss  ðñ ã ã ß Ð Ý Ý %å &Ý !ß .Ý )ß OÝ -ß ,Ý .ð 
×	Ò	˜HÓ	%€ô�b—i‘iô ô2b#�b—i‘iô b#ôJ3+˜rŸy™yô 3+ôl˜"Ÿ)™)ô ô(˜Ÿ	™	ô ô4�R—Y‘Yô ô6*+˜RŸY™Yô *+ôZ<@�B—I‘Iô <@ô@˜Ÿ™ô ôY  R§Y¡Yô Y ôz�2—9‘9ô ð ô]˜Oó ]ó ð]ð ôN
Ð'ó N
ó ðN
ñb ðôô]1Ð-¨ó ]1óð]1ò@ H‚r   