in lm_human_preferences/utils/launch.py [0:0]
def launch_trials(name, fn, trials, hparam_class, extra_hparams=None, dry_run=False, mpi=1, mode='local', save_dir=None):
jobs = []
for trial in trials:
descriptors = []
kwargs = {}
for k, v, s in trial:
if k is not None:
if k in kwargs:
print(f'WARNING: overriding key {k} from {kwargs[k]} to {v}')
kwargs[k] = v
if s.get('descriptor'):
descriptors.append(str(s['descriptor']))
hparams = hparam_class()
hparams.override_from_dict(kwargs)
if extra_hparams:
hparams.override_from_str_dict(extra_hparams)
job_name = (name + '/' + '-'.join(descriptors)).rstrip('/')
hparams.validate()
if dry_run:
print(f"{job_name}: {kwargs}")
else:
if save_dir:
hparams.run.save_dir = os.path.join(save_dir, job_name)
trial_fn = partial(fn, hparams)
jobs.append(partial(launch, job_name, trial_fn, mpi=mpi, mode=mode))
parallel(jobs, mode=mode)