Контекстное окно
Лимиты памяти
Проблема: ИИ забывает начало длинных разговоров и не может обрабатывать неограниченный текст. Что ограничивает память ИИ и как работать в этих рамках?
Решение: Понять оперативную память
Окно контекста (context window) — это максимальное количество текста, которое LLM может обработать в одном запросе — его рабочая память. Представь это как оперативную память (RAM) компьютера: всё, что модели нужно активно учитывать — инструкции, вся история разговора, подтянутые документы и твой последний вопрос — должно поместиться в это единое фиксированное пространство. Размер измеряется в токенах (примерно ¾ слова в английском, в русском часто меньше), и управление бюджетом токенов — главный навык, чтобы оставаться в рамках лимита.
Как это работает на самом деле
У LLM нет памяти между запросами. На каждом ходе весь промпт целиком — системный промпт, все предыдущие сообщения и новый ввод — отправляется и перечитывается заново. Модель не «помнит» твой чат; это приложение заново проигрывает весь транскрипт каждый раз. Поскольку механизм внимания сравнивает каждый токен с каждым, вычислительная стоимость растёт примерно как квадрат длины — именно поэтому провайдеры ограничивают окно, а длинные промпты становятся медленными и дорогими. Когда транскрипт превышает лимит, приложению приходится что-то выбрасывать или сжимать — обычно сначала самые старые сообщения (FIFO), и поэтому ассистент «забывает», с чего начинался долгий разговор.
Компромиссы, ловушки и разбор примера
Большое окно — не всегда лучше. Тесты «игла в стоге сена» показывают, что модель лучше всего вспоминает то, что в самом начале и в самом конце контекста, и хуже всего — то, что в середине (эффект «потерялось в середине»). Поэтому набивать 200K токенов фоном может на деле ухудшить точность, раздув при этом стоимость и задержку (latency). Конкретно: представь PDF на 100 страниц (~70K токенов) плюс чат поддержки из 40 сообщений. Свалить всё это в один промпт — медленно, дорого и размывает сигнал. Вместо этого ты бы подтянул (retrieve) только 3–4 релевантных фрагмента, сжал старый чат в пару строк и держал сам вопрос пользователя ближе к концу — уместив ту же задачу в ~6K сфокусированных токенов. Стабильный, переиспользуемый контент (системный промпт, фиксированные инструкции) ставь в начало, чтобы кэширование промпта (prompt caching) могло дёшево переиспользовать его между ходами.
Представьте это как оперативную память компьютера:
- 1. Ограниченный размер: 8K, 32K, 128K, 200K токенов в зависимости от модели
- 2. Включает всё: Системный промпт + история разговора + текущее сообщение
- 3. FIFO при заполнении: Самый старый контент удаляется при достижении лимита
- 4. Стоимость растёт с размером: Больше токенов = дороже
Управление контекстом
- Суммаризация: Сжатие старого разговора в резюме
- Выборочное включение: Включать только релевантные предыдущие сообщения
- RAG: Подтягивать релевантные документы динамически вместо хранения всего
- Чанкинг: Разбиение длинных документов на обрабатываемые части
Интересный факт: Окна контекста выросли с 4K токенов (GPT-3) до 200K+ токенов (Claude 3) всего за несколько лет! Но тесты "игла в стоге сена" показывают, что качество внимания падает в очень длинных контекстах — больше не всегда лучше.
Попробуйте сами!
Используй интерактивный пример ниже, чтобы увидеть, как лимиты окна контекста влияют на память ИИ, и изучить стратегии управления ими.
📦 Контекстное окно — это "память" модели. Всё, что не помещается — забывается! Добавляй сообщения и смотри, как заполняется окно.
При переполнении контекста старые сообщения "забываются". Поэтому важно: 1) выбирать модель с достаточным контекстом, 2) сжимать историю, 3) держать важную информацию ближе к концу.
Частые вопросы
Что такое окно контекста (context window) у LLM?
Окно контекста — это максимальное количество текста (в токенах), которое модель может обработать за один запрос. В него входит всё сразу: системный промпт, вся история разговора, подтянутые документы и твой текущий вопрос. Это как оперативная память: то, что не поместилось, модель не «видит».
Почему ИИ забывает начало длинного разговора?
У LLM нет памяти между запросами — каждый раз весь транскрипт пересылается заново. Когда суммарный объём превышает лимит окна, приложение выбрасывает или сжимает самые старые сообщения (FIFO), чтобы влезть в лимит. Поэтому ассистент «теряет» то, с чего начинался диалог.
Сколько токенов в окне контекста у разных моделей?
Зависит от модели: исторически 4K у GPT-3, 8K и 32K у ранних GPT-4, 128K у многих современных моделей и 200K+ у Claude 3. Точное число всегда смотри в документации конкретной модели — оно меняется с каждым релизом. Помни: в лимит входит и твой запрос, и ответ модели.
Большое окно контекста — это всегда лучше?
Нет. Тесты «игла в стоге сена» показывают, что модель хуже вспоминает информацию из середины длинного контекста (эффект «потерялось в середине»), а ещё длинный промпт повышает стоимость и задержку. Часто точнее и дешевле подтянуть через RAG только нужные фрагменты и сжать старую историю, чем набивать всё подряд.
Попробуй сам
Интерактивное демо этой техники
Обработка длинного документа — потеря информации при переполнении окна контекста
В отчёте описаны финансовые показатели компании, рост выручки и планы развития. Критических проблем не выявлено.
Критическая проблема: уязвимость в модуле авторизации (стр. 43). Затронуто 12,000 аккаунтов. Патч установлен 18.01. Рекомендовано провести повторный аудит в Q2.
Больше контекста — не всегда лучше. Стратегическое разбиение документа на секции с резюмированием нерелевантных частей побеждает "вставь всё и молись".
Создайте бесплатный аккаунт для решения челленджей
3 челленджей с AI-проверкой для этого урока
Этот урок — часть структурированного курса по LLM.
Мой путь обучения