Ë
    S^(hnœ ã                   óÂ  — d Z ddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddl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mZmZ ddlZddlZddlmZm Z  dd	lm!Z" dd
l#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*  e*jV                  e,«      Z- e)«       rddl.Z.dZ/	 ej`                  jE                  d«      Z1dZ2ejD                  jg                  e1«      ejD                  jg                  e/«      k\  Z4ddl5Z5e5jl                  jo                  d«      �dZ8ndZ8ej~                  j�                  d«      duxs ej~                  j�                  d«      duZAer3eAr1	 ej`                  jE                  d«      ZBe-j‡                  deB› d�«       ddlmDZD ddlEmFZFmGZG ddlHmIZImJZJmKZK ddlLmMZM ddl#mNZNmOZO d„ ZPd„ ZQd„ ZRd„ ZSd„ ZTd„ ZUd „ ZVd!„ ZWd"„ ZXd#„ ZYd$„ ZZd%„ Z[d&„ Z\d'„ Z]d(„ Z^d)„ Z_d*„ Z`d+„ Zad,ebd-ecd.eJfd/„Zdd,ebd-ecd.eJfd0„Zed,ebd-ecd.eJfd1„Zfd,ebd-ecd.eJfd2„Zgd3„ Zhd4„ Zi G d5„ d6eG«      Zjd7ed8ecfd9„Zk G d:„ d;ece«      Zl G d<„ d=eG«      Zm G d>„ d?eG«      Zn G d@„ dAeG«      Zo G dB„ dCeG«      Zp G dD„ dEep«      Zq G dF„ dGer«      Zs G dH„ dIeG«      Zt G dJ„ dKeG«      Zu G dL„ dMeG«      Zv G dN„ dOeG«      Zw G dP„ dQeG«      Zx G dR„ dSeG«      ZyeoenepetejemeueveqewexeydTœZzdU„ Z{y# ej`                  jr                  e:e;e<e=e>f$ r dZ1dZ2dZ4dZ8Y �ŒÛw xY w# ej`                  jr                  $ rW 	 ej`                  jE                  d«      ZBe-j‡                  deB› d�«       n!# ej`                  jr                  $ r dZAY nw xY wY �ŒÝw xY w)Vz+
Integrations with other Python libraries.
é    N)ÚasdictÚfields)ÚEnum)ÚPath)ÚTYPE_CHECKINGÚAnyÚDictÚLiteralÚOptionalÚUnioné   )ÚPreTrainedModelÚTFPreTrainedModel)Ú__version__)ÚPushToHubMixinÚflatten_dictÚis_datasets_availableÚis_pandas_availableÚis_tf_availableÚis_torch_availableÚloggingz3.43.2Úcomet_mlTzcomet.api_keyFÚneptunezneptune-clientzNeptune version z available.zNeptune-client version )Ú	modelcard)ÚProgressCallbackÚTrainerCallback)ÚPREFIX_CHECKPOINT_DIRÚBestRunÚIntervalStrategy)ÚParallelMode)ÚENV_VARS_TRUE_VALUESÚis_torch_xla_availablec                  óÄ   — t        j                  dd«      j                  «       t        v rt        j                  d«       yt        j                  j                  d«      d uS )NÚWANDB_DISABLEDÚ zÆUsing the `WANDB_DISABLED` environment variable is deprecated and will be removed in v5. Use the --report_to flag to control the integrations used for logging result (for instance --report_to none).FÚwandb)	ÚosÚgetenvÚupperr!   ÚloggerÚwarningÚ	importlibÚutilÚ	find_spec© ó    úi/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/transformers/integrations/integration_utils.pyÚis_wandb_availabler2   a   sQ   € ä	‡y�yÐ! 2Ó&×,Ñ,Ó.Ô2FÑFÜ�‰ðtô	
ð Ü�>‰>×#Ñ# GÓ,°DÐ8Ð8r0   c                  óD   — t         j                  j                  d«      d uS )NÚclearml©r,   r-   r.   r/   r0   r1   Úis_clearml_availabler6   l   ó   € Ü�>‰>×#Ñ# IÓ.°dÐ:Ð:r0   c                  ó&  — t        j                  dd«      j                  «       dk(  rt        j	                  d«       yt
        du ryt        du r%t        j	                  dt        t        t        «       yt        du rt        j	                  d«       yy)	NÚ
COMET_MODEr%   ÚDISABLEDzËUsing the `COMET_MODE=DISABLED` environment variable is deprecated and will be removed in v5. Use the --report_to flag to control the integrations used for logging result (for instance --report_to none).Fz­comet_ml version %s is installed, but version %s or higher is required. Please update comet_ml to the latest version to enable Comet logging with pip install 'comet-ml>=%s'.a#  comet_ml is installed but the Comet API Key is not configured. Please set the `COMET_API_KEY` environment variable to enable Comet logging. Check out the documentation for other ways of configuring it: https://www.comet.com/docs/v2/guides/experiment-management/configure-sdk/#set-the-api-keyT)
r'   r(   r)   r*   r+   Ú_is_comet_installedÚ_is_comet_recent_enoughÚ_comet_versionÚ_MIN_COMET_VERSIONÚ_is_comet_configuredr/   r0   r1   Úis_comet_availabler@   p   sŠ   € Ü	‡y�y�˜rÓ"×(Ñ(Ó*¨jÒ8Ü�‰ðtô	
ð ä˜eÑ#Øä %Ñ'Ü�‰ðtäÜÜô	
ð ä˜uÑ$Ü�‰ðhô	
ð àr0   c                  óŠ   — t         j                  j                  d«      d uxs! t         j                  j                  d«      d uS )NÚtensorboardÚtensorboardXr5   r/   r0   r1   Úis_tensorboard_availablerD   ‘   s7   € Ü�>‰>×#Ñ# MÓ2¸$Ð>ÒvÄ)Ç.Á.×BZÑBZÐ[iÓBjÐrvÐBvÐvr0   c                  óD   — t         j                  j                  d«      d uS )NÚoptunar5   r/   r0   r1   Úis_optuna_availablerG   •   ó   € Ü�>‰>×#Ñ# HÓ-°TÐ9Ð9r0   c                  óD   — t         j                  j                  d«      d uS )NÚrayr5   r/   r0   r1   Úis_ray_availablerK   ™   s   € Ü�>‰>×#Ñ# EÓ*°$Ð6Ð6r0   c                  óZ   — t        «       syt        j                  j                  d«      d uS )NFzray.tune)rK   r,   r-   r.   r/   r0   r1   Úis_ray_tune_availablerM   �   s%   € ÜÔØÜ�>‰>×#Ñ# JÓ/°tÐ;Ð;r0   c                  óD   — t         j                  j                  d«      d uS )NÚsigoptr5   r/   r0   r1   Úis_sigopt_availablerP   £   rH   r0   c                  óÄ   — t         j                  j                  d«      €yt         j                  j                  d«      €yt         j                  j                  d«      d uS )NÚazuremlFzazureml.corezazureml.core.runr5   r/   r0   r1   Úis_azureml_availablerS   §   sM   € Ü‡~�~×Ñ 	Ó*Ð2ØÜ‡~�~×Ñ Ó/Ð7ØÜ�>‰>×#Ñ#Ð$6Ó7¸tÐCÐCr0   c                  ó”   — t        j                  dd«      j                  «       dk(  ryt        j                  j                  d«      d uS )NÚDISABLE_MLFLOW_INTEGRATIONÚFALSEÚTRUEFÚmlflow)r'   r(   r)   r,   r-   r.   r/   r0   r1   Úis_mlflow_availablerY   ¯   s<   € Ü	‡y�yÐ-¨wÓ7×=Ñ=Ó?À6ÒIØÜ�>‰>×#Ñ# HÓ-°TÐ9Ð9r0   c                  ó‚   — d t         j                  j                  d«      t         j                  j                  d«      fvS )NÚdagshubrX   r5   r/   r0   r1   Úis_dagshub_availabler\   µ   s1   € Øœ	Ÿ™×0Ñ0°Ó;¼Y¿^¹^×=UÑ=UÐV^Ó=_Ð`Ð`Ð`r0   c                  ó   — t         S ©N)Ú_has_neptuner/   r0   r1   Úis_neptune_availabler`   ¹   s   € ÜÐr0   c                  óD   — t         j                  j                  d«      d uS )NÚ
codecarbonr5   r/   r0   r1   Úis_codecarbon_availablerc   ½   s   € Ü�>‰>×#Ñ# LÓ1¸Ð=Ð=r0   c                  óD   — t         j                  j                  d«      d uS )NÚflytekitr5   r/   r0   r1   Úis_flytekit_availablerf   Á   s   € Ü�>‰>×#Ñ# JÓ/°tÐ;Ð;r0   c                  óZ   — t        «       syt        j                  j                  d«      d uS )NFzflytekitplugins.deck)rf   r,   r-   r.   r/   r0   r1   Ú is_flyte_deck_standard_availablerh   Å   s&   € Ü Ô"ØÜ�>‰>×#Ñ#Ð$:Ó;À4ÐGÐGr0   c                  óD   — t         j                  j                  d«      d uS )NÚdvcliver5   r/   r0   r1   Úis_dvclive_availablerk   Ë   r7   r0   c                  óD   — t         j                  j                  d«      d uS )NÚswanlabr5   r/   r0   r1   Úis_swanlab_availablern   Ï   r7   r0   c                 óN  — t        «       r0dd l}t        | |j                  j                  «      r| j
                  S t        «       rt        | t        «      r| S t        «       rt        | t        «      r| S t        «       rt        | t        «      r| S t        d| j                  › �«      ‚)Nr   zUnknown type for trial )rG   rF   Ú
isinstanceÚtrialÚ	BaseTrialÚparamsrM   ÚdictrP   r2   ÚRuntimeErrorÚ	__class__)rq   rF   s     r1   Ú	hp_paramsrw   Ó   s€   € ÜÔÛä�e˜VŸ\™\×3Ñ3Ô4Ø—<‘<ÐÜÔÜ�eœTÔ"ØˆLäÔÜ�eœTÔ"ØˆLäÔÜ�eœTÔ"ØˆLä
Ð0°·±Ð0AÐBÓ
CÐCr0   Ún_trialsÚ	directionÚreturnc                 ó&  ‡ ‡‡— dd l ŠddlmŠ ‰ j                  j                  dk(  �r.dd‰j
                  fˆˆˆ fd„}|j                  dd «      }|j                  dd«      }|j                  dd	«      }t        |t        «      r|nd }|�d n|} ‰j                  d||d
œ|¤Ž}	|	j                  |||||¬«       |	j                  «       s@|	j                  }
t        t        |
j                  «      |
j                   |
j"                  «      S |	j$                  }|D �cg c]6  }t        t        |j                  «      |j&                  |j"                  «      ‘Œ8 c}S t)        |«      D ]©  }d ‰ _        d g}‰ j                  j,                  t.        j0                  k7  rt3        d«      ‚t4        j6                  j9                  |d¬«       ‰ j;                  d |d   ¬«       t=        ‰ dd «      �Œ„‰ j?                  «       }‰ jA                  |«      ‰ _        Œ« y c c}w )Nr   )Úrelease_memoryrq   c                 ón  •— d }|rPt        j                  |«      D ]8  }|j                  t        «      sŒt         j                  j                  ||«      }Œ: d ‰	_        ‰	j                  j                  dkD  r«‰	j                  j                  t        j                  k7  rt        d«      ‚‰	j                  | «       ‰j                  j                  | j                   | j"                  «      }|g}t$        j&                  j)                  |d¬«       ‰	j+                  || ¬«       n‰	j+                  || ¬«       t-        ‰	dd «      €&‰	j/                  «       }‰	j1                  |«      ‰	_         ‰‰	j2                  ‰	j4                  «      \  ‰	_        ‰	_        ‰	j6                  j9                  «        ‰	j                  S )Né   úConly support DDP optuna HPO for ParallelMode.DISTRIBUTED currently.r   ©Úsrc©Úresume_from_checkpointrq   Ú	objective)r'   ÚlistdirÚ
startswithr   ÚpathÚjoinr„   ÚargsÚ
world_sizeÚparallel_moder    ÚDISTRIBUTEDru   Úhp_spacerq   Ú
FixedTrialrs   ÚnumberÚtorchÚdistributedÚbroadcast_object_listÚtrainÚgetattrÚevaluateÚcompute_objectiveÚmodel_wrappedÚmodelÚacceleratorÚclear)
rq   Úcheckpoint_dirÚ
checkpointÚsubdirÚfixed_trialÚtrial_main_rank_listÚmetricsrF   r|   Útrainers
          €€€r1   Ú
_objectivez(run_hp_search_optuna.<locals>._objectiveî   sk  ø€ ØˆJÙÜ Ÿj™j¨Ó8ò J�FØ×(Ñ(Ô)>Õ?Ü%'§W¡W§\¡\°.À&Ó%I™
ðJð !%ˆGÔØ�|‰|×&Ñ&¨Ò*Ø—<‘<×-Ñ-´×1IÑ1IÒIÜ&Ð'lÓmÐmØ× Ñ  Ô'Ø$Ÿl™l×5Ñ5°e·l±lÀEÇLÁLÓQ�Ø(3 }Ð$Ü×!Ñ!×7Ñ7Ð8LÐRSÐ7ÔTØ—‘°ZÀu�ÕMà—‘°ZÀu�ÔMä�w ¨TÓ2Ð:Ø!×*Ñ*Ó,�Ø$+×$=Ñ$=¸gÓ$F�Ô!ñ 4BÀ'×BWÑBWÐY`×YfÑYfÓ3gÑ0ˆGÔ! 7¤=Ø×Ñ×%Ñ%Ô'à×$Ñ$Ð$r0   ÚtimeoutÚn_jobsr~   Úgc_after_trialF)ry   Ú
directions)rx   r£   r¤   r¥   r   r€   r‚   r„   r^   r/   )!rF   Úaccelerate.utils.memoryr|   r‰   Úprocess_indexÚTrialÚpoprp   ÚlistÚcreate_studyÚoptimizeÚ_is_multi_objectiveÚ
best_trialr   Ústrr�   Úvaluers   Úbest_trialsÚvaluesÚranger„   r‹   r    rŒ   ru   r�   r‘   r’   r“   r”   r•   r–   )r¡   rx   ry   Úkwargsr¢   r£   r¤   r¥   r¦   Ústudyr¯   r²   ÚbestÚirŸ   r    rF   r|   s   `               @@r1   Úrun_hp_search_optunar¹   è   sÖ  ú€ ÛÝ6à‡|�|×!Ñ! QÓ&ñ	%˜fŸl™l÷ 	%ð8 —*‘*˜Y¨Ó-ˆØ—‘˜H aÓ(ˆØŸ™Ð$4°eÓ<ˆÜ",¨Y¼Ô"=‘YÀ4ˆ
Ø&Ð2‘D¸	ˆ	Ø#�×#Ñ#ÐY¨iÀJÑYÐRXÑYˆØ�‰�z¨H¸gÈfÐesˆÔtØ×(Ñ(Ô*Ø×)Ñ)ˆJÜœ3˜z×0Ñ0Ó1°:×3CÑ3CÀZ×EVÑEVÓWÐWà×+Ñ+ˆKØT_Ö`ÈD”GœC §¡Ó,¨d¯k©k¸4¿;¹;ÕGÒ`Ð`ä�x“ò 
	GˆAØ $ˆGÔØ$( 6Ð Ø�|‰|×)Ñ)¬\×-EÑ-EÒEÜ"Ð#hÓiÐiÜ×Ñ×3Ñ3Ð4HÈaÐ3ÔPØ�M‰M°Ð=QÐRSÑ=TˆMÔUä�w ¨TÓ2Ñ:Ø!×*Ñ*Ó,�Ø$+×$=Ñ$=¸gÓ$F�Õ!ð
	Gð ùò as   Ä;Hc                 ó4  ‡‡— dd l Šdd lŠdt        fˆfd„}| j                  j                  s)ddlm} t        j                  d«        |d¬«      | _        | j                  t        «      }d | _        d	|vrad
di|d	<   | j                  j                  dkD  rd|d	   d<   d| j                  j                  dkD  rdndz   }t        j                  d|› d�«       |d	   j                  dd«      }|| j                  _        d|vrddlm}	  |	dg¬«      |d<   d|v r�ddlm}
m}m}m} t1        |d   |
|||f«      rn| j                  j2                  r'| j                  j4                  t6        j8                  k(  r1t;        dj=                  t?        |d   «      j@                  ¬«      «      ‚‰jB                  jE                  || ¬«      ŠtG        jH                  ‰«      ˆfd„«       }tK        ‰d«      r‰jL                  |_&         ‰jB                  jN                  |f| jQ                  d «      |dœ|¤Ž}|jS                  d|d d | j                  jT                  ¬«      }tW        |jX                  |jZ                  d   |j\                  |«      }|�| j_                  |«       |S ) Nr   rq   c                 óx  •— 	 ddl m} |j                  |«      r|j                  t        «       d |_        ‰j                  j                  «       }|rld|_        |j                  «       5 }t        t        |«      j                  t        › d�«      «      j                  «       }|j                  || ¬«       d d d «       n|j                  | ¬«       t        |dd «      €¶|j!                  «       }|j#                  |«      |_        |j%                  |j                  ddœ«       t'        j(                  «       5 }|j+                  |¬	«       ‰j                  j,                  j/                  |«      }‰j                  j1                  ||¬
«       d d d «       y y # t
        $ r Y �Œqw xY w# 1 sw Y   ŒÝxY w# 1 sw Y   y xY w)Nr   )ÚNotebookProgressCallbackr„   Ú*r‚   )rq   T)r„   Údone)r›   )rœ   )Útransformers.utils.notebookr¼   Úpop_callbackÚadd_callbackr   ÚModuleNotFoundErrorr„   r“   Úget_checkpointÚas_directoryÚnextr   Úglobr   Úas_posixr”   r•   r–   ÚupdateÚtempfileÚTemporaryDirectoryÚ_tune_save_checkpointÚ
