Vector databases на собеседовании Data Scientist

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.

Зачем разбирать на собесе

Vector DBs — must-have для RAG / semantic search. На собесе DS: «как работает vector db», «отличие от Postgres», «RAG architecture».

Что хранят vector DBs

Embeddings — числовые векторы (768, 1024, 1536 dim) от documents / images / audio.

Запрос. «Найти top-K векторов, близких к query vector» (cosine / dot / euclidean similarity).

Применение.

  • Semantic search (вместо BM25).
  • Recommendations.
  • RAG (retrieve documents для LLM).
  • Image / audio similarity.

Алгоритмы ANN

Brute force compare query with all — O(N) на запрос. Не масштабируется на миллиарды.

Approximate Nearest Neighbors:

  • HNSW (Hierarchical Navigable Small World). Graph-based. Быстрый, точный. Standard в большинстве vector DBs.
  • IVF (Inverted File Index). Cluster-based. Быстрый, но ниже recall.
  • PQ (Product Quantization). Compress vectors. Trades accuracy for memory.
  • LSH (Locality Sensitive Hashing). Hash-based. Старый, реже.

В практике — HNSW или HNSW + PQ для memory.

Популярные решения

Pinecone. Managed cloud, simple API. Дорого. В РФ — не доступен с 2022.

Weaviate. Open source / cloud. GraphQL API.

Qdrant. Rust, быстрый. Open source. В РФ популярен.

Milvus. Open source, large-scale. Сложный setup.

ChromaDB. Embedded, для prototyping / маленьких проектов.

FAISS. Библиотека, не БД. Для embedding в Python (не persistence by default).

pgvector. Extension Postgres.

Elasticsearch. Подходит для small-scale (10M-100M vectors), плюс text search.

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

pgvector

CREATE EXTENSION vector;

CREATE TABLE documents (
  id BIGSERIAL,
  content TEXT,
  embedding VECTOR(768)
);

CREATE INDEX ON documents USING ivfflat (embedding vector_cosine_ops);

-- search
SELECT * FROM documents
ORDER BY embedding <=> '[0.1, 0.2, ...]'
LIMIT 10;

Pros:

  • Существующий Postgres, не новая infra.
  • Combine vector search + traditional SQL.
  • ACID транзакции.

Cons:

  • Slower на > 100M vectors vs специализированные.

В small / medium проектах — pgvector часто достаточен.

Vector search. Понимает semantics.

BM25 / keyword search. Точные matches, числа, имена.

Hybrid. Combines оба, weighted score.

final_score = α · vector_score + (1-α) · bm25_score

Часто лучше pure vector, особенно на keyword-heavy queries («Apple iPhone 15 Pro»).

В Elasticsearch / Qdrant native поддержка hybrid.

RAG patterns

Standard RAG:

1. User query → embedding → vector search top-K docs.
2. Concat docs into LLM prompt.
3. LLM generates answer based on context.

Improvements:

  • Hybrid search — better recall.
  • Re-ranking — cross-encoder ранжирует top-K candidates.
  • Multi-query — generate несколько queries, объединить.
  • Hypothetical Document Embeddings (HyDE) — embed hypothetical answer, не query.
  • Contextual retrieval — Anthropic's recent technique.

RAG eval: RAGAS, retrieval recall, generation quality.

Связанные темы

FAQ

Когда не нужен dedicated vector DB?

Маленький dataset (< 1M vectors) — pgvector / FAISS in-memory. Малая нагрузка — Elasticsearch с vector type.

Это официальная информация?

Нет. Статья основана на документации Pinecone / Qdrant / pgvector / Weaviate.


Тренируйте Data Science — откройте тренажёр с 1500+ вопросами для собесов.