Методы для работы с задачами обучения
См.также
Актуальная спецификация (автодокументация по методам).
Важно
Параметр warm_cache
— отключен (deprecated).
Он может быть корректно обработан только в значении warm_cache=False
При значении warm_cache=True
возникнет ошибка с кодом 400.
При запуске задачи обучения через метод 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-ускорителей на каждом узле, необходим ли прогрев кэша (предварительная загрузка данных), а также ряд других опциональных параметров. В результате ставит задачу в очередь к исполнению на кластере.
Параметры
- 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': deprecated, '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
—deprecated
. Параметр обеспечивает редварительную запись файлов, необходимых для обучения, на целевые машины.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': 'cr.msk.sbercloud.ru/aicloud-base-images/horovod-cuda10.0-tf1.15.0-pt1.3.0:latest', 'script': '/examples/benchmarks/scripts/tf_cnn_benchmarks/tf_cnn_benchmarks.py', 'n_workers': 2, 'n_gpus': 2, 'warm_cache': 'false', '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 задачи.
- 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.
- 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
— дата и время удаления задачи
Получение логов задачи
- 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
Получение списка задач пользователя
Получить список задач пользователя (связанного с выданным токеном, который отправляется в запросе).
- 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
— дата и время создания.