Найти в Дзене

Контекстное окно простыми словами: объясняю, как работает «память» нейросети

Оглавление

Привет! На связи блог «AI по Фейнману». Наша цель — разбираться в сложных технологиях простыми словами.

Знакомая проблема: когда ИИ теряет нить

Представьте ситуацию: вы загружаете в ChatGPT 50-страничный договор и спрашиваете про важный пункт на странице 25. Модель отвечает: «Не могу найти информацию об этом в предоставленном документе». А пункт там есть! Или другой случай: в длинном диалоге модель вдруг «забывает», о чём вы говорили в начале, и начинает переспрашивать.

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

Аналогия №1: Всевидящее, но ограниченное Око Саурона

Представьте контекстное окно как Око Саурона из «Властелина колец». Это всевидящий взгляд, который может охватить огромную территорию, но всё же имеет свои пределы.

Всевидящий взгляд: Модель может «видеть» и анализировать весь текст в своём окне одновременно — каждое слово, каждую смысловую связь.

Ограниченный обзор: Как только информация выходит за пределы этого «взгляда» (окна), она становится невидимой для модели.

Проблема «потери в середине»: Чем больше окно, тем больше информации модель должна обработать. Иногда важные детали, «закопанные» в середине длинного текста, могут получить меньше внимания, чем информация в начале или в конце.

Когда диалог становится слишком длинным, самые старые сообщения «выпадают» из поля зрения Ока — модель их буквально «забывает».

Аналогия №2: Краткосрочная память человека

Если отойти от фэнтези, контекстное окно — это почти идеальная аналогия краткосрочной (или рабочей) памяти человека.

Контекстное окно — это «оперативная память», где хранится текущий диалог.

Обученная модель — это «долгосрочная память» с фундаментальными знаниями о мире.

Модель комбинирует информацию из текущего диалога (краткосрочная память) со своими общими знаниями (долгосрочная память), чтобы дать максимально релевантный ответ.

Но чтобы понять, как именно работает это «зрение», нужно разобраться с тем, как модель «читает» наш текст. Здесь в игру вступают токены.

Что такое токены: валюта общения с ИИ

Модель не видит слова и предложения, как мы. Она разбивает текст на мелкие фрагменты — токены. Этот процесс называется токенизацией.

Токен — это минимальная единица текста: целое слово («кот»), часть слова («транс-»), знак препинания (,) или даже пробел с последующим словом.

Примерное соотношение для русского языка:

  • ~100 токенов ≈ 60-70 слов
  • ~1000 токенов ≈ 600-700 слов (около 1,5 страниц текста)
  • ~10 000 токенов ≈ 15-20 страниц текста
  • ~100 000 токенов ≈ 150-200 страниц текста

Практический пример:

Фраза «Привет, как дела?» может разбиться на токены так:

8 токенов = [54745, 28089, 8341, 11, 52770, 95369, 1506, 30]
8 токенов = [54745, 28089, 8341, 11, 52770, 95369, 1506, 30]

Полезные инструменты:

Что такое контекстное окно: лимит рабочей памяти

Контекстное окно — это максимальное количество токенов, которое модель может учитывать за один раз. Это общий лимит для вашего запроса (ввода) и сгенерированного ответа (вывода).

Как происходит накопление:

  1. Вы отправляете запрос → Он занимает место в окне (Turn 1: input)
  2. Модель генерирует ответ → Он тоже занимает место (Turn 2: output)
  3. Ваше следующее сообщение → В окно помещается вся предыдущая история плюс новый запрос (Turn 2: input)
  4. При превышении лимита → Самая старая часть диалога «выпадает» из окна по принципу FIFO
источник https://docs.anthropic.com/ru/docs/build-with-claude/context-windows
источник https://docs.anthropic.com/ru/docs/build-with-claude/context-windows

Каждый обмен (Turn) состоит из:

Фаза ввода (input): Содержит всю предыдущую историю разговора плюс текущее сообщение пользователя
Фаза вывода (output): Генерирует текстовый ответ, который становится частью будущего ввода

Практический пример:

Окно на 4000 токенов:

  • Ваш первый вопрос: 100 токенов
  • Ответ модели: 300 токенов
  • Ваш второй вопрос: 200 токенов
  • Ответ модели: 400 токенов
  • Итого использовано: 1000 токенов

При достижении лимита модель «забудет» самые старые сообщения.

Больше — значит лучше? Компромиссы и реальность

Казалось бы, нужно просто сделать окно как можно больше. Но здесь есть свои компромиссы:

Технические ограничения

  • Скорость обработки: Чем больше токенов нужно проанализировать, тем медленнее работает модель
  • Стоимость: Большинство API взимают плату за каждый токен в контексте
  • Потеря фокуса: В очень длинных контекстах модель может «терять» важную информацию в середине (эффект "lost in the middle")

