🧬 В своем последнем проекте (цифровой двойник биореактора) столкнулся с интересной задачей. Обычно обучение модели выглядит так: вручную анализируются данные, подбирается алгоритм, и затем долго-долго меняются цифры в Jupyter Notebook в попытке получить стабильный результат.

⚠ Но оказывается это не работает, когда данные каждый раз новые. Разные пространства признаков, размерности и целевые метрики. В результате одним из основных компонентов программы стал AutoML-движок, способный быстро перебрать несколько алгоритмов регрессии и автоматически выбрать наиболее точный.

📦 Специфика машинного обучения такова, что после предобработки данных процесс обучения и валидации моделей во многом унифицирован и слабо зависит от предметной области. Поэтому этот компонент удалось легко отделить. После небольшого рефакторинга решил опубликовать его как независимую библиотеку на GitHub и PyPI. Как бонус — возможность указать ее в requirements.txt и ставить через pip install.

💡 Идея конфигурируемых AutoML библиотек не нова. Существуют зрелые решения от крупных компаний: AutoGluon (AWS), Ludwig (Uber), FLAML (Microsoft), H2O AutoML. Они покрывают большой набор сценариев, но это делает их тяжелыми. Искренне попытался вникнуть и доработать готовое решение под себя, но запутался где-то между 6 и 7 слоем абстракции. Некоторые вещи проще написать под себя с нуля, а не тянуть сотни зависимостей.

⚙️ В рамках библиотеки я реализовал легковесный AutoML-движок для многопоточного обучения моделей. Под капотом — Optuna и Sklearn с возможностью задавать все ограничения и детали процесса обучения через конфигурационные файлы (YAML/JSON).

🚀 Такой подход особенно полезен на этапе предпроектного исследования, когда нужно быстро перебрать множество гипотез на существующем наборе данных, несмотря на расход вычислительных ресурсов. В моем случае это был единственный способ получить приемлемое качество прогнозов на небольшом датасете.

🔗 Для тех, кто понял больше половины слов в посте, вот ссылки на проект. Если у кого-то есть идеи — буду рад обсудить или принять PR. https://github.com/LapshinLeonid/configurable\_automl\_engine https://pypi.org/project/configurable-automl-engine

🧬 В своем последнем проекте (цифровой двойник биореактора) столкнулся с интересной задачей | Сетка — социальная сеть от hh.ru