Введение в векторные базы данных 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 Фича Форм предлагает совместный фичер стор и фреймворк. Решает проблему хранения и обработки данных. Работает с табличными и неструктурированными данными.
Перестройка индекса 46:01 Вектора изменились, нужно перестраивать индекс. Пространство изменилось, некорректные результаты без перестройки. Нет алгоритмов для уточнения, нужно перестраивать.
Демонстрация использования векторных баз данных 47:25 Пример с векторной базой данных хрома. Использование датасета с научными статьями. Сравнение ответов модели с и без использования векторных баз данных.
Модель и датасет 48:42 Использование модели от церебс. Модель знает русский язык и имеет 3 миллиарда параметров. Тестирование модели без использования векторных баз данных.
Викторизация данных 50:32 Использование профрайс модели от с. трансформерс. Викторизация данных для поиска похожих статей. Построение индекса занимает одну строчку.
Векторный поиск 52:09 Генерация релевантных ответов на вопросы. Пример с вопросом о методике определения значимости научных публикаций. Векторный поиск улучшает качество ответов.
Вопросы и ответы 55:27 Вопросы о практике использования векторных баз данных. Обсуждение бенчмарков и алгоритмов. Рекомендации по улучшению качества ответов.
Фичестеры и векторные базы данных 1:00:48 Связь фичестеров и векторных баз данных. Фичестеры используются для табличных данных, векторные базы для текстов. Фичестеры могут быть полезны для комплексных задач.
Завершение 1:02:36 Вопросы и ответы завершены. Призыв писать в телеграм или на почту для вопросов. Благодарность за участие и прощание.