Строка 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), проводят соревнования по векторному поиску в больших базах данных. |
| | | |
| == Векторные СУБД == | | == Векторные СУБД == |