Когда говорят о масштабировании электронной коммерции, фокусируются на сложных инженерных задачах: распределённом поиске, инвентаризации в реальном времени, движках рекомендаций и оптимизации оформления заказа. Но под всем этим скрывается более тихая, но постоянная проблема, с которой сталкивается почти каждый ритейлер: значения атрибутов.
Атрибуты — это основа поиска товаров. Они управляют фильтрами, сравнениями, ранжированием в поиске и логикой рекомендаций. Но в реальных каталогах значения атрибутов редко бывают чистыми. Они непоследовательны, дублируются, неправильно отформатированы или семантически неоднозначны.
Возьмём что-то простое, как Размер. Вы можете увидеть:
Код
["XL", "Small", "12cm", "Large", "M", "S"]
Или Цвет:
Код
["RAL 3020", "Crimson", "Red", "Dark Red"]
По отдельности эти несоответствия выглядят безобидно. Но умножьте их на более чем 3 миллиона SKU, каждый с десятками атрибутов, и проблема становится системной. Фильтры ведут себя непредсказуемо, поисковые системы теряют релевантность, мерчандайзеры тонут в ручной очистке, а поиск товаров становится медленнее и более разочаровывающим для клиентов.
Это была задача, с которой я столкнулся как full-stack инженер-программист в Zoro, проблема, которую легко было упустить из виду, но которая влияла на каждую страницу товара.
Я не хотел загадочный чёрный ящик ИИ, который просто сортирует вещи. Такие системы трудно доверять, отлаживать или масштабировать. Вместо этого я стремился к конвейеру, который был бы:
Результатом стал гибридный ИИ-конвейер, который сочетает контекстное рассуждение от LLM с чёткими правилами и контролем мерчандайзеров. Он действует разумно, когда нужно, но всегда остаётся предсказуемым. Это ИИ с защитными механизмами, а не бесконтрольный ИИ.
Вся обработка атрибутов происходит в автономных фоновых задачах, а не в реальном времени. Это был не компромисс; это был стратегический архитектурный выбор.
Конвейеры в реальном времени звучат привлекательно, но в масштабе электронной коммерции они вводят:
Автономные задачи, с другой стороны, дали нам:
Отделение клиентских систем от конвейеров обработки данных имеет решающее значение при работе с миллионами SKU.
Перед использованием ИИ на данных я провёл чёткий этап предварительной обработки для устранения шума и путаницы. Этот шаг может показаться простым, но он значительно улучшил рассуждения LLM.
Конвейер очистки включал:
Это гарантировало, что LLM получал чистый, ясный ввод, что является ключом к согласованным результатам. Мусор на входе, мусор на выходе. В этом масштабе даже небольшие ошибки могут привести к большим проблемам позже.
LLM не просто сортировал значения по алфавиту. Он рассуждал о них.
Сервис получал:
С этим контекстом модель могла понять:
Модель возвращала:
Это позволяет конвейеру обрабатывать разные типы атрибутов без жёсткого кодирования правил для каждой категории.
Не каждый атрибут нуждается в ИИ.
На самом деле, многие атрибуты лучше обрабатываются детерминированной логикой.
Числовые диапазоны, значения на основе единиц и простые наборы часто получают выгоду от:
Конвейер автоматически определял эти случаи и использовал для них детерминированную логику. Это поддерживало систему эффективной и избегало ненужных вызовов LLM.
Мерчандайзерам всё ещё требовался контроль, особенно для бизнес-чувствительных атрибутов.
Поэтому каждая категория могла быть помечена как:
Эта система двойной маркировки позволяет людям принимать окончательные решения, в то время как ИИ выполнял большую часть работы. Это также создало доверие, поскольку мерчандайзеры могли переопределить модель, когда требовалось, не нарушая конвейер.
Все результаты сохранялись непосредственно в базе данных Product MongoDB, сохраняя архитектуру простой и централизованной.
MongoDB стала единым оперативным хранилищем для:
Это упростило просмотр изменений, переопределение значений, повторную обработку категорий и синхронизацию с другими системами.
После сортировки значения поступали в:
Это гарантировало, что:
Поиск — это то место, где сортировка атрибутов наиболее заметна и где согласованность имеет наибольшее значение.
Чтобы это работало для миллионов SKU, я разработал модульный конвейер, построенный вокруг фоновых задач, рассуждений ИИ и интеграции с поиском. Приведённая ниже архитектурная диаграмма фиксирует полный поток:
Этот поток гарантирует, что каждое значение атрибута, независимо от того, отсортировано ли оно ИИ или установлено вручную, отражается в поиске, мерчандайзинге и клиентском опыте.
Вот как беспорядочные значения были преобразованы:
| Атрибут | Исходные значения | Упорядоченный вывод | |----|----|----| | Размер | 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 с чёткими правилами и контролем мерчандайзеров, я преобразовал сложную, скрытую проблему в чистую, масштабируемую систему.
Это напоминание о том, что некоторые из самых больших побед приходят от решения скучных проблем, тех, которые легко упустить, но которые появляются на каждой странице товара.
\n \n \n

![[Перевод] Почему индустрия ИИ начинает трещать по швам?](https://mexc-rainbown-activityimages.s3.ap-northeast-1.amazonaws.com/banner/F20250611171322267jYDo0LEq24FJKD.png)
