Векторные базы данных — основа поиска в RAG
Почему RAG сохранится, несмотря на достижения LLM?
Внедрение чат-бота на базе технологии Retrieval Augmented Generation (RAG) меняет правила игры для компаний, стремящихся улучшить клиентскую поддержку. Этот подход сочетает разговорные возможности large language models со знаниями, хранящимися в базе данных RAG из различных областей, таких как юридическое консультирование, боты клиентской поддержки, образовательная помощь, здравоохранение и многое другое.
Стандартная архитектура Retrieval Augmented Generation состоит из двух основных систем: Retriever и Generator. Retriever сегментирует данные (например, документы), кодирует данные в vector embeddings, создает индексы (Chunks Vectors) и извлекает семантически релевантные результаты, выполняя семантический поиск с помощью векторных эмбеддингов. Generator, с другой стороны, использует контекст, полученный в процессе извлечения, чтобы формировать промпт для large language models (LLM), которые, в свою очередь, генерируют точные ответы.
Общая архитектура RAG. Пользовательские запросы, охватывающие разные модальности, служат входными данными как для retriever, так и для generator. Retriever извлекает релевантную информацию из источников данных. Generator взаимодействует с результатами извлечения и в конечном итоге создает результаты различных модальностей. Источник: https://arxiv.org/pdf/2402.19473
Эффективность систем Retrieval Augmented Generation обусловлена синергетическим сочетанием систем извлечения и генеративных моделей. Системы извлечения предоставляют точную, релевантную информацию, факты и данные, тогда как генеративные модели формируют гибкие, контекстуально обогащенные ответы. Этот двойной подход позволяет RAG эффективно обрабатывать сложные запросы и создавать содержательные, информативные ответы, что делает его бесценным в системах, требующих тонкой обработки, понимания и генерации естественного языка.
Технология Retrieval Augmented Generation имеет преимущества перед традиционными large language models, включая:
Снижение проблем «галлюцинаций»: Retrieval Augmented Generation использует внешние релевантные данные, чтобы помочь LLM генерировать более точные ответы, повышая надежность и прослеживаемость результата.
Повышенная конфиденциальность и безопасность данных: RAG может безопасно управлять приватными данными как расширением внешней базы знаний, предотвращая потенциальные утечки данных после обучения модели.
Извлечение информации в реальном времени: RAG обеспечивает получение актуальной, доменно-специфичной релевантной информации в реальном времени, решая проблему устаревших сведений.
Хотя продолжающиеся достижения в LLM также решают эти проблемы с помощью таких стратегий, как дообучение на приватных наборах данных и предоставление обучающих данных с более длинными текстовыми окнами, RAG остается надежным, устойчивым и экономически эффективным решением в более широких приложениях GenAI благодаря своей:
Прозрачность и управляемость: В отличие от непрозрачных процессов дообучения и управления длинными текстами, RAG предлагает более понятные и взаимосвязанные отношения между модулями, улучшая настраиваемость и интерпретируемость.
Экономическая эффективность и быстрый отклик: RAG требует меньше времени на обучение и обходится дешевле, чем дообученные модели. Он также превосходит LLM с обработкой длинного контекста по скорости ответа и операционным затратам.
Управление приватными данными: Отделяя базу знаний от LLM, RAG обеспечивает практическую основу для внедрения и эффективно управляет существующими и вновь приобретенными корпоративными знаниями.
Несмотря на то что многие прогнозируют скорую гибель RAG по мере дальнейшей эволюции и развития LLM, я по-прежнему считаю, что технология RAG сохранится. RAG по своей природе дополняет LLM, что обеспечивает ее долгосрочную актуальность и успех в различных приложениях.
Векторные базы данных — основа извлечения в RAG
В реальных производственных приложениях RAG-поиск часто тесно интегрирован с векторными базами данных, что привело к разработке популярного решения Retrieval Augmented Generation, известного как CVP stack, включающего технологии ChatGPT, Vector Database и Prompt-as-code. Это инновационное решение использует эффективные возможности векторных БД по поиску по сходству для повышения производительности LLM. Система RAG может быстро извлекать релевантные записи знаний из векторной базы данных, преобразуя пользовательские запросы в векторные эмбеддинги. Такой подход позволяет LLM получать доступ к самой актуальной информации, хранящейся в базе данных, при ответах на пользовательские запросы, эффективно решая такие проблемы, как задержки в обновлении знаний и периодические неточности в генерируемом контенте, часто называемые «галлюцинациями».
Помимо популярных векторных баз данных и БД, на рынке доступны многие другие технологии поиска, включая поисковые системы, реляционные базы данных и документные базы данных. Однако векторные базы данных являются наиболее предпочтительным вариантом в реализациях RAG благодаря их превосходным возможностям эффективного хранения и извлечения огромных объемов векторных эмбеддингов. Эти векторы, создаваемые моделями машинного обучения, представляют широкий спектр типов данных, включая текст, изображения, видео и звуки, одновременно фиксируя сложные семантические детали.
Ниже приведен сравнительный анализ векторных БД с другими технологическими вариантами в информационном поиске, подчеркивающий, почему векторные БД стали предпочтительным выбором при создании RAG-приложений.
| Категория | Поисковые системы | Реляционные базы данных | Документные базы данных | Векторные базы данных |
| Основные продукты | Elasticsearch | MySQL | MongoDB | Milvus |
| Принцип реализации | Использует инвертированное индексированиедля быстрого текстового поиска с ограниченными возможностями векторного поиска | Использует стандартизированные модели данных и SQL для оптимальной обработки транзакций, испытывает трудности при работе с неструктурированными данными | Хранит данные в формате JSON, предлагая гибкие модели данных и базовый полнотекстовый поиск, но ограниченные возможности семантического поиска | Специально разработана для высокоразмерных векторов, использует алгоритмы Approximate Nearest Neighbor (ANN) для эффективного поиска семантического сходства |
| Сценарии использования | Идеально подходит для полнотекстового поиска и простого анализа данных | Лучше всего подходит для приложений, требующих высокой согласованности и сложного управления транзакциями | Хорошо подходит для быстрой разработки и сред с частыми изменениями модели данных | Оптимально подходит для поиска на основе неструктурированных данных, таких как поиск изображений и семантический поиск текста |
| Эффективность поиска по большим векторным наборам данных (чем выше, тем лучше) | Средняя | Низкая | Низкая | Высокая |
| Способность к мультимодальному обобщению (чем выше, тем лучше) | Средняя | Низкая | Низкая | Высокая |
| Пригодность для поиска в RAG(чем выше, тем лучше) | Средняя | Низкая | Низкая | Высокая |
| Общие затраты(чем ниже, тем лучше) | Высокие | Высокие | Средние | Низкие |
Сравните векторные базы данных с другими технологиями поиска информации
Как показано в таблице выше, векторные базы данных имеют преимущества в следующих областях:
Принцип реализации: Векторы кодируют семантические значения, а векторные БД декодируют семантику запросов с использованием моделей глубокого обучения, выходя за рамки простого поиска по ключевым словам. Точность семантического понимания улучшилась благодаря достижениям ИИ, что сделало векторное расстояние стандартной мерой семантического сходства в NLP и закрепило embeddings как предпочтительный формат для управления различными типами данных.
Эффективность поиска: Высокоразмерные векторы позволяют применять продвинутые методы индексирования и квантования, которые значительно повышают скорость поиска и снижают требования к хранению. Векторные БД могут горизонтально масштабироваться для управления растущими объемами данных, сохраняя быстрое время отклика, что важно для RAG-систем, работающих с новыми данными и большими объемами релевантных данных.
Способность к обобщению: В отличие от традиционных баз данных, которые в основном обрабатывают текст, векторные БД хранят и обрабатывают различные типы неструктурированных данных, включая изображения, видео и аудио. Эта универсальность повышает гибкость и функциональность RAG-систем.
Совокупная стоимость владения: Векторные БД проще развертывать и интегрировать с существующими фреймворками машинного обучения благодаря простой настройке и полноценным API. Эта доступность в сочетании с более низкими общими затратами делает их фаворитом среди разработчиков RAG-приложений.
Улучшение векторных баз данных для более производительных RAG-приложений
Векторные БД являются фундаментальной технологией поиска в RAG-системах. Однако по мере того как разработчики создают все более сложные RAG-приложения и используют их в производственных средах, их потребность в более качественных и более точных ответах на пользовательские запросы растет, что создает вызовы для векторных баз данных.
RAG use case.png
Стандартный процесс построения Retrieval Augmented Generation обычно включает несколько этапов: предварительную обработку данных посредством сегментации, очистки данных и embedding; построение и управление индексами; а также использование векторного поиска для нахождения похожих сегментов с целью улучшения генерации prompt. Большинство векторных БД выполняют построение индексов и управление ими, а также поиск векторных данных, и лишь немногие, например Milvus, предоставляют встроенные функции embedding. Поэтому качество поиска векторных данных напрямую влияет на релевантность и эффективность контента, генерируемого LLM.
Для повышения качества поиска векторных БД появляется множество инженерных оптимизаций, включая выбор подходящих размеров chunk, определение необходимости перекрывающихся сегментов, выбор подходящих моделей embedding, добавление тегов контента, интеграцию поиска на основе лексикона для гибридного подхода к семантическому поиску и выбор rerankers. Многие из этих задач можно было бы интегрировать в векторные БД.
В частности, векторные базы данных должны улучшить следующие области:
Высокая точность поиска: Векторные БД должны превосходно справляться с точным извлечением наиболее релевантных документов или фрагментов данных на основе пользовательских запросов посредством поиска по векторному сходству. Это подразумевает обработку и интерпретацию сложных семантических связей в высокоразмерных векторных пространствах, чтобы гарантировать, что извлеченный контент точно соответствует запросу пользователя.
Быстрый отклик: Для обеспечения оптимального пользовательского опыта векторные БД должны выполнять поиск за миллисекунды. Это требует способности быстро получать доступ к информации и извлекать ее из обширных наборов данных. По мере увеличения объемов данных и роста сложности запросов эти базы данных должны гибко масштабироваться, обрабатывая более крупные наборы данных и более сложные запросы, при этом стабильно поддерживая надежную эффективность recall.
Работа с мультимодальными данными: Учитывая расширяющийся спектр сценариев использования, векторные БД должны не только управлять текстовыми данными, но и обрабатывать изображения, видео и другие типы мультимодальных данных. Для этого требуется поддержка эмбеддингов из различных типов данных и способность эффективно извлекать информацию на основе разнообразных модальных запросов.
Интерпретируемость и отладка: Также важно, чтобы векторные БД предлагали надежные инструменты диагностики и оптимизации для устранения проблем, когда результаты извлекаются неэффективно.
Подведение итогов
Поскольку спрос на приложения Retrieval Augmented Generation (RAG) продолжает расти, разработчики все чаще используют технологию RAG для самых разных целей, прежде всего для сбора контекстно релевантной информации. Это растущее внедрение способно изменить множество отраслей, резко повысив эффективность и фактическую точность поиска информации и приобретения знаний, в конечном итоге меняя то, как организации получают доступ к данным и используют их.
Векторные БД, хотя пока и используются относительно недостаточно, обладают огромным потенциалом в качестве базовой инфраструктуры для систем RAG. Среди них особенно выделяется векторная база данных Milvus, которая активно решает и преодолевает проблемы, связанные с разработкой и совершенствованием приложений RAG. Используя знания разработчиков Generative AI, Milvus постоянно совершенствует свои возможности, чтобы лучше удовлетворять потребности индустрии искусственного интеллекта.
В моем следующем посте я подробно рассмотрю open-source векторную базу данных Milvus, расскажу о ее новейших возможностях и объясню, почему она является идеальным выбором для создания корпоративных RAG-приложений. Следите за новыми материалами.
Читать далее

Build Multimodal Search for 3D Assets with Tripo and Zilliz Cloud
Generate 3D assets with Tripo, then search them by text, image, and metadata with multimodal embeddings and Zilliz Cloud.

VDBBench Adds Cost-Aware Benchmarking for Vector Databases
Compare Zilliz Cloud, Pinecone, and turbopuffer with VDBBench cost-aware vector database benchmarks across latency, freshness, multitenancy, and cold starts.

Similarity Metrics for Vector Search
Exploring five similarity metrics for vector search: L2 or Euclidean distance, cosine distance, inner product, and hamming distance.