CheckpointÚfrom_directoryÚreport)	rq   Úlocal_trainerr¼   rœ   r›   Úcheckpoint_pathr    Útemp_checkpoint_dirrJ   s	           €r1   r¢   z%run_hp_search_ray.<locals>._objective*  s§  ø€ ð	ÝLà×)Ñ)Ð*BÔCØ×*Ñ*Ô+;Ô<ð #'ˆÔà—Y‘Y×-Ñ-Ó/ˆ
Ùð '2ˆMÔ#à×(Ñ(Ó*ð Y¨nÜ"&¤t¨NÓ';×'@Ñ'@ÔDYÐCZÐZ[ÐA\Ó']Ó"^×"gÑ"gÓ"i�Ø×#Ñ#¸?ÐRWÐ#ÔX÷Yð Yð ×Ñ eÐÔ,ô �= +¨tÓ4Ð<Ø#×,Ñ,Ó.ˆGØ&3×&EÑ&EÀgÓ&NˆMÔ#à�N‰N¨×)@Ñ)@È$ÑOÔPä×,Ñ,Ó.ð AÐ2EØ×3Ñ3ÐCVÐ3ÔWØ ŸY™Y×1Ñ1×@Ñ@ÐATÓU�
Ø—	‘	× Ñ  °ZÐ Ô@÷Að Að =øô+ #ò 	Úð	ú÷Yð Yú÷Að Aús+   ƒ,F Á)AF$Ä5AF0Æ	F!Æ F!Æ$F-Æ0F9r   )ÚTrainerMemoryTrackerz�Memory tracking for your Trainer is currently enabled. Automatically disabling the memory tracker since the memory tracker is not serializable.T)Úskip_memory_metricsÚresources_per_trialÚcpur~   Úgpuz1 CPUz
 and 1 GPUr%   zgNo `resources_per_trial` arg was passed into `hyperparameter_search`. Setting it to a default value of z for each trial.Úprogress_reporter)ÚCLIReporterr„   )Úmetric_columnsÚ	scheduler)ÚASHASchedulerÚHyperBandForBOHBÚMedianStoppingRuleÚPopulationBasedTrainingaŽ  You are using {cls} as a scheduler but you haven't enabled evaluation during training. This means your trials will not report intermediate results to Ray Tune, and can thus not be stopped early or used to exploit other trials parameters. If this is what you want, do not use {cls}. If you would like to use {cls}, make sure you pass `do_eval=True` and `eval_strategy='steps'` in the Trainer `args`.)Úcls)rÏ   c                  óŽ  •— t        «       r³ddl}t        j                  j	                  |j
                  j                  «       d«      }t        j                  j                  d|«      }t        j                  j                  |«      }|t        j                  |j                  <   |j                  j                  |«        ‰| i |¤ŽS )a"  
        Wrapper around `tune.with_parameters` to ensure datasets_modules are loaded on each Actor.

        Without this, an ImportError will be thrown. See https://github.com/huggingface/transformers/issues/11565.

        Assumes that `_objective`, defined above, is a function.
        r   Nz__init__.pyÚdatasets_modules)r   Údatasets.loadr'   r‡   rˆ   ÚloadÚinit_dynamic_modulesr,   r-   Úspec_from_file_locationÚmodule_from_specÚsysÚmodulesÚnameÚloaderÚexec_module)r‰   rµ   ÚdatasetsÚdynamic_modules_pathÚspecrá   Ú	trainables         €r1   Ú dynamic_modules_import_trainablez;run_hp_search_ray.<locals>.dynamic_modules_import_trainable‡  s“   ø€ ô !Ô"Û ä#%§7¡7§<¡<°·±×0RÑ0RÓ0TÐVcÓ#dÐ ä—>‘>×9Ñ9Ð:LÐNbÓcˆDÜ(Ÿ~™~×>Ñ>¸tÓDÐØ%5ŒC�K‰K˜Ÿ	™	Ñ"Ø�K‰K×#Ñ#Ð$4Ô5Ù˜$Ð) &Ñ)Ð)r0   Ú
__mixins__)ÚconfigÚnum_samplesé   )ÚmetricÚmodeÚscope)0rJ   Ú	ray.trainrt   Ú_memory_trackerrÓ   Útrainer_utilsrÒ   r*   r+   rÀ   ÚTensorBoardCallbackr˜   r‰   Ún_gpuÚinfoÚgetÚ_n_gpuÚray.tunerØ   Úray.tune.schedulersrÛ   rÜ   rÝ   rÞ   rp   Údo_evalÚeval_strategyr   ÚNOru   ÚformatÚtypeÚ__name__ÚtuneÚwith_parametersÚ	functoolsÚwrapsÚhasattrrñ   Úrunr�   Úget_best_trialÚ	ray_scoper   Útrial_idÚlast_resultrò   rÁ   )r¡   rx   ry   rµ   r¢   rÒ   Ú
_tb_writerÚresource_msgÚgpus_per_trialrØ   rÛ   rÜ   rÝ   rÞ   rð   Úanalysisr¯   Úbest_runrJ   rï   s                     @@r1   Úrun_hp_search_rayr  &  sš  ù€ ÛÛð$Aœ$õ $AðL ×"Ñ"×6Ò6Ý8ä�‰ð<ô	
ñ
 #7È4Ô"PˆÔð ×%Ñ%Ô&9Ó:€JØ€G„Mð  FÑ*à).°¨
ˆÐ$Ñ%Ø�<‰<×Ñ Ò!Ø34ˆFÐ(Ñ)¨%Ñ0Ø°'·,±,×2DÑ2DÀqÒ2H¡,ÈbÑQˆÜ�‰ðà�Ð/ð1ô	
ð Ð1Ñ2×6Ñ6°u¸aÓ@€NØ(€G‡L�LÔð  &Ñ(Ý(á&1À+ÀÔ&OˆÐ"Ñ#à�fÑßtÓtô Ø�;Ñ -Ð1CÐEUÐWnÐ!oô
à—<‘<×'Ò'¨7¯<©<×+EÑ+EÔIY×I\ÑI\Ò+\Üð"÷
 #)¡&¬T°&¸Ñ2EÓ-F×-OÑ-O &Ó"Póð ð —‘×(Ñ(¨À7Ð(ÓK€Iä‡_�_�YÓó*ó  ð*ô( ˆy˜,Ô'Ø6?×6JÑ6JÐ(Ô3àˆs�x‰x�|‰|Ø(ðà×Ñ Ó%Øñð ñ	€Hð ×(Ñ(°À)ÈBÈQÀ-ÐW^×WcÑWc×WmÑWmÐ(Ón€JÜ�z×*Ñ*¨J×,BÑ,BÀ;Ñ,OÐQ[×QbÑQbÐdlÓm€HØÐØ×Ñ˜ZÔ(Ø€Or0   c           	      ór  — dd l }| j                  j                  dk(  �rUt        j                  j                  d«      dk\  �r |j                  d«       |j                  dd| j                  d «      d|dd	œgd
|¬«      }t        j                  d|j                  › �«       |j                  «       D �]8  }|5  d | _        | j                  j                  d
kD  rž| j                  j                  t         j"                  k7  rt%        d«      ‚| j'                  |j(                  «       t*        j,                  j/                  t1        j2                  | j                  «      d¬«       | j5                  d ¬«       n| j5                  d |j(                  ¬«       t7        | dd «      €&| j9                  «       }| j;                  |«      | _        |j=                  d| j                  «       d d d «       �Œ; t?        |jA                  «       «      d   }tC        |j                  |jD                  d   jF                  |jH                  «      }	|	S ddl m%}
  |
«       }|jM                  dd «      }|�|jO                  |«       |jQ                  «       jS                  d| j                  d «      d|dd	œgd
|d¬«      }t        j                  d|j                  › �«       |jT                  jV                  |jX                  k  �r|jQ                  |j                  «      j[                  «       jS                  «       }d | _        | j                  j                  d
kD  r”| j                  j                  t         j"                  k7  rt%        d«      ‚| j'                  |«       t*        j,                  j/                  t1        j2                  | j                  «      d¬«       | j5                  d ¬«       n| j5                  d |¬«       t7        | dd «      €&| j9                  «       }| j;                  |«      | _        d| j                  dœg}|jQ                  |j                  «      j]                  «       jS                  |j                  |¬«      }t        j                  d|j                  › d|j                  › d�«       |jQ                  |j                  «      j_                  «       }|jT                  jV                  |jX                  k  r�Œt?        |jQ                  |j                  «      ja                  «       j_                  «       jc                  «       «      d   }tC        |j                  |jF                  |jH                  «      }	|	S te        |«      D �](  }d | _        t?        t1        j2                  | j                  «      «      }| j                  j                  t         j"                  k7  rt%        d«      ‚t*        j,                  j/                  |d¬«       t1        jf                  ti        |«      «      }tk        |«      jm                  «       D ]"  \  }}|dk7  sŒto        | j                  ||«       Œ$ | j5                  d ¬«       t7        | dd «      ��Œ| j9                  «       }| j;                  |«      | _        �Œ+ y # 1 sw Y   �ŒxY w)Nr   rO   z8.0.0Úhuggingfacezhuggingface-tuneÚoffliner„   r­   )ré   r„   Ústrategyr~   )ré   r  Ú
parametersr    Úparallel_bandwidthÚbudgetz6created experiment: https://app.sigopt.com/experiment/zConly support DDP Sigopt HPO for ParallelMode.DISTRIBUTED currently.r€   )rƒ   r‚   )Ú
ConnectionÚproxies)ré   r  r    r  Úobservation_budgetÚproject©ré   r±   )Ú
suggestionr³   z"[suggestion_id, observation_id]: [ú, ú]Ú
local_rank)8rO   r‰   r¨   r,   ÚmetadataÚversionÚset_projectÚcreate_experimentr�   r*   rý   ÚidÚloopr„   rŠ   r‹   r    rŒ   ru   Ú_hp_search_setupr  r�   r‘   r’   ÚpickleÚdumpsr“   r”   r•   r–   Ú
log_metricr«   Úget_best_runsr   r³   r±   Úassignmentsr  rª   Úset_proxiesÚexperimentsÚcreateÚprogressÚobservation_countr!  ÚsuggestionsÚobservationsÚfetchÚbest_assignmentsÚiterate_pagesr´   ÚloadsÚbytesr   ÚitemsÚsetattr)r¡   rx   ry   rµ   rO   Ú
experimentr  r    r·   r  r  Úconnr   r$  r³   Úobsr¸   Úargs_main_rankr‰   Úkeyr±   s                        r1   Úrun_hp_search_sigoptrG  ¬  s˜  € Ûà‡|�|×!Ñ! QÓ&Ü×Ñ×%Ñ% hÓ/°7Ó:Ø×Ñ˜}Ô-à×1Ñ1Ø'ØØ"×+Ñ+¨DÓ1Ø"-¸IÐS]Ñ^Ð_Ø#$Øð 2ó ˆJô �K‰KÐPÐQ[×Q^ÑQ^ÐP_Ð`Ôaà!—‘Ó(ó C�Øñ CØ(,�GÔ%Ø—|‘|×.Ñ.°Ò2Ø"Ÿ<™<×5Ñ5¼×9QÑ9QÒQÜ".Ð/tÓ"uÐuØ×0Ñ0°·±Ô9Ü×)Ñ)×?Ñ?ÄÇÁÈWÏ\É\Ó@ZÐ`aÐ?ÔbØŸ™¸T˜ÕBàŸ™¸TÈÏÉ˜ÔQä˜w¨°TÓ:ÐBØ")×"2Ñ"2Ó"4˜Ø,3×,EÑ,EÀgÓ,N˜Ô)Ø—N‘N ;°×0AÑ0AÔB÷Cñ CðCô" ˜
×0Ñ0Ó2Ó3°AÑ6ˆDÜ˜tŸw™w¨¯©°KÑ(@×(FÑ(FÈ×HXÑHXÓYˆHðT ˆõQ *á“<ˆDØ—j‘j ¨DÓ1ˆGØÐ"Ø× Ñ  Ô)à×)Ñ)Ó+×2Ñ2Ø'Ø"×+Ñ+¨DÓ1Ø"-¸IÐS]Ñ^Ð_Ø#$Ø#+Ø%ð 3ó ˆJô �K‰KÐPÐQ[×Q^ÑQ^ÐP_Ð`Ôaà×%Ñ%×7Ñ7¸*×:WÑ:WÓWØ!×-Ñ-¨j¯m©mÓ<×HÑHÓJ×QÑQÓS�
Ø$(�Ô!Ø—<‘<×*Ñ*¨QÒ.Ø—|‘|×1Ñ1´\×5MÑ5MÒMÜ*Ð+pÓqÐqØ×,Ñ,¨ZÔ8Ü×%Ñ%×;Ñ;¼F¿L¹LÈÏÉÓ<VÐ\]Ð;Ô^Ø—M‘M¸�MÕ>à—M‘M¸ÀZ�MÔPä˜7 K°Ó6Ð>Ø%×.Ñ.Ó0�GØ(/×(AÑ(AÀ'Ó(J�GÔ%à#.¸×9JÑ9JÑKÐL�Ø×&Ñ& z§}¡}Ó5×BÑBÓD×KÑKÐWa×WdÑWdÐmsÐKÓt�Ü—‘Ð@ÀÇÁÀÈrÐRU×RXÑRXÐQYÐYZÐ[Ô\Ø!×-Ñ-¨j¯m©mÓ<×BÑBÓD�
ð' ×%Ñ%×7Ñ7¸*×:WÑ:WÔWô* ˜×(Ñ(¨¯©Ó7×HÑHÓJ×PÑPÓR×`Ñ`ÓbÓcÐdeÑfˆDÜ˜tŸw™w¨¯
©
°D×4DÑ4DÓEˆHØˆä�x“ó 	GˆAØ $ˆGÔÜ!¤&§,¡,¨w¯|©|Ó"<Ó=ˆNØ�|‰|×)Ñ)¬\×-EÑ-EÒEÜ"Ð#hÓiÐiÜ×Ñ×3Ñ3°NÈÐ3ÔJÜ—<‘<¤ nÓ 5Ó6ˆDÜ$ T›l×0Ñ0Ó2ò 6‘
��UØ˜,Ó&Ü˜GŸL™L¨#¨uÕ5ð6ð �M‰M°ˆMÔ6ä�w ¨TÓ2Ò:Ø!×*Ñ*Ó,�Ø$+×$=Ñ$=¸gÓ$F�Ö!ð	Gð ÷YCñ Cús   Â6D+Z,Ú,Z6	c                 óN  ‡ ‡‡‡‡— ddl m}  |«       st        d«      ‚dd lŠd}‰ j                  j
                  D ]  }t        |t        «      sŒd} n |s‰ j                  t        «       «       dg‰ j                  _
        d d d dœŠ|j                  d	d «      }|j                  d
d «      }|j                  dd «      }	|j                  dd «      }
|j                  dd«      Š‰ j                  d «      }‰|d   d<   ‰|d   d<   |	r|	|d<   ˆˆˆˆ ˆfd„}|s‰j                  |||
¬«      }n<dd lŠ|
r‰j                  j!                  |
«       ‰j                  j#                  |«       t$        j'                  d|› �«       ‰j)                  |||¬«       t+        ‰d   ‰d   ‰d   |«      S )Nr   )r2   z8This function needs wandb installed: `pip install wandb`r   FTr&   )Úrun_idr„   ÚhyperparametersÚsweep_idr"  ré   Úentityrõ   z	eval/lossÚgoalc                  óê  •— ‰	j                   r‰	j                   n‰	j                  «       } | j                  ‰j                  _        | j
                  j                  i ‰dœ«       ‰	j
                  }d ‰_        ‰j                  d t        |«      d   ¬«       t        ‰dd «      €^‰j                  «       }‰j                  |«      ‰_        t        |«      }‰|vr)t        j                  d‰› d|j!                  «       › �«       d}‰d   �/‰d	k(  r‰j                  ‰d   k  }n‰d
k(  r‰j                  ‰d   kD  }|s‰d   €,| j"                  ‰d<   ‰j                  ‰d<   t%        |«      ‰d<   ‰j                  S )N)r3  rõ   Ú_itemsr‚   r„   zProvided metric zU not found. This might result in unexpected sweeps charts. The available metrics are FrI  ÚminimizeÚmaximizerJ  )r  Úinitré   ÚstateÚ
trial_namerò   rÈ   r„   r“   Úvarsr”   r•   r–   Úrewrite_logsr*   r+   Úkeysr,  rt   )
r  rò   r    Úformat_metricsÚ
best_scorer¯   ry   rõ   r¡   r&   s
        €€€€€r1   r¢   z'run_hp_search_wandb.<locals>._objective+  sk  ø€ Ø Ÿ9š9ˆe�iŠi¨%¯*©*«,ˆØ#&§8¡8ˆ�‰Ô Ø�
