- tocdepth
2
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. |
|
Тип — Значение по умолчанию —
Время в минутах до принудительного удаления задачи, которая перешла в статус «Выполняется». Подробнее о статусах задач см. в разделе Какие статусы существуют у задач обучения?. |
|
Тип — Значение по умолчанию —
Параметр задает переменные окружения. Примечание Значения возможно передавать с пробелами, обращая внимание на кавычки.
Пример — |
|
Тип — Значение по умолчанию —
Параметр задает количество процессов на один рабочий узел региона, если не подходит количество процессов, равное количеству GPU. Можно запустить задачу на 16 GPU одного рабочего узла региона, указать |
|
Тип — Значение по умолчанию —
Параметр позволяет указывать название окружения conda, если в образе имеется таковое и используется не стандартное окружение python, а окружение anaconda. |
|
Тип — Значение по умолчанию —
Параметр позволяет задавать пользовательские описания для запускаемых задач. |
|
Тип — Значение по умолчанию —
Параметр позволяет выбирать регион размещения вычислительных ресурсов. Доступны ключи регионов:
Примечание В регионе Cloud.Region.A100 (GPU Tesla A100) можно запускать только нераспределенные задачи обучения. |
|
Тип — Значение по умолчанию —
В значении Примечание Параметр будет отключен с 04.07.2024. Вместо него используйте internet |
|
Тип — Значение по умолчанию —
В значении Примечание
|
|
Тип — Значение по умолчанию до 04.07.2024 —
Примечание
|
|
Тип — Значение по умолчанию —
Максимальное количество попыток запуска задачи для случая, когда первая из этих попыток завершилась с ошибкой. При рестарте задача попадает в очередь на запуск в регионе. Допустимые значения — от 3 до 100 включительно. Используется, если Параметр доступен только в аллокациях. Примечание При использовании параметра рекомендуем добавить в пользовательский код обучения поддержку checkpoints. См. Сохранить промежуточные результаты обучения (чекпоинты). Доступна переменная окружения |
|
Тип — Значение по умолчанию —
Путь к директории, в которую записываются промежуточные итоги задачи обучения. Подробнее о checkpoint — см. Сохранить промежуточные результаты обучения (чекпоинты). Пример значения параметра: Использование параметра |
|
Тип — Набор параметров для мониторинга зависших задач. См. Примеры использования. Примечание Кроме обязательного параметра
|
Примеры команд
client_lib.Job(base_image='cr.ai.cloud.ru/aicloud-base-images/py3.10-torch2.2.2:0.0.40',
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/py3.10-torch2.2.2:0.0.40',
script='ls',
n_workers=1, 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/py3.10-torch2.2.2:0.0.40',
script='/home/jovyan/quick-start/job_launch/scripts/horovod/tensorflow_mnist_estimator.py',
instance_type='a100.1gpu.80vG.12C.96G',
n_workers=1,
processes_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/py3.10-torch2.2.2:0.0.40',
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/py3.10-torch2.2.2:0.0.40',
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/py3.10-torch2.2.2:0.0.40',
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/py3.10-torch2.2.2:0.0.40',
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),
)
Команды
submit()
Команда submit()
отправляет сформированную задачу на вычисление в регион, после чего задача ставится в очередь на выполнение.
job = client_lib.Job(base_image='cr.ai.cloud.ru/aicloud-base-images/py3.10-torch2.2.2:0.0.40',
script='ls',
n_workers=1, instance_type='a100.1gpu.80vG.12C.96G', type ='binary', region='SR002-MT')
job.submit()
status()
Команда status()
возвращает статус по последней задаче обучения.
job = client_lib.Job(base_image='cr.ai.cloud.ru/aicloud-base-images/py3.10-torch2.2.2:0.0.40',
script='ls',
n_workers=1, instance_type='a100.1gpu.80vG.12C.96G', type ='binary', region='SR002-MT')
job.submit()
job.status()
Статус |
Описание |
---|---|
«Pending» |
Задача находится в ожидании ресурсов. |
«Inqueue» |
Задача находится в очереди на запуск. |
«Starting» |
Ресурсы аллоцированы, происходит скачивание образов и запуск воркеров. |
«Running» |
Задача обучения выполняется. |
«Completed» |
Задача обучения завершилась. |
«Completing» |
Задача обучения завершается. |
«Failed» |
Задача обучения завершилась с ошибкой, рекомендуется проверить логи задачи. |
«Deleted» или «Terminated» |
Задача обучения удалена. |
«Stopped» или «Aborted» |
Задача обучения остановлена. |
«Terminating» |
Задача обучения останавливается. Освобождаются ресурсы, задача и поды удаляются. |
«Aborting» |
Задача обучения останавливается. Освобождаются ресурсы, удаляются только поды. |
kill()
Команда client_lib.Job(...).kill()
удаляет последнюю задачу:
job = client_lib.Job(base_image='cr.ai.cloud.ru/aicloud-base-images/py3.10-torch2.2.2:0.0.40',
script='ls',
n_workers=1, instance_type='a100.1gpu.80vG.12C.96G', type ='binary', region='SR002-MT')
job.submit()
job.status()
job.kill()
Команда client_lib.kill(job_name, region)
удаляет задачу по номеру и ключу региона, где задача выполняется:
client_lib.kill('lm-mpi-job-abbb512e-e2c4-4d57-bb72-4c029b82cf02', region='SR002-MT')
logs()
Команда client_lib.Job.logs()
возвращает логи задачи обучения.
job = client_lib.Job(base_image='cr.ai.cloud.ru/aicloud-base-images/py3.10-torch2.2.2:0.0.40',
script='ls',
n_workers=1, instance_type='a100.1gpu.80vG.12C.96G', type ='binary', region='SR002-MT')
job.submit()
job.status()
job.logs()
Команда client_lib.logs(job_name, region, tail, verbose)
возвращает логи задачи обучения по ее имени.
client_lib.logs('lm-mpi-job-abbb512e-e2c4-4d57-bb72-4c029b82cf02',region='SR002-MT',tail=1,verbose=False)
Параметр |
Описание параметра |
---|---|
|
Тип —
Название задачи. Обязательный параметр для logs(job_name, tail, verbose) |
|
Тип — Значение по умолчанию —
Параметр определяет количество выводимых строк из лога, начиная с конца. |
|
Тип — Значение по умолчанию —
Параметр определяет уровень детализации логов для пользователя.
|
|
Тип — Значение по умолчанию — Параметр позволяет выбирать регион размещения вычислительных ресурсов, где была запущена задача обучения. Для параметра доступны следующие значения:
|
для Dev & Test