Облачная платформаAdvanced

О CSS Vector Search

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

В эпоху AI неструктурированные данные — такие как изображения, видео, аудио и текст — растут быстро. Традиционный поиск по ключевым словам не может эффективно обрабатывать неструктурированные данные, поскольку не способен захватывать глубокие семантические или визуальные признаки. Чтобы обеспечить эффективный поиск по неструктурированным данным, CSS предоставляет решение векторного поиска, которое обеспечивает высокопроизводительный, высокоточный поиск ближайшего соседа или приближённого поиска ближайшего соседа. Типичные сценарии использования включают поиск изображений, поиск видео, рекомендации похожих товаров, семантический поиск текста и кросс‑модальный поиск (например, поиск изображений по тексту).

Преимущества

  • Эффективный и надёжный: встроенный векторный поисковый движок CSS обеспечивает высокий пропускной поток поиска и низкую задержку. На основе нативной распределённой архитектуры Elasticsearch CSS предоставляет enterprise-grade гарантии надёжности, включая multi-replica, snapshots и контроль прав доступа.
  • Гибкая адаптация: CSS поддерживает несколько алгоритмов индексирования, включая brute-force search, graph-based algorithms (например, HNSW), product quantization (PQ) и IVF‑HNSW; а также несколько методов измерения сходства, включая Euclidean, inner product, cosine и Hamming.
  • Совместимость с экосистемой Elasticsearch: CSS vector search совместим с открытым языком запросов Elasticsearch и API. Он бесшовно интегрирует инструменты экосистемы Elasticsearch, такие как Cerebro, Kibana и Logstash; и поддерживает основные клиентские языки, такие как Python, Java, Go и C++, упрощая разработку и интеграцию.

How It Works

CSS vector search использует приближенный поиск ближайших соседей (ANN) для снижения интенсивных вычислительных нагрузок поиска k-Nearest Neighbors (k-NN), идеально балансируя эффективность поиска и точность. Key points include:

  • Reducing the candidate set: Традиционный текстовый поиск отфильтровывает нерелевантные документы с помощью обратных индексов, в то время как векторный поиск быстро извлекает потенциально релевантные векторы, используя структуры индексов, такие как графы HNSW или IVF-PQ, избегая сканирования полного набора данных. Например, HNSW использует многослойную структуру для быстрой находки ближайших соседей к вектору запроса.
  • Reducing computational complexity: Модель воронки сначала выполняет грубую квантизацию (например IVF-PQ) векторов, чтобы быстро получить набор кандидатов. Затем она выполняет тонкое извлечение или переранжирование (например, косинусное сходство) над набором кандидатов. Квантование использует алгоритм product quantization (PQ) для кодирования высокоразмерных векторов в компактные коды, уменьшая объём хранения и вычислительные накладные расходы.
  • Балансирование производительности и точности: параметры индексирования (например, количество слоёв HNSW и количество кластеров IVF) могут динамически настраиваться для компромисса между recall и задержкой запросов.

Процедура

  1. Подготовка данных: используйте AI модель (например, CNN и Transformer) для обработки ваших неструктурированных данных (например, изображений, видео и текста) и извлечения векторных признаков.
  2. Создание индекса: создайте векторные индексы в вашем кластере Elasticsearch и определите сопоставления векторных полей, включая указание размерностей векторов, алгоритмов индексирования и методов измерения схожести.
  3. Запись данных: сохраняйте векторные признаки (обычно вместе с оригинальными данными или метаданными) в эти индексы.
  4. Векторный поиск: используйте стандартный DSL запросов Elasticsearch (например, запрос KNN), чтобы передать вектор запроса (сгенерированный той же моделью) и указать число (k) ближайших соседей, которые вы ожидаете вернуть.
  5. Результат: движок векторного поиска CSS выполняет эффективный ANN‑поиск и возвращает k наиболее релевантные результаты и их оценки схожести. Ваше приложение может затем обрабатывать эти результаты (например, показывая похожие изображения или предлагая релевантные товары).

Ограничения

Только кластеры Elasticsearch 7.6.2 и 7.10.2 предоставляют встроенный движок векторного поиска CSS. Кластеры Elasticsearch CSS не поддерживают открытый векторный поиск.