Инструмент контроля качества ML-моделей
Спроектировали внутренний инструмент, который снижает риски и ускоряет принятие решений в финтех-компании.Клиент
Азиатская компания, которая разрабатывает цифровые продукты для финтеха на базе предсказательных моделей. Принятие решений и финансовые последствия для бизнеса напрямую зависят от результатов их работы.
Модели требуют регулярного обучения, проверки качества и обновления перед каждым вводом в эксплуатацию. Одновременно в работе могут находиться несколько продуктовых ML-моделей для разных команд.
Долгое время этот этап у клиента не был оформлен как отдельный процесс, а результат во многом зависел от того, кто именно запускал обучение и проверку. Это создавало узкое место: со временем становилось все сложнее поддерживать одинаковый подход к их оценке и сравнению. При этом терялся контекст принятых решений – почему конкретная версия модели была допущена в продакшен или отклонена.
Вызовы
В 2021 году клиент обратился к нам. Его команде требовался понятный внутренний инструмент для обучения моделей, проверки их качества и сравнения результатов без написания кода и ручной настройки окружения.
Этап с ML-моделями в бизнесе клиента стоит между разработкой и продуктом: с одной стороны, это уже не исследовательский эксперимент, с другой – еще не сам продукт для конечного пользователя.
Именно этот слой нам и предстояло спроектировать и реализовать: вынести этап проверки качества ML-моделей в отдельный, удобный и управляемый инструмент.

Баланс удобства и контроля
Результаты обучения и проверки моделей не должны зависеть от того, кто запустил процесс и какие договоренности были внутри команд. С инженерной точки зрения это значило спрятать сложную логику вглубь системы и при этом не потерять управляемость и воспроизводимость.

Проектирование под рабочие роли
Каждый запуск модели должен фиксироваться так, чтобы его можно было корректно интерпретировать, сравнить с другими и воспроизвести позже. Это потребовало единого описания всех ключевых параметров обучения и оценки внутри самого инструмента.
Процесс разработки
Спроектировали и реализовали внутренний ML-инструмент
Получился отдельный инженерный слой между моделью и продуктом – с фиксированными правилами, прозрачной проверкой качества и минимальной зависимостью от ручных шагов.
Архитектура процесса
Выделили этап обучения и проверки моделей в отдельный сервис с четко заданной логикой и границами ответственности.
Фиксация правил
Заложили явные правила семплинга, валидации и расчета метрик, чтобы результаты были сопоставимыми и воспроизводимыми.
Интерфейс без кода
Собрали UI, который позволяет запускать обучение и анализировать качество моделей без написания кода и ручной настройки окружения.
Контроль качества
Сфокусировались на метриках и визуализации результатов, чтобы клиент мог принимать решения на основе понятных и проверяемых данных.
Как это работает:
Загрузка и подготовка данных
Пользователь загружает датасет и выбирает параметры обучения из заданного набора: способ разбиения данных, пропорцию обучающей и проверочной выборок и используемый алгоритм. Все это – без ручной настройки окружения и вспомогательных скриптов.
Выбор стратегии обучения
Для каждой модели можно выбрать стратегию семплинга и валидации — последовательную, случайную, k-fold или bootstrap. Так команда клиента может по-разному проверять модель: от простой оценки на отложенных данных до более тщательной проверки на нескольких выборках.
Обучение модели
Инструмент обучает модель с выбранными параметрами и сохраняет их вместе с результатами, чтобы разные запуски можно было корректно сравнивать между собой.
Оценка качества
После обучения система автоматически рассчитывает метрики качества (ROC-AUC, PR-AUC, KS, Gini) и показывает, как модель ведет себя на обучающей и тестовой выборках.
Контроль данных
Помимо фиксации параметров обучения инструмент отделяет обучающие и проверочные данные по времени и источникам. Это снижает риск утечки информации между выборками и позволяет корректно оценивать качество модели в условиях, приближенных к реальному использованию.
Сравнение результатов
Результаты разных запусков можно сравнивать между собой, чтобы увидеть различия между подходами и выбрать вариант, который лучше подходит для дальнейшего использования. Это позволяет команде видеть не только абсолютные показатели качества, но и влияние конкретных изменений – данных, стратегии валидации или параметров – на итоговое поведение модели.
Использование в продукте
После проверки качества команда принимает решение о дальнейшем использовании модели – уже за пределами инструмента, в основном продукте, над которым она работает.
Технологии
Бэкенд
Python
Бэкенд
Node.js
Фронтенд
Angular
База данных
MongoDB
Инфраструктура
Docker
Библиотека
Scikit-Learn
Результат
Спроектировали для клиента инструмент снижения операционных рисков при работе с ML-моделями. Инструмент не является частью пользовательского интерфейса и не уходит к конечным клиентам. Это внутренний этап контроля, встроенный в рабочий цикл компании. Инструмент снижает риск ввода в продукт модели с некорректной оценкой качества из-за утечки данных, несопоставимых сплитов или ручных шагов.
Каждый запуск обучения сохраняется с зафиксированными результатами и позволяет вернуться к ним позже – для внутренней проверки или внешнего аудита. Инструмент не принимает решений автоматически – финальное решение о дальнейшем использовании модели остается за продуктовой или риск-командой клиента.
Контроль качества стал повторяемым процессом, а не договоренностью внутри команды. Инструмент рассчитан на совместную работу: ML-инженеры задают стандарты и правила, а продуктологи, аналитики и менеджмент используют результаты в принятии решений.
ускорили подготовку данных и результатов для продуктовых команд клиента.
сократили время принятия решений о дальнейшем использовании моделей за счет наглядных метрик и сравнения запусков.
Что происходит дальше:
Мы получаем запрос, обрабатываем его в течение 24 часов и связываемся по указанным вами e‑mail или телефону для уточнения деталей.
Подключаем аналитиков и разработчиков. Совместно они составляют проектное предложение с указанием объемов работ, сроков, стоимости и размера команды.
Договариваемся с вами о следующей встрече, чтобы согласовать предложение.
Когда все детали улажены, мы подписываем договор и сразу же приступаем к работе.