MLOps-консалтинг: чтобы модель в продакшне была не результатом героизма, а обычным процессом

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

Кратко

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

Признаки того, что пора

  • Модель в продакшне есть, но повторить её обучение с тем же результатом не получается.
  • Выкладка новой версии модели делается вручную одним человеком, и только он знает как.
  • О падении качества узнают от пользователей, а не от мониторинга.
  • Несколько специалистов по данным работают параллельно, и результаты экспериментов живут в личных папках.
  • В систему добавили LLM, и непонятно, как проверять изменение промпта или смену модели.

Что мы выстраиваем

Учёт экспериментов и данных

Каждый эксперимент записывается вместе с параметрами, версией кода и версией данных. Обычно это MLflow для экспериментов и DVC или аналог для версий данных. Цель простая: любую модель можно воспроизвести.

Реестр моделей

Единое место, где видно, какая версия модели в продакшне, какая на проверке, кто и почему её одобрил и на какую версию откатиться.

Автоматическая сборка и выкладка

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

Мониторинг

Наблюдаем не только за доступностью сервиса, но и за входными данными и качеством: дрейф данных, распределение предсказаний, отложенные метки, когда они появляются. Для этого подходят открытые инструменты вроде Evidently вместе с Prometheus и Grafana.

Признаки для моделей

Если одни и те же признаки считаются в нескольких местах по-разному, выносим их в общее хранилище признаков (feature store, например Feast). Это нужно не всем: при одной-двух моделях часто достаточно общей библиотеки расчёта.

Инциденты

Порядок действий, когда модель начала ошибаться: кто получает оповещение, как откатиться, как разобрать причину и что изменить, чтобы это не повторилось.

Системы на LLM

Для систем на больших языковых моделях к этому добавляются версии промптов, набор контрольных вопросов для оценки ответов, учёт стоимости и времени ответа по каждому запросу. Подробнее в статье об observability AI-систем.

Как идёт работа

  1. Обзор текущего процесса. Как модели обучаются, проверяются и попадают в продакшн сейчас, какие инструменты уже есть. Обычно одна-две недели.
  2. План. Что внедрить в первую очередь, что позже, а что вам не нужно вовсе. Мы не ставим полный набор инструментов там, где хватит двух.
  3. Внедрение вместе с командой. Настраиваем конвейер на одной реальной модели, а не на демонстрационной, и переводим на него остальные.
  4. Передача. Документация, разбор с командой, поддержка после запуска по договорённости.

Если вы ещё не дошли до модели в продакшне, начинать с MLOps рано. Тогда полезнее вывод AI-системы в продакшн, где эти практики закладываются с первого дня.

Где мы работаем

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

ГородОтраслевой контекстЧто обычно сопровождают
МоскваШтаб-квартиры большинства крупных банков, телеком-операторов, розничных сетей.Скоринговые, антифрод- и рекомендательные модели с частым переобучением и требованиями к объяснимости решений.
Санкт-ПетербургСильные технические вузы (ИТМО, СПбГУ, Политехнический университет), много продуктовых команд.Модели внутри продуктов, где выкладка идёт часто и нужен быстрый откат.
ЕкатеринбургМеталлургия, машиностроение и горнодобывающая промышленность Урала.Прогноз отказов оборудования и модели технологических процессов, где данные с датчиков меняются вместе с оборудованием.
КазаньНефтехимия республики, IT-город Иннополис рядом с Казанью.Промышленные модели и языковые модели для русского и татарского, где качество нужно отслеживать по каждому языку отдельно.
НовосибирскАкадемгородок, институты Сибирского отделения РАН, НГУ, биотехнологии.Исследовательские модели, которые переходят в прикладные сервисы: здесь главное воспроизводимость и учёт версий данных.
КраснодарЦентр одного из главных сельскохозяйственных регионов страны, крупная розница и логистика.Прогноз спроса и урожайности с сильной сезонностью: мониторинг дрейфа и переобучение по расписанию сезона.
КрасноярскДобыча и металлургия края, крупная гидроэнергетика.Компьютерное зрение на производстве: версии моделей на удалённых площадках и обновление при нестабильной связи.
УфаНефтепереработка и нефтехимия Башкортостана.Модели технологических режимов, где выкладка новой версии требует согласования и понятного отката.
ВоронежМашиностроение, авиастроение, химическая промышленность, сельское хозяйство области.Модели контроля качества продукции и планирования производства.
СочиКурорт и гостиничный бизнес.Прогноз загрузки и динамическое ценообразование, где поведение гостей резко меняется между сезонами.

Офисов в этих городах у нас нет. Отраслевой контекст описывает типичные задачи региона, а не наши проекты.

Формат работы

  • Удалённо. Работаем в вашем репозитории и вашей инфраструктуре через выданный вами доступ, со встречами с командой по договорённому графику.
  • Инструменты, которые можно развернуть у вас. Предпочитаем открытые инструменты, которые работают в вашем облаке или на ваших серверах. Часть зарубежных облачных сервисов для ML может быть недоступна из России или означать передачу данных за рубеж, и это учитывается при выборе.
  • Данные остаются у вас. Для настройки конвейера обычно достаточно обезличенных или синтетических данных. Если нужны персональные данные, порядок доступа определяют юристы и служба безопасности вашей компании.
  • Очные встречи. Возможны по договорённости, если задаче это нужно.
  • Часовые пояса. Работаем в часы, удобные для Москвы. С Сибирью общая часть рабочего дня короче, и встречи мы ставим на утро по местному времени.

Почему мы

Мы эксплуатируем программные системы с 2004 года: больше 150 проектов для клиентов в 14 странах. Наша основная система работает в продакшне с 2008 года, обслуживает более 100 000 пользователей с доступностью 99.97%. MLOps для нас продолжение обычной инженерной дисциплины: версии, проверки, мониторинг и откат.

Частые вопросы

Нужен ли нам Kubernetes для MLOps?

Не обязательно. Для нескольких моделей часто достаточно конвейера сборки, реестра моделей и обычных серверов или контейнеров. Kubernetes имеет смысл, когда моделей много или нагрузка сильно меняется.

Какие инструменты вы ставите?

Те, что подходят вашей инфраструктуре и команде. Чаще всего это MLflow, DVC, Evidently, Prometheus и Grafana, а также конвейер в той системе сборки, которой вы уже пользуетесь. Если у вас уже есть рабочие инструменты, мы их не меняем без причины.

Чем MLOps для LLM отличается от обычного?

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

Сколько времени занимает внедрение?

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

Что останется у нас после завершения работы?

Работающий конвейер в вашей инфраструктуре, документация и команда, которая с ним уже работала. Все учётные записи и ключи оформлены на вас.

С чего начать

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

Написать нам

По теме: AI Observability в продакшне, От прототипа до продакшена: чек-лист, Российские облака для AI, SLA и поддержка

SLAtech LTD