Взгляд за кулисы создания управляемого ИИ конвейера сортировки атрибутов для миллионов SKU.Взгляд за кулисы создания управляемого ИИ конвейера сортировки атрибутов для миллионов SKU.

Как я использовал ИИ для исправления несогласованных значений атрибутов в масштабе в электронной коммерции

2025/12/25 12:53

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

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

Возьмём что-то простое, как Размер. Вы можете увидеть:

Код

["XL", "Small", "12cm", "Large", "M", "S"]

Или Цвет:

Код

["RAL 3020", "Crimson", "Red", "Dark Red"]

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

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

Мой подход: гибридный ИИ встречает детерминизм

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

  • объяснимым
  • предсказуемым
  • масштабируемым
  • управляемым людьми

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

Фоновые задачи: созданы для пропускной способности

Вся обработка атрибутов происходит в автономных фоновых задачах, а не в реальном времени. Это был не компромисс; это был стратегический архитектурный выбор.

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

  • непредсказуемую задержку
  • хрупкие зависимости
  • дорогие всплески вычислений
  • операционную хрупкость

Автономные задачи, с другой стороны, дали нам:

  • Высокую пропускную способность: огромные пакеты обрабатываются без влияния на рабочие системы
  • Устойчивость: сбои никогда не влияли на клиентский трафик
  • Контроль затрат: вычисления можно было планировать в периоды низкого трафика
  • Изоляция: задержка LLM никогда не влияла на страницы товаров
  • Согласованность: обновления были атомарными и предсказуемыми

Отделение клиентских систем от конвейеров обработки данных имеет решающее значение при работе с миллионами SKU.

Очистка и нормализация

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

Конвейер очистки включал:

  • обрезку пробелов
  • удаление пустых значений
  • дедупликацию значений
  • преобразование навигационных цепочек категорий в контекстную строку

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

Сервис LLM с контекстом

LLM не просто сортировал значения по алфавиту. Он рассуждал о них.

Сервис получал:

  • очищенные значения атрибутов
  • навигационные цепочки категорий
  • метаданные атрибутов

С этим контекстом модель могла понять:

  • Что "Voltage" в Электроинструментах является числовым
  • что "Size" в Одежде следует известной прогрессии
  • что "Colour" в Красках может следовать стандартам RAL
  • что "Material" в Оборудовании имеет семантические отношения

Модель возвращала:

  • упорядоченные значения
  • уточнённые имена атрибутов
  • решение: детерминированная или контекстная сортировка

Это позволяет конвейеру обрабатывать разные типы атрибутов без жёсткого кодирования правил для каждой категории.

Детерминированные резервные варианты

Не каждый атрибут нуждается в ИИ.

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

Числовые диапазоны, значения на основе единиц и простые наборы часто получают выгоду от:

  • более быстрой обработки
  • предсказуемой сортировки
  • более низкой стоимости
  • нулевой неоднозначности

Конвейер автоматически определял эти случаи и использовал для них детерминированную логику. Это поддерживало систему эффективной и избегало ненужных вызовов LLM.

Ручная маркировка против маркировки LLM

Мерчандайзерам всё ещё требовался контроль, особенно для бизнес-чувствительных атрибутов.

Поэтому каждая категория могла быть помечена как:

  • LLM_SORT — позволить модели решать
  • MANUAL_SORT — мерчандайзеры определяют порядок

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

Постоянство и контроль

Все результаты сохранялись непосредственно в базе данных Product MongoDB, сохраняя архитектуру простой и централизованной.

MongoDB стала единым оперативным хранилищем для:

  • отсортированных значений атрибутов
  • уточнённых имён атрибутов
  • тегов сортировки на уровне категории
  • полей sortOrder на уровне товара

Это упростило просмотр изменений, переопределение значений, повторную обработку категорий и синхронизацию с другими системами.

Интеграция с поиском

После сортировки значения поступали в:

  • Elasticsearch для поиска на основе ключевых слов
  • Vespa для семантического и векторного поиска

Это гарантировало, что:

  • фильтры отображались в логическом порядке
  • Страницы товаров отображали согласованные атрибуты
  • поисковые системы ранжировали товары более точно
  • Клиенты могли просматривать категории более легко

Поиск — это то место, где сортировка атрибутов наиболее заметна и где согласованность имеет наибольшее значение.

Обзор архитектуры

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

  • Данные о товарах поступают из системы информации о товарах
  • Задача извлечения атрибутов извлекает значения атрибутов и контекст категорий
  • Они передаются в сервис сортировки ИИ
  • Обновлённые документы товаров записываются в Product MongoDB
  • Задача исходящей синхронизации обновляет систему информации о товарах с порядком сортировки
  • Задачи синхронизации Elasticsearch и Vespa передают отсортированные данные в соответствующие поисковые системы
  • Сервисы API подключают Elasticsearch и Vespa к клиентскому приложению

Этот поток гарантирует, что каждое значение атрибута, независимо от того, отсортировано ли оно ИИ или установлено вручную, отражается в поиске, мерчандайзинге и клиентском опыте.

Решение в действии

Вот как беспорядочные значения были преобразованы:

| Атрибут | Исходные значения | Упорядоченный вывод | |----|----|----| | Размер | XL, Small, 12cm, Large, M, S | Small, M, Large, XL, 12cm | | Цвет | RAL 3020, Crimson, Red, Dark Red | Red, Dark Red, Crimson, Red (RAL 3020) | | Материал | Steel, Carbon Steel, Stainless, Stainless Steel | Steel, Stainless Steel, Carbon Steel | | Числовой | 5cm, 12cm, 2cm, 20cm | 2cm, 5cm, 12cm, 20cm |

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

Почему автономные задачи вместо обработки в реальном времени?

Обработка в реальном времени ввела бы:

  • непредсказуемую задержку
  • Более высокие вычислительные затраты
  • хрупкие зависимости
  • операционную сложность

Автономные задачи дали нам:

  • эффективность пакетной обработки
  • асинхронные вызовы LLM
  • логику повтора и очереди ошибок
  • окна человеческого просмотра
  • предсказуемые вычислительные расходы

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

Влияние

Результаты были значительными:

  • Согласованная сортировка атрибутов для более 3 миллионов SKU
  • Предсказуемая числовая сортировка через детерминированные резервные варианты
  • Контроль мерчандайзеров через ручную маркировку
  • Более чистые страницы товаров и более интуитивные фильтры
  • Улучшенная релевантность поиска
  • Более высокое доверие клиентов и конверсия

Это была не просто техническая победа; это также была победа пользовательского опыта и выручки.

Извлечённые уроки

  • Гибридные конвейеры превосходят чистый ИИ в масштабе. Защитные механизмы важны.
  • Контекст значительно улучшает точность LLM
  • Автономные задачи необходимы для пропускной способности и устойчивости
  • Механизмы переопределения человеком создают доверие и принятие
  • Чистый ввод — основа надёжного вывода ИИ

Заключительная мысль

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

Объединив интеллект LLM с чёткими правилами и контролем мерчандайзеров, я преобразовал сложную, скрытую проблему в чистую, масштабируемую систему.

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

\n \n \n

Возможности рынка
Логотип Sleepless AI
Sleepless AI Курс (AI)
$0.03832
$0.03832$0.03832
+0.02%
USD
График цены Sleepless AI (AI) в реальном времени
Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу service@support.mexc.com для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.