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

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

2025/12/25 12:53
7м. чтение
Для обратной связи или замечаний по поводу данного контента, свяжитесь с нами по адресу crypto.news@mexc.com

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

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

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

Код

["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

Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу crypto.news@mexc.com для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.

Вам также может быть интересно