мл модели, которые обучаются раз в день, два раза в день и раз в неделю. Данные для них готовим по аналогичному расписанию. Всё это работает в спарке и пандасе, оркестрирует это добро эрфлоу. Метрики моделей храним в млфдлу.
Мл модели в одном питонячем пакете, который ставится через Пип инсталл, пайплайны в другом. В зависимостях у пакета с пайплайнами пакет с мл'ем. И само обучение - это по сути просто ещё одна таска в эирфлоу.
И вот есть потребность обучать разные версии моделей, т.е. в тасках использовать разные версии мл пакета. С одной стороны в новых версиях есть python Virtual env оператор и можно держать просто разные venv'ы для моделей. С другой стороны, можно держать 2 (3,4, N) версий airflow, но:
1. Хочется не пересчитывать одно и то же по несколько раз. Т.е. если у нас есть базовый датасет, то переиспользовать его.
2. Не переделывать пайплайны при добавлении новой версии модели.
3. Иметь возможность использовать немного разные датасеты для обучения (например, проверяем, влияет ли добавление ещё нескольких фичей, т.е. нужно ещё несколько полей в датасете)
4. Иметь возможность одновременно иметь в проде >2 версий моделей (АБн) тестирование.
5. Хотелось бы избежать переделывания всего)
6. Не слишком всё усложнять, не строить космолётов, а иметь понятную, поддерживаемую и удобную систему.
В общем, мб есть какие-то рекомендации или бестпрактисы, чтобы не изобретать велосипед?
P.S. датасеты готовятся на спарке, а перед обучением делается .to_pandas, если это важно.
P.P.S. добавлять, заменять технологии можем без проблем, если это не влечёт за собой очень больших переделок проекта.
Невер майнд
В хадупе и минио(
Обсуждают сегодня