TGViewer
Pragmatic ML Pragmatic ML @pragmaticml · 393 subscribers
Post #7 659
За годы работы я прошел несколько стадий принятия оркестрации ML/Data пайплайнов.

Сначала в моей жизни был планировщик Windows. Это была Lamoda, я обкачивал Google Adsense и Google Analytics ежедневно и складывал это в Postgres, развернутый рядом. Волшебное время, Windows может в хорошие решения (иногда).

Потом в Mail.ru был Luigi в качестве контроллера исполнения DAG’ов и Jenkins в качестве контроля расписания. До сих пор вспоминаю Luigi с теплотой, тогда он казался мне вершиной инженерии. Удобный визуализатор, возможность локально потестить код, свободная передача данных между задачами в одном DAG’е — очень приятно и очень удобно.
Из минусов — приходится ставить на расписание отдельным сервисом (cron, Jenkins, etc).
Интересный факт — когда я устроился в другое подразделение Mail.ru через год, мне продолжили приходить письма о падениях DAG’ов, которые я написал несколько лет назад.
С — стабильность.

Следующим был шаг обратно к истокам — помесь bash и python скриптов, которые деплоились и ставились на крон на конечные физические машины с помощью самописного аналога Ansible. Ад редкостный, особенно в разрезе мониторинга падений (его не было).

Дальше был Сбермаркет с Airflow+K8s. Проблемы с тестовыми стендами, невозможность запустить код локально, опять разделение кода исполняемого и кода DAG’а — все это приводит к фрустрации и снижению скорости разработки. Еще из минусов: мне крайне негативно отношусь от концепции XCom (cross-communications). Выглядит как огромный костыль для возможности передачи данных между задачи в DAG’е (и не только в нем).
Есть, конечно, плюсы: расписание из коробки, возможность отвязаться от физических машин (только благодаря куберу), удобные средства мониторинга падений.

В последние годы появилось множество других оркестраторов — Prefect, Dagster, Metaflow, Flyte. Каждый имеет свою специфику и область применения, конечно, но приятно, когда есть выбор.
Если вы вдруг задумались, какой планировщик вам выбрать сейчас — я определенно посоветую вам Dagster. Супер приятный, все лучшее, что можно взять из Luigi, Cron, Airflow — все это есть в нем. Особенно радует возможность протестировать код прямо локально, довольно просто развернув мини Dagster локально (одной командой!).
Мой коллега как раз недавно рассказывал на Dagster community day про то, как мы мощно прогоняем за пару часов миллионы аудио файлов через несколько нейронок с помощью Dagster+Ray.
Стоит упомянуть проблемы:
– Backfill задач пока experimental фича;
– Есть автоматериализация downstream задач при запуске upstream, но наоборот — придется повозиться.

TLDR: Берите Дагстер, не пожалеете
dagster.io Modern Data Orchestrator Platform | Dagster Dagster is the data orchestrator platform that helps you build, schedule, and monitor reliable data pipelines - fast, flexible, and built for teams.
  • 👍 9
More from @pragmaticml
  1. Feb 13, 2024Cloudflare — пример того, как нужно решать вопросики. Даже за вычетом их крутых продуктов,…
  2. Feb 3, 2024В одной из первых домашек курса Efficient Deep Learning Systems предлагается порешать мале…
  3. Feb 2, 2024На фоне того, что Цукерберг скупает сотни H100 для обучения новых версий LLama, все осталь…
  4. Jan 31, 2024Наверное, стоит отдельно рассказать про топ 1 решение Kaggle соревы из поста выше. Не буду…
  5. Jan 31, 2024Про аугментации. Я довольно давно не копался в CV. Последнее, что я помнил — albumentation…
  6. Jan 30, 2024Про бенчмарки загрузки png картинок. Ужасно сгорел, перебирая разные способы загрузки png…
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 →