ML-пайплайны

Раздел
Решения по технологии
Чтение
8 мин
Обновлено

ML-пайплайн — всё, что нужно модели, чтобы работать в процессе каждый день: подготовленные данные, воспроизводимое обучение, приёмка по метрикам, согласованным до старта. Dzeta AI собирает такой пайплайн в контуре компании, пилот занимает 2⁠–⁠6 недель. После запуска за качеством модели следят: при падении точности её переобучают и выпускают новую версию.

#

Что делает ML-пайплайн: путь модели от данных до работы в процессе

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

Инженерную часть между удачным расчётом и ежедневной работой и называют ML-пайплайном. Данные приходят сами и в том виде, в каком модель видела их при обучении. Обучение воспроизводится на любой машине. Результат уходит туда, где решает человек, а качество после запуска остаётся под наблюдением.

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

Данные: сбор и подготовка — шаг, который не пропускают ради скорости

До первой строки кода заказчик и Dzeta AI договариваются, что считать успехом: какую величину смотрим и какое значение устроит. Без этого готовую модель не с чем сравнить.

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

Обучение и валидация на данных заказчика

Учится модель на истории самой компании: на её номенклатуре, документах, измерениях. Пайплайн пишут на Python: для табличных задач берут scikit-learn и CatBoost, где нужна нейросеть — PyTorch.

Вместе с обучением задают процедуру проверки: на каком наборе сверяемся и какая ошибка дороже. Процент точности до работы с данными Dzeta AI не называет: величина с чужого набора о ваших данных не говорит ничего.

Приёмка: целевое качество согласовано до старта

Критерии приёмки фиксируют до старта, на тестовом наборе из данных заказчика. Набор показывают обеим сторонам заранее, чтобы потом не выбирать удобные примеры. Прогон уложился в согласованные значения — систему принимают.

Документные задачи Dzeta AI проверяет на 10⁠–⁠20 реальных документах заказчика — тех, на которых спотыкается разбор.

Задачи, под которые собирают пайплайн

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

Классификация документов и обращений: модель относит документ или заявку к категории и к ответственному, дальше задача уходит в очередь с приоритетом. Разбор самого файла — соседняя тема: как разбирают документ, который пришёл фотографией или таблицей.

Прогноз спроса и закупок может быть устроен так же — проектов по нему у Dzeta AI пока нет: на истории продаж и остатков модель считает ожидаемую потребность.

#

Откуда пайплайн берёт данные и куда возвращает результат

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

Источник данныхЧто делает системаКуда уходит результат
Выгрузки из 1С: справочники, документы, история операцийПриводит записи к единому виду и учит модель на историиОтметка или документ в 1С
Таблицы CSV и Excel из учётных системСверяет колонки и заполняет пропуски по правиламФайл или запись для ответственного
Архивы измерений и журналы работы оборудованияИщет отклонения от обычного хода процессаПредупреждение инженеру
Документы: фото, скан, PDF, таблица клиентаОпределяет тип документа и извлекает значенияОчередь проверки, затем учётная система
Обращения и заявки в свободной формеОтносит обращение к категории и к ответственномуЗадача в очереди с приоритетом

Учётная система в проектах Dzeta AI — 1С, остальные источники разбирают на аудите. От типа данных пайплайн не зависит, меняется подготовка: что происходит, когда входом становится изображение.

#

Что происходит с моделью после запуска

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

Поэтому сопровождение ML-модели в Dzeta AI устроено как повторяющийся цикл:

  • за качеством работающей модели следят по тем же метрикам, по которым систему принимали;
  • при падении точности или изменении данных приходит алерт;
  • команда Dzeta AI разбирает причину алерта и переобучает модель на свежих данных;
  • переобученная модель выходит новым релизом — через ту же процедуру проверки, что и при первой приёмке.

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

Версии моделей и данных: к предыдущей можно вернуться

Эксперименты и версии моделей ведут в MLflow и DVC. По ним видно, на каких данных обучена каждая версия и с какими параметрами получилась. Свежая версия ведёт себя хуже предыдущей — это заметно по тем же метрикам, и есть куда вернуться: предыдущая вместе со своим набором данных никуда не делась.

#

Проект Dzeta AI: путь от прототипа до промышленной эксплуатации

Проект для производителя авиационной техники — единственный, где Dzeta AI прошла весь путь: от исследовательской части до модуля в промышленной эксплуатации. Контроль конструктивных элементов там идёт по многоканальным измерениям, и с ростом выпуска ручной анализ перестал успевать за потоком.

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

