Векторные базы данных появились на сцене несколько лет назад, чтобы помочь в работе новой породы поисковых систем, основанных не на ключевых словах, а на нейронных сетях. Но теперь векторные базы данных играют новую роль, помогая организациям развертывать чатботы и другие приложения, основанные на больших языковых моделях (LLM), сообщает портал Datanami.

Векторная база данных — это новый тип базы данных, который становится популярным в мире машинного обучения и искусственного интеллекта. Такие базы отличаются от традиционных реляционных баз данных, таких как PostgreSQL, которые изначально были разработаны для хранения табличных данных в строках и столбцах. Они также существенно отличаются от более новых баз данных NoSQL, таких как MongoDB, которые хранят данные в виде документов JSON.

Это связано с тем, что векторная база данных предназначена для хранения и получения одного конкретного типа данных: векторных представлений (vector embeddings).

Векторы, конечно же, это числовые массивы, которые отображают различные характеристики объекта. Будучи результатом обучения в процессе МО, векторные представления являются дистиллированными репрезентациями данных обучения. По сути, они являются фильтром, через который пропускаются новые данные во время части процесса МО, связанного с выводами.

Первым крупным примером использования векторных баз данных стало их использование в поисковых системах нового поколения, а также в производственных рекомендательных системах. Например, компания Home Depot значительно повысила точность и удобство использования поисковой системы своего сайта, дополнив традиционный поиск по ключевым словам векторными методами. Вместо того чтобы требовать идеального совпадения ключевых слов (базы данных компании грешат распространенными ошибками в написании 2 млн. продуктов), векторный поиск позволяет Home Depot использовать возможности МО для определения намерений пользователя.

Но теперь векторные базы данных оказались в центре самой горячей технологической рабочей нагрузки — больших языковых моделей, таких как GPT-4 от OpenAI, LLaMA от Facebook и LaMDA от Google.

При развертывании LLM векторная база данных может использоваться для хранения векторных представлений, полученных в результате обучения модели. Храня потенциально миллиарды векторных представлений, отражающих большой масштаб обучения LLM, векторная база данных выполняет столь важный поиск сходства, который находит наилучшее соответствие между подсказкой пользователя (вопросом, который он задает) и конкретным векторным представлением.

Хотя реляционные и NoSQL-базы данных были модифицированы для хранения векторных представлений, ни одна из них изначально не была разработана для хранения и обслуживания такого типа данных. Это дает определенное преимущество нативным векторным базам данных, которые были разработаны с нуля для управления векторными представлениями, в том числе от Pinecone и Zilliz.

Zilliz является основным разработчиком Milvus, векторной базы данных с открытым исходным кодом, впервые выпущенной в 2019 г. Согласно сайту Milvus, база данных разработана в современной облачной манере и может обеспечить «миллисекундный поиск по триллионам векторных наборов данных».

На недавней конференции Nvidia по GPU-технологиям Zilliz анонсировала новый релиз Milvus 2.3. По словам представителей компании, в паре с графическим процессором Nvidia база Milvus 2.3 может работать в 10 раз быстрее, чем Milvus 2.0. Векторная база данных также может работать на смеси GPU и CPU, что, как утверждается, является новшеством.

Nvidia также объявила о новой интеграции между своей библиотекой ускорения графов RAFT (Reusable Accelerated Functions and Tools) и Milvus, а CEO Nvidia Дженсен Хуанг заявил о важности векторных баз данных.

«Рекомендательные системы используют векторные базы данных для хранения, индексации, поиска и извлечения огромных массивов неструктурированных данных, — сказал он. — Новый важный сценарий применения векторных баз данных — это большие языковые модели, используемые для получения специфической информации, запрашиваемой при генерации текста... Векторные базы данных будут важны для организаций, создающих собственные LLM».

По словам Грега Когана, вице-президента Pinecone по маркетингу, векторные базы данных могут также использоваться организациями, которые довольствуются использованием предварительно обученных LLM через API, предоставляемые технологическими гигантами,

Такие LLM, как ChatGPT, которые были обучены на огромных массивах данных из Интернета, показали себя очень хорошими (хотя и не идеальными) в генерировании надлежащих ответов на вопросы. Поскольку они уже обучены, многие организации начали инвестировать в инструменты и методы разработки предметных подсказок, чтобы заставить LLM работать лучше для их конкретных сценариев использования.

Пользователи GPT-4 могут запрашивать у модели до 32 000 «лексем» (слов или фрагментов слов), что составляет около 50 страниц текста. Это значительно больше, чем в GPT-3, которая могла обрабатывать около 4000 лексем (или около 3000 слов). Хотя лексемы имеют решающее значение в плане подсказок, векторная база данных также играет важную роль в обеспечении правильной работы LLM, считает Когана.

«Теперь вы можете вместить в запрос 50 страниц контекста, что довольно полезно. Но это все равно небольшая часть всего контекста компании, — говорит он. — Возможно, вы даже не захотите заполнять все контекстное окно, потому что это будет дороже и медленнее».

«Поэтому компаниям нужна долгосрочная память, что-то, что можно добавить к модели, — продолжает Коган. — Модель — это то, что знает язык, может его интерпретировать. Но она должна быть соединена с долгосрочной памятью, которая будет хранить информацию о вашей компании. Это и есть векторная база данных».

Он объяснил, что при наличии долговременной памяти поток данных работает немного по-другому. Вместо того чтобы отправлять вопрос непосредственно в ChatGPT (или другую LLM), он сначала направляется в векторную базу данных, которая извлекает 10 или 15 наиболее релевантных документов по данному запросу. Затем векторная база данных объединяет эти вспомогательные документы с исходным вопросом пользователя, отправляет полный пакет в качестве запроса в LLM, который возвращает ответ.

По словам Когана, результаты такого подхода превосходят результаты простого слепого задавания вопросов ChatGPT, а также помогают справиться с досадной проблемой галлюцинаций LLM.