Другой ракурс: модели эмбеддингов, оптимизированные для поиска
В современных системах поиска данных пользователям часто требуется не один результат по запросу; они ожидают несколько релевантных результатов, ранжированных на основе контекста запроса. Это ожидание создает сложности для традиционных embedding-моделей, которые обычно сосредоточены на бинарных отношениях. Недавно на SF Unstructured Data Meetup Robertson Taylor, архитектор решений в Marqo, представил Generalized Contrastive Learning (GCL). Этот подход выходит за рамки бинарных пар, интегрируя учет ранга и запроса в процесс обучения модели.
Robertson выступает на августовском Unstructured Data Meetup в SF
В этом блоге мы рассмотрим ключевые идеи из презентации Robertson и покажем, как GCL можно интегрировать с Milvus, ведущей векторной базой данных, чтобы создавать оптимизированные системы Retrieval-Augmented Generation (RAG). Хотя Marqo предлагает решения для хранения и поиска векторов, в этом блоге основное внимание будет уделено тому, как пользователи Milvus могут использовать модели GCL, дообученные с помощью Marqtune, платформы дообучения Marqo, чтобы улучшить свои поисковые возможности.
Чтобы лучше понять, как GCL решает эти проблемы, давайте сначала рассмотрим ограничения традиционных embedding-моделей, таких как CLIP.
Посмотрите запись выступления Robertson на YouTube.
Embedding-модели и их ограничения
Традиционные embedding-модели, такие как CLIP (Contrastive Language-Image Pretraining), широко используются для задач вроде поиска изображений. Эти модели предназначены для минимизации расстояния между связанными элементами, такими как подпись и изображение. Хотя этот подход хорошо работает для простых бинарных отношений, ему сложно удовлетворять более сложным требованиям поисковых систем, которым нужны ранжированные мультимодальные результаты.
Robertson начал свою презентацию с обсуждения нескольких проблем, связанных с существующими моделями:
Бинарные отношения: Модели вроде CLIP обучаются на парах текста и изображений, что делает их эффективными для конкретных задач, но недостаточными при ранжировании нескольких результатов на основе пользовательских запросов.
Отсутствие учета ранга и запроса: Многие embedding-модели рассматривают все запросы одинаково, не корректируя результаты на основе поведения пользователей или данных взаимодействия.
Ограниченные мультимодальные возможности: Большинство моделей отлично работают либо с текстом, либо с изображениями, но испытывают трудности при эффективном объединении этих типов данных.
Неэффективное объединение между полями: Существующие модели часто не способны эффективно объединять информацию из нескольких полей, например, заголовка, описания и отзывов, в единое векторное представление.
Эти ограничения означают, что, хотя традиционные модели работают приемлемо в контролируемых условиях, они часто не справляются в реальных сценариях, где ранжирование и мультимодальные возможности имеют критическое значение.
Чтобы проиллюстрировать, как обычно обучаются модели CLIP, рассмотрим следующую диаграмму:
Figure 1: Как обучается CLIP
CLIP использует двухбашенную архитектуру с текстовым энкодером и энкодером изображений. Модель обучается минимизировать расстояние между положительными парами (соответствующие друг другу текст и изображение) и максимизировать расстояние между всеми остальными парами. Хотя этот подход эффективен для определенных задач, он не учитывает сложности реальных сценариев поиска. Именно здесь на помощь приходит GCL.
Generalized Contrastive Learning (GCL): решение для оптимизации поиска
Чтобы устранить ограничения традиционных моделей, Marqo представила Generalized Contrastive Learning (GCL). Этот подход улучшает модели эмбеддингов, включая в процесс обучения учет ранга и учет запроса, что значительно повышает релевантность и ранжирование результатов поиска.
GCL решает эти задачи с помощью нескольких ключевых инноваций:
Учет ранга: GCL решает эту проблему, включая данные о взаимодействии пользователей, такие как клики и добавления в корзину, в процесс обучения. Это позволяет модели научиться ранжировать результаты на основе предпочтений пользователей.
Учет запроса: Вместо того чтобы рассматривать все запросы одинаково, GCL донастраивает эмбеддинги с учетом контекста запроса. Например, когда пользователь ищет SLR камеру, GCL учитывает, исходит ли запрос от профессионального фотографа, который ищет высококлассное оборудование, или от потребителя, который ищет модель начального уровня. Такая осведомленность о запросе позволяет системе возвращать более релевантные результаты.
Мультимодальные возможности: GCL поддерживает мультимодальный поиск, позволяя системе встраивать и извлекать как текст, так и изображения единым способом. Например, в среде электронной коммерции GCL может объединять названия товаров, описания, отзывы и изображения в единый вектор, обеспечивая более релевантные результаты поиска.
Комбинация полей: GCL позволяет модели эффективно объединять информацию из нескольких полей в единое векторное представление, улучшая общее качество результатов поиска.
Интрамодальное понимание: Включая различные текстовые поля во время обучения, GCL улучшает способность модели более эффективно обрабатывать запросы «текст-текст».
Чтобы проиллюстрировать, как работает GCL, рассмотрим следующую диаграмму, показывающую процесс оптимизации мультимодального поиска с использованием GCL:
Рисунок 2: Процесс оптимизации мультимодального поиска с использованием GCL
Система начинает с фиксации взаимодействий пользователей, таких как клики по результатам поиска. Затем эти взаимодействия агрегируются для создания оценки для каждой пары «запрос-результат». Запросы используются для обучения модели с целью повышения эффективности поиска, а агрегированные оценки используются для взвешивания важности различных результатов во время обучения. Затем модель обучается с использованием этих взвешенных данных, включая как информацию о запросах, так и оценки взаимодействия пользователей. Наконец, обученная модель оценивается с использованием новых запросов и оценок для оценки ее производительности.
Этот процесс позволяет модели учиться на реальном поведении пользователей и оптимизироваться для фактических сценариев поиска, а не просто минимизировать расстояния между заранее определенными парами. Теперь, когда мы увидели, как GCL решает ключевые задачи оптимизации поиска, давайте рассмотрим, как его можно донастроить для конкретных задач и реальных приложений.
Донастройка задач с помощью GCL
GCL универсален и может использоваться для донастройки моделей для различных задач в стиле поиска, выходящих за рамки базового поиска. Следующее изображение иллюстрирует некоторые из этих задач:
Рисунок 3: Примеры задач донастройки с помощью GCL
Давайте рассмотрим каждую из этих задач донастройки подробнее:
Улучшение базового поиска
GCL улучшает традиционный поиск «запрос-документ», включая данные о взаимодействии пользователей. Это означает, что когда пользователь ищет термин, модель не просто сопоставляет ключевые слова, но также учитывает, как пользователи взаимодействовали с похожими запросами и результатами в прошлом. Например, если многие пользователи, искавшие легкий laptop, нажимали на ультрабуки, модель учится ранжировать ультрабуки выше для этого запроса, даже если термин ultrabook явно не упоминается.
Расширенные рекомендации
GCL обеспечивает как рекомендации «запрос-документ», так и «документ-документ». Такой двойной подход позволяет делать более тонкие и контекстные предложения продуктов. В рекомендациях «запрос-документ» GCL может предлагать продукты на основе поискового запроса пользователя, учитывая не только термины запроса, но и паттерны поведения пользователей. Для рекомендаций «документ-документ» GCL может выявлять связанные продукты на основе сходства характеристик, паттернов взаимодействия пользователей или контекстной релевантности, даже когда товары не являются явно похожими.
Разрешение сущностей и дедупликация
Возможности GCL по сопоставлению «документ-документ» делают его мощным инструментом для задач разрешения сущностей и дедупликации. Он может выявлять похожие или идентичные элементы в наборе данных, даже когда существуют небольшие различия в том, как элементы описаны или категоризированы. Это особенно полезно в электронной коммерции для выявления дублирующихся карточек товаров или в проектах интеграции данных, где одна и та же сущность может быть представлена по-разному в нескольких источниках данных.
Условный поиск
Эта функция позволяет GCL включать контекстную информацию в процесс поиска. Например, поиск winter jackets дает разные результаты в зависимости от местоположения пользователя (например, тяжелые пуховики для холодного климата, более легкие куртки для мягкой зимы). GCL учится корректировать свои результаты на основе этих условных факторов, предоставляя более релевантные результаты поиска, адаптированные к конкретным контекстам или маркетплейсам.
Персонализированный поиск
GCL выводит персонализацию на новый уровень, учитывая специфичный для пользователя контекст, такой как история просмотров, товары в текущей корзине или поведение прошлых покупок. Это позволяет получать высоко адаптированные результаты поиска, соответствующие текущим интересам и потребностям пользователя. Например, если пользователь просматривал высококлассное фотооборудование, поиск штатива ****может отдавать приоритет профессиональным вариантам по сравнению с бюджетными альтернативами.
Классификация и сопоставление таксономий
GCL можно применять к задачам классификации, таким как автоматическая категоризация продуктов в заранее заданную таксономию. Это особенно полезно для крупных платформ электронной коммерции или систем управления контентом, где ручная категоризация была бы затратной по времени и подверженной ошибкам. GCL может обучаться на существующих категоризациях и взаимодействиях пользователей, чтобы принимать интеллектуальные решения о том, как классифицировать новые элементы, обеспечивая согласованность и улучшая общую организацию больших наборов данных.
Эти задачи тонкой настройки делают GCL очень адаптивным для различных задач поиска. Давайте посмотрим, как GCL применяется в реальных сценариях.
Реальные применения GCL
Робертсон поделился несколькими примерами того, как GCL используется для решения реальных проблем. Один примечательный случай касался платформы электронной коммерции, которая изначально внедрила базовое решение векторного поиска с использованием готовой модели. Однако платформа столкнулась с резким снижением показателей добавления в корзину и общей вовлеченности, поскольку система не предоставляла релевантные результаты.
После интеграции GCL платформа показала значительные улучшения. Продукты, которые лучше соответствовали предпочтениям пользователей, ранжировались выше, что привело к лучшему вовлечению и увеличению продаж. Платформа смогла использовать неструктурированные данные, такие как отзывы пользователей и изображения продуктов, чтобы повысить релевантность результатов поиска. За счет включения данных из взаимодействий пользователей, таких как клики и покупательское поведение, платформа улучшила свою способность предоставлять персонализированные, ранжированные результаты поиска.
В области академических исследований GCL улучшил поиск релевантных научных статей за счет включения метаданных, таких как сведения об авторах и цитирования, в процесс поиска. Это не только ускорило процесс поиска, но и повысило релевантность результатов, сделав систему более эффективной для исследователей, работающих с большими базами данных.
Теперь давайте рассмотрим, как GCL использует продвинутые методы для дальнейшего повышения производительности в производственных средах.
Продвинутые методы в GCL
Robertson затронул несколько продвинутых методов, которые могут еще больше повысить производительность моделей GCL. К ним относятся методы обучения с учетом производственной эксплуатации, такие как усечение и бинаризация эмбеддингов.
Рисунок 4: Усечение и бинаризация эмбеддингов
Обучение с учетом усечения позволяет создавать эмбеддинги Matryoshka, которые могут уменьшить размер эмбеддингов в 2–4 раза без потери точности. Модель учится создавать осмысленные представления разных размеров из одной модели. Обучение бинаризации — еще один метод, который позволяет значительно сократить объем хранения и задержку с минимальной потерей точности за счет обучения эмбеддингам, принимающим только значения 0 или 1. Эти методы особенно ценны в производственных средах, где стоимость хранения и скорость извлечения являются критически важными факторами.
GCL также поддерживает создание условных эмбеддингов, которые позволяют более тонко управлять результатами поиска
Рисунок 5: Условные эмбеддинги
Используя префиксы или условные операторы в запросах, модель может научиться корректировать свои результаты на основе конкретных условий. Например, USA Marketplace: SLR camera может дать другие результаты, чем UK Marketplace: SLR camera. Условные эмбеддинги также можно использовать для влияния на стиль или качество результатов, подобно тому, как промпты работают в моделях генерации изображений.
Эти продвинутые методы не только улучшают технические аспекты GCL, но и приводят к повышению производительности в реальных задачах извлечения. Давайте посмотрим, как модели, обученные с помощью GCL, работают по сравнению с традиционными подходами.
Улучшения производительности с GCL
Использование GCL повышает производительность в нескольких различных сценариях. Давайте рассмотрим некоторые из тех, которыми поделился Robertson:
Рисунок 6: Сравнение производительности моделей эмбеддингов, обученных GCL, с другими
Производительность внутри домена показала 6-кратное увеличение NDCG (нормализованного дисконтированного накопленного выигрыша) по сравнению с предварительно обученными моделями. Для новых запросов, не встречавшихся во время обучения, GCL все равно превзошел предварительно обученные модели почти в 3 раза. При применении к новым наборам данных, не встречавшимся во время обучения, GCL сохранил свое преимущество в производительности. Даже в сценариях zero-shot GCL показал улучшения NDCG по сравнению с традиционными моделями. Эти результаты демонстрируют устойчивость и обобщающую способность GCL в различных сценариях извлечения.
С такими значительными улучшениями эффективности поиска, особенно в новых сценариях и сценариях zero-shot, GCL готова переопределить производительность в поисковых системах. Теперь давайте посмотрим, как вы можете привнести эти преимущества в собственные RAG-приложения, используя GCL с Milvus.
Использование GCL с Milvus для RAG-приложений
Хотя Marqo предоставляет комплексное решение для поиска на основе эмбеддингов, многие организации уже полагаются на Milvus для своих потребностей в векторной базе данных. Если вы используете Milvus или планируете интегрировать его в свою инфраструктуру данных, вы по-прежнему можете извлечь пользу из моделей, дообученных с помощью GCL, в ваших приложениях Retrieval-Augmented Generation (RAG).
Вот как вы можете интегрировать GCL с Milvus для RAG:
Дообучение с Marqtune: Используйте Marqtune, платформу дообучения Marqo, чтобы применить GCL к предварительно обученным моделям. Этот процесс оптимизирует модель для ваших конкретных задач поиска.
Загрузка дообученной модели: После дообучения загрузите оптимизированную модель из Marqtune.
Интеграция с Milvus: Используйте дообученную модель для генерации эмбеддингов, которые затем можно хранить и искать в Milvus.
Эффективный поиск: Используйте оптимизированные возможности Milvus для крупномасштабного высокоскоростного векторного поиска. В сочетании с учитывающими запросы эмбеддингами GCL Milvus может эффективно ранжировать и возвращать релевантные результаты даже в сложных мультимодальных наборах данных.
Масштабируемость: По мере роста вашего набора данных Milvus может справляться с возрастающими требованиями к хранению и поиску миллиардов эмбеддингов, обеспечивая стабильную производительность.
Благодаря объединенной мощи GCL и Milvus системы с дополненной поиском генерацией могут достигать впечатляющей масштабируемости и производительности. Но что делает Milvus настолько идеальным выбором для этих приложений?
Почему стоит выбрать Milvus для вашей RAG-системы, усиленной GCL?
При реализации системы Retrieval-Augmented Generation (RAG) с использованием моделей, дообученных с помощью Generalized Contrastive Learning (GCL), выбор правильной векторной базы данных имеет решающее значение. Milvus выделяется как отличный выбор благодаря своим надежным функциям и передовым технологиям. Давайте рассмотрим, почему Milvus хорошо подходит для обработки эмбеддингов, сгенерированных GCL, и обеспечения эффективной работы RAG-приложений.
Ключевые функции Milvus
Поддержка мультитенантности: Milvus позволяет нескольким пользователям или приложениям работать в одной системе, не мешая друг другу. Эта функция обеспечивает безопасный изолированный доступ к данным, что делает ее идеальной для корпоративных сред, где разным командам или проектам может потребоваться использовать один и тот же экземпляр Milvus. В контексте RAG-систем, усиленных GCL, вы можете выполнять несколько задач поиска для разных отделов или сценариев использования в одном развертывании Milvus, сохраняя разделение данных и безопасность.
Масштабируемая и эластичная архитектура: Milvus, разработанный для обработки растущих потребностей в данных, автоматически масштабируется в соответствии со спросом. Это гарантирует, что производительность остается оптимальной по мере увеличения объема ваших данных. Такая масштабируемость крайне важна для RAG-приложений, которые часто имеют дело с быстро растущими коллекциями документов. По мере того как вы дообучаете больше моделей с помощью GCL и генерируете больше эмбеддингов, Milvus может без труда справляться с ростом без ущерба для скорости или эффективности поиска.
Поддержка различных индексов: Milvus поддерживает несколько типов индексов, включая HNSW (Hierarchical Navigable Small World), PQ (Product Quantization), Binary и DiskANN. Такое разнообразие позволяет выбрать наиболее подходящий тип индекса для вашего конкретного сценария использования, балансируя скорость поиска, точность и эффективность хранения. Например, HNSW может быть идеален для высокоскоростного поиска по эмбеддингам, сгенерированным GCL, тогда как PQ можно использовать для более компактного хранения больших наборов эмбеддингов.
Настраиваемая согласованность: Milvus позволяет настраивать уровни согласованности для ваших данных, обеспечивая баланс между производительностью и точностью данных в зависимости от потребностей вашего приложения. В контексте RAG-систем эта функция особенно полезна. Вы можете отдавать приоритет скорости поиска для приложений реального времени или выбрать более строгую согласованность в сценариях, где точность данных имеет первостепенное значение, например в финансовых или медицинских приложениях.
Аппаратно-ускоренные вычисления: Оптимизированный для использования такого оборудования, как GPU, Milvus обеспечивает более быструю и эффективную обработку ресурсоемких задач. Это особенно полезно при работе с моделями GCL, которые могут быть вычислительно требовательными. Аппаратное ускорение гарантирует, что даже по мере роста вашей базы данных эмбеддингов время извлечения остается малым, поддерживая отзывчивость вашей RAG-системы.
Передовые технологии, лежащие в основе Milvus
Гибкие типы вычислений: Milvus оптимизирован для различных аппаратных сред, включая AVX512 (Advanced Vector Extensions), Neon для SIMD (Single Instruction, Multiple Data) и GPU-ускорение. Эта гибкость позволяет Milvus эффективно использовать высокопроизводительное оборудование, обеспечивая быструю обработку и экономически эффективную масштабируемость. Для RAG-систем, усиленных GCL, это означает, что вы можете выбрать наиболее подходящий тип вычислений исходя из доступного оборудования и требований к производительности.
Универсальные поисковые возможности: Milvus поддерживает широкий спектр методов поиска, включая top-K ANN (Approximate Nearest Neighbors), range ANN и поиск с фильтрацией. Эти разнообразные типы поиска позволяют адаптировать функциональность извлечения под ваши конкретные потребности. Например, top-K ANN может использоваться для поиска наиболее релевантных документов для заданного эмбеддинга запроса, тогда как поиск с фильтрацией может сочетать семантическое сходство с фильтрами по метаданным для более точного извлечения.
Передовые методы индексирования: Благодаря поддержке 15 различных типов индексирования Milvus обеспечивает гибкость в том, как данные хранятся и ищутся. Это включает передовые методы, такие как HNSW для высокоскоростного поиска и DiskANN для обработки массивных наборов данных. Правильный выбор индекса может существенно повлиять на производительность вашей RAG-системы, позволяя оптимизировать ее либо для скорости поиска, либо для эффективности использования памяти, в зависимости от ваших приоритетов.
Гибкость языков и API: Milvus поддерживает несколько языков программирования, включая Python, Java, Go и Node.js. Эта универсальность упрощает интеграцию Milvus в существующие технологические стеки и позволяет разработчикам работать с предпочитаемыми языками. Для RAG-систем это означает, что вы можете беспрепятственно внедрить Milvus в существующую кодовую базу независимо от языка, на котором она создана.
Надежное управление данными: Milvus предлагает развитые возможности управления данными, включая управление коллекциями и разделами. Это позволяет эффективно организовывать и извлекать крупномасштабные наборы данных эмбеддингов. Для RAG-систем, усиленных GCL, вы можете структурировать свои эмбеддинги в логические коллекции (например, по типу документа или предметной области) и разделы, обеспечивая более целенаправленный и эффективный поиск.
Учитывая надежную архитектуру и передовые возможности, Milvus предоставляет идеальную инфраструктуру для использования моделей, усиленных GCL, в системах с retrieval-augmented generation.
Заключение
Робертсон отлично показал, как Generalized Contrastive Learning (GCL) улучшает поиск за счет внедрения ранговой и запросной осведомленности, повышая релевантность и ранжирование результатов. Этот подход выходит за рамки традиционных бинарных моделей, что делает его высокоэффективным для таких применений, как электронная коммерция и академические исследования.
Мы также увидели, как Milvus дополнительно поддерживает эти достижения благодаря своей масштабируемой архитектуре и эффективной обработке эмбеддингов, обеспечивая высокоскоростной поиск и оптимизированную производительность для сложных мультимодальных наборов данных. Вместе GCL и Milvus предоставляют надежное решение для создания систем следующего поколения с retrieval-augmented подходом.
Читать далее

Why We Built Vector Lakebase: Rethinking Unstructured Data Architecture for AI
Vector Lakebase: a unified, lake-native data foundation for AI workloads — and an answer to what happens after vector databases succeed.

Proactive Monitoring for Vector Database: Zilliz Cloud Integrates with Datadog
we're excited to announce Zilliz Cloud's integration with Datadog, enabling comprehensive monitoring and observability for your vectorDB deployments.

Why Deepseek is Waking up AI Giants Like OpenAI And Why You Should Care
Discover how DeepSeek R1's open-source AI model with superior reasoning capabilities and lower costs is disrupting the AI landscape and challenging tech giants like OpenAI.


