Векторная база данных: различия между версиями
In.wiki (комментарии | вклад) |
In.wiki (комментарии | вклад) |
||
Строка 1: | Строка 1: | ||
− | |||
'''Векторная база данных''', хранилище векторов или поисковая система векторов — это база данных, использующая [[Векторная модель|векторную модель]] для хранения векторов (списков чисел фиксированной длины) вместе с другими элементами данных. | '''Векторная база данных''', хранилище векторов или поисковая система векторов — это база данных, использующая [[Векторная модель|векторную модель]] для хранения векторов (списков чисел фиксированной длины) вместе с другими элементами данных. | ||
− | Векторные базы данных обычно реализуют один или несколько [[Алгоритм приближенного поиска ближайшего соседа|алгоритмов приближенного поиска ближайшего соседа]]<ref>{{cite web|author1=Roie Schwaber-Cohen|title=What is a Vector Database & How Does it Work|url=https://www.pinecone.io/learn/vector-database/|access-date=18 November 2023|publisher=Pinecone}}</ref><ref name=":0">{{cite web|title=What is a vector database|url=https://www.elastic.co/what-is/vector-database|access-date=18 November 2023|publisher=[[Elastic NV|Elastic]]}}</ref>, что позволяет осуществлять поиск по базе данных с помощью векторного запроса для извлечения наиболее соответствующих запросу записей. | + | Векторные базы данных обычно реализуют один или несколько [[Алгоритм приближенного поиска ближайшего соседа|алгоритмов приближенного поиска ближайшего соседа]]<ref name=":1">{{cite web|author1=Roie Schwaber-Cohen|title=What is a Vector Database & How Does it Work|url=https://www.pinecone.io/learn/vector-database/|access-date=18 November 2023|publisher=Pinecone}}</ref><ref name=":0">{{cite web|title=What is a vector database|url=https://www.elastic.co/what-is/vector-database|access-date=18 November 2023|publisher=[[Elastic NV|Elastic]]}}</ref>, что позволяет осуществлять поиск по базе данных с помощью векторного запроса для извлечения наиболее соответствующих запросу записей. |
Векторы можно рассматривать как математические представления данных в [[Многомерное пространство|многомерном пространстве]]. В этом пространстве каждое измерение соответствует признаку данных, а число измерений варьируется от нескольких сотен до десятков тысяч, в зависимости от сложности представляемых данных. Положение вектора в этом пространстве отражает его характеристики. Слова, фразы или целые документы, а также изображения, аудио и другие типы данных могут быть [[Векторизация|векторизованы]]<ref name="auto1">{{Cite web|last=|date=2023-12-26|title=Vector database|url=https://learn.microsoft.com/en-us/azure/cosmos-db/vector-database|access-date=2024-01-11|website=learn.microsoft.com|language=}}</ref>. | Векторы можно рассматривать как математические представления данных в [[Многомерное пространство|многомерном пространстве]]. В этом пространстве каждое измерение соответствует признаку данных, а число измерений варьируется от нескольких сотен до десятков тысяч, в зависимости от сложности представляемых данных. Положение вектора в этом пространстве отражает его характеристики. Слова, фразы или целые документы, а также изображения, аудио и другие типы данных могут быть [[Векторизация|векторизованы]]<ref name="auto1">{{Cite web|last=|date=2023-12-26|title=Vector database|url=https://learn.microsoft.com/en-us/azure/cosmos-db/vector-database|access-date=2024-01-11|website=learn.microsoft.com|language=}}</ref>. | ||
Строка 12: | Строка 11: | ||
Поисковым компонентом RAG может быть любая [[поисковая система]], но чаще всего он реализуется в виде векторной базы данных. Собираются текстовые документы, описывающие интересующую область, и для каждого документа или раздела документа вычисляется вектор признаков (известный как «[[эмбединг]]»), обычно с помощью сети глубокого обучения, который сохраняется в векторной базе данных. По запросу пользователя вычисляется вектор признаков запроса, и к базе данных отправляется запрос для извлечения наиболее релевантных документов. Затем они автоматически добавляются в [[контекстное окно]] большой языковой модели, и большая языковая модель приступает к созданию ответа на запрос с учетом этого контекста<ref>{{cite journal|last1=Lewis|last6=Goyal|pages=9459–9474|year=2020|journal=Advances in Neural Information Processing Systems 33|title=Retrieval-augmented generation for knowledge-intensive NLP tasks|first7=Heinrich|last7=Küttler|first6=Naman|first5=Vladimir|first1=Patrick|last5=Karpukhin|first4=Fabio|last4=Petroni|first3=Aleksandra|last3=Piktus|first2=Ethan|last2=Perez|arxiv=2005.11401}}</ref>. | Поисковым компонентом RAG может быть любая [[поисковая система]], но чаще всего он реализуется в виде векторной базы данных. Собираются текстовые документы, описывающие интересующую область, и для каждого документа или раздела документа вычисляется вектор признаков (известный как «[[эмбединг]]»), обычно с помощью сети глубокого обучения, который сохраняется в векторной базе данных. По запросу пользователя вычисляется вектор признаков запроса, и к базе данных отправляется запрос для извлечения наиболее релевантных документов. Затем они автоматически добавляются в [[контекстное окно]] большой языковой модели, и большая языковая модель приступает к созданию ответа на запрос с учетом этого контекста<ref>{{cite journal|last1=Lewis|last6=Goyal|pages=9459–9474|year=2020|journal=Advances in Neural Information Processing Systems 33|title=Retrieval-augmented generation for knowledge-intensive NLP tasks|first7=Heinrich|last7=Küttler|first6=Naman|first5=Vladimir|first1=Patrick|last5=Karpukhin|first4=Fabio|last4=Petroni|first3=Aleksandra|last3=Piktus|first2=Ethan|last2=Perez|arxiv=2005.11401}}</ref>. | ||
− | == Техники == | + | == Техники и алгоритмы == |
+ | К наиболее важным методам поиска сходства на многомерных векторах относятся: | ||
+ | |||
+ | * [[Hierarchical navigable small world]] (HNSW) | ||
+ | |||
+ | * [[Locality-sensitive hashing]] (LSH) и [[Fast Similarity Sketching]] | ||
+ | * [[Product Quantization]] (PQ) | ||
+ | * [[Инвертированный индекс]] | ||
+ | |||
+ | и комбинации этих методов. [требуется ссылка] В последних тестах производительности реализации на основе HNSW показали одни из лучших результатов<ref name=":1" /><ref name=":0" />. Такие конференции, как Международная конференция по поиску сходства и его применению, SISAP и [[Конференция по нейронным системам обработки информации]] (NeurIPS), проводят соревнования по векторному поиску в больших базах данных. | ||
== Векторные СУБД == | == Векторные СУБД == |
Текущая версия от 08:14, 25 августа 2025
Векторная база данных, хранилище векторов или поисковая система векторов — это база данных, использующая векторную модель для хранения векторов (списков чисел фиксированной длины) вместе с другими элементами данных.
Векторные базы данных обычно реализуют один или несколько алгоритмов приближенного поиска ближайшего соседа[1][2], что позволяет осуществлять поиск по базе данных с помощью векторного запроса для извлечения наиболее соответствующих запросу записей.
Векторы можно рассматривать как математические представления данных в многомерном пространстве. В этом пространстве каждое измерение соответствует признаку данных, а число измерений варьируется от нескольких сотен до десятков тысяч, в зависимости от сложности представляемых данных. Положение вектора в этом пространстве отражает его характеристики. Слова, фразы или целые документы, а также изображения, аудио и другие типы данных могут быть векторизованы[3].
Эти векторы признаков могут быть вычислены из исходных данных с помощью методов машинного обучения, таких как алгоритмы извлечения признаков, векторное представление слов[[4] или сети глубокого обучения. Цель состоит в том, чтобы семантически схожие элементы данных получали близкие друг к другу векторы признаков.
Векторные базы данных могут использоваться для поиска по сходству, семантического поиска, мультимодального поиска, рекомендательных систем, больших языковых моделей (LLM), обнаружения объектов и т. д.[3] Векторные базы данных также часто используются для реализации метода генерации, расширенной поисковыми запросами (RAG) – метода улучшения результатов, получаемых в больших языковых моделях в зависимости от предметной области.
Поисковым компонентом RAG может быть любая поисковая система, но чаще всего он реализуется в виде векторной базы данных. Собираются текстовые документы, описывающие интересующую область, и для каждого документа или раздела документа вычисляется вектор признаков (известный как «эмбединг»), обычно с помощью сети глубокого обучения, который сохраняется в векторной базе данных. По запросу пользователя вычисляется вектор признаков запроса, и к базе данных отправляется запрос для извлечения наиболее релевантных документов. Затем они автоматически добавляются в контекстное окно большой языковой модели, и большая языковая модель приступает к созданию ответа на запрос с учетом этого контекста[5].
Техники и алгоритмы[править | править код]
К наиболее важным методам поиска сходства на многомерных векторах относятся:
- Locality-sensitive hashing (LSH) и Fast Similarity Sketching
- Product Quantization (PQ)
- Инвертированный индекс
и комбинации этих методов. [требуется ссылка] В последних тестах производительности реализации на основе HNSW показали одни из лучших результатов[1][2]. Такие конференции, как Международная конференция по поиску сходства и его применению, SISAP и Конференция по нейронным системам обработки информации (NeurIPS), проводят соревнования по векторному поиску в больших базах данных.
Векторные СУБД[править | править код]
Векторная СУБД — это либо СУБД, специальной ориентированная на работу с векторными данными или СУБД общего назначения, поддерживающая векторные данный в качестве одного из формата данных.
Литература[править | править код]
Примечания[править | править код]
- ↑ 1,0 1,1 Roie Schwaber-Cohen. What is a Vector Database & How Does it Work . Pinecone. Дата обращения: 18 ноября 2023.
- ↑ 2,0 2,1 What is a vector database . Elastic. Дата обращения: 18 ноября 2023.
- ↑ 3,0 3,1 Vector database . learn.microsoft.com (26 декабря 2023). Дата обращения: 11 января 2024.
- ↑ Evan Chaki. What is a vector database? Microsoft (31 июля 2023). — «A vector database is a type of database that stores data as high-dimensional vectors, which are mathematical representations of features or attributes.»
- ↑ Lewis, Patrick; Perez, Ethan; Piktus, Aleksandra; Petroni, Fabio; Karpukhin, Vladimir; Goyal, Naman; Küttler, Heinrich (2020). "Retrieval-augmented generation for knowledge-intensive NLP tasks". Advances in Neural Information Processing Systems 33: 9459–9474. arXiv:2005.11401.