MCPcopy Index your code
hub / github.com/eric-mitchell/direct-preference-optimization / worker_main

Function worker_main

train.py:21–45  ·  view source on GitHub ↗

Main function for each worker process (may be only 1 for BasicTrainer/TensorParallelTrainer).

(rank: int, world_size: int, config: DictConfig, policy: nn.Module, reference_model: Optional[nn.Module] = None)

Source from the content-addressed store, hash-verified

19
20
21def worker_main(rank: int, world_size: int, config: DictConfig, policy: nn.Module, reference_model: Optional[nn.Module] = None):
22 """Main function for each worker process (may be only 1 for BasicTrainer/TensorParallelTrainer)."""
23 if 'FSDP' in config.trainer:
24 init_distributed(rank, world_size, port=config.fsdp_port)
25
26 if config.debug:
27 wandb.init = lambda *args, **kwargs: None
28 wandb.log = lambda *args, **kwargs: None
29
30 if rank == 0 and config.wandb.enabled:
31 os.environ['WANDB_CACHE_DIR'] = get_local_dir(config.local_dirs)
32 wandb.init(
33 entity=config.wandb.entity,
34 project=config.wandb.project,
35 config=OmegaConf.to_container(config),
36 dir=get_local_dir(config.local_dirs),
37 name=config.exp_name,
38 )
39
40 TrainerClass = getattr(trainers, config.trainer)
41 print(f'Creating trainer on process {rank} with world size {world_size}')
42 trainer = TrainerClass(policy, config, config.seed, config.local_run_dir, reference_model=reference_model, rank=rank, world_size=world_size)
43
44 trainer.train()
45 trainer.save()
46
47
48@hydra.main(version_base=None, config_path="config", config_name="config")

Callers 1

mainFunction · 0.85

Calls 4

init_distributedFunction · 0.90
get_local_dirFunction · 0.90
trainMethod · 0.80
saveMethod · 0.45

Tested by

no test coverage detected