Векторная база данных: различия между версиями

Материал из 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].

Техники и алгоритмы[править | править код]

К наиболее важным методам поиска сходства на многомерных векторах относятся:

и комбинации этих методов. [требуется ссылка] В последних тестах производительности реализации на основе HNSW показали одни из лучших результатов[1][2]. Такие конференции, как Международная конференция по поиску сходства и его применению, SISAP и Конференция по нейронным системам обработки информации (NeurIPS), проводят соревнования по векторному поиску в больших базах данных.

Векторные СУБД[править | править код]

Векторная СУБД — это либо СУБД, специальной ориентированная на работу с векторными данными или СУБД общего назначения, поддерживающая векторные данный в качестве одного из формата данных.

Литература[править | править код]

Примечания[править | править код]

  1. 1,0 1,1 Roie Schwaber-Cohen. What is a Vector Database & How Does it Work. Pinecone. Дата обращения: 18 ноября 2023.
  2. 2,0 2,1 What is a vector database. Elastic. Дата обращения: 18 ноября 2023.
  3. 3,0 3,1 Vector database. learn.microsoft.com (26 декабря 2023). Дата обращения: 11 января 2024.
  4. 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.»
  5. 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.