Vector databases на собеседовании Data Scientist
Карьерник — 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.
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 часто достаточен.
Hybrid search
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.
Связанные темы
- Embeddings на собесе DS
- RAG на собесе DS
- Two-tower DSSM для DS
- Cosine vs Euclidean для DS
- Подготовка к собесу Data Scientist
FAQ
Когда не нужен dedicated vector DB?
Маленький dataset (< 1M vectors) — pgvector / FAISS in-memory. Малая нагрузка — Elasticsearch с vector type.
Это официальная информация?
Нет. Статья основана на документации Pinecone / Qdrant / pgvector / Weaviate.
Тренируйте Data Science — откройте тренажёр с 1500+ вопросами для собесов.