Семинар: Александр Волков - Погружение в Similarity Search и векторные базы данных

YOUTUBE · 25.11.2025 03:41

Ключевые темы и таймкоды

Введение в векторные базы данных

0:04
  • Семинар посвящен векторным базам данных и задачам, которые они решают.
  • Докладчик - Александр Волков из команды "Голубая".
  • Вопросы можно задавать в чат, прерывать докладчика.

Задачи и применение векторных баз данных

0:44
  • Обсуждение задачи поиска похожих объектов.
  • Векторные базы данных используются для работы с большими объемами данных.
  • План: рассмотрение задачи, кейсы использования, алгоритмы, обзор векторных баз данных и их применение к большим данным.

Пример использования в Канаде

1:55
  • Пример с фотографиями товаров для создания рекомендательной системы.
  • Использование моделей для вычисления эмбедингов объектов.
  • Применение для информационного поиска, рекомендаций контента и других задач.

Проблемы и решения для больших объемов данных

4:04
  • Проблемы с производительностью KNN для больших объемов данных.
  • Необходимость компромисса между точностью и скоростью поиска.
  • Использование алгоритмов для приближенного поиска соседей.

Методы ускорения поиска

5:38
  • Ускорение подсчета близости: уменьшение размерности векторов, использование приближенных методов.
  • Организация пространства: кластеризация, использование деревьев и графов.
  • Примеры методов: KD-Tree, Double U.

Метод Double U

8:24
  • Метод Double U от Spotify.
  • Итеративное построение разделяющих гиперплоскостей.
  • Логарифмическое время поиска и проблемы с границами.

Проблемы с границами и их решение

10:05
  • Использование очереди приоритетов или леса деревьев.
  • Алгоритм Hamming Distance для ускорения подсчета близости.
  • Высокая корреляция с косинусной близостью, но менее точная.

Пробительский лист и алгоритм Double U

11:58
  • Пробительский лист для иерархического поиска объектов.
  • Построение графа с небольшим числом соседей и малым расстоянием между вершинами.
  • Алгоритм Double U: жадный поиск ближайшего соседа.

Иерархический поиск

14:27
  • Проблема больших скоплений точек и их обход.
  • Переход к иерархичному поиску для ускорения поиска похожих векторов.

Алгоритм поиска ближайших соседей

15:11
  • Узлы попадают на верхнюю структуру с определенной вероятностью.
  • Верхний уровень разряжен, что позволяет быстро находить ближайших соседей.
  • Спуск на нижние уровни для нахождения соседей.

Частичная упорядоченность

16:11
  • Частичная упорядоченность возможна, но не обязательна.
  • Должна быть какая-то структура для нахождения соседей.

Сравнение с бинарным деревом

16:25
  • Иерархия слоев не похожа на бинарное дерево.
  • Граф разрежается на каждом уровне, что делает его многослойным.

Библиотеки для ANN

17:25
  • Популярная библиотека - FAISS, использующая GPU для создания векторного индекса.
  • Сравнение алгоритмов ANN в бенчмарке.

Векторные базы данных

18:12
  • Использование моделей для NLP и векторизация данных.
  • Векторные базы данных позволяют искать ближайших соседей и фильтровать данные по метаданным.

Преимущества векторных баз данных

19:11
  • Векторные базы данных поддерживают операции RIT UPDATE.
  • Возможность постоянного поиска даже при обновлении данных.
  • Хранение объектов и фильтрация по метаданным.

Ограничения и использование

21:33
  • Векторные индексы позволяют хранить и искать вектора.
  • Векторные базы данных расширяют возможности обычных баз данных.
  • Ограничения связаны с необходимостью викторизации данных.

Варианты векторных баз данных

23:18
  • Опенсорсные и облачные решения.
  • Примеры: Clans, Gobi, Chroma.
  • Встроенный режим для использования без хранения данных.

Популярные библиотеки

