Использование Kubeflow Pipelines
Kubeflow Pipelines (KFP) — это платформа для создания и развертывания переносимых, масштабируемых рабочих процессов машинного обучения (ML), основанных на Docker-контейнерах. SDK KFP позволяет определять и управлять пайплайнами и компонентами с помощью Python.
Содержание
Предварительные требованияУстановка KFP SDKНастройка KFP для работы с вашим объектным хранилищемБыстрый старт — примерУправление пайплайнами через UIДоступ к панели PipelinesЗагрузка пайплайнаСоздание запускаПросмотр деталей запускаПовторяющиеся запускиПредварительные требования
Установка KFP SDK
Запустите Jupyter Notebook (или Workbench) в вашем namespace и установите KFP SDK:
Настройка KFP для работы с вашим объектным хранилищем
Если вы устанавливали Kubeflow с внешним сервисом хранения S3/MinIO, необходимо добавить ConfigMap "KFP Launcher" для настройки хранилища, используемого текущим namespace или пользователем. Подробнее можно ознакомиться в документации Kubeflow https://www.kubeflow.org/docs/components/pipelines/operator-guides/configure-object-store/#s3-and-s3-compatible-provider. Если конфигурация не задана, запуски пайплайнов могут по-прежнему обращаться к адресу сервиса по умолчанию, например "minio-service.kubeflow:9000 ", что может быть некорректно.
Ниже приведён простой пример для начала работы:
Например, в этом ConfigMap следует указать значения, соответствующие вашему собственному хранилищу S3/MinIO:
defaultPipelineRoot: место хранения промежуточных данных пайплайна
endpoint: endpoint сервиса s3/MinIO. Важно, чтобы он НЕ начинался с "http" или "https"
disableSSL: отключение доступа по "https" к endpoint
region: регион s3. При использовании MinIO любое значение подходит
credentials: AK/SK из секретов
После добавления этого ConfigMap новые запуски Kubeflow Pipeline автоматически прочитают эту конфигурацию и будут сохранять данные, используемые Kubeflow Pipeline.
Быстрый старт — пример
Пайплайн — это описание рабочего процесса ML, включающее все компоненты и их взаимосвязи в виде графа.
Ниже приведён простой пример определения пайплайна, который выводит "Hello, World!" с использованием KFP SDK.
Для получения дополнительной информации о том, как определять и запускать пайплайны, обратитесь к официальной документации KFP: https://www.kubeflow.org/docs/components/pipelines/user-guides/
Управление пайплайнами через UI
Вы также можете управлять пайплайнами, экспериментами и запусками непосредственно через Kubeflow Dashboard.
Доступ к панели Pipelines
- Войдите в центральную панель Kubeflow.
- В боковом меню выберите Pipelines.
Загрузка пайплайна
Если вы скомпилировали пайплайн в YAML-файл (например, pipeline.yaml из примера выше), вы можете загрузить его:
- Нажмите Pipelines -> Upload Pipeline.
- Upload a file: выберите ваш
pipeline.yaml. - Pipeline Name: задайте имя (например,
Hello World Pipeline). - Нажмите Create.
Создание запуска
Чтобы выполнить загруженный пайплайн:
- Нажмите на имя пайплайна для открытия его деталей.
- Нажмите Create Run.
- Run Name: введите описательное имя.
- Experiment: выберите существующий эксперимент или создайте новый. Эксперименты помогают группировать связанные запуски.
- Run Parameters: введите значения для аргументов пайплайна (например,
recipient:World). - Нажмите Start.
Просмотр деталей запуска
После запуска вы будете перенаправлены на страницу Run Details.
- Graph: визуализация шагов (компонентов) пайплайна и их статуса (Running, Succeeded, Failed).
- Logs: кликните на конкретный шаг в графе, чтобы просмотреть логи контейнера в боковой панели. Это важно для отладки.
- Inputs/Outputs: просмотр артефактов, передаваемых между шагами или созданных в качестве итоговых результатов.
- Visualizations: если пайплайн генерирует метрики или графики, они появятся во вкладках Run Output или Visualizations.
Повторяющиеся запуски
Вы можете настроить автоматический запуск пайплайнов по расписанию:
- В списке Pipelines найдите нужный пайплайн.
- Нажмите Create Run, но выберите тип запуска Recurring Run (или перейдите в Experiments (KFP) -> Create Recurring Run).
- Trigger: задайте расписание (например, Periodic, Cron).
- Parameters: настройте входные данные, которые будут использоваться при каждом запуске по расписанию.
- Нажмите Start.