+
    œ°³j!‰  ã                   ó  € ^ RI Ht ^ RIt^ RIHt ^RIHt ^RIH	t	H
t
 ^RIHt ^RIHt ^RIHtHt ^RIHt ^R	IHt ^R
IHtHtHtHt ^RIHt ^RIHt ^RIH t  ^RI!H"t" ^RI#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+ ^RI,H-t-H.t. ^RI/H0t0 ]Pb                  ! ]24      t3]! RR7      ] ! R R]4      4       4       t4 ! R R])4      t5 ! R R]*4      t6 ! R R]'4      t7 ! R R]$4      t8 ! R R]%4      t9]! R R7      ] ! R! R"]4      4       4       t:] ! R# R$](]:4      4       t; ! R% R&]Px                  4      t=]! R'R7       ! R( R)]&]4      4       t> ! R* R+]Px                  4      t?] ! R, R-](4      4       t@]! R.R7       ! R/ R0]:]04      4       tA. R1OtBR# )2é    )Ú	dataclassN)Úinitialization)ÚCacheÚDynamicCache)ÚGenerationMixin)Úcreate_causal_mask)ÚBaseModelOutputWithPastÚCausalLMOutputWithPast)ÚPreTrainedModel)ÚUnpack)ÚModelOutputÚauto_docstringÚcan_return_tupleÚlogging)Úmerge_with_config_defaults)Úis_torchdynamo_compiling)Úcapture_outputs)Ú	AutoModel)ÚLlamaAttentionÚLlamaDecoderLayerÚLlamaForCausalLMÚLlamaMLPÚ
LlamaModelÚLlamaRMSNormÚLlamaRotaryEmbeddingÚTransformersKwargs)Ú	CsmConfigÚCsmDepthDecoderConfig)ÚCsmGenerationMixinz:
    Base class for the model autoregressive outputs.
    )Úcustom_introc                   ó\   a € ] tR t^1t o RtRtRtRtRtRt	Rt
RtRtRtRtRtV 3R ltRtV tR# )ÚCsmOutputWithPasta=	  
loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `labels` is provided):
    Language modeling loss (for next-token prediction).
logits (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.vocab_size)`):
    Prediction scores of the language modeling head (scores for each vocabulary token before SoftMax).
past_key_values (`Cache`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`):
    It is a [`~cache_utils.Cache`] instance. For more details, see our [kv cache guide](https://huggingface.co/docs/transformers/en/kv_cache).

    Contains pre-computed hidden-states (key and values in the self-attention blocks) that can be used (see
    `past_key_values` input) to speed up sequential decoding.
depth_decoder_loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `labels` is provided):
    Language modeling loss (for next-token prediction) of the depth decoder model.
depth_decoder_logits (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.vocab_size)`):
    Prediction scores of the depth decoder (scores for each vocabulary token before SoftMax).
depth_decoder_past_key_values (`Cache`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`):
    It is a [`~cache_utils.Cache`] instance. For more details, see our [kv cache guide](https://huggingface.co/docs/transformers/en/kv_cache).
depth_decoder_hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
    Tuple of `torch.FloatTensor` (one for the output of the embeddings, if the model has an embedding layer, +
    one for the output of each layer) of shape `(batch_size, sequence_length, hidden_size)`.

    Hidden-states of the model at the output of each layer plus the optional initial embedding outputs.
depth_decoder_attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`):
    Tuple of `torch.FloatTensor` (one for each layer) of shape `(batch_size, num_heads, sequence_length,
    sequence_length)`.
backbone_loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `labels` is provided):
    Language modeling loss (for next-token prediction) of the backbone model.
Nc                ó<  <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[R,          ;R&   S[S[ P                  R3,          R,          ;R&   S[S[ P                  R3,          R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R	&   S[R,          ;R
&   S[S[ P                  R3,          R,          ;R&   S[S[ P                  R3,          R,          ;R&   S[ P                  R,          ;R&   # )é   NÚlossÚlogitsÚpast_key_values.Úhidden_statesÚ
attentionsÚdepth_decoder_lossÚdepth_decoder_logitsÚdepth_decoder_past_key_valuesÚdepth_decoder_hidden_statesÚdepth_decoder_attentionsÚbackbone_loss)ÚtorchÚFloatTensorr   Útuple)ÚformatÚ__classdict__s   "€Úd/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/csm/modular_csm.pyÚ__annotate__ÚCsmOutputWithPast.__annotate__1   s=  ø‡ ‚ ñF ×
Ñ
˜dÕ
"Ñ)ñG ñH ×Ñ Õ$Ñ+ñI ñJ ˜T•\Ñ(ñK ñL ™×*Ñ*¨CÐ/Õ0°4Õ7Ñ>ñM ñN ‘e×'Ñ'¨Ð,Õ-°Õ4Ñ;ñO ñP ×)Ñ)¨DÕ0Ñ7ñQ ñR  ×+Ñ+¨dÕ2Ñ9ñS ñT $)¨4¥<Ñ6ñU ñV "'¡u×'8Ñ'8¸#Ð'=Õ!>ÀÕ!EÑLñW ñX $¡E×$5Ñ$5°sÐ$:Õ;¸dÕBÑIñY ñZ ×$Ñ$ tÕ+Ñ2ò[ ó    © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r4   s   @r5   r"   r"   1   sP   ø‡ € ñð8 &*€DØ'+€FØ$(€OØ:>€MØ7;€JØ37ÐØ59ÐØ26Ð!ØHLÐØEIÐØ.2€M÷[ ƒ r8   r"   c                   ó   € ] tR t^btRtR# )Ú
CsmRMSNormr9   N©r:   r;   r<   r=   r@   r9   r8   r5   rC   rC   b   ó   † Ûr8   rC   c                   ó   € ] tR t^ftRtR# )ÚCsmRotaryEmbeddingr9   NrD   r9   r8   r5   rG   rG   f   rE   r8   rG   c                   ó   € ] tR t^jtRtR# )ÚCsmMLPr9   NrD   r9   r8   r5   rI   rI   j   rE   r8   rI   c                   ó   € ] tR t^ntRtR# )ÚCsmAttentionr9   NrD   r9   r8   r5   rK   rK   n   rE   r8   rK   c                   ó   € ] tR t^rtRtR# )ÚCsmDecoderLayerr9   NrD   r9   r8   r5   rM   rM   r   rE   r8   rM   z[
    The bare Csm Model outputting raw hidden-states without any specific head on top.
    c                   óš   a a€ ] tR t^vt oRtR
tRtR.tR.tRt	Rt
RtRtR]R]/t]P"                  ! 4       V 3R l4       tV3R ltR	tVtV ;t# )ÚCsmPreTrainedModelÚmodelTrM   r'   r(   r)   c                ó  <€ \         SV `  V4       \        V\        4      '       d_   VP                  p\        V^,
          4       F:  p\        P                  ! VP                  RV P                  P                  R7       K<  	  R# \        V\        4      '       dg   \        P                  ! VP                  \        P                  ! V P                  P                  4      V P                  P                   ,          4       R# R# )é   g        )ÚmeanÚstdN)ÚsuperÚ_init_weightsÚ
isinstanceÚCsmCodebooksHeadÚnum_codebooksÚrangeÚinitÚnormal_ÚweightÚconfigÚinitializer_rangeÚCsmBackboneModelEmbeddingsÚcopy_Úaudio_tokens_offsetsr0   ÚarangeÚ
vocab_size)ÚselfÚmodulerY   ÚiÚ	__class__s   &&  €r5   rV   Ú CsmPreTrainedModel._init_weights�   s§   ø€ ä‰Ñ˜fÔ%Ü�fÔ.×/Ò/Ø"×0Ñ0ˆMÜ˜=¨1Õ,Ö-�Ü—’˜VŸ]™]°¸$¿+¹+×:WÑ:W×Xó .ä˜Ô :×;Ò;Ü�JŠJ�v×2Ñ2´E·L²LÀÇÁ×AZÑAZÓ4[Ð^b×^iÑ^i×^tÑ^tÕ4tÖuñ <r8   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # ©r$   r^   )r   )r3   r4   s   "€r5   r6   ÚCsmPreTrainedModel.__annotate__v   s   ø‡ ‚ ñ Ñò r8   r9   )ÚaudioÚtext)r:   r;   r<   r=   Úbase_model_prefixÚinput_modalitiesÚsupports_gradient_checkpointingÚ_no_split_modulesÚ_skip_keys_device_placementÚ_supports_flash_attnÚ_supports_sdpaÚ_can_compile_fullgraphÚ_supports_attention_backendrM   rK   Ú_can_record_outputsr0   Úno_gradrV   r?   r@   rA   Ú__classcell__©rh   r4   s   @@r5   rO   rO   v   sy   ù‡ € ð  ÐØ(ÐØ&*Ð#Ø*Ð+ÐØ#4Ð"5ÐØÐØ€Nð "ÐØ"&Ðà˜Ø�lðÐð
 ‡]‚]ƒ_ôvó ðv÷5 … r8   rO   c                   ór   a a€ ] tR t^št oV 3R lt]]]RV3R lR ll4       4       4       tV3R lt	Rt
