Job

Методы этого раздела позволяют работать с задачами обучения в регионах через библиотеку client_lib.

Параметры конструктора класса

Важно

Параметр warm_cache — отключен (deprecated). Он может быть корректно обработан только в значении warm_cache=False.

При значении warm_cache=True возникнет ошибка с кодом 400.

Параметр

Описание параметра

script (обяз.)

Тип — string

…

Путь до запускаемого скрипта. Обратите внимание, что точка монтирования — это корневой каталог, поэтому его не должно быть в начале пути. Если ваш скрипт лежит по пути /data/demo_examples/script.py, то необходимо указать /home/jovyan/data/demo_examples/script.py.

Примечание

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

base_image (обяз.)

Тип — string

…

Базовый образ, в котором будет исполняться скрипт обучения модели. Образ должен быть из cr.msk.sbercloud.ru/aicloud-base-images или из проекта Docker registry для текущего workspace. Подробнее про базовые образы.

n_workers (опц.)

Тип — integer

Значение по умолчанию — 1

…

Количество рабочих узлов региона, на котором будет исполняться скрипт. Параметр игнорируется задачами обучения на CPU и определяется для:

  • Christofari.A100

  • Christofari.V100

  • Cloud.Region.A100 (GPU Tesla A100)

Если в регионе Cloud.Region.A100 (GPU Tesla A100) указать «n_workers» больше единицы, то будет ошибка с кодом «400».

Примечание

Для региона Cloud.Region.CPU (CPU) параметр не определяется.

n_gpus (опц.)

Тип — integer

Значение по умолчанию — 1

…

Максимальные значения для регионов размещения вычислительных ресурсов:

  • Christofari.V100 — 16

  • Christofari.A100 — 8

  • Cloud.Region.A100 (GPU Tesla A100) — 4

Для региона Cloud.Region.CPU (CPU) параметр не определяется.

Подробнее см. в разделе Обучение моделей на большом количестве GPU.

Для задач обучения на CPU параметр должен быть равен нулю.

cpu_limit (опц.)

Тип — integer

Значение по умолчанию:

  • Christofari.V100 — 3

  • Christofari.A100 — 16

  • Cloud.Region.CPU (CPU) — 16

  • Cloud.Region.A100 (GPU Tesla A100) — 12

Количество CPU на одном рабочем узле региона размещения вычислительных ресурсов.

memory_limit

Тип — string

Значение по умолчанию:

  • Christofari.V100 — 92Gi

  • Christofari.A100 — 243Gi

  • Cloud.Region.CPU (CPU) — 128Gi

  • Cloud.Region.A100 (GPU Tesla A100) — 230Gi

…

Лимит на оперативную память. Если выбрать неподходящее меньшее, то возникнет ошибка «OOMKilled».

Предупреждение

  • Параметры cpu_limit и memory_limit, используемые в задачах обучения, скоро будут отключены. Используйте требуемые конфигурации параметра instance_type.

  • При использовании параметров cpu_limit и memory_limit возникает предупреждение с текстом depricationWarning. Для устранения предупреждения используйте instance_type. Подробнее Конфигурации вычислительных ресурсов (instance_types).

instance_type

Тип — instance_type

Конфигурации вычислительных ресурсов:

Конфигурации для обучения моделей в регионе Christofari.V100 (dgx2-mt)

Наименование instance_type

Конфигурация вычислительных ресурсов

Регион

free.0gpu

Free(0 GPU, 0.5 vCPU, 3GB RAM)

DGX2-MT

v100.1gpu

1 GPU Tesla V100 32GB, 3 CPU-cores, 92 Gb RAM

DGX2-MT

v100.2gpu

2 GPU Tesla V100 32GB, 6 CPU-cores, 184 Gb RAM

DGX2-MT

v100.3gpu

3 GPU Tesla V100 32GB, 9 CPU-cores, 276 Gb RAM

DGX2-MT

v100.4gpu

4 GPU Tesla V100 32GB, 12 CPU-cores, 368 Gb RAM

DGX2-MT

v100.5gpu

5 GPU Tesla V100 32GB, 15 CPU-cores, 460 Gb RAM

DGX2-MT

v100.6gpu

6 GPU Tesla V100 32GB, 18 CPU-cores, 552 Gb RAM

DGX2-MT

v100.7gpu

7 GPU Tesla V100 32GB, 21 CPU-cores, 644 Gb RAM

DGX2-MT

v100.8gpu

8 GPU Tesla V100 32GB, 24 CPU-cores, 736 Gb RAM

DGX2-MT

v100.9gpu

