§
    ‚Štj1!  ã                   óî   — 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Moshi model configurationé    )Ústricté   )ÚPreTrainedConfig)ÚRopeParameters)Úauto_docstringé   )Ú
AutoConfigzkmhf/hf-moshiko)Ú
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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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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(<   ˆ fd)„Z!d*„ Z"ˆ xZ#S )+ÚMoshiDepthConfigaê  
    input_size (`int`, *optional*, defaults to 4096):
        Dimensionality of the input hidden states. Used to connect the main decoder to the depth decoder.
    audio_vocab_size (`int`, *optional*, defaults to 2048):
        Vocabulary size of the audio part of model. Defines the number of different tokens that can be
        represented by the `audio_codes` passed when calling the Moshi models.
    ffn_dim (`int`, *optional*, defaults to 5632):
        Dimensionality of the "intermediate" (often named feed-forward) layer in the depth decoder block. Must be even.

    Example:

    ```python
    >>> from transformers import (
    ...     MoshiDepthConfig,
    ...     MoshiDepthDecoder,
    ... )

    >>> configuration = MoshiDepthConfig()

    >>> # Initializing a MoshiDepthDecoder (with random weights) from the kmhf/hf-moshiko style configuration
    >>> model = MoshiDepthDecoder(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Úmoshi_depthÚpast_key_valuesé }  Ú
vocab_sizei   Úhidden_sizeé   Ú
input_sizeé   Únum_hidden_layersé   Únum_attention_headsNÚnum_key_value_headsi   Úaudio_vocab_sizeé	   Úmax_position_embeddingsÚsiluÚ
hidden_actÚhead_dimç{®Gáz”?Úinitializer_rangeTÚ	use_cacheé   Úsliding_windowç        Úattention_dropouti   Úffn_dimç:Œ0âŽyE>Úrms_norm_epsÚnum_codebooksFÚtie_word_embeddingsÚpad_token_idÚbos_token_idÚeos_token_idc                 ó¤   •— | j         �| j         n| j        | _         | j        p| j        | j        z  | _         t	          ¦   «         j        di |¤Ž d S )N© )r   r   r   r   ÚsuperÚ__post_init__)ÚselfÚkwargsÚ	__class__s     €úk/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/moshi/configuration_moshi.pyr1   zMoshiDepthConfig.__post_init__N   s`   ø€ à(,Ô(@Ð(LˆDÔ$Ð$ÐRVÔRjð 	Ô ð œÐU¨Ô)9¸TÔ=UÑ)UˆŒØ�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'ó    c                 óR   — | j         dz  dk    rt          d| j         › d�¦  «        ‚dS )úOPart of `@strict`-powered validation. Validates the architecture of the config.r   é   ú	`ffn_dim=ú` must be even.N)r&   Ú
ValueError©r2   s    r5   Úvalidate_architecturez&MoshiDepthConfig.validate_architectureU   s8   € àŒ<˜!Ñ˜qÒ Ð ÝÐF¨¬ÐFÐFÐFÑGÔGÐGð !Ð r6   )$Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
model_typeÚkeys_to_ignore_at_inferencer   ÚintÚ__annotations__r   r   r   r   r   r   r   r   Ústrr   r    Úfloatr!   Úboolr#   r%   r&   r(   r)   r*   r+   r,   r-   Úlistr1   r>   Ú__classcell__©r4   s   @r5   r   r      sã  ø€ € € € € € ðð ð4 €JØ#4Ð"5Ðà€J�ÐÐÑØ€K�ÐÐÑØ€J�ÐÐÑØÐ�sÐÐÑØ!Ð˜Ð!Ð!Ñ!Ø&*Ð˜˜t™Ð*Ð*Ñ*Ø Ð�cÐ Ð Ñ Ø#$Ð˜SÐ$Ð$Ñ$Ø€J�ÐÐÑØ€Hˆc�D‰jÐÐÑØ#Ð�uÐ#Ð#Ñ#Ø€IˆtÐÐÑØ€N�CÐÐÑØ%(Ð�u˜s‘{Ð(Ð(Ñ(Ø€GˆSÐÐÑØ€L�%ÐÐÑØ€M�3ÐÐÑØ %Ð˜Ð%Ð%Ñ%Ø#€L�#˜‘*Ð#Ð#Ñ#Ø#€L�#˜‘*Ð#Ð#Ñ#Ø+/€L�#˜˜Sœ	‘/ DÑ(Ð/Ð/Ñ/ð(ð (ð (ð (ð (ðHð Hð Hð Hð Hð Hð Hr6   r   c                   ó  ‡ — e Zd ZU dZdZdgZeedœZ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d<   dZeez  dz  ed<   dZeed<   dZe
d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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'z  dz  ed'<   dZ(ee'z  dz  ed(<   ˆ fd)„Z)d*„ Z*e+d+„ ¦   «         Z,e-d'e'fd,„¦   «         Z.ˆ xZ/S )-ÚMoshiConfiga�  
    audio_vocab_size (`int`, *optional*):
        Vocabulary size of the audio part of model. Defines the number of different tokens that can be
        represented by the `audio_codes` passed when calling the Moshi models.
    ffn_dim (`int`, *optional*, defaults to 22528):
        Dimensionality of the "intermediate" (often named feed-forward) layer in the main decoder block. Must be even.
    audio_encoder_config (`PreTrainedConfig | dict`, *optional*):
        Configuration for the audio encoder.
    depth_decoder_config (`PreTrainedConfig | dict`, *optional*):
        Configuration for the depth decoder.

    Example:

    ```python
    >>> from transformers import (
    ...     MoshiConfig,
    ...     MoshiForConditionalGeneration,
    ... )

    >>> configuration = MoshiConfig()

    >>> # Initializing a MoshiForConditionalGeneration (with random weights) from the kmhf/hf-moshiko style configuration
    >>> model = MoshiForConditionalGeneration(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config

    >>> # Saving the model, including its configuration
    >>> model.save_pretrained("kmhf/hf-moshiko")

    >>> # loading model and config from pretrained folder
    >>> moshi_config = MoshiConfig.from_pretrained("kmhf/hf-moshiko")
    >>> model = MoshiForConditionalGeneration.from_pretrained("kmhf/hf-moshiko", config=moshi_config)
    ```Úmoshir   )Úaudio_encoder_configÚdepth_decoder_configr   r   r   r   é    r   r   Nr   r   i¸  r   Úrope_parametersr   r   r   r   r    Tr!   r#   r$   r%   i X  r&   r'   r(   r"   r)   Fr*   r+   r,   r-   rP   rQ   c                 óÂ  •— | j         �| j         n| j        | _         | j        p| j        | j        z  | _        t	          | j        t          ¦  «        r8| j                             dd¦  «        }t          j	        |fi | j        ¤Ž| _        n | j        €t          j	        d¦  «        | _        | j
        €| j        j        n| j
        | _
        t	          | j        t          ¦  «        rJ| j                             | j
        | j        | j        | j        dœ¦  «         t!          di | j        ¤Ž| _        n| j        €t!          ¦   «         | _         t#          ¦   «         j        di |¤Ž d S )NrC   Úmimi)r   r   r   r)   r/   )r   r   r   r   Ú
