§
    ‚ŠtjT  ã                   óî   — d dl mZ d dlmZmZ d dlZd dlmZ ddl	m
Z
mZmZmZmZ ddlmZ ddlmZ ddlmZmZmZmZ dd	lmZ dd
lmZ ddlmZ ddlmZ  ej         e!¦  «        Z" G d„ de¦  «        Z#dS )é    )ÚCallable)ÚAnyÚOptionalNé   )Ú(DiaClassifierFreeGuidanceLogitsProcessorÚ"DiaEOSChannelFilterLogitsProcessorÚ!DiaEOSDelayPatternLogitsProcessorÚLogitsProcessorListÚTemperatureLogitsWarper)ÚStoppingCriteriaList)ÚBaseStreamer)ÚGenerateOutputÚGenerationConfigÚGenerationMixinÚGenerationMode)Úis_deepspeed_zero3_enabled)Úis_fsdp_managed_module)ÚPreTrainedModel)Úloggingc                   ó¬  ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 d&dededz  dej        dz  deeej	        ge
e         f         dz  dedz  dedz  deeef         dz  d	ej	        dz  d
ej	        dz  defˆ fd„Zdedz  dedeeef         fˆ fd„Z	 	 	 d'dej	        dz  dej	        dz  deeej	        f         dz  deej	        edz  eeej	        f         f         fˆ fd„Z	 d(dededeeej	        f         dej	        dej        dz  deej        eeej	        f         f         fd„Z	 	 	 d)dedz  fˆ fd„Zedej	        dedej	        dz  dej	        fd„¦   «         Z	 	 	 	 	 	 	 	 	 	 	 d*dej	        dz  dedz  dedz  dedz  deeej	        ge
e         f         dz  dedz  ded          d!ed"         d	ej	        dz  d
ej	        dz  d#edz  fd$„Z ej        ¦   «         	 	 	 	 	 	 	 	 	 	 	 d*dej	        dz  dedz  dedz  dedz  deeej	        ge
e         f         dz  dedz  ded          d!ed"         d	ej	        dz  d
ej	        dz  d#edz  deej        z  fd%„¦   «         Zˆ xZS )+ÚDiaGenerationMixinNÚgeneration_configÚinput_ids_seq_lengthÚencoder_input_idsÚprefix_allowed_tokens_fnÚlogits_processorÚdeviceÚmodel_kwargsÚnegative_prompt_idsÚnegative_prompt_attention_maskÚreturnc
                 ó¤  •— |j         }
|j        }d |_         d |_        t          ¦   «         }|�(|dk    r"|                     t	          |¦  «        ¦  «         |                     t          t          | j        j        ¦  «        | j        j	        j
        ¬¦  «        ¦  «         t          ¦   «                              |||d |||||	¬¦	  «	        }|
�2|
dk    r,t          |
|j        ¬¦  «        }|                     d|¦  «         |                     t!          | j        j        | j        j	        j
        |j        |¬¦  «        ¦  «         |