9 GPU Tesla V100 32GB, 27 CPU-cores, 828 Gb RAM

DGX2-MT

v100.10gpu

10 GPU Tesla V100 32GB, 30 CPU-cores, 920 Gb RAM

DGX2-MT

v100.11gpu

11 GPU Tesla V100 32GB, 33 CPU-cores, 1012 Gb RAM

DGX2-MT

v100.12gpu

12 GPU Tesla V100 32GB, 36 CPU-cores, 1104 Gb RAM

DGX2-MT

v100.13gpu

13 GPU Tesla V100 32GB, 39 CPU-cores, 1196 Gb RAM

DGX2-MT

v100.14gpu

14 GPU Tesla V100 32GB, 42 CPU-cores, 1288 Gb RAM

DGX2-MT

v100.15gpu

15 GPU Tesla V100 32GB, 45 CPU-cores, 1380 Gb RAM

DGX2-MT

v100.16gpu

16 GPU Tesla V100 32GB, 48 CPU-cores, 1472 Gb RAM

DGX2-MT

Конфигурации для обучения моделей в регионе Christofari.A100 (a100-mt)

Наименование instance_type

Конфигурация вычислительных ресурсов

Регион

a100.1gpu

1 GPU Tesla A100 80GB, 16 CPU-cores, 243 Gb RAM

A100-MT

a100.2gpu

2 GPU Tesla A100 80GB, 32 CPU-cores, 486 Gb RAM

A100-MT

a100.3gpu

3 GPU Tesla A100 80GB, 48 CPU-cores, 729 Gb RAM

A100-MT

a100.4gpu

4 GPU Tesla A100 80GB, 64 CPU-cores, 972 Gb RAM

A100-MT

a100.5gpu

5 GPU Tesla A100 80GB, 80 CPU-cores, 1215 Gb RAM

A100-MT

a100.6gpu

6 GPU Tesla A100 80GB, 96 CPU-cores, 1458 Gb RAM

A100-MT

a100.7gpu

7 GPU Tesla A100 80GB, 112 CPU-cores, 1701 Gb RAM

A100-MT

a100.8gpu

8 GPU Tesla A100 80GB, 128 CPU-cores, 1944 Gb RAM

A100-MT

free.0gpu

Free(0 GPU, 0.5 vCPU, 3GB RAM)

A100-MT

Конфигурации для обучения моделей в регионе Cloud.Region.CPU (CPU) (cce-mt)

Наименование instance_type

Конфигурация вычислительных ресурсов

Регион

m3.large.8.linux

0 GPU, 2 vCPU-cores, 16 Gb RAM

CCE-MT

m3.2xlarge.8.linux

0 GPU, 8 vCPU-cores, 64 Gb RAM

CCE-MT

m3.3xlarge.8.linux

0 GPU, 12 vCPU-cores, 96 Gb RAM

CCE-MT

m3.4xlarge.8.linux

0 GPU, 16 vCPU-cores, 128 Gb RAM

CCE-MT

Конфигурации для запуска деплоев в регионе Cloud.Region.CPU (CPU) (cce-inf)

Наименование instance_type

Конфигурация вычислительных ресурсов

Регион

m3.large.8.linux

0 GPU, 2 vCPU-cores, 16 Gb RAM

CCE-INF

m3.2xlarge.8.linux

0 GPU, 8 vCPU-cores, 64 Gb RAM

CCE-INF

m3.3xlarge.8.linux

0 GPU, 12 vCPU-cores, 96 Gb RAM

CCE-INF

m3.4xlarge.8.linux

0 GPU, 16 vCPU-cores, 128 Gb RAM

CCE-INF

Конфигурации для запуска деплоев в регионе Christofari.V100 (dgx2-inf-001)

Наименование instance_type

Конфигурация вычислительных ресурсов

Регион

v100.1gpu

1 GPU Tesla V100 32GB, 3 CPU-cores, 92 Gb RAM

DGX2-INF-001

v100.2gpu

2 GPU Tesla V100 32GB, 6 CPU-cores, 184 Gb RAM

DGX2-INF-001

v100.3gpu

3 GPU Tesla V100 32GB, 9 CPU-cores, 276 Gb RAM

DGX2-INF-001

v100.4gpu

4 GPU Tesla V100 32GB, 12 CPU-cores, 368 Gb RAM

DGX2-INF-001

v100.5gpu

5 GPU Tesla V100 32GB, 15 CPU-cores, 460 Gb RAM

DGX2-INF-001

v100.6gpu

6 GPU Tesla V100 32GB, 18 CPU-cores, 552 Gb RAM

DGX2-INF-001

v100.7gpu