VtV ;t# )ÚCsmDepthDecoderModelc                ó  <€ \         SV `  V4       \        P                  ! VP                  VP
                  ,          VP                  4      V n        \        P                  ! VP                  VP                  R R7      V n
        R# ©F)ÚbiasN)rU   Ú__init__ÚnnÚ	EmbeddingrY   rd   Úbackbone_hidden_sizeÚembed_tokensÚLinearÚhidden_sizeÚinputs_embeds_projector©re   r^   rh   s   &&€r5   r�   ÚCsmDepthDecoderModel.__init__ž   s]   ø€ Ü‰Ñ˜Ô ÜŸLšL¨&×*>Ñ*>À×ARÑARÕ*RÐU[×UpÑUpÓqˆÔÜ')§y¢y°×1LÑ1LÈf×N`ÑN`ÐglÔ'mˆÖ$r8   c                ó6  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          RS[R,          R	S[S[,          R
S[S[	,          /	# )r$   Ú	input_idsNÚbackbone_last_hidden_stateÚattention_maskÚposition_idsr'   Úinputs_embedsÚ	use_cacheÚkwargsÚreturn)
r0   Ú
LongTensorr1   ÚTensorr   Úboolr   r   r2   r	   )r3   r4   s   "€r5   r6   Ú!CsmDepthDecoderModel.__annotate__¦   s¹   ø€ ÷ N
ñ N
á×#Ñ# dÕ*ðN
ñ %*×$5Ñ$5¸Õ$<ðN
ñ Ÿ™ tÕ+ð	N
ñ
 ×&Ñ&¨Õ-ðN
ñ  �ðN
ñ ×(Ñ(¨4Õ/ðN
ñ ˜$•;ðN
ñ Ñ+Õ,ðN
ñ 
Ñ(Õ	(ñN
r8   c                ó`  € Ve(   \        4       '       g   \        P                  R4       RpVRJ VRJ,          '       d   \        R4      hV'       d   Vf   \	        V P
                  R7      pVe   VP                  4       M^ p	Ve   VP                  ^,          MVP                  ^,          p
Ve   VP                  MVP                  p\        P                  ! W™V
,           VR7      pVf‹   \        P                  ! V^,
          ^ R7      pWÀP                  ,          pV P                  W,           4      pV^ ,          ^ 8H  pVe   W&R&   M-\        4       '       g   V'       d   \        P                  R4       V P                  V4      p\!        V P
                  VVVVR7      pTpVP#                  ^ 4      pV P%                  VVR	7      pV P&                  RV P
                  P(                    F  pV! V3R
VRVRVRVRV/VB pK  	  V P+                  V4      p\-        TV'       d   VR7      # RR7      # )a*  
backbone_last_hidden_state (`torch.FloatTensor` of shape `(batch_size, backbone_hidden_size)`, *optional*):
    The last hidden state of the backbone model. Such input is required when the first codebook token (the one generated by the backbone model)
    is provided in the `input_ids` argument.
NzÕCustom `position_ids` were provided but will be ignored. CSM depth decoder automatically determines position_ids and as it requires them to be identical across the batch, the provided position_ids will be ignored.z;You must specify exactly one of input_ids or inputs_embeds.)r^   ©Údevice)ÚminzvWhen the first codebook token is provided, `backbone_last_hidden_state` should also be provided for correct inference.)r^   r�   rŽ   r'   r�   )r�   rŽ   r�   r'   r‘   Úposition_embeddings)Úlast_hidden_stater'   )ºNNNr   )r   ÚloggerÚwarning_onceÚ
ValueErrorr   r^   Úget_seq_lengthÚshaperš   r0   rc   Úclamprd   r…   Úwarningrˆ   r   Ú	unsqueezeÚ
rotary_embÚlayersÚnum_hidden_layersÚnormr	   )re   rŒ   r�   rŽ   r�   r'   r�   r‘   r’   Úpast_seen_tokensÚinputs_seq_lengthrš   Úcodebook_idxsÚoffsetÚinput_ids_are_first_codebookÚcausal_maskr(   rœ   Údecoder_layers   &&&&&&&&,          r5   ÚforwardÚCsmDepthDecoderModel.forward£   s;  € ð& Ò#Ô,D×,FÒ,FÜ×Ñðwôð  ˆLØ˜Ð -°tÐ";×<Ô<ÜÐZÓ[Ð[ç˜Ò0Ü*°$·+±+Ô>ˆOà?NÒ?Z˜?×9Ñ9Ô;Ð`aÐØ6CÒ6O˜M×/Ñ/°Ö2ÐU^×UdÑUdÐefÕUgÐØ)6Ò)B�×%Ò%È	×HXÑHXˆÜ—|’|Ð$4ÐIZÕ6ZÐciÔjˆàÒ Ü!ŸKšK¨°qÕ(8¸aÔ@ˆMØ"§_¡_Õ4ˆFØ ×-Ñ-¨iÕ.@ÓAˆMà+7¸­?¸aÑ+?Ð(Ø)Ò5Ø&@˜dÒ#ä/×1Ò1×6RÜ—N‘Nð Qôð ×4Ñ4°]ÓCˆä(Ø—;‘;Ø'Ø)Ø+Ø%ô
ˆð &ˆð $×-Ñ-¨aÓ0ˆØ"Ÿo™o¨mÈ,˜oÓWÐà!Ÿ[™[Ð)H¨4¯;©;×+HÑ+HÓIˆMÙ)Øñà*ðð *ðð !0ð	ð
 $ðð %8ðð ñŠMñ Jð Ÿ	™	 -Ó0ˆÜ&Ø+ß/8˜Oô
ð 	
à>Bô
ð 	
r8   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # rk   )r   )r3   r4   s   "€r5   r6   r—   š   s   ø‡ ‚ á!Ñ!ò r8   )r…   rˆ   )NNNNNNN)r:   r;   r<   r=   r�   r   r   r   r²   r?   r@   rA   rz   r{   s   @@r5   r}   r}   š   s>   ù‡ € õnð
  ØØ÷N
ñ N
ó ó ó  ðN
÷ … r8   r}   c                   ó<   a a€ ] tR t^÷t oV 3R ltRR ltRtVtV ;t# )rX   c                ó²   <€ \         SV `  4        W n        \        P                  ! \
        P                  ! V P                  ^,
          W4      4      V n        R# )rR   N)rU   r�   rY   r‚   Ú	Parameterr0   Úemptyr]   )re   r‡   rY   rd   rh   s   &&&&€r5   r�   ÚCsmCodebooksHead.__init__ø   s:   ø€ Ü‰ÑÔØ*ÔÜ—l’l¤5§;¢;¨t×/AÑ/AÀAÕ/EÀ{Ó#_Ó`ˆŽr8   c           	     ó>  € V^,
          pV P                   V,          p\        VP                  ^ ,          4       Uu. uF=  p\        P                  P                  VRVR3,          W4,          P                  4      NK?  	  pp\        P                  ! V^R7      pV# u upi )rR   rž   ©Údim)	r]   rZ   r£   r‚   Ú
functionalÚlinearÚTr0   Ústack)re   r(   Úcodebook_indicesÚcodebook_weightÚcodebook_idxs   &&&  r5   r²   ÚCsmCodebooksHead.forwardý   s‘   € à+¨aÕ/ÐØŸ+™+Ð&6Õ7ˆô !& o×&;Ñ&;¸AÕ&>Ô ?ó
á ?�ô �M‰M× Ñ  ¨q°,ÀÐ/AÕ!BÀOÕDa×DcÑDcÖdÙ ?ð 	ð 
ô Ÿš M°qÔ9ˆàÐùò
s   »AB)rY   r]   ©N©	r:   r;   r<   r=   r�   r²   r@   rA   rz   r{   s   @@r5   rX   rX   ÷   s   ù‡ € õa÷
ô r8   rX   a$  
    The CsmDepthDecoder Model transformer, with a [`CsmCodebooksHead`] on top,
    which can be seen a position-specific language modeling head, allowing to use a different linear layer for each codebook
    (e.g. position 0 is the first codebook and uses the first codebook head, etc.)
    c                   ó„   a a€ ] tR tRt oRtRtRtV 3R ltR	V3R lV 3R lllt]	]
