TGViewer
MLOps Weekly MLOps Weekly @mlops_weekly · 102 subscribers
Post #40 213
🔄 Продолжаю рассказ про Argo Workflows: как построить пайплайн для обучения ML-модели

Я думал как лучше показать пайплайн. Однако у всех кластеры разные. Кто-то хочет использовать какие-то инструменты, а кто-то нет. В это же время у ArgoWF есть достаточно подробная документация и репозиторий с примерами.
Поэтому я решил не делать универсальный пример, который будет работать у всех, а скорее — разобрать ключевые шаги пайплайна и дать ссылки на официальные ресурсы ArgoWF, чтобы каждый мог адаптировать под себя.

Собственно разбор ключевых шагов пайплайна:

1. Загрузка кода модели из Git-репозитория
- - Как я говорил на одном из докладов: модель – это код+веса+зависимости. На этом этапе мы клонируем репозиторий с кодом модели. Argo предоставляет нам весь необходимый функционал, благодаря чему нам не требуется создавать скрипты, которые просто качают репу.

👉 Пример и официальная документация:
Git Example: https://github.com/argoproj/argo-workflows/blob/main/examples/input-artifact-git.yaml
Docs: https://argoproj.github.io/argo-workflows/workflow-templates/

2. Установка зависимостей
- - После загрузки кода модели мы переходим к установке зависимостей. Обычно это requirements.txt / conda.yaml или что-то подобное.
Для этого мы можем использовать отдельный шаг в виде контейнера, где устанавливаем нужные библиотеки. Так как зачастую окружение весит достаточно много и нам нужно его использовать во всех дальнейших шагах – его лучше сохранить в S3 хранилище. Argo нативно умеет паковать указанную папку в архив с нужным уровнем сжатия и загружать ее в S3.

👉 Примеры и документация:
Input Artifacts Example: https://github.com/argoproj/argo-workflows/blob/main/examples/input-artifact-s3.yaml
Python/Bash Scripts Example: https://github.com/argoproj/argo-workflows/blob/main/examples/scripts-python.yaml
Docs: *первый пункт*

3. Загрузка весов.
- - Этот этап нужен для инференса и вообще реализуется обычно в коде, так как идет работа с такими инстументами, как например MLFlow, однако веса и прочие данные, как и зависимости из второго шага можно загрузить напрямую из S3, Hadoop, FS, и других хранилок напрямую.
👉 Примеры и документация:
Docs Inputs: https://argo-workflows.readthedocs.io/en/latest/workflow-inputs/
Docs Artifacts: https://argo-workflows.readthedocs.io/en/latest/walk-through/artifacts/
Examples: все не накидать – Ctrl+F и вводим artifact в папке репы.

4. Обучение модели
- - Самый важный этап, как и выкладка. Здесь мы запускаем скрипт обучения, подгружая все ранее использованные артифакты.
По сути, нам можно воспользоваться шаблонами подгрузки из Git, S3 чтобы загрузить код, зависимости в виде архива, который будет автоматически распакован в нужную нам папку. И также запустить просто скрипт, через Bash.

Все примеры уже есть выше. Описание полей Input и Output шагов буквально идентичны: в случае input, путь - это откуда грузим, для output, путь - это куда. Подгружать можно практически все, что угодно и куда угодно.
Если у вас много оперативной памяти, то в K8s, все процессы работы с данными можно ускорить, использовав ее, как storage:


volumes:
- name: fast-volume
emptyDir:
sizeLimit: 15Gi
medium: Memory


Также хотелось упоминуть про прекрасные Docker образы mambaorg/micromamba, которые позволят юзать mamba (пакетный менеджер conda на C++), которые позволят поднимать модели на едином образе с любой версией питона и любым окружением, которое уже хранится в S3. Никаких образов на 2Gb+!


📌 Итого


Argo Workflows — это мощный инструмент для построения ML-пайплайнов в Kubernetes. Он гибко настраивается и имеет обширнейшую документацию. 95% всех моментов в ней описаны, оставшиеся 5% можно нарыть в API Doc, где показано, какие поля спецификаций имеются в инструменте. Все мелкие косяки, которые происходят фиксятся достаточно быстро, так как обновления идут почти каждые 2 месяца, если не быстрее.

Касательно реализации MLOps пайплайна: главное — понимать, какие этапы вам нужны, а с тем, как правильно описать в YAML, вам может помочь 100+ примеров на GitHub ну и строка поиска в доке.
GitHub argo-workflows/examples/input-artifact-git.yaml at main · argoproj/argo-workflows Workflow Engine for Kubernetes. Contribute to argoproj/argo-workflows development by creating an account on GitHub.
  • 👍 4
  • ❤ 2
  • 👾 2
  • 🥰 1
  • 🤩 1
More from @mlops_weekly
  1. Nov 18, 2025https://www.twitch.tv/secrets_of_devops
  2. Nov 18, 2025Напоминаю, что менее чем через 10 минут начнется эфир - ссылку на него пришлю в 18 часов Б…
  3. Nov 17, 2025MLOps – что это такое и при чем тут DevOps? 18 ноября в 18:00 в прямом эфире на Twitch к н…
  4. Nov 17, 2025Также завтра 18 ноября в 18:00 будет небольшой стрим, где мы с автором канала @secrets_of_…
  5. Nov 17, 2025🔜 О чём будем говорить дальше Раз уж мы перешли на более "живой" формат, расскажу, о чём…
  6. Nov 17, 2025🛠️ Немного о новом формате канала Привет! Решил немного поменять концепцию канала. Раньше…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →