Фильтрация метаданных, гибридный поиск или агент при создании вашего RAG-приложения
Что такое RAG?
Retrieval Augmented Generation (RAG) — это метод, который расширяет возможности LLM за счет интеграции дополнительных источников данных. Типичное приложение RAG включает:
Индексирование — конвейер для получения данных из источника и их индексирования, который обычно состоит из загрузки, разбиения и сортировки данных в Milvus.
Извлечение и генерация — во время выполнения RAG обрабатывает запрос пользователя, извлекает релевантные данные из индекса, хранящегося в Milvus, а LLM генерирует ответ на основе этого обогащенного контекста.
Существуют разные способы улучшить ваше приложение RAG. В этом блоге мы обсудим, как векторная база данных Milvus может повысить производительность ваших RAG-приложений с помощью своих возможностей Metadata Filtering, Hybrid Search и агентных возможностей.
Фильтрация метаданных
При вставке ваших данных в Milvus полезно включать метаданные о ваших данных. Например, если вы работаете с PDF, вы можете вставить страницу, к которой относятся векторы, имя PDF-файла, автора и т. д.
Хранение метаданных в Milvus позволяет отфильтровывать нерелевантные данные, делая извлечение быстрее и эффективнее. Этот подход может быть особенно полезен в вашем RAG-приложении, поскольку вы можете гарантировать, что возвращаете LLM только тот контент, который релевантен запросу пользователя.
Milvus поддерживает сопоставление метаданных по полной строке, что позволяет сопоставлять строки с помощью поиска по префиксу, инфиксу, постфиксу или даже с использованием подстановочного символа для символа.
# Prefix example, matches any string starting with “The”.
expression='title like "The%"'
# Infix example, matches any string with the word “the” anywhere in the sentence.
expression='title like "%the%"'
# Postfix example, matches any string ending with “Rye”.
expression='title like "%Rye"'
# Single character wildcard example, matches any one single character at a specific position.
expression='title like "Flip_ed"'
Также можно использовать значения массивов, либо через точные совпадения, либо проверяя, совпадают ли какие-либо элементы массива с помощью contains_any().
Гибридный поиск
Milvus позволяет использовать до 10 векторных полей в одной коллекции набора данных. Эта поддержка обеспечивает гибридный поиск, позволяя пользователям одновременно выполнять поиск по нескольким векторным столбцам. Эта возможность облегчает мультимодальный поиск, гибридный разреженный и плотный поиск, а также гибридный плотный и полнотекстовый поиск, обеспечивая универсальную и гибкую функциональность поиска.
Векторы в разных столбцах представляют различные аспекты данных, сгенерированных разными моделями эмбеддингов с различными методами обработки. Затем результаты гибридного поиска объединяются и повторно ранжируются с использованием различных стратегий повторного ранжирования.
Как гибридный поиск работает в Milvus
Представляет несколько перспектив информации. Например, в электронной коммерции изображения товаров включают вид спереди, сбоку и сверху. Разные виды могут быть представлены различными типами или размерностями векторов.
Использует различные типы векторных эмбеддингов. Сюда входят плотные эмбеддинги из моделей, таких как BERT и Transformers, и разреженные эмбеддинги из алгоритмов, таких как BM25, BGE-M3 и SPLADE.
Поддержка объединения мультимодальных векторов из различных типов неструктурированных данных, таких как изображения, видео, аудио и текстовые файлы. Например, в уголовных расследованиях подозреваемые могут быть представлены с помощью биометрических модальностей, таких как отпечатки пальцев, голосовые отпечатки и распознавание лиц, что помогает идентифицировать людей в разных модальностях.
Поддержка объединения векторного поиска и полнотекстового поиска.
Агенты в RAG-приложениях
Большие языковые модели не могут выполнять действия самостоятельно — они только выводят текст. Агенты — это системы, которые используют LLM как механизмы рассуждения, чтобы определять, какие действия выполнять и какие входные данные им передавать. После выполнения действий результаты могут быть переданы обратно в LLM, чтобы определить, нужны ли дополнительные действия или можно завершить работу.
Их можно использовать для выполнения таких действий, как поиск в интернете, просмотр ваших электронных писем, корректировка RAG для добавления саморефлексии или самооценки извлеченных документов и многого другого.
После настройки агенты могут добавлять новые данные в Milvus, если эти данные еще не сохранены, или также извлекать их и передавать обратно вашей LLM. Это позволяет вашей RAG-системе оставаться актуальной. Milvus также упрощает обновление ваших данных при необходимости с помощью функции ``` upsert()` ``.
Именно поэтому наличие метаданных в вашей коллекции важно, поскольку оно позволяет upsert только необходимую информацию.
Не стесняйтесь ознакомиться с нашим блогом, где мы показываем, как создать локальную Agentic RAG-систему с LangGraph, Llama 3 и Milvus
Заключение
В заключение, использование фильтрации по метаданным, гибридного поиска и агентов, полностью интегрированных в Milvus, может улучшить ваше RAG-приложение.
Фильтрация по метаданным позволяет обогащать ваши данные дополнительными атрибутами, обеспечивая точный и эффективный поиск. Гибридный поиск расширяет возможности поиска, позволяя выполнять запросы по нескольким векторным столбцам. Агенты выводят функциональность на новый уровень, автоматизируя действия на основе вывода LLM.
Используя эти стратегии, вы можете создать более надежное и эффективное RAG-приложение.
Если вам понравилась эта статья в блоге, рассмотрите возможность поставить нам звезду на Github и присоединиться к нашему Discord, чтобы поделиться своим опытом с сообществом.
Читать далее

Cosmos World Foundation Model Platform for Physical AI
NVIDIA's Cosmos platform enables safe, digital twin training of GenAI models for physical applications, overcoming data scarcity and safety challenges.

How to Use Anthropic MCP Server with Milvus
MCP + Milvus: Streamline AI agent development with standardized data access, eliminating integration hassles while enhancing context and flexibility.

Building RAG Pipelines for Real-Time Data with Cloudera and Milvus
explore how Cloudera can be integrated with Milvus to effectively implement some of the key functionalities of RAG pipelines.



