average Telegram

Techcard

Как предсказать решения технолога, не имея самого макета?

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

Цель

Автоматизировать подготовку технологических карт, сократить ручную работу технологов и снизить риск ошибок в параметрах печати.

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

Фактически требовалось аппроксимировать историческую политику принятия решений по неполному контексту заказа.

Архитектура и эксперименты

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

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

Сравнивал CatBoost, TabICL и TabICLv2, экспериментировал с признаками текущего заказа и историческим контекстом. Для нескольких целевых задач TabICLv2 оказалась предпочтительнее CatBoost и вошла в итоговый комплект.

Отдельно проверял гипотезу о пользе предыдущих техкарт. Результат оказался неочевидным: в одном A/B-эксперименте усложнённая история снизила exact accuracy для Spot-станций с 82,37% до 81,81%, одновременно резко увеличив время прогона. В финальной конфигурации остались признаки, доступные на момент поступления текущего заказа.

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

Качество оценивал по-разному: exact и ±1 станция для расстановки, MAE для анилоксов, recall и precision для камер. Гиперпараметры подбирал через Optuna. Это были разные задачи с разной ценой ошибки, поэтому свести их к одной общей accuracy было бы бессмысленно.

Почему часть решений осталась детерминированной

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

Для этого параметра я использовал детерминированную логику на Python. Если направление можно вычислить по технологическим правилам, нет смысла заменять такое вычисление вероятностной моделью. С экономической точки зрения предотвращение подобных ошибок может быть важнее небольшого прироста offline-метрик.

Результат

Собрал production inference-сервис, принимающий данные заказов из 1С. В финальном комплекте пять моделей: три на TabICLv2 и две на CatBoost. Система формирует рекомендации по технологическим параметрам для восьмицветной флексомашины.

Проект объединил tabular ML, constrained assignment, исследование частично наблюдаемых производственных решений и детерминированную технологическую логику.

Стек: Python, TabICLv2, CatBoost, Optuna, SciPy, SQL Server, 1С, FastAPI.