
    sgK                     D   d dl mZmZmZmZmZmZmZmZ d dl	m
Z
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 G d de      ZeeeefD  ci c]  }  e
| j2                        |  c} ZdefdZyc c} w )   )is_optuna_availableis_ray_tune_availableis_sigopt_availableis_wandb_availablerun_hp_search_optunarun_hp_search_rayrun_hp_search_sigoptrun_hp_search_wandb)HPSearchBackenddefault_hp_space_optunadefault_hp_space_raydefault_hp_space_sigoptdefault_hp_space_wandb)loggingc                   b    e Zd ZU eed<   dZe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     U/var/www/html/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_space2   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_available5   sC      "!$)),STXTdTdTfSgghi  #r   c                 >    d| j                   xs | j                   dS )Nz`pip install `)r   r   )clss    r   r-   z'HyperParamSearchBackendBase.pip_install;   s    s:#((;1==r   )__name__
__module____qualname__str__annotations__r   staticmethodr   intr$   r)   r.   classmethodr-   r   r   r   r   r   '   sT    
IK" ""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_availableC       "$$r   r   r   c                     t        |||fi |S r   )r   r    s        r   r$   zOptunaBackend.runG       #GXyKFKKr   c                     t        |      S r   )r   r'   s     r   r)   zOptunaBackend.default_hp_spaceJ       &u--r   N
r2   r3   r4   r   r7   r   r8   r5   r$   r)   r   r   r   r;   r;   @   4    D% %LS LS L.r   r;   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_availableR   s    $&&r   r   r   c                     t        |||fi |S r   )r   r    s        r   r$   zRayTuneBackend.runV   s     (IHHHr   c                     t        |      S r   )r   r'   s     r   r)   zRayTuneBackend.default_hp_spaceY   s    #E**r   N)r2   r3   r4   r   r   r7   r   r8   r5   r$   r)   r   r   r   rF   rF   N   s9    DK' 'IS IS I+r   rF   c                   6    e Zd ZdZed        ZdedefdZd Z	y)SigOptBackendsigoptc                      t               S r   )r   r   r   r   r   zSigOptBackend.is_available`   r>   r   r   r   c                     t        |||fi |S r   )r	   r    s        r   r$   zSigOptBackend.rund   r@   r   c                     t        |      S r   )r   r'   s     r   r)   zSigOptBackend.default_hp_spaceg   rB   r   NrC   r   r   r   rL   rL   ]   rD   r   rL   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_availablen   s    !##r   r   r   c                     t        |||fi |S r   )r
   r    s        r   r$   zWandbBackend.runr   s    "7HiJ6JJr   c                     t        |      S r   )r   r'   s     r   r)   zWandbBackend.default_hp_spaceu   s    %e,,r   NrC   r   r   r   rR   rR   k   s4    D$ $KS KS K-r   rR   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>   s3      
 W\\N%0C0C0E/FG
s   *,)	"ALL_HYPERPARAMETER_SEARCH_BACKENDSvaluesr   lenr   loggerinfor,   join)r]   available_backendsr   s      r   default_hp_search_backendrf   ~   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   r	   r
   trainer_utilsr   r   r   r   r   utilsr   
get_loggerr2   rb   r   r;   rF   rL   rR   r   r_   r5   rf   )r]   s   0r   <module>rk      s    	 	 	   
		H	%> >2./ .+0 +./ .-. - <I.Zgiu:v&/6OGLL!7*& "
3 &s   9B