Закупки и запасы
Заказывают по привычке и последнему заказу, дефицит и излишки существуют одновременно.
Разработка модели машинного обучения оправдана там, где накоплена история и есть повторяющееся решение, которое сегодня принимается по опыту: сколько заказать, какой клиент уйдёт, какой станок откажет, какая операция подозрительна. Мы начинаем с правила и простого статистического метода, а сложная модель выходит в работу, только если обыгрывает их на периоде, которого не видела. Приёмка идёт по набору проверок, а не по одной красивой цифре.
Обследование данных — от 200 000 ₽, 2–3 неделиЛёгкий пилот на выборке — 150 000–400 000 ₽Простая модель или правило — тоже результат
Заказывают по привычке и последнему заказу, дефицит и излишки существуют одновременно.
Ремонтируют по календарю или после остановки, хотя датчики пишут вибрацию, ток и температуру.
Кто не заплатит в срок, кто уйдёт, какая заявка просрочится: оценка на глаз, без измеренной ошибки.
Брак находят на выходе, хотя параметры процесса записаны и предшествовали ему.
Отклонения находят на сверке через месяц, а не в момент операции.
Файл ведёт один человек, метод не проверялся, и никто не знает, насколько он ошибается.
Название метода не главное. Важнее, что именно предсказываем и что известно на момент решения. Спрос разобран на странице «Прогнозирование спроса», отказы оборудования — на странице «Предиктивное обслуживание», изображения — на странице «Компьютерное зрение». Что проверить в данных до старта — в чек-листе «Как подготовить данные для ИИ-пилота».
Здесь не выживают модели, которые отлично выглядели на демонстрации. Правила ниже записываются в протокол до расчётов.
Случайное деление записей подмешивает будущее в обучение: модель видит строки, идущие после проверяемых, и оценка выходит лучше, чем будет в работе. Поэтому учим на прошлом, проверяем на более позднем периоде и двигаем границу несколько раз: устойчивый результат повторяется, случайный нет. Горизонт проверки равен горизонту решения: за сколько дней до отказа или просрочки предупреждение ещё что-то меняет. Если времени в данных нет, например тип обращения, часть записей целиком откладываем для проверки. Разбор для склада — в статье «Как прогнозировать спрос на складе».
Утечка — это когда в признаках оказалось то, что на момент решения ещё не было известно: статус заказа, который проставляют после отгрузки, остаток, пересчитанный задним числом. Модель выучивает подсказку и показывает отличное качество, а в бою подсказки нет. Ищем так: по каждому признаку спрашиваем, когда он становится известен, проверяем по времени и с подозрением относимся к слишком хорошему результату. Вторая форма — соседние по времени записи одного объекта, например кадры подряд, в обучении и в проверке.
Единая цифра ошибки скрывает важное. В протокол приёмки входят:
Порог записывается до расчётов модели, но не как обещанная точность: это правило относительно простого метода и цены ошибки, например «выигрыш устойчив на каждом сдвиге». Величину выигрыша согласуем с вами, когда простой метод измерен на вашей истории.
Следующий уровень берётся, только если предыдущий не справился на отложенном периоде.
Выбор простого метода — нормальный итог работы, а не провал. Если ваш случай похож на пункт ниже, это станет выводом обследования или пилота, а не поводом продолжать проект.
Модель, которая ошибается тихо, хуже программы, которая падает громко. Полная инфраструктура нужна не каждой модели («Что такое MLOps»), но без перечисленного ниже модель нельзя ни проверить, ни обновить, ни передать другой команде.
Отдельная платформа для моделей понадобится, когда их несколько и они обновляются регулярно. Для одной модели, которая меняется редко, достаточно перечисленного и регулярного отчёта о качестве на свежих данных; периодичность записывается в регламент.
Цены — по тарифам. Точная цена только у обследования, дальше вилка, которая сужается. Остановиться можно после любой ступени.
Постановка задачи, проверка данных на достаточность и утечки, выбор метрик и способа проверки, план базового метода, предложение по порогу приёмки и вилка бюджета. Базовый метод строится и измеряется на истории в пилоте. 200 000 ₽ — один-два процесса, 2–3 недели; 350 000 ₽ — несколько систем, 3–4 недели; 500 000 ₽ — производство или контур, 4–6 недель. Вычитается из первого этапа, если продолжаете с нами.
Базовый метод и модель на одной группе, участке или выборке, проверка по времени, протокол со сравнением с простым методом.
Несколько групп, складов или единиц оборудования, получение данных из боевых систем, возврат результата в вашу систему и регламент реакции на предупреждения.
Опытная эксплуатация, мониторинг и процесс переобучения, обучение пользователей, передача исходников. Этапы с отдельной приёмкой и правом остановиться.
Контроль качества по расписанию, переобучение по метрике, разбор срабатываний. Сверх пакета — 5 000 ₽ в час.
Фиксируем, что предсказываем и что известно на момент решения. Проверяем данные, находим, чего не хватает, и записываем план проверки и правило приёмки относительно простого метода.
Строим правило и статистический метод, затем модель на одной группе или участке; мерим всё по времени. На выходе протокол сравнения с простым методом.
Нужен не всегда. Несколько групп или участков рядом с текущим способом работы, данные из боевых систем. Результаты сравниваются с фактом, расхождения разбираются по группам причин.
Приёмка по письменным критериям. Код к этому моменту уже лежит в вашем репозитории; по акту передаём обученную модель, версию обучающей выборки и инструкцию по повторному обучению.
Расширяем этапами, сопровождаем или передаём вашей команде. Модель, не обыгравшая простой метод, остаётся простым методом.
Стоимость разработки ИИ по типам решений — в статье «Сколько стоит разработка ИИ на заказ».
Пропуски, дубли, отсутствие истории остатков или событий. Приведение данных в порядок иногда больше самой модели.
Каждая система, откуда берутся данные и куда возвращается результат, добавляет доступы и владельца.
Закрытый периметр, перенос пакетов и моделей по вашему регламенту, расчёт сервера до закупки добавляют работы и к разработке, и к приёмке.
Чем дороже ошибка, тем больше проверок по периодам и сегментам и тем больше ручного разбора. Если решение нужно показывать аудитору или мастеру, модель и отчёт проектируются под это.
Что выяснить о данных до старта: доступ, качество, объём, эталонная выборка.
От скользящего среднего до модели: проверка по времени, ошибки, переход к закупке.
Дрейф данных, версии, мониторинг и откат: что нужно модели после запуска.
Цена по ступеням и типам решений, признаки плохой оценки.
Сорок минут созвона: что предсказываем, какая история есть, где хранится и кто принимает решение. По итогам скажем, с какой ступени начинать, какие данные понадобятся и в какую вилку это укладывается. Хватает ли данных для модели, выясняется на обследовании.
Обследование данных — 200 000, 350 000 или 500 000 ₽ в зависимости от числа систем, сумма вычитается из первого этапа, если продолжаете с нами. Лёгкий пилот на выборке — 150 000–400 000 ₽, тяжёлый — 400 000–1 200 000 ₽. Вывод в эксплуатацию — от 1 500 000 ₽ этапами по 300 000–700 000 ₽, сопровождение — от 20 000 ₽ в месяц.
Для сезонного спроса нужна история за несколько полных циклов сезонности, для классификации — размеченные примеры каждого класса, причём редких случаев должно хватать и для обучения, и для проверки, для прогноза отказов — записанные отказы с датой и причиной. Точный минимум зависит от задачи: называем его на обследовании, а не обещаем заранее.
Начать с правила или простого статистического метода и одновременно собирать то, чего не хватает: журнал акций, события, причины ремонтов. Что именно собирать, называем в документе обследования. Модель поверх недостаточной истории не имеет смысла проверять, а значит, и принимать.
Не называем её до проверки на вашей истории. Вместо одной цифры в протокол входят сравнение с простым методом, качество по сегментам, виды ошибок и смещение. Порог приёмки записывается до расчётов модели в документ обследования или приложение к договору и формулируется относительно простого метода.
Для табличных данных нейросеть берём, только если простой метод и модель на признаках не справились на отложенном периоде. Нейросети оправданы, когда на входе сигнал, снимок или текст и есть большая размеченная выборка.
Это когда модель в обучении видит то, что на момент решения ещё неизвестно, и поэтому на проверке показывает слишком хороший результат. Мы проверяем каждый признак вопросом «когда это становится известно», проверяем по времени, а если модель будет работать на новых клиентах или станках, не пускаем проверочные объекты в обучение.
Когда ошибка на свежих данных, по которым факт уже известен, или доля спорных случаев выходит за порог из протокола приёмки, либо меняются сами данные: новый поставщик, режим работы, форма заявки. Календарь не нужен: нужны регулярный отчёт о качестве на свежих данных и сотрудник, который получает сигнал; периодичность зависит от скорости, с которой становится известен факт, и записывается в регламент.
Исходный код лежит в вашем репозитории с первого коммита. Результат работ (исходный код, конфигурации, обученные модели) передаётся вам по акту; порядок передачи прав записывается в договоре; открытые компоненты и предобученные модели остаются под своими лицензиями, их список входит в документацию. Данные и обучающая выборка остаются в вашем контуре.
Если ответ нужен не в момент операции, модель запускается по расписанию в вашем контуре, читает данные из базы или выгрузки и записывает результат таблицей, которую забирает 1С, CRM или отчёт. Если ответ нужен в момент операции, модель оборачивается в небольшой веб-сервис с API. Где человек видит результат и кто решает, фиксируем на обследовании.
Мы в Ростове-на-Дону, работаем с заказчиками по всей России: удалённо и в вашем контуре. Доступ к системам и обследование согласуем на старте с вашей службой безопасности.