|_         ||_        |S )Nç      ð?)Únum_channelsÚeos_token_id©	r   r   r   r   r   r   r   r   r    é   )Úguidance_scaleÚguidance_top_kr   )Údelay_patternr%   Úmax_generation_lenr   )r(   Útemperaturer
   Úappendr   r   ÚlenÚconfigr*   Údecoder_configr%   ÚsuperÚ_get_logits_processorr   Útop_kÚinsertr	   Ú
max_length)Úselfr   r   r   r   r   r   r   r   r    Úoriginal_guidance_scaleÚoriginal_temperatureÚcustom_processorsÚmerged_processorsÚcfg_processorÚ	__class__s                  €úd/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/dia/generation_dia.pyr2   z(DiaGenerationMixin._get_logits_processor,   s�  ø€ ð #4Ô"BÐØ0Ô<ÐØ+/ÐÔ(Ø(,ÐÔ%õ 0Ñ1Ô1ÐàÐ+Ð0DÈÒ0KÐ0KØ×$Ò$Õ%<Ð=QÑ%RÔ%RÑSÔSÐSà× Ò Ý.Ý  ¤Ô!:Ñ;Ô;Ø!œ[Ô7ÔDðñ ô ñ	
ô 	
ð 	
õ "™GœG×9Ò9Ø/Ø!5Ø/Ø%)Ø.ØØ%Ø 3Ø+Ið :ñ 

ô 

Ðð #Ð.Ð3JÈaÒ3OÐ3OÝDØ6Ø0Ô6ðñ ô ˆMð ×$Ò$ Q¨Ñ6Ô6Ð6à× Ò Ý-Ø"œkÔ7Ø!œ[Ô7ÔDØ#4Ô#?Øð	ñ ô ñ	
ô 	
ð 	
ð ,CÐÔ(Ø(<ÐÔ%à Ð ó    Úkwargsc                 ó>  •—  t          ¦   «         j        |fi |¤Ž\  }}|j        �5|j        dk     r*t                               d|j        › d�¦  «         d|_        |xj        t          | j        j        ¦  «        z  c_        |j	        d uo
|j	        dk    | _
        ||fS )Nr#   zAtemperature < 1.0 is not supported for Dia; clamping to 1.0 (got ú)r'   )r1   Ú_prepare_generation_configr,   ÚloggerÚwarning_oncer5   Úmaxr/   r*   r(   Ú	_uses_cfg)r6   r   r?   r   r<   s       €r=   rB   z-DiaGenerationMixin._prepare_generation_configo   sÇ   ø€ ð +M­%©'¬'Ô*LÐM^Ð*iÐ*iÐbhÐ*iÐ*iÑ'Ð˜<àÔ(Ð4Ð9JÔ9VÐY\Ò9\Ð9\Ý×ÒØtÐTeÔTqÐtÐtÐtñô ð ð -0ÐÔ)ð 	Ð$Ô$­¨D¬KÔ,EÑ(FÔ(FÑFÐ$Ô$ð +Ô9ÀÐEÐoÐJ[ÔJjÐnoÒJoˆŒà  ,Ð.Ð.r>   ÚinputsÚbos_token_idc                 ó.  •— t          ¦   «                              |||¬¦  «        \  }}}| j        rat          j        |¦  «        }t          j        ||gd¬¦  «        }|                     dd ¦  «        �|d                              dd¦  «        |d<   |||fS )N)rG   rH   r   r   ©ÚdimÚattention_maské   r'   )r1   Ú_prepare_model_inputsrF   ÚtorchÚ
zeros_likeÚcatÚgetÚrepeat)r6   rG   rH   r   Ú
input_nameÚunconditioned_inputsr<   s         €r=   rN   z(DiaGenerationMixin._prepare_model_inputs‚   s³   ø€ õ ,1©7¬7×+HÒ+HØØ%Ø%ð ,Iñ ,
ô ,
Ñ(ˆ�
˜Lð Œ>ð 	]Ý#(Ô#3°FÑ#;Ô#;Ð Ý”Y Ð(<Ð=À1ÐEÑEÔEˆFà×ÒÐ 0°$Ñ7Ô7ÐCØ1=Ð>NÔ1O×1VÒ1VÐWXÐZ[Ñ1\Ô1\�Ð-Ñ.à�z <Ð/Ð/r>   Ú
batch_sizeÚmodel_input_nameÚdecoder_start_token_idc                 óH  — dx}}|�d|v r|                      d¦  «        }|�d|v r|                      d¦  «        }|�|€™t                               d|du› d|du› d�¦  «         | j        j        j        }| j        r|dz  n|}	|€%t          j        |	d|f|t          j	        |¬	¦  «        }t          j
        |	|j        d         ft          j	        |¬
¦  «        }| 	                    ¦   «         }
|j        d         |dd…dd…df         | j        j        j        k                         d¬¦  «                             ¦   «         z
  }|
dd…d|…f                              dd¦  «         	                    ¦   «         }|dd…d|…f          	                    ¦   «         }||d<   |
|d<   ||fS )zGPrepares `decoder_input_ids` for generation with encoder-decoder modelsNÚdecoder_input_idsÚdecoder_attention_maskz[In order to generate with Dia, we need the processed audio input: Got `decoder_input_ids`: z" and got `decoder_attention_mask`=z]. This can be achieved via the [`DiaProcessor`] but now defaulting to non-delayed generation.rM   r'   )Údtyper   )Úsizer\   r   r   éÿÿÿÿrJ   Údecoder_delay_mask)ÚpoprC   rD   r/   r0   r$   rF   rO   ÚfullÚlongÚonesÚshapeÚpad_token_idÚsumrE   Ú	transpose)r6   rV   rW   r   rX   r   rZ   r[   r$   Úreal_batch_sizeÚ
delay_maskÚvalid_input_sizes               r=   Ú)_prepare_decoder_input_ids_for_generationz<DiaGenerationMixin._prepare_decoder_input_ids_for_generation˜   s,  € ð 6:Ð9ÐÐ2ØÐ#Ð(;¸|Ð(KÐ(KØ ,× 0Ò 0Ð1DÑ EÔ EÐØÐ#Ð(@ÀLÐ(PÐ(PØ%1×%5Ò%5Ð6NÑ%OÔ%OÐ"ð Ð$Ð(>Ð(FÝ×ÒðpØ%¨TÐ1ðpð pØUkÐswÐUwðpð pð pñô ð ð  œ;Ô5ÔBˆLØ15´ÐO˜j¨A™o˜oÀZˆOà Ð(Ý$)¤JØ$ a¨Ð6Ð8NÕV[ÔV`Ðioð%ñ %ô %Ð!õ &+¤ZØ%Ð'8Ô'>¸qÔ'AÐBÍ%Ì*Ð]cð&ñ &ô &Ð"ð
 '×+Ò+Ñ-Ô-ˆ
