📖

Что такое Vector Database?

Векторная база данных хранит и индексирует многомерные векторы эмбеддингов из моделей машинного обучения, обеспечивая быстрый поиск по сходству для ИИ-приложений, таких как RAG и семантический поиск.

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

Как работает векторная база данных

Когда модель машинного обучения, такая как большая языковая модель или энкодер изображений, создаёт эмбеддинг, этот вектор отправляется в базу данных вместе со ссылкой на исходный объект — фрагмент текста, файл изображения, запись о товаре и так далее. База данных строит индекс с использованием алгоритма приблизительного поиска ближайших соседей (ANN), такого как HNSW (Hierarchical Navigable Small World) или IVF (Inverted File Index) — структур, которые немного жертвуют точностью ради значительно более быстрых запросов на больших наборах данных. Во время поиска приложение отправляет свежий эмбеддинг в качестве запроса, и индекс возвращает top-k векторов, ранжированных по метрике сходства — обычно косинусному сходству, скалярному произведению или евклидову расстоянию.

Почему это важно

Традиционный поиск по ключевым словам не способен определить, что «пушистый питомец» и «домашняя кошка» означают почти одно и то же, но их эмбеддинги оказываются близко друг к другу в векторном пространстве, поэтому векторная база данных всё равно находит их как совпадения. Именно эта возможность лежит в основе современного семантического поиска, рекомендательных систем, поиска изображений и аудио, обнаружения аномалий и этапа извлечения в Retrieval-Augmented Generation (RAG), где LLM опирается на документы, полученные из векторного хранилища. Без специально разработанного индексирования сравнение запроса с миллионами векторов по одному было бы слишком медленным для продакшн-нагрузки.

Основные типы и примеры

  • Специализированные векторные базы данных: движки, созданные специально для этой задачи, такие как Milvus, Qdrant, Weaviate и Pinecone, с самого начала спроектированные вокруг ANN-индексов.
  • Библиотеки векторного поиска: лёгкие движки, такие как FAISS и Annoy, которые работают внутри приложения, а не как отдельный сервис.
  • Гибридные базы данных: традиционные хранилища, такие как PostgreSQL (через pgvector), Elasticsearch и MongoDB, которые добавляют векторное индексирование к существующим документным или реляционным возможностям.
  • Управляемые облачные сервисы: хостинговые предложения от крупных облачных провайдеров, которые интегрируют векторный поиск с более широкими платформами обработки данных.

Выбор между ними обычно зависит от масштаба, требований к задержке, от того, хранятся ли данные вместе со структурированными записями, и от того, какую операционную нагрузку готова взять на себя команда. Лучшие системы в этой области оцениваются на бенчмарках, таких как таблица лидеров ANN-Benchmarks, которая сравнивает полноту с количеством запросов в секунду на репрезентативных наборах данных.

Frequently Asked Questions

How is a vector database different from a traditional relational database?
A relational database stores rows and columns and is queried with exact filters and joins, while a vector database stores high-dimensional embedding vectors and is queried by similarity. Relational engines are optimized for transactional workloads; vector databases are optimized for nearest-neighbor search over dense numeric data.
Do I need a vector database to build a RAG system?
In practice, yes. Retrieval-Augmented Generation requires fetching relevant documents for a query in real time, and a vector database provides the fast similarity search that makes this feasible at scale. Some teams prototype with simple in-memory search, but production RAG systems almost always use a dedicated vector store or a hybrid database with vector indexing.
What is approximate nearest neighbor (ANN) search?
ANN search is a family of algorithms that trade a small amount of accuracy for large gains in speed when finding the closest vectors to a query. Methods such as HNSW graph indexes and IVF clustering can return results that are very close to the true nearest neighbors while running orders of magnitude faster than brute-force comparison.
How large can vector databases scale?
Production vector databases routinely index hundreds of millions to billions of vectors across multiple machines. Sharding, replication, and disk-backed indexes allow systems to grow well beyond the memory of a single server while keeping query latency low.