7 GPU Tesla V100 32GB, 21 CPU-cores, 644 Gb RAM

DGX2-INF-001

v100.8gpu

8 GPU Tesla V100 32GB, 24 CPU-cores, 736 Gb RAM

DGX2-INF-001

v100.9gpu

9 GPU Tesla V100 32GB, 27 CPU-cores, 828 Gb RAM

DGX2-INF-001

v100.10gpu

10 GPU Tesla V100 32GB, 30 CPU-cores, 920 Gb RAM

DGX2-INF-001

v100.11gpu

11 GPU Tesla V100 32GB, 33 CPU-cores, 1012 Gb RAM

DGX2-INF-001

v100.12gpu

12 GPU Tesla V100 32GB, 36 CPU-cores, 1104 Gb RAM

DGX2-INF-001

v100.13gpu

13 GPU Tesla V100 32GB, 39 CPU-cores, 1196 Gb RAM

DGX2-INF-001

v100.14gpu

14 GPU Tesla V100 32GB, 42 CPU-cores, 1288 Gb RAM

DGX2-INF-001

v100.15gpu

15 GPU Tesla V100 32GB, 45 CPU-cores, 1380 Gb RAM

DGX2-INF-001

v100.16gpu

16 GPU Tesla V100 32GB, 48 CPU-cores, 1472 Gb RAM

DGX2-INF-001

Пример instance_type
instance_type="a100.1gpu" #При работе через client_lib

"instance_type": "a100.1gpu" #При работе через API

…

Конфигурация вычислительных ресурсов, используемых для решения задач.

warm_cache — deprecated

Тип — boolean

Значение по умолчанию — False

Параметр отключен. Значение менять не требуется.

type (опц.)

Тип — string

Значение по умолчанию — horovod

…

Тип распределенных вычислений.

На данный момент возможны:

  • type='binary' для исполнения бинарных файлов и shell-скриптов.

  • type='pytorch' для использования встроенного механизма pytorch.distributed.

  • type='pytorch2' для использования встроенного механизма pytorch.distributed.

    Важно

    Используйте type='pytorch2' для тестирования запуска задач.

    type='pytorch' планируется отключить.

  • type='horovod' для использования библиотеки horovod.

  • type='cce' для запуска задачи обучения на CPU.

  • type='pytorch_elastic' для запуска задачи с типом Pytorch Elastic Learning. При некорректных значениях параметров возможны ошибки:

    • если n_workers < 2 — возникает ошибка «elastic job needs n_workers >= 2».

    • если elastic_max_workers != n_workers — возникает ошибка «elastic_max_workers != n_workers is not implemented».

    • если elastic_min_workers > n_workers — возникает ошибка «elastic_min_workers must be <= n_workers».

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

    Примечание

    Данный тип недоступен для региона Cloud.Region.A100 (GPU Tesla A100).

  • type='spark' для запуска распределенных задач обучения с использованием Spark. Позволяет запускать задачи как на CPU, так и на GPU. Для запуска используйте образ «cr.msk.sbercloud.ru/aicloud-base-images/spark-3.2.1:0.0.32.1». Список библиотек в образах.

    Примечание

    Данный тип недоступен для региона Cloud.Region.A100 (GPU Tesla A100).

pytorch_use_env (опц.)

Тип — boolean

Значение по умолчанию — False

…

flags (опц.)

Тип — dict

Значение по умолчанию — {}

…

Флаги, с которыми необходимо запустить скрипт (если таковые имеются в скрипте обучения модели).

Пример кода

"flags": {
     "batch_size": 512,
     "model": "mymodel50",
     "xla": False
     }";

Скрипт будет запущен с параметрами <your_script> --batch_size=512 --model="mymodel50" --xla=False

Важно

Значения возможно передавать с пробелами, обращая внимание на кавычки. Пример — "'some value'".

elastic_min_workers (опц.)

Тип — integer

Значение по умолчанию — 1

…

Параметр устанавливает минимальное количество воркеров для задач Pytorch Elastic Learning. Возможно передать значения больше 0 или строку default.

elastic_max_workers (опц.)

Тип — integer

Значение по умолчанию — n_workers

…

Параметр устанавливает максимальное количество воркеров для задач Pytorch Elastic Learning. Возможно передать значения больше 0 или строку default.

elastic_max_restarts (опц.)

Тип — integer

Значение по умолчанию — 5

…

Параметр устанавливает максимальное количество перезапусков задач Pytorch Elastic Learning.

stop_timer (опц.)

Тип — integer

Значение по умолчанию — 0 (задача не будет принудительно удалена)

…

