Перетащите точку запроса и переключите метрики, чтобы увидеть, как меняются ближайшие соседи.
Измеряет прямолинейное расстояние между двумя точками. Концентрические окружности показывают равноудаленные зоны — все точки на одной окружности находятся на одинаковом «расстоянии» от запроса.
Метрика — это просто функция, которая принимает два вектора и возвращает одно число, указывающее, насколько они похожи (или отличаются). Векторный поиск, по сути, заключается в том, чтобы «найти K векторов с наилучшим показателем метрики по отношению к моему запросу». Всё остальное — индексы, кластеры, графы — это всего лишь вспомогательные средства, позволяющие избежать вычисления этого показателя для каждого вектора в базе данных.
Выбранная вами метрика определяет, что означает «похожий» для ваших данных. Два вложения могут быть «близкими» по одной метрике и «далекими» по другой — одни и те же данные, разный ответ. Именно поэтому этот выбор происходит ещё до того, как вы начнёте строить индекс.
Попробуйте следующее: перетащите точку запроса ближе к началу координат и переключайтесь между режимами «Cosine» и « L2 ». Понаблюдайте, как режим «Cosine» учитывает только «направление», в котором указывает запрос — точки, расположенные на противоположной стороне от начала координат, могут быть «близкими» в режиме « L2 », но «далекими» в режиме «Cosine». Эта визуализация и есть суть всей концепции.
В « Milvus » метрика задаётся для каждого индекса с помощью « metric_type » — L2, IP, или COSINE для плотных векторов — при создании индекса. Каждый поиск по этой коллекции затем использует ту же функцию, с которой вы только что работали выше. Единственное и самое надёжное правило: используйте метрику, с которой была обучена ваша модель вложения, которая указана практически на каждой карточке модели.
Два полезных советов. Большинство современных API для встраивания текста (OpenAI, Cohere, Voyage и большинство «sentence-transformers») генерируют векторы, предназначенные для косинусного сходства. И если ваши векторы нормированы до единичной длины, косинус и скалярное произведение возвращают одинаковые ранжирования — поэтому IP использование нормализованных векторов является распространённой и немного более экономичной альтернативой COSINE.
Используйте косинусное сходство (metric_type COSINE в Milvus). Практически все современные модели вложения текста — включая семейство text-embedding-3 из OpenAI — обучаются на косинусном сходстве. Поскольку вложения OpenAI нормированы до единичной длины, скалярное произведение (IP) дает идентичные ранжирования и является хорошей альтернативой.
Косинусное сходство измеряет только угол между двумя векторами, игнорируя их длины. Внутреннее произведение (скалярное произведение) учитывает как совпадение направлений, так и величину, поэтому более длинный вектор, направленный в том же направлении, получает более высокий балл. Для векторов, нормализованных к единице, эти два понятия математически эквивалентны.
Нет. Метрика встраивается в индекс на этапе построения. Чтобы сменить метрику, необходимо удалить индекс и пересоздать его с новым metric_type. Оценки, полученные с использованием разных метрик, также несопоставимы друг с другом, поэтому не следует смешивать их при постобработке результатов.
Скорость по сути одинакова — « L2 », « IP » и «cosine» требуют одного прохода по вектору. Важна именно точность извлечения: поиск с использованием метрики, отличной от той, на которой была обучена ваша модель вложения, незаметно ухудшает качество результатов, зачастую драматически.
Узнайте больше: ознакомьтесь с документацией по метрикам сходства, чтобы увидеть полный список метрик, поддерживаемых Milvus, включая метрики Хэмминга и Жаккара для бинарных векторов и BM25 для полнотекстового поиска.
Сравнение методов перебора и кластерного поиска в табличном виде. Настройка параметра « nprobe » в режиме реального времени.
Посмотрите, как шаг за шагом происходит поиск по многослойному графу — от «скачков по магистрали» до «локальных прогулок».
Посмотрите, как PQ-in-RAM + full-vectors-on-SSD позволяет выполнять поиск в наборах данных объемом в миллиарды записей на ноутбуке.