‰
×Ñ¨"¸Ñ?Ô@Ø—‘ˆà ˆÔà�‰¨T¼¸f»ÀhÑ9OˆÔPä�7˜K¨Ó.Ð6Ø×&Ñ&Ó(ˆGØ '× 9Ñ 9¸'Ó BˆGÔÜ)¨'Ó2ˆNØ˜^Ñ+Ü—‘Ø& v hð /$Ø$2×$7Ñ$7Ó$9Ð#:ð<ôð ˆ
Ø�hÑÐ+Ø˜JÒ&Ø$×.Ñ.°¸KÑ1HÑH‘
Ø˜jÒ(Ø$×.Ñ.°¸KÑ1HÑH�
á˜ HÑ-Ð5Ø#&§6¡6ˆJ�xÑ Ø&-×&7Ñ&7ˆJ�{Ñ#Ü,0°«LˆJÐ(Ñ)à× Ñ Ð r0   )r"  rL  zwandb sweep id - )ÚfunctionÚcountrI  r„   rJ  )Úintegrationsr2   ÚImportErrorr&   Úcallback_handlerÚ	callbacksrp   ÚWandbCallbackrÁ   r‰   Ú	report_torª   r�   ÚsweepÚ	wandb.envÚenvÚ
set_entityr*  r*   rý   Úagentr   )r¡   rx   ry   rµ   r2   Úreporting_to_wandbÚcallbackrK  r"  ré   rL  Úsweep_configr¢   r¯   rõ   r&   s   ` `          @@@r1   Úrun_hp_search_wandbrj    s¡  ü€ Ý1áÔÜÐTÓUÐUÛð ÐØ×,Ñ,×6Ñ6ò ˆÜ�h¤Õ.Ø!%ÐÙðñ Ø×Ñœ]›_Ô-Ø%˜Y€G‡L�LÔØ ¨tÈÑM€JØ�z‰z˜* dÓ+€HØ�j‰j˜ DÓ)€GØ�:‰:�f˜dÓ#€DØ�Z‰Z˜ $Ó'€FØ�Z‰Z˜ +Ó.€Fà×#Ñ# DÓ)€LØ%.€L�Ñ˜6Ñ"Ø%+€L�Ñ˜6Ñ"ÙØ#ˆ�VÑ÷!ð !ñB Ø—;‘;˜|°WÀV�;ÓL‰ãáØ�I‰I× Ñ  Ô(Ø�	‰	×Ñ˜gÔ&ä
‡K�KÐ# H :Ð.Ô/Ø	‡K�K� :°X€KÔ>ä�:˜hÑ'¨°KÑ)@À*ÐM^ÑB_ÐaiÓjÐjr0   c                  óp  — g } t        «       rt        «       s| j                  d«       t        «       r| j                  d«       t	        «       r| j                  d«       t        «       r| j                  d«       t        «       r| j                  d«       t        «       r| j                  d«       t        «       r| j                  d«       t        «       r| j                  d«       t        «       r| j                  d	«       t        «       r| j                  d
«       t        «       r| j                  d«       | S )NÚazure_mlr   r[   rj   rX   r   rB   r&   rb   r4   rm   )rS   rY   Úappendr@   r\   rk   r`   rD   r2   rc   r6   rn   )r\  s    r1   Ú$get_available_reporting_integrationsrn  [  sï   € Ø€LÜÔÔ&9Ô&;Ø×Ñ˜JÔ'ÜÔØ×Ñ˜JÔ'ÜÔØ×Ñ˜IÔ&ÜÔØ×Ñ˜IÔ&ÜÔØ×Ñ˜HÔ%ÜÔØ×Ñ˜IÔ&ÜÔ!Ø×Ñ˜MÔ*ÜÔØ×Ñ˜GÔ$ÜÔ Ø×Ñ˜LÔ)ÜÔØ×Ñ˜IÔ&ÜÔØ×Ñ˜IÔ&ØÐr0   c                 óò   — i }d}t        |«      }d}t        |«      }| j                  «       D ]G  \  }}|j                  |«      r||d||d  z   <   Œ#|j                  |«      r||d||d  z   <   Œ@||d|z   <   ŒI |S )NÚeval_Útest_úeval/ztest/ztrain/)Úlenr@  r†   )ÚdÚnew_dÚeval_prefixÚeval_prefix_lenÚtest_prefixÚtest_prefix_lenÚkÚvs           r1   rV  rV  v  s™   € Ø€EØ€KÜ˜+Ó&€OØ€KÜ˜+Ó&€OØ—‘“	ò $‰ˆˆ1Ø�<‰<˜Ô$Ø34ˆE�'˜A˜oÐ.Ð/Ñ/Ò0Ø�\‰\˜+Ô&Ø34ˆE�'˜A˜oÐ.Ð/Ñ/Ò0à"#ˆE�(˜Q‘,Òð$ð €Lr0   c                   ó4   — e Zd ZdZdd„Zdd„Zd„ Zdd„Zd„ Zy)	rû   zé
    A [`TrainerCallback`] that sends the logs to [TensorBoard](https://www.tensorflow.org/tensorboard).

    Args:
        tb_writer (`SummaryWriter`, *optional*):
            The writer to use. Will instantiate one if not set.
    Nc                 óô   — t        «       }|st        d«      ‚|r	 ddlm} || _        || _        y d | _        || _        y # t
        $ r/ 	 ddlm} || _        n# t
        $ r
 d | _        Y nw xY wY || _        y w xY w)NzuTensorBoardCallback requires tensorboard to be installed. Either update your PyTorch version or install tensorboardX.r   )ÚSummaryWriter)rD   ru   Útorch.utils.tensorboardr~  Ú_SummaryWriterr]  rC   Ú	tb_writer)Úselfr�  Úhas_tensorboardr~  s       r1   Ú__init__zTensorBoardCallback.__init__�  s�   € Ü2Ó4ˆÙÜð)óð ñ ð
/ÝAà&3�Ô#ð #ˆ�ð #'ˆDÔØ"ˆ�øô ò /ð/Ý:à*7�DÕ'øÜ"ò /Ø*.�DÖ'ð/ûð #ˆ�ð/ús3   ›? ¿	A7Á	AÁA7ÁA*Á'A7Á)A*Á*A7Á6A7c                 ól   — |xs |j                   }| j                  �| j                  |¬«      | _        y y )N)Úlog_dir)Úlogging_dirr€  r�  )r‚  r‰   r†  s      r1   Ú_init_summary_writerz(TensorBoardCallback._init_summary_writer¦  s8   € ØÒ-˜T×-Ñ-ˆØ×ÑÐ*Ø!×0Ñ0¸Ð0ÓAˆD�Nð +r0   c                 ó  — |j                   sy d }|j                  r8|j                  }|�*t        j                  j                  |j                  |«      }| j                  €| j                  ||«       | j                  �…| j                  j                  d|j                  «       «       d|v rV|d   }t        |d«      rD|j                  �7|j                  j                  «       }| j                  j                  d|«       y y y y y )Nr‰   r˜   rò   Úmodel_config)Úis_world_process_zeroÚis_hyper_param_searchrT  r'   r‡   rˆ   r‡  r�  rˆ  Úadd_textÚto_json_stringr  rò   )	r‚  r‰   rS  Úcontrolrµ   r†  rT  r˜   Úmodel_config_jsons	            r1   Úon_train_beginz"TensorBoardCallback.on_train_begin«  sç   € Ø×*Ò*Øàˆà×&Ò&Ø×)Ñ)ˆJØÐ%ÜŸ'™'Ÿ,™, t×'7Ñ'7¸ÓD�à�>‰>Ð!Ø×%Ñ% d¨GÔ4à�>‰>Ð%Ø�N‰N×#Ñ# F¨D×,?Ñ,?Ó,AÔBØ˜&Ñ Ø˜w™�Ü˜5 (Ô+°·±Ð0HØ(-¯©×(CÑ(CÓ(EÐ%Ø—N‘N×+Ñ+¨NÐ<MÕNð 1IÐ+ð !ð &r0   c           
      ó(  — |j                   sy | j                  €| j                  |«       | j                  �Üt        |«      }|j	                  «       D ]£  \  }}t        |t        t        f«      r(| j                  j                  |||j                  «       ŒDt        |t        «      r(| j                  j                  |||j                  «       Œ|t        j                  d|› dt        |«      › d|› d�«       Œ¥ | j                  j                  «        y y )Nú)Trainer is attempting to log a value of "ú
" of type ú
 for key "zn" as a scalar. This invocation of Tensorboard's writer.add_scalar() is incorrect so we dropped this attribute.)r‹  r�  rˆ  rV  r@  rp   ÚintÚfloatÚ
add_scalarÚglobal_stepr°   r�  r*   r+   r  Úflush©r‚  r‰   rS  r�  Úlogsrµ   rz  r{  s           r1   Úon_logzTensorBoardCallback.on_logÁ  sì   € Ø×*Ò*Øà�>‰>Ð!Ø×%Ñ% dÔ+à�>‰>Ð%Ü Ó%ˆDØŸ
™
›ò ‘��1Ü˜a¤#¤u Ô.Ø—N‘N×-Ñ-¨a°°E×4EÑ4EÕFÜ ¤3Ô'Ø—N‘N×+Ñ+¨A¨q°%×2CÑ2CÕDä—N‘NðØ˜3˜j¬¨a«¨	°¸A¸3ð ?EðEõðð �N‰N× Ñ Õ"ð &r0   c                 ó`   — | j                   r"| j                   j                  «        d | _         y y r^   )r�  Úclose©r‚  r‰   rS  r�  rµ   s        r1   Úon_train_endz TensorBoardCallback.on_train_endØ  s%   € Ø�>Š>Ø�N‰N× Ñ Ô"Ø!ˆD�Nð r0   r^   )	r  Ú
__module__Ú__qualname__Ú__doc__r„  rˆ  r‘  r�  r¡  r/   r0   r1   rû   rû   †  s"   „ ñó#ó.Bò
Oó,#ó."r0   rû   r˜   Ú
output_dirc                 óˆ  ‡— t        |› d�d«      5 Št        | t        «      rt        | ‰¬«       nt	        «       r(t        | t
        «      rˆfd„}| j                  |¬«       nMt        «       rCt        | t        j                  j                  t        f«      rt        | d«      rt        | ‰¬«       d d d «       y # 1 sw Y   y xY w)Nz/model_architecture.txtzw+©Úfilec                 ó    •— t        | ‰¬«       y )Nr§  )Úprint)ÚsÚfs    €r1   Úprint_to_filez6save_model_architecture_to_file.<locals>.print_to_fileä  s   ø€ Ü�a˜aÖ r0   )Úprint_fnÚ
base_model)Úopenrp   r   rª  r   r   Úsummaryr   r�   ÚnnÚModuler   r  )r˜   r¥  r­  r¬  s      @r1   Úsave_model_architecture_to_filer´  Þ  s–   ø€ Ü	��Ð3Ð4°dÓ	;ð !¸qÜ�eœ_Ô-Ü�%˜aÖ ÜÔ¤:¨eÔ5FÔ#Gô!ð �M‰M =ˆMÕ1ÜÔ!Ü�uœuŸx™xŸ™´Ð?Ô@ÄWÈUÐT`ÔEaä�%˜aÕ ÷!÷ !ñ !ús   ‘BB8Â8Cc                   óL   — e Zd ZdZdZdZdZedefd„«       Z	e
dedd fd„«       Zy	)
ÚWandbLogModelz)Enum of possible log model values in W&B.rœ   ÚendÚfalserz   c                 óF   — | t         j                  t         j                  fv S )zYCheck if the value corresponds to a state where the `WANDB_LOG_MODEL` setting is enabled.)r¶  Ú
CHECKPOINTÚEND©r‚  s    r1   Ú
is_enabledzWandbLogModel.is_enabledõ  s    € ð œ×0Ñ0´-×2CÑ2CÐDÐDÐDr0   r±   c                 ó  — t        |t        «      st        dt        |«      › �«      ‚|j	                  «       t
        v r"t        dt        j                  d«      › d�«      ‚t        j                  d|› d�«       t        j                  S )Nz>Expecting to have a string `WANDB_LOG_MODEL` setting, but got zSetting `WANDB_LOG_MODEL` as ÚWANDB_LOG_MODELzn is deprecated and will be removed in version 5 of transformers. Use one of `'end'` or `'checkpoint'` instead.z6Received unrecognized `WANDB_LOG_MODEL` setting value=z ; so disabling `WANDB_LOG_MODEL`)rp   r°   Ú
ValueErrorr  r)   r!   ÚDeprecationWarningr'   r(   r*   rý   r¶  r»  r+   rV   )rß   r±   s     r1   Ú	_missing_zWandbLogModel._missing_ú  s‹   € ä˜%¤Ô%ÜÐ]Ô^bÐchÓ^iÐ]jÐkÓlÐlØ�;‰;‹=Ô0Ñ0Ü$Ø/´·	±	Ð:KÓ0LÐ/Mð N[ð [óð ô 	�‰ØDÀUÀGÐKkÐlô	
ô ×"Ñ"Ð"r0   N)r  r¢  r£  r¤  rº  r»  rV   ÚpropertyÚboolr½  Úclassmethodr   rÂ  r/   r0   r1   r¶  r¶  î  sR   „ Ù3à€JØ
€CØ€EàðE˜Dò Eó ðEð ð#˜cð # oò #ó ñ#r0   r¶  c                   ó@   — e Zd ZdZd„ Zd„ Zd
d„Zdd„Zdd„Zd„ Z	d	„ Z
y)r`  z{
    A [`TrainerCallback`] that logs metrics, media, model checkpoints to [Weight and Biases](https://www.wandb.com/).
    c                 ó¢   — t        «       }|st        d«      ‚|rdd l}|| _        d| _        t        t        j                  dd«      «      | _        y )NzFWandbCallback requires wandb to be installed. Run `pip install wandb`.r   Fr¿  r¸  )	r2   ru   r&   Ú_wandbÚ_initializedr¶  r'   r(   Ú
_log_model)r‚  Ú	has_wandbr&   s      r1   r„  zWandbCallback.__init__  sF   € Ü&Ó(ˆ	ÙÜÐgÓhÐhÙÛàˆDŒKØ!ˆÔÜ'¬¯	©	Ð2CÀWÓ(MÓNˆ�r0   c           	      ó
  — | j                   €yd| _        ddlm} |j                  �rƒt
        j                  d«       i |j                  «       ¥}t        |d«      rR|j                  �Ft        |j                  t        «      r|j                  n|j                  j                  «       }i |¥|¥}t        |d«      r |j                  �|j                  }i d|i¥|¥}|j                  }	i }
|	�|	|
d<   |j                  |
d	<   nQ|j                  �E|j                  |
d<   |j                  |j                  k(  r| j                   j!                  d
d¬«       | j                   j"                  €2 | j                   j$                  d*dt'        j(                  dd«      i|
¤Ž | j                   j                  j+                  |d¬«       t-        | j                   dd«      r9| j                   j/                  d«       | j                   j/                  ddd¬«       t'        j(                  dd«      }t1        «       s6|dv r2| j                   j3                  ||t5        d|j6                  «      ¬«       | j                   j"                  j9                  d¬«       	 |j;                  «       | j                   j                  d<   | j@                  jB                  �rátE        jF                  «       5 }|j                  �|j                  |j                  k(  r#d| j                   j"                  jH                  › �n"d| j                   j"                  jJ                  › �}| j                   jM                  |d t        |d«      r|j                  j                  «       nd| j                   j                  jO                  d«      dd!œ¬"«      }tQ        ||«       tS        |«      jU                  d«      D ]X  }|jW                  «       sŒ|jY                  |jJ                  d#¬$«      5 }|j[                  |j]                  «       «       ddd«       ŒZ | j                   j"                  j_                  |d%g¬&«       d'| j                   j"                  ja                  «       › d(�}tb        xjd                  d)|› �z  c_2        ddd«       yyy# t<        $ r t
        j                  d«       Y �Œ|$ r t
        j?                  d«       Y �Œ7w xY w# 1 sw Y   �ŒxY w# 1 sw Y   yxY w)+u  
        Setup the optional Weights & Biases (*wandb*) integration.

        One can subclass and override this method to customize the setup if needed. Find more information
        [here](https://docs.wandb.ai/guides/integrations/huggingface). You can also override the following environment
        variables:

        Environment:
        - **WANDB_LOG_MODEL** (`str`, *optional*, defaults to `"false"`):
            Whether to log model and checkpoints during training. Can be `"end"`, `"checkpoint"` or `"false"`. If set
            to `"end"`, the model will be uploaded at the end of training. If set to `"checkpoint"`, the checkpoint
            will be uploaded every `args.save_steps` . If set to `"false"`, the model will not be uploaded. Use along
            with [`~transformers.TrainingArguments.load_best_model_at_end`] to upload best model.

            <Deprecated version="5.0">

            Setting `WANDB_LOG_MODEL` as `bool` will be deprecated in version 5 of ðŸ¤— Transformers.

            </Deprecated>
        - **WANDB_WATCH** (`str`, *optional* defaults to `"false"`):
            Can be `"gradients"`, `"all"`, `"parameters"`, or `"false"`. Set to `"all"` to log gradients and
            parameters.
        - **WANDB_PROJECT** (`str`, *optional*, defaults to `"huggingface"`):
            Set this to a custom string to store results in a different project.
        - **WANDB_DISABLED** (`bool`, *optional*, defaults to `False`):
            Whether to disable wandb entirely. Set `WANDB_DISABLED=true` to disable.
        NTr   )ÚConfigErrorz`Automatic Weights & Biases logging enabled, to disable set os.environ["WANDB_DISABLED"] = "true"rò   Úpeft_configré   ÚgroupzÉThe `run_name` is currently set to the same value as `TrainingArguments.output_dir`. If this was not intended, please specify a different run name by setting the `TrainingArguments.run_name` parameter.F)Úrepeatr"  ÚWANDB_PROJECTr  )Úallow_val_changeÚdefine_metricútrain/global_stepr½   )Ústep_metricÚ	step_syncÚWANDB_WATCHr¸  )Úallr  Ú	gradientséd   )ÚlogÚlog_freqÚtransformers_trainer)Úcodeúmodel/num_parameterszZCould not log the number of model parameters in Weights & Biases due to an AttributeError.zbA ConfigError was raised whilst setting the number of model parameters in Weights & Biases config.úmodel-r˜   )rŠ  Únum_parametersÚinitial_model©ré   r  r(  Úwb©rö   r¯  ©Úaliasesz™[<img src="https://raw.githubusercontent.com/wandb/assets/main/wandb-github-badge-28.svg" alt="Visualize in Weights & Biases" width="200" height="32"/>](ú)ú
r/   )3rÈ  rÉ  Úwandb.sdk.lib.config_utilrÍ  r‹  r*   rý   Úto_dictr  rò   rp   rt   rÎ  rT  Úrun_namer¥  Útermwarnr  rR  r'   r(   rÈ   r”   rÓ  r"   ÚwatchÚmaxÚlogging_stepsÚ_labelrá  ÚAttributeErrorr+   rÊ  r½  rÉ   rÊ   r,  ré   ÚArtifactrþ   r´  r   rÆ   Úis_fileÚnew_fileÚwriteÚ
read_bytesÚlog_artifactÚget_urlr   ÚAUTOGENERATED_TRAINER_COMMENT)r‚  r‰   rS  r˜   rµ   ÚWandbConfigErrorÚcombined_dictrŠ  rÎ  rT  Ú	init_argsÚ_watch_modelÚtemp_dirÚ
model_nameÚmodel_artifactr¬  ÚfaÚbadge_markdowns                     r1   ÚsetupzWandbCallback.setup  sm  € ð8 �;‰;ÐØØ ˆÔõ 	Nà×&Ó&Ü�K‰KØrôð /˜tŸ|™|›~Ð.ˆMä�u˜hÔ'¨E¯L©LÐ,DÜ/9¸%¿,¹,ÌÔ/M˜uŸ|š|ÐSX×S_ÑS_×SgÑSgÓSi�Ø A <Ð A°=Ð A�Ü�u˜mÔ,°×1BÑ1BÐ1NØ#×/Ñ/�Ø Q M°;Ð#?Ð QÀ=Ð Q�Ø×)Ñ)ˆJØˆIØÐ%Ø$.�	˜&Ñ!Ø%)§]¡]�	˜'Ò"Ø—‘Ð*Ø$(§M¡M�	˜&Ñ!Ø—=‘= D§O¡OÒ3Ø—K‘K×(Ñ(ðCà$ð )ô ð �{‰{�‰Ð&Ø �—‘× Ñ ñ ÜŸI™I o°}ÓEðàòð
 �K‰K×Ñ×%Ñ% mÀdÐ%ÔKô �t—{‘{ O°TÔ:Ø—‘×)Ñ)Ð*=Ô>Ø—‘×)Ñ)¨#Ð;NÐZ^Ð)Ô_ô Ÿ9™9 ]°GÓ<ˆLÜ)Ô+°Ð@bÑ0bØ—‘×!Ñ! %¨\ÄCÈÈU×M`ÑM`ÓDaÐ!ÔbØ�K‰K�O‰O×"Ñ"Ð(>Ð"Ô?ð	Ø=B×=QÑ=QÓ=S�—‘×"Ñ"Ð#9Ñ:ð �‰×)Ó)Ü×0Ñ0Ó2ð U°hð !ŸM™MÐ1°T·]±]ÀdÇoÁoÒ5Uð ! §¡§¡×!3Ñ!3Ð 4Ñ5à% d§k¡k§o¡o×&:Ñ&:Ð%;Ð<ð ð
 &*§[¡[×%9Ñ%9Ø'Ø$äFMÈeÐU]ÔF^¨E¯L©L×,@Ñ,@Ô,BÐdhØ.2¯k©k×.@Ñ.@×.DÑ.DÐE[Ó.\Ø-1ñ"ð &:ó &�Nô 4°E¸8ÔDä! (›^×0Ñ0°Ó5ò 9˜ØŸ9™9�;Ø!/×!8Ñ!8¸¿¹ÀdÐ!8Ó!Kð 9ÈrØ "§¡¨¯©«Ô 8÷9ð 9ð9ð —K‘K—O‘O×0Ñ0°È,ÈÐ0ÔXð-à-1¯[©[¯_©_×-DÑ-DÓ-FÐ,GÀqðJð #ô ×;Ò;ÀÀNÐCSÐ?TÑTÕ;÷=Uð Uð *ðu 'øô` "ò Ü—‘Øp÷ð $ò Ü—‘Øx÷ðú÷69ñ 9ú÷)Uð UúsD   Ê'R, ËDS:Ï.S:Ð S-Ð+A6S:Ò,S*ÓS*Ó)S*Ó-S7Ó2S:Ó:TNc                 óÎ   — | j                   €y |j                  }|r(| j                   j                  «        d| _        d |_        | j                  s | j
                  |||fi |¤Ž y y ©NF)rÈ  rŒ  ÚfinishrÉ  rì  r  )r‚  r‰   rS  r�  r˜   rµ   Ú	hp_searchs          r1   r‘  zWandbCallback.on_train_begin™  sa   € Ø�;‰;ÐØØ×/Ñ/ˆ	ÙØ�K‰K×ÑÔ Ø %ˆDÔØ ˆDŒMØ× Ò ØˆD�J‰J�t˜U EÑ4¨VÓ4ð !r0   c           	      ód  — | j                   €y | j                  j                  �rn| j                  �r`|j                  �rRddlm}  ||||dg¬«      }t        j                  «       5 }	|j                  |	«       |j                  slt        | j                   j                  «      j                  «       D �
�ci c]3  \  }
}t        |t        j                   «      r|
j#                  d«      s|
|“Œ5 c}}
nKd|j$                  › �|j&                  d|j(                  d| j                   j*                  j-                  d«      i}d	|d
<   t.        j1                  d«       |j2                  �|j2                  |j4                  k(  r#d| j                   j6                  j8                  › �n"d| j                   j6                  j:                  › �}t=        ||	«       | j                   j?                  |d|¬«      }tA        |	«      jC                  d«      D ]X  }|jE                  «       sŒ|jG                  |j:                  d¬«      5 }|jI                  |jK                  «       «       d d d «       ŒZ | j                   j6                  jM                  |d
g¬«       d d d «       y y y y c c}}
w # 1 sw Y   ŒžxY w# 1 sw Y   y xY w)Nr   ©ÚTrainerÚfake©r‰   r˜   Úprocessing_classÚeval_datasetÚ_rr  ztrain/total_flossrß  TÚfinal_modelzLogging model artifacts. ...rà  r˜   rã  r½   rä  rå  ræ  )'rÈ  rÊ  r½  rÉ  r‹  r¡   r  rÉ   rÊ   Ú
save_modelÚload_best_model_at_endrt   r±  r@  rp   ÚnumbersÚNumberr†   Úmetric_for_best_modelÚbest_metricÚ
total_flosrò   rþ   r*   rý   rì  r¥  r  r,  ré   r´  ró  r   rÆ   rô  rõ  rö  r÷  rø  )r‚  r‰   rS  r�  r˜   r  rµ   r  Úfake_trainerrÿ  rz  r{  r(  r   Úartifactr¬  r  s                    r1   r¡  zWandbCallback.on_train_end¤  sX  € Ø�;‰;ÐØØ�?‰?×%Ó%¨$×*;Ó*;À×@[Ó@[Ý)á"¨°EÐL\ÐlrÐksÔtˆLÜ×,Ñ,Ó.ð P°(Ø×'Ñ'¨Ô1ð  ×6Ò6ô %)¨¯©×)<Ñ)<Ó$=×$CÑ$CÓ$E÷á ˜A˜qÜ% a¬¯©Ô8ÀÇÁÈcÔARð ˜1™ôð   × :Ñ :Ð;Ð<¸e×>OÑ>OØ+¨U×-=Ñ-=Ø.°·±×0BÑ0B×0FÑ0FÐG]Ó0^ðð ð +/�˜Ñ'Ü—‘Ð:Ô;ð Ÿ™Ð-°·±À$Ç/Á/Ò1Qð ˜TŸ[™[Ÿ_™_×/Ñ/Ð0Ñ1à! $§+¡+§/¡/×"6Ñ"6Ð!7Ð8ð ô 0°°xÔ@àŸ;™;×/Ñ/°ZÀgÐX`Ð/Óa�Ü˜h›×,Ñ,¨SÓ1ò 5�AØ—y‘y•{Ø%×.Ñ.¨q¯v©v¸DÐ.ÓAð 5ÀRØŸH™H Q§\¡\£^Ô4÷5ð 5ð5ð —‘—‘×,Ñ,¨XÀ¸Ð,ÔO÷=Pð Pð	 A\Ð*;Ð%ùó÷25ð 5ú÷9Pð Pús>   Á&AJ&Â48JÃ,D,J&ÈJ&È6 JÉ2J&ÊJ&ÊJ#ÊJ&Ê&J/c                 óÆ  — g d¢}| j                   €y | j                  s| j                  |||«       |j                  rŸ|j	                  «       D ]-  \  }}	||v sŒ|	| j                   j
                  j                  |<   Œ/ |j	                  «       D ��	ci c]  \  }}	||vsŒ||	“Œ }
}}	t        |
«      }
| j                   j                  i |
¥d|j                  i¥«       y y c c}	}w )N©Útrain_runtimeÚtrain_samples_per_secondÚtrain_steps_per_secondÚ
train_lossr  rÔ  )
rÈ  rÉ  r  r‹  r@  r  r±  rV  rÛ  r™  ©r‚  r‰   rS  r�  r˜   rœ  rµ   Úsingle_value_scalarsrz  r{  Únon_scalar_logss              r1   r�  zWandbCallback.on_logË  sÙ   € ò 
Ðð �;‰;ÐØØ× Ò Ø�J‰J�t˜U EÔ*Ø×&Ò&ØŸ
™
›ò 3‘��1ØÐ,Ò,Ø12�D—K‘K—O‘O×+Ñ+¨AÒ.ð3ð 15·
±
³×^©¨¨1ÀÐI]Ò@]˜q !™tÐ^ˆOÑ^Ü*¨?Ó;ˆOØ�K‰K�O‰OÐW˜ÐWÐ0CÀU×EVÑEVÑWÕXð 'ùó _s   ÂCÂCc                 ó
  — | j                   t        j                  k(  �rß| j                  �rÑ|j                  �rÃt        | j                  j                  «      j                  «       D ��ci c]3  \  }}t        |t        j                  «      r|j                  d«      s||“Œ5 }}}| j                  j                  j                  d«      |d<   d|j                  › �}t         j"                  j%                  |j&                  |«      }	t(        j+                  d|› d�«       |j,                  �|j,                  |j&                  k(  r#d| j                  j.                  j0                  › �n"d| j                  j.                  j2                  › �}
| j                  j5                  |
d|¬«      }|j7                  |	«       | j                  j9                  |d	t;        |j<                  d
«      › �d|j                  › �g¬«       y y y y c c}}w )Nr  rß  úcheckpoint-ú Logging checkpoint artifacts in z. ...rà  r˜   rã  Úepoch_r   Úcheckpoint_global_step_ræ  )rÊ  r¶  rº  rÉ  r‹  rt   rÈ  r±  r@  rp   r  r  r†   rò   rþ   r™  r'   r‡   rˆ   r¥  r*   rý   rì  r  r,  ré   ró  Úadd_dirrø  ÚroundÚepoch)r‚  r‰   rS  r�  rµ   rz  r{  Úcheckpoint_metadataÚckpt_dirÚartifact_pathÚcheckpoint_namer  s               r1   Úon_savezWandbCallback.on_saveà  s¹  € Ø�?‰?œm×6Ñ6Ó6¸4×;LÓ;LÐQV×QlÓQlô ! §¡×!4Ñ!4Ó5×;Ñ;Ó=÷#á�A�qÜ˜a¤§¡Ô0¸¿¹ÀcÔ9Jð �1‘ð#Ðñ #ð
 ;?¿+¹+×:LÑ:L×:PÑ:PÐQgÓ:hÐÐ 6Ñ7à$ U×%6Ñ%6Ð$7Ð8ˆHÜŸG™GŸL™L¨¯©¸(ÓCˆMÜ�K‰KÐ:¸8¸*ÀEÐJÔKð —M‘MÐ)¨T¯]©]¸d¿o¹oÒ-Mð ˜Ÿ™Ÿ™×+Ñ+Ð,Ñ-à˜dŸk™kŸo™o×2Ñ2Ð3Ð4ð ð
 —{‘{×+Ñ+°ÀwÐYlÐ+ÓmˆHØ×Ñ˜]Ô+Ø�K‰K×$Ñ$Ø V¬E°%·+±+¸qÓ,AÐ+BÐ#CÐG^Ð_d×_pÑ_pÐ^qÐErÐ"sð %õ ð% RmÐ;LÐ6ùó#s   Á)8G?c                 óÄ   — | j                   €y | j                  s | j                  ||fi |¤Ž |j                  r't	        |«      }| j                   j                  |«       y y r^   )rÈ  rÉ  r  r‹  rV  rÛ  ©r‚  r‰   rS  r�  r    rµ   s         r1   Ú
on_predictzWandbCallback.on_predict÷  sU   € Ø�;‰;ÐØØ× Ò ØˆD�J‰J�t˜UÑ- fÒ-Ø×&Ò&Ü" 7Ó+ˆGØ�K‰K�O‰O˜GÕ$ð 'r0   r^   ©NN©r  r¢  r£  r¤  r„  r  r‘  r¡  r�  r0  r3  r/   r0   r1   r`  r`    s1   „ ñò	Oò|Uó|	5ó%PóNYò*ó.%r0   r`  c                   ó8   — e Zd ZdZd„ Zd„ Zd	d„Zd
d„Zd„ Zd„ Z	y)ÚCometCallbackz_
    A [`TrainerCallback`] that sends the logs to [Comet ML](https://www.comet.com/site/).
    c                 ó‚   — t         du st        du rt        dt        › dt        › d�«      ‚d| _        d| _        d | _        y )NFz!CometCallback requires comet-ml>=z- to be installed. Run `pip install comet-ml>=z`.)r;   r<   ru   r>   rÉ  Ú_log_assetsÚ_experimentr¼  s    r1   r„  zCometCallback.__init__  s`   € Ü %Ñ'Ô+BÀeÑ+KÜØ3Ô4FÐ3GÐGtô  vHð  uIð  IKð  Lóð ð "ˆÔØ ˆÔØˆÕr0   c                 óV  — d| _         t        j                  dd«      j                  «       }|dv rd| _        |j
                  �ræt        j                  d«      }d}d}|�@|j                  «       }|dk(  rd}n(|dk(  rd	}n |d
v r|}n|rt        j                  d|«       y|j                  r|�t        j                  d|«       d}ddl
}|j                  �7|j                  |j                  k7  r |j                  |j                  ¬«      }	n |j                  «       }	 |j                  |||	¬«      | _        | j                  j!                  |d¬«       d|j#                  «       i}
t%        |d«      r+|j&                  �|j&                  j#                  «       }||
d<   t%        |d«      r|j(                  �|j(                  }||
d<   | j                  j+                  |
ddd¬«       |j                  r8t-        |dd«      }t-        |dd«      }| j                  j/                  ||¬«       yyy)a—  
        Setup the optional Comet integration.

        Environment:
        - **COMET_MODE** (`str`, *optional*, default to `get_or_create`):
            Control whether to create and log to a new Comet experiment or append to an existing experiment.
            It accepts the following values:
                * `get_or_create`: Decides automatically depending if
                  `COMET_EXPERIMENT_KEY` is set and whether an Experiment
                  with that key already exists or not.
                * `create`: Always create a new Comet Experiment.
                * `get`: Always try to append to an Existing Comet Experiment.
                  Requires `COMET_EXPERIMENT_KEY` to be set.
                * `ONLINE`: **deprecated**, used to create an online
                  Experiment. Use `COMET_START_ONLINE=1` instead.
                * `OFFLINE`: **deprecated**, used to created an offline
                  Experiment. Use `COMET_START_ONLINE=0` instead.
                * `DISABLED`: **deprecated**, used to disable Comet logging.
                  Use the `--report_to` flag to control the integrations used
                  for logging result instead.
        - **COMET_PROJECT_NAME** (`str`, *optional*):
            Comet project name for experiments.
        - **COMET_LOG_ASSETS** (`str`, *optional*, defaults to `TRUE`):
            Whether or not to log training assets (tf event logs, checkpoints, etc), to Comet. Can be `TRUE`, or
            `FALSE`.

        For a number of configurable items in the environment, see
        [here](https://www.comet.com/docs/v2/guides/experiment-management/configure-sdk/#explore-comet-configuration-options).
        TÚCOMET_LOG_ASSETSrV   >   Ú1rW   r9   NÚonliner  F)rþ   Úget_or_creater6  z:Invalid COMET_MODE env value %r, Comet logging is disabledzjHyperparameter Search is enabled, forcing the creation of new experimetns, COMET_MODE value %r  is ignoredr6  r   )ré   )r>  rö   Úexperiment_configÚtransformers)Ú	frameworkr‰   rò   rÎ  Úmanual)rB  ÚsourceÚflatten_nestedrT  Útrial_params)Úoptimization_idr  )rÉ  r'   r(   r)   r9  r‹  Úlowerr*   r+   rŒ  r   rì  r¥  ÚExperimentConfigÚstartr:  Ú!__internal_api__set_model_graph__rë  r  rò   rÎ  Ú __internal_api__log_parameters__r”   Úlog_optimization)r‚  r‰   rS  r˜   Ú
log_assetsÚcomet_old_moderö   r>  r   r@  rs   rŠ  rÎ  rG  Úoptimization_paramss                  r1   r  zCometCallback.setup  s'  € ð< !ˆÔÜ—Y‘YÐ1°7Ó;×AÑAÓCˆ
Ø˜Ñ&Ø#ˆDÔØ×&Ó&ÜŸY™Y |Ó4ˆNàˆDØˆFàÐ)Ø!/×!5Ñ!5Ó!7�à! XÒ-Ø!‘FØ# yÒ0Ø"‘FØ#Ð'IÑIØ)‘DÙ#Ü—N‘NÐ#_ÐaoÔpØð ×*Ò*ØÐ#Ü—N‘Nð EØ&ôð  �ãð �}‰}Ð(¨T¯]©]¸d¿o¹oÒ-MØ$= H×$=Ñ$=À4Ç=Á=Ô$QÑ!à$= H×$=Ñ$=Ó$?Ð!à-˜xŸ~™~°VÀ$ÐZkÔlˆDÔØ×Ñ×>Ñ>¸uÐP^Ð>Ô_à˜dŸl™l›nÐ-ˆFä�u˜hÔ'¨E¯L©LÐ,DØ$Ÿ|™|×3Ñ3Ó5�Ø#/��xÑ Ü�u˜mÔ,°×1BÑ1BÐ1NØ#×/Ñ/�Ø(3��}Ñ%à×Ñ×=Ñ=Ø .¸ÐRVð >ô ð ×*Ò*Ü")¨%°¸tÓ"D�Ü&-¨e°^ÀTÓ&JÐ#à× Ñ ×1Ñ1À/Ð^qÐ1Õrð	 +ði 'r0   Nc                 óD   — | j                   s| j                  |||«       y y r^   ©rÉ  r  ©r‚  r‰   rS  r�  r˜   rµ   s         r1   r‘  zCometCallback.on_train_begink  ó    € Ø× Ò Ø�J‰J�t˜U EÕ*ð !r0   c                 óò   — | j                   s| j                  |||«       |j                  rL| j                  �?t	        |«      }| j                  j                  ||j                  |j                  d¬«       y y y )NrA  ©Ústepr+  rB  ©rÉ  r  r‹  r:  rV  Ú__internal_api__log_metrics__r™  r+  )r‚  r‰   rS  r�  r˜   rœ  rµ   Úrewritten_logss           r1   r�  zCometCallback.on_logo  sq   € Ø× Ò Ø�J‰J�t˜U EÔ*Ø×&Ò&Ø×ÑÐ+Ü!-¨dÓ!3�Ø× Ñ ×>Ñ>Ø"¨×):Ñ):À%Ç+Á+ÐYgð ?õ ð ,ð 'r0   c                 óX  — | j                   rž|j                  r‘| j                  �V| j                  du rHt        j                  d«       | j                  j                  |j                  dd|j                  ¬«       |j                  r"| j                  j                  «        d| _         y y y y )NTz(Logging checkpoints. This may take time.)Ú	recursiveÚlog_file_namerW  F)rÉ  r‹  r:  r9  r*   rý   Úlog_asset_folderr¥  r™  rŒ  Úcleanr   s        r1   r¡  zCometCallback.on_train_endy  s™   € Ø×Ò ×!<Ò!<Ø×ÑÐ+Ø×#Ñ# tÑ+Ü—K‘KÐ JÔKØ×$Ñ$×5Ñ5ØŸ™°4ÀtÐRW×RcÑRcð 6ô ð
 ×*Ò*Ø× Ñ ×&Ñ&Ô(Ø$)�Õ!ð +ð "=Ðr0   c                 óô   — | j                   s| j                  ||d ¬«       |j                  rL| j                  �?t	        |«      }| j                  j                  ||j                  |j                  d¬«       y y y )N)r˜   rA  rV  rX  )r‚  r‰   rS  r�  r    rµ   Úrewritten_metricss          r1   r3  zCometCallback.on_predict‡  sr   € Ø× Ò Ø�J‰J�t˜U¨$ˆJÔ/Ø×&Ò&¨4×+;Ñ+;Ð+GÜ ,¨WÓ 5ÐØ×Ñ×:Ñ:Ø!¨×(9Ñ(9ÀÇÁÐXfð ;õ ð ,HÐ&r0   r^   r4  )
r  r¢  r£  r¤  r„  r  r‘  r�  r¡  r3  r/   r0   r1   r7  r7    s(   „ ñò òZsóx+óò*ór0   r7  c                   ó&   — e Zd ZdZdd„Zd„ Zdd„Zy)ÚAzureMLCallbackzh
    A [`TrainerCallback`] that sends the logs to [AzureML](https://pypi.org/project/azureml-sdk/).
    Nc                 ó<   — t        «       st        d«      ‚|| _        y )NzPAzureMLCallback requires azureml to be installed. Run `pip install azureml-sdk`.)rS   ru   Úazureml_run)r‚  re  s     r1   r„  zAzureMLCallback.__init__–  s   € Ü#Ô%ÜÐqÓrÐrØ&ˆÕr0   c                 ón   — ddl m} | j                  €#|j                  r|j	                  «       | _        y y y )Nr   ©ÚRun)Úazureml.core.runrh  re  r‹  Úget_context)r‚  r‰   rS  r�  rµ   rh  s         r1   Úon_init_endzAzureMLCallback.on_init_end›  s1   € Ý(à×ÑÐ#¨×(CÒ(CØ"Ÿ™Ó0ˆDÕð )DÐ#r0   c                 óÒ   — | j                   r[|j                  rN|j                  «       D ]:  \  }}t        |t        t
        f«      sŒ| j                   j                  |||¬«       Œ< y y y )N)Údescription)re  r‹  r@  rp   r–  r—  rÛ  r›  s           r1   r�  zAzureMLCallback.on_log¡  s]   € Ø×Ò × ;Ò ;ØŸ
™
›ò >‘��1Ü˜a¤#¤u Õ.Ø×$Ñ$×(Ñ(¨¨A¸1Ð(Õ=ñ>ð !<Ðr0   r^   )r  r¢  r£  r¤  r„  rk  r�  r/   r0   r1   rc  rc  ‘  s   „ ñó'ò
1ô>r0   rc  c                   ó>   — e Zd ZdZd„ Zd„ Zd
d„Zd
d„Zd„ Zd„ Z	d	„ Z
y)ÚMLflowCallbackz²
    A [`TrainerCallback`] that sends the logs to [MLflow](https://www.mlflow.org/). Can be disabled by setting
    environment variable `DISABLE_MLFLOW_INTEGRATION = TRUE`.
    c                 ó  — t        «       st        d«      ‚dd l}|j                  j                  j
                  | _        |j                  j                  j                  | _        d| _	        d| _
        d| _        || _        y )NzIMLflowCallback requires mlflow to be installed. Run `pip install mlflow`.r   F)rY   ru   rX   ÚutilsÚ
validationÚMAX_PARAM_VAL_LENGTHÚ_MAX_PARAM_VAL_LENGTHÚMAX_PARAMS_TAGS_PER_BATCHÚ_MAX_PARAMS_TAGS_PER_BATCHrÉ  Ú_auto_end_runÚ_log_artifactsÚ_ml_flow)r‚  rX   s     r1   r„  zMLflowCallback.__init__®  sf   € Ü"Ô$ÜÐjÓkÐkÛà%+§\¡\×%<Ñ%<×%QÑ%QˆÔ"Ø*0¯,©,×*AÑ*A×*[Ñ*[ˆÔ'à!ˆÔØ"ˆÔØ#ˆÔØˆ�r0   c           
      óì
  — t        j                  dd«      j                  «       t        v | _        t        j                  dd«      j                  «       t        v | _        t        j                  dd«      | _        t        j                  dd«      | _        t        j                  dd«      j                  «       t        v | _        t        j                  dd«      | _	        t        j                  d	d«      | _
        t        j                  j                  | j                  j                  «      t        j                  j                  d
«      k\  | _        t"        j%                  d| j                  › d|j&                  › d| j
                  › d| j                  › �«       |j(                  �rÆ| j                  j+                  «       sj| j                  rH| j                  j-                  | j                  «       t"        j%                  d| j                  › �«       nFt"        j%                  d«       n0t"        j%                  d| j                  j/                  «       › �«       | j                  j1                  «       �| j
                  s| j                  r­| j                  r%| j                  j3                  | j                  «       | j                  j5                  |j&                  | j
                  ¬«       t"        j%                  d| j                  j1                  «       j6                  j8                  › �«       d| _        |j=                  «       }t?        |d«      r,|j@                  � |j@                  j=                  «       }i |¥|¥}| j                  rtC        |«      n|}tE        |jG                  «       «      D ]F  \  }}tI        tK        |«      «      | jL                  kD  sŒ(t"        jO                  d|› d|› d�«       ||= ŒH tE        |jG                  «       «      }| j                  rg| j                  jQ                  «       rMtS        | j                  «      }	|	tI        |«      k  r*t"        j%                  dtI        |«      › d|	› d�«       |d|	 }tU        dtI        |«      | jV                  «      D ]y  }
| j                   r7| j                  jY                  t[        ||
|
| jV                  z    «      d¬«       ŒF| j                  jY                  t[        ||
|
| jV                  z    «      «       Œ{ t        j                  dd«      }|r0t]        j^                  |«      }| j                  ja                  |«       d| _1        y)a»  
        Setup the optional MLflow integration.

        Environment:
        - **HF_MLFLOW_LOG_ARTIFACTS** (`str`, *optional*):
            Whether to use MLflow `.log_artifact()` facility to log artifacts. This only makes sense if logging to a
            remote server, e.g. s3 or GCS. If set to `True` or *1*, will copy each saved checkpoint on each save in
            [`TrainingArguments`]'s `output_dir` to the local or remote artifact storage. Using it without a remote
            storage will just copy the files to your artifact location.
        - **MLFLOW_TRACKING_URI** (`str`, *optional*):
            Whether to store runs at a specific path or remote server. Unset by default, which skips setting the
            tracking URI entirely.
        - **MLFLOW_EXPERIMENT_NAME** (`str`, *optional*, defaults to `None`):
            Whether to use an MLflow experiment_name under which to launch the run. Default to `None` which will point
            to the `Default` experiment in MLflow. Otherwise, it is a case sensitive name of the experiment to be
            activated. If an experiment with this name does not exist, a new experiment with this name is created.
        - **MLFLOW_TAGS** (`str`, *optional*):
            A string dump of a dictionary of key/value pair to be added to the MLflow run as tags. Example:
            `os.environ['MLFLOW_TAGS']='{"release.candidate": "RC1", "release.version": "2.2.0"}'`.
        - **MLFLOW_NESTED_RUN** (`str`, *optional*):
            Whether to use MLflow nested runs. If set to `True` or *1*, will create a nested run inside the current
            run.
        - **MLFLOW_RUN_ID** (`str`, *optional*):
            Allow to reattach to an existing run which can be useful when resuming training from a checkpoint. When
            `MLFLOW_RUN_ID` environment variable is set, `start_run` attempts to resume a run with the specified run ID
            and other parameters are ignored.
        - **MLFLOW_FLATTEN_PARAMS** (`str`, *optional*, defaults to `False`):
            Whether to flatten the parameters dictionary before logging.
        - **MLFLOW_MAX_LOG_PARAMS** (`int`, *optional*):
            Set the maximum number of parameters to log in the run.
        ÚHF_MLFLOW_LOG_ARTIFACTSrV   ÚMLFLOW_NESTED_RUNÚMLFLOW_TRACKING_URINÚMLFLOW_EXPERIMENT_NAMEÚMLFLOW_FLATTEN_PARAMSÚMLFLOW_RUN_IDÚMLFLOW_MAX_LOG_PARAMSz2.8.0zMLflow experiment_name=z, run_name=z	, nested=z, tracking_uri=zMLflow tracking URI is set to zdEnvironment variable `MLFLOW_TRACKING_URI` is not provided and therefore will not be explicitly set.)rì  ÚnestedzMLflow run started with run_id=Trò   r“  z" for key "zá" as a parameter. MLflow's log_param() only accepts values no longer than 250 characters so we dropped this attribute. You can use `MLFLOW_FLATTEN_PARAMS` environment variable to flatten the parameters and avoid this message.z.Reducing the number of parameters to log from z to ú.r   F)ÚsynchronousÚMLFLOW_TAGS)2r'   r(   r)   r!   rx  Ú_nested_runÚ_tracking_uriÚ_experiment_nameÚ_flatten_paramsÚ_run_idÚ_max_log_paramsÚ	packagingr)  Úparsery  r   Ú
_async_logr*   Údebugrì  r‹  Úis_tracking_uri_setÚset_tracking_uriÚget_tracking_uriÚ
active_runÚset_experimentÚ	start_runrý   rI  rw  rë  r  rò   r   r«   r@  rs  r°   rt  r+   Úisdigitr–  r´   rv  Ú
log_paramsrt   Újsonr>  Úset_tagsrÉ  )r‚  r‰   rS  r˜   rü  rŠ  ré   r±   Úcombined_dict_itemsÚmax_log_paramsr¸   Úmlflow_tagss               r1   r  zMLflowCallback.setup»  ss  € ô@ !Ÿi™iÐ(AÀ7ÓK×QÑQÓSÔWkÐkˆÔÜŸ9™9Ð%8¸'ÓB×HÑHÓJÔNbÐbˆÔÜŸY™YÐ'<¸dÓCˆÔÜ "§	¡	Ð*BÀDÓ IˆÔÜ!Ÿy™yÐ)@À'ÓJ×PÑPÓRÔVjÐjˆÔÜ—y‘y °$Ó7ˆŒÜ!Ÿy™yÐ)@À$ÓGˆÔô
 $×+Ñ+×1Ñ1°$·-±-×2KÑ2KÓLÔPY×PaÑPa×PgÑPgÐhoÓPpÑpˆŒä�‰Ø% d×&;Ñ&;Ð%<¸KÈÏÉÀÐV_Ð`d×`pÑ`pÐ_qð rØ!×/Ñ/Ð0ð2ô	
