-
Notifications
You must be signed in to change notification settings - Fork 74
Description
tl;dr: We should let the submission know if an evaluation is going to happen at the current step or not.
Description
Currently, there is no easy way for the submission to know if the model returned by update_params
is going to be evaluated on the train/valid/test set.
This limits the space of possible submission, or at least force them to apply some workarounds to infer whether the current step is going to be an evaluation step or not. (A possible workaround is to keep track of time from last evaluation inside the submission, but this adds a non-negligible overhead to the submission itself and deviates from the original goal of the submission.).
An example of a submission where it is crucial to know when evaluation is going to occur is Stochastic Weight Average.
Possible solutions
A straightforward solution is to decide if the submission is eligible for an untimed eval before calling update_params
, and add an argument to update_params
that passes this information to the submission.
The only drawback with this approach is that we don't evaluate every workload.eval_period_time_sec
, but a little less frequently (we evaluate every workload.eval_period_time_sec
+ submission_time_per_step). Assuming that workload.eval_period_time_sec
>> submission_time_per_step, this is hopefully not a big difference.
I think this is an important feature, and it would be nice to implement it.