Практические соображения

  • Планирование бюджета: При окне в 200К токенов один диалог может стоить значительно дороже
  • Выбор модели: Не всегда нужна максимальная длина — для коротких задач подойдут модели с меньшим окном
  • Управление контекстом: Важно структурировать информацию так, чтобы ключевые данные были в начале или конце

Продвинутые техники: как ИИ думает и действует

Современные модели не просто отвечают на вопросы. Они умеют рассуждать и даже использовать внешние инструменты. Это кардинально меняет подход к управлению контекстным окном.

1. Расширенное мышление (Extended Reasoning)

Модель может «думать вслух» перед ответом, но эти размышления не засоряют контекст:

Пользователь: "Помоги спланировать маршрут по Европе на 2 недели"

<thinking>
Нужно учесть:
- Бюджет пользователя (не указан - надо уточнить)
- Предпочтения по странам
- Логистику перемещений
- Сезонность и погоду
- Визовые требования
</thinking>

Для планирования маршрута мне нужно узнать несколько деталей...

-4

Ключевая особенность: Блоки <thinking> автоматически удаляются из контекста при следующем обмене, экономя токены для содержательного диалога.

Как это работает на практике:

Обычный диалог без thinking:

Обмен 1: Вопрос (100 токенов) + Ответ (200 токенов) = 300 токенов в контексте
Обмен 2: Предыдущая история (300) + Новый вопрос (50) + Ответ (150) = 500 токенов
Обмен 3: Вся история (500) + Новый вопрос (80) + Ответ (120) = 700 токенов

С блоками thinking:

Обмен 1: Вопрос (100) + <thinking>(300) + Ответ (200) = 600 токенов генерации
Сохраняется в контексте: Вопрос (100) + Ответ (200) = 300 токенов

Обмен 2: Предыдущая история (300) + Новый вопрос (50) + <thinking>(250) + Ответ (150) = 750 токенов генерации
Сохраняется в контексте: Вся история без thinking (500) = 500 токенов

Обмен 3: История (500) + Новый вопрос (80) + <thinking>(200) + Ответ (120) = 900 токенов генерации
Сохраняется в контексте: История без thinking (700) = 700 токенов

источник https://docs.anthropic.com/ru/docs/build-with-claude/context-windows
источник https://docs.anthropic.com/ru/docs/build-with-claude/context-windows

Математика экономии токенов:

Без thinking (обычный диалог):

  • Каждый токен размышлений остаётся в контексте навсегда
  • Контекст растёт линейно: 300 → 500 → 700 → 900 → ...
  • При длинных размышлениях контекст быстро переполняется

С thinking-блоками:

  • Размышления могут быть любой длины (даже 1000+ токенов)
  • В контексте сохраняется только полезная информация
  • Формула: контекст = (входные токены - предыдущие thinking) + токены текущего обмена

Практические преимущества:

  1. Глубокие размышления без штрафа: Модель может подробно анализировать задачу, не засоряя контекст
  2. Масштабируемость: Диалог может продолжаться долго без переполнения памяти
  3. Прозрачность: Вы видите, как модель пришла к решению, но это не мешает дальнейшему общению
  4. Экономия денег: Платите за thinking только один раз при генерации, а не каждый раз в контексте

Исключение — использование инструментов:

При работе с внешними инструментами блоки thinking нужно сохранять до завершения цикла, чтобы модель понимала контекст своих действий. Но после завершения работы с инструментом они тоже автоматически удаляются.

2. Использование инструментов с умным контекстом

Модель может вызывать внешние функции, и система оптимально управляет токенами. Здесь управление контекстом становится особенно сложным, поскольку нужно сохранять связность рассуждений модели.

Особенности управления токенами с инструментами:

Правило сохранения thinking при использовании инструментов:

  • Блоки <thinking> должны сохраняться до завершения всего цикла работы с инструментом
  • Это единственный случай, когда вы должны передавать thinking-блоки обратно в API
  • Система использует криптографические подписи для проверки целостности блоков

Пример полного цикла с подсчётом токенов:

Обмен 1 (Пользователь → ИИ):

Входные токены:
- Вопрос пользователя: 10 токенов

Выходные токены:
- <thinking>: 25 токенов
- Ответ + вызов инструмента: 15 токенов
Итого выходных: 40 токенов

Общий контекст после обмена 1: 50 токенов

Обмен 2 (Результат инструмента → ИИ):

Входные токены:
- Исходный вопрос: 10 токенов
- Блок thinking (обязательно сохраняется): 25 токенов
- Ответ модели с вызовом: 15 токенов
- Результат инструмента: 20 токенов
Итого входных: 70 токенов

