Скрипт обучения
Дата создания: 6 мая 2026 г. | Дата последнего обновления: 6 мая 2026 г.
Если ваш скрипт обучения работает с torch.distributed.launch, он продолжит работать с torchrun со следующими отличиями:
- Не нужно вручную передавать
RANK,WORLD_SIZE,MASTER_ADDRиMASTER_PORT. -
Можно указать
rdzv_backendиrdzv_endpoint. Для большинства пользователей здесь будет задано значениеc10d(см. Rendezvous). Значениеrdzv_backendпо умолчанию создает неэластичный rendezvous, в которомrdzv_endpointсодержит адрес главного узла. - Убедитесь, что в вашем скрипте предусмотрены логика
load_checkpoint(path)иsave_checkpoint(path). При сбое любого количества рабочих процессов мы перезапускаем все рабочие процессы с теми же аргументами программы, поэтому вы потеряете весь прогресс с момента последней контрольной точки (см. эластичный запуск). -
Флаг
use_envбыл удален. Если вы определяли локальный ранг, анализируя параметр--local-rank, теперь необходимо получать локальный ранг из переменной средыLOCAL_RANK(например,int(os.environ["LOCAL_RANK"])).
Ниже приведен пример скрипта обучения, который создает контрольную точку в конце каждой эпохи. Таким образом, в худшем случае при сбое будет потерян прогресс за одну полную эпоху обучения.
def main():
args = parse_args(sys.argv[1:])
state = load_checkpoint(args.checkpoint_path)
initialize(state)
# torch.distributed.run ensures that this will work
# by exporting all the env vars needed to initialize the process group
torch.distributed.init_process_group(backend=args.backend)
for i in range(state.epoch, state.total_num_epochs)
for batch in iter(state.dataset)
train(batch, state.model)
state.epoch += 1
save_checkpoint(state)
Конкретные примеры скриптов обучения, совместимых с torchelastic, см. на странице примеров.
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/elastic/train_script.html