R
V3R lR ll4       4       tRtVtV ;t# )ÚCsmDepthDecoderForCausalLMi  Nc                óª   <€ \         SV `  V4       V =\        VP                  VP
                  VP                  4      V n        \        V4      V n	        R # rÅ   )
rU   r�   Úlm_headrX   r‡   rY   rd   Úcodebooks_headr}   rP   r‰   s   &&€r5   r�   Ú#CsmDepthDecoderForCausalLM.__init__  sE   ø€ Ü‰Ñ˜Ô ØˆLÜ.¨v×/AÑ/AÀ6×CWÑCWÐY_×YjÑYjÓkˆÔÜ)¨&Ó1ˆŽ
r8   c                óÀ   <€ V ^8„  d   QhRS[ P                  RS[R,          RS[R,          RS[ P                  R,          RS[ P                  R,          RS[R,          /# )r$   rŒ   Únext_sequence_lengthNr'   rŽ   r�   Úis_first_iteration)r0   r”   Úintr   r1   r–   )r3   r4   s   "€r5   r6   Ú'CsmDepthDecoderForCausalLM.__annotate__  so   ø€ ÷ ñ á×#Ñ#ðñ " D�jðñ  �ð	ñ
 ×(Ñ(¨4Õ/ðñ ×(Ñ(¨4Õ/ðñ ! 4�Kñr8   c                ó‚   <€ \         S	V `  ! WW4V3/ VB pV'       g   VP                  R 4       VP                  R4       V# )r�   r�   )rU   Úprepare_inputs_for_generationÚpop)
re   rŒ   rÎ   r'   rŽ   r�   rÏ   r’   Úmodel_inputsrh   s
   &&&&&&&, €r5   rÓ   Ú8CsmDepthDecoderForCausalLM.prepare_inputs_for_generation  sM   ø€ ô ‘wÒ<Ø¨_Èmñ
Ø_eñ
ˆ÷ "Ø×ÑÐ9Ô:ð 	×Ñ˜Ô(àÐr8   c                óˆ  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          RS[ P                  R,          R	S[R,          R
S[S[ P                  ,          RS[S[,          RS[	S[
,          /# )r$   rŒ   Nr�   rŽ   r�   r'   r�   Úlabelsr‘   Úlogits_to_keepr’   r“   )r0   r”   r1   r•   r   r–   rÐ   r   r   r2   r
   )r3   r4   s   "€r5   r6   rÑ   5  sã   ø€ ÷ A
ñ A
á×#Ñ# dÕ*ðA
ñ %*×$5Ñ$5¸Õ$<ðA
ñ Ÿ™ tÕ+ð	A
ñ
 ×&Ñ&¨Õ-ðA
ñ  �ðA
ñ ×(Ñ(¨4Õ/ðA
ñ × Ñ  4Õ'ðA
ñ ˜$•;ðA
ñ ™eŸl™lÕ*ðA
ñ Ñ+Õ,ðA
ñ 
Ñ'Õ	'ñA
r8   c
                ó  € Ve   VP                  4       M^ pVe   VP                  ^,          MVP                  ^,          pVe   VP                  MVP                  p\        P                  ! WÍR7      V,           pV P
                  ! RRVRVRVRVRVRVR	V/V
B pV^ ,          p\        V	\        4      '       d#   V	^ 8X  d   \        ^R4      pM\        V	) R4      pMT	pV P                  VR
VR
3,          VV,          4      pVP                  4       pRpVeF   VR,          P                  4       pV P                  ! RRVRRRV P                  P                  RV/V
B p\        VVVP                  VP                   VP"                  R7      # )a®  
backbone_last_hidden_state (`torch.FloatTensor` of shape `(batch_size, backbone_hidden_size)`, *optional*):
    The last hidden state of the backbone model. Such input is required when the first codebook token (the one generated by the backbone model)
    is provided in the `input_ids` argument.
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]`.
Nr™   rŒ   r�   rŽ   r�   r'   r�   r‘   rž   r&   rØ   rd   Úshift_labels)r%   r&   r'   r(   r)   r9   ).ºrR   NN)r¢   r£   rš   r0   rc   rP   rW   rÐ   ÚslicerË   Ú
contiguousÚloss_functionr^   rd   r
   r'   r(   r)   )re   rŒ   r�   rŽ   r�   r'   r�   rØ   r‘   rÙ   r’   r«   Úseq_lenrš   rÁ   Úoutputsr(   Úslice_indicesr&   r%   rÛ   s   &&&&&&&&&&,          r5   r²   Ú"CsmDepthDecoderForCausalLM.forward3  sÅ  € ð0 @OÒ?Z˜?×9Ñ9Ô;Ð`aÐØ,9Ò,E�-×%Ñ% aÖ(È9Ï?É?Ð[\ÕK]ˆØ)6Ò)B�×%Ò%È	×HXÑHXˆÜ Ÿ<š<¨Ô?ÐBRÕRÐà—*’*ñ 	
Øð	
à'Að	
ð *ð	
ð &ð		
ð
 ,ð	
ð (ð	
ð  ð	
ð ñ	
ˆð   �
ˆä�n¤c×*Ò*Ø Ô"ä % a¨£‘ä % ~ o°tÓ <‘à*ˆMà×$Ñ$ ]°1°mÀQÐ3FÕ%GÐIYÐZgÕIhÓiˆØ×"Ñ"Ó$ˆàˆØÒØ! '�?×5Ñ5Ó7ˆLØ×%Ò%ñ ØðØ&*ðØ7;·{±{×7MÑ7MðØ\hðØlrñˆDô &ØØØ#×3Ñ3Ø!×/Ñ/Ø×)Ñ)ô
ð 	
r8   )rË   rP   )NNNNF)	NNNNNNNNr   )r:   r;   r<   r=   Ú_tied_weights_keysÚ_tp_planÚ_pp_planr�   rÓ   r   r   r²   r@   rA   rz   r{   s   @@r5   rÈ   rÈ     sP   ù‡ € ð ÐØ€HØ€Hõ2÷õ ð, Ø÷A
ñ A
ó ó ÷A
ð A
r8   rÈ   c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )r`   iy  c                ó>  <€ \         SV `  4        \        P                  ! VP                  VP
                  ,          VP                  4      V n        \        P                  ! \        P                  ! VP                  4      VP
                  ,          R R7      V n        R# )F)Ú
persistentN)rU   r�   r‚   rƒ   rY   Úcodebook_sizer‡   Úembed_audio_tokensÚBufferr0   rc   rb   r‰   s   &&€r5   r�   Ú#CsmBackboneModelEmbeddings.__init__z  sj   ø€ Ü‰ÑÔÜ"$§,¢,°×0DÑ0DÀv×G[ÑG[Õ0[Ð^d×^pÑ^pÓ"qˆÔÜ$&§I¢IÜ�LŠL˜×-Ñ-Ó.°×1EÑ1EÕEÐRWô%
ˆÖ!r8   c                ól   € V P                  WP                  ,           4      pVP                  ^R7      pV# )r$   r»   )rë   rb   Úsum)re   rŒ   r�   s   && r5   r²   Ú"CsmBackboneModelEmbeddings.forward�  s4   € Ø×/Ñ/°	×<UÑ<UÕ0UÓVˆØ%×)Ñ)¨aÐ)Ó0ˆØÐr8   )rb   rë   rÆ   r{   s   @@r5   r`   r`   y  s   ù‡ € õ
÷ò r8   r`   c                   ó\   a a€ ] tR tRt oV 3R lt]]]V 3R l4       4       4       tRt	Vt
V ;t# )ÚCsmBackboneModeli‡  c                óF   <€ \         SV `  V4       \        V4      V n        R # rÅ   )rU   r�   r`   r…   r‰   s   &&€r5   r�   ÚCsmBackboneModel.__init__‰  s   ø€ Ü‰Ñ˜Ô Ü6°vÓ>ˆÖr8   c                ó$   <€ \         SV `  ! R/ VB # )aæ  
input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length, num_codebooks) or (batch_size, sequence_length)`):
    1. (batch_size, sequence_length): corresponds to the input sequence prepared with the processor from the text prompt. Such input
    requires `input_values` to be provided so that audio can be encoded in codebook tokens and then merged with the text tokens.

    2. (batch_size, sequence_length, num_codebooks): codebook tokens generated during the autoregressive decoding. Such input is not meant to be used by end users.

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

    [What are input IDs?](../glossary#input-ids)
r9   )rU   r²   )re   Úsuper_kwargsrh   s   &,€r5   r²   ÚCsmBackboneModel.forward�  s   ø€ ô  ‰wŠÑ. Ñ.Ð.r8   )r…   )r:   r;   r<   r=   r�   r   r   r   r²   r@   rA   rz   r{   s   @@r5   rò   rò   ‡  s3   ù‡ € õ?ð  ØØô/ó ó ó  ÷/ð /r8   rò   zË
    The Csm model consists of two llama-like auto-regressive transformer models: a backbone model that predicts the first codebook token and a depth decoder that predicts the other codebook tokens.
    c                   óÄ   a a€ ] tR tRt oRR/tV 3R ltR tR t]V 3R l4       t	V 3R lt
RV3R	 lR
 lltRV3R lV 3R lllt]]RV3R lR ll4       4       tRtVtV ;t# )ÚCsmForConditionalGenerationi   z5backbone_model.embed_tokens.embed_audio_tokens.weightz'depth_decoder.model.embed_tokens.weightc                óò  <€ \         SV `  V4       VP                  V n        \        P                  ! VP
                  VP                  R R7      V n        \        P                  ! VP                  VP
                  4      V n	        \        P                  V4      V n        \        P                  VP                  4      V n        \         P"                  ! VP$                  4      V n        V P)                  4        R# r   )rU   r�   rd   r‚   r†   r‡   rÊ   rƒ   Útext_vocab_sizeÚembed_text_tokensrò   Ú_from_configÚbackbone_modelrÈ   Údepth_decoder_configÚdepth_decoderr   Úfrom_configÚcodec_configÚcodec_modelÚ	post_initr‰   s   &&€r5   r�   Ú$CsmForConditionalGeneration.__init__ª  s«   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒÜ—y’y ×!3Ñ!3°V×5FÑ5FÈUÔSˆŒÜ!#§¢¨f×.DÑ.DÀf×FXÑFXÓ!YˆÔÜ.×;Ñ;¸FÓCˆÔÜ7×DÑDÀV×E`ÑE`ÓaˆÔÜ$×0Ò0°×1DÑ1DÓEˆÔØ�‰Ör8   c                ó.   € V P                   P                  # rÅ   ©rþ   r…   )re   s   &r5   Úget_input_embeddingsÚ0CsmForConditionalGeneration.get_input_embeddings´  s   € Ø×"Ñ"×/Ñ/Ð/r8   c                ó&   € WP                   n        R # rÅ   r  )re   Úvalues   &&r5   Úset_input_embeddingsÚ0CsmForConditionalGeneration.set_input_embeddings·  s   € Ø+0×ÑÖ(r8   c                ó  <€ VP                  R R4      '       d   \        S
V `  ! V/ VB w  r4M\        S
V `  ! V/ VB pRp\        V4      p\	        VP
                  4      P                  4        UUu/ uF#  w  rxVP                  V4      '       g   K  WvR VbK%  	  p	pp\	        VP                  P
                  4      P                  RR/V	C4       V	 F  p\        VP
                  WW,           4       K!  	  R V9   d   VX3# V# u uppi )Úoutput_loading_infoFÚdepth_decoder_NÚ_from_model_config)ÚgetrU   Úfrom_pretrainedÚlenÚvarsÚgeneration_configÚitemsÚ
startswithr   ÚupdateÚdelattr)ÚclsÚargsr’   rP   Úloading_infoÚprefixÚ
prefix_lenÚattrr  Údepth_decoder_attrsrh   s   &*,       €r5   r  Ú+CsmForConditionalGeneration.from_pretrainedº  s  ø€ à�:‰:Ð+¨U×3Ò3Ü"'¡'Ò"9¸4Ð"JÀ6Ñ"JÑˆE�<ä‘GÒ+¨TÐ<°VÑ<ˆEð "ˆÜ˜“[ˆ
ô  $ E×$;Ñ$;Ó<×BÑBÔDô
áD‘�Ø�‰˜v×&ô %ˆD�Ð˜uÒ$ÙDð 	ñ 
ô 	ˆU× Ñ ×2Ñ2Ó3×:Ñ:Ð<PÐRWÐ;oÐ[nÐ;oÔpó (ˆDÜ�E×+Ñ+¨V­]Ö;ñ (ð ! FÔ*Ø˜,Ð&Ð&àˆLùó
s   Á0D Â	D c                ó  <€ R pV P                   P                  P                  4       pVP                  RR4       VP	                  4        F"  w  rV\        V P                  W5,           V4       K$  	  \        SV `  ! V/ VB  R# )r  Útransformers_versionN)r   r  Úto_diff_dictrÔ   r  ÚsetattrrU   Úsave_pretrained)re   r  r’   r  r!  r   r  rh   s   &*,    €r5   r'  Ú+CsmForConditionalGeneration.save_pretrainedÕ  sq   ø€ à!ˆØ"×0Ñ0×BÑB×OÑOÓQÐØ×ÑÐ 6¸Ô=Ø.×4Ñ4Ö6‰KˆDÜ�D×*Ñ*¨F­M¸5ÖAñ 7ô 	‰Ò Ð0¨Ô0r8   c                óâ   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          /# )r$   rŒ   NÚinput_valuesÚinput_values_cutoffsrØ   r“   )r0   r•   )r3   r4   s   "€r5   r6   Ú(CsmForConditionalGeneration.__annotate__ß  sx   ø€ ÷ PBñ PBá—<‘< $Õ&ðPBñ —l‘l TÕ)ðPBñ $Ÿl™l¨TÕ1ð	PBñ
 —‘˜tÕ#ðPBñ 
�‰˜Õ	ñPBr8   c                ó®  € V P                  V4      pVEe¢   \        P                  P                  VR4      pW3^ 8¬  ,          P	                  4       pWf^ 8„  ,          p\
        P                  ! VP                  4       VP                  R7      P                  \        V4      R4      pWvP                  ^4      8  p\
        P                  ! 4       ;_uu_ 4        . p\        W#4       F»  w  ršWª^ 8¬  ,          p
\        V
P                  ^ ,          ^,
          4       F„  pW«,          pW«^,           ,          pV	RWÍ13,          pV P                   P#                  VP                  ^ 4      4      pVP$                  P'                  ^R4      pVP)                  V^ ,          4       K†  	  K½  	  \        R V 4       4      p\
        P*                  ! V Uu. uF?  p\        P                  P                  V^ ^ ^ VVP                  ^ ,          ,
          34      NKA  	  up4      pV P                   P-                  V4      pRRR4       V P.                  P0                  pVV8H  pV P2                  P5                  X4      pVX,          VV&   \
        P6                  ! ^^V P.                  P8                  3VP                  \
        P:                  R7      V P.                  P<                  ,          pV P2                  P5                  V4      P?                  ^4      pWP.                  P@                  8H  pVPC                  VPE                  4       ^4      VV&   Veu   VP                  R4      PC                  ^^V P.                  P8                  4      pVV,          VV&   VVV&   VR8H  PG                  RR7      pRVV^ ,          V^,          R3&   TpR	VR
V/# u upi   + '       g   i     ELž; i)a8  
Merges the input_ids and input_values to produce a single inputs_embeds tensor:
1 - Infers the codec model on the input_values to retrieve codebook token.
2 - Embeds codebook tokens and places them at the correct positions in the inputs_embeds tensor.
3 - If labels are provided, expands them to match codebook dimensions and position the target codebook tokens in the inputs_embeds tensor.

Args:
    input_ids (`torch.Tensor` of shape `(batch_size, sequence_length)`):
        The input ids to embed.
    input_values (`torch.Tensor` of shape `(batch_size, channels, audio_sequence_length)`):
        The audio input values to embed.
    input_values_cutoffs (`torch.Tensor` of shape `(batch_size, max_num_audio)`):
        The cutoffs of the audio input values relative to its batch index, padded with -1 when no audio.
Nr™   .c              3   óF   "  € T F  qP                   ^ ,          x € K  	  R# 5i)r   N)r£   )Ú.0Úels   & r5   Ú	<genexpr>ÚQCsmForConditionalGeneration._merge_input_ids_with_input_values.<locals>.<genexpr>  s   é € Ð&OÑ=N°r§x¡x°§{¢{Ó=Nùs   ‚!)rš   ÚdtypeT©Úas_tuplerÜ   r�   rØ   ©rR   r   éÿÿÿÿi›ÿÿÿéœÿÿÿ)$rü   r‚   r½   ÚpadÚdiffr0   rc   Úmaxrš   Úexpandr  r¦   ry   ÚziprZ   r£   r  ÚencodeÚaudio_codesÚ	transposeÚappendrÀ   Úget_audio_codes_maskr^   Úaudio_token_idrþ   r…   ÚonesrY   ÚlongÚcodebook_eos_token_idÚsqueezeÚaudio_eos_token_idÚrepeatrï   Únonzero)re   rŒ   r*  r+  rØ   r�   Úaudio_lengthsÚinput_values_maskÚaudio_tokens_listÚbatch_input_valuesÚbatch_input_values_cutoffsrg   Ú	start_idxÚend_idxÚaudio_batchÚcodec_outputsÚcodebook_idsÚmax_audio_framesr0  Úbatched_audio_token_idsÚaudio_codes_maskrC  Úaudio_token_maskÚaudio_embedsÚaudio_eos_frame_idsÚaudio_eos_embedsÚaudio_eos_token_maskÚlabels_expandedÚ depth_decoder_ignore_frames_idxss   &&&&&                        r5   Ú"_merge_input_ids_with_input_valuesÚ>CsmForConditionalGeneration._merge_input_ids_with_input_valuesß  s|  € ð* ×.Ñ.¨yÓ9ˆàÓ#ä#%§=¡=×#4Ñ#4Ð5IÈ6Ó#RÐ Ø0ÈÑ1JÕK×PÑPÓRˆMØ)¸!Ñ*;Õ<ˆMÜ %§¢Ð-A×-EÑ-EÓ-GÐP\×PcÑPcÔ d× kÑ kÜ�MÓ" Bó!Ðð !2×4KÑ4KÈAÓ4NÑ NÐô
 —’—•Ø$&Ð!ÜFIÈ,ÖFmÑBÐ&Ø1KÐjkÑLkÕ1lÐ.Ü"Ð#=×#CÑ#CÀAÕ#FÈÕ#JÖK˜Ø$>Õ$A˜	Ø"<À½UÕ"C˜Ø&8¸¸iÐ>OÐ9OÕ&P˜Ø(,×(8Ñ(8×(?Ñ(?À×@UÑ@UÐVWÓ@XÓ(Y˜Ø'4×'@Ñ'@×'JÑ'JÈ1ÈbÓ'Q˜Ø)×0Ñ0°¸aµÖAó Lñ Gnô $'Ñ&OÑ=NÓ&OÓ#OÐ Ü*/¯+ª+Ù`qÓrÑ`qÐZ\”R—]‘]×&Ñ& r¨A¨q°!Ð5EÈÏÉÐQRÍÕ5SÐ+TÖUÑ`qÑró+Ð'ð $(×#3Ñ#3×#HÑ#HÐIZÓ#[Ð ÷! !ð$ "Ÿ[™[×7Ñ7ˆNØ(¨NÑ:Ðà×.Ñ.×;Ñ;Ð<SÓTˆLØ.:Ð;KÕ.LˆMÐ*Ñ+ô —
’
˜A˜q $§+¡+×";Ñ";Ð<ÀY×EUÑEUÔ]b×]gÑ]gÔhØ—+‘+×3Ñ3õ4ð  ð  $×2Ñ2×?Ñ?Ð@SÓT×\Ñ\Ð]^Ó_Ðà#,·±×0NÑ0NÑ#NÐ Ø2B×2IÑ2IÐJ^×JbÑJbÓJdÐfgÓ2hˆMÐ.Ñ/ð Ò!Ø"(×"2Ñ"2°2Ó"6×"=Ñ"=¸aÀÀDÇKÁK×D]ÑD]Ó"^�Ø4KÐL\Õ4]�Ð 0Ñ1Ø8K�Ð 4Ñ5à4:¸d±N×3KÑ3KÐUYÐ3KÓ3ZÐ0Øpt�Ð @ÀÕ CÐEeÐfgÕEhÐjlÐ lÑmØ(�à °¸&ÐAÐAùò= s÷ !—�ús    ÃC3OÇAN>È"OÎ>OÏO	c                ó¬   <€ V ^8„  d   QhRS[ P                  RS[R,          RS[R,          RS[ P                  R,          RS[ P                  R,          /# )r$   rŒ   rÎ   Nr'   rŽ   r�   )r0   r”   rÐ   r   r1   )r3   r4   s   "€r5   r6   r,  1  sa   ø€ ÷ ñ á×#Ñ#ðñ " D�jðñ  �ð	ñ
 ×(Ñ(¨4Õ/ðñ ×(Ñ(¨4Õ/ñr8   c                óZ  <€ \         S	V `  ! R
R VRVRVRVRV/VB pVeŒ   VP                  ^8X  d{   VP                  R4      fh   V P	                  VVP                  R4      VP                  R4      VP                  R4      R	7      pVP                  RVR,          RVR,          R R/4       V# )rŒ   rÎ   r'   rŽ   r�   Nr*  r+  rØ   )rŒ   r*  r+  rØ   r9   )rU   rÓ   Úndimr  r_  r  )
re   rŒ   rÎ   r'   rŽ   r�   r’   rÕ   Úmerged_inputsrh   s
   &&&&&&,  €r5   rÓ   Ú9CsmForConditionalGeneration.prepare_inputs_for_generation1  sâ   ø€ ô ‘wÒ<ñ 
Øð
à!5ð
ð ,ð
ð *ð	
ð
 (ð
ð ñ
ˆð Ò  Y§^¡^°qÔ%8¸\×=MÑ=MÈoÓ=^Ò=fØ ×CÑCØ#Ø#ŸZ™Z¨Ó7Ø%+§Z¡ZÐ0FÓ%GØ—z‘z (Ó+ð	 Dó ˆMð ×ÑØ  -°Õ"@À(ÈMÐZbÕLcÐepÐrvÐwôð Ðr8   c                ó°  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          R	S[ P                  R,          R
S[R,          RS[S[ P                  ,          RS[S[,          RS[	S[
,          /# )r$   rŒ   Nr*  rŽ   r+  r�   r'   r�   rØ   r‘   rÙ   r’   r“   )r0   r”   r•   r   r1   r–   rÐ   r   r   r2   r"   )r3   r4   s   "€r5   r6   r,  R  sõ   ø€ ÷ Y
ñ Y
á×#Ñ# dÕ*ðY
ñ —l‘l TÕ)ðY
ñ Ÿ™ tÕ+ð	Y
ñ
 $Ÿl™l¨TÕ1ðY
ñ ×&Ñ&¨Õ-ðY
ñ  �ðY
ñ ×(Ñ(¨4Õ/ðY
ñ × Ñ  4Õ'ðY
ñ ˜$•;ðY
ñ ™eŸl™lÕ*ðY
ñ Ñ+Õ,ðY
ñ 
Ñ"Õ	"ñY
r8   c                ór  € Ve8   VP                   ^8X  d'   V P                  WWH4      pVR,          pVR,          pRpV P                  ! RRVRVRVRVRVRV	/VB pV^ ,          p\        V
\        4      '       d   \        V
) R4      MT
pV P                  VR	VR	3,          4      pRpRpRpRpVEe   VR,          pV P                  ! RR
VRVRV P                  P                  /VB pVR,          R8H  P                  RR7      ( pVV,          RRV P                  P                  ^,
          13,          p\        P                  P                  VR^ R7      pVP                  RR7      pVV^ ,          V^,          ^,
          R	3,          pVV,          pV P                   ! RRVRVRV	RRRV/VB pVP"                  pVV,           p\%        TTTTVP&                  VP(                  VP*                  Ve   VP,                  MRVe   VP&                  MRVe   VP(                  MRVe   VP*                  R7      # RR7      # )a`  
input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length, num_codebooks) or (batch_size, sequence_length)`):
    1. (batch_size, sequence_length): corresponds to the input sequence prepared with the processor from the text prompt. Such input
    requires `input_values` to be provided so that audio can be encoded in codebook tokens and then merged with the text tokens.

    2. (batch_size, sequence_length, num_codebooks): codebook tokens generated during the autoregressive decoding. Such input is not meant to be used by end users.

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

    [What are input IDs?](../glossary#input-ids)
input_values_cutoffs (`torch.Tensor` of shape `(batch_size, max_num_audio)`, *optional*):
    Specify the end positions of audio segments within each batch entry, relative to the concatenated audio input.
    If a batch entry has fewer segments than the maximum, it is padded with -1. For example, in a batch of 2 sequences
    where the first contains 2 audio segments of length l1, and the second contains 1 audio segment of length l2,
    the input_values_cutoffs would be: [[l1, 2 * l1], [l2, -1]].
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the masked language modeling loss. Indices should be in `[config.audio_token_id, -100, -101]`.
    Requires targeted `input_values` to be provided as audio tokens will be inferred from it using the `codec_model`.
    - `config.audio_token_id` indicates an audio frames (considering sequence length elements as frames)
    - `-100` will be ignored in the loss computation
    - `-101` indicates the audio frame will be used only for the backbone model (using the first codebook token as labels)

    Such labels can be prepared using `output_labels=True` when calling [`CsmProcessor`].
logits_to_keep (`int` or `torch.Tensor`, *optional*):
    Kept for compatibility. Does not support another value than:
    1. `0`, which is equivalent to keeping all logits, used in the training regime
    2. `1`, which is equivalent to keeping only the last logit, used in the generation regime

Example:

```python
>>> import torch
>>> from transformers import CsmForConditionalGeneration, AutoProcessor
>>> from datasets import load_dataset, Audio

>>> model_id = "sesame/csm-1b"
>>> torch_device = "cuda" if torch.cuda.is_available() else "cpu"

>>> processor = AutoProcessor.from_pretrained(model_id)

>>> ds = load_dataset("hf-internal-testing/dailytalk-dummy", split="train")
>>> # ensure the audio is 24kHz
>>> ds = ds.cast_column("audio", Audio(sampling_rate=24000))

>>> conversation = []
>>> # prepare a conversation with text and corresponding audio
>>> for text, audio, speaker_id in zip(ds[:4]["text"], ds[:4]["audio"], ds[:4]["speaker_id"]):
...     conversation.append(
...         {
...             "role": f"{speaker_id}",
...             "content": [{"type": "text", "text": text}, {"type": "audio", "path": audio["array"]}],
...         }
...     )

>>> inputs = processor.apply_chat_template(
...     conversation,
...     tokenize=True,
...     return_dict=True,
...     output_labels=True,
... ).to(torch_device)

>>> model = CsmForConditionalGeneration.from_pretrained(model_id, device_map=torch_device)
>>> output = model(**inputs)
>>> output.loss.backward()
```Nr�   rØ   rŒ   rŽ   r�   r'   r‘   rž   r&   rd   r»   .)r  Tr4  r�   Úreturn_dict)r%   r/   r*   r&   r'   r(   r)   r+   r,   r-   r.   r9   )rž   rž   r   )rž   rž   rÜ   r8  r7  r6  )rc  r_  rþ   rW   rÐ   rÝ   rÊ   rß   r^   rd   ÚallrY   r‚   r½   r9  rJ  r   r%   r"   r'   r(   r)   r&   )re   rŒ   r*  rŽ   r+  r�   r'   r�   rØ   r‘   rÙ   r’   rd  Úbackbone_outputsÚbackbone_hidden_statesrâ   Úbackbone_logitsr%   r/   r*   Údepth_decoder_outputsÚbackbone_labelsÚ
train_maskÚdepth_decoder_input_idsÚ
train_idxsÚbackbone_last_hidden_statesÚdepth_decoder_labelss   &&&&&&&&&&&,               r5   r²   Ú#CsmForConditionalGeneration.forwardP  sß  € ðd Ò  Y§^¡^°qÔ%8Ø ×CÑCØÐ)=óˆMð *¨/Õ:ˆMØ" 8Õ,ˆFØˆIà×.Ò.ñ 
Øð
à)ð
ð &ð
ð ,ð	
ð
 (ð
ð  ð
ð ñ
Ðð "2°!Õ!4Ðä8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØŸ,™,Ð'=¸aÀÐPQÐ>QÕ'RÓSˆàˆØˆØ!ÐØ $ÐØÓà$ W�oˆOØ ×.Ò.ñ Ø&ðØ/>ðØKOÏ;É;×KaÑKaðØekñˆMð " (Õ+¨tÑ3×8Ñ8¸RÐ8Ó@Ð@ˆJØ&,¨ZÕ&8¸Ð>]ÀÇÁ×@YÑ@YÐ\]Õ@]Ð>]Ð9]Õ&^Ð#ä&(§m¡m×&7Ñ&7Ð8OÐQWÐ_`Ð&7Ó&aÐ#à#×+Ñ+°TÐ+Ó:ˆJØ*@ÀÈAÅÐPZÐ[\ÕP]Ð`aÕPaÐcdÐAdÕ*eÐ'Ø#)¨*Õ#5Ð à$(×$6Ò$6ñ %Ø1ð%à+Fð%ð $ð%ð !ð	%ð
 ,ð%ð ñ%Ð!ð "7×!;Ñ!;ÐØ Ð#5Õ5ˆDä ØØ'Ø1Ø"Ø,×<Ñ<Ø*×8Ñ8Ø'×2Ñ2ØAVÒAbÐ!6×!=Ò!=Ðhlà$Ò0ð +@×*OÒ*Oàà$Ò0ð )>×(KÒ(KàØI^ÒIjÐ%:×%EÑ%Eô
ð 	
ð quô
ð 	
r8   )rþ   r  r   rü   rÊ   rd   )NNNN)
NNNNNNNNNr   )r:   r;   r<   r=   rä   r�   r  r  Úclassmethodr  r'  r_  rÓ   r   r   r²   r@   rA   rz   r{   s   @@r5   rù   rù      s�   ù‡ € ð 	@ÐAjðÐõò0ò1ð ôó ðõ41÷PBò PB÷dõ ð> Ø÷Y
ñ Y
ó ó ÷Y
ð Y
r8   rù   )rO   rò   r}   rÈ   rù   )CÚdataclassesr   r0   Útorch.nnr‚   Ú r   r[   Úcache_utilsr   r   Ú
generationr   Úmasking_utilsr   Úmodeling_outputsr	   r
   Úmodeling_utilsr   Úprocessing_utilsr   Úutilsr   r   r   r   Úutils.genericr   Úutils.import_utilsr   Úutils.output_capturingr   Úautor   Úllama.modeling_llamar   r   r   r   r   r   r   r   Úconfiguration_csmr   r   Úgeneration_csmr   Ú
get_loggerr:   rŸ   r"   rC   rG   rI   rK   rM   rO   r}   ÚModulerX   rÈ   r`   rò   rù   Ú__all__r9   r8   r5   Ú<module>rŠ     s¾  ðõ "ã Ý å &ß .Ý )Ý /ß OÝ -Ý &ß KÓ KÝ 7Ý :Ý 5Ý ÷	÷ 	ó 	÷ @Ý .ð 
×	Ò	˜HÓ	%€ñ ðôð
 ô'3˜ó '3ó óð'3ôV	�ô 	ô	Ð-ô 	ô	ˆXô 	ô	�>ô 	ô	Ð'ô 	ñ ðôð
 ôv˜ó vó óðvð< ôY
˜:Ð'9ó Y
ó ðY
ôx�r—y‘yô ñ( ðôôd
Ð!1°?ó d
óðd
ôN §¡ô ð ô/�zó /ó ð/ñ0 ðôô
F
Ð"4Ð6Hó F
óð
F
òR
‚r8   