Стек технологий: что из чего собирают современные RAG-системы
В этом уроке, обзор инструментов 2026 года, из которых реально собираются продакшн RAG-системы. По каждому слою: какие есть варианты, в чём разница, когда что выбирать, сколько стоит.
Структура: Embedders → Vector DBs → Rerankers → LLMs (генератор) → Orchestration → Observability → Document parsers.
Слой 1. Embedding модели
Эмбеддер, нейросеть, которая отображает текст в вектор. Качество retrieval напрямую упирается в качество эмбеддера на ваших данных.
Managed API
| Модель | Dim | MTEB | Цена/1M tok | Языки | Особенности |
|---|---|---|---|---|---|
OpenAI text-embedding-3-large |
3072* | ~64 | $0.13 | mlтi | *Matryoshka: можно truncate до 256–1024 |
OpenAI text-embedding-3-small |
1536 | ~62 | $0.02 | multi | Best price/perf baseline |
Voyage AI voyage-3-large |
1024 | ~67 | $0.18 | multi | Топ-1 на public benchmarks 2024–2025 |
Voyage AI voyage-code-3 |
1024 | code | $0.12 | code | Специальный для исходного кода |
Cohere embed-v3 |
1024 | ~64 | $0.10 | 100+ | Sparse mode, multimodal |
Cohere embed-multilingual-v3 |
1024 | ~63 | $0.10 | 100+ | Сильный для русского |
| Anthropic | , | , | , | , | Anthropic не продаёт embeddings; рекомендуют Voyage |
Google Gemini text-embedding-005 |
768 | ~63 | $0.025 | multi | Дёшево, вертикальная интеграция с Vertex AI |
Mistral mistral-embed |
1024 | ~62 | $0.10 | EN/FR | Если вы уже на Mistral API |
Open-source / self-hosted
| Модель | Dim | MTEB | Особенности |
|---|---|---|---|
| BGE-M3 (BAAI) | 1024 | ~63 | Универсал года: dense + sparse + multi-vector в одной модели; 100+ языков; контекст до 8K |
bge-large-en-v1.5 |
1024 | ~64 | Топ для чистого английского |
multilingual-e5-large-instruct |
1024 | ~63 | Лучший для русского в open-source |
Jina jina-embeddings-v3 |
1024 | ~63 | 8K контекст, task-aware (5 режимов) |
Nomic nomic-embed-text-v1.5 |
768 | ~62 | Полностью открытые: weights + код + датасет |
mxbai-embed-large-v1 |
1024 | ~64 | Mixedbread, лицензия Apache 2.0 |
gte-Qwen2-7B-instruct |
3584 | ~70 | Очень тяжёлый (7B), но самый точный open-source |
Snowflake arctic-embed-l-v2.0 |
1024 | ~64 | Топ для retrieval-only задач |
Как выбирать
- Запустите public MTEB и
mteb-russian, но не доверяйте слепо. Прогоняйте на своих данных. - Соберите 50–200 пар (query, relevant_chunk) из своего корпуса, это ваш eval set для embedder'а.
- Sweep: прогоните 4–6 кандидатов, считайте Recall@10 и MRR. Разница между лучшим и средним может быть 10–20 пунктов.
- Цена: при 10M токенов корпуса OpenAI v3-large = $1.30, BGE-M3 self-hosted = $0 + GPU-час.
- Latency: managed API 50–200 мс, self-hosted на A10G GPU, 10–30 мс на батч 32.
Практическое правило 2026: если есть GPU и ресурсы DevOps, BGE-M3 (универсал). Если хочется managed без головной боли, Voyage-3-large или OpenAI v3. Для русского в managed, Cohere multilingual-v3.
Fine-tuning эмбеддеров под домен
Прирост 10–25% при наличии 1–10K пар (query, relevant_doc):
- sentence-transformers + MultipleNegativesRankingLoss, стандартный рецепт.
- LLM-судья генерирует synthetic пары из вашего корпуса (RAGAS, FlagEmbedding).
- Дообучаются обычно последние 2–4 слоя; full fine-tune редко окупается.
Окупается, если:
- Узкая терминология (медицина, юриспруденция).
- ≥ 1000 запросов/день.
- Цена ошибки высокая.
Слой 2. Vector DB
Хранит векторы и делает ANN-поиск (Approximate Nearest Neighbor). Под капотом, индексы HNSW (граф), IVF (инвертированный файл), DiskANN (для on-disk).
Сравнение топовых движков
| DB | Тип | Killer feature | Слабость | Цена для 10M chunks |
|---|---|---|---|---|
| pgvector | Расширение Postgres | Уже есть Postgres → 0 новой инфры; ACID; HNSW + IVFFlat; в 0.7+, halfvec, sparsevec | Не для 100M+ векторов на одном инстансе | $0–50/мес (на существующем PG) |
| Qdrant | Standalone Rust | Лучшие фильтры по metadata, hybrid out-of-box, scalar/binary/product quantization | Свой DSL, не SQL | $50–250 managed, $20 self-host |
| Weaviate | Standalone Go | Modules для embedders + LLM, GraphQL, multi-tenancy | Сложнее в эксплуатации | $25–500 managed |
| Milvus / Zilliz | Standalone C++/Go | Масштаб 1B+ векторов, GPU-индексы, DiskANN | Тяжёлая инфра (etcd, MinIO) | $99+ managed |
| Pinecone | Managed-only | Serverless, простой API, мгновенный масштаб | Vendor lock-in, дороже всех | $70+ /мес минимум |
| LanceDB | Embedded Rust | Файловое хранение в S3, columnar; идеален для AI-агентов и notebooks | Не для high-QPS | $0 self / cloud в beta |
| Chroma | Embedded / standalone | Простейший API, идеально для прототипов | Не для production scale | $0 self |
| Elasticsearch / OpenSearch | Search engine | Dense + BM25 в одном движке, зрелая экосистема | Тяжелее dedicated vector DB | $95+ managed |
| Vespa | Standalone (Yahoo) | Tensor search, ColBERT first-class, миллиарды векторов | Сложный | enterprise |
| Turbopuffer | Managed serverless | Object-storage backed, на 100× дешевле Pinecone на cold data | Молодой | $0.10/GB/mo |
| MongoDB Atlas Vector Search | Managed | Уже есть Mongo | Моложе других | в составе Atlas |
| Redis Stack | In-memory | Latency < 10 мс | Дорогой RAM | $$ |
Как выбирать
| Сценарий | Рекомендация |
|---|---|
| Уже есть Postgres, < 50M векторов | pgvector, не плодите инфру |
| Нужны богатые фильтры + hybrid | Qdrant |
| 100M+ векторов | Milvus или Vespa |
| Эмбедды и LLM в одном месте, рисёрч | Chroma, LanceDB |
| ML-команда уже на Elasticsearch | OpenSearch или ES с dense_vector |
| Любой ценой managed без DevOps | Pinecone или Qdrant Cloud |
Quantization, обязательная фича для масштаба:
- Scalar quantization (int8): размер ×4 меньше, минимальная потеря качества.
- Binary quantization (1-bit): ×32 меньше, прокатывает с rerank поверх.
- Product quantization (PQ): ×16–64, чуть больше потерь, для очень больших баз.
В Qdrant и Milvus quantization включается одной строкой конфига и снижает память + ускоряет поиск в 4–10×.
Слой 3. Rerankers
Cross-encoder, который точно сортирует top-50 кандидатов в top-5 для LLM.
| Reranker | Тип | Цена | Качество | Когда |
|---|---|---|---|---|
Cohere rerank-v3.5 |
API | $1 / 1K rerank-calls | Топ multilingual | Default для managed |
Cohere rerank-multilingual-v3.0 |
API | $1 / 1K | Сильный для русского | Если уже на Cohere |
BGE reranker-v2-m3 |
OSS | self-hosted GPU | Топ open-source, 568M params | Default open-source |
BGE reranker-v2-gemma |
OSS | self-hosted | LLM-based, ещё точнее | Когда GPU не жалко |
mxbai-rerank-large-v1 |
OSS | self-hosted | Чуть слабее BGE, но легче | Limited GPU |
Jina jina-reranker-v2-base-multilingual |
OSS / API | $0.50/1K | Хороший multilingual | Если уже на Jina |
ColBERT-v2 / jina-colbert-v2 |
OSS | свой индекс | Late interaction, supreme quality | Юриспруденция, наука |
Voyage rerank-2 |
API | $0.05/1K | Хорошо балансит | Если уже на Voyage |
Rerank, обязательный компонент для prod. Прирост точности 10–30%, latency +50–200 мс. Один из самых высоких ROI среди улучшений RAG.
Слой 4. LLM-генератор
| Модель | Контекст | Цена in/out per 1M | Сильное | Когда |
|---|---|---|---|---|
| Claude Opus 4.7 | 200K (1M beta) | $15 / $75 | Reasoning, длинные отчёты, агентность | Сложные задачи, цена не вопрос |
| Claude Sonnet 4.6 | 1M | $3 / $15 | Best balance, длинный контекст, цитирование | Default для prod RAG |
| Claude Haiku 4.5 | 200K | $1 / $5 | Скорость, дёшево | Routing, classification, простые ответы |
| GPT-5 | 400K | $5 / $20 | Чёткое следование инструкциям, JSON mode | Structured output, function calling |
| GPT-5-mini | 128K | $0.30 / $1.20 | Дёшево + быстро | Pre-processing, query rewriting |
| GPT-4o-mini (legacy) | 128K | $0.15 / $0.60 | Совсем дёшево | Бюджетные сценарии |
| Gemini 2.5 Pro | 2M | $1.25 / $5 | Огромный контекст, мультимодальность | Видео, длиннющие документы |
| Gemini 2.5 Flash | 1M | $0.30 / $2.50 | Цена + контекст | Long-doc summarization |
| DeepSeek V3 | 128K | $0.27 / $1.10 | Очень дёшево, на уровне GPT-4o | Когда бюджет, главное |
| Llama 3.3 70B | 128K | self-host (~$0.30/1M на vLLM) | Полностью контролируемо | On-prem требования |
| Qwen 2.5 72B | 128K | self-host | Сильный для CN/RU | Self-host альтернатива Llama |
| Mistral Large 2 | 128K | $2 / $6 | EU-резиденция данных | Compliance EU |
Когда какая модель
- Default для большинства корпоративных RAG: Claude Sonnet 4.6, стабильно цитирует, не выдумывает, длинный контекст для парент-документ паттерна.
- Critical/legal/medical: Claude Opus 4.7, стоит дороже, но lower hallucination rate.
- High-throughput / chat: Claude Haiku 4.5 или GPT-5-mini на простые ответы, escalation на Sonnet/GPT-5 когда нужно.
- On-prem / sensitive: Llama 3.3 70B + vLLM/SGLang/TGI на A100/H100.
- Огромный контекст: Gemini 2.5 Pro (но дороже rag).
Inference серверы для self-hosted
- vLLM, стандарт-де-факто, PagedAttention, continuous batching, OpenAI-совместимый API.
- SGLang, быстрее vLLM на структурированном выводе, RadixAttention.
- TGI (Text Generation Inference) от Hugging Face, production-ready.
- Ollama, для разработки на ноутбуке.
- llama.cpp / llamafile, CPU-only, edge.
Слой 5. Orchestration / фреймворки
«Клей», который связывает всё вместе.
| Фреймворк | Сильная сторона | Слабость | Когда брать |
|---|---|---|---|
| LangChain / LangGraph | Огромная экосистема, 700+ интеграций; LangGraph для агентов | Часто избыточная абстракция, breaking changes | Default; быстрый старт |
| LlamaIndex | Лучшие abstractions именно для RAG; Sentence-Window, Parent-Document, ingestion | Меньше агентных возможностей | RAG-first проекты |
| Haystack 2.x (deepset) | Production-ready, чистый pipeline-DAG | Меньше hype | Когда нужен порядок |
| DSPy (Stanford) | Программирование на промптах декларативно; auto-optimization | Curve | Для исследовательских задач, prompt optimization |
| Semantic Kernel (Microsoft) | C# / Python / Java, корп-инжей | Меньше интеграций | Microsoft-стек, .NET |
| Anthropic Agents SDK / Claude Agent SDK | Чистый агентный API от Anthropic, computer use | Молодой, под Claude | Агенты на Claude |
| OpenAI Assistants API | Managed, threads, file_search, code_interpreter | Vendor lock | Быстрый прототип на OpenAI |
| Pydantic AI | Python-first, type-safe, простой | Молодой | Когда хочется без LangChain бойлерплейта |
| Mastra | TypeScript-first | Молодой | Полный TS-стек |
| Vercel AI SDK | React/Next.js streaming UX | Не для полного pipeline | Frontend-heavy AI |
Практика: для прототипа, LlamaIndex или LangChain. Для прода многие переписывают «голым» Python с тонкими wrappers, чтобы убрать абстракции, которые мешают. DSPy, отдельная история: позволяет автоматически оптимизировать промпты против датасета.
Слой 6. Observability / Eval
Без них RAG в проде слепнет за недели.
| Инструмент | Тип | Что даёт | Цена |
|---|---|---|---|
| LangSmith | Managed | Traces + evals + datasets от LangChain | $39+ /user/mo |
| Langfuse | OSS / managed | Open-source аналог LangSmith | $0 self / $59+ cloud |
| Phoenix (Arize) | OSS | Traces + evals + drift detection | $0 self |
| Helicone | Managed | Простые traces + caching gateway | $0–50+/mo |
| W&B Weave | Managed | Если уже на Weights & Biases | $$$ |
| RAGAS | Library | Python eval metrics | $0 |
| TruLens | Library | Eval с focus на feedback functions | $0 |
| DeepEval | Library | Pytest-style тесты для LLM | $0 |
| Patronus AI | Managed | Enterprise eval-as-a-service | $$$ |
| Galileo | Managed | Monitoring + eval + datasets | $$$ |
Минимальный prod-стек: Langfuse (traces) + RAGAS (eval) + custom dashboard.
Слой 7. Document parsing & ingestion
| Инструмент | Сильная сторона | Цена |
|---|---|---|
| LlamaParse | Топ для сложных PDF с таблицами/формулами | $0.003/page free → paid |
| Unstructured.io | OSS + paid API; универсал | OSS / $0.01/page |
| Docling (IBM) | OSS layout-aware с MLM | $0 |
| Marker (VikParuchuri) | OSS PDF→Markdown, очень быстрый | $0 |
| PyMuPDF / pdfplumber | Лёгкие баzовые PDF | $0 |
| Apache Tika | 1000+ форматов | $0 |
| AWS Textract / GCP Document AI / Azure Document Intelligence | OCR + layout | $1–50/1K pages |
| Reducto | Топ commercial, очень точный на сложных | $0.005/page+ |
Полные референсные стеки
Бюджетный self-hosted
Loader: Unstructured (OSS)
Embeddings: BGE-M3 (self-host on RTX 4090)
Vector DB: pgvector в существующем Postgres
Reranker: bge-reranker-v2-m3 (CPU OK)
LLM: Llama 3.3 70B на vLLM (1×H100) или DeepSeek V3 API
Orch: LlamaIndex
Eval: RAGAS + Langfuse self-hosted
Cost: $200–500/mo + железо
Managed default 2026
Loader: LlamaParse
Embeddings: Voyage AI voyage-3-large
Vector DB: Qdrant Cloud
Reranker: Cohere rerank-v3.5
LLM: Claude Sonnet 4.6
Orch: LlamaIndex
Eval: Langfuse Cloud + RAGAS
Cost: $1K–5K/mo для 1K-5K queries/day
Enterprise / on-prem (regulated)
Loader: Reducto / Azure Document Intelligence
Embeddings: BGE-M3 на собственном GPU
Vector DB: Milvus / Vespa
Reranker: bge-reranker-v2-gemma
LLM: Llama 3.3 70B + Mistral Large 2 (для EU resid.)
Orch: Haystack 2.x
Eval: Patronus AI / Galileo
Security: Presidio (PII), NeMo Guardrails, dual-LLM pattern
Cost: $20K+/mo инфра + GPU
Главное
Стек RAG в 2026, модульный. Каждый слой можно поменять независимо. Это и сила (можно постепенно улучшать), и сложность (нужно понимать, что чем заменяется).
Не выбирайте «всё лучшее». Свяжите выбор с реальными требованиями: цена, скорость, регуляторика, наличие команды.
80% решений, простые. pgvector + OpenAI/BGE + Cohere rerank + Sonnet 4.6 + LlamaIndex + Langfuse покрывает 80% корпоративных кейсов. Усложняйте только под конкретную проблему, которую видите в метриках.
В следующем уроке, план запуска RAG в компании: от выбора первого сценария до production rollout, с конкретными чек-листами, security-аспектами и cost-калькуляцией под разные use-case.