Визуализация векторной базы данных: Feder, мощный инструмент для поиска по сходству
С помощью моделей машинного обучения (ML) мы можем легко кодировать неструктурированные данные, такие как фотографии и видео, в эмбеддинги для векторного поиска по сходству. Чтобы ускорить поиск, применяются различные индексы, такие как IVF_FLAT и HNSW. Чтобы выбрать индекс, наиболее подходящий для приложения, пользователям необходимо найти компромисс между скоростью и точностью поиска.
Чтобы избавить пользователей от этих сложностей, мы с гордостью объявляем о Feder, инструменте для визуализации алгоритмов ANNS. С Feder пользователи могут понимать различные типы индексов и их параметры беспрецедентно наглядным способом. Feder также помогает визуализировать данные из продвинутых векторных баз данных, таких как Pinecone, упрощая управление большими объемами данных.
Feder позволяет пользователям наблюдать, как устроены различные индексы, как данные организуются с использованием каждого типа индекса и как различная конфигурация параметров влияет на структуру индексирования. Кроме того, Feder также помогает визуализировать весь процесс векторного поиска по сходству и предоставляет подробную запись доступа к данным во время поиска. Он особенно полезен для анализа и визуализации сложных данных, помогая пользователям выявлять тенденции и закономерности для принятия обоснованных решений.
В настоящее время Feder поддерживает только HNSW из hnswlib. Вскоре будет поддерживаться больше индексов.
Введение в векторные базы данных
Векторные базы данных — это специализированный тип баз данных, предназначенный для эффективного хранения, управления и выполнения запросов к большим объемам векторных данных. Векторные данные представляют сложную информацию — такую как изображения, текст или аудио — в виде числовых векторов в многомерном векторном пространстве. Эти базы данных оптимизированы для поиска по сходству, позволяя пользователям находить наиболее похожие векторы для заданного вектора запроса. Эта возможность особенно ценна в таких приложениях, как распознавание изображений, обработка естественного языка и рекомендательные системы, где понимание нюансов данных имеет решающее значение.
Понимание Feder в векторных базах данных
Feder создан с использованием JavaScript. Чтобы использовать Feder для визуализации, сначала необходимо построить индекс и сохранить файл индекса из Faiss или Hnswlib. Feder может помочь в предварительной обработке и очистке данных перед визуализацией. Затем Feder анализирует загруженный файл, чтобы получить информацию об индексе, и готовится к визуализации. Feder также управляет качеством данных, хранящихся в векторных базах данных, и визуализирует его. Во время векторного поиска по сходству необходимо предоставить целевой вектор и конфигурацию параметров поиска. Затем Feder визуализирует для вас весь процесс поиска, включая преобразование данных в числовые векторы с использованием модели эмбеддингов.
federjs состоит из двух частей:
- Feder-Core
- Анализирует файлы индексов для получения подробной информации об индексах.
- Поддерживает выполнение запросов к индексам и ведет подробную запись векторов, к которым был осуществлен доступ во время запроса к индексу.
- Feder-View
- Обеспечивает визуализацию общей структуры различных индексов.
- Обеспечивает визуализацию всего процесса поиска по сходству с различными индексами.
Помимо federjs, Feder также предоставляет federpy, инструмент на Python. С federpy вы можете напрямую визуализировать структуру индекса и процесс поиска в IPython Notebook. Либо вы можете экспортировать визуализацию в HTML-файл, а затем использовать браузер для запуска веб-сервиса.
Узнайте больше о том, как использовать Feder, прочитав руководство пользователя Feder.
В этом примере использования мы используем VOC 2012, классический набор данных изображений для ML, содержащий более 17 000 изображений.
Сначала мы используем Towhee, open-source ML pipeline, чтобы закодировать изображения в наборе данных VOC 2012 в векторы. Затем мы строим индекс с помощью Hnswlib и сохраняем файл индекса. Наконец, используем Feder для визуализации. Feder оптимизирует процесс поиска без необходимости искать по всему набору данных.
Ссылка здесь предоставляет вам интерактивный пользовательский опыт, чтобы увидеть визуализацию для HNSW.
Индекс HNSW является многослойным, и каждый слой представляет собой взаимосвязанную сеть. Нижний слой охватывает все объекты данных в базе данных, а точки данных/узлы становятся более разреженными по мере продвижения к самому верхнему слою. Давайте проведем аналогию с нашей современной транспортной системой. Если вы едете из Сан-Франциско в бутик, спрятанный в Upper East Side Нью-Йорка, вы, вероятно, сначала полетите в JFK или LaGuardia, где найдете самый удобный метро, чтобы добраться до Манхэттена, а затем, вероятно, пересядете на автобус или даже Citi bike, чтобы добраться до этого района. Аналогично, если мы хотим быстро найти ближайший узел к вашей цели, мы сначала начнем поиск с самого верхнего слоя, потому что здесь поиск быстрее. Однако один недостаток заключается в том, что чаще всего верхние слои и сети не могут привести нас к нужному месту назначения или помочь найти ожидаемые результаты. Поэтому мы обращаемся к следующему слою ниже для более высокой точности.
При построении индекса HNSW один узел в самом верхнем слое будет выбран алгоритмом как точка входа для начала поиска. Feder использует параллельную обработку для повышения производительности запросов.
Ниже показана визуализация слоев 4, 3 и 2 в пятислойном индексе HNSW, построенном на наборе данных VOC 2012.
Feder предоставляет интерактивный пользовательский опыт. Поэтому вы можете выбрать любой узел, чтобы рассмотреть его более подробно. Путь, выделенный желтым, представляет собой кратчайший путь с наименьшим количеством транзитных узлов от входа до выбранного вами узла. Пути белым показывают все остальные узлы, до которых может добраться выбранный вами узел. Увеличив масштаб, вы сможете увидеть больше деталей и поймете, что чем больше слоев, тем более похожи связанные объекты. Feder также преобразует исходные данные в визуальные форматы.
Вы можете просмотреть соответствующую статистику в обзорной панели в верхнем левом углу. Параметр M определяет, до скольких других узлов выбранный узел может добраться в каждом слое. Как мы видим на скриншоте, m= 8. Это означает, что, начиная с любого случайного узла, максимальное число узлов, до которых этот случайный узел может добраться, равно 8.
Мы можем изменить значение параметров, чтобы наблюдать, как это влияет на структуру индекса.
По мере увеличения значения M структура HNSW становится более плоской. Результат изменения значения ef менее очевиден в визуализации. Фактически параметр ef влияет на сгенерированные связи во время построения индекса.
После того как вы загрузите целевое изображение для поиска, Feder отобразит весь процесс поиска с помощью анимации.
Анимация, визуализирующая весь процесс поиска по векторному сходству.
Визуализация отображает запись данных, к которым был выполнен доступ при поиске по векторному сходству. То есть вы можете видеть все векторы, которые сравнивались по их расстоянию до целевого вектора, в то время как те, которые не участвовали в этом процессе, не отображаются в анимации.
Как мы видим на визуализации, для индексов HNSW поиск начинается с самого верхнего слоя, находит ближайший к целевому узел в этом слое, а затем переходит на следующий слой вниз, если все узлы, доступные в этом слое, недостаточно близки к целевому.
Следует отметить, что поиск в нижнем слое выполняется по нескольким путям. Параметр ef определяет выбор пути поиска. Подробное введение в HNSW см. в статье "Efficient and robust approximate nearest neighbor search using hierarchical navigable small world graphs".
С помощью интерактивной визуализации мы видим, что узлы в начале пути поиска менее релевантны. Но по мере продолжения поиска ближайшего соседа точность поиска быстро возрастает. Панель статистики слева показывает, что во время поиска фактически просматривается лишь около 1% изображений (примерно 170 изображений) из общего числа 17 000 изображений в наборе данных VOC 2012. Колоссальное ускорение поиска становится возможным благодаря индексу HNSW.
Вы также можете задавать разные значения параметров индекса и генерировать новые файлы индекса, чтобы сравнивать структуру и эффективность поиска. Feder визуализирует использование векторных эмбеддингов в поиске по сходству.
- Попробуйте Attu, чтобы управлять вашей векторной базой данных с простотой в один клик
Ключевые возможности Feder
Feder — это мощный инструмент, предлагающий несколько ключевых возможностей, что делает его идеальным выбором для управления большими объемами векторных данных и выполнения запросов к ним:
Расширенный векторный поиск: Feder поддерживает сложные алгоритмы векторного поиска, включая косинусное сходство и евклидово расстояние, позволяя пользователям с высокой точностью находить векторы, наиболее похожие на заданный вектор запроса.
Масштабируемость: Спроектированный для горизонтального масштабирования, Feder способен без труда обрабатывать огромные объемы данных и высокий поток запросов, обеспечивая надежную производительность даже по мере роста вашего набора данных.
Управление данными: Feder предоставляет комплексную систему управления данными, позволяя пользователям легко управлять своими векторными данными, обновлять и поддерживать их, обеспечивая целостность и доступность данных.
Семантический поиск: Благодаря поддержке семантического поиска Feder позволяет пользователям искать векторы на основе их смысла и контекста, повышая релевантность и точность результатов поиска.
Сценарии использования Feder
Универсальность Feder делает его подходящим для широкого спектра приложений, включая:
Распознавание изображений: Feder можно использовать для разработки систем распознавания изображений, способных идентифицировать объекты, людей и сцены на изображениях, что делает его чрезвычайно ценным для приложений в сфере безопасности, розничной торговли и не только.
Обработка естественного языка: Feder может служить основой для систем обработки естественного языка, которые понимают и генерируют человеческий язык, облегчая создание таких приложений, как чат-боты, сервисы перевода и анализ тональности.
Рекомендательные системы: Feder можно применять для создания рекомендательных систем, которые предлагают пользователям продукты, услуги или контент на основе их предпочтений и поведения, улучшая пользовательский опыт и вовлеченность.
Интеграция Feder с векторными базами данных
Feder можно бесшовно интегрировать с другими векторными базами данных, чтобы создать более комплексную и надежную систему управления векторными данными. Методы интеграции включают:
Импорт/экспорт данных: Feder может импортировать и экспортировать данные из других векторных баз данных, позволяя пользователям легко переносить данные между системами и поддерживать согласованность на разных платформах.
Интеграция через API: Feder предлагает надежный API, позволяя разработчикам интегрировать его с другими векторными базами данных и приложениями, обеспечивая плавную совместимость и расширенную функциональность.
Федерация запросов: Feder может федеративно выполнять запросы в нескольких векторных базах данных, позволяя пользователям искать векторы в разных системах, тем самым расширяя охват и глубину анализа данных.
Используя эти возможности интеграции, пользователи могут улучшить управление данными и производительность запросов, принимая более обоснованные решения на основе данных.
Читать далее

Zilliz Cloud Now Available in AWS Europe (Ireland)
Zilliz Cloud launches in AWS eu-west-1 (Ireland) — bringing low-latency vector search, EU data residency, and full GDPR-ready infrastructure to European AI teams. Now live across 30 regions on five cloud providers.

DeepSeek-OCR Explained: Optical Compression for Scalable Long-Context and RAG Systems
Discover how DeepSeek-OCR uses visual tokens and Contexts Optical Compression to boost long-context LLM efficiency and reshape RAG performance.

Data Deduplication at Trillion Scale: How to Solve the Biggest Bottleneck of LLM Training
Explore how MinHash LSH and Milvus handle data deduplication at the trillion-scale level, solving key bottlenecks in LLM training for improved AI model performance.