25:25
  • Mylus: поддержка GPU, множество алгоритмов поиска.
  • Livi: поддержка викторизации текста, изображений и аудио.
  • Chroma: интеграция с LLM, простота структуры.

Использование библиотек и баз данных

28:44
  • Библиотека LangChain позволяет создавать агентов на основе больших моделей.
  • Успешность базы данных можно оценить по интеграции с LockChain и другими технологиями.
  • Хрома предоставляет развертывание и взаимодействие с IR-ленками.

Проблемы с LLM и использование векторных баз данных

29:42
  • Закрытые LLM не предоставляют возможности дообучения.
  • Ограниченное контекстное окно LLM.
  • Использование векторных баз данных для расширения контекстного окна LLM.

Особенности и использование Хрома

32:22
  • Хрома написана на Rust и имеет одну из самых быстрых реализаций алгоритмов.
  • Планируется обновление для работы на GPU.
  • Архитектура Хрома включает несколько клиентов и векторные индексы.

Веспа и её особенности

33:37
  • Веспа позиционируется как полнофункциональная поисковая система.
  • Имеет множество ранжирующих алгоритмов.
  • Архитектура Веспы включает уровни приложений и векторного поиска.

Ланс и его особенности

35:25
  • Ланс использует собственный формат хранения данных.
  • Позиционируется как легковесная векторная база данных для небольших задач.
  • Написана на JavaScript и Python.

Вальт и его особенности

36:50
  • Вальт используется в основном в Японии.
  • Использует Kubernetes для построения архитектуры.
  • Применяет необычный алгоритм для векторного поиска.

Федч и его особенности

38:19
  • Федч позиционируется как надежная система хранения данных.
  • Использует протокол Raft для доступа к данным.
  • Предлагает детекцию объектов для изображений.

Пейнекон и его особенности

39:26
  • Пейнекон имеет проприетарный алгоритм поиска.
  • Интегрируется с различными торизаторами.
  • Разворачивается на AWS и Azure.

Релеванс и её особенности

40:37
  • Релеванс позиционируется как платформа для создания приложений.
  • Позволяет создавать агентов на основе LLM.
  • Удобна для визуализации и анализа данных.

Фича Форм и его особенности

42:29
  • Фича Форм предлагает совместный фичер стор и фреймворк.
  • Решает проблему хранения и обработки данных.
  • Работает с табличными и неструктурированными данными.

Бенчмарки и репозитории

43:00

Перестройка индекса

46:01
  • Вектора изменились, нужно перестраивать индекс.
  • Пространство изменилось, некорректные результаты без перестройки.
  • Нет алгоритмов для уточнения, нужно перестраивать.

Демонстрация использования векторных баз данных

47:25
  • Пример с векторной базой данных хрома.
  • Использование датасета с научными статьями.
  • Сравнение ответов модели с и без использования векторных баз данных.

Модель и датасет

48:42
  • Использование модели от церебс.
  • Модель знает русский язык и имеет 3 миллиарда параметров.
  • Тестирование модели без использования векторных баз данных.

Викторизация данных

50:32
  • Использование профрайс модели от с. трансформерс.
  • Викторизация данных для поиска похожих статей.
  • Построение индекса занимает одну строчку.

Векторный поиск

52:09
  • Генерация релевантных ответов на вопросы.
  • Пример с вопросом о методике определения значимости научных публикаций.
  • Векторный поиск улучшает качество ответов.

Вопросы и ответы

55:27
  • Вопросы о практике использования векторных баз данных.
  • Обсуждение бенчмарков и алгоритмов.
  • Рекомендации по улучшению качества ответов.

Фичестеры и векторные базы данных

1:00:48
  • Связь фичестеров и векторных баз данных.
  • Фичестеры используются для табличных данных, векторные базы для текстов.
  • Фичестеры могут быть полезны для комплексных задач.

Завершение

1:02:36
  • Вопросы и ответы завершены.
  • Призыв писать в телеграм или на почту для вопросов.
  • Благодарность за участие и прощание.