Needle in a Haystack & Long-Context Retrieval(Пошук голки в копиці сіна та феномен Lost in the Middle)
Проблема деградації уваги мовних моделей всередині гігантських контекстних вікон (1M–2M токенів), коли модель ігнорує інструкції, заховані в середині тексту, та інженерні методи її подолання.
1. Огляд концепції та системна проблема
Коли вендори моделей гордо оголошують: "Наша модель тепер має вікно контексту в 2 000 000 токенів!", у розробників виникає ілюзія, що RAG і пошукові індекси більше не потрібні — можна просто скинути в один запит увесь репозиторій, усю документацію та логи.
Проте на практиці виникає феномен «контекстної сліпоти» (Attention Sinks & Lost in the Middle):
- Навіть якщо модель проходить простий тест на пошук одного слова, у складних логічних задачах якість міркувань починає стрімко деградувати вже після 100k–200k токенів.
- Модель починає "забувати" винятки, змішувати назви функцій і часто ігнорує суворі заборони, розміщені в середині масиву тексту.
2. Архітектурна таксономія та ментальна модель
┌─────────────────────────────────────────────────────────────┐
│ ATTENTION U-CURVE PHENOMENON │
├─────────────────────────────────────────────────────────────┤
│ Рівень уваги │
│ 100% ──┐ ┌── 100% │
│ \ / │
│ \ LOST IN THE MIDDLE ZONE (30%-70%) / │
│ 20% ────┴─────────────────────────────────────┴──── 20% │
│ 0% 50% 100% │
│ (Початок) (Середина) (Кінець) │
│ [System Prompt] [Massive Code Dump] [User Query] │
├─────────────────────────────────────────────────────────────┤
│ СТРАТЕГІЯ "PROMPT SANDWICH": │
│ 1. Header: Primary Rules & Goal │
│ 2. Middle: Raw Data / Reference Docs │
│ 3. Footer: Reminder of Critical Invariants & Schema │
└─────────────────────────────────────────────────────────────┘
3. Практичні інженерні сценарії в продакшені
01. Застосування патерну Prompt Sandwiching
При передачі великого кодового контексту найважливіші інструкції дублюються в кінці:
[System Prompt: Ти експертний кодер. Дотримуйся правил нижче.]
---
[200k токенів файлів кодової бази]
---
[CRITICAL INSTRUCTION REMINDER:
Перед відповіддю перевір:
1. Ти не додав жодного `any`.
2. Ти використав виключно функції з модуля `@/lib/db`.
Тепер згенеруй виправлення для bug #42:]
02. Чому RAG залишається необхідним навіть при вікні 2M токенів
Замість передачі 2M токенів сирого коду ($10 за запит) використання RAG знаходить 15k дійсно потрібних токенів ($0.05 за запит). Це скорочує витрати у 200 разів і гарантує, що модель оперує в зоні 100% фокусування уваги.
4. Підводні камені, типові помилки та безпека
- Сліпа довіра до рекламних графіків NIAH: Зелені таблиці NIAH (100% Retrieval) від виробників моделей часто тестуються на штучному тексті (Paul Graham essays). На щільному коді або таблицях із цифрами реальна точність вилучення падає до 70–80%.
- Повільний час Prefill: Обробка 1M токенів на сервері займає від 15 до 40 секунд ще до того, як з'явиться перший токен відповіді.
5. Стратегічний висновок для інженера 2026 року
Велике контекстне вікно — це розкішна можливість, а не привід відмовитися від дисципліни архітектури даних. Розуміння обмежень розподілу уваги трансформера дозволяє інженерам будувати системи з максимальною щільністю сенсу на кожен використаний токен.
FAQ: Needle in a Haystack & Long-Context Retrieval
Пов'язані терміни
Контекстне вікно (Context Window)
Максимальний робочий обсяг токенів, який мовна модель здатна одночасно утримувати в механізмі Self-Attention та пам'яті KV-кешу під час обчислення одного інференс-запиту.
Деградація контексту (Context Rot & Attention Decay)
Системне зниження точності, слідування інструкціям та логічної узгодженості LLM у міру накопичення в робочому вікні діалогового шуму, застарілих чернеток коду та виводів компілятора.
Системний промпт (System Instructions & Metaprompting)
Пріоритетний метаконтекстний блок інструкцій, що передається на нульовій позиції контекстного вікна і визначає роль, правила безпеки, доступні інструменти та межі поведінки агента.
Кешування промптів (Prompt Caching & KV Cache Reuse)
Технологія сучасних інференс-двигунів та хмарних API (Anthropic, OpenAI, DeepSeek, vLLM), що зберігає попередньо обчислені матриці уваги (KV Cache) статичного префіксу, зменшуючи вартість обробки на 80–90% та скорочуючи час до першого токена (TTFT) у 4–8 разів.