Комментарии 5
«Уверенный и неправильный результат» — у меня это была самая дорогая ошибка, причём безо всякой модели. Приложение красит продукты по составу, и когда на этикетке нет отдельной строки про насыщенные жиры, алгоритм досчитывал их сам: общий жир умножить на 0,3. Число не с потолка, это доля насыщенных у сливочного масла. Беда в том, что у оливкового масла она около 14%, у грецкого ореха 9%, и орехам мы бодро приписывали вчетверо больше, чем в них есть.
Нашлось не по жалобам, а случайно: полез посмотреть общую картину по базе и завис на том, что в красной зоне подозрительно много сыра, орехов и оливкового масла. Прогнал — 6245 товаров, 43% всех красных вердиктов, стали красными исключительно из-за этой догадки. Ровно ваш сюжет, только несопоставимое консолидировал не RAG-агент, а одна строчка в формуле.
Лечение оказалось близко к вашему про справочники: проблема была не в самом предположении, а в том, что предположение и факт с этикетки шли в расчёт с одинаковым весом. Развели по весам — доля красных упала с 24% до 18%, и ушли оттуда именно сыр с орехами, а колбаса с нитритом осталась где была.
Раз эталон рыночных цен у вас пока открытый вопрос — не пробовали вместо абсолютного эталона держать распределение по собственной истории и ловить выбросы относительно него? У нас с составами это выручает там, где никакой «нормы» не существует: работает формулировка «эта позиция резко выбивается из того, что мы видели по такой категории». Для закупок, правда, есть неприятный побочный эффект: если завышают систематически и давно, распределение уже отравлено и считает это нормой.
Эталон рыночных цен - это своя история закупок, очищенная от аномалий и нестандартных условий оплаты, всех эти Cito! (Срочно!) итд..
Да, источник так себе, он не самый дешёвый и не самый низко ценовой, но он почти неоспорим т.к. реален и хорошо коррелирует с некоторыми персоналиями.
Отловить эталон рыночных цен - очень не простая задача. Делал подобное, столкнулся с проблемой, что цена - это очень плавающий критерий, здесь может быть еще множество дополнительных факторов. Например цена запчастей на промышленное оборудование - это просто вынос мозга. Дешевое - не значит приемлемое. Дорогое - не значит лучшее. Качественное и по средней цене - тоже не всегда хорошо, так как канал доставки не стабильный и товар может задерживаться на недопустимые сроки.
Цена плавает по куче факторов, поэтому модель должна выдавать не «среднюю цену», а интервал - в каких границах цена нормальна для данной позиции, региона, объёма и срочности. Аномалия тогда - не «дороже эталона», а «вылет за хвост распределения». И сравнивать закупку надо не по одной цифре, а по нескольким осям сразу: цена, срок поставки, оригинал или реплика, надёжность поставщика по истории. Иначе система научится, что дешёвое - это хорошо, и пропустит подделку как удачную закупку.
По источникам: внутренняя история предприятий - только базовый слой, ядро я бы собирал из публичных закупок 223-ФЗ и 44-ФЗ - там цена зафиксирована договором, с датой и регионом. Каждую цену - с источником и меткой времени, иначе эталон тихо устаревает, продолжая выглядеть как эталон: эту проблему вы сами обозначили, и она реальна.
Порядок у меня выстроился тот же, что у вас: детерминированные правила и справочники, первые лейблы через вердикты экономиста, потом ML.
LLM - только для объяснений сверху.
Можно в универсальный денежный измеритель пересчитать вообще всё: качество, доступность ЗИП, срок гаранти и доставки, дни предоплаты/отсрочки, рейтинг поставщика итд итп. Нужно всего лишь утвердить веса и знак каждого фактора. Получим цену, которой нигде не видно, и которая отражает реальную ценностность актива.
Но видели бы вы лица тендер-шмендер-менов, собственников и их свиты, когда они видят в соседней колонке эту эфф цену... Да никогда в жизни ни в какие коммерческие или госзакупки они не позволят внедрить подобное, поскольку оно лишит смысла работать всех тех кто живёт манипуляциями на торгах. Это их хлеб, и они не делятся властью, которую даёт им засилие номинальной "низкой цены".
Пересчитать конечно можно, но не всегда это легко, особенно когда все параметры которые нужно учесть в голове у пары сотрудников и делятся они ими не очень охотно :)
И лица тех кто живёт за счёт откатов и прочего видеть доводилось и не раз. И как они с пеной у рта доказывают, что такая система не будет работать, что система не сможет учесть фактические изменения на рынке...
Но это уже другая история.

Почему мы месяц копаемся в данных, прежде чем подключить ИИ