Pipelines
В данном разделе содержится информация о модуле Pipelines.
В этом разделе
Особенности функциональности Pipelines
Использование Pipelines позволяет автоматизировать ход обработки данных и ML-моделирования, путем использования модулей платформы (Data transfer service, Environments, Deployments). Непрерывная цепочка связанных работ дает следующие преимущества:
Последовательное обращение к сервисам платформы ML Space (Data transfer service, Environments, Deployments).
Меньше ошибок, т.к. выполняя шаги последовательно, вы не пропустите и не сможете неправильно выполнить какой-то этап.
Упрощенный процесс развертывания, т.к. переход от прототипа к решению станет быстрее, а тестирование перехода проще.
Важно
Модуль Pipelines дублирует модули платформы ML Space, позволяя запускать их в одном общем месте. Например, использование параметра
node_type: data_transfer
показывает, что будет запущен модуль Data transfer service.В «node_type: environments_job» создается контейнер на основе заданного образа
base_image
, в котором запускается скрипт script.Задачу обучения можно просмотреть в разделе
. Она будет иметь имя вида:lm-mpi-job-cd190c2b-e240-42cd-a05e-bffd55072b21
.
Создание и редактирование Pipeline
Введите название (например,
Мой первый пайплайн
).Выберите Тип срабатывания:
Ручной запрос
По расписанию
Запуск осуществляется вручную.
Запуск осуществляются по расписанию в указанный период времени с указанными интервалами.
Выберите Поделиться с командой, если требуется доступ к Pipeline всем участникам workspace.
Отредактируйте
.yaml
. Пример можно посмотреть в Пример кода для создания Pipeline.Значения параметров, используемых для составления Pipeline, приведены ниже.
Запустите Pipeline, нажав Запустить сейчас. Если не нажать Запустить сейчас, Pipeline не будет создан.
Для изменения параметров созданного Pipeline нажмите Настройки.
Действия над Pipeline
При работе с Pipeline в меню доступны действия: и .
Описание параметров Pipeline
В этом разделе поблочно описаны параметры и возможные значения, которые можно использовать для составления Pipeline.
Общие для всех этапов
Общее Параметр
Значение
Описание
nodes
data_transfer
auto_ml
deployments_image
deployments_inference
environments_image
environments_job
Обязательный параметр шага, который определяет, какой модуль использовать.
Data transfer service
Data transfer service Параметр
Значение
Описание
name
pipeline-name
Имя подключения, которое автоматически создаст Pipelines после запуска.
source_conn_id
Значение доступно по кнопке Узнать ID коннектора
Идентификатор (id) коннектора до источника данных.
destination_conn_id
Значение доступно по кнопке Узнать ID коннектора
Идентификатор (id) коннектора до источника данных.
strategy
write_all
,append_new
,sync_all
Правило переноса файлов:
Добавлять все данные (write_all) — обновляет все данные в месте назначения и добавляет новые.
Добавлять только новые записи (append_new) — добавляет только новые записи в место назначения.
Полная синхронизация (sync_all) — синхронизирует данные между двумя подключениями. Пример: на источнике находится файл А, на месте назначения — файл Б, после синхронизации в источнике и месте назначения будут находиться файл А и файл Б.
source
test-transition.txt
Путь до переносимого файла/папки в источнике.
destination
transferred/workflows
Целевой путь в месте назначения.
cluster_name
chistofari-1
christofari-2
cce
Имя региона размещения вычислительных ресурсов (кластера).
Environments
Environments create image Параметр
Значение
Описание
from_image
cr.msk.sbercloud.ru/aicloud-jupyter/jupyter-cuda10.1-tf2.2.0-gpu-mlspace:0.0.74
Название базового образа, на основе которого создаем новый. Подробнее про образы см. Образы, используемые на платформе ML Space.
requirements_file
/home/jovyan/requirements.txt
Путь к файлу requirements на NFS.
conda_env
base
Имя окружения conda, если в образе используется не стандартное окружение python, а окружение anaconda.
install_type
pip
Параметр используется только при условии install_type == «poetry». Он указывает путь до файла
poetry.lock
на NFS.
Environments run job Параметр
Значение
Описание
base_image
cr.msk.sbercloud.ru/aicloud-jupyter/jupyter-cuda10.1-tf2.2.0-gpu-mlspace:0.0.74
Название базового образа, на основе которого делается новый. Подробнее про образы см. Образы, используемые на платформе ML Space.
script
/home/jovyan/quick-start/job_launch/tensorflow_mnist_estimator.py
Путь к скрипту обучения на NFS.
Опционально
n_workers
1
Количество рабочих узлов кластера, на которых будет выполняться скрипт. Может принимать значения больше 0.
Опционально
n_gpus
1
Количество GPU на одном рабочем узле. Может принимать значения в диапазоне от 1 до 16.
Опционально
cpu_limit
3
Лимит количества CPU.
Опционально
memory_limit
4
Лимит памяти (в ГБ).
Опционально
warm_cache
false
Параметр отключен (deprecated).
Опционально
type
horovod
Тип распределенных вычислений, варианты: pytorch, horovod.
Опционально
flags
foo: 'bar'
,baz: 'qux'
Флаги, с которыми нужно запустить скрипт.
Опционально
stop_timer
0
Максимальное время выполнения задачи в минутах до принудительного удаления,
0
- не удалять принудительно.Опционально
env_variables
quux: 'quuz'
,corge: 'grault'
Переменные окружения.
Опционально
processes_per_worker
1
Количество процессов на один рабочий узел кластера, по умолчанию равно количеству GPU.
Опционально
conda_env
base
Имя окружения conda, если в образе используется не стандартное окружение python, а окружение anaconda.
Опционально
job_desc
JOB
Пользовательское описание задачи.
Опционально
cuda11
false
Использование cuda11.
Опционально
region
V100
илиА100
Имя региона размещения вычислительных ресурсов (кластера).
Deployments
Deploy create image Параметр
Значение
Описание
from_image
cr.msk.sbercloud.ru/aicloud-jupyter/jupyter-cuda10.1-tf2.2.0-gpu-mlspace:0.0.74
Имя базового образа должно начинаться с cr.msk.sbercloud.ru/aicloud-base-images. Подробнее про образы см. Образы, используемые на платформе ML Space.
run_script
foo.py
Путь к каталогу с артефактами модели.
requirements_path
requirements.txt
Путь к файлу requirements.txt.
AWS_ACCESS_KEY_ID
access key
S3 access key ID.
S3_ENDPOINT
s3 endpoint
S3 endpoint.
Inference deploy Параметр
Значение
Описание
image
cr.msk.sbercloud.ru/.../IMAGE
Название образа, из которого нужно создать деплой.
region
DGX2-INF
Имя региона размещения вычислительных ресурсов (кластера). Может принимать следующие значения:
«DGX2-INF» = Christofari.V100
«CCE-INF» = SR.01 (CPU, V100)
instance_type
v100.1gpu
Тип конфигурации, для региона «DGX2-INF» это строка вида v100.1gpu, где gpu может принимать значения в диапазоне от 1 до 16.
replicas
min: 0
,max: 100
Количество pods может принимать значения в диапазоне от 0 до 100.
alias
image-name
Название образа.
description
image-descr
Описание.
Пример кода для создания Pipeline
Рассмотрим пример Pipelines, в котором используются модули:
Data transfer service
Environments
Deployments
Подробнее про Описание параметров Pipeline.
В рассмотренном ниже примере выполняется:
Перенос файлов с S3 на NFS региона размещения вычислительных ресурсов Christofari.V100 с использованием
data_transfer
.Создание образа на основании базового с использованием зависимостей из файла
requirements.txt
.Запуск задачи обучения в регионе Christofari.V100 с установленными параметрами.
Создание образ для деплоя.
Запуск инференса модели в установленной конфигурации.
Pipeline code
nodes: - node_type: data_transfer parameters: name: "PPL: S3 -> NFS" source_conn_id: "d5e32f66-89bb-11ec-a8a3-0242ac120002" source: "ruRoBERTa-large/ruRoberta-large/" destination_conn_id: "d5e32f66-89bb-11ec-a8a3-0242ac120003" destination: "FOLDER_NAME/" cluster_name: "christofari-1" strategy: "write_all" #------------------------ #------------------------ #-----ENV image build---- - node_type: environments_image parameters: requirements_file: "/home/jovyan/quick-start/job_launch/requirements.txt" from_image: "cr.msk.sbercloud.ru/aicloud-base-images/horovod-cuda10.0-tf1.15.0-pt1.3.0" #------------------------ #------------------------ #-----ENV job------- - node_type: environments_job parameters: base_image: 'cr.msk.sbercloud.ru/d5e33f66-89bb-15ec-a8a3-0242ac510002/job-custom-image-d4a804:latest' script: '/home/jovyan/quick-start/job_launch/tensorflow_mnist_estimator.py' requirements_file: '/home/jovyan/quick-start/job_launch/requirements.txt' n_workers: 1 n_gpus: 1 job_desc: "Environments job" cpu_limit: 3 memory_limit: 4 region: 'V100' #------------------------ #------------------------ #-----DEPL build image--- - node_type: deployments_image parameters: base_image: 'cr.msk.sbercloud.ru/aicloud-base-images/horovod-cuda10.0-tf1.15.0-pt1.3.0' run_script: 'server.py' artifacts_directory: 'b-ws-xa1o9-czq/folder100/' requirements_path: "requirements.txt" AWS_ACCESS_KEY_ID: 'u-ws-xa1o9-1jt' AWS_SECRET_ACCESS_KEY: 'YOUR ACCESS KEY' S3_ENDPOINT: 'https://n-ws-lo1c9.s3pd02.sbercloud.ru' #---------------------------- #---------------------------- #-----DEPL image inference--- - node_type: deployments_inference parameters: image: "cr.msk.sbercloud.ru/d5e32f66-89bb-11ec-a1a9-0112ac120003/inference-image-1643879777" region: 'DGX2-INF' instance_type: 'v100.1gpu' replicas: min: 1 max: 1 alias: "DEPLOY INFERENCE" description: "You description here"