ð ×&Ó&Ø—=‘=×4Ñ4Ô6Ø×%Ò%Ø—M‘M×2Ñ2°4×3EÑ3EÔFÜ—L‘LÐ#AÀ$×BTÑBTÐAUÐ!VÕWä—L‘Lð+õô
 —‘Ð=¸d¿m¹m×>\Ñ>\Ó>^Ð=_Ð`Ôaà�}‰}×'Ñ'Ó)Ð1°T×5EÒ5EÈÏÊØ×(Ò(à—M‘M×0Ñ0°×1FÑ1FÔGØ—‘×'Ñ'°·±Àt×GWÑGWÐ'ÔXÜ—‘Ð>¸t¿}¹}×?WÑ?WÓ?Y×?^Ñ?^×?eÑ?eÐ>fÐgÔhØ%)�Ô"Ø ŸL™L›NˆMÜ�u˜hÔ'¨E¯L©LÐ,DØ$Ÿ|™|×3Ñ3Ó5�Ø A <Ð A°=Ð A�Ø;?×;OÒ;OœL¨Ô7ÐUbˆMä# M×$7Ñ$7Ó$9Ó:ò 	,‘��eä”s˜5“z“? T×%?Ñ%?Ó?Ü—N‘NØCÀEÀ7È+ÐVZÐU[ð \/ð /ôð & dÑ+ð	,ô #' }×':Ñ':Ó'<Ó"=ÐØ×#Ò#¨×(<Ñ(<×(DÑ(DÔ(FÜ!$ T×%9Ñ%9Ó!:�Ø!¤CÐ(;Ó$<Ò<Ü—L‘LØHÌÐM`ÓIaÐHbÐbfÐguÐfvÐvwÐxôð +>¸o¸~Ð*NÐ'Ü˜1œcÐ"5Ó6¸×8WÑ8WÓXò q�Ø—?’?Ø—M‘M×,Ñ,ÜÐ0°°Q¸×9XÑ9XÑ5XÐYÓZÐhmð -õ ð —M‘M×,Ñ,¬TÐ2EÀaÈ!Èd×NmÑNmÑJmÐ2nÓ-oÕpðqô Ÿ)™) M°4Ó8ˆKÙÜ"Ÿj™j¨Ó5�Ø—‘×&Ñ& {Ô3Ø ˆÕr0   Nc                 óD   — | j                   s| j                  |||«       y y r^   rR  rS  s         r1   r‘  zMLflowCallback.on_train_begin&  rT  r0   c           
      óR  — | j                   s| j                  |||«       |j                  rüi }|j                  «       D ]Š  \  }}	t	        |	t
        t        f«      r|	||<   Œ"t	        |	t        j                  «      r'|	j                  «       dk(  r|	j                  «       ||<   Œct        j                  d|	› dt        |	«      › d|› d�«       ŒŒ | j                  r)| j                  j!                  ||j"                  d¬«       y | j                  j!                  ||j"                  ¬«       y y )	Nr~   r“  r”  r•  zc" as a metric. MLflow's log_metric() only accepts float and int types so we dropped this attribute.F)r    rW  r„  )r    rW  )rÉ  r  r‹  r@  rp   r–  r—  r�   ÚTensorÚnumelÚitemr*   r+   r  rŽ  ry  Úlog_metricsr™  )
r‚  r‰   rS  r�  rœ  r˜   rµ   r    rz  r{  s
             r1   r�  zMLflowCallback.on_log*  s  € Ø× Ò Ø�J‰J�t˜U EÔ*Ø×&Ò&ØˆGØŸ
™
›ò 	‘��1Ü˜a¤#¤u Ô.Ø!"�G˜A’JÜ ¤5§<¡<Ô0°Q·W±W³YÀ!²^Ø!"§¡£�G˜A’Jä—N‘NØCÀAÀ3ÀjÔQUÐVWÓQXÐPYÐYcÐdeÐcfð goð oõð	ð �ŠØ—‘×)Ñ)°'À×@QÑ@QÐ_dÐ)Õeà—‘×)Ñ)°'À×@QÑ@QÐ)ÕRð! 'r0   c                 ó¼   — | j                   rP|j                  rC| j                  r6| j                  j	                  «       r| j                  j                  «        y y y y y r^   )rÉ  r‹  rw  ry  r“  Úend_runr   s        r1   r¡  zMLflowCallback.on_train_end?  sL   € Ø×Ò ×!<Ò!<Ø×!Ò! d§m¡m×&>Ñ&>Ô&@Ø—‘×%Ñ%Õ'ð 'AÐ!ð "=Ðr0   c                 óŽ  — | j                   r¹|j                  r¬| j                  rŸd|j                  › �}t        j
                  j                  |j                  |«      }t        j                  d|› d�«       | j                  j                  j                  |d|i| j                  j                  j                  «       ¬«       y y y y )Nr%  r&  z. This may take time.Ú
model_path)Ú	artifactsÚpython_model)rÉ  r‹  rx  r™  r'   r‡   rˆ   r¥  r*   rý   ry  ÚpyfuncÚ	log_modelÚPythonModel©r‚  r‰   rS  r�  rµ   r-  r.  s          r1   r0  zMLflowCallback.on_saveD  s¨   € Ø×Ò ×!<Ò!<À×ATÒATØ$ U×%6Ñ%6Ð$7Ð8ˆHÜŸG™GŸL™L¨¯©¸(ÓCˆMÜ�K‰KÐ:¸8¸*ÐDYÐZÔ[Ø�M‰M× Ñ ×*Ñ*ØØ'¨Ð7Ø!Ÿ]™]×1Ñ1×=Ñ=Ó?ð +õ ð	 BUÐ!<Ðr0   c                 óÊ   — | j                   rWt        t        | j                  dd «      «      r6| j                  j	                  «       �| j                  j                  «        y y y y )Nr“  )rw  Úcallabler”   ry  r“  r¤  r¼  s    r1   Ú__del__zMLflowCallback.__del__O  sU   € ð ×ÒÜœ §¡°¸dÓCÔDØ—‘×(Ñ(Ó*Ð6à�M‰M×!Ñ!Õ#ð 7ð Eð r0   r^   )r  r¢  r£  r¤  r„  r  r‘  r�  r¡  r0  r¯  r/   r0   r1   ro  ro  ¨  s-   „ ñò
òi!óV+óSò*(ò
	ó$r0   ro  c                   ó2   ‡ — e Zd ZdZˆ fd„Zˆ fd„Zd„ Zˆ xZS )ÚDagsHubCallbackzh
    A [`TrainerCallback`] that logs to [DagsHub](https://dagshub.com/). Extends [`MLflowCallback`]
    c                 óf   •— t         ‰| �  «        t        «       st        d«      ‚ddlm} || _        y )NzLDagsHubCallback requires dagshub to be installed. Run `pip install dagshub`.r   )ÚRepo)Úsuperr„  r\   r]  Údagshub.uploadr³  )r‚  r³  rv   s     €r1   r„  zDagsHubCallback.__init___  s*   ø€ Ü‰ÑÔÜ#Ô%ÜÐlÓmÐmå'àˆ�	r0   c                 ól  •— t        j                  dd«      j                  «       t        v | _        t        j                  d«      xs d| _        t        j                  d«      | _        | j                  | j                  j                  t         j                  «      d   | j                  j                  t         j                  «      d   j                  d«      d	   t        j                  d
«      xs d¬«      | _
        t        d«      | _        | j                  €t        d«      ‚t        ‰| �<  |i |¤Ž y)zñ
        Setup the DagsHub's Logging integration.

        Environment:
        - **HF_DAGSHUB_LOG_ARTIFACTS** (`str`, *optional*):
                Whether to save the data and model artifacts for the experiment. Default to `False`.
        ÚHF_DAGSHUB_LOG_ARTIFACTSrV   ÚHF_DAGSHUB_MODEL_NAMEÚmainr}  éþÿÿÿéÿÿÿÿrƒ  r   ÚBRANCH)Úownerré   Úbranchr§  NzpDagsHubCallback requires the `MLFLOW_TRACKING_URI` environment variable to be set. Did you run `dagshub.init()`?)r'   r(   r)   r!   Úlog_artifactsré   Úremoter³  ÚsplitÚsepÚrepor   r‡   ru   r´  r  )r‚  r‰   rµ   rv   s      €r1   r  zDagsHubCallback.setuph  sø   ø€ ô  ŸY™YÐ'AÀ7ÓK×QÑQÓSÔWkÐkˆÔÜ—I‘IÐ5Ó6Ò@¸&ˆŒ	Ü—i‘iÐ 5Ó6ˆŒØ—I‘IØ—+‘+×#Ñ#¤B§F¡FÓ+¨BÑ/Ø—‘×"Ñ"¤2§6¡6Ó*¨2Ñ.×4Ñ4°SÓ9¸!Ñ<Ü—9‘9˜XÓ&Ò0¨&ð ó 
ˆŒ	ô
 ˜Ó%ˆŒ	à�;‰;ÐÜð%óð ô
 	‰‰�tÐ&˜vÓ&r0   c                 ój  — | j                   r§t        | dd «      rRt        j                  | j                  j
                  t        j                  j                  |j                  d«      «       | j                  j                  t        | j                  «      «      j                  |j                  «       y y )NÚtrain_dataloaderz
dataset.pt)r¿  r”   r�   ÚsaverÅ  Údatasetr'   r‡   rˆ   r¥  rÃ  Ú	directoryr°   r)  r   s        r1   r¡  zDagsHubCallback.on_train_endƒ  st   € Ø×ÒÜ�tÐ/°Ô6Ü—
‘
˜4×0Ñ0×8Ñ8¼"¿'¹'¿,¹,ÀtÇÁÐXdÓ:eÔfà�I‰I×Ñ¤ D§I¡I£Ó/×7Ñ7¸¿¹ÕHð	 r0   )r  r¢  r£  r¤  r„  r  r¡  Ú__classcell__©rv   s   @r1   r±  r±  Z  s   ø„ ñôô'ö6Ir0   r±  c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚNeptuneMissingConfigurationc                 ó$   •— t         ‰| �  d«       y )NaA  
        ------ Unsupported ---- We were not able to create new runs. You provided a custom Neptune run to
        `NeptuneCallback` with the `run` argument. For the integration to work fully, provide your `api_token` and
        `project` by saving them as environment variables or passing them to the callback.
        )r´  r„  )r‚  rv   s    €r1   r„  z$NeptuneMissingConfiguration.__init__Œ  s   ø€ Ü‰Ñðõ	
