§
    ‚Štj‹  ã                   óî   — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
  ed	¬
¦  «        e G d„ de¦  «        ¦   «         ¦   «         Z ed	¬
¦  «        e G d„ de¦  «        ¦   «         ¦   «         ZddgZdS )zMusicGen model configurationé    )ÚClassVar)Ústricté   )ÚPreTrainedConfig)Úauto_docstringé   )Ú
AutoConfigzfacebook/musicgen-small)Ú
checkpointc                   ó¨  — e Zd ZU dZdZdgZdZeed<   dZ	eed<   dZ
eed<   d	Zeed
<   dZeed<   dZeez  ed<   dZeed<   dZeed<   dZeed<   dZeez  ed<   dZeez  ed<   dZeez  ed<   dZeed<   dZeed<   dZeed<   dZeed <   dZed!z  ed"<   dZed!z  ed#<   d!Zeee         z  d!z  ed$<   dZeed%<   dZ eed&<   dZ!eed'<   d!Z"ed!z  ed(<   d)„ Z#d!S )*ÚMusicgenDecoderConfigÚmusicgen_decoderÚdecoder_configÚpast_key_valuesi   Ú
vocab_sizeÚmax_position_embeddingsé   Únum_hidden_layersi   Úffn_dimé   Únum_attention_headsg        Ú	layerdropTÚ	use_cacheÚgeluÚactivation_functioni   Úhidden_sizegš™™™™™¹?ÚdropoutÚattention_dropoutÚactivation_dropoutç{®Gáz”?Úinitializer_factorFÚscale_embeddingé   Únum_codebooksé   Úaudio_channelsNÚpad_token_idÚbos_token_idÚeos_token_idÚtie_word_embeddingsÚ
is_decoderÚadd_cross_attentionÚcross_attention_hidden_sizec                 óH   — | j         dvrt          d| j         › d�¦  «        ‚dS )zOPart of `@strict`-powered validation. Validates the architecture of the config.)r$   r   z4Expected 1 (mono) or 2 (stereo) audio channels, got z
 channels.N)r%   Ú
ValueError©Úselfs    úq/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/musicgen/configuration_musicgen.pyÚvalidate_architecturez+MusicgenDecoderConfig.validate_architecture8   s6   € àÔ fÐ,Ð,ÝÐsÐTXÔTgÐsÐsÐsÑtÔtÐtð -Ð,ó    )$Ú__name__Ú
__module__Ú__qualname__Ú
model_typeÚbase_config_keyÚkeys_to_ignore_at_inferencer   ÚintÚ__annotations__r   r   r   r   r   Úfloatr   Úboolr   Ústrr   r   r   r   r    r!   r#   r%   r&   r'   r(   Úlistr)   r*   r+   r,   r2   © r3   r1   r   r      sâ  € € € € € € ð $€JØ&€OØ#4Ð"5Ðà€J�ÐÐÑØ#'Ð˜SÐ'Ð'Ñ'ØÐ�sÐÐÑØ€GˆSÐÐÑØ!Ð˜Ð!Ð!Ñ!Ø €Iˆu�s‰{Ð Ð Ñ Ø€IˆtÐÐÑØ%Ð˜Ð%Ð%Ñ%Ø€K�ÐÐÑØ€GˆU�S‰[ÐÐÑØ%(Ð�u˜s‘{Ð(Ð(Ñ(Ø&)Ð˜ ™Ð)Ð)Ñ)Ø $Ð˜Ð$Ð$Ñ$Ø!€O�TÐ!Ð!Ñ!Ø€M�3ÐÐÑØ€N�CÐÐÑØ#€L�#˜‘*Ð#Ð#Ñ#Ø#€L�#˜‘*Ð#Ð#Ñ#Ø+/€L�#˜˜Sœ	‘/ DÑ(Ð/Ð/Ñ/Ø %Ð˜Ð%Ð%Ñ%Ø€J�ÐÐÑØ %Ð˜Ð%Ð%Ñ%Ø.2Ð  t¡Ð2Ð2Ñ2ðuð uð uð uð ur3   r   c                   óö   ‡ — e Zd ZU dZdZee         ed<   eee	dœZ
eeeee         f                  ed<   dZee         ed<   dZeez  ed	<   dZeez  ed
<   dZeez  ed<   dZeed<   ˆ fd„Zed„ ¦   «         Zˆ xZS )ÚMusicgenConfiga,  
    text_encoder (`Union[dict, `PretrainedConfig`]`):
        An instance of a configuration object that defines the text encoder config.
    audio_encoder (`Union[dict, `PretrainedConfig`]`):
        An instance of a configuration object that defines the audio encoder config.
    decoder (`Union[dict, `PretrainedConfig`]`):
        An instance of a configuration object that defines the decoder config.

    Example:

    ```python
    >>> from transformers import (
    ...     MusicgenConfig,
    ...     MusicgenDecoderConfig,
    ...     T5Config,
    ...     EncodecConfig,
    ...     MusicgenForConditionalGeneration,
    ... )

    >>> # Initializing text encoder, audio encoder, and decoder model configurations
    >>> text_encoder_config = T5Config()
    >>> audio_encoder_config = EncodecConfig()
    >>> decoder_config = MusicgenDecoderConfig()

    >>> configuration = MusicgenConfig(
    ...     text_encoder=text_encoder_config,
    ...     audio_encoder=audio_encoder_config,
    ...     decoder=decoder_config,
    ... )

    >>> # Initializing a MusicgenForConditionalGeneration (with random weights) from the facebook/musicgen-small style configuration
    >>> model = MusicgenForConditionalGeneration(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    >>> config_text_encoder = model.config.text_encoder
    >>> config_audio_encoder = model.config.audio_encoder
    >>> config_decoder = model.config.decoder

    >>> # Saving the model, including its configuration
    >>> model.save_pretrained("musicgen-model")

    >>> # loading model and config from pretrained folder
    >>> musicgen_config = MusicgenConfig.from_pretrained("musicgen-model")
    >>> model = MusicgenForConditionalGeneration.from_pretrained("musicgen-model", config=musicgen_config)
    ```Úmusicgenr7   )Útext_encoderÚaudio_encoderÚdecoderÚsub_configsTÚhas_no_defaults_at_initNrD   rE   rF   r   r    c                 óž  •— t          | j        t          ¦  «        r7| j                             d¦  «        }t	          j        |fi | j        ¤Ž| _        n| j        €t          d| j        › d�¦  «        ‚t          | j        t          ¦  «        r7| j                             d¦  «        }t	          j        |fi | j        ¤Ž| _        n| j        €t          d| j        › d�¦  «        ‚t          | j	        t          ¦  «        rt          di | j	        ¤Ž| _	        n| j	        €t          ¦   «         | _	        d| _         t          ¦   «         j        di |¤Ž d S )Nr7   zA configuration of type z: cannot be instantiated because text_encoder is not passedz; cannot be instantiated because audio_encoder is not passedTr@   )Ú
