Урок 2

Контекстное окно

Лимиты памяти

Проблема: ИИ забывает начало длинных разговоров и не может обрабатывать неограниченный текст. Что ограничивает память ИИ и как работать в этих рамках?

Решение: Понять оперативную память

Окно контекста (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) всего за несколько лет! Но тесты "игла в стоге сена" показывают, что качество внимания падает в очень длинных контекстах — больше не всегда лучше.

Попробуйте сами!

Используй интерактивный пример ниже, чтобы увидеть, как лимиты окна контекста влияют на память ИИ, и изучить стратегии управления ими.

Контекстное окно — память AI

📦 Контекстное окно — это "память" модели. Всё, что не помещается — забывается! Добавляй сообщения и смотри, как заполняется окно.

Выбери модель:
Заполнение контекста:400 / 4 096 tokens
System
User
Assistant
150tСистемный промпт...
50tПривет! Расскажи о...
200tКонечно! Вот информация...
Ключевая идея

При переполнении контекста старые сообщения "забываются". Поэтому важно: 1) выбирать модель с достаточным контекстом, 2) сжимать историю, 3) держать важную информацию ближе к концу.

Частые вопросы

Что такое окно контекста (context window) у LLM?

Окно контекста — это максимальное количество текста (в токенах), которое модель может обработать за один запрос. В него входит всё сразу: системный промпт, вся история разговора, подтянутые документы и твой текущий вопрос. Это как оперативная память: то, что не поместилось, модель не «видит».

Почему ИИ забывает начало длинного разговора?

У LLM нет памяти между запросами — каждый раз весь транскрипт пересылается заново. Когда суммарный объём превышает лимит окна, приложение выбрасывает или сжимает самые старые сообщения (FIFO), чтобы влезть в лимит. Поэтому ассистент «теряет» то, с чего начинался диалог.

Сколько токенов в окне контекста у разных моделей?

Зависит от модели: исторически 4K у GPT-3, 8K и 32K у ранних GPT-4, 128K у многих современных моделей и 200K+ у Claude 3. Точное число всегда смотри в документации конкретной модели — оно меняется с каждым релизом. Помни: в лимит входит и твой запрос, и ответ модели.

Большое окно контекста — это всегда лучше?

Нет. Тесты «игла в стоге сена» показывают, что модель хуже вспоминает информацию из середины длинного контекста (эффект «потерялось в середине»), а ещё длинный промпт повышает стоимость и задержку. Часто точнее и дешевле подтянуть через RAG только нужные фрагменты и сжать старую историю, чем набивать всё подряд.

Попробуй сам

Интерактивное демо этой техники

Сравнение техник
Демо режим
Предзаписанные ответы
ЗадачаНачинающийАнализ

Обработка длинного документа — потеря информации при переполнении окна контекста

Без техники
Без техники
Промпт
[Документ: 45 страниц корпоративного отчёта, весь текст вставлен целиком] ...(первые 40 страниц о финансах)... ...(страница 43: "Критическая уязвимость обнаружена в модуле авторизации")... ...(страницы 44-45: приложения)... Какие критические проблемы описаны в отчёте?
Ответ

В отчёте описаны финансовые показатели компании, рост выручки и планы развития. Критических проблем не выявлено.

Токены:12000/30
Время:2800ms
Качество:
С Контекстные окна
С техникой
Промпт
Отчёт разбит на секции. Вот ключевые выдержки: [Секция: Финансы — резюме] Выручка: +15% YoY, чистая прибыль: 2.3 млрд руб. [Секция: Безопасность — полный текст] Стр. 43: Критическая уязвимость обнаружена в модуле авторизации. Затронуты 12,000 аккаунтов. Патч выпущен 15.01, установка завершена 18.01. Рекомендация: провести повторный аудит в Q2. [Секция: Приложения — пропущены как нерелевантные] Какие критические проблемы описаны в отчёте?
Ответ

Критическая проблема: уязвимость в модуле авторизации (стр. 43). Затронуто 12,000 аккаунтов. Патч установлен 18.01. Рекомендовано провести повторный аудит в Q2.

👁️При вставке всего документа важная информация со стр. 43 "утонула" в середине
🧠Эффект "lost in the middle" — модели хуже запоминают середину длинного контекста
🧠Разбиение на секции + резюмирование нерелевантных частей экономит токены и фокус
Стратегическое управление контекстом важнее, чем "больше контекста = лучше"
Токены:180/42
Время:320ms
Качество:
Почему это работает

Больше контекста — не всегда лучше. Стратегическое разбиение документа на секции с резюмированием нерелевантных частей побеждает "вставь всё и молись".

1 / 2

Квиз по уроку

1 из 3

1.Что такое контекстное окно в LLM?

Практика

Создайте бесплатный аккаунт для решения челленджей

3 челленджей с AI-проверкой для этого урока

Связанные уроки:TokenizationRag

Этот урок — часть структурированного курса по LLM.

Мой путь обучения