r0   )r  r¢  r£  r„  rÉ  rÊ  s   @r1   rÌ  rÌ  ‹  s   ø„ ÷
ð 
r0   rÌ  c                   ó0  — e Zd ZdZdZdZdZdZdZdhZ	dddd	dd
ddœde
e   de
e   de
e   dedede
e   fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ «       Zed„ «       Zd„ Zd„ Zd„ Zd„ Zdedefd „Zd!„ Zd*d"„Zd#„ Zd$„ Zd%„ Zd*d&„Z e!d'„ «       Z"d*d(e
e#ee$f      fd)„Z%y)+ÚNeptuneCallbacka  TrainerCallback that sends the logs to [Neptune](https://app.neptune.ai).

    Args:
        api_token (`str`, *optional*): Neptune API token obtained upon registration.
            You can leave this argument out if you have saved your token to the `NEPTUNE_API_TOKEN` environment
            variable (strongly recommended). See full setup instructions in the
            [docs](https://docs.neptune.ai/setup/installation).
        project (`str`, *optional*): Name of an existing Neptune project, in the form "workspace-name/project-name".
            You can find and copy the name in Neptune from the project settings -> Properties. If None (default), the
            value of the `NEPTUNE_PROJECT` environment variable is used.
        name (`str`, *optional*): Custom name for the run.
        base_namespace (`str`, *optional*, defaults to "finetuning"): In the Neptune run, the root namespace
            that will contain all of the metadata logged by the callback.
        log_parameters (`bool`, *optional*, defaults to `True`):
            If True, logs all Trainer arguments and model parameters provided by the Trainer.
        log_checkpoints (`str`, *optional*): If "same", uploads checkpoints whenever they are saved by the Trainer.
            If "last", uploads only the most recently saved checkpoint. If "best", uploads the best checkpoint (among
            the ones saved by the Trainer). If `None`, does not upload checkpoints.
        run (`Run`, *optional*): Pass a Neptune run object if you want to continue logging to an existing run.
            Read more about resuming runs in the [docs](https://docs.neptune.ai/logging/to_existing_object).
        **neptune_run_kwargs (*optional*):
            Additional keyword arguments to be passed directly to the
            [`neptune.init_run()`](https://docs.neptune.ai/api/neptune#init_run) function when a new run is created.

    For instructions and examples, see the [Transformers integration
    guide](https://docs.neptune.ai/integrations/transformers) in the Neptune documentation.
    z%source_code/integrations/transformersÚmodel_parametersrq   rF  Útrainer_parametersztrain/epochNÚ
finetuningT)Ú	api_tokenr"  ré   Úbase_namespacer  Úlog_parametersÚlog_checkpointsrÓ  r"  ré   rÔ  rÕ  rÖ  c                óæ  — t        «       st        d«      ‚	 ddlm}	 ddlm}
  |
d|t        t        d «      f«        |
d|t        t        d «      f«        |
d|t        t        d «      f«        |
d|t        «        |
d	||	t        d «      f«        |
d
|t        «        |
d|t        t        d «      f«       || _        || _        || _        || _        d | _        d| _        d | _        d| _        |||dœ|¥| _        d | _        | j                  d u| _        d | _        | j                  dv rd| j                  › �| _        d| _        y d| _        d| _        y # t        $ r ddlm}
 ddlm}	 Y �ŒLw xY w)NzwNeptuneCallback requires the Neptune client library to be installed. To install the library, run `pip install neptune`.r   rg  )Úverify_typerÓ  r"  ré   rÔ  r  rÕ  rÖ  F)rÓ  r"  ré   >   r·   Úlastzcheckpoints/TÚcheckpoints)r`   rÀ  r   rh  Úneptune.internal.utilsrØ  r]  Úneptune.new.internal.utilsÚ#neptune.new.metadata_containers.runr°   r  rÄ  Ú_base_namespace_pathÚ_log_parametersÚ_log_checkpointsÚ_initial_runÚ_runÚ_is_monitoring_runrŠ  Ú_force_reset_monitoring_runÚ_init_run_kwargsÚ_volatile_checkpoints_dirÚ_should_upload_checkpointÚ_recent_checkpoint_pathÚ_target_checkpoints_namespaceÚ*_should_clean_recently_uploaded_checkpoint)r‚  rÓ  r"  ré   rÔ  r  rÕ  rÖ  Úneptune_run_kwargsrh  rØ  s              r1   r„  zNeptuneCallback.__init__º  s€  € ô $Ô%ÜðEóð ð
	@Ý#Ý:ñ
 	�K ¬S´$°t³*Ð,=Ô>Ù�I˜w¬¬d°4«jÐ(9Ô:Ù�F˜D¤3¬¨T«
Ð"3Ô4ÙÐ$ n´cÔ:Ù�E˜3 ¤d¨4£jÐ 1Ô2ÙÐ$ n´dÔ;ÙÐ% ¼¼dÀ4»jÐ8IÔJà$2ˆÔ!Ø-ˆÔØ /ˆÔØ+.ˆÔàˆŒ	Ø"'ˆÔØˆŒØ+0ˆÔ(Ø.7ÀGÐUYÑ pÐ]oÐ pˆÔà)-ˆÔ&Ø)-×)>Ñ)>ÀdÐ)JˆÔ&Ø'+ˆÔ$à× Ñ Ð$4Ñ4Ø3?À×@UÑ@UÐ?VÐ1WˆDÔ.Ø>BˆDÕ;à1>ˆDÔ.Ø>CˆDÕ;øôA ò 	@Ý>ß?Ð?ð	@ús   —E ÅE0Å/E0c                 ód   — | j                   r$| j                   j                  «        | ` d | _         y y r^   )râ  Ústopr¼  s    r1   Ú_stop_run_if_existsz#NeptuneCallback._stop_run_if_existsñ  s(   € Ø�9Š9Ø�I‰I�N‰NÔØ�	ØˆD�Ið r0   c                 óf  — 	 ddl m} ddlm}m} | j                  «        	 |j                  «       }|j                  | j                  «        |di |¤Ž| _        | j                  d   j                  «       | _        y # t
        $ r ddlm} ddlm}m} Y Œ…w xY w# ||f$ r}t        «       |‚d }~ww xY w)Nr   )Úinit_run)ÚNeptuneMissingApiTokenExceptionÚ"NeptuneMissingProjectNameExceptionúsys/idr/   )r   rð  Úneptune.exceptionsrñ  rò  r]  Úneptune.newÚneptune.new.exceptionsrî  ÚcopyrÈ   rå  râ  r;  rŠ  rÌ  )r‚  Úadditional_neptune_kwargsrð  rñ  rò  Ú
run_paramsÚes          r1   Ú_initialize_runzNeptuneCallback._initialize_run÷  s©   € ð	sÝ(ßnð
 	× Ñ Ô"ð	7Ø2×7Ñ7Ó9ˆJØ×Ñ˜d×3Ñ3Ô4Ù Ñ. :Ñ.ˆDŒIØŸ9™9 XÑ.×4Ñ4Ó6ˆD�Løô ò 	sÝ,ßrÑrð	sûð 3Ð4SÐTò 	7Ü-Ó/°QÐ6ûð	7ús)   ‚A< ¡AB Á<BÂBÂB0Â B+Â+B0c                 ó†   — | j                   | _        d| _        | j                  d   j                  «       | _        d | _         y )NTró  )rá  râ  rã  r;  rŠ  r¼  s    r1   Ú_use_initial_runz NeptuneCallback._use_initial_run	  s8   € Ø×%Ñ%ˆŒ	Ø"&ˆÔØ—y‘y Ñ*×0Ñ0Ó2ˆŒØ ˆÕr0   c                 ó.  — | j                   �| j                  «        y | j                  s| j                  ry | j                  r<| j                  s0| j                  s$| j                  | j                  ¬«       d| _        y | j                  «        d| _        y )N)Úwith_idTF)rá  rý  rä  rã  râ  rû  rŠ  r¼  s    r1   Ú_ensure_run_with_monitoringz+NeptuneCallback._ensure_run_with_monitoring  sv   € Ø×ÑÐ(Ø×!Ñ!Õ#à×3Ò3¸×8OÒ8OØà�yŠy ×!8Ò!8À×AaÒAaØ×$Ñ$¨T¯\©\Ð$Ô:Ø*.�Õ'à×$Ñ$Ô&Ø38�Õ0r0   c                 ó¦   — | j                   �| j                  «        y | j                  s(| j                  | j                  dddd¬«       d| _        y y )NF)rÿ  Úcapture_stdoutÚcapture_stderrÚcapture_hardware_metricsÚcapture_traceback)rá  rý  râ  rû  rŠ  rã  r¼  s    r1   Ú'_ensure_at_least_run_without_monitoringz7NeptuneCallback._ensure_at_least_run_without_monitoring  sV   € Ø×ÑÐ(Ø×!Ñ!Õ#à—9’9Ø×$Ñ$Ø ŸL™LØ#(Ø#(Ø-2Ø&+ð %ô ð +0�Õ'ð r0   c                 óR   — | j                   €| j                  «        | j                   S r^   )râ  r  r¼  s    r1   r  zNeptuneCallback.run+  s"   € à�9‰9ÐØ×8Ñ8Ô:Ø�y‰yÐr0   c                 ó4   — | j                   | j                     S r^   )r  rÞ  r¼  s    r1   Ú_metadata_namespacez#NeptuneCallback._metadata_namespace1  s   € à�x‰x˜×1Ñ1Ñ2Ð2r0   c                 óF   — t         | j                  t        j                  <   y r^   )r)  r  rÏ  Úintegration_version_keyr¼  s    r1   Ú_log_integration_versionz(NeptuneCallback._log_integration_version5  s   € Ü<Cˆ�‰”×8Ñ8Ò9r0   c                 óZ   — |j                  «       | j                  t        j                  <   y r^   )Úto_sanitized_dictr	  rÏ  Útrainer_parameters_key)r‚  r‰   s     r1   Ú_log_trainer_parametersz'NeptuneCallback._log_trainer_parameters8  s!   € ØKO×KaÑKaÓKcˆ× Ñ ¤×!GÑ!GÒHr0   c                 óÀ   — ddl m} |rVt        |d«      rI|j                  �< ||j                  j	                  «       «      | j
                  t        j                  <   y y y y )Nr   )Ústringify_unsupportedrò   )Úneptune.utilsr  r  rò   rë  r	  rÏ  Úmodel_parameters_key)r‚  r˜   r  s      r1   Ú_log_model_parametersz%NeptuneCallback._log_model_parameters;  sQ   € Ý7á”W˜U HÔ-°%·,±,Ð2JÙMbØ—‘×$Ñ$Ó&óNˆD×$Ñ$¤_×%IÑ%IÒJð 3KÐ-ˆ5r0   c                 óö   — |r3t        |d«      r'|j                  | j                  t        j                  <   |rBt        |d«      r5|j
                  �(|j
                  | j                  t        j                  <   y y y y )NrT  rF  )r  rT  r	  rÏ  Útrial_name_keyrF  Útrial_params_key)r‚  rS  s     r1   Ú"_log_hyper_param_search_parametersz2NeptuneCallback._log_hyper_param_search_parametersC  sh   € Ù”W˜U LÔ1ØGL×GWÑGWˆD×$Ñ$¤_×%CÑ%CÑDá”W˜U NÔ3¸×8JÑ8JÐ8VØIN×I[ÑI[ˆD×$Ñ$¤_×%EÑ%EÒFð 9WÐ3ˆ5r0   Úsource_directoryrœ   c                 óþ  — t         j                  j                  ||«      x}}| j                  �œt         j                  j                  | j                  |«      }	 |j	                  dd«      j                  t         j                  j                  «      }t         j                  j                  ||«      }t        j                  ||«       |}| j                  | j                     j                  |«       | j                   r>| j"                  �2| j                  | j                     j%                  | j"                  «       || _        y # t        $ r.}t        j                  dj                  |«      «       Y d }~Œ¬d }~ww xY w)Nz..r%   zpNeptuneCallback was unable to made a copy of checkpoint due to I/O exception: '{}'. Could fail trying to upload.)r'   r‡   rˆ   ræ  ÚreplaceÚlstriprÂ  ÚshutilÚcopytreeÚIOErrorr*   r+   r  r	  ré  Úupload_filesrê  rè  Údelete_files)	r‚  r  rœ   Útarget_pathÚrelative_pathÚconsistent_checkpoint_pathÚ	cpkt_pathÚ	copy_pathrú  s	            r1   Ú_log_model_checkpointz%NeptuneCallback._log_model_checkpointJ  s+  € Ü&(§g¡g§l¡lÐ3CÀZÓ&PÐPˆ�mà×)Ñ)Ð5Ü)+¯©¯©°d×6TÑ6TÐV`Ó)aÐ&ð
à)×1Ñ1°$¸Ó;×BÑBÄ2Ç7Á7Ç;Á;ÓO�	ÜŸG™GŸL™LÐ)CÀYÓO�	Ü—‘ ¨yÔ9Ø8�ð 	× Ñ  ×!CÑ!CÑD×QÑQÐR]Ô^à×:Ò:¸t×?[Ñ?[Ð?gØ×$Ñ$ T×%GÑ%GÑH×UÑUÐVZ×VrÑVrÔsà'4ˆÕ$øô ò Ü—‘ð3ß39±6¸!³9÷ñ ûðús   ÁA1E Å	E<Å$E7Å7E<c                 óî   — d | _         | j                  r;|j                  s|j                  �#t	        j
                  «       j                  | _         | j                  dk(  r|j                  st        d«      ‚y y )Nr·   zWTo save the best model checkpoint, the load_best_model_at_end argument must be enabled.)	ræ  rà  Úoverwrite_output_dirÚsave_total_limitrÉ   rÊ   ré   r  rÀ  r   s        r1   rk  zNeptuneCallback.on_init_endb  sh   € Ø)-ˆÔ&Ø× Ò  d×&?Ò&?À4×CXÑCXÐCdÜ-5×-HÑ-HÓ-J×-OÑ-OˆDÔ*à× Ñ  FÒ*°4×3NÒ3NÜÐvÓwÐwð 4OÐ*r0   c                 ó  — |j                   sy | j                  «        d| _        | j                  «        | j                  r"| j                  |«       | j                  |«       |j                  r| j                  |«       y y )NT)	r‹  r   rä  r  rß  r  r  rŒ  r  rS  s         r1   r‘  zNeptuneCallback.on_train_beginj  so   € Ø×*Ò*Øà×(Ñ(Ô*Ø+/ˆÔ(à×%Ñ%Ô'Ø×ÒØ×(Ñ(¨Ô.Ø×&Ñ& uÔ-à×&Ò&Ø×3Ñ3°EÕ:ð 'r0   c                 ó$   — | j                  «        y r^   )rî  r   s        r1   r¡  zNeptuneCallback.on_train_endy  s   € Ø× Ñ Õ"r0   c                 ó~   — | j                   �!t        j                  | j                   d¬«       | j                  «        y )NT)Úignore_errors)ræ  r  Úrmtreerî  r¼  s    r1   r¯  zNeptuneCallback.__del__|  s.   € Ø×)Ñ)Ð5Ü�M‰M˜$×8Ñ8ÈÕMà× Ñ Õ"r0   c                 óp   — | j                   r*| j                  |j                  d|j                  › �«       y y )Nr%  )rç  r(  r¥  r™  r   s        r1   r0  zNeptuneCallback.on_save‚  s2   € Ø×)Ò)Ø×&Ñ& t§¡¸+Àe×FWÑFWÐEXÐ8YÕZð *r0   c                 ó2  — | j                   dk(  rˆ|j                  }|j                  d«      sd|› �}|j                  |«      }|j                  rt
        j                  nt
        j                  }|j                  d u xs  |||j                  «      | _	        y y )Nr·   rp  )