isinstancerP   ÚdictÚpopr	   Ú	for_modelr   Úcodebook_sizerQ   Úupdater   r)   r   r0   r1   )r2   r3   Úaudio_encoder_model_typer4   s      €r5   r1   zMoshiConfig.__post_init__�   s{  ø€ à(,Ô(@Ð(LˆDÔ$Ð$ÐRVÔRjð 	Ô ð œÐU¨Ô)9¸TÔ=UÑ)UˆŒå�dÔ/µÑ6Ô6ð 	EØ'+Ô'@×'DÒ'DÀ\ÐSYÑ'ZÔ'ZÐ$Ý(2Ô(<Ð=UÐ(sÐ(sÐY]ÔYrÐ(sÐ(sˆDÔ%Ð%ØÔ&Ð.Ý(2Ô(<¸VÑ(DÔ(DˆDÔ%ð 8<Ô7LÐ7TˆDÔ%Ô3Ð3ÐZ^ÔZoð 	Ôõ �dÔ/µÑ6Ô6ð 	;ØÔ%×,Ò,à(,Ô(=Ø"&Ô"2Ø"&¤/Ø%)Ô%7ð	ð ñô ð õ )9Ð(UÐ(U¸4Ô;TÐ(UÐ(UˆDÔ%Ð%ØÔ&Ð.Ý(8Ñ(:Ô(:ˆDÔ%Ø�‰ŒÔÐ'Ð' Ð'Ð'Ð'Ð'Ð'r6   c                 óÆ   — | j         dz  dk    rt          d| j         › d�¦  «        ‚| j        | j        j        k    r%t          d| j        › d| j        j        › d�¦  «        ‚dS )	r8   r   r9   r:   r;   z`num_codebooks=zX` is greater than the maximum number of codebooks that the audio encoder can deal with (z). Please lower it.N)r&   r<   r)   rP   r=   s    r5   r>   z!MoshiConfig.validate_architecture»   s�   € àŒ<˜!Ñ˜qÒ Ð ÝÐF¨¬ÐFÐFÐFÑGÔGÐGàÔ Ô 9Ô GÒGÐGÝð K $Ô"4ð  Kð  Kð  OSô  Ohô  Ovð  Kð  Kð  Kñô ð ð HÐGr6   c                 ó   — | j         j        S )N)rP   Úsampling_rater=   s    r5   r_   zMoshiConfig.sampling_rateÅ   s   € àÔ(Ô6Ð6r6   c                 ó:   —  | dd|                      ¦   «         i|¤ŽS )z¾
        Instantiate a [`MoshiConfig`] (or a derived class) from an audio encoder configuration.

        Returns:
            [`MoshiConfig`]: An instance of a configuration object
        rP   r/   )Úto_dict)ÚclsrP   r3   s      r5   Úfrom_audio_encoder_configz%MoshiConfig.from_audio_encoder_configÉ   s9   € ð ˆsð 
ð 
Ø!5×!=Ò!=Ñ!?Ô!?ð
àð
ð 
ð 	
r6   )0r?   r@   rA   rB   rC   rD   r	   r   Úsub_configsr   rE   rF   r   r   r   r   r   r   rS   r   rW   r   rG   r   r    rH   r!   rI   r#   r%   r&   r(   r)   r*   r+   r,   r-   rJ   rP   r   rQ   r1   r>   Úpropertyr_   Úclassmethodrc   rK   rL   s   @r5   rN   rN   [   st  ø€ € € € € € ð!ð !ðF €JØ#4Ð"5ÐØ+5ÐO_Ð`Ð`€Kà€J�ÐÐÑØ€K�ÐÐÑØÐ�sÐÐÑØ!Ð˜Ð!Ð!Ñ!Ø&*Ð˜˜t™Ð*Ð*Ñ*Ø#'Ð�c˜D‘jÐ'Ð'Ñ'Ø#'Ð˜SÐ'Ð'Ñ'Ø48€O�^ dÑ*¨TÑ1Ð8Ð8Ñ8Ø€J�ÐÐÑØ€Hˆc�D‰jÐÐÑØ#Ð�uÐ#Ð#Ñ#Ø€IˆtÐÐÑØ€N�CÐÐÑØ%(Ð�u˜s‘{Ð(Ð(Ñ(Ø€GˆSÐÐÑØ€L�%ÐÐÑØ€M�3ÐÐÑØ %Ð˜Ð%Ð%Ñ%Ø#€L�#˜‘*Ð#Ð#Ñ#Ø#€L�#˜‘*Ð#Ð#Ñ#Ø+/€L�#˜˜Sœ	‘/ DÑ(Ð/Ð/Ñ/Ø;?Ð˜$Ð!1Ñ1°DÑ8Ð?Ð?Ñ?Ø;?Ð˜$Ð!1Ñ1°DÑ8Ð?Ð?Ñ?ð(ð (ð (ð (ð (ð<ð ð ð ð7ð 7ñ „Xð7ð ð
à.ð
ð 
ð 
ñ „[ð
ð 
ð 
ð 
ð 
r6   rN   N)rB   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úmodeling_rope_utilsr   Úutilsr   Úauto.configuration_autor	   r   rN   Ú__all__r/   r6   r5   ú<module>rm      s*  ðð  Ð à .Ð .Ð .Ð .Ð .Ð .à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø #Ð #Ð #Ð #Ð #Ð #Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ð €Ð,Ð-Ñ-Ô-Øð>Hð >Hð >Hð >Hð >HÐ'ñ >Hô >Hñ „ñ .Ô-ð>HðB €Ð,Ð-Ñ-Ô-Øð|
ð |
ð |
ð |
ð |
Ð"ñ |
ô |
ñ „ñ .Ô-ð|
ð~ Ð,Ð
-€€€r6   