Лекция
Привет, Вы узнаете о том , что такое векторная база данных, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое векторная база данных , настоятельно рекомендую прочитать все из категории Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL.
векторная база данных , векторное хранилище или векторная поисковая система — это база данных , которая хранит и извлекает векторные представления данных в векторном пространстве . Векторные базы данных обычно используют алгоритмы приблизительного поиска ближайшего соседа , чтобы пользователи могли искать записи, семантически похожие на заданные входные данные, в отличие от традиционных баз данных, которые в основном ищут записи по точному совпадению. Примеры использования векторных баз данных включают поиск по сходству , семантический поиск , многомодальный поиск , системы рекомендаций , обнаружение объектов и генерацию с расширенным поиском (RAG).
Векторные представления — это математические представления данных в многомерном пространстве. В этом пространстве каждое измерение соответствует характеристике данных , при этом количество измерений варьируется от нескольких сотен до десятков тысяч в зависимости от сложности представляемых данных. Каждый элемент данных представлен одним вектором в этом пространстве. Слова, фразы или целые документы, а также изображения, аудио и другие типы данных могут быть векторизованы.
Вектор может выражать что угодно: слово, продукт, изображение и даже прошлые взаимодействия пользователя с вашим приложением.
Например, если вы будете рекомендовать посетителям товары, то можете использовать для их представления вектор с сотнями измерений, каждое из которых будет выражать отдельный аспект того или иного товара (цвет, размер, цену, сезонность и так далее).
В этом случае вы можете сравнивать такие векторы для поиска схожих товаров, даже если они не будут содержать одинаковые ключевые слова.
Эти векторы признаков могут быть вычислены из исходных данных с использованием методов машинного обучения , таких как алгоритмы извлечения признаков , векторные представления слов или сети глубокого обучения . Цель состоит в том, чтобы семантически схожие элементы данных получали векторы признаков, близкие друг к другу.
К наиболее важным методам поиска сходства в многомерных векторах относятся:
и комбинации этих методов.
В последних тестах реализации на основе HNSW показали одни из лучших результатов. На таких конференциях, как Международная конференция по поиску сходства и приложениям (SISAP) и Конференция по системам обработки нейронной информации (NeurIPS) , проводились соревнования по векторному поиску в больших базах данных.
В общем виде схема работы векторных баз данных выглядит так:

На первом этапе вы преобразуете данные (текст, изображения и так далее) в векторы, используя подходящую модель вроде OpenAI или Cohere, либо библиотеку вроде SentenceTransformers.

База данных будет сохранять векторы удобным для их последующего запроса способом. Зачастую это делается с помощью техники, называемой «приближенный поиск ближайших соседей» (approximate nearest neighbors, ANN), чтобы БД не приходилось сравнивать между собой все векторы в датасете.
Можно представить этот механизм в виде гигантской карты, на которой, чем ближе находятся две точки, тем больше между ними сходство. База данных делит такие карты на области, чтобы быстро находить точки, наиболее приближенные к конкретному запросу.

При выполнении запроса ваш ввод преобразуется в вектор, и база данных ищет область карты, к которой полученный вектор относится. Обнаружив искомую область, она сможет быстро найти векторы, находящиеся рядом с вашим.
Это очень упрощенное представление, но оно позволяет понять внутренний принцип работы векторных баз данных.
Далее речь пойдет о том, как векторные базы данных измеряют сходство. Вот два популярных способа:
Но существует и много других метрик расстояния. Итоговый выбор будет зависеть от ваших данных и решаемой задачи.
Ниже я вкратце опишу типичную проблему векторных баз данных, называемую «проклятие размерности».
Когда вы работаете с векторами высокой размерности, бывает сложно эффективно реализовать их поиск и сравнение. Вдобавок к этому, вы можете сталкиваться с проблемами переобучения и шума.
Справиться с подобными сложностями можно при помощи техник уменьшения размерности, таких как метод главных компонент (principal component analysis, PCA) или t-SNE. Их применение позволит сократить число измерений, сохранив наиболее важную информацию.
К примеру, вы можете сократить 1000-мерный вектор до 100-мерного
Векторные базы данных используются в широком спектре приложений машинного обучения, включая поиск сходства , семантический поиск , многомодальный поиск , системы рекомендаций , обнаружение объектов и генерацию с расширенным поиском .
Особенно распространенным вариантом использования векторных баз данных является генерация с расширенным поиском (RAG), метод улучшения ответов больших языковых моделей, специфичных для предметной области . Компонент поиска в RAG может представлять собой любую поисковую систему, но чаще всего он реализуется как векторная база данных. Собираются текстовые документы, описывающие интересующую предметную область, и для каждого документа или раздела документа вычисляется вектор признаков (известный как « эмбеддинг »), обычно с использованием сети глубокого обучения, и сохраняется в векторной базе данных вместе со ссылкой на документ. По запросу пользователя вычисляется вектор признаков запроса, и база данных запрашивается для получения наиболее релевантных документов. Затем они автоматически добавляются в контекстное окно большой языковой модели, и большая языковая модель приступает к созданию ответа на запрос, учитывая этот контекст.
Исследование, описанное в статье про векторная база данных, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое векторная база данных и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL
Из статьи мы узнали кратко, но содержательно про векторная база данных
Комментарии
Оставить комментарий
Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL
Термины: Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL