База данных для ИИ (векторная база данных) — это специализированное хранилище, оптимизированное для работы с векторными представлениями данных. В отличие от традиционных реляционных баз данных, которые ищут точные совпадения по полям, векторные базы оперируют эмбеддингами — числовыми массивами высокой размерности, кодирующими семантический смысл текста, изображений, аудио или видео.
Как это работает
Процесс начинается с преобразования данных в векторы с помощью модели эмбеддингов. Например, текст «горный велосипед для бездорожья» превращается в массив из 768 или 1536 чисел, где каждое измерение отражает определённый семантический признак. Семантически близкие объекты получают близкие векторы в многомерном пространстве.
Векторная база данных индексирует эти массивы с помощью алгоритмов приближённого поиска ближайших соседей (ANN). Наиболее распространённые алгоритмы — HNSW (Hierarchical Navigable Small World), IVF (Inverted File Index) и DiskANN. При запросе система преобразует его в вектор тем же эмбеддером и находит ближайшие векторы по метрике расстояния — чаще всего косинусному сходству или евклидову расстоянию.
Зачем это нужно
Векторные базы решают фундаментальную проблему LLM: модели не знают ваших данных. Они обучены на публичной информации и не имеют доступа к внутренней документации компании, каталогу товаров или актуальным базам знаний. Векторная база заполняет этот пробел через архитектуру RAG (Retrieval-Augmented Generation): на запрос пользователя система извлекает релевантные фрагменты из хранилища и передаёт их модели как контекст для генерации ответа.
Это позволяет:
- Строить ИИ-ассистентов, отвечающих по внутренней документации без дообучения модели
- Реализовывать семантический поиск, устойчивый к опечаткам и синонимам
- Создавать рекомендательные системы, сравнивающие объекты по смыслу, а не по тегам
- Искать по разнородным данным: текстам, изображениям, аудио — в едином пространстве
Примеры
- Корпоративная база знаний: компания загружает 5000 страниц документации в векторную базу. Сотрудник спрашивает: «Как оформить возврат для клиента из ЕС?» — система находит три релевантных раздела и передаёт их LLM, который формулирует ответ.
- Подбор товаров: интернет-магазин векторизует описания товаров. Пользователь вводит «лёгкая куртка для межсезонья» — векторный поиск находит товары, семантически близкие к запросу, даже если в описании нет слова «куртка».
- Поиск по изображениям: платформа хранит эмбеддинги фотографий. Запрос «закат на море» находит изображения без ручной разметки тегами.
- Yandex Алиса Про: использует векторный поиск в YDB для персонализации ответов на основе предпочтений пользователя.
Метрики
Ключевые метрики при выборе и настройке векторной базы:
- Recall@K — доля релевантных результатов среди K найденных. Целевое значение для production: 90%+.
- Latency (P50/P99) — задержка поиска. Для интерактивных приложений приемлемо P99 до 50–100 мс.
- QPS — запросов в секунду при заданном уровне recall.
- Потребление памяти — байт на вектор. Квантизация (например, бинарная у Qdrant) даёт сжатие до 32x с небольшой потерей точности.
Типичные ошибки
- Использование векторной базы для задач, где хватит pgvector. Если у вас меньше 50–100 тысяч векторов, PostgreSQL с расширением pgvector проще и дешевле специализированного решения.
- Игнорирование гибридного поиска. Чистый векторный поиск проигрывает на точных запросах (артикулы, имена, аббревиатуры). Комбинация BM25 + вектор даёт лучший результат в большинстве RAG-сценариев.
- Векторизация всего подряд без чанкинга. Длинные документы разбиваются на фрагменты по 200–500 токенов с перекрытием. Целый документ в одном эмбеддинге размывает смысл.
- Выбор по бенчмаркам вендоров. Vendor benchmarks показывают производительность в идеальных условиях. Реальный результат зависит от ваших данных, фильтров и нагрузки.
Как улучшить
- Экспериментируйте с размером чанка и перекрытием. Для технической документации подходят фрагменты по 300–500 токенов, для юридических текстов — крупнее.
- Добавьте метаданные для фильтрации. Храните вместе с вектором дату, автора, категорию — это позволяет сузить поиск до релевантного подмножества до вычисления расстояний.
- Используйте гибридный поиск. Комбинируйте векторное сходство с BM25 или полнотекстовым поиском. Настройте вес (alpha) под ваш тип запросов.
- Применяйте квантизацию для больших объёмов. При миллионах векторов scalar или binary quantization снижает требования к памяти с приемлемой потерей recall.
- Выбирайте алгоритм индексации под нагрузку. HNSW — для низкой задержки, IVF — для быстрой сборки, DiskANN — для данных, не помещающихся в RAM.