Часто встречающиеся проблемы и пути их устранения#
Слишком много открытых файлов (ошибка ОС 24)#
Контекст#
Каждому сегменту коллекции Platform V Vector DB (далее - Vector DB) требуется несколько открытых файлов. В какой-то момент можете столкнуться со следующими ошибками в журнале сервера:
Error: Too many files open (OS error 24)
Решение#
Увеличьте лимит количества открытых файлов. Например, команда изменит лимит для текущей пользовательской сессии:
ulimit -n 10000
Внимание
Команда должна выполняться до запуска сервера Vector DB.
Не удается открыть WAL метаданных коллекций#
Контекст#
При запуске экземпляра Vector DB в составе распределенной установки можно получить сообщение об ошибке следующего вида:
Can't open Collections meta Wal: Os { code: 11, kind: WouldBlock, message: "Resource temporarily unavailable" }
Решение#
Данная ошибка означает, что Vector DB не может запуститься из-за того, что коллекция не загружается. Вероятно, связанные файлы WAL недоступны, так как они уже используются другим экземпляром Vector DB.
Каждый узел должен иметь свой собственный отдельный каталог хранения, том или точку монтирования.
Созданный кластер позаботится о совместном использовании всех данных каждым узлом, размещая их в нужных местах. При прямом использовании Vector DB у каждого узла должен быть собственный каталог хранилища.
Векторы#
Максимальная поддерживаемая размерность вектора#
По умолчанию Vector DB поддерживает до 65 535 измерений, но это можно настроить для поддержки более высоких размерностей.
Максимальный объем метаданных вектора, который может храниться#
Нет никаких внутренних ограничений по размеру метаданных, однако они должны быть оптимизированы для производительности и использования ресурсов. Пользователи могут установить верхние пределы в конфигурации.
Ситуация, при которой один и тот же запрос поиска подобия давать разные результаты на разных машинах#
Да, из-за различий в аппаратных конфигурациях и параллельной обработке результаты могут немного отличаться.
Сценарий выбора правильных векторных вложений#
Это зависит от природы данных и конкретного приложения. Учтите такие факторы, как размерность, модели, специфичные для предметной области, и характеристики производительности различных вложений.
Сценарий обработки различных векторных вложений от различных поставщиков в одной коллекции#
Vector DB изначально поддерживает несколько векторов на одну точку данных, позволяя различным вложениям от различных провайдеров сосуществовать внутри одной коллекции.
Перенос вложений из другого хранилища векторов в Vector DB#
Vector DB поддерживает миграцию вложений из других хранилищ векторов, облегчая переход и внедрение функций Vector DB.
Сценарий, при котором количество проиндексированных векторов не соответствует количеству векторов в коллекции#
Vector DB не всегда необходимо индексировать все векторы в коллекции. Он сохраняет данные сегментами, и если сегмент достаточно мал, эффективнее выполнить поиск полным сканированием.
Убедитесь, что статус коллекции green, а количество непринятых к индексации векторов меньше порогового значения индексации.
Сценарий, при котором информация о коллекции показывает неточное количество точек#
API информации о коллекции в Vector DB возвращает приблизительное количество точек в коллекции. Если нужно точное число, можно использовать API подсчета точек.
Сценарий, при котором векторы в коллекции не совпадают с загруженными#
Есть две возможные причины такого поведения:
Используется метрика расстояния
Cosineв настройках коллекции. В этом случае Vector DB предварительно нормализует векторы для ускорения вычисления расстояний. Если обязательно нужно сохранить исходные векторы, рассмотрите возможность использования метрики расстоянияDotвместо нее.Используется тип данных
uint8для хранения векторов. Тип данныхuint8требует специального формата входных значений, который может оказаться несовместимым с обычным выводом моделей встраивания.
Поиск#
Обработка обновления данных в реальном времени и поиске#
Vector DB поддерживает живые обновления для векторных данных, при которых вновь вставленные, обновленные и удаленные векторы сразу доступны для поиска. Система использует полный поисковый просмотр на не сегментированных участках во время фонового обновления индексов.
Сценарий, при котором результаты поиска содержат векторы со значениями null#
По умолчанию Vector DB пытается минимизировать сетевой трафик и не возвращает векторы в результатах поиска. Для активации функции возврата векторов необходимо в методе Search/Scroll установить параметр with_vector в значение true.
Если "vector": null отображается в результатах, возможно, передаваемый вектор неверного формата или возникла проблема с тем, как был вызыван метод upsert.
Поиск без вектора#
Данный поиск реализован через метод прокрутки. Он позволяет извлекать записи на основе фильтров или даже перебирать все записи в коллекции.
Поддержка полнотекстового или гибридного поиска#
Vector DB прежде всего является векторным движком поиска, и имеет поддержку полнотекстового поиска т.к. она не ухудшает использование случаев векторного поиска. Это касается как интерфейса, так и производительности.
Vector DB умеет:
Полнотекстовые фильтры поиска
Применение полнотекстовых фильтров к поиску по вектору (то есть выполнение поиска по вектору среди записей с определенными словами или фразами)
Выполнение префиксного поиска и семантического поиска-ввода-текста
Разреженные векторы, используемые в моделях типа SPLADE или аналогичных
Многочисленные векторы, например, ColBERT и другие позднеинтерактивные модели
Комбинация нескольких видов поиска.
Vector DB не планирует поддерживать:
Методы извлечения или ранжирования, основанные не на векторах
Встроенные онтологии или графы знаний
Анализаторы запросов и другие инструменты обработки естественного языка
Всегда можно комбинировать Vector DB с любыми специализированными инструментами, которые нужны, включая полнотекстовые поисковые системы. Прочтите больше о подходе к гибридному поиску.
Коллекции#
Рекомендуемое количество коллекций#
Т.к. каждая коллекция требует дополнительных ресурсов, настоятельно избегать создания множества небольших коллекций, так как это приведет к значительным накладным расходам на потребление ресурсов.
Создание отдельной коллекции для каждого пользователя/диалога/документа антипаттерном.
Прочитайте подробнее о коллекциях, изоляции и множестве пользователей в руководстве по многопользовательскому режиму.
Сценарий загрузки большого количества векторов в коллекцию#
Ознакомьтесь с рекомендациями в руководстве по пакетной загрузке.
Возможность хранения только квантованных векторов и отбрасывание векторов полной точности#
Vector DB требуется наличие векторов полной точности для операций вроде переиндексации, пересчета оценок и прочих задач.