rà  r  r†   rþ   Úgreater_is_betterÚnpÚgreaterÚlessr  rç  )	r‚  r‰   rS  r�  r    rµ   Úbest_metric_nameÚmetric_valueÚoperators	            r1   Úon_evaluatezNeptuneCallback.on_evaluate†  s‹   € Ø× Ñ  FÒ*Ø#×9Ñ9ÐØ#×.Ñ.¨wÔ7Ø%*Ð+;Ð*<Ð#=Ð à"Ÿ;™;Ð'7Ó8ˆLà%)×%;Ò%;”r—z’zÄÇÁˆHà-2×->Ñ->À$Ð-FÒ-sÉ(ÐS_Ðaf×arÑarÓJsˆDÕ*ð +r0   c                 ó‚   — |j                   j                  D ]  }t        || «      sŒ|j                  c S  t	        d«      ‚)Nz6The trainer doesn't have a NeptuneCallback configured.)r^  r_  rp   r  Ú	Exception)rß   r¡   rh  s      r1   Úget_runzNeptuneCallback.get_run’  s?   € à×0Ñ0×:Ñ:ò 	$ˆHÜ˜( CÕ(Ø—|‘|Ò#ð	$ô ÐPÓQÐQr0   rœ  c                 ó,  — |j                   sy |�…t        |«      j                  «       D ]h  \  }}t        |t        t
        f«      sŒ|t        j                  v r|| j                  |<   Œ?| j                  |   j                  ||j                  ¬«       Œj y y )N©rW  )r‹  rV  r@  rp   r–  r—  rÏ  Úflat_metricsr	  rÛ  r™  )r‚  r‰   rS  r�  rœ  rµ   ré   r±   s           r1   r�  zNeptuneCallback.on_logš  sŒ   € Ø×*Ò*ØàÐÜ+¨DÓ1×7Ñ7Ó9ò Z‘��eÜ˜e¤c¬5 \Õ2Øœ×;Ñ;Ñ;Ø9>˜×0Ñ0°Ò6à×0Ñ0°Ñ6×:Ñ:¸5Àu×GXÑGXÐ:ÕYñZð r0   r^   )&r  r¢  r£  r¤  r  r  r  r  r  r@  r   r°   rÄ  r„  rî  rû  rý  r   r  rÃ  r  r	  r  r  r  r  r(  rk  r‘  r¡  r¯  r0  r:  rÅ  r=  r	   r—  r�  r/   r0   r1   rÏ  rÏ  –  s\  „ ñð8 FÐØ-ÐØ€NØ%ÐØ1ÐØ!�?€Lð
 $(Ø!%Ø"Ø*ØØ#Ø)-ò5Dð ˜C‘=ð5Dð ˜#‘ð	5Dð
 �s‰mð5Dð ð5Dð ð5Dð " #™ó5Dònò7ò$!ò9ò0ð ñó ðð
 ñ3ó ð3òDòdòò\ð5°cð 5Àsó 5ò0xó;ò#ò#ò[ó
tð ñRó ðRñ
Z°¸$¸sÀE¸zÑ:JÑ1Kô 
Zr0   rÏ  c                   ó*   — e Zd ZdZd„ Zd„ Zdd„Zd„ Zy)ÚCodeCarbonCallbackzI
    A [`TrainerCallback`] that tracks the CO2 emission of training.
    c                 óœ   — t        «       st        d«      ‚t        j                  j                  rt        d«      ‚dd l}|| _        d | _        y )NzWCodeCarbonCallback requires `codecarbon` to be installed. Run `pip install codecarbon`.aZ  CodeCarbonCallback requires `codecarbon` package, which is not compatible with AMD ROCm (https://github.com/mlco2/codecarbon/pull/490). When using the Trainer, please specify the `report_to` argument (https://huggingface.co/docs/transformers/v4.39.3/en/main_classes/trainer#transformers.TrainingArguments.report_to) to disable CodeCarbonCallback.r   )rc   ru   r�   r)  Úhiprb   Ú_codecarbonÚtracker)r‚  rb   s     r1   r„  zCodeCarbonCallback.__init__¬  sN   € Ü&Ô(ÜØióð ô �]‰]×ÒÜð móð ó 	à%ˆÔØˆ�r0   c                 óŽ   — | j                   €9|j                  r,| j                  j                  |j                  ¬«      | _         y y y )N)r¥  )rF  Úis_local_process_zerorE  ÚEmissionsTrackerr¥  r   s        r1   rk  zCodeCarbonCallback.on_init_end»  s<   € Ø�<‰<Ð E×$?Ò$?à×+Ñ+×<Ñ<ÈÏÉÐ<ÓXˆD�Lð %@Ðr0   Nc                 ól   — | j                   r(|j                  r| j                   j                  «        y y y r^   )rF  rH  rJ  rS  s         r1   r‘  z!CodeCarbonCallback.on_train_beginÀ  s(   € Ø�<Š<˜E×7Ò7Ø�L‰L×ÑÕ ð 8ˆ<r0   c                 ól   — | j                   r(|j                  r| j                   j                  «        y y y r^   )rF  rH  rí  r   s        r1   r¡  zCodeCarbonCallback.on_train_endÄ  s(   € Ø�<Š<˜E×7Ò7Ø�L‰L×ÑÕð 8ˆ<r0   r^   )r  r¢  r£  r¤  r„  rk  r‘  r¡  r/   r0   r1   rB  rB  §  s   „ ñòòYó
!ó r0   rB  c                   ój   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd	Zd
ZdZd„ Zd„ Zdd„Zd„ Zdd„Zd„ Zd„ Zy)ÚClearMLCallbacka¼  
    A [`TrainerCallback`] that sends the logs to [ClearML](https://clear.ml/).

    Environment:
    - **CLEARML_PROJECT** (`str`, *optional*, defaults to `HuggingFace Transformers`):
        ClearML project name.
    - **CLEARML_TASK** (`str`, *optional*, defaults to `Trainer`):
        ClearML task name.
    - **CLEARML_LOG_MODEL** (`bool`, *optional*, defaults to `False`):
        Whether to log models as artifacts during training.
    r%   ÚTransformerszModel ConfigurationÚ_ignore_hparams_ui_overrides_Ú"_ignore_model_config_ui_overrides_z%The configuration of model number {}.zöNote that, when cloning this task and running it remotely, the configuration might be applied to another model instead of this one. To avoid this, initialize the task externally by calling `Task.init` before the `ClearMLCallback` is instantiated.r   FNc                 ó~   — t        «       rdd l}|| _        nt        d«      ‚d| _        d | _        d| _        g | _        y )Nr   zNClearMLCallback requires 'clearml' to be installed. Run `pip install clearml`.F)r6   r4   Ú_clearmlru   rÉ  Ú_clearml_taskrÊ  Ú_checkpoints_saved)r‚  r4   s     r1   r„  zClearMLCallback.__init__è  s=   € ÜÔ!Ûà#ˆD�MäÐoÓpÐpà!ˆÔØ!ˆÔàˆŒØ"$ˆÕr0   c                 óZ  — | j                   €y | j                  ry t        xj                  dz  c_        t        xj                  dz  c_        t        j                  dk(  rdndt        t        j                  «      z   t        _        |j                  �rt        j                  d«       | j                  �€t        j                  €_| j                   j                  j                  «       r$| j                   j                  j                  «       rdt        _        ndt        _        | j                   j                  j                  «       r´| j                   j                  j                  «       r�| j                   j                  j                  «       | _
        t        j                   dt        j"                  sdnd	«      j%                  «       t'        j(                  d	h«      v | _        t        j                  d
«       n¸| j                   j                  j-                  t        j                   dd«      t        j                   dd«      dddœd¬«      | _
        t        j                   dd	«      j%                  «       t'        j(                  d	h«      v | _        dt        _        t        j                  d«       d| _        t        j.                  t        j                  z   }|dz   t        j0                  z   }| j                   j                  j                  «       r6| j3                  ||«       | j                  j5                  |dt6        d¬«       nl| j                  j9                  |dd¬«      s| j                  j;                  ||«       n1| j3                  |t        j.                  t        j                  z   «       t=        |dd «      ��ä|dz   t        j>                  z   }t        j@                  jC                  t        j                  «      }	t        j                  t        j                  k7  r|	dt        jD                  z   z  }	| j                   j                  j                  «       ry| j                  j5                  |dt6        d¬«       | j                  jG                  t        jH                  t        j                  z   |jJ                  jM                  «       |	¬«       y | j                  j9                  |dd¬«      sY|jJ                  jO                  | j                  jQ                  t        jH                  t        j                  z   «      «      |_%        y | j                  jG                  t        jH                  t        j                  z   |jJ                  jM                  «       |	¬«       y y y )Nr~   r%   r  z"Automatic ClearML logging enabled.FTÚCLEARML_LOG_MODELrV   rW   z)External ClearML Task has been connected.ÚCLEARML_PROJECTzHuggingFace TransformersÚCLEARML_TASKr  )rB   Úpytorch)Úproject_nameÚ	task_nameÚauto_connect_frameworksÚ
output_uriz"ClearML Task has been initialized.ú/z£If True, ignore Transformers hyperparameters overrides done in the UI/backend when running remotely. Otherwise, the overrides will be applied when running remotely)ré   r±   Ú
value_typerm  )ÚdefaultÚcastrò   ú z§If True, ignore Transformers model configuration overrides done in the UI/backend when running remotely. Otherwise, the overrides will be applied when running remotely)ré   Úconfig_dictrm  ))rR  rÉ  rM  Ú_train_run_counterÚ_model_connect_counterr°   Ú
log_suffixr‹  r*   rý   rS  Ú_should_close_on_train_endÚTaskÚrunning_locallyÚcurrent_taskr'   r(   Ú_task_created_in_callbackr)   r!   ÚunionrÊ  rR  Ú_hparams_sectionÚ_ignore_hparams_overridesÚ_copy_training_args_as_hparamsÚset_parameterrÄ  Úget_parameterÚconnectr”   Ú_ignoge_model_config_overridesÚ_model_config_descriptionr  Ú_model_config_description_noteÚset_configuration_objectÚ_model_config_sectionrò   rë  Ú	from_dictÚ get_configuration_object_as_dict)
r‚  r‰   rS  r˜   r  rµ   Úsuffixed_hparams_sectionÚignore_hparams_config_sectionÚignore_model_config_sectionÚ configuration_object_descriptions
             r1   r  zClearMLCallback.setupö  sŠ  € Ø�=‰=Ð ØØ×ÒØÜ×*Ò*¨aÑ/Õ*Ü×.Ò.°!Ñ3Õ.ä!×4Ñ4¸Ò9‰B¸sÄSÌ×IkÑIkÓElÑ?lô 	Ô"ð ×&Ó&Ü�K‰KÐ<Ô=Ø×!Ñ!Ñ)Ü"×=Ñ=ÐEØŸ=™=×-Ñ-×=Ñ=Ô?À4Ç=Á=×CUÑCU×CbÑCbÔCdØEJœÕBàEIœÔBð —=‘=×%Ñ%×5Ñ5Ô7¸D¿M¹M×<NÑ<N×<[Ñ<[Ô<]Ø)-¯©×);Ñ);×)HÑ)HÓ)J�DÔ&Ü&(§i¡iØ+Ü'6×'PÒ'P™ÐV\ó'÷ ‘e“gÔ!5×!;Ñ!;¸V¸HÓ!Eð'F�D”Oô —K‘KÐ KÕLà)-¯©×);Ñ);×)@Ñ)@Ü%'§Y¡YÐ/@ÐB\Ó%]Ü"$§)¡)¨N¸IÓ"FØ@EÐRWÑ0XØ#'ð	 *Aó *�DÔ&ô ')§i¡iÐ0CÀVÓ&L×&RÑ&RÓ&TÔXl×XrÑXrØ˜óYð '�D”Oð AE”OÔ=Ü—K‘KÐ DÔEØ$(�Ô!ä'6×'GÑ'GÌ/×JdÑJdÑ'dÐ$Ø,DÀsÑ,JÌ_×MvÑMvÑ,vÐ)Ø�}‰}×!Ñ!×1Ñ1Ô3Ø×3Ñ3°DÐ:RÔSØ×"Ñ"×0Ñ0Ø6ØÜ#ðrð 1õ ð ×'Ñ'×5Ñ5Ð6SÐ]aÐhlÐ5ÔmØ×"Ñ"×*Ñ*¨4Ð1IÕJà×3Ñ3Øœ/×:Ñ:¼_×=WÑ=WÑWôô �u˜h¨Ó-Ñ9à,¨sÑ2´_×5cÑ5cÑcð ,ô 4C×3\Ñ3\×3cÑ3cÜ#×:Ñ:ó4Ð0ô #×9Ñ9¼_×=_Ñ=_Ò_Ø4¸¼o×>lÑ>lÑ8lÑlÐ4Ø—=‘=×%Ñ%×5Ñ5Ô7Ø×&Ñ&×4Ñ4Ø8Ø"Ü#'ðvð 5ô ð ×&Ñ&×?Ñ?Ü,×BÑBÄ_×E_ÑE_Ñ_Ø$)§L¡L×$8Ñ$8Ó$:Ø$Dð @õ ð
 ×+Ñ+×9Ñ9Ð:UÐ_cÐjnÐ9ÔoØ#(§<¡<×#9Ñ#9Ø×*Ñ*×KÑKÜ+×AÑAÄO×D^ÑD^Ñ^óó$�E•Lð ×&Ñ&×?Ñ?Ü,×BÑBÄ_×E_ÑE_Ñ_Ø$)§L¡L×$8Ñ$8Ó$:Ø$Dð @õ ð? :ði 'r0   c                 ó˜   — | j                   €y g | _        |j                  rd| _        | j                  s | j                  ||||fi |¤Ž y y r  )rR  rT  rŒ  rÉ  r  ©r‚  r‰   rS  r�  r˜   r  rµ   s          r1   r‘  zClearMLCallback.on_train_beginY  sP   € Ø�=‰=Ð ØØ"$ˆÔØ×&Ò&Ø %ˆDÔØ× Ò ØˆD�J‰J�t˜U EÐ+;ÑF¸vÓFð !r0   c                 óp   — t         j                  r&| j                  j                  «        dt         _        y y )Nr   )rM  rg  rS  rŸ  rd  r   s        r1   r¡  zClearMLCallback.on_train_endb  s*   € Ü×5Ò5Ø×Ñ×$Ñ$Ô&Ø12ŒOÕ.ð 6r0   c           
      óø  — | j                   €y | j                  s | j                  ||||fi |¤Ž |j                  �r¾d}t	        |«      }	d}
t	        |
«      }g d¢}|j                  «       D �]‹  \  }}t        |t        t        f«      �rF||v r=| j                  j                  «       j                  |t        j                  z   |¬«       Œ_|j                  |«      rL| j                  j                  «       j                  dt        j                  z   ||	d  ||j                   ¬«       Œ¼|j                  |
«      rM| j                  j                  «       j                  dt        j                  z   ||d  ||j                   ¬«       �Œ| j                  j                  «       j                  dt        j                  z   |||j                   ¬«       �Œdt"        j%                  d	|› d
t'        |«      › d|› d�«       �ŒŽ y y )Nrp  rq  )r  r  r  r   r  r+  r#  Úeval)ÚtitleÚseriesr±   Ú	iterationÚtestr“   r“  r”  r•  zn" as a scalar. This invocation of ClearML logger's  report_scalar() is incorrect so we dropped this attribute.)rR  rÉ  r  r‹  rs  r@  rp   r–  r—  rS  Ú
get_loggerÚreport_single_valuerM  rf  r†   Úreport_scalarr™  r*   r+   r  )r‚  r‰   rS  r�  r˜   r  rœ  rµ   rv  rw  rx  ry  r"  rz  r{  s                  r1   r�  zClearMLCallback.on_logg  sí  € Ø�=‰=Ð ØØ× Ò ØˆD�J‰J�t˜U EÐ+;ÑF¸vÒFØ×&Ó&Ø!ˆKÜ! +Ó.ˆOØ!ˆKÜ! +Ó.ˆOò$Ð ð Ÿ
™
›ó !‘��1Ü˜a¤#¤u Õ.ØÐ0Ñ0Ø×*Ñ*×5Ñ5Ó7×KÑKØ!"¤_×%?Ñ%?Ñ!?Àqð Lõ ð Ÿ™ kÔ2Ø×*Ñ*×5Ñ5Ó7×EÑEØ"(¬?×+EÑ+EÑ"EØ#$ _Ð%5Ð#6Ø"#Ø&+×&7Ñ&7ð	 Fõ ð Ÿ™ kÔ2Ø×*Ñ*×5Ñ5Ó7×EÑEØ"(¬?×+EÑ+EÑ"EØ#$ _Ð%5Ð#6Ø"#Ø&+×&7Ñ&7ð	 Fö ð ×*Ñ*×5Ñ5Ó7×EÑEØ")¬O×,FÑ,FÑ"FØ#$Ø"#Ø&+×&7Ñ&7ð	 Fö ô —N‘NðØ˜3˜j¬¨a«¨	°¸A¸3ð ?EðEöñ9!ð 'r0   c                 ó,  — | j                   �rµ| j                  �r§|j                  �r™d|j                  › �}t        j
                  j                  |j                  |«      }|t        j                  z   }t        j                  d|› d�«       | j                  j                  | j                  |¬«      }|j                  | j                  |¬«       |j                  |||j                  d¬«       | j                   j#                  |«       |j$                  r©|j$                  t'        | j                   «      k  r†	 | j                  j(                  j*                  j-                  | j                   d   ddd¬	«       | j                   dd  | _        |j$                  r$|j$                  t'        | j                   «      k  rŒ„y y y y y y y # t.        $ rF}	t        j1                  d
j3                  | j                   d   j4                  |	«      «       Y d }	~	y d }	~	ww xY w)Nr%  zLogging checkpoint artifact `z`. This may take some time.)Útaskré   F)Úweights_pathÚtarget_filenamer…  Úauto_delete_filer   T)Údelete_weights_fileÚforceÚraise_on_errorszVCould not remove checkpoint `{}` after going over the `save_total_limit`. Error is: {}r~   )rÊ  rS  r‹  r™  r'   r‡   rˆ   r¥  rM  rf  r*   rý   rR  ÚOutputModelrr  Úupdate_weights_packagerT  rm  r+  rs  r˜   ÚModelÚremover<  r+   r  ré   )
r‚  r‰   rS  r�  rµ   r-  r.  ré   Úoutput_modelrú  s
             r1   r0  zClearMLCallback.on_saveœ  sÔ  € Ø�?‹?˜t×1Ó1°e×6QÓ6QØ$ U×%6Ñ%6Ð$7Ð8ˆHÜŸG™GŸL™L¨¯©¸(ÓCˆMØœo×8Ñ8Ñ8ˆDÜ�K‰KÐ7¸°vÐ=XÐYÔZØŸ=™=×4Ñ4¸$×:LÑ:LÐSWÐ4ÓXˆLØ× Ñ  d×&8Ñ&8¸tÐ ÔDØ×/Ñ/Ø*Ø (Ø×+Ñ+Ø!&ð	 0ô ð ×#Ñ#×*Ñ*¨<Ô8Ø×'Ò'¨D×,AÑ,AÄCÈ×H_ÑH_ÓD`Ò,`ðØ—M‘M×'Ñ'×-Ñ-×4Ñ4Ø×/Ñ/°Ñ2Ø,0Ø"Ø(,ð	 5ô ð +/×*AÑ*AÀ!À"Ð*E�Ô'ð ×'Ò'¨D×,AÑ,AÄCÈ×H_ÑH_ÓD`Ô,`Ð'Ð,`Ð'ð 7RÐ1ˆ?øô, !ò Ü—N‘NØp×wÑwØ ×3Ñ3°AÑ6×;Ñ;¸Qóôô
 ûðús   Ä:A G Ç	HÇ<HÈHc                 óÖ  — t        |«      D �ci c]J  }|j                  r<|j                  j                  d«      s!|j                  t	        ||j                  «      “ŒL }}| j
                  j                  j                  j                  |«      j                  «       D ��ci c]  \  }}t        |«      |“Œ }}}| j                  j                  j                  ||¬«       y c c}w c c}}w )NÚ_token)Úprefix)r   rR  ré   Úendswithr”   rR  Ú	utilitiesÚproxy_objectÚflatten_dictionaryr@  r°   rS  Ú
_argumentsÚcopy_from_dict)r‚  Útraining_argsr™  ÚfieldÚas_dictrz  r{  Ú	flat_dicts           r1   ro  z.ClearMLCallback._copy_training_args_as_hparams¼  sÂ   € ô   Ó.ö
àØ�zŠz %§*¡*×"5Ñ"5°hÔ"?ð �J‰Jœ ¨u¯z©zÓ:Ñ:ð
ˆð 
ð
 ,0¯=©=×+BÑ+B×+OÑ+O×+bÑ+bÐcjÓ+k×+qÑ+qÓ+s×t¡4 1 a”S˜“V˜Q‘YÐtˆ	ÑtØ×Ñ×%Ñ%×4Ñ4°YÀvÐ4ÕNùò
ùó
 us   ŽAC ÂC%r4  )NNN)r  r¢  r£  r¤  rf  rm  rw  rn  rs  rt  ru  rd  re  rk  rg  r„  r  r‘  r¡  r�  r0  ro  r/   r0   r1   rM  rM  É  sz   „ ñ
ð €Jà%ÐØ1ÐØ ?ÐØ%IÐ"Ø GÐð	9ð #ð ÐØÐØ %ÐØ!%Ðò%òaóFGò3ó
3òjFó@Or0   rM  c                   ó:   ‡ — e Zd ZdZddedefˆ fd„Zd„ Zd„ Zˆ xZS )ÚFlyteCallbacka^  A [`TrainerCallback`] that sends the logs to [Flyte](https://flyte.org/).
    NOTE: This callback only works within a Flyte task.

    Args:
        save_log_history (`bool`, *optional*, defaults to `True`):
            When set to True, the training logs are saved as a Flyte Deck.

        sync_checkpoints (`bool`, *optional*, defaults to `True`):
            When set to True, checkpoints are synced with Flyte and can be used to resume training in the case of an
            interruption.

    Example:

    ```python
    # Note: This example skips over some setup steps for brevity.
    from flytekit import current_context, task


    @task
    def train_hf_transformer():
        cp = current_context().checkpoint
        trainer = Trainer(..., callbacks=[FlyteCallback()])
        output = trainer.train(resume_from_checkpoint=cp.restore())
    ```
    Úsave_log_historyÚsync_checkpointsc                 óö   •— t         ‰| �  «        t        «       st        d«      ‚t	        «       r
t        «       st        j                  d«       d}ddlm	}  |«       j                  | _        || _        || _        y )NzLFlyteCallback requires flytekit to be installed. Run `pip install flytekit`.zªSyncing log history requires both flytekitplugins-deck-standard and pandas to be installed. Run `pip install flytekitplugins-deck-standard pandas` to enable this feature.Fr   )Úcurrent_context)r´  r„  rf   r]  rh   r   r*   r+   re   r©  rœ   Úcpr¦  r§  )r‚  r¦  r§  r©  rv   s       €r1   r„  zFlyteCallback.__init__á  si   ø€ Ü‰ÑÔÜ$Ô&ÜÐlÓmÐmä/Ô1Ô9LÔ9NÜ�N‰Nðaôð  %Ðå,á!Ó#×.Ñ.ˆŒØ 0ˆÔØ 0ˆÕr0   c                 ó  — | j                   r{|j                  rnd|j                  › �}t        j                  j                  |j                  |«      }t        j                  d|› d�«       | j                  j                  |«       y y y )Nr%  zSyncing checkpoint in z to Flyte. This may take time.)r§  r‹  r™  r'   r‡   rˆ   r¥  r*   rý   rª  rÆ  r¬  s          r1   r0  zFlyteCallback.on_saveó  sn   € Ø× Ò  U×%@Ò%@Ø$ U×%6Ñ%6Ð$7Ð8ˆHÜŸG™GŸL™L¨¯©¸(ÓCˆMä�K‰KÐ0°°
Ð:XÐYÔZØ�G‰G�L‰L˜Õ'ð &AÐ r0   c                 ó®   — | j                   rIdd l}ddlm} ddlm} |j                  |j                  «      } |d |«       j                  |«      «       y y )Nr   )ÚDeck)ÚTableRendererzLog History)	r¦  Úpandasre   r­  Úflytekitplugins.deck.rendererr®  Ú	DataFrameÚlog_historyÚto_html)	r‚  r‰   rS  r�  rµ   Úpdr­  r®  Úlog_history_dfs	            r1   r¡  zFlyteCallback.on_train_endû  sD   € Ø× Ò ÛÝ%ÝCàŸ\™\¨%×*;Ñ*;Ó<ˆNÙ�¡£× 7Ñ 7¸Ó GÕHð !r0   )TT)	r  r¢  r£  r¤  rÄ  r„  r0  r¡  rÉ  rÊ  s   @r1   r¥  r¥  Æ  s&   ø„ ññ41¨ð 1Èõ 1ò$(öIr0   r¥  c                   ód   — e Zd ZdZ	 	 ddee   deeed   ef      fd„Z	d„ Z
dd„Zdd	„Zd
„ Zd„ Zy)ÚDVCLiveCallbackaW  
    A [`TrainerCallback`] that sends the logs to [DVCLive](https://www.dvc.org/doc/dvclive).

    Use the environment variables below in `setup` to configure the integration. To customize this callback beyond
    those environment variables, see [here](https://dvc.org/doc/dvclive/ml-frameworks/huggingface).

    Args:
        live (`dvclive.Live`, *optional*, defaults to `None`):
            Optional Live instance. If None, a new instance will be created using **kwargs.
        log_model (Union[Literal["all"], bool], *optional*, defaults to `None`):
            Whether to use `dvclive.Live.log_artifact()` to log checkpoints created by [`Trainer`]. If set to `True`,
            the final checkpoint is logged at the end of training. If set to `"all"`, the entire
            [`TrainingArguments`]'s `output_dir` is logged at each checkpoint.
    NÚliverª  rØ  c                 óz  — t        «       st        d«      ‚ddlm} d| _        d | _        t        ||«      r|| _        n|�t        d|j                  › d�«      ‚|| _        | j                  €Pt        j                  dd«      }|j                  «       t        v rd	| _        y |j                  «       d