Путь целиком этот проект и прошёл — от исследовательского прототипа до ежедневной работы под нагрузкой. Цифры собраны на отраслевой странице: результаты проекта у производителя авиационной техники.

Реализованных проектов у Dzeta AI 50+, отраслей — восемь. Развёрнуто показан один — тот, где видны все шаги этой страницы.

#

Как проходит внедрение: аудит, пилот, приёмка

Внедрение ML-пайплайна идёт этапами, и на каждом заранее понятно, что считается результатом.

ЭтапСрок и стоимостьЧто получает заказчик
Аудит3⁠–⁠5 рабочих днейКарту потерь в часах и деньгах и план внедрения. Стоимость зависит от числа процессов, называем её после созвона. Работаем по NDA.
Пилот2⁠–⁠6 недель, от 290 000 ₽Модель на своих данных и первый измеримый результат.
ПриёмкаПо итогам пилотаПроверку на тестовом наборе по критериям, согласованным до старта.
Полное внедрение4⁠–⁠12 недель, стоимость — после пилотаМодель в продуктиве, встроенную в рабочий процесс, и сопровождение.

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

Где работает система и кто видит данные

Пайплайн разворачивают в контуре заказчика на открытых моделях. Обучающие выборки и результаты остаются внутри компании, персональные данные её не покидают (152-ФЗ «О персональных данных»), подтверждения пишутся в журнал. В ChatGPT и другие внешние сервисы данные не уходят, если заказчик этого не хочет. Модель в пайплайне сменная: её заменяют без переделки системы.

Собрано всё это на понятных вещах: сервисы едут в Docker и живут в Kubernetes, ответ отдаёт FastAPI, данные и очереди держат PostgreSQL и Redis, новая версия выкладывается через CI/CD. Собственный IT-отдел заказчику не нужен: хватает человека, который понимает процесс и может сказать, где система ошиблась.

#

Когда ML-пайплайн не окупится

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

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

Вопросы о разработке ML-пайплайнов

Сколько стоит внедрить модель машинного обучения?

Пилот стоит от 290 000 ₽ и занимает 2⁠–⁠6 недель, полное внедрение — 4⁠–⁠12 недель, его стоимость считают по результатам пилота. Аудит идёт 3⁠–⁠5 рабочих дней, сумму называем после короткого созвона. Итог зависит от состояния данных: итог зависит от состояния данных: чем больше выгрузок сводить и архивов разбирать, тем большая часть работы уходит до обучения модели.

Какую точность даст модель?

Процент заранее не называем: он зависит от данных, которых мы ещё не видели. Целевое качество и критерии приёмки Dzeta AI фиксирует до старта на тестовом наборе из данных заказчика, и по ним систему принимают. Величина, снятая на чужой задаче, о вашей не говорит ничего.

Сколько данных нужно, чтобы обучить модель?

Число примеров заранее не называем — оно зависит от задачи и от того, насколько разнообразны случаи. Состав данных и глубину истории определяют на аудите: смотрим, что и с какого года сохраняется и хватает ли этого для обучения. Документные задачи Dzeta AI проверяет на 10⁠–⁠20 реальных документах заказчика.

Что будет с моделью, если данные изменятся?

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

У нас есть прототип, который сделал свой аналитик. Что дальше?

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

Можно ли держать модель на своих серверах?

Да, ML-пайплайн разворачивают в контуре заказчика на открытых моделях. Данные для обучения и результаты остаются внутри компании, персональные данные её не покидают (152-ФЗ «О персональных данных»), подтверждения пишутся в журнал. В ChatGPT и другие внешние сервисы данные не уходят, если заказчик этого не хочет. Сама модель при этом сменная: её заменяют без переделки системы.

Нужна ли своя команда дата-сайентистов, чтобы это поддерживать?

Нет, собственный IT-отдел для этого не нужен. Со стороны заказчика нужен один человек, который понимает процесс и может сказать, где система ошиблась. Мониторинг качества модели, переобучение и выпуск новых версий остаются на Dzeta AI.

Расскажите, что нужно улучшить

Для начала хватит короткого описания. Вместе уточним данные, процесс и критерии результата.

Заявка попадёт напрямую нашей команде.

Задача
Или напишите напрямую
contact@dzeta.ai