План запуска RAG в компании: от POC до production
Финальный урок, практический roadmap. Что мы разобрали в курсе, как от этого собрать рабочий продукт за 3–6 месяцев, какие референсные архитектуры под типовые сценарии, как считать экономику и обходить главные грабли.
Что мы разобрали в курсе
| Глава | Главная мысль |
|---|---|
| 1.1 RAG vs альтернативы | RAG закрывает knowledge cutoff, галлюцинации и ограничения контекста; цена в 20–60× ниже long-context |
| 1.2 Архитектура | RAG = 8–10 связанных подсистем (loader, chunker, embedder, vector DB, sparse, retriever, reranker, generator, post-proc, eval) |
| 2.1 Продвинутые техники | Hybrid + Contextual Retrieval + reranker = базовый prod-рецепт; HyDE, GraphRAG, Self-RAG, agentic, точечно |
| 2.2 Подводные камни и метрики | Faithfulness, главная анти-галлюцинационная метрика; без 50+ эталонных пар RAG в прод не пускают |
| 3.1 Стек 2026 | Embedders (BGE-M3, Voyage, OpenAI), vector DB (pgvector, Qdrant), rerankers (Cohere, BGE), LLM (Claude Sonnet 4.6, GPT-5, Llama 3.3), orch (LlamaIndex), eval (RAGAS, Langfuse) |
7 этапов запуска
Этап 1. Выбор сценария (1–2 недели)
Делайте узко. Не «AI-помощник для всей компании», а конкретный use-case с измеримым успехом.
Хорошие первые сценарии:
- Internal support bot для одного отдела (HR-вопросы, IT helpdesk).
- Customer support assistant по конкретному продукту.
- Document Q&A для конкретной команды (legal review, sales enablement).
- Code search assistant для одного сервиса/моноrepo.
- Onboarding assistant для новичков.
Чек-лист «правильного» первого сценария:
- ☐ Есть >100 типовых вопросов в день (иначе ROI не окупит работу)
- ☐ Корпус 10K–10M токенов (меньше, не нужен RAG; больше, отдельные сложности)
- ☐ Есть владелец продукта с правом принимать решения
- ☐ Цена ошибки средняя (не финансовые транзакции / медицинские диагнозы)
- ☐ Базовая структура корпуса есть (не «свалка PDF-ов в облаке»)
Этап 2. Аудит и подготовка данных (3–6 недель)
Самая недооценённая часть. Часто 40–60% всего времени проекта.
Действия:
- Inventory: перечислить все источники, оценить объёмы и форматы.
- Dedup: удалить дубликаты (хеши, MinHash для нечётких).
- Версионирование: проставить актуальную версию, deprecated, effective_from/to.
- Нормализация: одинаковая терминология, единый язык, удаление мусора (boilerplate, footer/header).
- Структурирование: Markdown headers как минимум; таблицы, в нормальный формат.
- Tagging metadata: owner, отдел, дата, sensitivity level.
- PII scan: Microsoft Presidio, маскировать или вырезать.
- Access control mapping: кто что имеет право видеть.
Anti-pattern: «загрузить всё как есть, разберёмся потом». Вы не разберётесь, system inherits the mess.
Этап 3. Эталонный датасет (1–2 недели)
Без него запуск невозможен. Минимум:
- 50–100 ручных пар (вопрос, эталонный ответ, источники), собрать с реальных пользователей или экспертов.
- 200–500 synthetic, RAGAS / DeepEval генерируют из вашего корпуса.
- 20 hardest cases (golden adversarial set), намеренно сложные, неоднозначные, edge-cases.
Формат:
{"id": 1,
"question": "Какой срок согласования командировки в зарубежные страны?",
"ground_truth_answer": "14 рабочих дней до даты вылета (Положение о командировках, п. 4.2.3)",
"ground_truth_sources": ["doc_id:cmd-2026", "section:4.2"],
"category": "hr-travel",
"difficulty": "medium"}
Этап 4. MVP (2–4 недели)
Цель: работающий end-to-end pipeline с baseline-качеством. Не оптимизировать, не усложнять.
Минимальный стек:
Loader: Unstructured / LlamaParse
Chunker: RecursiveCharacterTextSplitter (size=512, overlap=64)
Embedder: OpenAI text-embedding-3-large ИЛИ BGE-M3
Vector DB: pgvector
Reranker: нет ещё (пока baseline)
LLM: Claude Sonnet 4.6 / GPT-5
Orch: LlamaIndex
UI: простой chat (Streamlit / Vercel AI SDK / встроить в Slack)
Eval: RAGAS на эталонном датасете
Проверка готовности:
- ☐ Faithfulness > 0.75
- ☐ Context Precision@5 > 0.5
- ☐ Latency p95 < 5 сек
- ☐ Цитаты ссылаются на реальные документы
Этап 5. Iterative improvement (1–3 месяца)
Цикл:
- Прогнать eval на полном датасете → найти слабые места.
- Категоризировать ошибки: retrieval miss / context gap / hallucination / formatting.
- Применить одну технику против конкретной категории:
- Retrieval miss → hybrid search + multi-query
- Context gap → Contextual Retrieval, parent-document
- Hallucination → жёсткий prompt + citation validation + self-check
- Слабый ranking → добавить reranker
- Замерить → сравнить с baseline → принять или откатить.
Не сваливайте всё сразу. Один эксперимент за итерацию, иначе не понять, что помогло.
Целевые метрики прода:
- Faithfulness > 0.92
- Context Precision@5 > 0.75
- Context Recall > 0.85
- Latency p95 < 3 сек
- Cost / query < $0.05
Этап 6. Контролируемый запуск (1 месяц beta)
- 5–10% пользователей или одна команда.
- Feedback loop: thumbs up/down + текстовый feedback.
- Continuous eval на 5% трафика (sample → RAGAS → Langfuse dashboard).
- Human-in-the-loop на критичные ответы (для legal/medical use-cases).
- Алерты: drop в faithfulness > 5% за неделю → rollback + post-mortem.
Этап 7. Масштабирование
- Расширение на всю аудиторию (постепенно, по volume).
- Расширение на новые источники / use-case'ы.
- Optimization: caching (LangChain Cache, Redis), batching, prompt compression (LLMLingua).
- Operational ownership: определить, кто отвечает за обновление корпуса, мониторинг метрик, периодическое переобучение embedder'а.
Референсные архитектуры по сценариям
A. Internal HR/IT bot
Профиль: ~50K документов, 500 запросов/день, низкая цена ошибки.
Source: Confluence + Google Drive (через connectors LlamaIndex / Glean)
Loader: Unstructured + native APIs
Chunking: recursive 512+64 overlap
Embed: OpenAI text-embedding-3-large ИЛИ BGE-M3 (если on-prem)
Vector DB: pgvector (есть Postgres → не плодить инфру)
Sparse: PostgreSQL ts_vector
Reranker: Cohere rerank-v3.5
Generator: Claude Haiku 4.5 (fast/cheap) + Sonnet 4.6 fallback на сложные
UI: Slack bot (Bolt SDK)
Eval: RAGAS daily на 100-pair golden set
Cost: ~$300–800 / mo
B. Customer support copilot
Профиль: ~500K документов (продуктовая документация + history of tickets), 5K запросов/день, средняя цена ошибки.
Source: Zendesk / Intercom + product docs + Notion
Loader: LlamaParse (PDF), Markdown native
Chunking: parent-document (small chunks для retrieval, parent для context)
Embed: Voyage-3-large (топ public benchmark) или Cohere embed-multilingual-v3
Vector DB: Qdrant Cloud (filter by product, category)
Sparse: Elasticsearch (BM25)
Reranker: Cohere rerank-v3.5
Generator: Claude Sonnet 4.6
Guardrails: NeMo Guardrails (no PII в ответах, no off-topic)
Eval: Langfuse + RAGAS, A/B testing variants
Cost: ~$2K–6K / mo
C. Code search / dev assistant
Профиль: monorepo на 10M+ строк, 200 разработчиков.
Source: Git repos (incremental indexing on commit hooks)
Loader: Tree-sitter AST-aware splitting
Chunking: AST-based: function / class / module unit
Embed: Voyage AI voyage-code-3 ИЛИ jina-embeddings-v2-base-code
Vector DB: Qdrant с metadata (repo, language, file_path)
Sparse: Sourcegraph / Zoekt
Reranker: bge-reranker-v2-m3 (self-hosted)
Generator: Claude Sonnet 4.6 (длинный контекст важен)
UI: IDE plugin (LSP) + Slack /search
Cost: ~$1K–3K / mo + GPU для embedder
D. Legal / compliance research
Профиль: строжайшая точность, цитирование обязательно, on-prem.
Loader: Reducto / Azure Document Intelligence (точные таблицы)
Chunking: semantic chunking + Contextual Retrieval (Anthropic)
Embed: BGE-M3 self-hosted
Vector DB: Milvus / Vespa (ColBERT для late-interaction)
Sparse: Elasticsearch + русская морфология
Reranker: bge-reranker-v2-gemma + ColBERT-v2
Generator: Claude Opus 4.7 (low hallucination) + mandatory citation check
Verification: separate LLM-judge на каждый ответ (faithfulness > 0.97)
Human review: обязателен на важные ответы
Eval: Patronus AI / TruLens
Cost: $20K+/mo
Security & compliance чек-лист
Обязательно для любого корпоративного RAG:
- ☐ Access control: vector DB фильтрует по
user_id/tenant_id/acl_groups - ☐ PII detection: Microsoft Presidio при индексации
- ☐ Audit log: что запросил, что вернулось, что в ответе
- ☐ Prompt injection mitigation: XML-тэгирование контекста, Llama Guard 3 на выходе
- ☐ Output filtering: PII в ответах маскируется
- ☐ Data residency: для EU, модели в EU (Mistral, Cohere EU, Azure OpenAI EU regions, on-prem)
- ☐ Encryption: at-rest и in-transit для всех компонентов
- ☐ Secrets management: API ключи в Vault / AWS Secrets Manager, не в коде
- ☐ Rate limiting: per-user quota, особенно если LLM-cost variable
- ☐ No training on customer data: Anthropic, OpenAI Enterprise, Azure OpenAI, все по умолчанию не обучают на ваших данных, но верифицируйте контракт
Cost-калькуляция
Шаблон расчёта на пример: 1000 запросов/день, корпус 5M токенов, Sonnet 4.6 + Cohere rerank + OpenAI embed:
| Статья | Цена | В месяц (30 дней) |
|---|---|---|
| Initial indexing (5M tok × OpenAI v3-large @ $0.13/1M) | $0.65 | разово |
| Re-indexing 5% корпуса в день | $0.10/day | $3 |
| Vector DB (pgvector на существующем PG) | , | $0 |
| Per-query embedding (1K × $0.0001) | $0.10/day | $3 |
| Per-query Cohere rerank-v3.5 ($1/1K calls) | $1/day | $30 |
| Per-query Sonnet 4.6: 5K input + 500 output | ($0.015 + $0.0075) × 1K = $22.5/day | $675 |
| Eval pipeline (5% sample × stuff) | ~$1/day | $30 |
| Hosting + monitoring | , | $50–100 |
| Total | ~$790–840 / mo |
С Haiku 4.5 на простых ответах + Sonnet на сложных, обычно −40–60% за счёт routing.
С long-context подходом (50K input × $3/1M на каждый запрос) = $150/day = $4500/mo, в 5–6× дороже.
5 главных ошибок при запуске RAG
1. «Универсальный AI компании» с первой попытки.
Получают «кашу», в которой невозможно отладить проблемы. Результат: проект убивают через год. Решение: узкий первый use-case, расширение после успеха.
2. Пропуск аудита данных.
«У нас в Confluence нормальные документы». Через месяц непонятные ответы. Решение: 4–6 недель на data quality до инжиниринга.
3. Запуск без эталонного датасета.
«Запустим, посмотрим в production». Через полгода никто не знает, лучше или хуже после очередного «улучшения». Решение: минимум 50 пар до MVP-запуска.
4. Доверие ответам без citation validation.
Запускают в критичные процессы (договоры, медицина) без процедур ручной проверки. Результат: один громкий косяк убивает проект. Решение: human-in-the-loop на critical, automated faithfulness checks везде.
5. «Запустили, забыли».
RAG требует постоянной поддержки: обновление корпуса, мониторинг метрик, адаптация под новые типы вопросов, ре-эмбеддинг при смене модели. Заложите 0.5–1 FTE в долгосрочный operational budget.
Команда минимального проекта
Для prod RAG-системы среднего размера:
- 1 product owner, связь с пользователями, приоритеты.
- 1 ML/AI engineer (full-time), архитектура, эксперименты, eval.
- 1 backend engineer (part-time), интеграции с источниками, API, observability.
- 1 data steward (part-time), поддержание чистоты корпуса.
- 0.5 frontend, если нужен UI.
Для POC, один человек (full-stack ML) справится.
Главный вывод
RAG в 2026, самая практичная AI-технология для бизнеса. Не требует обучения моделей, использует ваши данные как есть, даёт быстрый видимый эффект.
Но это инженерный продукт, а не магия. Успех зависит от:
- Качества данных (60% успеха).
- Правильного выбора use-case (20%).
- Дисциплины измерений (15%).
- Технологий (5%).
Компании, которые понимают это распределение, получают серьёзное преимущество за 3–6 месяцев. Те, кто ждёт «волшебной коробки от вендора», разочаровываются и тратят бюджет впустую.
Стек, метрики, паттерны, всё описано. Стартуйте с узкого сценария, чистите данные, измеряйте faithfulness, итерируйте.