k(  rd
| _        y y y )NzLDVCLiveCallback requires dvclive to be installed. Run `pip install dvclive`.r   ©ÚLiveFzFound class z  for live, expected dvclive.LiveÚHF_DVCLIVE_LOG_MODELrV   TrØ  )rk   ru   rj   r»  rÉ  r¸  rp   rv   rÊ  r'   r(   r)   r!   rH  )r‚  r¸  rª  rµ   r»  Úlog_model_envs         r1   r„  zDVCLiveCallback.__init__  s¶   € ô $Ô%ÜÐmÓnÐnÝ à!ˆÔØˆŒ	Ü�d˜DÔ!ØˆD�IØÐÜ ¨d¯n©nÐ-=Ð=]Ð^Ó_Ð_à#ˆŒØ�?‰?Ð"ÜŸI™IÐ&<¸gÓFˆMØ×"Ñ"Ó$Ô(<Ñ<Ø"&�•Ø×$Ñ$Ó&¨%Ò/Ø"'�•ð 0ð	 #r0   c                 óº   — ddl m} d| _        |j                  rB| j                  s |«       | _        | j                  j                  |j                  «       «       yy)a@  
        Setup the optional DVCLive integration. To customize this callback beyond the environment variables below, see
        [here](https://dvc.org/doc/dvclive/ml-frameworks/huggingface).

        Environment:
        - **HF_DVCLIVE_LOG_MODEL** (`str`, *optional*):
            Whether to use `dvclive.Live.log_artifact()` to log checkpoints created by [`Trainer`]. If set to `True` or
            *1*, the final checkpoint is logged at the end of training. If set to `all`, the entire
            [`TrainingArguments`]'s `output_dir` is logged at each checkpoint.
        r   rº  TN)rj   r»  rÉ  r‹  r¸  r—  rë  )r‚  r‰   rS  r˜   r»  s        r1   r  zDVCLiveCallback.setup.  sE   € õ 	!à ˆÔØ×&Ò&Ø—9’9Ù ›F�”	Ø�I‰I× Ñ  §¡£Õ0ð 'r0   c                 óD   — | j                   s| j                  |||«       y y r^   rR  rS  s         r1   r‘  zDVCLiveCallback.on_train_beginA  rT  r0   c           
      ó’  — | j                   s| j                  |||«       |j                  rœddlm} ddlm} |j                  «       D ]b  \  }	}
|j                  |
«      r$| j                  j                   ||	d«      |
«       Œ;t        j                  d|
› dt        |
«      › d|	› d�«       Œd | j                  j                  «        y y )	Nr   )ÚMetric)Ústandardize_metric_namezdvclive.huggingfacer“  r”  r•  zh" as a scalar. This invocation of DVCLive's Live.log_metric() is incorrect so we dropped this attribute.)rÉ  r  r‹  Údvclive.plotsrÁ  Údvclive.utilsrÂ  r@  Ú	could_logr¸  r1  r*   r+   r  Ú	next_step)r‚  r‰   rS  r�  r˜   rœ  rµ   rÁ  rÂ  rF  r±   s              r1   r�  zDVCLiveCallback.on_logE  s¹   € Ø× Ò Ø�J‰J�t˜U EÔ*Ø×&Ò&Ý,Ý=à"Ÿj™j›lò 	‘
��UØ×#Ñ# EÔ*Ø—I‘I×(Ñ(Ñ)@ÀÐF[Ó)\Ð^cÕdä—N‘NðØ!˜7 *¬T°%«[¨M¸ÀCÀ5ð IEðEõð		ð �I‰I×ÑÕ!ð 'r0   c                 ó¢   — | j                   dk(  r@| j                  r3|j                  r&| j                  j	                  |j
                  «       y y y y )NrØ  )rÊ  rÉ  r‹  r¸  rø  r¥  r   s        r1   r0  zDVCLiveCallback.on_saveX  s@   € Ø�?‰?˜eÒ#¨×(9Ò(9¸e×>YÒ>YØ�I‰I×"Ñ" 4§?¡?Õ3ð ?ZÐ(9Ð#r0   c                 ó¾  — | j                   rÑ|j                  rÄddlm} | j                  du r• |||j                  d«      |j                  d«      dg¬«      }|j                  rdnd	}t        j                  j                  |j                  |«      }|j                  |«       | j                  j                  ||dd¬
«       | j                  j                  «        y y y )Nr   r
  Tr˜   r  r  r  r·   rÙ  )ré   r  r÷  )rÉ  r‹  Útransformers.trainerr  rÊ  rþ   r  r'   r‡   rˆ   r¥  r  r¸  rø  r·  )	r‚  r‰   rS  r�  rµ   r  r  ré   r¥  s	            r1   r¡  zDVCLiveCallback.on_train_end\  sµ   € Ø×Ò ×!<Ò!<Ý4à�‰ $Ñ&Ù&ØØ Ÿ*™* WÓ-Ø%+§Z¡ZÐ0BÓ%CØ"( ô	 �ð "&×!<Ò!<‘vÀ&�ÜŸW™WŸ\™\¨$¯/©/¸4Ó@�
Ø×'Ñ'¨
Ô3Ø—	‘	×&Ñ& z¸À7ÐQUÐ&ÔVØ�I‰I�M‰M�Oð "=Ðr0   r4  r^   )r  r¢  r£  r¤  r   r   r   r
   rÄ  r„  r  r‘  r�  r0  r¡  r/   r0   r1   r·  r·    sV   „ ñð" #Ø;?ñ(à�s‰mð(ð ˜E '¨%¡.°$Ð"6Ñ7Ñ8ó(ò21ó&+ó"ò&4ór0   r·  c                   ó@   — e Zd ZdZd„ Zd„ Zd
d„Zdd„Zdd„Zd„ Z	d	„ Z
y)ÚSwanLabCallbackzn
    A [`TrainerCallback`] that logs metrics, media, model checkpoints to [SwanLab](https://swanlab.cn/).
    c                 óˆ   — t        «       st        d«      ‚dd l}|| _        d| _        t        j                  dd «      | _        y )NzLSwanLabCallback requires swanlab to be installed. Run `pip install swanlab`.r   FÚSWANLAB_LOG_MODEL)rn   ru   rm   Ú_swanlabrÉ  r'   r(   rÊ  )r‚  rm   s     r1   r„  zSwanLabCallback.__init__s  s9   € Ü#Ô%ÜÐmÓnÐnÛàˆŒØ!ˆÔÜŸ)™)Ð$7¸Ó>ˆ�r0   c                 óô  — d| _         |j                  �rÀt        j                  d«       i |j	                  «       ¥}t        |d«      rR|j                  �Ft        |j                  t        «      r|j                  n|j                  j	                  «       }i |¥|¥}t        |d«      r |j                  �|j                  }i d|i¥|¥}|j                  }i }	|�|j                  › d|› �|	d<   n|j                  �|j                  |	d<   t        j                  dd«      |	d	<   | j                  j                  «       € | j                  j                   di |	¤Ž d
| j                  j                  d<   | j                  j                  j#                  |«       	 | j                  j                  j#                  d|j%                  «       i«       t'        |«      j(                  dk(  st'        |«      j(                  dk(  ra|j+                  «       \  }
}| j                  j                  j#                  d|
i«       | j                  j                  j#                  d|i«       | j.                  �nt        j1                  d«       d| j                  j                  «       j2                  j4                  j6                  › d�}t8        xj:                  d|› �z  c_        yyy# t,        $ r t        j                  d«       Y Œœw xY w)a·	  
        Setup the optional SwanLab (*swanlab*) integration.

        One can subclass and override this method to customize the setup if needed. Find more information
        [here](https://docs.swanlab.cn/guide_cloud/integration/integration-huggingface-transformers.html).

        You can also override the following environment variables. Find more information about environment
        variables [here](https://docs.swanlab.cn/en/api/environment-variable.html#environment-variables)

        Environment:
        - **SWANLAB_API_KEY** (`str`, *optional*, defaults to `None`):
            Cloud API Key. During login, this environment variable is checked first. If it doesn't exist, the system
            checks if the user is already logged in. If not, the login process is initiated.

                - If a string is passed to the login interface, this environment variable is ignored.
                - If the user is already logged in, this environment variable takes precedence over locally stored
                login information.

        - **SWANLAB_PROJECT** (`str`, *optional*, defaults to `None`):
            Set this to a custom string to store results in a different project. If not specified, the name of the current
            running directory is used.

        - **SWANLAB_LOG_DIR** (`str`, *optional*, defaults to `swanlog`):
            This environment variable specifies the storage path for log files when running in local mode.
            By default, logs are saved in a folder named swanlog under the working directory.

        - **SWANLAB_MODE** (`Literal["local", "cloud", "disabled"]`, *optional*, defaults to `cloud`):
            SwanLab's parsing mode, which involves callbacks registered by the operator. Currently, there are three modes:
            local, cloud, and disabled. Note: Case-sensitive. Find more information
            [here](https://docs.swanlab.cn/en/api/py-init.html#swanlab-init)

        - **SWANLAB_LOG_MODEL** (`str`, *optional*, defaults to `None`):
            SwanLab does not currently support the save mode functionality.This feature will be available in a future
            release

        - **SWANLAB_WEB_HOST** (`str`, *optional*, defaults to `None`):
            Web address for the SwanLab cloud environment for private version (its free)

        - **SWANLAB_API_HOST** (`str`, *optional*, defaults to `None`):
            API address for the SwanLab cloud environment for private version (its free)

        TzYAutomatic SwanLab logging enabled, to disable set os.environ["SWANLAB_MODE"] = "disabled"rò   NrÎ  ú-Úexperiment_nameÚSWANLAB_PROJECTr"  u   ðŸ¤—transformersÚ	FRAMEWORKÚmodel_num_parametersÚ	PeftModelÚPeftMixedModelÚpeft_model_trainable_paramsÚpeft_model_all_paramzQCould not log the number of model parameters in SwanLab due to an AttributeError.úsSwanLab does not currently support the save mode functionality. This feature will be available in a future release.z…[<img src="https://raw.githubusercontent.com/SwanHubX/assets/main/badge1.svg" alt="Visualize in SwanLab" height="280" height="32"/>](rè  ré  r/   )rÉ  r‹  r*   rý   rë  r  rò   rp   rt   rÎ  rT  rì  r'   r(   rÎ  r=  rR  rÈ   rá  r  r  Úget_nb_trainable_parametersrò  rÊ  r+   ÚpublicÚcloudÚexp_urlr   rú  )r‚  r‰   rS  r˜   rµ   rü  rŠ  rÎ  rT  rý  Útrainable_paramsÚ	all_paramr  s                r1   r  zSwanLabCallback.setup|  s­  € ðV !ˆÔà×&Ó&Ü�K‰KÐsÔtØ.˜tŸ|™|›~Ð.ˆMä�u˜hÔ'¨E¯L©LÐ,DÜ/9¸%¿,¹,ÌÔ/M˜uŸ|š|ÐSX×S_ÑS_×SgÑSgÓSi�Ø A <Ð A°=Ð A�Ü�u˜mÔ,°×1BÑ1BÐ1NØ#×/Ñ/�Ø Q M°;Ð#?Ð QÀ=Ð Q�Ø×)Ñ)ˆJØˆIØÐ%Ø26·-±-°ÀÀ*ÀÐ/N�	Ð+Ò,Ø—‘Ð*Ø/3¯}©}�	Ð+Ñ,Ü#%§9¡9Ð->ÀÓ#EˆI�iÑ à�}‰}×$Ñ$Ó&Ð.Ø"�—‘×"Ñ"ñ Øòð 1CˆD�M‰M× Ñ  Ñ-à�M‰M× Ñ ×'Ñ'¨Ô6ðqØ—‘×$Ñ$×+Ñ+Ð-CÀU×EYÑEYÓE[Ð,\Ô]ä˜“;×'Ñ'¨;Ò6¼$¸u»+×:NÑ:NÐRbÒ:bØ27×2SÑ2SÓ2UÑ/Ð$ iØ—M‘M×(Ñ(×/Ñ/Ð1NÐP`Ð0aÔbØ—M‘M×(Ñ(×/Ñ/Ð1GÈÐ0SÔTð
 �‰Ð*Ü—‘ðJôð
)à)-¯©×)>Ñ)>Ó)@×)GÑ)G×)MÑ)M×)UÑ)UÐ(VÐVWðYð ô ×7Ò7¸RÀÐ?OÐ;PÑPÖ7ð +ðO 'øôF "ò qÜ—‘ÐoÖpðqús   ÆCK ËK7Ë6K7Nc                 óH   — | j                   s | j                  |||fi |¤Ž y y r^   rR  rS  s         r1   r‘  zSwanLabCallback.on_train_beginÝ  s'   € Ø× Ò ØˆD�J‰J�t˜U EÑ4¨VÓ4ð !r0   c                 ó|   — | j                   �0| j                  r#|j                  rt        j	                  d«       y y y y ©NrÙ  ©rÊ  rÉ  r‹  r*   r+   r  s          r1   r¡  zSwanLabCallback.on_train_endá  ó;   € Ø�?‰?Ð&¨4×+<Ò+<À×A\ÒA\Ü�N‰NðFõð B]Ð+<Ð&r0   c                 óÖ  — g d¢}| j                   s| j                  |||«       |j                  r´|j                  «       D ]6  \  }}	||v sŒ| j                  j                  d|› �|	i|j                  ¬«       Œ8 |j                  «       D ��	ci c]  \  }}	||vsŒ||	“Œ }
}}	t        |
«      }
| j                  j                  i |
¥d|j                  i¥|j                  ¬«       y y c c}	}w )Nr  zsingle_value/r?  rÔ  )rÉ  r  r‹  r@  rÎ  rÛ  r™  rV  r!  s              r1   r�  zSwanLabCallback.on_logè  sí   € ò 
Ðð × Ò Ø�J‰J�t˜U EÔ*Ø×&Ò&ØŸ
™
›ò X‘��1ØÐ,Ò,Ø—M‘M×%Ñ%¨°q°cÐ':¸AÐ&>ÀU×EVÑEVÐ%ÕWðXð 15·
±
³×^©¨¨1ÀÐI]Ò@]˜q !™tÐ^ˆOÑ^Ü*¨?Ó;ˆOØ�M‰M×ÑÐY ÐYÐ2EÀu×GXÑGXÑYÐ`e×`qÑ`qÐÕrð 'ùó _s   ÂC%ÂC%c                 ó|   — | j                   �0| j                  r#|j                  rt        j	                  d«       y y y y râ  rã  r   s        r1   r0  zSwanLabCallback.on_saveû  rä  r0   c                 óª   — | j                   s | j                  ||fi |¤Ž |j                  r't        |«      }| j                  j                  |«       y y r^   )rÉ  r  r‹  rV  rÎ  rÛ  r2  s         r1   r3  zSwanLabCallback.on_predict	  sJ   € Ø× Ò ØˆD�J‰J�t˜UÑ- fÒ-Ø×&Ò&Ü" 7Ó+ˆGØ�M‰M×Ñ˜gÕ&ð 'r0   r^   r4  r5  r/   r0   r1   rË  rË  n  s.   „ ñò?ò_QóB5óósò&ó'r0   rË  )rl  r   rX   r   rB   r&   rb   r4   r[   Úflyterj   rm   c           	      ó  — | €g S t        | t        «      rd| k(  rg S d| k(  rt        «       } n| g} | D ]<  }|t        vsŒt	        |› ddj                  t        j                  «       «      › d�«      ‚ | D �cg c]  }t        |   ‘Œ c}S c c}w )NÚnonerØ  z is not supported, only r%  z are supported.)rp   r°   rn  ÚINTEGRATION_TO_CALLBACKrÀ  rˆ   rW  )ra  Úintegrations     r1   Ú#get_reporting_integration_callbacksrí  	  s¤   € ØÐØˆ	ä�)œSÔ!Ø�YÒØˆIØ�iÒÜ<Ó>‰Ià"˜ˆIà ò ˆØÔ5Ò5ÜØ�-Ð7¸¿	¹	ÔBY×B^ÑB^ÓB`Ó8aÐ7bÐbqÐróð ðð ENÖN°[Ô# KÓ0ÒNÐNùÒNs   Á4B)|r¤  r
  Úimportlib.metadatar,   Úimportlib.utilr˜  r  r'   r/  r  rç   rÉ   Údataclassesr   r   Úenumr   Úpathlibr   Útypingr   r   r	   r
   r   r   Únumpyr4  Úpackaging.versionrŒ  r%   r   r   r   r)  rq  r   r   r   r   r   r   r   r‡  r  r*   r�   r>   r(  r=   r;   r�  r<   r   rò   Ú
get_configr?   ÚPackageNotFoundErrorr]  rÀ  Ú	TypeErrorrò  ÚKeyErrorr-   r.   r_   Ú_neptune_versionrý   r   Útrainer_callbackr   r   rú   r   r   r   r   r    r!   r"   r2   r6   r@   rD   rG   rK   rM   rP   rS   rY   r\   r`   rc   rf   rh   rk   rn   rw   r–  r°   r¹   r  rG  rj  rn  rV  rû   r´  r¶  r`  r7  rc  ro  r±  r<  rÌ  rÏ  rB  rM  r¥  r·  rË  rë  rí  r/   r0   r1   ú<module>rü     s&  ðñó Û Û Û Û Û 	Û Û Û 
Û ß &Ý Ý ß E× Eã Û ç 1Ý %÷÷ ñ ð 
ˆ×	Ñ	˜HÓ	%€áÔÛð Ð ð!Ø×'Ñ'×/Ñ/°
Ó;€NØÐà'×/Ñ/×5Ñ5°nÓEÈ×IZÑIZ×I`ÑI`ÐasÓItÑtÐó à‡�×!Ñ! /Ó2Ð>Ø#Ñà$Ðð ‡N�N×Ñ˜YÓ'¨tÐ3Òm°y·~±~×7OÑ7OÐP`Ó7aÐimÐ7mð ñ ‘\ð!Ø$×-Ñ-×5Ñ5°iÓ@ÐØ�‰Ð&Ð'7Ð&8¸ÐDÔEõ ß @ß LÑ LÝ (ß @ò9ò;òòBwò:ò7ò<ò:òDò:òaòò>ò<òHò;ò;òDð*;¨Cð ;¸Cð ;Ègó ;ð|C¨ð C¸ð CÈ7ó CðL_¨Cð _¸Cð _Ègó _ðDJk¨3ð Jk¸3ð JkÈWó JkòZò6ô U"˜/ô U"ðp!¨3ð !¸Có !ô #�C˜ô #ô:s%�Oô s%ôlM�Oô Mô`>�oô >ô.o$�_ô o$ôd.I�nô .Iôb
 )ô 
ôNZ�oô NZôb ˜ô  ôDzO�oô zOôz<I�Oô <Iô~f�oô fôRY'�oô Y'ðz  ØØØØ&ØØ$ØØØØØñÐ ó OøðkF 	×Ñ×/Ñ/°¸jÈ)ÐUcÐemÐnò !Ø€NØÐØ#ÐØ Óð	!ûð ×Ñ×2Ñ2ò !ð	!Ø(×1Ñ1×9Ñ9Ð:JÓKÐØ�K‰KÐ1Ð2BÐ1CÀ;ÐOÕPøØ×!Ñ!×6Ñ6ò 	!Ø ŠLð	!ýð	!úsI   ÂA8K  Å0K. Ë 'K+Ë*K+Ë.MÌ0L9Ì8MÌ9MÍMÍMÍMÍM