àÔ# AÔ&Ø     A A A q Ô)¨T¬[Ô-GÔ-TÒT×YÒYÐ^`ÐYÑaÔa×eÒeÑgÔgñhð 	ð ' q q qÐ*;Ð+;Ð*;Ð';Ô<×FÒFÀqÈ!ÑLÔL×QÒQÑSÔSÐØ!7¸¸¸Ð;LÐ<LÐ;LÐ8LÔ!M×!RÒ!RÑ!TÔ!TÐð 2HˆÐ-Ñ.Ø-7ˆÐ)Ñ*à  ,Ð.Ð.r>   FÚis_first_iterationc                 óÎ  •— | j         r|d         j        d         dz  n|d         j        d         }|                     || j        j        j        d¦  «                             dd¦  «        } t          ¦   «         j        |fd|i|¤Ž}|  	                    || j        j        j
        |¦  «        |d<   |                     dd¦  «        r'|s%|d         d d …dd d …f         d d …d d d …f         |d<   |d                              ¦   «         |d<   | j         rSd	D ]P}|                     |d ¦  «        �8t          dgdg||         j        dz
  z  z   ¦  «        }	 ||         j        |	Ž ||<   ŒQ|S )
Nr   rM   r^   r'   Úencoder_outputsrZ   Ú	use_cacheF)rZ   r[   Údecoder_position_ids)rF   rd   Úreshaper/   r0   r$   rg   r1   Úprepare_inputs_for_generationÚapply_delay_maskre   rR   Ú
contiguousÚtupleÚndimrS   )r6   Ú	input_idsrn   r_   rl   r?   rV   Úmodel_inputsÚkeyÚrepeat_patternr<   s             €r=   rr   z0DiaGenerationMixin.prepare_inputs_for_generationË   sÄ  ø€ ð :>¼Ðh�_ QÔ'Ô-¨aÔ0°AÑ5Ð5È_Ð]^ÔM_ÔMeÐfgÔMhˆ
Ø×%Ò% j°$´+Ô2LÔ2YÐ[]Ñ^Ô^×hÒhÐijÐlmÑnÔnˆ	ð =•u‘w”wÔ<¸YÐrÐrÐXgÐrÐkqÐrÐrˆð -1×,AÒ,AØ�t”{Ô1Ô>Ð@Rñ-
ô -
ˆÐ(Ñ)ð
 ×Ò˜K¨Ñ/Ô/ð 	hÐ8Jð 	hØ0<Ð=PÔ0QÐRSÐRSÐRSÐUWÐYZÐYZÐYZÐRZÔ0[Ð\]Ð\]Ð\]Ð_cÐefÐefÐefÐ\fÔ0gˆLÐ,Ñ-ð -9Ð9LÔ,M×,XÒ,XÑ,ZÔ,ZˆÐ(Ñ)ð Œ>ð 	RØ^ð Rð R�Ø×#Ò# C¨Ñ.Ô.Ð:å%*¨A¨3°!°¸ÀSÔ8IÔ8NÐQRÑ8RÑ1SÑ+SÑ%TÔ%T�NØ(@¨°SÔ(9Ô(@À.Ð(Q�L Ñ%øàÐr>   rw   Úpad_idri   c                 óê   — |€| S t          | j        d         |j        d         ¦  «        }|d d …d |…d d …f         }| d d …d |…d d …f         }t          j        ||k    ||¦  «        | d d …d |…d d …f<   | S )Nr'   )Úminrd   rO   Úwhere)rw   r{   ri   Úmask_lenÚ
