Как обучить 66 моделей и не сойти с ума?
Продолжаем серию постов о построении NBA для банковских продуктов. В предыдущем посте мы рассказывали о модели отклика на продукт, которая показывает вероятность подключения без дополнительных коммуникаций.
Так как в банке 66 разных продуктов, то модель отклика нужно построить для каждого. Если делать их руками — подбирать фичи, чистить данные, тюнить гиперпараметры, проверять качество, — уйдёт сотни часов работы дата-сайентистов. Поэтому мы решили автоматизировать процесс.
Использовали библиотеку LightAutoML
Она закрывает большую часть стандартного пайплайна обучения:
• отбирает наиболее значимые признаки;
• обучает несколько моделей параллельно;
• подбирает оптимальные параметры
• объединяет лучшие модели в ансамбль.
По сути библиотека берёт на себя большую часть той работы, которую дата-сайентист выполняет вручную.
Полный цикл обучения занимает около часа. Всё это время модель работает самостоятельно, а инженер может заниматься другими задачами. При этом качество на выходе близко к тому, которого удалось бы добиться при ручной настройке.
Сделали единый Feature Store
На практике самая долгая часть моделирования — это подготовка данных: подсчёт агрегатов, джойны, построение витрин. Если для каждой модели отдельно писать код расчёта признаков и поддерживать десятки разных пайплайнов, система быстро станет неуправляемой. Поэтому мы решил построить единый Feature Store, а в качестве хранилища использовали LakeFS.
Все подготовленные признаки сохраняются в виде parquet-файлов. Благодаря этому каждая модель работает с одним и тем же набором данных и не зависит от того, как именно эти признаки были рассчитаны.
Что это дало на практике?
До автоматизации обучение одной модели занимало несколько недель, теперь — около 2-3 дней. Если по продукту накопилось достаточно данных (от 1000 успешных подключений), то можно быстро подготовить датасет, обучить модель и провести A/B-тесты.
Однако, если подключений слишком мало (например, как у новых продуктов), то модели не хватает данных для обучения. Пока мы ещё ищем решение этой проблемы.
💜 Этот пост написал Евгений Наговицын, ML-разработчик в Точка Банк
Продолжаем серию постов о построении NBA для банковских продуктов. В предыдущем посте мы рассказывали о модели отклика на продукт, которая показывает вероятность подключения без дополнительных коммуникаций.
Так как в банке 66 разных продуктов, то модель отклика нужно построить для каждого. Если делать их руками — подбирать фичи, чистить данные, тюнить гиперпараметры, проверять качество, — уйдёт сотни часов работы дата-сайентистов. Поэтому мы решили автоматизировать процесс.
Использовали библиотеку LightAutoML
Она закрывает большую часть стандартного пайплайна обучения:
• отбирает наиболее значимые признаки;
• обучает несколько моделей параллельно;
• подбирает оптимальные параметры
• объединяет лучшие модели в ансамбль.
По сути библиотека берёт на себя большую часть той работы, которую дата-сайентист выполняет вручную.
Полный цикл обучения занимает около часа. Всё это время модель работает самостоятельно, а инженер может заниматься другими задачами. При этом качество на выходе близко к тому, которого удалось бы добиться при ручной настройке.
Сделали единый Feature Store
На практике самая долгая часть моделирования — это подготовка данных: подсчёт агрегатов, джойны, построение витрин. Если для каждой модели отдельно писать код расчёта признаков и поддерживать десятки разных пайплайнов, система быстро станет неуправляемой. Поэтому мы решил построить единый Feature Store, а в качестве хранилища использовали LakeFS.
Все подготовленные признаки сохраняются в виде parquet-файлов. Благодаря этому каждая модель работает с одним и тем же набором данных и не зависит от того, как именно эти признаки были рассчитаны.
Что это дало на практике?
До автоматизации обучение одной модели занимало несколько недель, теперь — около 2-3 дней. Если по продукту накопилось достаточно данных (от 1000 успешных подключений), то можно быстро подготовить датасет, обучить модель и провести A/B-тесты.
Однако, если подключений слишком мало (например, как у новых продуктов), то модели не хватает данных для обучения. Пока мы ещё ищем решение этой проблемы.
💜 Этот пост написал Евгений Наговицын, ML-разработчик в Точка Банк