Заявка
AI и LLM

Vector Database

Векторная БД · хранилище эмбеддингов

Векторная база данных (vector database) — это хранилище, где данные лежат в виде эмбеддингов и ищутся по смысловой близости. Основа семантического поиска и памяти AI-приложений: Pinecone, Weaviate, Qdrant.

Vector database — это специализированное хранилище, которое держит объекты в виде числовых векторов и находит похожие по расстоянию между ними, а не по точному совпадению строк. Что это значит на практике: текст, картинку или аудио сначала прогоняют через модель-энкодер, получают эмбеддинг из сотен или тысяч чисел, и запрос ищется по близости этих чисел.

Основой такое хранилище становится там, где нужен семантический поиск и долгая память у AI-приложений: RAG-системы, чат-боты, рекомендации, поиск дубликатов. Внутри работает приближённый поиск ближайших соседей (ANN) с индексами вроде HNSW или IVF, а близость считают через косинусное расстояние или скалярное произведение. Готовые движки — Pinecone, Weaviate, Qdrant.

§ 01Зачем нужен

Обычная реляционная БД ищет по точному значению поля или по LIKE, а векторное хранилище отвечает на вопрос вида найди похожее по смыслу. Запрос преобразуют в эмбеддинг тем же энкодером, что и документы, и движок возвращает top-k ближайших векторов с оценкой близости. На этом строятся RAG (подмешивание релевантных фрагментов в промпт LLM), семантический поиск по базе знаний, дедупликация и рекомендации. Для чего нужно ещё: дать модели доступ к данным, которых не было в обучении, без дообучения.

§ 02Как устроен

Каждая запись — это вектор фиксированной размерности плюс метаданные и ссылка на исходный объект. Размерность задаёт модель: например, 384, 768 или 1536 чисел. Поиск по всем векторам напрямую (brute force) точен, но медленный, поэтому применяют приближённый ANN-индекс:

  • HNSW — граф ближайших соседей, быстрый отклик при высокой точности;
  • IVF — разбиение на кластеры, поиск идёт только по нужным;
  • PQ — сжатие векторов для экономии памяти.

Метрика близости — косинус, евклидово расстояние или dot product; она выбирается один раз под конкретные эмбеддинги.

Кейс из практики

поиск 900мс → 120мс — B2B SaaS база знаний на 2,1 млн документов перенесла семантический поиск на Qdrant с HNSW-индексом и эмбеддингами text-embedding-3-large. Латентность запроса упала с 900 до 120 мс за 5 недель. Замер через p95 в Grafana, точность top-5 выросла до 0,87.

До и после

релевантные ответы +38% — Медиахолдинг с архивом 400 тыс. статей внедрил RAG-память на Pinecone для чат-бота редакции вместо keyword-поиска в Elasticsearch. Доля релевантных ответов выросла на 38% за 3 месяца. Оценка по ручной разметке 500 запросов и метрике recall@10.

§ 03Как настраивается

Старт одинаков у большинства движков: создать коллекцию (index), указать размерность вектора и метрику расстояния. Дальше данные загружают операцией upsert — вектор, его id и метаданные одним объектом. К каждой записи крепят фильтры (например, lang или user_id), чтобы сузить выдачу до релевантного набора ещё до расчёта близости. Эмбеддинги считают отдельным сервисом-энкодером; критично держать одну и ту же модель на индексации и на запросе, иначе векторы окажутся в разных пространствах и близость потеряет смысл.

§ 04Подводные камни

Смена модели-энкодера обесценивает старые данные: придётся переиндексировать всю базу, потому что новые и старые векторы несравнимы. ANN-индекс возвращает приближённый результат — часть по-настоящему близких объектов может не попасть в top-k, и это регулируют параметрами вроде ef_search у HNSW, балансируя скорость и полноту. Чистый векторный поиск проседает на точных совпадениях, артикулах и редких терминах, поэтому его комбинируют с обычным полнотекстовым в гибридную схему. Отдельно растёт цена памяти: миллионы векторов по 1536 чисел требуют либо сжатия через PQ, либо шардирования.

Частые ошибки
01
Замена реляционной СУБД векторной базой целиком. Команда переносит все данные в Qdrant и пытается делать точные выборки по id и join. Векторная база ищет по близости, а не по равенству — точность запросов и скорость фильтрации страдают, растёт стоимость инфраструктуры. Как правильно: Используйте векторную базу только для семантического поиска. Держите факты и транзакции в PostgreSQL, связывайте по id.
02
Индексация чанков без учёта размера окна. Документы режут на куски по 2000+ токенов и кладут в индекс as is. При поиске в контекст LLM попадает мусор вокруг нужного факта, релевантность ответов падает, а бюджет на токены растёт вдвое. Как правильно: Настройте чанкинг на 200–500 токенов с перекрытием 10–15%. Проверяйте качество на реальных запросах пользователей.
03
Оценка поиска по глазам вместо метрик. Качество ретривера меряют парой ручных запросов «вроде находит». Без recall@k и MRR регрессия после смены модели эмбеддингов остаётся незамеченной — доля релевантных ответов тихо падает на 20–30%. Как правильно: Замеряйте recall@k и MRR на размеченном наборе из 50–100 пар «запрос-документ». Прогоняйте тест при каждой смене модели эмбеддингов.
Часто спрашивают

Векторная база данных — частые вопросы

Векторная база данных простыми словами — что это?

+

Векторная БД — это хранилище, где данные лежат в виде эмбеддингов (числовых векторов) и ищутся по смысловой близости, а не по точному совпадению слов. Такое хранилище эмбеддингов держит рядом объекты со схожим смыслом, поэтому запрос ‘щенок’ найдёт документы про ‘собаку’. Основа семантического поиска и памяти AI-приложений.

Сначала модель превращает текст, картинку или звук в вектор из сотен чисел, например 768 или 1536 измерений. Затем движок сравнивает векторы по косинусной близости и алгоритмом ANN (обычно HNSW) быстро находит ближайших соседей за миллисекунды даже на миллионах записей. Так работает поиск по смыслу.

Обычная реляционная база ищет по точному значению и фильтрам (WHERE), а база эмбеддингов ищет по расстоянию между векторами и возвращает ближайшие по смыслу объекты. SQL отвечает на ‘где равно X’, векторное хранилище — на ‘что похоже на X’. Часто их совмещают: гибридный поиск объединяет фильтры и близость.

Она служит внешней памятью для LLM: в подходе RAG модель сначала достаёт из векторного хранилища релевантные фрагменты и отвечает по ним, а не только по обучающим данным. Это снижает галлюцинации и позволяет работать с приватными документами компании. Без неё чат-бот забывает контекст за пределами окна.

Зависит от инфраструктуры: Pinecone — полностью управляемое облако без забот о серверах, Qdrant — open-source на Rust с быстрым self-hosted развёртыванием, Weaviate — open-source с гибридным поиском и модулями встроенной векторизации. Для прототипа хватит облака, для контроля над данными берут self-hosted вариант.

Не нашли ответ?

Спросите Андрея Гусарова — отвечаю в течение 1-2 рабочих дней.

Нажимая, вы соглашаетесь с обработкой данных.