Векторная база данных
Векторная база данных хранит векторные представления объектов и позволяет искать близкие векторы по выбранной мере сходства или расстояния. Для текста такие векторы обычно создает модель эмбеддингов. Поиск возвращает записи-кандидаты, связанные с представлением запроса; он не доказывает достоверность их содержимого и не отвечает на вопрос.
Автор: Ai Flowi · Опубликовано
Вектор служит представлением для поиска, а связанная запись содержит полезные сведения: например, фрагмент текста, идентификатор документа и метаданные. Сохранять эту связь необходимо: список близких числовых значений без исходного содержимого нельзя использовать как источник подтверждений в приложении, отвечающем на вопросы по документам.
Чем хранение векторов отличается от хранения обычных записей?
Обычный поиск записи может найти регламент по точному идентификатору. Векторный запрос может искать фрагменты, связанные с фразой «можно ли выносить оборудование за пределы площадки?», даже если в документе использованы другие слова. Эти операции отвечают на разные вопросы и могут сосуществовать в одном приложении.
Точные идентификаторы, права доступа и актуальные версии документов по-прежнему требуют явной обработки. Семантически близкий регламент другого подразделения не обязательно применим. Векторная база данных не отменяет обычную фильтрацию или выбор записей из авторитетного источника.
Статья о текстовых эмбеддингах объясняет, как текст становится представлением. Семантический поиск рассматривает задачу релевантности. Эта статья посвящена хранению таких представлений и извлечению связанных с ними записей.
Загрузка, индексация и запросы
При загрузке приложение выбирает исходные материалы, подготавливает объекты для хранения и получает векторы от модели эмбеддингов. Оно сохраняет соответствие каждого вектора исходной записи. Индекс — поисковая структура базы данных, позволяющая находить кандидатов, не сводя каждый запрос к точному поиску текста.
При запросе приложение представляет вопрос в совместимом пространстве эмбеддингов и запрашивает у хранилища близкие записи. Выбранная мера определяет оценку близости. Результат извлечения должен содержать достаточно связанного содержимого и сведений о происхождении, чтобы следующий этап мог оценить релевантность.
Некоторые системы используют приближенный поиск ближайших соседей, чтобы сократить объем работы; другие поддерживают точные сравнения или несколько вариантов индекса. Представленный здесь каталог не указывает конкретный алгоритм индекса, компромиссы, связанные с точностью, или ограничения масштабируемости. Не выводите эти свойства из общего обозначения «векторное хранилище».
Обновление документа требует согласованности его сохраненного представления и связи с источником. Иначе поиск может вернуть вектор старого текста, а приложение — показать новую запись. Смена модели также может потребовать повторного создания сохраненных векторов; совпадение размерности само по себе не означает семантической совместимости.
По теме: MongoDB Atlas: векторный поиск — интеграция.
Небольшой пример поиска по документам
Представьте учебную библиотеку технического обслуживания с первоначальной инструкцией для насоса, ее исправленной версией и отозванной заметкой по устранению неисправностей. Задача хранения — проследить связь возвращенного фрагмента с версией, по которой создан его вектор. Актуальный файл на диске не доказывает, что ему соответствуют все доступные для поиска записи.
| Сохраненный объект | Связанные сведения | Проверка извлечения |
|---|---|---|
| Первоначальная инструкция для насоса | Идентификатор фрагмента и первоначальная версия. | Выведена ли эта запись из использования после исправления? |
| Исправленная инструкция для насоса | Обновленный текст и связь с версией. | Соответствует ли возвращенный фрагмент исправленному источнику? |
| Отозванная заметка по устранению неисправностей | Идентификатор источника и запись об отзыве. | Отсутствует ли она в активном наборе для поиска? |
Это пример проверки жизненного цикла источников; операции базы данных и ранжирование не измерялись. Нахождение исправленной инструкции — лишь одна проверка; первоначальные и отозванные записи тоже нужно проверить. Поиск, который возвращает новый фрагмент первым, все еще может оставлять устаревшие фрагменты доступными для другого запроса.
Chroma DB в каталоге AI Flowi Workflow
Используйте справочник интеграции Chroma, чтобы узнать о загрузке, поиске, сохранении данных, полях подключения и выходных портах Chroma DB.
Раздел о векторных представлениях объясняет различие между созданными векторами и подключениями к моделям эмбеддингов.
При хранении сохраняйте запись связи с источником, содержащую идентификатор документа, идентификатор фрагмента и версию, использованную для создания каждого объекта поиска. Это предлагаемые поля учета, а не заявленная схема Chroma. При изменении фрагмента запись позволяет определить, какое представление нужно заменить. Без нее актуальный исходный файл и старый проиндексированный фрагмент могут сосуществовать без очевидного способа проследить несоответствие.
Проверка пересборки должна сравнивать ожидаемый состав источников с тем, что коллекция фактически возвращает для известных объектов. Один запрос не доказывает удаление устаревших записей, поэтому проверяйте удаление с помощью средств проверки хранилища, описанных в его документации. Каталог не предоставляет такой способ и не обещает атомарную замену; сохраняйте первоначальный перечень источников, пока новая коллекция не проверена.
документировано в каталоге; Ai Flowi не тестировала в производственной среде
Найдите Chroma DB в каталоге компонентов; справочник интеграции описывает настройку развертывания, а раздел подключений к моделям — ваш собственный аккаунт/API-ключ провайдера эмбеддингов и отдельную оплату их создания.
Вывод из использования и пересборка библиотеки инструкций для насоса
Первоначальная инструкция для насоса, ее замена и отозванная заметка требуют разных решений по жизненному циклу. Вывод первоначальной инструкции из использования должен исключить ее из текущего поиска, сохранив идентификатор в истории источника. Замена должна ссылаться на исправленный текст. Отзыв должен исключить заметку из допустимого набора, даже если новой заметки взамен нет.
Рядом с результатами проверки хранилища ведите ожидаемый перечень: какие версии источников входят в активную библиотеку, какие заменены и какие отозваны. Это предлагаемая запись для проверки, а не схема базы данных, определенная каталогом. Она задает конкретный состав, который должна воспроизвести пересборка. Сравнение только числа объектов может не обнаружить замену устаревшей инструкции посторонним фрагментом.
Частично пересобранная библиотека может содержать исправленную инструкцию для насоса, но не иметь другого ожидаемого фрагмента того же источника. Проверяйте полноту покрытия источника вместе со связью с версией. И наоборот, полный набор фрагментов, привязанный к неверной версии, остается несогласованным. Успешное извлечение одного исправленного абзаца не решает ни один из этих вопросов.
Если пересборка вызвана сменой модели эмбеддингов, рассматривайте сохраненные векторы и представление запросов как согласованный комплект. До проверки нового набора сохраняйте сведения, позволяющие однозначно определить прежний набор; иначе при неудачном изменении может не оказаться ясно, какую коллекцию восстанавливать. Перечень источников задает входные данные пересборки, а конфигурация эмбеддингов объясняет, как из них получено представление для поиска.
Используйте средства проверки настроенного хранилища, чтобы убедиться, что выведенные из использования материалы о насосе больше не допускаются к поиску; не делайте вывод об удалении по их отсутствию в одном списке результатов. Для оценки релевантности после этих проверок жизненного цикла обратитесь к оценке RAG.
Типичные ошибки и дополнительное чтение
Не считайте близость векторов проверкой фактов, имя коллекции — подтверждением прав доступа пользователя, а настройку сохранения данных — политикой резервного копирования. Используйте точные запросы записей для точных идентификаторов, если именно этого требует задача. Помощь по документам на основе поиска требует проверки релевантности до формирования объяснения.
Руководство по базам знаний описывает существующую настройку продукта, а не эти принципы хранения. Используйте инженерию контекста для выбора извлеченных фрагментов и проектирование промптов для формулировки задачи ответа. Контракт Agent и сценарии использования описывают другие уровни приложения; сама векторная база данных не генерирует ответ.