RAG чи довгий контекст: як вибрати архітектуру для знань
Практичне порівняння RAG, long context і гібридного routing: якість, вартість, latency, свіжість, citations, ACL та production-evaluation без міфу, що велике контекстне вікно автоматично замінює retrieval.
Зміст статті
- 01Два способи дати моделі зовнішні знання
- 02Decision matrix: corpus, query і operational constraints
- 03Якість: benchmark не переноситься автоматично у ваш продукт
- 04Вартість і latency: рахуйте систему, а не один API call
- 05Freshness, citations і permissions — справжня межа архітектур
- 06Hybrid pattern: retrieve first, escalate by evidence
- 07Production experiment і критерій рішення
Передумови
Два способи дати моделі зовнішні знання
Long-context підхід завантажує в prompt увесь релевантний робочий набір: документ, репозиторій, стенограму або пакет файлів. Модель може бачити зв’язки між віддаленими фрагментами без окремого retriever, але кожний запит має нести великий input або використовувати provider caching. Межа контекстного вікна є технічним лімітом, а не гарантією, що модель однаково добре використає кожен токен.
RAG спочатку індексує корпус, а на кожний запит знаходить невелику вибірку фрагментів. Це зменшує input і дозволяє фільтрувати документи за tenant, ACL, датою чи типом, проте додає власні failure modes: поганий chunking, невдалий query rewrite, низький recall, reranking noise та розрив важливого контексту між chunks. Отже, вибір відбувається між різними контурами помилок, а не між сучасною і застарілою технологією.
process
Карта системи: RAG чи довгий контекст: як вибрати архітектуру для знань
Decision matrix: corpus, query і operational constraints
Long context природно підходить для одного bounded artifact, який треба прочитати цілісно: контракт із додатками, одна codebase snapshot, довга розмова або набір матеріалів конкретної справи. RAG сильніший для великого мінливого корпусу, повторюваних запитів, granular permissions і сценаріїв, де треба показати, які саме passages були отримані retriever перед генерацією.
Не приймайте рішення лише за максимальною кількістю токенів у model card. Порівнюйте реальний corpus size, частоту змін, query distribution, допустимий p95 latency, input cost, cache hit rate, permission model і вимоги до citation trace. Один продукт може використовувати long context для завантаженого dossier, а RAG — для пошуку по всій корпоративній базі знань.
- Один стабільний bounded пакет і cross-document synthesis → почніть із long context;
- Великий або часто оновлюваний корпус → почніть із RAG;
- Document-level або tenant-level ACL → retrieval filter застосовується до генерації;
- Повторюваний довгий префікс → перевірте provider caching і cache misses;
- Непередбачувані запити й змішаний корпус → тестуйте hybrid router;
- High-stakes відповіді → зберігайте passage provenance незалежно від архітектури.
timeline
Контрольні точки для практичного застосування
- Один стабільний bounded пакет і cross-document synthesis → почніть із long contex…
Контрольна теза з матеріалу статті.
- Великий або часто оновлюваний корпус → почніть із RAG;
Контрольна теза з матеріалу статті.
- Document-level або tenant-level ACL → retrieval filter застосовується до генераці…
Контрольна теза з матеріалу статті.
- Повторюваний довгий префікс → перевірте provider caching і cache misses;
Контрольна теза з матеріалу статті.
- Непередбачувані запити й змішаний корпус → тестуйте hybrid router;
Контрольна теза з матеріалу статті.
- High-stakes відповіді → зберігайте passage provenance незалежно від архітектури.
Контрольна теза з матеріалу статті.
Якість: benchmark не переноситься автоматично у ваш продукт
Дослідження Li та співавторів 2024 року показало сильну середню якість long context за достатніх ресурсів і нижчу вартість RAG, а запропонований Self-Route направляв складні запити до повного контексту. LaRA у 2025 році дійшла обережнішого висновку: оптимальний варіант залежить від моделі, довжини й типу тексту, задачі та якості retrieved chunks. Це не суперечність, а нагадування, що benchmark design визначає відповідь.
Власний eval set має містити запити, які справді потребують зовнішніх даних: exact lookup, multi-hop synthesis, глобальне узагальнення, часові питання, conflicting sources, no-answer і permission-denied cases. Окремо вимірюйте retrieval recall, context precision, answer correctness, citation entailment, abstention і end-to-end latency. Якщо оцінювати лише фінальну відповідь, неможливо відрізнити failure retriever від failure generator.
Вартість і latency: рахуйте систему, а не один API call
Long context платить за великий input на кожний cache miss і може збільшувати time to first token. Caching здатен знизити повторну обробку стабільного префікса, але додає правила мінімального розміру, TTL, storage price та залежність від provider. RAG платить за ingestion, embeddings, vector storage, search, reranking і операційне обслуговування, зате generation input зазвичай менший.
Порівняйте cost per successful task, а не ціну тисячі токенів. До формули входять ingestion при кожній зміні, cache creation і hits, retrieval calls, reranker, generation, retries, observability та людський review. Для low-frequency аналізу одного dossier індексація може бути зайвою; для тисяч щоденних запитів по великому каталогу передавання всього корпусу часто нераціональне навіть тоді, коли він формально поміщається у window.
Freshness, citations і permissions — справжня межа архітектур
У long-context pipeline свіжість означає заново сформувати authoritative package і гарантувати, що старий cached prefix не пережив зміну документа. У RAG pipeline треба завершити ingestion, видалити або version stale chunks і не видавати змішаний snapshot. Обидва підходи потребують document ID, version, effective date та trace того, що реально потрапило до моделі.
ACL не можна делегувати prompt. Якщо користувач не має права на документ, він не повинен потрапити ані до retrieved set, ані до long-context package. Для citations зберігайте source ID і offsets до нормалізації, а після відповіді перевіряйте, що cited passage підтримує claim. Просте посилання на файл доводить походження контексту, але не істинність висновку.
Hybrid pattern: retrieve first, escalate by evidence
Практичний hybrid не просить модель абстрактно вгадати, чи потрібен RAG. Спершу дешевий retrieval повертає passages і діагностику: score distribution, coverage ключових entities, кількість джерел і конфлікти. Router ескалює до ширшого document context, якщо recall proxy слабкий, питання вимагає global synthesis або retrieved fragments суперечать один одному.
Policy має бути deterministic там, де це можливо: document summarization завжди отримує повний bounded artifact; exact policy lookup використовує filtered RAG; legal comparison відкриває повні версії лише тих документів, які відібрав retrieval. Router version, причина маршруту, token budget і fallback записуються в trace. Так гібридність стає контрольованою системою, а не подвійною інфраструктурою без owner.
Production experiment і критерій рішення
Побудуйте три однакові за моделлю й output contract варіанти: tuned RAG, long context і hybrid. Зафіксуйте corpus snapshot та проганяйте той самий eval set. Не оптимізуйте одну гілку після перегляду test answers, не даючи такого самого бюджету іншій: це створює упереджене порівняння. Результати сегментуйте за типом задачі й довжиною evidence, бо середнє приховує failure pockets.
Рішення приймайте через пороги: quality floor, citation correctness, unauthorized-context rate рівно нуль, p95 latency, cost per accepted answer і operational error budget. Якщо long context виграє global synthesis, а RAG — exact lookup, не обирайте одного переможця для всього продукту. Зафіксуйте routing table, rollback до простішої гілки і дату повторного тесту після зміни моделі, corpus або pricing.
Практичні приклади
Приклад: асистент для договорів
Для запиту «який строк оплати в договорі X?» система робить ACL-filtered retrieval і повертає пункт із версією документа. Для запиту «знайди суперечності між договором X та всіма додатками» router після retrieval завантажує повний bounded package вибраної версії в long context. Обидві гілки зберігають source offsets, а відповідь без підтримувального passage не проходить citation check.
FAQ
Чи велике контекстне вікно робить RAG непотрібним?
Ні. Воно дає альтернативу для bounded corpus і global synthesis, але не прибирає потребу у freshness, ACL, provenance, cost control та пошуку у великих динамічних колекціях.
Що дешевше: RAG чи long context?
Це залежить від corpus, частоти запитів, cache hits та інфраструктури. Порівнюйте ingestion, retrieval, caching, generation і retries через cost per successful task на власному workload.
Коли варто будувати hybrid routing?
Коли eval показує стабільно різні переможні гілки за типами задач. Router має використовувати вимірювані сигнали й мати fallback, а не лише довіру до самооцінки моделі.
Пов’язані матеріали
Production-конвеєр RAG: ingestion, нормалізація, chunking, embeddings, retrieval, reranking, grounded generation, цитати й evaluation.
Токени, контекст і вартість запитуЯк токенізація, контекстне вікно, кешування та довжина відповіді впливають на якість, затримку і бюджет LLM-системи.
Стратегії chunking для RAGЯк ділити документи на фрагменти без втрати структури, контролювати overlap і вибирати стратегію за типом даних та запитів.
Reranking і hybrid searchЯк поєднувати vector search, BM25, metadata filters і reranker, щоб підвищити recall без переповнення контексту нерелевантними chunks.
ACL і безпека RAGЯк не допустити витоку даних у RAG: authorization-before-retrieval, document і chunk ACL, tenant isolation, cache safety, prompt injection, аудит та security evaluation.
Цитати та provenance у RAGЯк будувати перевірні відповіді RAG: стабільні source IDs, claim-to-evidence mapping, точні цитати, версії документів, coverage, UI та захист від вигаданих посилань.
Оцінювання LLM-систем у productionЯк побудувати evaluation set, автоматичні та людські метрики, regression gates і спостережуваність для промптів, RAG та агентів.