valid_maskÚvalid_inputs         r=   rs   z#DiaGenerationMixin.apply_delay_maskñ   sœ   € àÐØÐå�y” qÔ)¨:Ô+;¸AÔ+>Ñ?Ô?ˆØ    9 H 9¨a¨a¨a Ô0ˆ
Ø    9 H 9¨a¨a¨a Ô0ˆõ &+¤[°¸vÒ1EÀ{ÐT^Ñ%_Ô%_ˆ	�!�!�!�Y�h�Y   �/Ñ"àÐr>   Ústopping_criteriaÚsynced_gpusÚassistant_modelr   Ústreamerr   Úcustom_generatec                 ó4  — |                       |||||¦  «        } | j        |fi |¤Ž\  }}|                     |¦  «        }|t          j        t          j        fvrt          d¦  «        ‚|                      |                     ¦   «         ¦  «         |  	                    |||¦  «         |€4t          ¦   «         st          | ¦  «        ot          j        ¦   «         dk    }|�|nt          ¦   «         }|�|nt          ¦   «         }|                     dd ¦  «        d u}|                      ||j        |¦  «        \  }}}|j        d         }|j        }|                      |||¬¦  «         d|vr|                      ||||¦  «        }|                      ||||j        |j        ¬¦  «        \  }}|j        r)|                      ||                     d¦  «        ¦  «        }|�'|                     |                     ¦   «         ¦  «         |j        d	         }|                     d
¦  «        d u o|j        d u}|                     d¦  «        d u o|j        d u}|                      ||||||¬¦  «        }|                       ¦   «         r	d|vrd|d<   |  !                    |||¦  «         |j        dz
  }|j        d         |k    r"|dk    r| j"        j#        s||j        d         z  }|  $                    |||||¦  «         |  %                    ||||||j        ||	|
¬¦	  «	        }|  &                    |||                     d¦  «        ¬¦  «        }|j'        |d<   | (                    d	|j        d	         ¦  «        }|j)        dk    rt          d¦  «        ‚ | j*        |f|||dœ|¤|¤ŽS )NzŒGot incompatible mode for generation, should be one of greedy or sampling. Ensure that beam search is de-activated by setting `num_beams=1`.r'   rL   r   )r   rn   )rV   rW   r   rX   r   Ú	tokenizerr^   r5   Ú
min_length)r   Úhas_default_max_lengthÚhas_default_min_lengthrW   Úinputs_tensorÚinput_ids_lengthÚlogits_to_keepÚinputs_embedsr&   )r   r‚   rˆ   ro   z2`num_return_sequences>1` is incompatible with Dia.)r   r‚   r   )+Ú_extract_generation_mode_kwargsrB   Úget_generation_moder   ÚSAMPLEÚGREEDY_SEARCHÚ
ValueErrorÚ_validate_model_kwargsÚcopyÚ_validate_generation_moder   r   ÚdistÚget_world_sizer
   r   rR   rN   rH   rd   r   Ú_prepare_special_tokensÚ._prepare_encoder_decoder_kwargs_for_generationrk   Ú_decoder_start_token_tensorÚtoken_healingÚheal_tokensÚputÚcpur5   r‰   Ú_prepare_generated_lengthÚ_supports_logits_to_keepÚ_validate_generated_lengthr/   Úis_encoder_decoderÚ_prepare_cache_for_generationr2   Ú_get_stopping_criteriaro   rq   Únum_return_sequencesÚ_sample)r6   rG   r   r   r‚   r   rƒ   r„   r…   r   r    r†   r?   Úgeneration_mode_kwargsr   Úgeneration_modeÚkwargs_has_attention_maskrŒ   rW   rV   r   rw   r�   rŠ   r‹   Úmax_cache_lengthÚprepared_logits_processorÚprepared_stopping_criterias                               r=   Ú_main_generate_loopz&DiaGenerationMixin._main_generate_loopÿ   s¦  € ð" "&×!EÒ!EØØØØØñ"