isinstancerD   ÚdictÚpopr	   Ú	for_modelr.   r7   rE   rF   r   Úis_encoder_decoderÚsuperÚ__post_init__)r0   ÚkwargsÚtext_encoder_model_typeÚaudio_encoder_model_typeÚ	__class__s       €r1   rP   zMusicgenConfig.__post_init__}   sh  ø€ Ý�dÔ'­Ñ.Ô.ð 	Ø&*Ô&7×&;Ò&;¸LÑ&IÔ&IÐ#Ý *Ô 4Ð5LÐ bÐ bÐPTÔPaÐ bÐ bˆDÔÐØÔÐ&ÝØv¨4¬?ÐvÐvÐvñô ð õ �dÔ(­$Ñ/Ô/ð 	Ø'+Ô'9×'=Ò'=¸lÑ'KÔ'KÐ$Ý!+Ô!5Ð6NÐ!eÐ!eÐRVÔRdÐ!eÐ!eˆDÔÐØÔÐ'ÝØw¨4¬?ÐwÐwÐwñô ð õ �d”l¥DÑ)Ô)ð 	3Ý0Ð@Ð@°4´<Ð@Ð@ˆDŒLˆLØŒ\Ð!Ý0Ñ2Ô2ˆDŒLà"&ˆÔØ�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'r3   c                 ó   — | j         j        S )N)rE   Úsampling_rater/   s    r1   rV   zMusicgenConfig.sampling_rate–   s   € ð Ô!Ô/Ð/r3   )r4   r5   r6   Ú__doc__r7   r   r>   r;   r	   r   rG   rK   Útyper   rH   r=   rD   rE   rF   r    r<   rP   ÚpropertyrV   Ú__classcell__)rT   s   @r1   rB   rB   >   s  ø€ € € € € € ð-ð -ð^ !+€J�˜”Ð*Ð*Ñ*à"Ø#Ø(ð@ð @€K�˜$˜s DÐ)9Ô$:Ð:Ô;Ô<ð ð ñ ð
 /3Ð˜X dœ^Ð2Ð2Ñ2à,0€L�$Ð)Ñ)Ð0Ð0Ñ0Ø-1€M�4Ð*Ñ*Ð1Ð1Ñ1Ø'+€GˆTÐ$Ñ$Ð+Ð+Ñ+Ø $Ð˜Ð$Ð$Ñ$ð(ð (ð (ð (ð (ð2 ð0ð 0ñ „Xð0ð 0ð 0ð 0ð 0r3   rB   N)rW   Útypingr   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   Úauto.configuration_autor	   r   rB   Ú__all__r@   r3   r1   ú<module>ra      s*  ðð #Ð "à Ð Ð Ð Ð Ð à .Ð .Ð .Ð .Ð .Ð .à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø #Ð #Ð #Ð #Ð #Ð #Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ð €Ð4Ð5Ñ5Ô5Øð uð  uð  uð  uð  uÐ,ñ  uô  uñ „ñ 6Ô5ð uðF €Ð4Ð5Ñ5Ô5ØðY0ð Y0ð Y0ð Y0ð Y0Ð%ñ Y0ô Y0ñ „ñ 6Ô5ðY0ðx Ð4Ð
5€€€r3   