Я хотел бы запустить учебное задание на машине ml.p4d.24xlarge на AWS SageMaker. Я столкнулся с похожей проблемой, описанной здесь со значительным замедлением времени обучения. Теперь я понимаю, что мне нужно запустить его с помощью torchrun. Мои ограничения заключаются в том, что я не хочу использовать оценщики HuggingFace или PyTorch из SageMaker (для возможности настройки и правильного понимания стека).
В настоящее время точка входа в мой контейнер установлена как таковая в моем Dockerfile:
ENTRYPOINT ["python3", "/opt/program/entrypoint.py"]
Как мне его изменить и могу ли я изменить его, чтобы вместо него использовать torchrun? Это просто вопрос настройки:
ENTRYPOINT ["torchrun --nproc_per_node 8", "/opt/program/entrypoint.py"]





SageMaker Training Toolkit имеет реализацию для вызова команды torchrun в классах SDK Python SageMaker.
Вы можете обратиться к «TorchDistributedRunner._create_command()», чтобы увидеть, как он создает команду torchrun и ее аргументы.
Также обратитесь к документу PyTorch, как использовать команду torchrun. https://pytorch.org/docs/stable/elastic/run.html
Есть ли у вас примеры пользовательского контейнера с
torchrunиsagemaker-pytorch-training-toolkit? Я пытаюсь сделать что-то подобное с BYOC, но, просматривая код оценщика, DDP настраивается только в том случае, если вы используете оценщикPyTorch, а я использовалEstimator(в частности,Estimatorне принимает словарьdistribution)