Хайп Pinecone
Pinecone — отличный managed-сервис для тех, у кого десятки миллионов векторов и нет желания возиться с инфраструктурой. Для всех остальных — overengineering. Каждый раз когда вижу RAG-туториал, который начинается с создания Pinecone-аккаунта, я закатываю глаза.
Что у меня работает
PostgreSQL + pgvector. Это extension, который добавляет тип vector и операторы похожести. Уже умеет HNSW-индексы из коробки. До 1M векторов на типичной 4-CPU машине — тянет без проблем.
CREATE EXTENSION vector;
CREATE TABLE docs (
id BIGSERIAL PRIMARY KEY,
content TEXT,
metadata JSONB,
embedding vector(1536)
);
CREATE INDEX ON docs USING hnsw (embedding vector_cosine_ops);
Преимущества pgvector
Атомарность с основными данными. Если у вас уже Postgres — RAG-индекс лежит в той же базе, в той же транзакции. Не надо синхронизировать два хранилища, не надо учитывать eventual consistency между Pinecone и основной БД.
Стоимость. Pinecone стоит десятки-сотни долларов в месяц. pgvector — бесплатно, поверх вашего Postgres.
Hybrid search — гибрид векторного и full-text-поиска. Postgres умеет ts_vector из коробки, можно делать запросы вида «семантическое сходство + наличие конкретного термина», что часто работает лучше чистого векторного.
Когда Pinecone оправдан
Десятки миллионов векторов. Real-time запросы с очень строгим p99 (<50ms на векторном поиске). Распределённая команда, которая не хочет управлять Postgres. Multi-region replication из коробки.
Промежуточные варианты
Qdrant — self-hosted, открытый исходник, отличный API, scaling до миллионов векторов. Если pgvector становится мал, я перехожу на Qdrant, не на Pinecone. ChromaDB — для быстрых прототипов, embeded режим. Weaviate — если нужна семантическая модель данных поверх векторов.
Главное
RAG — это пайплайн, а не выбор vector store. 80% качества определяется чанкингом, embedding-моделью, query expansion и reranking — а не тем, где лежат векторы. Если у вас плохой RAG, переход с Pinecone на Qdrant ничего не починит. Чините пайплайн.