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

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

Pytorch Elastic Learning подходит для задач обучения, требующих:

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

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

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

Версия 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).

Важно

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

См.также

  • Подробнее о запуске задачи Pytorch Elastic Learning через client_lib.

  • Подробнее о Pytorch Elastic Learning в документации.