Методы для работы с задачами обучения

См.также

Актуальная спецификация (автодокументация по методам).

При запуске задачи обучения через метод Run Job подается адрес скрипта в локальном хранилище, образ, на котором в каждом поде-воркере должен быть исполнен скрипт, количество узлов-исполнителей и количество GPU-ускорителей на каждом узле, необходима ли предварительная запись файлов, необходимых для обучения, на целевые машины (прогрев кэша), а также ряд других опциональных параметров. В результате ставит задачу в очередь к исполнению на кластере.

Описание методов

Метод API

HTTP-метод

Описание

Get Job List

GET

Возвращает выполняемые задачи обучения в workspace.

Run Job

POST

Создает и запускает задачу обучения на Christofari.

Get job status

GET

Получает статус задачи обучения, выполняемой на Christofari.

Delete job

DELETE

Останавливает задачу обучения

Get job logs

GET

Получение логов задачи обучения. Указывать количество строк с конца для логов. Описать где возможно параметры. Tail 10 — последние 10 строк логов с конца страницы.

Подробнее см. в спецификации.

Запуск задачи на кластере

Принимает на вход адрес скрипта в локальном хранилище, образ, на котором в каждом поде-воркере должен быть исполнен скрипт, количество узлов-исполнителей и количество GPU-ускорителей на каждом узле, необходим ли прогрев кэша (предварительная загрузка данных), а также ряд других опциональных параметров. В результате ставит задачу в очередь к исполнению на кластере.

[POST]

Параметры

HTTP HEADER
X-Api-Key = [client secret api key, individual for every namespace]

Authorization: [access_token value]
BODY
{

'script': <string>,

'base_image': <string>,

'n_workers': <int>,

'n_gpus': <int>,

'warm_cache': <boolean>,

'type': <string>,

'stop_timer': <int>,

'flags': {

'batch_size': <string>,

'model': <string>,

'variable_update': <string>,

'use_fp16': <boolean>,

'xla': <boolean>

}

}
Описание параметров
  • X-Api-Key — клиентский ключ доступа к API. Индивидуален для каждого аккаунта пользователя. Можно узнать, выполнив в Jupyter Notebook от лица пользователя следующие команды:

    import os
    
    print(os.environ['GWAPI_KEY'])
    
Описание параметров
  • Authorization — токен доступа, который характеризует пользователя, отправляющего запрос к API.

  • Script — путь до скрипта в локальной папке пользователя на кластере (которая так же видна в Jupyter Server), который должен быть выполнен в рамках задачи.

  • base_image — образ со всем окружением и библиотеками, на котором должен быть выполнен скрипт.

  • n_workers — количество узлов кластера, которые пользователь хочет задействовать в решении задачи.

  • n_gpus — количество GPU-ускорителей на каждом узле, которые должны быть задействованы в решении задачи.

  • warm_cache — необходим ли прогрев кэша (предварительная загрузка данных) для выполнения задачи.

  • stop_timer — опциональный параметр, характеризующий время в минутах, через которое после перехода задачи в статус Running она будет принудительно удалена. По умолчанию параметр = 0, что значит, что задача не будет принудительно удалена.

  • type — если необходимо использовать механизм pytorch.distributed, в параметре необходимо указать: «pytorch» (тип — строка). В противном случае либо ничего не указывать, либо указать «horovod» (параметр по умолчанию).

  • processes_per_worker — позволяет указывать количество процессов на одного воркера, если не подходит количество процессов равное количеству GPU.

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

Опциональные параметры
  • flags — флаги, с которыми необходимо запустить скрипт.

  • batch_size — размер батча.

  • model — в случае, если существует несколько точек входа, от которых зависит обучаемая модель (если предусмотрено скриптом * модели).

  • variable_update — обновление переменных (если предусмотрено скриптом модели).

  • use_fp16 — использование 16-битного floatingpoint (если предусмотрено скриптом модели).

  • xla — использование «AcceleratedLinearAlgebra» (если предусмотрено скриптом модели).