ô "
Ðð +J¨$Ô*IÐJ[Ð*fÐ*fÐ_eÐ*fÐ*fÑ'Ð˜<Ø+×?Ò?ÀÑPÔPˆà¥>Ô#8½.Ô:VÐ"WÐWÐWÝðTñô ð ð
 	×#Ò# L×$5Ò$5Ñ$7Ô$7Ñ8Ô8Ð8Ø×&Ò& Ð8IÐKaÑbÔbÐbð ÐÝ5Ñ7Ô7ÐWÕ;QÐRVÑ;WÔ;WÐvÕ]aÔ]pÑ]rÔ]rÐuvÒ]vˆKà/?Ð/KÐ+Ð+ÕQdÑQfÔQfÐØ1BÐ1NÐ-Ð-ÕThÑTjÔTjÐð %1×$4Ò$4Ð5EÀtÑ$LÔ$LÐTXÐ$XÐ!Ø8<×8RÒ8RØÐ%Ô2°Lñ9
ô 9
Ñ5ˆÐ'¨ð #Ô(¨Ô+ˆ
àÔ%ˆØ×$Ò$Ð%6Ð8QÐZ`Ð$ÑaÔaÐað  LÐ0Ð0à×NÒNØ˜|Ð-=Ð?Pñô ˆLð
 #'×"PÒ"PØ!Ø-Ø%Ø#4Ô#PØ Ô'ð #Qñ #
ô #
Ñˆ	�<ð Ô*ð 	]Ø×(Ò(¨Ð4J×4NÒ4NÈ{Ñ4[Ô4[Ñ\Ô\ˆIàÐØ�LŠL˜Ÿš™œÑ)Ô)Ð)ð %œ?¨2Ô.ÐØ!'§¢¨LÑ!9Ô!9¸TÐ!AÐ!nÐFWÔFbÐjnÐFnÐØ!'§¢¨LÑ!9Ô!9¸TÐ!AÐ!nÐFWÔFbÐjnÐFnÐØ ×:Ò:Ø/Ø#9Ø#9Ø-Ø'Ø-ð ;ñ 
ô 
Ðð ×(Ò(Ñ*Ô*ð 	/Ð/?À|Ð/SÐ/SØ-.ˆLÐ)Ñ*à×'Ò'Ð(9Ð;KÐMcÑdÔdÐdð -Ô7¸!Ñ;ÐàÔ Ô"Ð&6Ò6Ð6Ø  OÒ3Ð3Ø”KÔ2ð 4ð  Ô 3°AÔ 6Ñ6ÐØ×*Ò*Ø˜|¨_¸jÐJZñ	
ô 	
ð 	
ð
 %)×$>Ò$>Ø/Ø!1Ø+Ø%=Ø-Ø Ô'Ø%Ø 3Ø+Ið %?ñ 
%
ô 
%
Ð!ð &*×%@Ò%@Ø/Ø/Ø,×0Ò0°Ñ=Ô=ð &Añ &
ô &
Ð"ð %6Ô$?ˆ�[Ñ!ð ×%Ò% b¨)¬/¸"Ô*=Ñ>Ô>ˆ	ð Ô1°AÒ5Ð5ÝÐQÑRÔRÐRð ˆtŒ|Øð
à6Ø8Ø/ð	
ð 
ð
 %ð
ð ð
ð 
ð 	
r>   c                 óØ  — |                      d¦  «        }|�|                     ¦   «         } | j        d|||||||||	|
|dœ|¤Ž}t          |t          j        ¦  «         }|r|j        }n|}| j        j        j	        }|j
        d         |z  }|                     ||d¦  «                             dd¦  «        }|                      || j        j        j        |¦  «        }|r||_        n|}|S )NrZ   )rG   r   r   r‚   r   rƒ   r„   r…   r   r    r†   r   r^   r'   rM   © )rR   Úcloner¯   Ú
isinstancerO   ÚTensorÚ	sequencesr/   r0   r$   rd   rq   rg   rs   re   )r6   rG   r   r   r‚   r   rƒ   r„   r…   r   r    r†   r?   ri   ÚoutputÚreturn_dict_in_generateÚoutput_sequencesr$   Úbszs                      r=   ÚgeneratezDiaGenerationMixin.generate–  s3  € ð" —Z’ZÐ 3Ñ4Ô4ˆ
ØÐ!Ø#×)Ò)Ñ+Ô+ˆJà)�Ô)ð 
ØØ/Ø-Ø/Ø%=Ø#Ø+ØØ 3Ø+IØ+ð
ð 
ð ð
ð 
ˆõ '1°½¼Ñ&FÔ&FÐ"FÐà"ð 	&Ø%Ô/ÐÐà%Ðð ”{Ô1Ô>ˆØÔ$ QÔ'¨<Ñ7ˆØ+×3Ò3°C¸ÀrÑJÔJ×TÒTÐUVÐXYÑZÔZÐð  ×0Ò0Ð1AÀ4Ä;ÔC]ÔCjÐlvÑwÔwÐà"ð 	&Ø/ˆFÔÐà%ˆFàˆr>   )NNNNNNNN)NNN)N)NNF)NNNNNNNNNNN) Ú__name__Ú
__module__Ú__qualname__rF   r   ÚintrO   Ú
LongTensorr   r´   Úlistr
   ÚstrÚdictr   r2   ru   rB   rN   r   rk   Úboolrr   Ústaticmethodrs   r   r   r¯   Úno_gradr   rº   Ú__classcell__)r<   s   @r=   r   r   (   s-  ø€ € € € € à€Ið
 ,0Ø59ØTXØ7;Ø!Ø.2Ø37Ø>BðA!ð A!à+ðA!ð " D™jðA!ð !Ô+¨dÑ2ð	A!ð
 #+¨C°´Ð+>ÀÀSÄ	Ð+IÔ"JÈTÑ"QðA!ð .°Ñ4ðA!ð �d‘
ðA!ð ˜3 ˜8”n tÑ+ðA!ð #œ\¨DÑ0ðA!ð ).¬°tÑ(;ðA!ð 
ðA!ð A!ð A!ð A!ð A!ð A!ðF/Ø!1°DÑ!8ð/ØDGð/à	Ð Ð%Ô	&ð/ð /ð /ð /ð /ð /ð* '+Ø,0Ø7;ð	0ð 0à”˜tÑ#ð0ð ”l TÑ)ð0ð ˜3 ¤Ð,Ô-°Ñ4ð	0ð
 
ˆuŒ|˜S 4™Z¨¨c°5´<Ð.?Ô)@Ð@Ô	Að0ð 0ð 0ð 0ð 0ð 0ð8 '+ð1/ð 1/àð1/ð ð1/ð ˜3 ¤Ð,Ô-ð	1/ð
 !&¤ð1/ð ”˜tÑ#ð1/ð 
ˆuÔ  c¨5¬<Ð&7Ô!8Ð8Ô	9ð1/ð 1/ð 1/ð 1/ðl ØØ*/ð$ð $ð
 ! 4™Kð$ð $ð $ð $ð $ð $ðL ð E¤Lð ¸#ð È5Ì<ÐZ^ÑK^ð ÐchÔcoð ð ð ñ „\ðð '+Ø59Ø7;Ø9=ØTXØ#'Ø7;Ø-1Ø37Ø>BØ&*ðU
ð U
à”˜tÑ#ðU
ð ,¨dÑ2ðU
ð .°Ñ4ð	U
ð
 0°$Ñ6ðU
ð #+¨C°´Ð+>ÀÀSÄ	Ð+IÔ"JÈTÑ"QðU
ð ˜D‘[ðU
ð "Ð"3Ô4ðU
ð ˜>Ô*ðU
ð #œ\¨DÑ0ðU
ð ).¬°tÑ(;ðU
ð ˜t™ðU
ð U
ð U
ð U
ðn €U„]�_„_ð '+Ø59Ø7;Ø9=ØTXØ#'Ø7;Ø-1Ø37Ø>BØ&*ð7ð 7à”˜tÑ#ð7ð ,¨dÑ2ð7ð .°Ñ4ð	7ð
 0°$Ñ6ð7ð #+¨C°´Ð+>ÀÀSÄ	Ð+IÔ"JÈTÑ"Qð7ð ˜D‘[ð7ð "Ð"3Ô4ð7ð ˜>Ô*ð7ð #œ\¨DÑ0ð7ð ).¬°tÑ(;ð7ð ˜t™ð7ð 
˜%Ô*Ñ	*ð7ð 7ð 7ñ „_ð7ð 7ð 7ð 7ð 7r>   r   )$Úcollections.abcr   Útypingr   r   rO   Útorch.distributedÚdistributedr˜   Úgeneration.logits_processr   r   r	   r
   r   Úgeneration.stopping_criteriar   Úgeneration.streamersr   Úgeneration.utilsr   r   r   r   Úintegrations.deepspeedr   Úintegrations.fsdpr   Úmodeling_utilsr   Úutilsr   Ú
get_loggerr»   rC   r   r±   r>   r=   ú<module>rÔ      sw  ðð %Ð $Ð $Ð $Ð $Ð $Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à €€€Ø  Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð ð ð AÐ @Ð @Ð @Ð @Ð @Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø aÐ aÐ aÐ aÐ aÐ aÐ aÐ aÐ aÐ aÐ aÐ aØ @Ð @Ð @Ð @Ð @Ð @Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð ð 
ˆÔ	˜HÑ	%Ô	%€ðfð fð fð fð f˜ñ fô fð fð fð fr>   