Архітектура RAG-пайплайну: стратегії, компоненти, оптимізація

Зауважимо: коли RAG-пайплайн видає нерелевантні результати, проблема найчастіше в архітектурі retrieval'у. Базовий RAG «працює» за день, але production-ready RAG система з надійним retrieval, моніторингом і керованою вартістю потребує ретельного проєктування. При проектуванні архітектури RAG ключови

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    997
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

Зауважимо: коли RAG-пайплайн видає нерелевантні результати, проблема найчастіше в архітектурі retrieval'у. Базовий RAG «працює» за день, але production-ready RAG система з надійним retrieval, моніторингом і керованою вартістю потребує ретельного проєктування. При проектуванні архітектури RAG ключовим є вибір компонентів. Ми спроєктували та впровадили понад 30 RAG-систем для різних індустрій — від юридичних документів до техпідтримки. Наш досвід каже: 70% успіху — в архітектурі pipeline'у. Наприклад, один клієнт з FinTech використовував dense-only пошук і отримував recall 0.65. Після впровадження гібридного пошуку з reranker'ом recall виріс до 0.92 — це в 1.4 рази краще, а latency p99 залишився під 200 мс — це суттєво скоротило витрати на перезапити до LLM. Техніка retrieval augmented generation (RAG) активно використовується в індустрії. Retrieval-Augmented Generation — це не просто модний термін, а зріла техніка, яка потребує грамотної інженерної реалізації. Ми маємо 5 років досвіду в NLP та 30+ виконаних проєктів.

Компоненти сучасного RAG-пайплайну

┌─────────────────────────────────────────────────────┐ │ INGESTION PIPELINE │ │ Sources → Loaders → Parsers → Chunkers → Embedder │ │ → Metadata Extractor → Vector Store │ └─────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────┐ │ RETRIEVAL PIPELINE │ │ Query → Query Transformer → Multi-Index Search │ │ → Reranker → Context Assembler │ └─────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────┐ │ GENERATION PIPELINE │ │ Context + Query → Prompt Builder → LLM │ │ → Response Validator → User │ └─────────────────────────────────────────────────────┘ 

Як обрати стратегію чанкінгу?

Чанкінг визначає якість retrieval. Фіксований розмір 256-512 токенів простий, але втрачає контекст. Структурний чанкінг за заголовками розділів дає кращі результати для документів з чіткою ієрархією. Вибір векторної бази даних (Qdrant, Weaviate, ChromaDB) залежить від навантаження. Порівняння:

Стратегія Коли використовувати Recall@10 Latency
Фіксований 256 токенів Short texts, FAQ 0.78 2 ms
Рекурсивний з overlap 15% General documents 0.85 5 ms
Семантичний чанкінг Довгі наративи 0.88 12 ms
Структурний (за заголовками) Юридичні, технічні 0.92 8 ms

Ми використовуємо семантичний чанкінг на основі меж речень з перекриттям 10%. Це дає баланс якості та швидкості. Для кожного документа потрібні метадані (джерело, дата, тип).

Чому гібридний пошук (sparse + dense) необхідний?

Dense embedding чудово знаходить семантичні дублі, але погано справляється з рідкісними термінами або абревіатурами. Sparse (BM25) — навпаки. Згідно з документацією Qdrant, гібридний пошук з Reciprocal Rank Fusion (RRF) підвищує метрики релевантності на 20-30%. Гібридний пошук комбінує обидва підходи. У порівнянні з dense-only, гібридний пошук в 1.3 рази кращий за Recall@10.

from qdrant_client import QdrantClient from qdrant_client.models import SparseVector def hybrid_search(query, top_k=10): dense_vector = embedder.embed_query(query) sparse_vector = sparse_encoder.encode(query) results = client.query_points( collection_name="docs", prefetch=[ {"query": dense_vector, "using": "dense", "limit": 30}, {"query": SparseVector(indices=sparse_vector.indices, values=sparse_vector.values), "using": "sparse", "limit": 30}, ], query=rrf_fusion, # Reciprocal Rank Fusion limit=top_k, ) return results 

У наших проєктах гібридний пошук підвищує Recall@10 на 25-30% — в 1.25-1.3 раза. Додатково використовуємо reranker на базі cross-encoder (наприклад, ms-marco-MiniLM-L-12-v2), який перевпорядковує top-30 результатів до top-5. Це покращує точність в 1.5-2 рази. Така комбінація знижує витрати на LLM-інференс на 30-50%, що при обсязі 1M запитів на місяць дає економію $1500-3000. За нашими оцінками, для середнього проєкту з 500k запитів на місяць економія складає $2,000.

Оцінка якості retrieval

Для production потрібно закладати evaluation framework з набором метрик: Recall@k, MRR, NDCG. Ми використовуємо кастомний датасет з 500+ запитів з розміткою релевантності. Навантажувальне тестування перевіряє latency p99 — зазвичай target < 500 мс. Моніторинг у проді фіксує дрифт даних та деградацію метрик.

Порівняння embedding-моделей

Модель Розмірність Recall@10 (ours) Застосування
text-embedding-ada-002 (OpenAI) 1536 0.85 Хмарне, простота
embed-english-v3.0 (Cohere) 1024 0.87 Багатомовність
intfloat/e5-large-v2 (open-source) 1024 0.84 Self-hosting, економія

Для production ми рекомендуємо open-source embedding-моделі (E5, BGE) з self-hosting — це знижує операційні витрати в кілька разів при порівнянній якості.

Типові помилки при проектуванні RAG
  • Недостатня кількість чанків: якщо чанк занадто довгий (>1024 токенів), LLM втрачає контекст.
  • Відсутність гібридного пошуку: dense-only пропускає терміни з низькою частотою.
  • Невиконання оцінки (evaluation): без валідації на репрезентативному датасеті ви не знаєте реальну якість.
  • Ігнорування латентності: pipeline має вкладатися в SLA (зазвичай p99 < 1 с).

Процес роботи

  1. Аналітика — вивчення джерел, типів запитів, очікуваного навантаження (RPS).
  2. Проєктування — вибір стеку (векторна БД, embedding-модель, чанкінг).
  3. Реалізація — побудова ingestion pipeline, retrieval pipeline, integration з LLM.
  4. Тестування — evaluation на кастомному датасеті, A/B-тестування різних конфігурацій.
  5. Деплой та моніторинг — розгортання за допомогою Docker/Kubernetes, налаштування оповіщень по latency та recall.

Що входить у роботу

  • Документація архітектури (діаграми, специфікація компонентів)
  • Вибір стеку та обґрунтування (векторна БД, embedding, LLM)
  • Прототип пайплайну з гібридним пошуком та reranker'ом
  • Evaluation framework з набором метрик
  • Інтеграція з існуючою інфраструктурою
  • Навчання команди замовника та код-рев'ю
  • Підтримка на етапі впровадження (до 1 місяця)

Терміни орієнтовно

  • Проєктування: 1 тиждень
  • Ingestion pipeline: 1–2 тижні
  • Retrieval pipeline з reranker'ом: 2–3 тижні
  • Evaluation та оптимізація: 1–2 тижні
  • Production hardening: 1–2 тижні
  • Разом: 6–10 тижнів залежно від складності

Вартість робіт — від $8,000 залежно від складності. Зв'яжіться з нами, отримайте консультацію з архітектури RAG для вашого проєкту. Гарантуємо, що результат відповідатиме best practices MLOps та вашим SLA. Гібридний пошук знижує витрати на LLM-інференс на 30-50%, що особливо помітно при високих навантаженнях. Замовте проєктування RAG-пайплайну та отримайте working prototype вже через 3 тижні.