В Х5 Tech разработали и интегрировали систему по модельному риску, позволяющую эффективно отслеживать и управлять многочисленными ML-моделями, детектировать и реагировать на возможные риски, связанные с моделями. Это позволяет минимизировать потенциальные убытки и улучшать качество принимаемых на основе моделей решений. Модельный риск был встроен в процессы компании, и уже предотвращены реальные случаи, когда модель приносила значительные финансовые убытки. О реализации этого проекта рассказывает Святослав Орешин, руководитель команды модельного риска Х5 Tech и номинант на премию Data Award 2024.

- В чем суть проблемы? Почему управление рисками моделей машинного обучения стало важным для X5?

Чтобы лучше понять проблему, давайте начнем с аналогии. Допустим, вы запускаете стартап и работаете в небольшой компании друзей-коллег. Вы общаетесь каждый день и в курсе всех событий, которые у вас происходят в команде. Но с ростом команды вы нанимаете больше персонала, делаете больше проектов, и у вас возникает естественная потребность в HR-специалистах, менеджерах и системе управления персонала в целом.

Отсюда и возникает проблематика модельного риска – если у вас не так много моделей машинного обучения и на них не завязаны критичные для бизнеса решения, то за модельным риском можно следить и вручную. Однако в случае больших компаний обрабатываются терабайты данных ежедневно, а количество ML-моделей может исчисляться сотнями, и они участвуют практически во всех процессах. Если не поддерживать актуальность моделей и качество входных данных, не следить за динамикой их работы, то вы столкнетесь с финансовыми убытками и нецелевым расходованием бюджета. Контроль за модельным риском направлен на минимизацию возможных убытков и предотвращение нецелевого расходования бюджета.

- Каковы типичные риски, связанные с ML-моделями?

Основной риск – это то, что модель может работать неточно или непредсказуемо. Это может быть следствием некорректности входных данных, необходимости переобучить модель, изменением бизнес-логики или просто влиянием внешних факторов. Далее каждая из «крупных» категорий рисков раскладываются на более частные, которые отражают специфику той или иной модели. Есть ML-модели, которые делают предсказания каждую минуту, а есть те, которые делают предсказания раз в месяц. Соответственно, для каждой из них свойственны разные риски с разной критичностью, исходя из специфики данных, архитектуры и других вводных.

- Приведите примеры случаев, когда «отбившиеся от рук» модели приносили реальные убытки. О каких масштабах потерь идет речь?

Конкретные случаи я привести не могу из-за NDA, однако можем провести теоретическую оценку. Представим, что у нас есть модель Х, стоимость разработки и поддержки которой составляет примерно 10 млн руб. в год. Для простоты расчетов предположим, что все модели приносят компании одинаковое количество выручки и риски распределены нормально. Применим правило «одной сигмы» для распределения рисков и получим, что при оптимистичном сценарии мы несем в среднем около 20% убытков, а при пессимистичном – более 50% убытков. Получается, что если в компании есть 50 моделей со средней стоимостью 10 млн руб. в год на каждую, то компания терпит от 100 до 250 млн руб. убытков каждый год из-за реализации модельных рисков.

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

- Что включает управление моделями и их рисками?

Если максимально упростить решение, то в модельном риске мы решаем три основные задачи. Во-первых, это централизация – появляется централизованный верхнеуровневый мониторинг над моделями: все модели регистрируются в единой системе. Во-вторых, актуализация – информирование продуктовых и проектных менеджеров, дата-сайентистов и ML-разработчиков, а также прочих заинтересованных лиц о состоянии и изменениях в работе моделей. Наконец, мониторинг – единое место, где все участники процессов, связанных с моделью, смогут отслеживать все доступные модели и их метрики.

- Что представляет собой созданное в X5 решение?

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

- Как, по каким признакам, определяется, что модель работает не так, как должна?

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

- Как решение встроено в процессы, кто и на какой основе занимается управлением ML-рисками?

При интеграции подобной системы крайне важно не нагружать команды дата-сайентистов дополнительной работой. Поэтому в ходе разработки мы активно общались с владельцами и разработчиками моделей, а также бизнес-стейкхолдерами, и таким образом приоритезировали функционал, который действительно нужен командам. Оптимизируя нагрузку на команды, мы добились того, что процесс регистрации и подключения модели занимает в среднем не более, чем 15 минут.

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

Продуктом пользуются как разработчики и владельцы моделей, так и руководители подразделений, заказчики со стороны бизнеса, финансовый отдел и другие команды.

- Как измеряются результаты в случае управления модельными рисками?

Оценить вклад модельного риска в финансовые показатели – достаточно сложная задача. Модельный риск – это превентивное решение, поэтому основные показатели на текущий момент заключаются в уровне покрытия системой мониторинга всех моделей компании, а также количество срабатываний на одну модель. Очень важно оценивать и качественные показатели – получать обратную связь от пользователей системы, а также проводить «работу над ошибками» – анализировать случаи, когда модель работала неточно, и понимать, как сервис может предотвращать такие случаи в будущем.

- Что удалось лучше всего, чем больше всего довольны?

Основной наш результат – это то, что нам удалось найти соответствие созданного решения потребностям внутри компании. Продукт достаточно молодой, мы начали им заниматься только в мае 2023 года, и тогда переживали, что наше решение может стать еще одним «регулятором», создать дополнительную нагрузку на команды ML-разработчиков. Однако за этот год мы смогли найти путь, в котором мы не только разработали и внедрили систему мониторинга рисков, но и решили множество смежных задач.

- Что с финансовыми эффектами?

Модельный риск направлен на предотвращение убытков для уже имеющихся моделей, поэтому даже спустя какое-то время работы системы будет крайне сложно оценить финансовый вклад именно модельного риска.

Мы сейчас развиваем большое инфраструктурное направление по MLOps, и модельный риск – часть этого направления. Ведь модельный риск не только предотвращает убытки от работы самих моделей, но также оптимизирует работу ML-команд за счет предотвращения дублирования работы при решении схожих задач, выполняет задачи мониторинга и интегрируется с внутренней инфраструктурой. Поэтому более корректно будет оценивать общий эффект от совокупности всех решений MLOps.

- В каком направлении будет развиваться проект, на какие результаты рассчитываете?

Проект будет развиваться как «вширь» – будем расширять список возможных рисков и подключать новые модели, так и «вглубь» – сможем учитывать более специфичные риски и предлагать «точечное» реагирование на них. Кроме того, планируем подключать не только отдельные модели, но и полноценные процессы разработки, состоящие из разных шагов по обработке данных и работы разных моделей.

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