Память

Контекстное окно в 1 миллион токенов: зачем столько и как использовать

Контекстное окно в 1 млн токенов вмещает целые книги и кодовые базы. Разбираем, что это даёт на практике, где у больших окон пределы и когда без памяти не обойтись.

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

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

#Что такое токены и контекстное окно

Токен — это кусочек текста, которым оперирует модель. Это не буква и не слово целиком, а что-то среднее: часть слова, короткое слово или знак препинания. Для русского текста грубая прикидка — примерно 2–3 токена на слово; для английского ближе к 1,3. Точное соотношение зависит от модели и токенизатора.

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

Грубый ориентир, чтобы почувствовать масштаб:

Объём Примерно в токенах
Страница текста ~500–800
Большая статья ~3 000–5 000
Толстая книга ~150 000–250 000
Окно в 1 млн несколько книг сразу

#Что даёт миллион токенов

Большое окно снимает целый класс неудобств. Раньше длинный документ приходилось резать на куски и скармливать по частям, теряя связи между ними. С миллионом токенов многое помещается целиком.

Где это особенно заметно:

  • Работа с большими документами. Договор, техзадание, диссертация — можно загрузить целиком и задавать вопросы по всему тексту сразу.
  • Анализ кодовой базы. Десятки файлов проекта помещаются в одно окно, и модель видит связи между модулями, а не отдельный фрагмент.
  • Длинные диалоги. Многочасовая сессия не обрезается по ходу — ранние детали остаются доступны.
  • Сравнение источников. Несколько отчётов или версий документа можно держать рядом и сопоставлять.

Главная ценность простая: меньше ручной нарезки и меньше риск, что важная деталь выпала за край окна.

#Ограничение «потерянного в середине»

Большое окно — не гарантия, что модель одинаково хорошо использует весь его объём. Известен эффект «lost in the middle»: информация в начале и в конце контекста воспринимается надёжнее, чем то, что лежит в середине длинного текста.

Поместить миллион токенов в окно — не то же самое, что заставить модель одинаково внимательно прочитать каждый из них.

Из этого следуют практические выводы:

  • Ключевые инструкции и важные данные лучше ставить в начало или в конец запроса.
  • Не стоит полагаться, что нужный факт «где-то в середине» 800-тысячного документа точно всплывёт.
  • Чем плотнее набито окно нерелевантным текстом, тем выше шанс, что модель отвлечётся на лишнее.

И более общий вывод, который стоит усвоить до покупки чего-либо: заявленный размер окна — это предел, на котором модель не падает, а не длина, на которой она удерживает факты. Разрыв между двумя цифрами бывает кратным, и измерить его на своей модели можно самому — методика в разборе заявленного контекста против полезного.

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

#Когда большой контекст не заменяет память и RAG

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

Долгосрочная память — это отдельный механизм: факты о вас и ваших проектах сохраняются между сессиями и подтягиваются в нужный момент. Как именно это устроено, разбирали в статье про то, как работает память ИИ. Отдельный слой — версионирование фактов, когда память помнит не только текущее значение, но и то, что оно менялось: механика в статье про чат с памятью и bi-temporal факты.

Связанный подход — RAG (retrieval-augmented generation): вместо того чтобы заталкивать в окно всю базу знаний, система находит только релевантные фрагменты и подаёт их модели. Это часто эффективнее, чем грубая сила большого окна:

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

Большое окно и RAG не конкурируют, а дополняют друг друга. И ни то, ни другое не отменяет потребности в персональной памяти — это и есть одно из ключевых свойств личного ИИ.

#Локально или в облаке

Размер окна по-разному отзывается в двух сценариях. У облачных моделей окна обычно крупнее, но каждый загруженный токен — это данные, ушедшие на сторону провайдера, плюс плата за объём.

Локальные модели чаще скромнее по размеру окна и упираются в память видеокарты: длинный контекст требует много VRAM, причём растёт это отдельно от веса самой модели. Считается это по формуле из двух слагаемых — вес модели плюс кэш под контекст, — и она разобрана в статье сколько нужно VRAM для локальной LLM. Зато при локальном запуске текст не уходит наружу — при условии, что и приложение, и модель развёрнуты на вашей машине. Компромиссы между двумя подходами подробно разобраны в материале про локальную модель против облака.

На практике разумная стратегия — не «всё в окно», а гибрид: чувствительное держать локально, тяжёлый разовый анализ больших документов отдавать в облако осознанно.

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

#Почему модель с окном на 128 тысяч токенов «забывает» середину документа?

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

#Сколько VRAM нужно, чтобы поднять контекст локально?

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

#Можно ли увеличить контекст квантизацией?

Квантизация уменьшает вес самой модели и освобождает память, часть которой можно отдать под контекст. Отдельно квантуется и кэш контекста — это второй рычаг. Где проходит точка перелома по качеству, разобрано в статье про квантизацию Q4, Q5 и Q8.

#Что дешевле — большое окно или RAG?

При регулярной работе с одной и той же базой знаний RAG дешевле почти всегда: вы обрабатываете сотни релевантных токенов вместо сотен тысяч. Большое окно выигрывает на разовых задачах, где документ нужно прочитать целиком и связи между удалёнными частями важны. Это не конкуренция, а разные режимы.

#Заменяет ли миллион токенов персональную память?

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

#Как посчитать, сколько токенов в моём документе?

Грубая прикидка для русского текста — 2–3 токена на слово, для английского около 1,3. Для точной цифры нужен токенизатор конкретной модели, потому что у разных моделей разбиение отличается, особенно на кириллице. Для планирования хватает грубой оценки с запасом в полтора раза.

#Вывод

Миллион токенов — это мощный инструмент, а не волшебная кнопка. Большое окно избавляет от ручной нарезки документов и помогает видеть картину целиком, но не гарантирует идеального внимания ко всему объёму и не заменяет долгосрочную память. Если вы разово разбираете большой документ — берите модель с большим окном и кладите главное по краям. Если вы работаете с одной базой знаний постоянно — стройте RAG. А если нужно, чтобы ассистент помнил вас между сессиями, ни то ни другое не поможет: нужна отдельная память.

Хотите ИИ, который помнит вас?

Persona держит контекст между чатами и работает на вашем железе — если развернуть её у себя и подключить локальную модель.

Создать аккаунт