But there seems to be no callback function at each save_step. For example, the correct pipeline should be sth like
best_perf = 0 # assume larger is better
when current_step % save_step == 0:
    current_perf = check_model_perf()
    if current_perf > best_perf:
         best_perf = current_perf
         save_model() # will also delete any previous best model

But now I have to save all dumps first, and the check performance in eval stage. Is this the only thing I could do? Thanks, @sgugger