Пример Body
{

'base_image': 'registry.aicloud.sbcp.ru/base/horovod-cuda10.0-tf1.14.0',

'script': '/examples/benchmarks/scripts/tf_cnn_benchmarks/tf_cnn_benchmarks.py',

'n_workers': 2,

'n_gpus': 2,

'warm_cache': 'True',

'flags' : {

'batch_size': '512',

'model':'resnet50',

'xla':'False'

}

}

Результат

{

'error_code': '0',

'error_message': '',

'job_name' : <string>,

'created_at' : <unixtimestamp>

}
Описание параметров
  • error_code — код ошибки.

  • error_message — сообщение об ошибке.

  • job_name — имя задачи.

  • created_at — дата и время создания задачи.

Получение статуса задачи

Получить статус задачи, используя UUID задачи.

[GET]

HTTP HEADER
X-Api-Key = [client secret api key, individual for every namespace]

Authorization: [access_token value]
Описание параметров

X-Api-Key — клиентский ключ доступа к API. Индивидуален для каждого аккаунта пользователя. Можно узнать, выполнив в Jupyter Notebook от лица пользователя следующие команды:

import os

print(os.environ['GWAPI_KEY'])
Результат
{

'error_code': '0',

'error_message': '',

'job_name': <string>,

'status_name': [pending, running, failed, stopped, completed]

'created_at'   : <unixtimestamp>,

'pending_at'   : <unixtimestamp>,

'running_at'   : <unixtimestamp>,

'completed_at' : <unixtimestamp>

}
Описание параметров
  • error_code — код ошибки.

  • error_message — сообщение об ошибке.

  • job_name — UUID задачи.

  • status_name — статус задачи.

  • created_at — дата и время создания.

  • pending_at — дата и время постановки в очередь.

  • running_at — дата и время запуска задачи.

  • completed_at — дата и время завершения вычислений.

Удаление и остановка задачи

Удалить задачу по UUID.

[DELETE]

HTTP HEADER
X-Api-Key = [client secret api key, individual for every namespace]

Authorization: [access_token value]
Описание параметров
  • X-Api-Key — клиентский ключ доступа к API. Индивидуален для каждого аккаунта пользователя. Можно узнать, выполнив в Jupyter Notebook от лица пользователя следующие команды:

import os

print(os.environ['GWAPI_KEY'])
  • Authorization — токен доступа, который характеризует пользователя, отправляющего запрос к API.

Результат
{

'error_code': '0',

'error_message': '',

'job_name' : <string>,

'status': 'deleted'

'deleted_at'   : <unixtimestamp>

}
Описание параметров
  • error_code — код ошибки

  • error_message — сообщение об ошибке

  • job_name — UUID задачи

  • status — статус задачи

  • deleted_at — дата и время удаления задачи

Получение логов задачи

[GET]

HTTP HEADER
X-Api-Key = [client secret api key, individual for every namespace]

Authorization: [access_token value]
Описание параметров

X-Api-Key — клиентский ключ доступа к API. Индивидуален для каждого аккаунта пользователя. Можно узнать, выполнив в Jupyter Notebook от лица пользователя следующие команды:

import os

print(os.environ['GWAPI_KEY'])
Результат

streaming response в „text/plain“: logline

Получение списка задач пользователя

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

[GET]

HTTP HEADER
X-Api-Key = [client secret api key, individual for every namespace]

Authorization: [access_token value]
Описание параметров

X-Api-Key — клиентский ключ доступа к API. Индивидуален для каждого аккаунта пользователя. Можно узнать, выполнив в Jupyter Notebook от лица пользователя следующие команды:

import os

print(os.environ['GWAPI_KEY'])
Результат
{

'error_code': '0',

'error_message': '',

'jobs': [

{

'job_name' : <string>,

'status' : <string>,

'created_at'   : <unixtimestamp>

}

]

}
Описание параметров
  • error_code — код ошибки.

  • error_message — сообщение об ошибке

  • jobs — массив структур, характеризующих запущенные задачи. Для каждой задачи возвращается:

  • job_name — UUID задачи.

  • status — статус задачи.

  • created_at — дата и время создания.