Job
Функция Job позволяет работать с задачами обучения в регионах.
Описание параметров
Параметр |
Описание параметра |
---|---|
|
Тип —
Путь до запускаемого скрипта.
Обратите внимание, что точка монтирования — это корневой каталог, поэтому его не должно быть в начале пути.
Если ваш скрипт лежит по пути Примечание Скрипт должен быть расположен на NFS региона, в котором будет запускаться задача обучения. |
|
Тип —
Базовый образ, в котором будет исполняться скрипт обучения модели.
Образ должен быть из Если указать несуществующий образ, задача не будет создана. |
|
Тип —
Конфигурация вычислительных ресурсов, используемых для решения задач. Для просмотра доступных |
Параметр |
Описание параметра |
---|---|
|
Тип — Значение по умолчанию —
Количество рабочих узлов региона, на котором будет исполняться скрипт. Параметр игнорируется задачами обучения на CPU и определяется для:
Если в регионе Cloud.Region.A100 (GPU Tesla A100) указать «n_workers» больше единицы, вернется ошибка |
|
Тип — Значение по умолчанию —
Тип распределенных вычислений. Возможные значения:
|
|
Тип —
Объем памяти в ГБ, которую использует каждый воркер Spark. Значение параметра должно быть больше нуля, но меньше, чем \(memory - 512 - 384\), где
Если не указано, значение по умолчанию вычисляется по формуле \((memory - 512) \div (1 + 0,2)\), где 0,2 — это Если |
|
Тип — Значение по умолчанию —
Параметр |
|
Тип — Значение по умолчанию —
Флаги, с которыми необходимо запустить скрипт (если таковые имеются в скрипте обучения модели). Примечание Значения возможно передавать с пробелами, обращая внимание на кавычки.
Пример — |
|
Тип — Значение по умолчанию —
Параметр устанавливает минимальное количество воркеров для задач Pytorch Elastic Learning. Возможно передать значения больше 0 или строку default. |
|
Тип — Значение по умолчанию —
Параметр устанавливает максимальное количество воркеров для задач Pytorch Elastic Learning. Возможно передать значения больше 0 или строку default. |
|
Тип — Значение по умолчанию —
Параметр устанавливает максимальное количество перезапусков задач Pytorch Elastic Learning. |
|
Тип — Значение по умолчанию —
Параметр задает время в минутах до принудительного удаления задачи, которая перешла в статус «Выполняется» (подробнее о статусах задач см. в разделе Проверить статистику по задачам и Jupyter Server). |
|
Тип — Значение по умолчанию —
Параметр задает переменные окружения. Примечание Значения возможно передавать с пробелами, обращая внимание на кавычки.
Пример — |
|
Тип — Значение по умолчанию —
Параметр задает количество процессов на один рабочий узел региона, если не подходит количество процессов, равное количеству GPU. Можно запустить задачу на 16 GPU одного рабочего узла региона, указать |
|
Тип — Значение по умолчанию —
Параметр позволяет указывать название окружения conda, если в образе имеется таковое и используется не стандартное окружение python, а окружение anaconda. |
|
Тип — Значение по умолчанию —
Параметр позволяет задавать пользовательские описания для запускаемых задач. |
|
Тип — Значение по умолчанию —
Параметр позволяет выбирать регион размещения вычислительных ресурсов. Доступны значения:
Примечание В регионе Cloud.Region.A100 (GPU Tesla A100) можно запускать только нераспределенные задачи обучения. |
|
Тип — Значение по умолчанию —
Позволяет проверить исправность GPU перед запуском задачи обучения.
Доступны значения |
|
Тип — Значение по умолчанию —
В значении |
|
Тип — Значение по умолчанию —
В значении Примечание Параметр доступен в регионах Christofari.V100, Cloud.Region.A100 (GPU Tesla A100), Cloud.Region.HP1. |
|
Тип — Значение по умолчанию —
В значении |
|
Тип — Значение по умолчанию —
Максимальное количество попыток запуска задачи для случая, когда первая из этих попыток завершилась с ошибкой. При рестарте задача попадает в очередь на запуск в регионе. Допустимые значения — от 3 до 10 включительно. Используется, если Параметр доступен только в аллокациях. Примечание При использовании параметра рекомендуем добавить в пользовательский код обучения поддержку checkpoints. См. Сохранить промежуточные результаты обучения (чекпоинты). |
|
Тип — Значение по умолчанию —
Путь к директории, в которую записываются промежуточные итоги задачи обучения. Подробнее о checkpoint — см. Сохранить промежуточные результаты обучения (чекпоинты). Пример значения параметра: Использование параметра |
|
Тип — Набор параметров для мониторинга зависших задач. См. Примеры использования. Примечание Кроме обязательного параметра
|
Примеры команд
client_lib.Job(base_image='cr.ai.cloud.ru/aicloud-base-images/horovod-cuda10.0-tf1.15.0-pt1.3.0:0.0.31',
script='/home/jovyan/quick-start/job_launch/scripts/horovod/tensorflow_mnist_estimator.py',
instance_type='a100.1gpu.80vG.12C.96G',
job_desc='your_job_description')
job = client_lib.Job(base_image='cr.ai.cloud.ru/aicloud-base-images/horovod-cuda11.0-tf2.4.0-pt1.7.1',
script='ls',
n_workers=2, instance_type='a100.1gpu.80vG.12C.96G', type ="binary", region='SR002-MT')
job.submit()
При запуске задач с типом binary
для переменной script
можно использовать bash-скрипты.
client_lib.Job(base_image='cr.ai.cloud.ru/aicloud-base-images/horovod-cuda10.0-tf1.15.0-pt1.3.0:0.0.31',
script='/home/jovyan/quick-start/job_launch/scripts/horovod/tensorflow_mnist_estimator.py',
instance_type='a100.1gpu.80vG.12C.96G',
n_workers=1,
process_per_worker=1)
flags = {
"batch_size": 512,
"model": "mymodel50",
"xla": False
}
Скрипт будет запущен с параметрами <your_script> --batch_size=512 --model="mymodel50" --xla=False
.
from client_lib import *
# Example 1
Job(
base_image="cr.ai.cloud.ru/aicloud-base-images/horovod-cuda10.0-tf1.15.0-pt1.3.0:0.0.32.3",
script="/home/jovyan/quick-start/job_launch/scripts/horovod/tensorflow_mnist_estimator.py",
instance_type="v100.1gpu",
# If there were no updates in the job log for 20 minutes,
# the user will receive a notification, the job will be deleted
health_params=JobHealthParams(log_period=20, action=JobHealthAction.delete, sub_actions=[JobHealthSubAction.notify]),
)
# Example 2
Job(
base_image="cr.ai.cloud.ru/aicloud-base-images/horovod-cuda10.0-tf1.15.0-pt1.3.0:0.0.32.3",
script="/home/jovyan/quick-start/job_launch/scripts/horovod/tensorflow_mnist_estimator.py",
instance_type="v100.1gpu",
max_retry=3,
# If there were no updates in the job log for 120 minutes,
# the user will receive a notification, the job will be restarted
health_params=JobHealthParams(log_period=120, action="restart", sub_actions=["notify"]),
)
# Example 3
Job(
base_image="cr.ai.cloud.ru/aicloud-base-images/horovod-cuda10.0-tf1.15.0-pt1.3.0:0.0.32.3",
script="/home/jovyan/quick-start/job_launch/scripts/horovod/tensorflow_mnist_estimator.py",
instance_type="v100.1gpu",
# If there were no updates in the job log for 180 minutes,
# the user will receive a notification
health_params=JobHealthParams(log_period=180, sub_actions=[JobHealthSubAction.notify]),
)
# Example 4
Job(
base_image="cr.ai.cloud.ru/aicloud-base-images/horovod-cuda10.0-tf1.15.0-pt1.3.0:0.0.32.3",
script="/home/jovyan/quick-start/job_launch/scripts/horovod/tensorflow_mnist_estimator.py",
instance_type="v100.1gpu",
max_retry=3,
# If there were no updates in the job log for 60 minutes,
# the job will be restarted without notification
health_params=JobHealthParams(log_period=60, action=JobHealthAction.restart),
)
Команды
client_lib.Job.submit()
Команда submit()
отправляет сформированную задачу на вычисление в регион, после чего задача ставится в очередь на выполнение.
client_lib.Job.status()
Команда status()
возвращает статус только по одной задаче обучения.
Статус |
Описание |
---|---|
«Pending» |
|
«Running» |
Задача обучения выполняется. |
«Completed» или «Succeeded» |
Задача обучения завершилась. |
«Completing» |
Задача обучения завершается. |
«Failed» |
Задача обучения завершилась с ошибкой, рекомендуется проверить логи задачи. |
«Deleted» или «Terminated» |
Задача обучения удалена. |
«Stopped» или «Aborted» |
Задача обучения остановлена. |
«Terminating» |
Задача обучения останавливается. Освобождаются ресурсы, задача и поды удаляются. |
«Aborting» |
Задача обучения останавливается. Освобождаются ресурсы, удаляются только поды. |
client_lib.Job.kill()
Команда kill()
удаляет задачу вне зависимости от того, находится ли она в очереди или уже исполняется в регионе.
client_lib.Job.logs(tail, verbose)
Команда logs(tail, verbose)
возвращает логи по задаче, отправленной в регион на исполнение.
Параметры:
Параметр |
Описание параметра |
---|---|
|
Тип — Значение по умолчанию — 0
Параметр определяет количество выводимых строк из лога, начиная с конца. |
|
Тип — Значение по умолчанию —
Параметр определяет уровень детализации логов для пользователя.
|
client_lib.logs(job_name, tail, verbose)
Метод возвращает логи по названию задачи.
Параметр |
Описание параметра |
---|---|
|
Тип —
Название задачи. |
Параметр |
Описание параметра |
---|---|
|
Тип — Значение по умолчанию —
Параметр определяет количество выводимых строк из лога, начиная с конца. |
|
Тип — Значение по умолчанию —
Параметр определяет уровень детализации логов для пользователя.
|
для Dev & Test