
Платформа для разработки и эксплуатации моделей машинного обучения для банка «Открытия»
Решение
В основе платформы лежат Open Source продукты компании Databricks и других лидеров интеграции данных, моделей и процессов. Гибкость и масштабируемость платформы обеспечиваются за счет «контейнеров» системы Kubernetes, на которой реализована промышленная платформа банка.
Архитектура платформы включает в себя развернутый контур разработки и контур применения моделей: разработка ведется в отдельном окружении, при этом прошедшие тестирование модели могут быть переданы в эксплуатацию в любой момент практически без ручных операций. Важная особенность платформы — возможность бесшовного внедрения модели в среду применения. Раньше на внедрение разработанных моделей ML уходили месяцы, приходилось перепрограммировать модель в другой системе. Концепция MLOps предполагает внедрение моделей любой сложности буквально несколькими кликами мыши.
MLOps-платформа развернута в масштабах всего банка для работы одновременно нескольких команд разработчиков. Она позволяет настраивать различное программное окружение под каждую команду. Вычислительные ресурсы гибко перераспределяются между командами разработчиков в зависимости от потребности. Специалисты могут оперировать различными технологическими стеками, применять различные языки программирования, переиспользовать настроенные интеграции с системами и подключенные источники данных. Такой подход становится конкурентным преимуществом для привлечения дата-сайентистов,
разработчиков, инженеров, которые на рынке в дефиците.
Отзыв заказчика

Платформа моделирования была реализована на базе развернутой в банке промышленной среды контейнеров Kubernetes, которая обеспечила для платформы необходимые гибкость и масштабируемость. В банке ведутся работы по миграции данных, используемых при моделировании, на промышленный контур, что должно обеспечить платформе еще большую стабильность и отказоустойчивость.
Результаты
Реализованный проект обеспечит непрерывность процесса разработки и внедрения моделей машинного обучения с последующей их интеграцией в бизнес-процессы банка. Развернутая архитектура автоматизирует управление моделями, работа с ними ведется в отдельном безопасном тестовом окружении, осуществляется автоматический перенос изменений в промышленную среду.
Банку «Открытие» удалось выстроить процессы по развитию команд моделистов, обеспечив их передовыми технологиями. Для разработки моделей машинного обучения реализован доступ к корпоративным хранилищам данных, настроены готовые образы рабочих мест для команд с различным стеком библиотек машинного обучения.
Автоматизированные процессы переноса моделей из контура разработки в контур применения позволят в будущем сократить time-to-market задач по внедрению машинного обучения в процессы принятия банком решений, а также снизить операционный риск ручного переноса логики моделей между системами.
В части DevOps реализовано автоматизированное развертывание rest и batch моделей на банковские среды: dev, preprod и prod (состоит из двух кластеров). Для этого в кластерах Kubernetes были развернуты JupyterHub, MLFlow, RStudio Server, Airflow и другие сервисы.Модели можно разрабатывать, используя как локальные IDE (Spyder, VSCode, PyCharm, RStudio Desktop), так и один из шести образов Jupyterlab или один из трех образов RStudio.За это отвечают JupyterHub и RStudio Server.
Каждый образ Jupyterlab уникален. Он содержит набор библиотек заданных версий и индивидуальные ограничения по ресурсам и доступным нодам. За работоспособность образов Jupyterlab отвечает механизм healthchecks, который проверяет их функциональность. Реализована ролевая модель доступа к инструментам разработки. Модель охватывает S3 MinIO, JupyterHub, Airflow, MLflow Tracking Server, Gitlab, Kibana. Для трекинга ML-экспериментов каждому бизнес-направлению был настроен свой MLflow Tracking Server, с которым были интегрированы S3 MinIO и JupyterHub, что позволяет хранить результаты экспериментов и тестировать модели в соответствии с принятой моделью разделения прав. Доступ к DAG’ам предоставляется согласно ролевой модели. Также разработано и внедрено управление окружением исполняемых контейнеров из DAG. Чтобы моделисты могли работать с кластером Cloudera Hadoop, настроено взаимодействие между JupyterHub и Hadoop с помощью библиотек Apache Impala и PySpark.
Новости и СМИ о проекте




