
    rhb                     P   d dl mZ 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| j6                        |  c} ZdefdZyc c} w )    )Optional   )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                   h    e Zd ZU eed<   dZe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/ai-insurance-compliance-backend/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   r   staticmethodr   intr&   r+   r0   classmethodr/   r   r   r   r   r   '   sX    
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
r4   r5   r6   r   r9   r   r:   r7   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)r4   r5   r6   r   r   r9   r   r:   r7   r&   r+   r   r   r   rH   rH   N   s9    DK' 'IS IS I+r   rH   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   rB   r   c                     t        |      S r   )r   r)   s     r   r+   zSigOptBackend.default_hp_spaceg   rD   r   NrE   r   r   r   rN   rN   ]   rF   r   rN   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   NrE   r   r   r   rT   rT   k   s4    D$ $KS KS K-r   rT   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 )Nr   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_backendrg   ~   s    1S1Z1Z1\wg`g`t`t`v'ww
"!!$))!"Q&KK)*++\]a\bbrs 
7
)) 
=DDF
 
	
  xs
   B:B:N)typingr   integrationsr   r   r   r   r	   r
   r   r   trainer_utilsr   r   r   r   r   utilsr   
get_loggerr4   rc   r   r=   rH   rN   rT   r   r`   r7   rg   )r^   s   0r   <module>rm      s    	 	 	   
		H	%> >2./ .+0 +./ .-. - <I.Zgiu:v&/6OGLL!7*& "
3 &s   ?B#