Параметр задает время в минутах до принудительного удаления задачи, которая перешла в статус «Выполняется» (подробнее о статусах задач см. в разделе Задачи и окружения).

env_variables (опц.)

Тип — dict

…

Значение по умолчанию — {}

Параметр задает переменные окружения.

Важно

Значения возможно передавать с пробелами, обращая внимание на кавычки. Пример — "'some value'".

processes_per_worker (опц.)

Тип — integer

Значение по умолчанию — "default"

…

Параметр задает количество процессов на один рабочий узел региона, если не подходит количество процессов равное количеству GPU.

Можно запустить задачу на 16 GPU одного рабочего узла региона, указать process_per_worker=1, не заботиться о механизме распараллеливания и не оборачивать весь исполняемый код, например, в hvd.init(), а писать код таким же образом, каким он бы писался на обычной исполняющей машине.

Пример кода

client_lib.Job(base_image='cr.msk.sbercloud.ru/aicloud-base-images/horovod-cuda10.0-tf1.15.0-pt1.3.0',
                     script='tensorflow_mnist_estimator.py', n_workers=1,
                     n_gpus=16, warm_cache=False, process_per_worker=1)

conda_env (опц.)

Тип — string

Значение по умолчанию — None

…

Параметр позволяет указывать название окружения conda, если в образе имеется таковое и используется нестандартное окружение python, а окружение anaconda.

job_desc (опц.)

Тип — string

Значение по умолчанию — None

…

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

Пример кода

client_lib.Job(base_image='your base image',
               script='your script',
               job_desc="your_job_description"
               n_workers=1,
               n_gpus=1,
               warm_cache=False,
               process_per_worker=1)
client_lib.Job(script: 'your script',
               base_image: 'your base image',
               n_workers: 1,
               n_gpus: 0,
               type: cce,
               region: CCE-MT,
               instance_type: m3.large.8.linux)

cuda11 (опц.)

Тип — boolean

Значение по умолчанию — False

…

Важно

Параметр устаревший. Передача этого параметра не будет влиять на поведение задачи обучения. Оставляйте в значении False.

…

region (опц.)

Тип — string

Значение по умолчанию — V100

…

Параметр позволяет выбирать регион размещения вычислительных ресурсов.

Доступны значения:

  • DGX2-MT — Christofari.V100

  • A100-MT — Christofari.A100

  • CCE-MT — Cloud.Region.CPU (CPU)

  • SR002-MT — Cloud.Region.A100 (GPU Tesla A100)

Примечание

В регионе Cloud.Region.A100 (GPU Tesla A100) можно запускать только нераспределенные задачи обучения.

preflight_check (опц.)

Тип — boolean

Значение по умолчанию — False

…

Позволяет проверить исправность GPU перед запуском задачи обучения. Доступны значения True или False. Проверка доступна в регионах Christofari (Christofari.V100) и Christofari Neo (Christofari.A100) для кастомных и базовых образов. Подробнее см. preflight check.

Методы

client_lib.Job.submit()

Метод submit() отправляет сформированную задачу на вычисление в регион, после чего задача ставится в очередь на выполнение.

client_lib.Job.status()

Метод status() возвращает статус только по одной задаче обучения.

client_lib.Job.kill()

Метод kill() удаляет задачу (вне зависимости от того, находится ли она в очереди, или уже исполняется в регионе). В результате выполнения метода задача будет удалена.

client_lib.Job.logs(tail, verbose)

Метод logs(tail, verbose) возвращает логи по задаче, отправленной в регион на исполнение.

Параметры:

Параметр

Описание параметра

tail (опц.)

Тип — integer

Значение по умолчанию — None

…

Параметр определяет количество выводимых строк из лога, начиная с конца.

verbose (опц.)

Тип — boolean

Значение по умолчанию — True

…

Параметр определяет уровень детализации логов для пользователя. True — предоставляется полный лог. False — из лога исключается информация о статусе выполнения некоторых служебных процессов, например, пул образа или старт рабочих узлов региона.

client_lib.logs(job_name, tail, verbose)

Метод возвращает логи по названию задачи.

Параметр

Описание параметра

job_name (обяз.)

Тип — string

…

Название задачи.

tail (опц.)

Тип — integer

Значение по умолчанию — None

…

Параметр определяет количество выводимых строк из лога, начиная с конца.

verbose (опц.)

Тип — boolean

Значение по умолчанию — False

…

Параметр определяет уровень детализации логов для пользователя. True — предоставляется полный лог. False — из лога исключается информация о статусе выполнения некоторых служебных процессов, например, пул образа или старт рабочих узлов региона.