
    qid                         d dl mZmZmZmZmZmZ d dlmZm	Z	m
Z
mZ d dlmZ  ej                  e      Z G d d      Z G d de      Z G d d	e      Z G d
 de      ZeeefD  ci c]  }  e| j*                        |  c} ZdefdZyc c} w )   )is_optuna_availableis_ray_tune_availableis_wandb_availablerun_hp_search_optunarun_hp_search_rayrun_hp_search_wandb)HPSearchBackenddefault_hp_space_optunadefault_hp_space_raydefault_hp_space_wandb)loggingc                   h    e Zd ZU eed<   dZedz  ed<   ed        ZdedefdZ	d Z
d	 Zed
        Zy)HyperParamSearchBackendBasenameNpip_packagec                      t         NNotImplementedError     T/opt/pipecat/venv/lib/python3.12/site-packages/transformers/hyperparameter_search.pyis_availablez(HyperParamSearchBackendBase.is_available'   s    !!r   n_trials	directionc                     t         r   r   selftrainerr   r   kwargss        r   runzHyperParamSearchBackendBase.run+       !!r   c                     t         r   r   r   trials     r   default_hp_spacez,HyperParamSearchBackendBase.default_hp_space.   r"   r   c                 x    | j                         s*t        d| j                   d| j                          d      y )NzYou picked the z' backend, but it is not installed. Run .)r   RuntimeErrorr   pip_install)r   s    r   ensure_availablez,HyperParamSearchBackendBase.ensure_available1   sC      "!$)),STXTdTdTfSgghi  #r   c                 >    d| j                   xs | j                   dS )Nz`pip install `)r   r   )clss    r   r*   z'HyperParamSearchBackendBase.pip_install7   s    s:#((;1==r   )__name__
__module____qualname__str__annotations__r   staticmethodr   intr!   r&   r+   classmethodr*   r   r   r   r   r   #   sX    
I"Kt"" ""S "S "" > >r   r   c                   6    e Zd ZdZed        ZdedefdZd Z	y)OptunaBackendoptunac                      t               S r   )r   r   r   r   r   zOptunaBackend.is_available?   s    "$$r   r   r   c                     t        |||fi |S r   )r   r   s        r   r!   zOptunaBackend.runC   s    #GXyKFKKr   c                     t        |      S r   )r
   r$   s     r   r&   zOptunaBackend.default_hp_spaceF   s    &u--r   N
r/   r0   r1   r   r4   r   r5   r2   r!   r&   r   r   r   r8   r8   <   s4    D% %LS LS L.r   r8   c                   :    e Zd ZdZdZed        ZdedefdZ	d Z
y)	RayTuneBackendrayz'ray[tune]'c                      t               S r   )r   r   r   r   r   zRayTuneBackend.is_availableN   s    $&&r   r   r   c                     t        |||fi |S r   )r   r   s        r   r!   zRayTuneBackend.runR   s     (IHHHr   c                     t        |      S r   )r   r$   s     r   r&   zRayTuneBackend.default_hp_spaceU   s    #E**r   N)r/   r0   r1   r   r   r4   r   r5   r2   r!   r&   r   r   r   r?   r?   J   s9    DK' 'IS IS I+r   r?   c                   6    e Zd ZdZed        ZdedefdZd Z	y)WandbBackendwandbc                      t               S r   )r   r   r   r   r   zWandbBackend.is_available\   s    !##r   r   r   c                     t        |||fi |S r   )r   r   s        r   r!   zWandbBackend.run`   s    "7HiJ6JJr   c                     t        |      S r   )r   r$   s     r   r&   zWandbBackend.default_hp_spacec   s    %e,,r   Nr=   r   r   r   rE   rE   Y   s4    D$ $KS KS K-r   rE   returnc                  ~   t         j                         D  cg c]  } | j                         s|  }} t        |      dkD  rC|d   j                  }t        |      dkD  r$t
        j                  t        |       d| d       |S t        ddj                  d t         j                         D              z         c c} w )N    r   z1 hyperparameter search backends available. Using z as the default.z,No hyperparameter search backend available.

c              3   \   K   | ]$  }d |j                    d|j                           & yw)z - To install z run N)r   r*   ).0backends     r   	<genexpr>z,default_hp_search_backend.<locals>.<genexpr>w   s3      
 W\\N%0C0C0E/FG
s   *,)	"ALL_HYPERPARAMETER_SEARCH_BACKENDSvaluesr   lenr   loggerinfor)   join)rP   available_backendsr   s      r   default_hp_search_backendrY   l   s    1S1Z1Z1\wg`g`t`t`v'ww
"!!$))!"Q&KK)*++\]a\bbrs 
7
)) 
=DDF
 
	
  xs
   B:B:N)integrationsr   r   r   r   r   r   trainer_utilsr	   r
   r   r   utilsr   
get_loggerr/   rU   r   r8   r?   rE   r   rR   r2   rY   )rP   s   0r   <module>r^      s       
		H	%> >2./ .+0 +-. - <I.Zf:g&/6OGLL!7*& "
3 &s   'B