Привет! На связи блог «AI по Фейнману». Наша цель — разбираться в сложных технологиях простыми словами.
Знакомая проблема: когда ИИ теряет нить
Представьте ситуацию: вы загружаете в ChatGPT 50-страничный договор и спрашиваете про важный пункт на странице 25. Модель отвечает: «Не могу найти информацию об этом в предоставленном документе». А пункт там есть! Или другой случай: в длинном диалоге модель вдруг «забывает», о чём вы говорили в начале, и начинает переспрашивать.
За эти ситуации отвечает контекстное окно — одна из ключевых характеристик, которая определяет, на что на самом деле способна модель. Сегодня разберёмся, что это такое, как работает и почему его размер так важен для практической работы.
Аналогия №1: Всевидящее, но ограниченное Око Саурона
Представьте контекстное окно как Око Саурона из «Властелина колец». Это всевидящий взгляд, который может охватить огромную территорию, но всё же имеет свои пределы.
Всевидящий взгляд: Модель может «видеть» и анализировать весь текст в своём окне одновременно — каждое слово, каждую смысловую связь.
Ограниченный обзор: Как только информация выходит за пределы этого «взгляда» (окна), она становится невидимой для модели.
Проблема «потери в середине»: Чем больше окно, тем больше информации модель должна обработать. Иногда важные детали, «закопанные» в середине длинного текста, могут получить меньше внимания, чем информация в начале или в конце.
Когда диалог становится слишком длинным, самые старые сообщения «выпадают» из поля зрения Ока — модель их буквально «забывает».
Аналогия №2: Краткосрочная память человека
Если отойти от фэнтези, контекстное окно — это почти идеальная аналогия краткосрочной (или рабочей) памяти человека.
Контекстное окно — это «оперативная память», где хранится текущий диалог.
Обученная модель — это «долгосрочная память» с фундаментальными знаниями о мире.
Модель комбинирует информацию из текущего диалога (краткосрочная память) со своими общими знаниями (долгосрочная память), чтобы дать максимально релевантный ответ.
Но чтобы понять, как именно работает это «зрение», нужно разобраться с тем, как модель «читает» наш текст. Здесь в игру вступают токены.
Что такое токены: валюта общения с ИИ
Модель не видит слова и предложения, как мы. Она разбивает текст на мелкие фрагменты — токены. Этот процесс называется токенизацией.
Токен — это минимальная единица текста: целое слово («кот»), часть слова («транс-»), знак препинания (,) или даже пробел с последующим словом.
Примерное соотношение для русского языка:
- ~100 токенов ≈ 60-70 слов
- ~1000 токенов ≈ 600-700 слов (около 1,5 страниц текста)
- ~10 000 токенов ≈ 15-20 страниц текста
- ~100 000 токенов ≈ 150-200 страниц текста
Практический пример:
Фраза «Привет, как дела?» может разбиться на токены так:
Полезные инструменты:
- Tiktokenizer — калькулятор токенов
Что такое контекстное окно: лимит рабочей памяти
Контекстное окно — это максимальное количество токенов, которое модель может учитывать за один раз. Это общий лимит для вашего запроса (ввода) и сгенерированного ответа (вывода).
Как происходит накопление:
- Вы отправляете запрос → Он занимает место в окне (Turn 1: input)
- Модель генерирует ответ → Он тоже занимает место (Turn 2: output)
- Ваше следующее сообщение → В окно помещается вся предыдущая история плюс новый запрос (Turn 2: input)
- При превышении лимита → Самая старая часть диалога «выпадает» из окна по принципу FIFO
Каждый обмен (Turn) состоит из:
Фаза ввода (input): Содержит всю предыдущую историю разговора плюс текущее сообщение пользователя
Фаза вывода (output): Генерирует текстовый ответ, который становится частью будущего ввода
Практический пример:
Окно на 4000 токенов:
- Ваш первый вопрос: 100 токенов
- Ответ модели: 300 токенов
- Ваш второй вопрос: 200 токенов
- Ответ модели: 400 токенов
- Итого использовано: 1000 токенов
При достижении лимита модель «забудет» самые старые сообщения.
Больше — значит лучше? Компромиссы и реальность
Казалось бы, нужно просто сделать окно как можно больше. Но здесь есть свои компромиссы:
Технические ограничения
- Скорость обработки: Чем больше токенов нужно проанализировать, тем медленнее работает модель
- Стоимость: Большинство API взимают плату за каждый токен в контексте
- Потеря фокуса: В очень длинных контекстах модель может «терять» важную информацию в середине (эффект "lost in the middle")
Практические соображения
- Планирование бюджета: При окне в 200К токенов один диалог может стоить значительно дороже
- Выбор модели: Не всегда нужна максимальная длина — для коротких задач подойдут модели с меньшим окном
- Управление контекстом: Важно структурировать информацию так, чтобы ключевые данные были в начале или конце
Продвинутые техники: как ИИ думает и действует
Современные модели не просто отвечают на вопросы. Они умеют рассуждать и даже использовать внешние инструменты. Это кардинально меняет подход к управлению контекстным окном.
1. Расширенное мышление (Extended Reasoning)
Модель может «думать вслух» перед ответом, но эти размышления не засоряют контекст:
Пользователь: "Помоги спланировать маршрут по Европе на 2 недели"
<thinking>
Нужно учесть:
- Бюджет пользователя (не указан - надо уточнить)
- Предпочтения по странам
- Логистику перемещений
- Сезонность и погоду
- Визовые требования
</thinking>
Для планирования маршрута мне нужно узнать несколько деталей...
Ключевая особенность: Блоки <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 токенов
Математика экономии токенов:
Без thinking (обычный диалог):
- Каждый токен размышлений остаётся в контексте навсегда
- Контекст растёт линейно: 300 → 500 → 700 → 900 → ...
- При длинных размышлениях контекст быстро переполняется
С thinking-блоками:
- Размышления могут быть любой длины (даже 1000+ токенов)
- В контексте сохраняется только полезная информация
- Формула: контекст = (входные токены - предыдущие thinking) + токены текущего обмена
Практические преимущества:
- Глубокие размышления без штрафа: Модель может подробно анализировать задачу, не засоряя контекст
- Масштабируемость: Диалог может продолжаться долго без переполнения памяти
- Прозрачность: Вы видите, как модель пришла к решению, но это не мешает дальнейшему общению
- Экономия денег: Платите за 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 токенов
Математика экономии в цикле инструментов:
Без оптимизации 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, но старый удалён)
Технические детали:
- Криптографические подписи: Система проверяет, что thinking-блоки не модифицированы
- Автоматическое удаление: API сам удаляет thinking после завершения цикла инструмента
- Эффективная формула: контекст = входные токены + токены текущего обмена
- Чередующееся мышление: В Claude 4 модель может думать между вызовами инструментов
Практические последствия:
- Сложные задачи: Модель может использовать множество инструментов с глубокими размышлениями
- Длинные диалоги: Контекст не засоряется промежуточными рассуждениями
- Предсказуемость: Чёткие правила управления токенами
- Экономия: Платите за thinking только во время активного использования инструментов
3. Эффективный расчёт токенов
Вот как система считает токены в разных сценариях:
Обычный диалог:
Контекст = входные токены + токены ответа
С расширенным мышлением:
Контекст = (входные токены - предыдущие thinking) + токены текущего обмена
С инструментами + мышлением:
Контекст = входные токены + токены текущего обмена
(предыдущие thinking удаляются автоматически)
4. Практические преимущества
Для пользователя:
- Модель может «размышлять» сколько угодно без переполнения контекста
- Инструменты работают эффективно даже в длинных диалогах
- Не нужно самостоятельно управлять историей мышления
Для разработчиков:
- Автоматическая оптимизация контекста
- Предсказуемое поведение при достижении лимитов
- Прозрачное управление токенами
Эти техники превращают контекстное окно из простого «буфера памяти» в продвинутый инструмент для решения сложных задач с оптимальным использованием ресурсов.
Контекстные окна в популярных моделях
Практическая памятка: как работать с контекстом
✅ Перед работой с большим текстом:
- Проверьте размер в токенах через калькулятор
- Выберите модель с подходящим окном
- Подготовьте чёткие вопросы заранее
✅ Если модель начала «забывать» контекст:
- Резюмируйте ключевые моменты в новом сообщении
- Переформулируйте вопрос, включив контекст
- Разбейте задачу на более мелкие части
✅ Для максимальной точности:
- Помещайте важные инструкции в начало или конец
- Дублируйте критически важную информацию
- Используйте структурированные промпты с чёткими разделами
⚠️ Распространённые ошибки:
- Не учитывать токены ответа при планировании
- Размещать важную информацию только в середине длинного текста
- Не отслеживать накопление контекста в диалоге
Заключение: память как инструмент
Контекстное окно — это не просто техническая характеристика, а инструмент для решения реальных задач. Понимание его работы поможет вам:
- Выбирать правильную модель для каждой задачи
- Структурировать запросы для максимальной эффективности
- Избегать распространённых ошибок при работе с ИИ
- Планировать стоимость использования
Теперь вы знаете не только, что такое контекстное окно, но и как современные модели научились им виртуозно управлять для решения по-настоящему сложных задач. Это уже не просто «память», а целый механизм для рассуждений и действий.
Денис Куров, блог «AI по Фейнману»
Чтобы по-настоящему в чём-то разобраться, нужно попытаться это объяснить