Выходные токены:
- Финальный ответ: 25 токенов

Общий контекст после обмена 2: 95 токенов

Обмен 3 (Продолжение диалога):

Входные токены:
- Исходный вопрос: 10 токенов
- Результат инструмента: 20 токенов
- Финальный ответ из обмена 2: 25 токенов
- Новый вопрос: 5 токенов
Итого входных: 60 токенов (thinking удалён = экономия 25 токенов)

Выходные токены:
- Новый <thinking> (если нужен): ~20 токенов
- Ответ про завтра: ~30 токенов
Итого выходных: 50 токенов

Общий контекст после обмена 3: 110 токенов

источник https://docs.anthropic.com/ru/docs/build-with-claude/context-windows
источник https://docs.anthropic.com/ru/docs/build-with-claude/context-windows

Математика экономии в цикле инструментов:

Без оптимизации thinking:

Обмен 1: 50 токенов
Обмен 2: 50 + 45 = 95 токенов
Обмен 3: 95 + 30 = 125 токенов
Обмен 4: 125 + 40 = 165 токенов

С оптимизацией thinking:

Обмен 1: 50 токенов (thinking сохраняется)
Обмен 2: 95 токенов (thinking всё ещё нужен)
Обмен 3: 70 токенов (thinking удалён, -25 токенов)
Обмен 4: 95 токенов (новый thinking, но старый удалён)

Технические детали:

  1. Криптографические подписи: Система проверяет, что thinking-блоки не модифицированы
  2. Автоматическое удаление: API сам удаляет thinking после завершения цикла инструмента
  3. Эффективная формула: контекст = входные токены + токены текущего обмена
  4. Чередующееся мышление: В Claude 4 модель может думать между вызовами инструментов

Практические последствия:

  • Сложные задачи: Модель может использовать множество инструментов с глубокими размышлениями
  • Длинные диалоги: Контекст не засоряется промежуточными рассуждениями
  • Предсказуемость: Чёткие правила управления токенами
  • Экономия: Платите за thinking только во время активного использования инструментов

3. Эффективный расчёт токенов

Вот как система считает токены в разных сценариях:

Обычный диалог:

Контекст = входные токены + токены ответа

С расширенным мышлением:

Контекст = (входные токены - предыдущие thinking) + токены текущего обмена

С инструментами + мышлением:

Контекст = входные токены + токены текущего обмена
(предыдущие thinking удаляются автоматически)

4. Практические преимущества

Для пользователя:

  • Модель может «размышлять» сколько угодно без переполнения контекста
  • Инструменты работают эффективно даже в длинных диалогах
  • Не нужно самостоятельно управлять историей мышления

Для разработчиков:

  • Автоматическая оптимизация контекста
  • Предсказуемое поведение при достижении лимитов
  • Прозрачное управление токенами

Эти техники превращают контекстное окно из простого «буфера памяти» в продвинутый инструмент для решения сложных задач с оптимальным использованием ресурсов.

Контекстные окна в популярных моделях

источник https://artificialanalysis.ai/leaderboards/models
источник https://artificialanalysis.ai/leaderboards/models

Практическая памятка: как работать с контекстом

✅ Перед работой с большим текстом:

  • Проверьте размер в токенах через калькулятор
  • Выберите модель с подходящим окном
  • Подготовьте чёткие вопросы заранее

✅ Если модель начала «забывать» контекст:

  • Резюмируйте ключевые моменты в новом сообщении
  • Переформулируйте вопрос, включив контекст
  • Разбейте задачу на более мелкие части

✅ Для максимальной точности:

  • Помещайте важные инструкции в начало или конец
  • Дублируйте критически важную информацию
  • Используйте структурированные промпты с чёткими разделами

⚠️ Распространённые ошибки:

  • Не учитывать токены ответа при планировании
  • Размещать важную информацию только в середине длинного текста
  • Не отслеживать накопление контекста в диалоге

Заключение: память как инструмент

Контекстное окно — это не просто техническая характеристика, а инструмент для решения реальных задач. Понимание его работы поможет вам:

  • Выбирать правильную модель для каждой задачи
  • Структурировать запросы для максимальной эффективности
  • Избегать распространённых ошибок при работе с ИИ
  • Планировать стоимость использования

Теперь вы знаете не только, что такое контекстное окно, но и как современные модели научились им виртуозно управлять для решения по-настоящему сложных задач. Это уже не просто «память», а целый механизм для рассуждений и действий.

Денис Куров, блог «AI по Фейнману»

Чтобы по-настоящему в чём-то разобраться, нужно попытаться это объяснить