Как VIPSHOP ускорила свою рекомендательную систему для e-commerce в 10 раз с помощью Milvus
Рекомендательные системы стали незаменимыми для успеха электронной коммерции, выступая стратегическим катализатором для улучшения пользовательского опыта, стимулирования вовлеченности клиентов и увеличения выручки бизнеса. VIPSHOP, новаторский онлайн-ритейлер в Китае, оказался на критическом этапе. С быстро растущей клиентской базой, превысившей 52 миллиона, и ежегодным приростом в 270 миллионов заказов его устаревшая рекомендательная система на базе Elasticsearch оказалась медленной и недостаточной. Потребность в более быстром персонализированном решении в VIPSHOP становилась всё более срочной. В этом посте мы рассмотрим проблемы, с которыми столкнулся VIPSHOP, и то, как внедрение Milvus улучшило его рекомендательную систему.
Поиск эффективной системы векторного поиска
Основа гибкой рекомендательной системы заключается в ее способности к векторному поиску, что крайне важно для оперативной выдачи семантически схожих результатов. Изначально VIPSHOP полагался на Elasticsearch для векторного поиска, но вскоре столкнулся с проблемами по мере расширения ассортимента товаров. Устаревшая система столкнулась с двумя основными препятствиями — увеличенным временем отклика и резко возросшими затратами на обслуживание.
Замедление было обусловлено высокой задержкой Elasticsearch при извлечении результатов Top-K, в среднем 300 мс. Итоговое время отклика составляло несколько секунд, что негативно влияло на пользовательский опыт в сочетании с последующими этапами обработки. Кроме того, общие индексы превратились в сложный лабиринт, увеличивая затраты на построение и обслуживание. Несмотря на попытки оживить Elasticsearch с помощью плагина хеширования, результаты не оправдали ожиданий. Поиск нового стека векторного поиска стал для команды ключевым шагом к отзывчивой рекомендательной системе.
VIPSHOP выбрал Milvus для модернизации своей рекомендательной системы
Milvus — это векторная база данных с открытым исходным кодом, которая обещает скорость и целый набор функций, способных обрабатывать миллиарды векторных эмбеддингов. Она также предлагала привлекательные возможности распределенного развертывания, многоязычные SDK и разделение чтения/записи — сочетание, которое превзошло Elasticsearch и другие технологии векторного поиска. После тщательного рассмотрения и оценки VIPSHOP выбрал Milvus для перестройки своей рекомендательной системы.
Как Milvus работает в рекомендательной системе VIPSHOP
Диаграмма дает представление об архитектуре рекомендательной системы VIPSHOP на базе Milvus.
Модель глубокого обучения преобразует характеристики товаров в векторные эмбеддинги. Затем эти эмбеддинги загружаются в Milvus для хранения и извлечения с использованием MySQL и инструмента ETL.
Одновременно запросы и покупательские предпочтения потребителей проходят аналогичное преобразование в векторные эмбеддинги, инициируя поиск по сходству в Milvus. Здесь Milvus выполняет поиск Approximate Nearest Neighbors (ANN), оценивая пространственные расстояния между векторами потребителей и товаров и выдавая Top-K наиболее релевантных результатов. Наконец, этот результат представляется потребителям.
Milvus продемонстрировал выдающуюся эффективность как в процессах обновления данных, так и в процессах recall.
Обновление данных и recall имеют ключевое значение для быстрого векторного поиска и персонализированных рекомендаций в рамках этой сложной оркестрации. Процедура обновления данных обеспечивает бесшовную синхронизацию, включая такие задачи, как запись векторных данных, определение объемов данных, построение индекса, предварительная загрузка индекса и управление псевдонимами. С другой стороны, процесс recall, являющийся неотъемлемой частью рекомендаций товаров, включает извлечение векторов, связанных с запросами потребителей и покупательским поведением, вычисление расстояний между ними и объединение результатов.
Milvus продемонстрировал выдающуюся эффективность и гибкость как в процессах обновления данных, так и в процессах поиска, достигнув средней задержки всего 10 мс. В таблице ниже представлены показатели производительности трех основных сервисов Milvus, связанных с обновлением данных и поиском.
| Сервис | Роль | Входные параметры | Выходные параметры | Задержка ответа |
|---|---|---|---|---|
| Получение векторов пользователей | Получение пользовательского вектора | информация о пользователе + запрос | пользовательский вектор | 10 мс |
| Milvus Search | Расчет векторного сходства и возврат результатов Top-K | пользовательский вектор | вектор товара | 10 мс |
| Логика планирования | Параллельный поиск и объединение результатов | Векторы товаров, найденные по нескольким каналам, и показатель сходства | товары Top-K | 10 мс |
Улучшение пользовательского опыта благодаря рекомендациям в 10 раз быстрее и значительному снижению затрат
Интеграция Milvus в рекомендательную систему VIPSHOP изменила подход, открыв новую эпоху пользовательского опыта.
Общие ответы в 10 раз быстрее: Milvus сократил общее время векторных запросов до менее чем 30 мс. Эта исключительная скорость означает десятикратное ускорение по сравнению с предыдущим решением на Elasticsearch, гарантируя, что пользователи получают молниеносные рекомендации.
Улучшенная способность справляться с ростом бизнес-данных: Распределенное развертывание Milvus и возможности горизонтального масштабирования позволили рекомендательной системе VIPSHOP без усилий управлять растущими объемами данных и пользовательскими запросами. Возможность независимо масштабировать вычисления и хранилище идеально соответствует меняющимся потребностям VIPSHOP, обеспечивая беспрецедентную гибкость.
Снижение затрат на обслуживание: Milvus благодаря своим оптимизированным механизмам запросов помог VIPSHOP снизить затраты на обслуживание рекомендательной системы. Это снижение повышает операционную эффективность и способствует общей экономической эффективности платформы.
Проблемы с Milvus и извлеченные уроки
В процессе работы с Milvus команда VIPSHOP также столкнулась с некоторыми проблемами, которые были решены при помощи команды технической поддержки Zilliz. В этом разделе они поделились извлеченными уроками и полученными знаниями по оптимизации производительности системы. * Применение стратегии развертывания с разделением чтения и записи может повысить общую производительность системы, когда операции чтения имеют приоритет.
В Milvus Java client отсутствует встроенный механизм повторного подключения, поскольку он находится в памяти внутри сервиса поиска. Команда VIPSHOP создала специализированный пул соединений, чтобы обеспечить стабильное подключение, реализовав heartbeat-тест между Java client и сервером.
Периодические медленные запросы в Milvus объясняются недостаточным прогревом новых коллекций. Чтобы справиться с этой проблемой, команда VIPSHOP внедрила стратегию имитации запросов к вновь созданной коллекции.
Достижение правильного баланса между производительностью поиска и точностью имеет решающее значение. Команда VIPSHOP рекомендует проводить тщательные эксперименты по нагрузочному тестированию, адаптированные к конкретному бизнес-сценарию. Установка разумного порогового значения жизненно важна для эффективной оптимизации этих параметров.
В сценариях со статическими данными эффективный подход заключается в первоначальном импорте всех данных в коллекцию и откладывании процесса построения индекса на более поздний этап.
Читать далее

Zilliz Skills Breakdown: How AI Agents Master Vector Databases
Zilliz's Milvus Skill (pymilvus, 7 files) and Zilliz Cloud Skill (zilliz-cli, 14 modules) bring vector-DB dev and ops into one Claude Code session.

Zilliz Cloud Update: Tiered Storage, Business Critical Plan, Cross-Region Backup, and Pricing Changes
This release offers a rebuilt tiered storage with lower costs, a new Business Critical plan for enhanced security, and pricing updates, among other features.

Zilliz Cloud Introduces Advanced BYOC-I Solution for Ultimate Enterprise Data Sovereignty
Explore Zilliz Cloud BYOC-I, the solution that balances AI innovation with data control, enabling secure deployments in finance, healthcare, and education sectors.



