Пайплайны
Пайплайны позволяют автоматизировать ход обработки данных и ML-моделирования путем использования модулей платформы (Data transfer service, Environments, Deployments). С помощью этого обеспечивается:
Упрощение развертывания, т.к. переход от прототипа к решению происходит быстрее, а тестирование перехода становится проще.
Последовательное обращение к разным модулям платформы ML Space (Data transfer service, Environments, Deployments) из одной точки и возможность мониторить процесс. Например, использование параметра
node_type: data_transfer
показывает, что будет запущен модуль Data transfer service.
Примечание
В
node_type: environments_job
создается контейнер на основе заданного образаbase_image
, в котором запускается скриптscript
.Задачу обучения можно просмотреть в разделе
. Она будет иметь имя вида:lm-mpi-job-cd190c2b-e240-42cd-a05e-bffd55072b21
.
Описание параметров пайплайна
В этом разделе приведены параметры, которые используются для составления пайплайна. К каждому параметру добавлено описание, которое может содержать тип, допустимые значения, объяснение сути параметра, пример. Параметры сгруппированы по назначению. Отдельно указаны отключенные (deprecated) параметры.
Общие параметры корневого уровня
Параметры корневого уровня Параметр
Описание
nodes
Тип —
list
.Список шагов пайплайна.
version
Тип —
string
.Версия пайплайна. От нее зависит, какие параметры можно использовать в коде пайплайна.
Допустимые значения:
"1"
— в этой версии можно добавить паралелльность, зависимые шаги и повторный запуск шагов.
Общие параметры для каждой из nodes
Параметры для каждой из nodes Параметр
Описание
node_type
Тип —
string
.Определяет, какой модуль использовать.
Допустимые значения:
data_transfer
— перенос данных.
environments_image
— образы в Jupyter Server.
environments_job
— задачи обучения.
deployments_image
— образы в деплоях.
deployments_inference
— развертывание и эксплуатация модели.
dependencies
(опц.)Тип —
list
.Список шагов пайплайна вида
[name1, name2]
, от которых зависит выполнение данного шага. Доступно в версии 1.
retries
(опц.)Тип —
integer
.Допустимые значения: от 0 до 100 включительно.
Количество повторных запусков шага пайплайна. Доступно в версии 1.
Data transfer service
Data transfer service (node_type: data_transfer) Параметр
Описание
name
Тип —
string
.Имя правила переноса.
Пример:
pipeline-name
.
source_conn_id
Тип —
string
.Идентификатор (id) коннектора источника. Значение доступно по кнопке Узнать ID коннектора.
destination_conn_id
Тип —
string
.Идентификатор (id) коннектора места назначения. Значение доступно по кнопке Узнать ID коннектора.
strategy
Тип —
string
.Допустимые значения:
write_all
,append_new
,sync_all
.Стратегии переноса файлов. Подробнее о каждой:
Добавить все данные (write_all) — обновляет все данные в месте назначения и добавляет новые.
Добавить только новые записи (append_new) — добавляет в место назначения только новые записи.
Полная синхронизация (sync_all) — синхронизирует данные между двумя подключениями. Пример: на источнике находится файл А, на месте назначения — файл Б, после синхронизации в источнике и месте назначения будут находиться файл А и файл Б.
source
Тип —
string
.Путь до переносимого файла или папки в источнике.
Пример:
test-transition.txt
.
destination
Тип —
string
.Целевой путь в месте назначения.
Пример:
transferred/workflows
.
cluster_name
(опц.)Тип —
string
.Значение по умолчанию —
chistofari-1
.Допустимые значения:
chistofari-1
— обозначение для Christofari.V100.
christofari-2
— обозначение для Christofari.A100.
cce
— обозначение для Cloud.Region.CPU (CPU).
pd11
— обозначение для Cloud.Region.A100 (GPU Tesla A100).Имя региона. Используется при переносах в NFS.
Environments
Важно
При указании путей обращайте внимание, в каком NFS-хранилище и каталоге находится файл.
Environments create image (node_type: environments_image ) Параметр
Описание
from_image
Тип —
string
.Название базового образа, на основе которого создается новый. Должно иметь имя вида
cr.msk.sbercloud.ru/aicloud-base-images/image-name:tag
. Подробнее про образы см. Библиотеки в образах.
conda_env
Тип —
string
.Имя окружения conda, если в образе используется не стандартное окружение python, а окружение anaconda.
install_type
(опц.)Тип —
string
.Значение по умолчанию —
pip
.Допустимые значения:
pip
poetry
requirements_file
Тип —
string
.Путь к файлу
requirements
на NFS. Используется, только еслиinstall_type
=pip
.Пример:
/home/jovyan/requirements.txt
.
poetrylock_file
(опц.)Тип —
string
.Путь к файлу
poetry.lock
на NFS. Используется, только еслиinstall_type
=poetry
.
Environments run job (node_type: environments_job) Параметр
Описание
base_image
Тип —
string
.Базовый образ, в котором будет исполняться скрипт обучения модели. Образ должен быть из
cr.msk.sbercloud.ru/aicloud-base-images
или из проекта Docker registry для текущего воркспейса. Подробнее про базовые образы.
script
Тип —
string
.Путь к скрипту обучения на NFS.
Пример:
/home/jovyan/quick-start/job_launch/tf_mnist_estimator.py
instance_type
Тип —
string
.Конфигурация вычислительных ресурсов, используемых для решения задач.
Пример:
v100.1gpu
.
n_workers
(опц.)Тип —
integer
.Значение по умолчанию — 1.
Количество рабочих узлов региона, на которых будет выполняться скрипт.
type
(опц.)Тип —
string
.Значение по умолчанию —
horovod
Допустимые значения:
pytorch
,horovod
.Тип распределенных вычислений.
flags
(опц.)Тип —
dict
.Значение по умолчанию — {}.
Флаги, с которыми нужно запустить скрипт.
stop_timer
(опц.)Тип —
integer
Значение по умолчанию — 0 (задача не будет принудительно удалена).
Время в минутах до принудительного удаления задачи, которая перешла в статус «Выполняется». Подробнее о статусах задач см. в разделе Проверить статистику по задачам и Jupyter Server.
env_variables
(опц.)Тип —
dict
.Значение по умолчанию — {}.
Переменные окружения.
processes_per_worker
(опц.)Тип —
integer
.Значение по умолчанию — 1.
Количество процессов на один рабочий узел региона, если не подходит количество процессов, равное количеству GPU.
conda_env
(опц.)Тип —
string
.Название имеющегося в образе окружения conda, если используется не стандартное окружение python, а окружение anaconda.
job_desc
(опц.)Тип —
string
.Пользовательское описание задачи.
region
(опц.)Тип —
string
.Значение по умолчанию:
V100
.Допустимые значения:
V100
— обозначение для Christofari.V100.
А100
— обозначение для Christofari.A100.
CCE-MT
— обозначение для Cloud.Region.CPU (CPU).
SR002-MT
— обозначение для Cloud.Region.A100 (GPU Tesla A100).Имя региона.
Deployments
Deploy create image (node_type: deployments_image) Параметр
Описание
base_image
Тип —
string
.Название базового образа, на основе которого создается новый. Должно начинаться с
cr.msk.sbercloud.ru/aicloud-base-images
.Подробнее — в разделе Библиотеки в образах.
artifacts_directory
Тип —
string
.Путь к каталогу с артефактами модели.
run_script
Тип —
string
.Путь к файлу serving-script в папке с артефактами.
requirements_path
Тип —
string
.Путь к файлу
requirements.txt.
AWS_ACCESS_KEY_ID
Тип —
string
.S3 access key ID. Как получить credentials, см. в разделе Credentials S3 и путь до файла на S3.
AWS_SECRET_ACCESS_KEY
Тип —
string
.S3 secret access key. Как получить credentials, см. в разделе Credentials S3 и путь до файла на S3.
S3_ENDPOINT
Тип —
string
.S3 endpoint. Как получить credentials, см. в разделе Credentials S3 и путь до файла на S3.
Inference deploy (node_type: deployments_inference) Параметр
Описание
image
Тип —
string
.Название образа, из которого нужно создать деплой.
region
Тип —
string
.Допустимые значения:
DGX2-INF-001
— обозначение для Christofari.V100
CCE-INF
— обозначение для Cloud.Region.CPU (CPU)Имя региона.
instance_type
Тип —
string
.Тип конфигурации вычислительных ресурсов, которые используются для решения задач.
Для региона
DGX2-INF-001
значение параметра —v100.1gpu
.
replicas
Тип —
dict
.Допустимые значения:
replicas: min: 0 max: 100 Количество экземпляров.
alias
(опц.)Тип —
string
.Название образа.
description
(опц.)Тип —
string
.Описание деплоя.
Отключенные параметры
Environments Параметр
Для чего использовался
warm_cache
Прогрев кеша.
n_gpus
Допустимые значения — от 1 до 16.
Количество GPU на одном рабочем узле.
cpu_limit
Лимит количества CPU.
memory_limit
Лимит памяти в ГБ.
cuda11
Использование
cuda11
.
Конфигурации вычислительных ресурсов (instance_type)
Для просмотра доступных конфигураций используйте:
Вызов API возвращает образы и доступных конфигурации в задачах обучения, Jupyter Server и деплоях (инференсе).
Ключ
MT
— для обучения моделей и Jupyter Server.Ключ
INF
— для деплоев.
Вызов API возвращает доступные spark-конфигурации.
curl --location --request GET 'https://api.aicloud.sbercloud.ru/public/v2/configs?cluster_type=MT' \
--header 'x-api-key: eeeeccee-eeee-eeee-eeee-eeaeefeeb49c' \
--header 'x-workspace-id: frrrrrra-ceee-eeec-eeef-4df7ca4bbbb1' \
--header 'Authorization: eyJhbGciOiJSUzI1NiIsInR5cCIgOi...'
curl --location --request GET 'https://api.aicloud.sbercloud.ru/public/v2/configs?cluster_type=INF' \
--header 'x-api-key: eeeeccee-eeee-eeee-eeee-eeaeefeeb49c' \
--header 'x-workspace-id: frrrrrra-ceee-eeec-eeef-4df7ca4bbbb1' \
--header 'Authorization: eyJhbGciOiJSUzI1NiIsInR5cCIgOi...'
curl --location --request GET 'https://api.aicloud.sbercloud.ru/public/v2/configs/spark' \
--header 'x-api-key: eeeeccee-eeee-eeee-eeee-eeaeefeeb49c' \
--header 'x-workspace-id: frrrrrra-ceee-eeec-eeef-4df7ca4bbbb1' \
--header 'Authorization: eyJhbGciOiJSUzI1NiIsInR5cCIgOi...'
См.также