Пайплайны

Пайплайны позволяют автоматизировать ход обработки данных и 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.

  • Задачу обучения можно просмотреть в разделе Environments → Задачи и окружения. Она будет иметь имя вида: 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-конфигурации.

Пример запроса для получения списка образов с ключом MT
 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...'
Пример запроса для получения списка образов с ключом INF
 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...'
Пример запроса для доступных spark-конфигураций
 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...'