Обучить модель с использованием 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
- Установка параметров для обучения
elastic_min_workers — минимальное количество ресурсов;
n_workers — диапазон изменения значений;
elastic_max_workers — максимальное количество ресурсов.
Для образа требуется версия PyTorch равная «1.9» и выше.
Для установки границ ресурсов используется следующая формула:
elastic_min_workers \(\leq\) n_workers \(\leq\) elastic_max_workers
Где:
Если не указывать значения параметров, то по умолчанию устанавливается elastic_min_workers = 1, elastic_max_workers = n_workers
Как только количество доступных воркеров падает ниже elastic_min_workers, то задача останавливается. При добавлении воркеров задача перезапускается с последнего сохраненного промежуточного результата обучения (checkpoint).
PyTorch Elastic Learning в документации PyTorch
- Особенности использования