Это первая часть из запланированной серии статей о проблемах ИИ. Мы заглянем в технические аспекты памяти и контекста у LLM-моделей, чтобы понять, почему они забывают, выдумывают факты и галлюцинируют.
Как attention ломается на длинном контексте
Трансформеры работают на механизме self-attention: каждый токен анализирует все остальные, чтобы понять, на что стоит обратить внимание. Эта архитектура имеет квадратичную сложность — O(n²), — что делает её вычислительно тяжёлой.
Чтобы справиться с этим, используются оптимизации: FlashAttention-2/3, RoPE, ALiBi и другие. Но они не бесплатны.
Они вносят позиционные смещения:
- Primacy bias — модель лучше запоминает начало контекста
- Recency bias — конец тоже остаётся в памяти
- Середина — получает ослабленное внимание и часто теряется
Представьте, что вы прочитали книгу в 500 страниц за один присест. Первую и последнюю главу помните чётко, а что было на странице 247? Модель ведёт себя аналогично — но вместо признания, что забыла, она уверенно выдумывает.
Lost-in-the-Middle
Классическое исследование Nelson Liu и коллег из Stanford (2023) показало: когда нужная информация находится в середине контекста, точность моделей падает на 30–50%. Это явление получило название Lost-in-the-Middle.
С тех пор модели стали мощнее, но проблема осталась.
Исследования MIT и других лабораторий (2025–2026) подтвердили: эффект сохраняется даже у моделей с контекстным окном в 1 миллион и более токенов.
Причина — в архитектуре: causal attention masking и затухание позиционных эмбеддингов (например, RoPE). Чем длиннее контекст, тем больше «середина» и тем сильнее смещение.
Проще говоря, увеличивая окно, мы не улучшаем память — мы расширяем зону, где модель теряет факты.
Бенчмарки 2025–2026
Тест Needle-in-a-Haystack от Грега Камрадта (2023) стал классикой: факт прячется в длинном тексте, затем модель должна его найти. Просто, наглядно, эффективно.
К 2025–2026 годам он эволюционировал в целое семейство бенчмарков:
- U-NIAH (2026) — сравнивает long-context LLM и RAG
- NeedleBench, BABILong, LooGLE — проверяют не только поиск факта, но и синтез информации из разных частей контекста
Почему галлюцинации растут с длиной контекста
Возникает логичный вопрос: почему модель врёт, а не говорит «не знаю»?
Свежие исследования выделяют три ключевые причины:
Vectara Hallucination Leaderboard (HHEM-2.3, февраль 2026)
На текстах длиной 32K+ токенов уровень галлюцинаций стабильно выше. Модели начинают «додумывать» связи между фрагментами A и C, не видя B посередине — и изобретают своё.
OpenAI research (декабрь 2025), «When More Becomes Less»
Рост контекста увеличивает стоимость инференса, но не качество. Модель получает частичные доказательства и заполняет пробелы правдоподобно — это и есть галлюцинация.
MIT (январь 2025)
Самое тревожное: модели используют более уверенный язык именно при галлюцинациях в длинном контексте. Чем слабее факт в контексте, тем увереннее его выдумывают.
Упрощённо: длинный контекст → больше шума → внимание размывается → модель не находит факт → но обучена всегда отвечать → начинает креативить.
Это не баг. Это следствие архитектуры трансформера в сочетании с RLHF, который учит модель быть «полезной» — то есть всегда давать ответ.
Что помогает в продакшене
Chunking — 70% успеха RAG
Если в RAG-системе много галлюцинаций — смотрите на разбиение документов.
Не полагайтесь на стандартные сплиттеры.
- RecursiveCharacterTextSplitter (LangChain) — 400–512 токенов, overlap 10–20%. Надёжно работает на структурированных текстах.
- SemanticChunker — делит по смыслу с помощью эмбеддингов. Повышает точность на 15–20% в сложных документах.
- HierarchicalNodeParser (LlamaIndex) — создаёт многоуровневые чанки (2048 → 512 → 128). Позволяет искать сначала раздел, потом абзац, потом предложение.
Главное — не загружайте в контекст 100K токенов «на всякий случай». Лучше дать 3–5 релевантных чанков по 500 токенов. Меньше мусора — меньше галлюцинаций.
Пример chunking + reranking
Извлеките 20 чанков, затем reranker отбирает топ-5. Это критично: без reranking в контекст попадают почти релевантные фрагменты, которые только мешают.
Verification layers
Даже с идеальным chunking модель может ошибаться. Нужна вторая линия обороны.
- Self-Consistency / Chain-of-Verification (CoVe) — модель генерирует ответ, затем вопросы для его проверки, затем отвечает на них.
- Critic Agent — отдельный LLM (даже маленький) проверяет: «Вот контекст, вот ответ. Всё ли подтверждается? Да/Нет + объяснение».
- Symbolic verification — после генерации ответ проверяется через Knowledge Graph или Pydantic-схему. Даты, имена, числа — всё валидируется программно.
Agentic workflows
Это паттерн 2026 года. Вместо одного вызова «контекст → ответ» строится цикл из агентов:
- Planner — разбивает задачу на подзадачи
- Retriever Agent — ищет чанки для каждой подзадачи
- Executor — генерирует ответ
- Verifier Agent — проверяет и возвращает на доработку при ошибках
Это дороже и медленнее. Но в продакшене, где ошибка стоит денег или репутации, — окупается.
Hybrid neuro-symbolic
Для доменов с высокими требованиями к точности — юриспруденция, медицина, финансы — есть следующий уровень: комбинация LLM + Knowledge Graph + symbolic verifier.
LLM генерирует ответ, Knowledge Graph проверяет факты и связи, symbolic verifier — логику.
Исследования 2025 года показывают снижение галлюцинаций на 60–80%. Но это тяжёлая инфраструктура: нужен граф знаний, правила и команда для поддержки.
Для чат-бота интернет-магазина — это избыточно.
Итог: суй меньше — получишь лучше.