Обучить модель с использованием PyTorch Elastic Learning

PyTorch Elastic Learning позволяет при обучении моделей масштабировать вычислительные ресурсы в зависимости от их доступности.

Инструмент подходит для задач обучения, требующих динамического менеджмента ресурсов. Например, если необходимо запустить задачу на десяти выделенных серверах, а на момент запуска доступно только восемь, с PyTorch Elastic Learning возможно запустить задачу на восьми серверах Как только ресурсы высвободятся, добавятся оставшиеся два сервера.

Кроме того, PyTorch Elastic Learning обеспечивает отказоустойчивость. Если в ходе обучения отказал один из выделенных серверов, то задача перезапустится с последнего чекпоинта.

Подсказка

Сохраняйте чекпоинты, чтобы не потерять результаты обучения модели, если возникнут проблемы.

Чтобы запустить задачу с PyTorch Elastic Learning, используйте параметр type, равный pytorch_elastic в client_lib.

См.также

PyTorch Elastic Learning в документации client_lib

Особенности использования

Версия PyTorch

Для образа требуется версия PyTorch равная «1.9» и выше.

Установка параметров для обучения

Для установки границ ресурсов используется следующая формула:

elastic_min_workers \(\leq\) n_workers \(\leq\) elastic_max_workers

Где:

  • elastic_min_workers — минимальное количество ресурсов;

  • n_workers — диапазон изменения значений;

  • elastic_max_workers — максимальное количество ресурсов.

Если не указывать значения параметров, то по умолчанию устанавливается elastic_min_workers = 1, elastic_max_workers = n_workers

Как только количество доступных воркеров падает ниже elastic_min_workers, то задача останавливается. При добавлении воркеров задача перезапускается с последнего сохраненного промежуточного результата обучения (checkpoint).

См.также

Масштабная конференция
GoCloud 2024:
облачные грани будущего